/* ==========================================================================
   EMPTYJET Global Aviation Database — stylesheet
   Built from docs/advisors/DESIGN.md (harmonized with hotels.emptyjet.com).
   Single stylesheet, theme-aware, clean crawlable HTML (SEO/GEO: no content
   depends on JS). Tokens § then base § then components § then layout.
   ========================================================================== */

/* ------------------------------- Tokens ---------------------------------- */
:root {
  color-scheme: light;
  --bg:#f3f6f9; --surface:#fff; --surface-2:#eef2f6;
  --ink:#1d1d1f; --ink-2:#5c6470; --ink-3:#8b929c;
  --hairline:rgba(60,60,67,.16); --hairline-strong:rgba(60,60,67,.30);
  --navy:#0f172a; --navy-2:#1e293b;
  --teal:#00a894; --teal-bright:#00c2a8; --teal-soft:#e6f8f5;
  --champagne:#8a6d1f; --champagne-bright:#d8b25a; --champagne-soft:#f7f0dd;
  --st-live:#0e8f6e; --st-live-bg:#e3f6ee;
  --st-recent:#2f6f4f; --st-recent-bg:#e9f2ec;
  --st-known:#8a6d1f; --st-known-bg:#f6efd9;
  --st-none:#8b929c; --st-none-bg:#eef1f4;
  --conf-high:#0e8f6e; --conf-med:#b8912f; --conf-low:#c0603a;
  --font-display:"Archivo",system-ui,sans-serif;
  --font-sans:"Inter",system-ui,-apple-system,sans-serif;
  --font-serif:"Fraunces",Georgia,"Times New Roman",serif;
  --font-mono:"IBM Plex Mono",ui-monospace,"SF Mono",monospace;
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px;
  --sp-6:32px; --sp-7:48px; --sp-8:64px; --sp-9:96px;
  --w-content:72rem; --w-prose:44rem;
  --radius-sm:8px; --radius:14px; --radius-lg:20px; --radius-pill:999px;
  --shadow-card:0 1px 2px rgba(15,23,42,.05),0 8px 24px -12px rgba(15,23,42,.18);
  --shadow-lift:0 2px 4px rgba(15,23,42,.06),0 18px 40px -16px rgba(15,23,42,.28);
  --ease:cubic-bezier(.25,1,.5,1); --ease-inout:cubic-bezier(.65,0,.35,1);
  --dur-1:120ms; --dur-2:200ms; --dur-3:300ms;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --bg:#0a0a0b; --surface:#131317; --surface-2:#1b1c22;
    --ink:#f4f5f7; --ink-2:#a7adb8; --ink-3:#6f7681;
    --hairline:rgba(255,255,255,.12); --hairline-strong:rgba(255,255,255,.22);
    --navy:#e8edf4; --navy-2:#cdd6e2;
    --teal:#00c2a8; --teal-bright:#3be0c9; --teal-soft:rgba(0,194,168,.14);
    --champagne:#d8b25a; --champagne-bright:#e6c877; --champagne-soft:rgba(216,178,90,.14);
    --st-live:#34d399; --st-live-bg:rgba(52,211,153,.15);
    --st-recent:#7fce9f; --st-recent-bg:rgba(127,206,159,.13);
    --st-known:#d8b25a; --st-known-bg:rgba(216,178,90,.14);
    --st-none:#6f7681; --st-none-bg:rgba(255,255,255,.06);
    --conf-high:#34d399; --conf-med:#d8b25a; --conf-low:#e08a63;
    --shadow-card:0 1px 2px rgba(0,0,0,.5),0 8px 24px -12px rgba(0,0,0,.6);
    --shadow-lift:0 2px 4px rgba(0,0,0,.5),0 18px 40px -16px rgba(0,0,0,.7);
  }
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --bg:#0a0a0b; --surface:#131317; --surface-2:#1b1c22;
  --ink:#f4f5f7; --ink-2:#a7adb8; --ink-3:#6f7681;
  --hairline:rgba(255,255,255,.12); --hairline-strong:rgba(255,255,255,.22);
  --navy:#e8edf4; --navy-2:#cdd6e2;
  --teal:#00c2a8; --teal-bright:#3be0c9; --teal-soft:rgba(0,194,168,.14);
  --champagne:#d8b25a; --champagne-bright:#e6c877; --champagne-soft:rgba(216,178,90,.14);
  --st-live:#34d399; --st-live-bg:rgba(52,211,153,.15);
  --st-recent:#7fce9f; --st-recent-bg:rgba(127,206,159,.13);
  --st-known:#d8b25a; --st-known-bg:rgba(216,178,90,.14);
  --st-none:#6f7681; --st-none-bg:rgba(255,255,255,.06);
  --conf-high:#34d399; --conf-med:#d8b25a; --conf-low:#e08a63;
  --shadow-card:0 1px 2px rgba(0,0,0,.5),0 8px 24px -12px rgba(0,0,0,.6);
  --shadow-lift:0 2px 4px rgba(0,0,0,.5),0 18px 40px -16px rgba(0,0,0,.7);
}

