/* AxonOS house style — loaded first by every page this repository owns.
 *
 * The global navigation used to be written four times: in app.css, stats.css,
 * support.css and pro.css. The four copies had drifted apart — 52 px tall on
 * two pages and padding-sized on a third, 1140 px wide on two and 960 on one,
 * weights of 500 and 550, stacking levels of 50 and 40 — so the same bar
 * shifted a few pixels whenever a reader moved between pages. That is the
 * design-token drift that once left --faint failing contrast on two pages,
 * reached through markup instead of a colour.
 *
 * It lives here once now. Page stylesheets describe their own page and nothing
 * shared. tests/test_design_tokens.py keeps the tokens below equal wherever
 * they are declared, and tests/test_house_style.py fails if a page stops
 * loading this file or starts restyling the bar.
 *
 * report.html and its stylesheet are generated by the scanning engine on every
 * scan, so they carry the engine's own bar until the engine's template is
 * moved onto this file.
 */
:root{
  --bg:#06070b; --ink:#f2f5fb; --dim:#9aa3b8; --faint:#828da1; --accent:#2dd4ff;
  --house-line:rgba(255,255,255,.07);
  --house-display:-apple-system,BlinkMacSystemFont,"SF Pro Display","Helvetica Neue",system-ui,"Segoe UI",Roboto,Arial,sans-serif;
  --house-text:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",system-ui,"Segoe UI",Roboto,Arial,sans-serif;
  --house-width:1140px;
}

/* ------------------------------------------------------------ global bar */
.gnav{position:sticky;top:0;z-index:60;height:48px;
  background:rgba(6,7,11,.76);border-bottom:1px solid var(--house-line);
  backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);
  font-family:var(--house-text);-webkit-font-smoothing:antialiased}
.gnav.static{position:relative}
.gnav-in{max-width:var(--house-width);height:100%;margin:0 auto;padding:0 22px;
  display:flex;align-items:center;justify-content:space-between;gap:20px}
.gnav .brand{display:flex;align-items:center;gap:9px;color:var(--ink);font-size:14.5px;font-weight:600;
  letter-spacing:-0.012em;white-space:nowrap;text-decoration:none}
.gnav .brand:hover{text-decoration:none}
.gnav .brand .m{width:18px;height:18px;border-radius:5px;flex:0 0 auto;
  background:conic-gradient(from 210deg,var(--accent),#a78bfa,#34d399,var(--accent))}
.gnav-links{display:flex;align-items:center;gap:4px}
.gnav .nav-link{color:var(--dim);font-size:13px;font-weight:500;letter-spacing:-0.01em;
  padding:6px 11px;border-radius:980px;text-decoration:none;transition:color .15s,background .15s;white-space:nowrap}
.gnav .nav-link:hover{color:var(--ink);background:rgba(255,255,255,.06);text-decoration:none}
.gnav .nav-link[aria-current="page"]{color:var(--ink);background:rgba(255,255,255,.09)}
.gnav .nav-link.pro{color:var(--accent)}
.gnav .nav-link.pro[aria-current="page"]{color:#03141c;background:var(--accent)}
.gnav .nav-sep{width:1px;height:16px;background:var(--house-line);margin:0 6px}

@media (max-width:760px){
  .gnav-in{padding:0 16px;gap:10px}
  .gnav .brand{font-size:14px}
  .gnav .nav-link{padding:6px 8px;font-size:12.5px}
  .gnav .nav-secondary,.gnav .nav-sep{display:none}
}
/* On a phone the wordmark gives way to the links: the mark still goes home and
   the name stays for screen readers. Five links fit at 360 px; below that the
   row scrolls rather than clipping the last one, which is what it did first. */
.gnav-links{overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.gnav-links::-webkit-scrollbar{display:none}
@media (max-width:520px){
  .gnav .brand .bt{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .gnav .nav-link{padding:6px 9px}
}
