/* GN-GLOBAL-COMMAND-HEADER-V2
 * Final cascade layer for the shared logo / CTA / theme / menu geometry.
 */
:root {
  --gn-command-control-mobile: 44px;
  --gn-command-control-desktop: 52px;
  --gn-command-header-mobile: 56px;
  --gn-command-header-desktop: 72px;
}

html body #globalCommandHeader[data-gn-command-header="v2"] {
  position: sticky !important;
  inset-block-start: 0 !important;
  z-index: 1900 !important;
  isolation: isolate !important;
  overflow: visible !important;
  border-block-end: 1px solid var(--gn-colour-line) !important;
  background: color-mix(in srgb, var(--gn-colour-surface) 88%, transparent) !important;
  box-shadow: var(--gn-shadow-xs) !important;
  color: var(--gn-colour-text) !important;
  backdrop-filter: blur(18px) saturate(1.08) !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] .launch-header-inner {
  box-sizing: border-box !important;
  display: grid !important;
  grid-template-rows: auto !important;
  align-items: center !important;
  justify-content: stretch !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] :is(.launch-brand, .launch-logo, .launch-logo picture, .launch-logo img) {
  box-sizing: border-box !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] .launch-brand {
  grid-column: 1 !important;
  grid-row: 1 !important;
  justify-self: start !important;
  overflow: hidden !important;
  border: 1px solid color-mix(in srgb, var(--gn-colour-accent) 42%, var(--gn-colour-line)) !important;
  border-radius: var(--gn-radius-lg) !important;
  background: var(--gn-colour-surface-raised) !important;
  box-shadow: var(--gn-shadow-sm) !important;
  text-decoration: none !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] .launch-brand img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] :is(.gn-command-brand-copy, .launch-brand > span:not(.launch-logo)) {
  display: none !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] .launch-mobile-request {
  position: relative !important;
  inset: auto !important;
  grid-column: 2 !important;
  grid-row: 1 !important;
  isolation: isolate !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: var(--gn-space-2) !important;
  min-width: 0 !important;
  max-width: 360px !important;
  margin: 0 !important;
  overflow: hidden !important;
  border: 1px solid color-mix(in srgb, var(--gn-colour-accent) 50%, var(--gn-colour-line)) !important;
  border-radius: var(--gn-radius-lg) !important;
  background: var(--gn-gradient-brand) !important;
  color: #25121d !important;
  box-shadow: var(--gn-shadow-sm), inset 0 1px 0 rgba(255, 255, 255, 0.42) !important;
  font: 560 0.9rem/1 var(--gn-font-body) !important;
  text-align: center !important;
  text-decoration: none !important;
  transform: none !important;
  white-space: nowrap !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] .launch-mobile-request::before {
  content: "" !important;
  display: block !important;
  width: 13px !important;
  height: 13px !important;
  flex: 0 0 13px !important;
  background: currentColor !important;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 2 1.65 6.35L20 10l-6.35 1.65L12 18l-1.65-6.35L4 10l6.35-1.65L12 2Z' fill='black'/%3E%3C/svg%3E") center / contain no-repeat !important;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 2 1.65 6.35L20 10l-6.35 1.65L12 18l-1.65-6.35L4 10l6.35-1.65L12 2Z' fill='black'/%3E%3C/svg%3E") center / contain no-repeat !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] .launch-mobile-request::after {
  content: none !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] .launch-mobile-request span {
  position: static !important;
  display: block !important;
  min-width: 0 !important;
  max-width: 100% !important;
  overflow: hidden !important;
  color: inherit !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] .launch-actions {
  grid-column: 3 !important;
  grid-row: 1 !important;
  display: grid !important;
  place-items: center !important;
  width: auto !important;
  min-width: 0 !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] .launch-actions > :not(.launch-theme-toggle) {
  display: none !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] :is(#themeToggle.launch-theme-toggle, #mobileMenuToggle.launch-mobile-toggle) {
  position: relative !important;
  inset: auto !important;
  isolation: isolate !important;
  display: inline-grid !important;
  place-items: center !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
  overflow: hidden !important;
  border: 1px solid var(--gn-colour-line-strong) !important;
  border-radius: var(--gn-radius-lg) !important;
  background: var(--gn-gradient-glass) !important;
  color: var(--gn-colour-text) !important;
  box-shadow: var(--gn-shadow-sm), inset 0 1px 0 rgba(255, 255, 255, 0.16) !important;
  cursor: pointer !important;
  transform: none !important;
  -webkit-tap-highlight-color: transparent !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] #mobileMenuToggle.launch-mobile-toggle {
  grid-column: 4 !important;
  grid-row: 1 !important;
  justify-self: end !important;
  background: color-mix(in srgb, var(--gn-colour-brand-soft) 82%, var(--gn-colour-surface)) !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] :is(#themeToggle, #mobileMenuToggle) > :is(i, svg, span) {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] :is(#themeToggle, #mobileMenuToggle)::before {
  content: "" !important;
  display: block !important;
  width: 25px !important;
  height: 25px !important;
  border: 0 !important;
  background: currentColor !important;
  box-shadow: none !important;
  transform: none !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] #themeToggle::before {
  background: linear-gradient(135deg, var(--gn-colour-text) 0%, var(--gn-colour-brand) 100%) !important;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.6 14.55A8.75 8.75 0 0 1 9.45 3.4a8.8 8.8 0 1 0 11.15 11.15Z' fill='black'/%3E%3C/svg%3E") center / contain no-repeat !important;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.6 14.55A8.75 8.75 0 0 1 9.45 3.4a8.8 8.8 0 1 0 11.15 11.15Z' fill='black'/%3E%3C/svg%3E") center / contain no-repeat !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] #themeToggle[aria-pressed="true"]::before {
  background: linear-gradient(135deg, #fffce5 0%, #f6b45e 55%, var(--gn-colour-brand) 100%) !important;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='4' fill='black'/%3E%3Cpath d='M12 2.4v2M12 19.6v2M2.4 12h2M19.6 12h2M5.2 5.2l1.42 1.42M17.38 17.38l1.42 1.42M5.2 18.8l1.42-1.42M17.38 6.62l1.42-1.42' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat !important;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='4' fill='black'/%3E%3Cpath d='M12 2.4v2M12 19.6v2M2.4 12h2M19.6 12h2M5.2 5.2l1.42 1.42M17.38 17.38l1.42 1.42M5.2 18.8l1.42-1.42M17.38 6.62l1.42-1.42' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] #mobileMenuToggle::before {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 7h14M5 12h14M5 17h14' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat !important;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 7h14M5 12h14M5 17h14' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] #mobileMenuToggle[aria-expanded="true"]::before {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m7 7 10 10M17 7 7 17' fill='none' stroke='black' stroke-width='2.3' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat !important;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m7 7 10 10M17 7 7 17' fill='none' stroke='black' stroke-width='2.3' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] :is(#themeToggle, #mobileMenuToggle)::after {
  content: none !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] :is(#themeToggle, #mobileMenuToggle):focus-visible,
html body #globalCommandHeader[data-gn-command-header="v2"] .launch-mobile-request:focus-visible,
html body #globalCommandHeader[data-gn-command-header="v2"] .launch-brand:focus-visible {
  outline: 2px solid var(--gn-colour-brand) !important;
  outline-offset: 3px !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] .launch-nav:not(.open) {
  display: none !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] .launch-nav.open {
  position: fixed !important;
  z-index: 1890 !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-auto-flow: row !important;
  align-items: stretch !important;
  gap: var(--gn-space-3) !important;
  max-height: calc(100dvh - var(--gn-command-header-mobile) - var(--gn-space-8)) !important;
  margin: 0 !important;
  overflow: auto !important;
  border: 1px solid var(--gn-colour-line-strong) !important;
  border-radius: var(--gn-radius-xl) !important;
  background: color-mix(in srgb, var(--gn-colour-surface-raised) 94%, transparent) !important;
  box-shadow: var(--gn-shadow-lg), inset 0 1px 0 rgba(255, 255, 255, 0.12) !important;
  color: var(--gn-colour-text) !important;
  padding: var(--gn-space-3) !important;
  backdrop-filter: blur(20px) saturate(1.08) !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] .launch-nav.open > :is(.launch-account-menu, .launch-nav-links) {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] .launch-account-menu {
  display: grid !important;
  gap: var(--gn-space-3) !important;
  border: 1px solid var(--gn-colour-line) !important;
  border-radius: var(--gn-radius-lg) !important;
  background: var(--gn-gradient-glass) !important;
  padding: var(--gn-space-3) !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] .launch-account-menu-head {
  display: flex !important;
  align-items: center !important;
  gap: var(--gn-space-2) !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] .launch-account-menu-logo {
  display: block !important;
  width: 34px !important;
  height: 34px !important;
  flex: 0 0 34px !important;
  overflow: hidden !important;
  border: 1px solid var(--gn-colour-line) !important;
  border-radius: var(--gn-radius-md) !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] .launch-account-menu-logo :is(picture, img) {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] .launch-account-menu-head :is(p, span) {
  margin: 0 !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] .launch-account-menu-head p {
  color: var(--gn-colour-text) !important;
  font-weight: 650 !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] .launch-account-menu-head span {
  color: var(--gn-colour-text-muted) !important;
  font-size: 0.76rem !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] :is(.launch-account-menu-grid, .launch-nav-links) {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: var(--gn-space-2) !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] :is(.launch-account-menu-link, .launch-nav-links a) {
  box-sizing: border-box !important;
  min-width: 0 !important;
  min-height: 48px !important;
  border: 1px solid var(--gn-colour-line) !important;
  border-radius: var(--gn-radius-md) !important;
  background: color-mix(in srgb, var(--gn-colour-surface) 82%, transparent) !important;
  color: var(--gn-colour-text) !important;
  text-decoration: none !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] .launch-account-menu-link {
  display: grid !important;
  grid-template-columns: 20px minmax(0, 1fr) !important;
  align-items: center !important;
  gap: var(--gn-space-2) !important;
  padding: var(--gn-space-2) !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] .launch-account-menu-link :is(strong, small) {
  display: block !important;
  overflow-wrap: anywhere !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] .launch-account-menu-link small {
  margin-block-start: 2px !important;
  color: var(--gn-colour-text-muted) !important;
  font-size: 0.7rem !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] .launch-nav-links a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: var(--gn-space-2) !important;
  text-align: center !important;
}