/* -------------------------------- Base ----------------------------------- */
*,*::before,*::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--font-sans); font-size:1rem; line-height:1.65;
  font-feature-settings:"cv11","ss01","calt"; text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased; }
img { max-width:100%; height:auto; display:block; }
a { color:var(--teal); text-decoration:none; }
a:hover { text-decoration:underline; }
h1,h2,h3 { font-family:var(--font-display); font-weight:700; letter-spacing:-.02em;
  color:var(--ink); margin:0 0 var(--sp-4); }
h1 { font-size:clamp(2rem,4vw,3.25rem); line-height:1.05; }
h2 { font-size:1.5rem; line-height:1.2; }
h3 { font-size:1.125rem; line-height:1.3; }
p { margin:0 0 var(--sp-4); }
:focus-visible { outline:2px solid var(--teal); outline-offset:2px; border-radius:3px; }
.label { font:600 .6875rem/1.4 var(--font-sans); letter-spacing:.06em;
  text-transform:uppercase; color:var(--ink-3); }
.mono { font-family:var(--font-mono); font-feature-settings:"tnum","zero"; }
.lede { font-family:var(--font-serif); font-size:1.1875rem; line-height:1.6;
  color:var(--ink); max-width:var(--w-prose); }
.container { max-width:var(--w-content); margin-inline:auto; padding-inline:var(--sp-5); }
.section { padding-block:var(--sp-8); }
.section + .section { padding-top:0; }
.visually-hidden { position:absolute; width:1px; height:1px; overflow:hidden;
  clip:rect(0 0 0 0); white-space:nowrap; }
@media (max-width:640px){ .container{ padding-inline:var(--sp-4); } .section{ padding-block:var(--sp-6);} }

/* ------------------------------- Header ---------------------------------- */
.site-header { position:sticky; top:0; z-index:50; background:var(--surface);
  border-bottom:1px solid var(--hairline); }
.site-header .container { display:flex; align-items:center; gap:var(--sp-5);
  min-height:60px; }
.wordmark { font-family:var(--font-display); font-weight:800; font-stretch:125%;
  letter-spacing:.08em; text-transform:uppercase; color:var(--ink); font-size:1.05rem;
  white-space:nowrap; }
.wordmark:hover { text-decoration:none; }
.wordmark .tag { font-family:var(--font-sans); font-weight:500; font-stretch:normal;
  letter-spacing:.02em; text-transform:none; color:var(--ink-2); font-size:.8125rem;
  margin-left:.5ch; }
.header-search { flex:1; max-width:32rem; }
.header-search input { width:100%; font:400 .9375rem var(--font-sans);
  padding:8px 14px; border:1px solid var(--hairline); border-radius:var(--radius-pill);
  background:var(--bg); color:var(--ink); }
.header-nav { display:flex; gap:var(--sp-4); align-items:center; }
.header-nav a { color:var(--ink-2); font-size:.9375rem; }
.theme-toggle { background:none; border:1px solid var(--hairline); border-radius:var(--radius-pill);
  width:34px; height:34px; cursor:pointer; color:var(--ink-2); font-size:15px; }
