
.nav {
  --fg: #f3f6fc;
  --fg-2: #a9b4ca;
  --fg-3: #75819b;
  --line: rgba(255, 255, 255, 0.1);
  --line-strong: rgba(255, 255, 255, 0.22);
  --surface: rgba(255, 255, 255, 0.07);
  --surface-2: rgba(255, 255, 255, 0.12);
  --ok-text: var(--ok-on-dark);
  --warn-text: var(--warn-on-dark);
  --glass: rgba(6, 10, 20, 0.8);
  --glass-open: rgba(6, 10, 20, 0.92);
  --glass-blur: saturate(1.8) blur(20px);

  position: sticky; top: 0; z-index: 50;
  height: var(--nav-h);
  color: var(--fg);
  color-scheme: dark;
}
.nav :focus-visible { outline-color: var(--blue-sky); }

.nav::before {
  content: ""; position: absolute; inset: 0;
  background: var(--glass);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
  transition: background-color var(--dur) var(--ease);
}
.nav:has(.navmenu.is-open) { --glass: var(--glass-open); }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .nav { --glass: rgba(6, 10, 20, 0.97); --glass-open: rgba(6, 10, 20, 0.98); }
}

.nav__bar {
  position: relative; z-index: 2;
  height: 100%;
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
}

.nav__brand {
  flex: 0 1 auto; min-width: 0;
  display: flex; flex-wrap: wrap; align-items: center; column-gap: 10px;
  height: 32px; overflow: hidden;
  font-family: var(--font-display); font-size: 1.125rem; font-weight: 600;
  letter-spacing: -0.012em; line-height: 32px;
  color: var(--fg);
}
.nav__logo {
  width: 32px; height: 32px; flex: none;
  padding: 2px; border-radius: 7.5px;
  background: #fff; object-fit: contain;
}
.nav__name { white-space: nowrap; }

.nav__right { flex: none; display: flex; align-items: center; gap: 6px; }

.nav__cta { flex: none; }

.navtoggle {
  flex: none; width: 44px; height: 44px; margin-right: -13px;
  display: grid; place-items: center;
  border-radius: var(--r-pill);
  color: var(--fg);
  transition: background-color var(--dur) var(--ease);
  -webkit-tap-highlight-color: transparent;
}
.navtoggle:hover { background: var(--surface); }
.navtoggle__box { position: relative; display: block; width: 18px; height: 8px; }
.navtoggle__bar {
  position: absolute; left: 0; width: 100%; height: 1.5px; border-radius: 1px;
  background: currentColor;
  transition: top var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.navtoggle__bar:nth-child(1) { top: 0; }
.navtoggle__bar:nth-child(2) { display: none; }
.navtoggle__bar:nth-child(3) { top: 6.5px; }
.navtoggle.is-open .navtoggle__bar:nth-child(1) { top: 3.25px; transform: rotate(45deg); }
.navtoggle.is-open .navtoggle__bar:nth-child(3) { top: 3.25px; transform: rotate(-45deg); }

.navmenu {
  position: absolute; left: 0; right: 0; top: 100%; z-index: 1;
  max-height: calc(100vh - var(--nav-h));
  max-height: calc(100dvh - var(--nav-h));
  overflow-y: auto; overscroll-behavior: contain;
  background: var(--glass-open);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
  border-bottom: 1px solid var(--line);
  opacity: 0; visibility: hidden;
  transition: opacity var(--dur) var(--ease), visibility 0s linear var(--dur);
}
.navmenu.is-open {
  opacity: 1; visibility: visible;
  transition: opacity var(--dur) var(--ease), visibility 0s;
}

.nav::after {
  content: ""; position: fixed; left: 0; right: 0; bottom: 0; top: var(--nav-h);
  background: rgba(3, 6, 12, 0.5);
  opacity: 0; visibility: hidden;
  transition: opacity var(--dur) var(--ease), visibility 0s linear var(--dur);
}
.nav:has(.navmenu.is-open)::after {
  opacity: 1; visibility: visible;
  transition: opacity var(--dur) var(--ease), visibility 0s;
}

.navmenu__inner {
  display: flex; flex-direction: column;
  padding-block: 20px 32px;
  transform: translateY(-6px);
  transition: transform var(--dur) var(--ease);
}
.navmenu.is-open .navmenu__inner { transform: none; }

.navmenu__links { display: flex; flex-direction: column; align-items: flex-start; }
.navmenu__links a {
  display: flex; align-items: center; min-height: 48px;
  font-family: var(--font-display);
  font-size: clamp(1.625rem, 1.45rem + 0.6vw, 2rem);
  font-weight: 600; letter-spacing: -0.02em; line-height: 1.15;
  color: #d5dcea;
  transition: color var(--dur) var(--ease);
}
.navmenu__links a:hover { color: #fff; }

.navmenu__account {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 16px 24px;
  margin-top: 24px; padding-top: 24px;
  border-top: 1px solid var(--line);
}
.navmenu__account:empty { display: none; }

.nav__user {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px;
  min-width: 0;
}
.nav__email {
  font-size: var(--fs-small); font-weight: 500; color: var(--fg-2);
  overflow-wrap: anywhere; min-width: 0;
}
.navmenu__acct-row { display: flex; flex-wrap: wrap; gap: 8px; }
.nav__iconbtn { gap: 8px; }
.nav__iconbtn svg { width: 16px; height: 16px; }

.nav__pill {
  display: inline-flex; align-items: center;
  padding: 4px 10px; border-radius: var(--r-sm);
  font-size: var(--fs-fine); font-weight: 600; line-height: 1.35;
  white-space: nowrap;
  color: var(--fg-2, #a9b4ca);
  background: var(--surface-2, rgba(255, 255, 255, 0.1));
}
.nav__pill--ok {
  color: var(--ok-text, #4ade80);
  background: color-mix(in srgb, var(--ok) 18%, transparent);
}
.nav__pill--off {
  color: var(--warn-text, #fbbf24);
  background: color-mix(in srgb, var(--warn-on-dark) 14%, transparent);
}

@media (max-width: 559px) {
  .navmenu__account { flex-direction: column; align-items: stretch; }
  .navmenu__acct-row .btn { flex: 1 1 0; }
}