html body #globalCommandHeader[data-gn-command-header="v2"] .launch-nav-links a.active {
  border-color: var(--gn-colour-line-strong) !important;
  background: color-mix(in srgb, var(--gn-colour-brand-soft) 78%, var(--gn-colour-surface)) !important;
}

html body.gn-command-header-ready .provider-dashboard-topbar[hidden] {
  display: none !important;
}

/* The shared header owns theme switching on routes that load this stylesheet.
 * Hide the legacy duplicate before first paint, not after JS adds the ready
 * class, so the remaining header action keeps stable geometry. */
html body .ops-header-actions .admin-theme-toggle {
  display: none !important;
}

@media (max-width: 760px) {
  html body #globalCommandHeader[data-gn-command-header="v2"] .launch-header-inner {
    grid-template-columns: var(--gn-command-control-mobile) minmax(0, 1fr) var(--gn-command-control-mobile) var(--gn-command-control-mobile) !important;
    gap: 6px !important;
    width: 100% !important;
    max-width: none !important;
    min-height: var(--gn-command-header-mobile) !important;
    margin: 0 !important;
    padding: 6px max(12px, env(safe-area-inset-right, 0px)) 6px max(12px, env(safe-area-inset-left, 0px)) !important;
  }

  html body #globalCommandHeader[data-gn-command-header="v2"] :is(.launch-brand, .launch-logo, .launch-logo picture, .launch-logo img, #themeToggle.launch-theme-toggle, #mobileMenuToggle.launch-mobile-toggle) {
    width: var(--gn-command-control-mobile) !important;
    min-width: var(--gn-command-control-mobile) !important;
    max-width: var(--gn-command-control-mobile) !important;
    height: var(--gn-command-control-mobile) !important;
    min-height: var(--gn-command-control-mobile) !important;
    max-height: var(--gn-command-control-mobile) !important;
    border-radius: 14px !important;
  }

  html body #globalCommandHeader[data-gn-command-header="v2"] .launch-mobile-request {
    justify-self: stretch !important;
    width: 100% !important;
    height: var(--gn-command-control-mobile) !important;
    min-height: var(--gn-command-control-mobile) !important;
    padding-inline: var(--gn-space-2) !important;
    font-size: 0.84rem !important;
  }

  html body #globalCommandHeader[data-gn-command-header="v2"] .launch-nav.open {
    inset-block-start: calc(var(--gn-command-header-mobile) + var(--gn-space-2)) !important;
    inset-inline: max(12px, env(safe-area-inset-left, 0px)) max(12px, env(safe-area-inset-right, 0px)) !important;
    width: auto !important;
  }
}