@media (max-width:820px){ .header-search{ display:none; } }

/* ----------------------------- Breadcrumb -------------------------------- */
.breadcrumb { background:var(--surface-2); border-bottom:1px solid var(--hairline); }
.breadcrumb ol { display:flex; flex-wrap:wrap; align-items:center; gap:6px;
  list-style:none; margin:0; padding:10px 0; font-size:.8125rem; }
.breadcrumb li { display:flex; align-items:center; gap:6px; color:var(--ink-2); }
.breadcrumb li a { color:var(--ink-2); }
.breadcrumb li[aria-current="page"] { color:var(--ink); }
.breadcrumb .sep { color:var(--ink-3); }

/* -------------------------------- Hero ----------------------------------- */
.hero { padding-block:var(--sp-7) var(--sp-6); }
.hero .cat-label { color:var(--teal); }
.hero h1 { margin-bottom:var(--sp-3); }
.hero .subtitle { color:var(--ink-2); font-size:1.0625rem; max-width:var(--w-prose); }
.hero-top { display:flex; flex-wrap:wrap; gap:var(--sp-3); align-items:center;
  margin-bottom:var(--sp-3); }

/* ----------------------------- Stat tiles -------------------------------- */
.stat-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:var(--sp-3); margin-block:var(--sp-5); }
.stat { border:1px solid var(--hairline); border-radius:var(--radius-sm);
  padding:var(--sp-3) var(--sp-4); background:var(--surface); }
.stat .label { margin-bottom:4px; }
.stat .value { font:500 1.375rem/1.2 var(--font-mono); font-feature-settings:"tnum","zero";
  color:var(--ink); }
.stat .value .u { font-size:.8125rem; color:var(--ink-3); margin-left:3px; }
.stat .sub { font-size:.75rem; color:var(--ink-3); margin-top:2px; }

/* ----------------------------- Spec table -------------------------------- */
.spec { width:100%; border-collapse:collapse; background:var(--surface);
  border:1px solid var(--hairline); border-radius:var(--radius); overflow:hidden;
  font-size:.875rem; }
.spec caption { text-align:left; font:600 .75rem/1.4 var(--font-sans);
  letter-spacing:.06em; text-transform:uppercase; color:var(--ink-3);
  padding:var(--sp-4) var(--sp-4) var(--sp-3); }
.spec thead th { background:var(--navy); color:var(--surface);
  font:600 .6875rem/1.4 var(--font-sans); letter-spacing:.06em; text-transform:uppercase;
  text-align:left; padding:10px 14px; }
:root[data-theme="dark"] .spec thead th,
:root:not([data-theme="light"]) .spec thead th { color:var(--bg); }
.spec th[scope="row"] { color:var(--ink-2); font-weight:500; text-align:left; }
.spec td, .spec th[scope="row"] { padding:10px 14px; border-top:1px solid var(--hairline);
  vertical-align:baseline; }
.spec tbody tr:nth-child(odd) td, .spec tbody tr:nth-child(odd) th[scope="row"] { background:var(--surface-2); }
.spec .val { font:500 .9375rem/1.4 var(--font-mono); font-feature-settings:"tnum","zero";
  text-align:right; white-space:nowrap; color:var(--ink); }
.spec .unit { color:var(--ink-3); font-family:var(--font-mono); }
.spec-group th { background:var(--surface-2); color:var(--ink-2);
  font-weight:600; letter-spacing:.04em; text-transform:uppercase; font-size:.6875rem;
  padding:8px 14px; }
.spec-scroll { overflow-x:auto; -webkit-overflow-scrolling:touch; border-radius:var(--radius); }

/* --------------------------- Provenance chip ----------------------------- */
.prov { display:inline-flex; align-items:center; gap:6px; padding:2px 9px;
  font:500 .6875rem/1.5 var(--font-sans); color:var(--ink-2); background:var(--surface-2);
  border:1px solid var(--hairline); border-radius:var(--radius-pill); cursor:help;
  transition:background var(--dur-1) var(--ease); }
