/*
  623 PC layout normalization
  Purpose: keep the production page content intact while enforcing the same
  header/navigation geometry used by index.html and safe responsive behavior.
*/
:root { --pc623-layout-max: 1200px; }

html { -webkit-text-size-adjust: 100%; }
body { min-width: 320px; overflow-x: hidden; }
img, video, iframe, svg, canvas { max-width: 100%; }
img, video { height: auto; }
iframe { border: 0; }

/* Canonical navigation: index.html reference */
nav.nav {
  position: sticky !important;
  top: 0 !important;
  z-index: 1000 !important;
  width: 100% !important;
  color: #fff !important;
  background: rgba(3,7,18,.94) !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(255,255,255,.10) !important;
  box-shadow: 0 10px 36px rgba(0,0,0,.24) !important;
  backdrop-filter: blur(18px) !important;
  -webkit-backdrop-filter: blur(18px) !important;
}
nav.nav > .container {
  width: min(var(--pc623-layout-max), calc(100% - 34px)) !important;
  max-width: none !important;
  min-height: 76px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  flex-wrap: nowrap !important;
  gap: 20px !important;
}
nav.nav .brand {
  display: flex !important;
  align-items: center !important;
  gap: 13px !important;
  flex: 0 0 auto !important;
  min-width: 0 !important;
  color: #fff !important;
  text-decoration: none !important;
  font-weight: 1000 !important;
  letter-spacing: -.02em !important;
}
nav.nav .brand-mark {
  width: 56px !important;
  height: 56px !important;
  min-width: 56px !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 18px !important;
  color: #fff !important;
  background: radial-gradient(circle at 36% 30%, #ffe13b, #ff8a00 34%, #f20d18 68%, #5a0208) !important;
  box-shadow: 0 0 28px rgba(242,13,24,.34), inset 0 0 18px rgba(255,255,255,.15) !important;
  border: 1px solid rgba(255,255,255,.14) !important;
}
nav.nav .brand strong { display: block !important; line-height: 1.15 !important; white-space: nowrap !important; color: #fff !important; }
nav.nav .brand small { display: block !important; margin-top: 2px !important; color: #ffde75 !important; font-weight: 800 !important; letter-spacing: .02em !important; white-space: nowrap !important; }
nav.nav .nav-links {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 18px !important;
  flex: 1 1 auto !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 14px !important;
  font-weight: 850 !important;
  color: #f2f4f8 !important;
  overflow: visible !important;
}
nav.nav .nav-links > a,
nav.nav .nav-dropdown-toggle {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  min-height: 44px !important;
  margin: 0 !important;
  border: 0 !important;
  padding: 0 !important;
  color: inherit !important;
  background: transparent !important;
  cursor: pointer !important;
  font: inherit !important;
  white-space: nowrap !important;
  text-decoration: none !important;
}
nav.nav .nav-links > a:hover,
nav.nav .nav-links > a:focus-visible,
nav.nav .nav-dropdown-toggle:hover,
nav.nav .nav-dropdown-toggle:focus-visible { color: #ffe13b !important; }
nav.nav .nav-links > a[aria-current="page"]::after {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 3px !important;
  height: 3px !important;
  border-radius: 999px !important;
  background: linear-gradient(90deg, #f20d18, #ff8a00, #ffe13b) !important;
}
nav.nav .nav-dropdown { position: relative !important; }
nav.nav .nav-dropdown-toggle::after { content: "⌄" !important; margin-left: 6px !important; color: #ffe13b !important; }
nav.nav .nav-dropdown-menu {
  position: absolute !important;
  top: calc(100% + 8px) !important;
  left: 50% !important;
  right: auto !important;
  transform: translateX(-50%) translateY(8px) !important;
  min-width: 290px !important;
  max-width: min(360px, calc(100vw - 24px)) !important;
  margin: 0 !important;
  padding: 12px !important;
  border: 1px solid rgba(255,255,255,.15) !important;
  border-radius: 18px !important;
  background: rgba(5,10,22,.98) !important;
  box-shadow: 0 26px 70px rgba(0,0,0,.48) !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease !important;
}
nav.nav .nav-dropdown:hover .nav-dropdown-menu,
nav.nav .nav-dropdown:focus-within .nav-dropdown-menu,
nav.nav .nav-dropdown.open .nav-dropdown-menu {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: translateX(-50%) translateY(0) !important;
}
nav.nav .nav-dropdown-menu a {
  display: block !important;
  padding: 10px 12px !important;
  border-radius: 11px !important;
  color: #eef4ff !important;
  background: transparent !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  text-decoration: none !important;
}
nav.nav .nav-dropdown-menu a:hover,
nav.nav .nav-dropdown-menu a:focus-visible { color: #ffe13b !important; background: rgba(0,168,255,.12) !important; }
nav.nav .nav-actions { display: flex !important; align-items: center !important; gap: 12px !important; flex: 0 0 auto !important; margin: 0 !important; }
nav.nav .theme-toggle {
  min-height: 46px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 9px !important;
  padding: 0 17px !important;
  border: 3px solid #ffe13b !important;
  border-radius: 999px !important;
  color: #030712 !important;
  background: #f8fafc !important;
  font-size: 13px !important;
  font-weight: 950 !important;
  cursor: pointer !important;
  box-shadow: 0 14px 34px rgba(0,0,0,.24) !important;
}
nav.nav .toggle-dot { width: 13px !important; height: 13px !important; border-radius: 999px !important; background: #ffb000 !important; box-shadow: 0 0 0 4px rgba(255,176,0,.20) !important; }
nav.nav .nav-actions .btn { white-space: nowrap !important; }

/* Safe page-width normalization; does not alter page copy or section design. */
main, header, section, footer { max-width: 100%; }
main table { max-width: 100%; }
pre, code { overflow-wrap: anywhere; }

@media (max-width: 1120px) and (min-width: 901px) {
  nav.nav > .container { flex-wrap: wrap !important; padding: 10px 0 !important; }
  nav.nav .nav-links { order: 3 !important; width: 100% !important; justify-content: flex-start !important; overflow-x: auto !important; padding-bottom: 4px !important; scrollbar-width: thin !important; }
}

@media (max-width: 900px) {
  nav.nav > .container {
    width: min(var(--pc623-layout-max), calc(100% - 24px)) !important;
    min-height: 68px !important;
    padding: 10px 0 !important;
    flex-wrap: nowrap !important;
    gap: 12px !important;
  }
  nav.nav .brand { flex: 1 1 auto !important; }
  nav.nav .brand-mark { width: 48px !important; height: 48px !important; min-width: 48px !important; border-radius: 15px !important; }
  nav.nav .brand strong { white-space: normal !important; line-height: 1.15 !important; font-size: 13px !important; }
  nav.nav .brand small { display: none !important; }
  nav.nav .nav-links,
  nav.nav .nav-actions { display: none !important; }
  .pc623-mobile-nav-toggle { flex: 0 0 auto !important; }

  /* Prevent common fixed-width page elements from offsetting mobile layouts. */
  main .container, header .container, section .container, footer .container,
  main .wrap, header .wrap, section .wrap, footer .wrap,
  main .shell, header .shell, section .shell, footer .shell {
    max-width: calc(100% - 24px);
  }
  table { display: block; width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  input, select, textarea, button { max-width: 100%; }
}

@media (max-width: 480px) {
  nav.nav > .container { width: calc(100% - 20px) !important; gap: 8px !important; }
  nav.nav .brand { gap: 9px !important; }
  nav.nav .brand-mark { width: 44px !important; height: 44px !important; min-width: 44px !important; font-size: 14px !important; }
  nav.nav .brand strong { font-size: 12px !important; }
  .pc623-mobile-nav-toggle { min-width: 46px !important; padding: 0 11px !important; }
}