@media (max-width: 340px) {
  :root {
    --gn-command-control-mobile: 44px;
  }

  html body #globalCommandHeader[data-gn-command-header="v2"] .launch-header-inner {
    gap: 5px !important;
    padding-inline: max(8px, env(safe-area-inset-left, 0px)) max(8px, env(safe-area-inset-right, 0px)) !important;
  }

  html body #globalCommandHeader[data-gn-command-header="v2"] .launch-mobile-request {
    gap: 6px !important;
    padding-inline: 6px !important;
    font-size: 0.8rem !important;
  }
}

@media (min-width: 761px) {
  html body #globalCommandHeader[data-gn-command-header="v2"] .launch-header-inner {
    grid-template-columns: var(--gn-command-control-desktop) minmax(180px, 1fr) var(--gn-command-control-desktop) var(--gn-command-control-desktop) !important;
    gap: var(--gn-space-4) !important;
    width: calc(100vw - 112px) !important;
    max-width: none !important;
    min-height: var(--gn-command-header-desktop) !important;
    margin-inline: max(56px, env(safe-area-inset-left, 0px)) max(56px, env(safe-area-inset-right, 0px)) !important;
    padding-block: 10px !important;
  }

  html body #globalCommandHeader[data-gn-command-header="v2"] :is(.launch-brand, .launch-logo, .launch-logo picture, .launch-logo img, #themeToggle.launch-theme-toggle, #mobileMenuToggle.launch-mobile-toggle) {
    width: var(--gn-command-control-desktop) !important;
    min-width: var(--gn-command-control-desktop) !important;
    max-width: var(--gn-command-control-desktop) !important;
    height: var(--gn-command-control-desktop) !important;
    min-height: var(--gn-command-control-desktop) !important;
    max-height: var(--gn-command-control-desktop) !important;
  }

  html body #globalCommandHeader[data-gn-command-header="v2"] .launch-mobile-request {
    justify-self: center !important;
    width: min(360px, 100%) !important;
    height: var(--gn-command-control-desktop) !important;
    min-height: var(--gn-command-control-desktop) !important;
    margin-inline: 0 !important;
    padding-inline: var(--gn-space-4) !important;
  }

  html body #globalCommandHeader[data-gn-command-header="v2"] .launch-nav.open {
    inset-block-start: calc(var(--gn-command-header-desktop) + var(--gn-space-2)) !important;
    inset-inline: auto max(56px, env(safe-area-inset-right, 0px)) !important;
    width: min(390px, calc(100vw - 112px)) !important;
    max-height: calc(100dvh - var(--gn-command-header-desktop) - var(--gn-space-8)) !important;
  }
}

@media (hover: hover) and (pointer: fine) {
  html body #globalCommandHeader[data-gn-command-header="v2"] :is(.launch-mobile-request, #themeToggle, #mobileMenuToggle):hover {
    filter: saturate(1.06) brightness(1.025) !important;
    transform: translateY(-1px) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  html body #globalCommandHeader[data-gn-command-header="v2"] *,
  html body #globalCommandHeader[data-gn-command-header="v2"] *::before,
  html body #globalCommandHeader[data-gn-command-header="v2"] *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}

@media (forced-colors: active) {
  html body #globalCommandHeader[data-gn-command-header="v2"],
  html body #globalCommandHeader[data-gn-command-header="v2"] :is(.launch-brand, .launch-mobile-request, #themeToggle, #mobileMenuToggle, .launch-nav.open, .launch-account-menu, .launch-account-menu-link, .launch-nav-links a) {
    border: 1px solid CanvasText !important;
    background: Canvas !important;
    color: CanvasText !important;
    box-shadow: none !important;
  }
}