.prov:hover { background:var(--teal-soft); text-decoration:none; }
.prov::before { content:""; width:7px; height:7px; border-radius:50%;
  background:var(--conf-med); flex:0 0 auto; }
.prov[data-conf="high"]::before { background:var(--conf-high); }
.prov[data-conf="low"]::before { background:var(--conf-low); }
.prov .yr { color:var(--ink-3); font-family:var(--font-mono); }

/* -------------------------- Position status ------------------------------ */
.status { display:inline-flex; align-items:center; gap:6px; padding:3px 10px;
  border-radius:var(--radius-pill); font:600 .6875rem/1.4 var(--font-sans);
  letter-spacing:.04em; text-transform:uppercase; color:var(--st-none); background:var(--st-none-bg); }
.status::before { content:""; width:8px; height:8px; border-radius:50%;
  background:currentColor; flex:0 0 auto; }
.status[data-state="live"]{ color:var(--st-live); background:var(--st-live-bg); }
.status[data-state="recent"]{ color:var(--st-recent); background:var(--st-recent-bg); }
.status[data-state="known"]{ color:var(--st-known); background:var(--st-known-bg); }
.status[data-state="none"]{ color:var(--st-none); background:var(--st-none-bg); }
.status[data-state="none"]::before { background:transparent; box-shadow:inset 0 0 0 1.5px currentColor; }
.status-ago { color:var(--ink-3); font-family:var(--font-mono); font-size:.75rem; margin-left:6px; }

/* ----------------------- Cross-link + apex chips ------------------------- */
.chip { display:inline-flex; align-items:center; gap:6px; padding:4px 11px;
  font:500 .8125rem/1.4 var(--font-sans); color:var(--ink); background:var(--surface);
  border:1px solid var(--hairline); border-radius:var(--radius-pill);
  transition:background var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease); }
.chip:hover { background:var(--teal-soft); border-color:var(--teal); text-decoration:none; }
.chip svg { width:13px; height:13px; flex:0 0 auto; color:var(--ink-3); }
.chip .val { font-family:var(--font-mono); }
.chip-apex { color:var(--champagne); background:var(--champagne-soft); border-color:transparent; }
.chip-rail { display:flex; gap:var(--sp-2); overflow-x:auto; padding-block:var(--sp-2);
  -webkit-overflow-scrolling:touch; }
.chip-rail::-webkit-scrollbar { height:0; }

/* ----------------------------- Compare ----------------------------------- */
.compare { width:100%; border-collapse:collapse; background:var(--surface);
  border:1px solid var(--hairline); border-radius:var(--radius); overflow:hidden; font-size:.875rem; }
.compare thead th { position:sticky; top:0; background:var(--navy); color:var(--surface);
  padding:12px 14px; text-align:left; font:600 .875rem/1.3 var(--font-display); }
:root[data-theme="dark"] .compare thead th,
:root:not([data-theme="light"]) .compare thead th { color:var(--bg); }
.compare th[scope="row"] { text-align:left; color:var(--ink-2); font-weight:500;
  background:var(--surface-2); }
.compare td, .compare th[scope="row"] { padding:11px 14px; border-top:1px solid var(--hairline);
  font-family:var(--font-mono); font-feature-settings:"tnum","zero"; }
.compare td.win { background:var(--teal-soft); font-weight:600; }
.compare td .mk { color:var(--teal); margin-left:6px; }
.ai-summary { background:var(--surface-2); border:1px solid var(--hairline);
  border-radius:var(--radius); padding:var(--sp-5); font-family:var(--font-serif);
  font-size:1.0625rem; line-height:1.6; margin-block:var(--sp-5); }
.ai-summary .label { font-family:var(--font-sans); margin-bottom:var(--sp-2); }

/* ------------------------------- Cards ----------------------------------- */
.card { border:1px solid var(--hairline); border-radius:var(--radius);
  background:var(--surface); padding:var(--sp-4); box-shadow:var(--shadow-card);
  transition:box-shadow var(--dur-1) var(--ease); }
