/* Shared, single-theme interface details for public, customer and staff screens. */
:root {
  --radius-sm: 14px;
  --radius-md: 20px;
  --radius-lg: 30px;
  --shadow-soft: 0 16px 48px rgba(7, 32, 48, .075);
  --shadow-lift: 0 28px 68px rgba(7, 32, 48, .14);
}
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 24px); }
body { background-color: #f0f5f7; }
::selection { color: #062c36; background: #a8f2e4; }

.site-header:not(.portal-header),
.portal-header .header-inner {
  border: 1px solid rgba(144, 192, 202, .27);
  border-radius: 20px;
  box-shadow: 0 18px 48px rgba(7, 36, 54, .13), inset 0 1px rgba(255, 255, 255, .52);
  backdrop-filter: blur(24px) saturate(1.55);
  -webkit-backdrop-filter: blur(24px) saturate(1.55);
}
.site-header.is-scrolled:not(.portal-header),
.portal-header.is-scrolled .header-inner { box-shadow: 0 15px 42px rgba(7, 36, 54, .17), inset 0 1px rgba(255, 255, 255, .46); }
.brand img { border-radius: 15px; }
.primary-nav a,
.portal-nav a,
.portal-link-button { transition: color .25s ease, background .25s ease, transform .25s var(--ease); }
.primary-nav a:hover,
.portal-nav a:hover { transform: translateY(-2px); }
.header-cta,
.btn-primary,
.portal-btn--primary,
.tl-btn--primary {
  background-image: linear-gradient(130deg, #b0f8df, #69d9c2 58%, #36b9b5);
  color: #073339;
  border-color: rgba(61, 184, 167, .42);
  box-shadow: 0 12px 26px rgba(45, 166, 154, .21), inset 0 1px rgba(255, 255, 255, .52);
}
.header-cta:hover,
.btn-primary:hover,
.portal-btn--primary:hover,
.tl-btn--primary:hover { color: #062c31; filter: brightness(1.045); box-shadow: 0 16px 32px rgba(45, 166, 154, .27); }
.btn,
.portal-btn,
.tl-btn { transition-duration: .25s; }

.portal-card,
.auth-card,
.tl-card,
.tl-table-wrap {
  border-radius: 24px;
  border-color: rgba(102, 157, 171, .21);
  box-shadow: 0 18px 46px rgba(7, 37, 52, .075);
}
.auth-card { position: relative; background: linear-gradient(153deg, #fff, #f7fbfb); }
.auth-card .form-eye {
  position: absolute;
  inset-block-start: 16px;
  inset-inline-end: 22px;
  margin: 0;
}
.auth-card > h2 { padding-inline-end: 72px; }
.portal-field input,
.portal-field textarea,
.portal-field select,
.consult-form input,
.consult-form textarea,
.tl-field input,
.tl-field textarea,
.tl-field select {
  border-radius: 14px;
  transition: border-color .22s ease, background .22s ease, box-shadow .22s ease;
}
.portal-field input:focus,
.portal-field textarea:focus,
.portal-field select:focus,
.consult-form input:focus,
.consult-form textarea:focus,
.tl-field input:focus,
.tl-field textarea:focus,
.tl-field select:focus { border-color: #48bdae; box-shadow: 0 0 0 4px rgba(72, 189, 174, .14); outline: 0; }

.back-top {
  --page-progress: 0%;
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  border: 1px solid rgba(114, 220, 207, .65);
  border-radius: 20px;
  background: conic-gradient(#9cf2d7 var(--page-progress), rgba(126, 182, 193, .24) var(--page-progress));
  box-shadow: 0 12px 36px rgba(4, 37, 49, .22);
  isolation: isolate;
}
.back-top::before {
  content: "";
  position: absolute;
  inset: 4px;
  border-radius: 15px;
  background: linear-gradient(145deg, #0c3546, #0a2138);
  z-index: -1;
}
.back-top svg { width: 23px; height: 23px; }
.back-top.is-visible { animation: none; }
.back-top:hover { transform: translateY(-5px) scale(1.03); box-shadow: 0 20px 42px rgba(4, 37, 49, .29); }
.scroll-progress { height: 3px; background: linear-gradient(90deg, #36b7af, #91f1d1, #d5b778); }

@media (max-width: 900px) {
  .site-header .primary-nav.is-open,
  .portal-header .portal-nav.is-open {
    border-radius: 22px;
    box-shadow: 0 26px 64px rgba(3, 23, 39, .22);
    backdrop-filter: blur(25px) saturate(1.25);
    -webkit-backdrop-filter: blur(25px) saturate(1.25);
    animation: menu-enter .28s var(--ease) both;
  }
  .site-header .primary-nav.is-open a,
  .portal-header .portal-nav.is-open a { animation: menu-link-enter .34s var(--ease) both; }
  .site-header .primary-nav.is-open a:nth-of-type(2),
  .portal-header .portal-nav.is-open a:nth-of-type(2) { animation-delay: 35ms; }
  .site-header .primary-nav.is-open a:nth-of-type(3),
  .portal-header .portal-nav.is-open a:nth-of-type(3) { animation-delay: 70ms; }
  .site-header .primary-nav.is-open a:nth-of-type(4),
  .portal-header .portal-nav.is-open a:nth-of-type(4) { animation-delay: 105ms; }
  .nav-toggle { border: 1px solid rgba(106, 169, 180, .2); border-radius: 13px; }
}
@keyframes menu-enter { from { opacity: 0; transform: translateY(-10px) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes menu-link-enter { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .site-header .primary-nav.is-open,
  .portal-header .portal-nav.is-open,
  .site-header .primary-nav.is-open a,
  .portal-header .portal-nav.is-open a { animation: none; }
}

/* 2026 orbital interface language shared by public and staff surfaces. */
:root { --ui-lime: #c0f47b; --ui-ink: #0b1920; --ui-line: #ccddcf; }
.site-header:not(.portal-header),
.portal-header .header-inner {
  border-radius: 12px;
  border-color: rgba(89, 126, 110, .24);
  box-shadow: 0 12px 34px rgba(7, 25, 26, .1), inset 0 1px rgba(255, 255, 255, .65);
}
.brand img { border-radius: 7px; }
.primary-nav a,
.portal-nav a { border-radius: 5px; }
.header-cta,
.btn-primary,
.portal-btn--primary,
.tl-btn--primary {
  color: #132319 !important;
  background: #c0f47b;
  background-image: none;
  border: 1px solid #b8e874;
  border-radius: 6px;
  box-shadow: 0 0 0 1px rgba(141, 197, 77, .08), 0 10px 22px rgba(139, 192, 77, .17);
}
.header-cta:hover,
.btn-primary:hover,
.portal-btn--primary:hover,
.tl-btn--primary:hover {
  color: #102017 !important;
  background: #d0ff90;
  box-shadow: 0 0 0 1px rgba(141, 197, 77, .18), 0 15px 28px rgba(139, 192, 77, .24);
}
.btn,
.portal-btn,
.tl-btn { border-radius: 6px; }
.btn:not(:disabled):hover,
.portal-btn:not(:disabled):hover,
.tl-btn:not(:disabled):hover { transform: translateY(-3px); }
.portal-card,
.auth-card,
.tl-card,
.tl-table-wrap { border-radius: 12px; }
.portal-field input,
.portal-field textarea,
.portal-field select,
.consult-form input,
.consult-form textarea,
.tl-field input,
.tl-field textarea,
.tl-field select { border-radius: 6px; }
.portal-field input:focus,
.portal-field textarea:focus,
.portal-field select:focus,
.consult-form input:focus,
.consult-form textarea:focus,
.tl-field input:focus,
.tl-field textarea:focus,
.tl-field select:focus { border-color: #8db953; box-shadow: 0 0 0 3px rgba(153, 215, 82, .17); }
.nav-toggle {
  border-radius: 7px;
  transition: transform .3s var(--ease), border-color .3s ease, box-shadow .3s ease, background .3s ease;
}
.nav-toggle:hover { transform: rotate(-5deg); border-color: rgba(165, 229, 99, .65); box-shadow: 0 0 0 4px rgba(165, 229, 99, .08); }
.nav-toggle-icon i:last-child { width: 55%; }
.nav-toggle:hover .nav-toggle-icon i:last-child { width: 100%; }
.nav-toggle[aria-expanded="true"] { background: #c0f47b; border-color: #c0f47b; transform: rotate(0); }
.nav-toggle[aria-expanded="true"] .nav-toggle-icon i { background: #15271a !important; }
.back-top { border-radius: 9px; border-color: rgba(192, 244, 123, .7); background: conic-gradient(#c0f47b var(--page-progress), rgba(121, 162, 118, .24) var(--page-progress)); }
.back-top::before { border-radius: 6px; background: #0d2427; }
.scroll-progress { background: #c0f47b; }
@media (max-width: 900px) {
  .site-header .primary-nav.is-open,
  .portal-header .portal-nav.is-open { border-radius: 9px; border-color: rgba(168, 224, 122, .23); }
  .site-header .primary-nav.is-open a,
  .portal-header .portal-nav.is-open a { border-radius: 4px; }
}
@media (prefers-reduced-motion: reduce) {
  .btn:not(:disabled):hover,
  .portal-btn:not(:disabled):hover,
  .tl-btn:not(:disabled):hover,
  .nav-toggle:hover { transform: none; }
}

/* Authentication uses the same orbital language as the landing scene. */
.auth-shell .auth-card {
  isolation: isolate;
  color: #edf7f0;
  background: radial-gradient(circle at 5% 5%, rgba(68, 116, 84, .22), transparent 36%), #0a1b22;
  border: 1px solid rgba(152, 214, 161, .23);
  box-shadow: 0 28px 70px rgba(5, 30, 37, .2);
}
.auth-shell .auth-card::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  background: linear-gradient(130deg, rgba(192, 244, 123, .08), transparent 32%, transparent 74%, rgba(98, 191, 169, .07));
  z-index: -1;
}
.auth-shell .auth-card h2,
.auth-shell .auth-card .portal-field,
.auth-shell .auth-card .auth-switch { color: #eef9ef; }
.auth-shell .auth-card .portal-hint,
.auth-shell .auth-card small { color: #abc1ba; }
.auth-shell .auth-card .portal-field input,
.auth-shell .auth-card .auth-phone-input {
  color: #f1fbf3;
  background: #122a31;
  border-color: rgba(169, 221, 177, .26);
}
.auth-shell .auth-card .portal-field input:focus {
  border-color: #c0f47b;
  box-shadow: 0 0 0 3px rgba(192, 244, 123, .14);
}
.auth-shell .auth-card .portal-field input::placeholder { color: #9db5ae; }
.auth-shell .auth-card .portal-btn--secondary { color: #eef9ef; background: #153037; border: 1px solid rgba(169, 221, 177, .3); }
.auth-shell .auth-card .portal-btn--secondary:hover { color: #c0f47b; background: #1a383d; }
.auth-shell .auth-card .text-link { color: #c0f47b; }

/* Mobile navigation behaves like a compact editorial overlay. */
@media (max-width: 900px) {
  .nav-toggle { width: 46px; height: 46px; border-radius: 50%; }
  .site-header .primary-nav.is-open,
  .portal-header .portal-nav.is-open {
    counter-reset: nav-entry;
    inset-inline: 0;
    top: calc(100% + .7rem);
    padding: 1rem 1.2rem;
    border-radius: 12px;
    box-shadow: 0 28px 70px rgba(1, 17, 23, .3);
  }
  .site-header .primary-nav.is-open > a,
  .portal-header .portal-nav.is-open > a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: 55px;
    padding: .65rem .55rem;
    border-bottom: 1px solid rgba(167, 210, 176, .17);
    border-radius: 0;
    font-size: clamp(1rem, 3.2vw, 1.22rem);
    font-weight: 750;
  }
  .site-header .primary-nav.is-open > a::after,
  .portal-header .portal-nav.is-open > a::after {
    counter-increment: nav-entry;
    content: "0" counter(nav-entry);
    color: #b7ef80;
    font: 500 .72rem ui-monospace, Consolas, monospace;
    letter-spacing: .08em;
  }
  .home-page .nav-toggle { border-color: rgba(192, 244, 123, .45); background: rgba(192, 244, 123, .04); }
  .home-page .nav-toggle-icon i { background: #c0f47b !important; }
  .home-page .site-header .primary-nav.is-open { background: #07191e; }
  .home-page .site-header .nav-toggle[aria-expanded="true"] { background: #c0f47b; border-color: #c0f47b; }
}