.card-link:hover { box-shadow:var(--shadow-lift); text-decoration:none; }
.card-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:var(--sp-4); }
.emptyleg { border:1px solid var(--hairline); border-radius:var(--radius);
  background:var(--surface); padding:var(--sp-4); box-shadow:var(--shadow-card); }
.emptyleg .route { font:700 1.05rem/1.2 var(--font-display); }
.cta { display:inline-flex; align-items:center; gap:8px; background:var(--teal);
  color:#fff; padding:9px 18px; border-radius:var(--radius-pill); font-weight:600;
  font-size:.9375rem; }
.cta:hover { background:var(--teal-bright); text-decoration:none; }

/* ------------------------- Result rows / index --------------------------- */
.result-list { display:flex; flex-direction:column; gap:1px; background:var(--hairline);
  border:1px solid var(--hairline); border-radius:var(--radius); overflow:hidden; }
.result { display:flex; align-items:center; gap:var(--sp-3); padding:var(--sp-3) var(--sp-4);
  background:var(--surface); }
.result:hover { background:var(--surface-2); text-decoration:none; }
.result .etype { width:22px; height:22px; color:var(--ink-3); flex:0 0 auto; }
.result .name { font-weight:600; color:var(--ink); }
.result .facts { color:var(--ink-2); font-size:.875rem; font-family:var(--font-mono); }
.facets { display:flex; flex-wrap:wrap; gap:var(--sp-2); margin-block:var(--sp-4); }
.facets a { font-size:.8125rem; padding:4px 11px; border:1px solid var(--hairline);
  border-radius:var(--radius-pill); color:var(--ink-2); background:var(--surface); }
.facets a[aria-current="true"]{ background:var(--teal-soft); border-color:var(--teal); color:var(--teal); }

/* ------------------------- Dossier scroll-spy ---------------------------- */
.dossier { display:grid; grid-template-columns:180px 1fr; gap:var(--sp-6);
  align-items:start; }
.dossier-nav { position:sticky; top:76px; display:flex; flex-direction:column; gap:2px; }
.dossier-nav a { padding:6px 10px; border-radius:var(--radius-sm); color:var(--ink-2);
  font-size:.875rem; border-left:2px solid transparent; }
.dossier-nav a[aria-current="true"]{ color:var(--teal); border-left-color:var(--teal);
  background:var(--teal-soft); }
@media (max-width:820px){
  .dossier { grid-template-columns:1fr; }
  .dossier-nav { position:sticky; top:60px; flex-direction:row; overflow-x:auto;
    background:var(--surface); border-bottom:1px solid var(--hairline); z-index:10; }
}

/* ------------------------------- Footer ---------------------------------- */
.site-footer { background:var(--navy); color:#c8d0dc; margin-top:var(--sp-9);
  padding-block:var(--sp-8) var(--sp-6);
  background-image:radial-gradient(rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:22px 22px; }
:root[data-theme="dark"] .site-footer,
:root:not([data-theme="light"]) .site-footer { background:#08080a; }
.site-footer a { color:#c8d0dc; }
.site-footer a:hover { color:#fff; }
.footer-cols { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:var(--sp-5); margin-bottom:var(--sp-6); }
.footer-cols h4 { font:600 .6875rem/1.4 var(--font-sans); letter-spacing:.06em;
  text-transform:uppercase; color:#8b929c; margin:0 0 var(--sp-3); }
.footer-cols ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; }
.footer-meta { border-top:1px solid rgba(255,255,255,.12); padding-top:var(--sp-4);
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:var(--sp-3);
  color:#8b929c; font-size:.8125rem; }

/* ------------------------------- Motion ---------------------------------- */
.reveal { opacity:0; transform:translateY(10px); transition:opacity var(--dur-3) var(--ease),
  transform var(--dur-3) var(--ease); }
.reveal.is-in { opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after { animation-duration:.001ms!important; transition-duration:.001ms!important;
    scroll-behavior:auto!important; }
  .reveal { opacity:1; transform:none; }
}
html { scroll-behavior:smooth; }
