/* ============ Slavic Airlines Group — v3 shell (layers on styles.css + sag-v2.css) ============ */
:root{--sag-max:1680px;--sag-gutter:clamp(16px,3vw,48px);--gold:#e0b45a;--gold-soft:#f0cf7a;--red:#e34a5f;--blue:#8fc1ff;--green:#6a9c8a;--muted:#8f8a80;--ink:#c9c2b5;--panel:#0e1a2b;--deep:#0b1526}
html{scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ticker-track{animation:none!important}}
.site-notice{display:none!important}
.v2-wrap{max-width:var(--sag-max);padding:0 var(--sag-gutter)}
.v2-lead{max-width:68ch}

/* ---------- header ---------- */
.topbar{display:none!important}
.sag-header{position:sticky;top:0;z-index:50;background:rgba(14,26,43,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:20px;padding:10px var(--sag-gutter);max-width:100%;}
.sag-brand{display:flex;align-items:center;gap:12px;text-decoration:none;flex:0 0 auto}
.sag-emblem{width:44px;height:44px;object-fit:contain;filter:drop-shadow(0 0 6px rgba(224,180,90,.35))}
.sag-wordmark{display:flex;flex-direction:column;line-height:1.05}
.sag-name{font-family:Fraunces,serif;font-size:1.25rem;color:var(--ivory);letter-spacing:.01em;white-space:nowrap}
.sag-sub{font-family:"IBM Plex Mono",monospace;font-size:.58rem;letter-spacing:.14em;color:var(--gold);white-space:nowrap}
.sag-nav{display:flex;align-items:center;justify-content:space-between;flex:1 1 auto;gap:16px;min-width:0}
.sag-nav-primary,.sag-nav-utility{display:flex;align-items:center;gap:2px;flex-wrap:nowrap}
.sag-nav a{color:var(--ink);text-decoration:none;font-size:.86rem;padding:8px 11px;border-radius:4px;white-space:nowrap;border-bottom:2px solid transparent}
.sag-nav a:hover{color:var(--ivory);background:rgba(255,255,255,.04)}
.sag-nav a.is-active{color:var(--ivory);border-bottom-color:var(--gold)}
.sag-nav a.nav-fly{color:var(--gold);font-weight:600}
.sag-nav a.nav-join{background:var(--crimson);color:#fff;padding:8px 14px;margin-left:6px}
.sag-nav-utility a{font-size:.78rem;color:var(--muted)}
.sag-nav .lang-switch{margin-left:8px;background:var(--deep);color:var(--ivory);border:1px solid var(--line);border-radius:4px;padding:6px 8px;font:inherit;font-size:.78rem}
.sag-burger{display:none;background:transparent;border:1px solid var(--line);color:var(--ivory);width:42px;height:42px;border-radius:5px;font-size:1.2rem;margin-left:auto;cursor:pointer}
@media(max-width:1180px){.sag-nav-utility a{padding:8px 8px}.sag-nav a{font-size:.8rem;padding:8px 9px}}
@media(max-width:980px){.sag-burger{display:block}.sag-nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--panel);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;padding:8px var(--sag-gutter) 14px;gap:6px}.sag-nav.open{display:flex}.sag-nav-primary,.sag-nav-utility{flex-wrap:wrap}.sag-nav a{padding:10px 12px}.sag-sub{display:none}}

/* ---------- ops ticker ---------- */
.ops-ticker{display:flex;align-items:stretch;background:var(--deep);border-bottom:1px solid var(--line);height:34px;overflow:hidden;font-family:"IBM Plex Mono",monospace;font-size:.7rem}
.ticker-lead{display:flex;align-items:center;gap:8px;padding:0 14px 0 var(--sag-gutter);color:var(--gold);letter-spacing:.1em;white-space:nowrap;border-right:1px solid var(--line);background:var(--deep);z-index:2}
.ticker-viewport{flex:1;overflow:hidden;position:relative;mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent)}
.ticker-track{display:inline-flex;align-items:center;height:34px;white-space:nowrap;will-change:transform;animation:tk-scroll var(--tk-dur,90s) linear infinite}
.ticker-viewport:hover .ticker-track{animation-play-state:paused}
.tk{display:inline-flex;align-items:center;gap:8px;padding:0 22px;color:var(--ink);border-right:1px solid #16263b}
.tk b{color:var(--gold);font-weight:500}.tk .ap{color:var(--ivory)}.tk time{color:var(--muted)}
@keyframes tk-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- status badges (colour + text, always) ---------- */
.badge{display:inline-flex;align-items:center;gap:5px;font-family:"IBM Plex Mono",monospace;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:3px;border:1px solid var(--line);color:var(--ink);line-height:1.2;white-space:nowrap}
.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.9}
.badge.vop{border-color:#5f86bd;color:#b7d8ff}.badge.cp{border-color:var(--gold);color:var(--gold-soft)}
.badge.critical{border-color:var(--red);color:#ff8a98}.badge.surge{border-color:var(--gold);color:var(--gold-soft);background:rgba(224,180,90,.08)}
.badge.trunk{border-color:#8a7a4a;color:#d9c48c}.badge.live{border-color:var(--green);color:#9fd3bf}.badge.planned{border-color:#5f86bd;color:#b7d8ff}
.badge.dev{border-color:#8f8a80;color:#b9b3a6;border-style:dashed}.badge.dev:before{background:#8f8a80}
.badge.ok{border-color:var(--green);color:#9fd3bf}.badge.static{border-color:var(--gold);color:var(--gold-soft)}
.badge.sm{font-size:.56rem;padding:2px 6px}
.source-line{display:flex;align-items:center;gap:10px;font-family:"IBM Plex Mono",monospace;font-size:.66rem;color:var(--muted);margin:8px 0}
.legend-key{display:flex;flex-wrap:wrap;gap:10px 18px;padding:12px 16px;background:var(--panel);border:1px solid var(--line);border-radius:6px;margin:12px 0 18px;font-size:.8rem;color:var(--ink)}
.legend-key .lk{display:flex;align-items:center;gap:8px}.legend-key .lk small{color:var(--muted)}
.term-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin:12px 0 20px}
.term{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:5px;padding:12px 14px;font-size:.84rem;color:var(--ink);line-height:1.5}
.term b{display:block;font-family:Fraunces,serif;font-weight:500;color:var(--ivory);font-size:1rem;margin-bottom:3px}
.term.vop{border-left-color:#5f86bd}

/* ---------- map ---------- */
.sag-map{position:relative;background:var(--deep);border:1px solid var(--line);border-radius:8px;overflow:hidden;width:100%;height:clamp(380px,58vh,860px)}
.sag-map svg{width:100%;height:100%;display:block;touch-action:none;cursor:grab}
.sag-map svg.dragging{cursor:grabbing}
.sag-map .sphere{fill:var(--deep)}.sag-map .graticule{fill:none;stroke:#16263b;stroke-width:.4}
.sag-map .land{fill:#17283f;stroke:#22385a;stroke-width:.5;vector-effect:non-scaling-stroke}
.sag-map .rt{fill:none;vector-effect:non-scaling-stroke;pointer-events:stroke;cursor:pointer}
.sag-map .rt.spoke{stroke:#5f86bd;stroke-width:.7;stroke-opacity:.42}
.sag-map .rt.secondary{stroke:var(--blue);stroke-width:1;stroke-opacity:.62}
.sag-map .rt.primary{stroke:var(--gold);stroke-width:1.4;stroke-opacity:.9}
.sag-map .rt.critical{stroke:var(--red);stroke-width:1.2;stroke-opacity:.8}
.sag-map .rt.seasonal{stroke:var(--gold-soft);stroke-width:1;stroke-opacity:.8;stroke-dasharray:4 3}
.sag-map .rt.cargo{stroke:var(--green);stroke-width:.7;stroke-opacity:.45;stroke-dasharray:2 3}
.sag-map .rt:hover,.sag-map .rt.sel{stroke:#fff;stroke-opacity:1;stroke-width:2.2}
.sag-map.has-sel .rt:not(.sel):not(:hover){stroke-opacity:.14}
.sag-map .ap{fill:#c9c2b5;fill-opacity:.55;cursor:pointer;vector-effect:non-scaling-stroke}
.sag-map .hub{stroke:var(--deep);stroke-width:1;cursor:pointer}
.sag-map .hub.r0,.sag-map .hub.r1{fill:var(--red)}.sag-map .hub.r2{fill:var(--gold)}.sag-map .hub.r3{fill:var(--blue)}.sag-map .hub.r4{fill:var(--green)}
.sag-map .hub.sel,.sag-map .ap.sel{stroke:#fff;stroke-width:2}
.sag-map .lbl{font-family:"IBM Plex Mono",monospace;fill:#f2ece1;pointer-events:none;paint-order:stroke;stroke:var(--deep);stroke-width:3px;stroke-linejoin:round}
.sag-map .plane{fill:#f2ece1;stroke:var(--deep);stroke-width:.6;cursor:pointer}
.sag-map .plane.cp{fill:var(--gold)}.sag-map .plane.cargo{fill:var(--green)}.sag-map .plane.sel{stroke:#fff;stroke-width:1.5}
.sag-map .rt.live{stroke:var(--gold);stroke-width:1.3;stroke-opacity:.8;stroke-dasharray:5 4;pointer-events:none}
.sag-map .plane.live{fill:#ffd980;filter:drop-shadow(0 0 3px rgba(224,180,90,.9))}
.trk-grid{display:grid;grid-template-columns:minmax(0,2.4fr) minmax(320px,1fr);gap:18px;align-items:start}
@media(max-width:980px){.trk-grid{grid-template-columns:1fr}}
.trk-side{display:flex;flex-direction:column;gap:12px}
.trk-card{background:var(--navy-panel,#10203a);border:1px solid var(--line);border-radius:6px;padding:14px 16px}
.trk-card .k{display:block;font-family:"IBM Plex Mono",monospace;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;opacity:.7;margin-bottom:6px}
.trk-card h4{margin:0 0 4px;font-size:1.05rem}
.trk-card .row{display:flex;justify-content:space-between;gap:10px;font-size:.85rem;padding:3px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.trk-card .row:last-child{border-bottom:0}
.trk-card .row span:first-child{opacity:.7}
.trk-card .mono{font-family:"IBM Plex Mono",monospace}
.trk-phase{display:inline-block;padding:2px 8px;border-radius:999px;border:1px solid var(--line);font-family:"IBM Plex Mono",monospace;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase}
.trk-phase.air{border-color:var(--gold);color:var(--gold)}
.trk-status{font-family:"IBM Plex Mono",monospace;font-size:.72rem;opacity:.75;display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin:6px 0 10px}
.trk-status .dot{width:8px;height:8px;border-radius:50%;background:#7fd39a;display:inline-block;margin-right:6px;box-shadow:0 0 6px #7fd39a}
.trk-status .dot.off{background:#c8102e;box-shadow:none}
.trk-table{width:100%;border-collapse:collapse;font-size:.85rem}
.trk-table th{font-family:"IBM Plex Mono",monospace;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;text-align:left;opacity:.7;padding:6px 8px;border-bottom:1px solid var(--line)}
.trk-table td{padding:7px 8px;border-bottom:1px solid rgba(255,255,255,.05);vertical-align:top}
.trk-table tr.sel td{background:rgba(224,180,90,.08)}
.trk-table .mono{font-family:"IBM Plex Mono",monospace}
.trk-table-wrap{overflow-x:auto}
.trk-legend{font-size:.8rem;opacity:.8;margin:8px 0 0}
.map-ctl{position:absolute;top:10px;right:10px;display:flex;flex-direction:column;gap:6px;z-index:5}
.map-ctl button,.map-ctl .seg button{background:rgba(14,26,43,.94);border:1px solid var(--line);color:var(--ivory);width:34px;height:34px;border-radius:5px;cursor:pointer;font:inherit;font-size:.85rem}
.map-ctl .seg{display:flex;gap:0}.map-ctl .seg button{width:auto;padding:0 10px;font-family:"IBM Plex Mono",monospace;font-size:.68rem}
.map-ctl .seg button.on{background:#1a2a44;border-color:var(--gold);color:var(--gold)}
.map-ctl button:hover{border-color:var(--gold)}
.map-layers{position:absolute;top:10px;left:10px;z-index:5;background:rgba(14,26,43,.94);border:1px solid var(--line);border-radius:5px;padding:8px 10px;font-family:"IBM Plex Mono",monospace;font-size:.66rem;color:var(--ink);display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;max-width:260px}
.map-layers label{display:flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap}
.map-layers summary{grid-column:1/-1;cursor:pointer;color:var(--gold);letter-spacing:.08em;list-style:none}
.map-layers:not([open]){padding:6px 10px}
.map-live{position:absolute;left:10px;bottom:10px;z-index:5;background:rgba(14,26,43,.94);border:1px solid var(--line);border-radius:5px;padding:8px 12px;font-family:"IBM Plex Mono",monospace;font-size:.68rem;color:var(--ink);display:flex;gap:16px;align-items:center}
.map-live b{display:block;font-family:Fraunces,serif;font-size:1.5rem;line-height:1;color:var(--ivory)}
.map-tip{position:absolute;z-index:6;pointer-events:none;background:rgba(11,21,38,.96);border:1px solid var(--line);border-radius:4px;padding:6px 9px;font-family:"IBM Plex Mono",monospace;font-size:.68rem;color:var(--ivory);white-space:nowrap;display:none}
.map-legend{display:flex;flex-wrap:wrap;gap:8px 18px;padding:10px 14px;background:var(--panel);border:1px solid var(--line);border-top:none;border-radius:0 0 8px 8px;font-family:"IBM Plex Mono",monospace;font-size:.68rem;color:var(--ink)}
.map-legend .lk{display:flex;align-items:center;gap:7px}.map-legend i{display:inline-block;width:18px;height:0;border-top:2px solid}.map-legend .dot{width:9px;height:9px;border-radius:50%;border:none}

/* ---------- layout: map | panel ---------- */
.split{display:grid;grid-template-columns:1fr;gap:16px;margin:14px 0 24px}
.split .side{display:flex;flex-direction:column;gap:12px;min-width:0}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:14px 16px;min-width:0}
.panel h3{font-family:Fraunces,serif;font-weight:500;font-size:1.15rem;color:var(--ivory);margin:0 0 4px}
.panel .k{font-family:"IBM Plex Mono",monospace;font-size:.64rem;letter-spacing:.06em;color:var(--muted);text-transform:uppercase}
.panel .kv{display:grid;grid-template-columns:auto 1fr;gap:3px 14px;font-size:.82rem;color:var(--ink);margin:8px 0}
.panel .kv dt{color:var(--muted);font-family:"IBM Plex Mono",monospace;font-size:.66rem;letter-spacing:.05em;text-transform:uppercase;padding-top:2px}.panel .kv dd{margin:0;color:var(--ivory)}
.panel .acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.panel .empty{color:var(--muted);font-size:.84rem;padding:12px 0}
@media(min-width:1180px){.split{grid-template-columns:minmax(0,1.9fr) minmax(320px,.9fr)}.split.wide-map{grid-template-columns:minmax(0,2.4fr) minmax(320px,1fr)}}
@media(min-width:2200px){.v2-wrap{max-width:min(2400px,92vw)}.split{grid-template-columns:minmax(0,2.6fr) minmax(360px,1fr)}.sag-map{height:clamp(480px,62vh,1100px)}}
@media(min-width:3200px){.v2-wrap{max-width:min(3000px,90vw)}.split{grid-template-columns:minmax(0,3fr) minmax(400px,1fr)}}

/* ---------- responsive tables ---------- */
.v2-scroll{max-height:none;overflow:auto}
.v2-table td,.v2-table th{white-space:normal}
.v2-table tr.sel td{background:#1a2a44}.v2-table tbody tr{cursor:pointer}
@media(max-width:900px){.col-md{display:none}}@media(max-width:600px){.col-lg{display:none}.v2-table{font-size:.76rem}.v2-table td,.v2-table th{padding:6px 6px}}

/* ---------- hero ---------- */
.hero-v3{display:grid;grid-template-columns:1fr;gap:20px;align-items:start;margin-top:8px}
@media(min-width:1180px){.hero-v3{grid-template-columns:minmax(300px,.8fr) minmax(0,2.2fr)}.hero-v3 .sag-map{height:clamp(440px,64vh,900px)}}
@media(min-width:2200px){.hero-v3{grid-template-columns:minmax(360px,.7fr) minmax(0,3fr)}}
.stats-v3{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:6px;overflow:hidden;margin:14px 0}
.stats-v3 div{background:var(--panel);padding:14px 16px}.stats-v3 b{display:block;font-family:Fraunces,serif;font-weight:500;font-size:1.7rem;color:var(--ivory);line-height:1.1}.stats-v3 span{font-size:.76rem;color:var(--muted)}
@media(min-width:700px){.stats-v3{grid-template-columns:repeat(4,1fr)}}

/* ---------- ops page ---------- */
.ops-grid{display:grid;grid-template-columns:1fr;gap:16px;margin:14px 0 30px}
@media(min-width:1000px){.ops-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:2200px){.ops-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}}
.ops-col h2.v2-h2{margin-top:0;display:flex;align-items:center;gap:10px}
.ops-col .q{font-family:"IBM Plex Mono",monospace;font-size:.66rem;letter-spacing:.1em;color:var(--gold);text-transform:uppercase;margin-bottom:6px}
.counters{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:8px 0 12px}
.counters div{background:var(--deep);border:1px solid var(--line);border-radius:5px;padding:10px 12px}.counters b{display:block;font-family:Fraunces,serif;font-size:1.5rem;color:var(--ivory);line-height:1}.counters span{font-size:.7rem;color:var(--muted)}
.wx-row{display:grid;grid-template-columns:52px 46px 1fr auto;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid #16263b;font-size:.76rem;color:var(--ink);font-family:"IBM Plex Mono",monospace}
.wx-row .cat{font-size:.6rem;padding:2px 6px;border-radius:3px;border:1px solid var(--line);text-align:center}
.wx-row .cat.VFR{color:#9fd3bf;border-color:var(--green)}.wx-row .cat.MVFR{color:#b7d8ff;border-color:#5f86bd}.wx-row .cat.IFR{color:#ff8a98;border-color:var(--red)}.wx-row .cat.LIFR{color:#ff8a98;border-color:var(--red);background:rgba(227,74,95,.12)}
.list{display:flex;flex-direction:column;gap:8px}
.item{background:var(--deep);border:1px solid var(--line);border-left:3px solid #3a5a86;border-radius:5px;padding:10px 12px;font-size:.8rem;color:var(--ink)}
.item.critical{border-left-color:var(--red)}.item.surge{border-left-color:var(--gold)}.item.info{border-left-color:var(--blue)}
.item b{color:var(--ivory);font-weight:500}.item .mono{font-family:"IBM Plex Mono",monospace;color:var(--gold)}
.item .r{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.finder{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:14px 16px}
.finder .v2-filters{grid-template-columns:repeat(2,1fr);margin:8px 0}
.finder .go{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 6px}
.result{background:var(--deep);border:1px solid var(--gold);border-radius:6px;padding:14px 16px;margin-top:10px;animation:pop .25s ease-out}
@keyframes pop{from{transform:scale(.98);opacity:0}to{transform:scale(1);opacity:1}}
.result .seq{font-family:"IBM Plex Mono",monospace;color:var(--gold);font-size:1rem;margin:4px 0 8px;word-break:break-word}

/* ---------- fly page layout ---------- */
.fly-layout{display:grid;grid-template-columns:1fr;gap:18px}
@media(min-width:1180px){.fly-layout{grid-template-columns:300px minmax(0,1fr)}.fly-side{position:sticky;top:70px;align-self:start;max-height:calc(100vh - 90px);overflow:auto}.fly-side .v2-filters{grid-template-columns:1fr}}
@media(min-width:2200px){.fly-layout{grid-template-columns:340px minmax(0,1fr)}.v2-grid{grid-template-columns:repeat(auto-fill,minmax(360px,1fr))}}
.bid.spot{outline:2px solid var(--gold);box-shadow:0 0 0 6px rgba(224,180,90,.15)}
.dev-note{font-family:"IBM Plex Mono",monospace;font-size:.66rem;color:var(--muted);border:1px dashed var(--line);border-radius:4px;padding:8px 10px;margin:10px 0}
.dev-note b{color:var(--ink)}
.approach{display:grid;grid-template-columns:64px 1fr;gap:12px;align-items:start}
.approach .code{font-family:Fraunces,serif;font-size:1.3rem;color:var(--gold)}

/* ===== work-in-progress banner ===== */
.wip-banner{position:relative;display:flex;align-items:center;justify-content:center;gap:12px;background:#B3261E;color:#FFF7F5;padding:8px 44px 8px 16px;font-size:.86rem;line-height:1.35;border-bottom:3px solid #7A1C15}
.wip-inner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center}
.wip-tag{display:inline-block;background:#FFF7F5;color:#B3261E;font-weight:700;letter-spacing:.08em;font-size:.72rem;padding:3px 8px;border-radius:4px;white-space:nowrap}
.wip-text a{color:#FFE7A8;text-decoration:underline;font-weight:600}
.wip-close{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:transparent;border:1px solid rgba(255,255,255,.5);color:#fff;border-radius:4px;width:26px;height:26px;cursor:pointer;font-size:1rem;line-height:1}
.wip-close:hover{background:rgba(255,255,255,.15)}
/* ===== header: keep the wider wordmark from pushing the nav off-screen between 981 and 1180px ===== */
@media(min-width:981px) and (max-width:1180px){.sag-header{gap:12px}.sag-name{font-size:1.05rem}.sag-nav a{padding:8px 6px;font-size:.78rem}.sag-nav a.nav-join{padding:8px 10px}.sag-nav .lang-switch{margin-left:4px;padding:5px 6px}}
/* ===== version line in the footer ===== */
.footer-ver{margin:6px 0 0;font-family:"IBM Plex Mono",monospace;font-size:.7rem;letter-spacing:.06em;color:#8A8577}
.footer-ver a{color:#B8912E;text-decoration:none;border-bottom:1px dotted #B8912E}
/* ===== intent page ===== */
.intent-map{margin:14px 0 6px;border:1px solid #D9D2C3;border-radius:12px;overflow:hidden;background:#F7F3EA}
.intent-map img{display:block;width:100%;height:auto}
.intent-caption{font-size:.82rem;color:#6B7280;margin:6px 0 18px}
.intent-status{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin:10px 0 14px}
.intent-status .v2-card h4{margin-bottom:6px}
.intent-status .now{border-left:4px solid #B8912E}
.intent-status .alpha{border-left:4px solid #3E6FB0}
.intent-status .beta{border-left:4px solid #2E7D32}
.intent-status .exec{border-left:4px solid #9AA0A6}
.intent-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin:8px 0 18px}
.intent-aims{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:12px;margin:8px 0 18px}
.intent-aims .v2-card h4{margin:4px 0 6px}
.term-table td,.term-table th{padding:8px 10px;vertical-align:top}
.intent-tiers td:first-child{width:30%;min-width:210px}
.ver-table td:first-child{width:18%;min-width:120px;font-family:"IBM Plex Mono",monospace}
.ver-table td:nth-child(2){width:16%;min-width:110px}
@media (max-width:640px){.intent-tiers td:first-child{width:36%;min-width:0}.ver-table td:first-child,.ver-table td:nth-child(2){min-width:0}}

/* ---- interactive network map v2 — MapLibre GL on our own Protomaps vector tiles (sag-map2.js) ----
   Same box and the same furniture as the v1 SVG map: .map-ctl, .map-layers, .map-live and .map-tip
   are shared and unchanged, so the pages look and behave as they did. Only what the SVG used to
   draw moves to GPU layers and DOM markers. Deliberately NOT .sag-map — those rules style a
   full-size <svg> child, which would fight MapLibre's canvas. */
.sag-map2{position:relative;width:100%;height:clamp(380px,58vh,860px);background:var(--deep);border:1px solid var(--line);border-radius:8px;overflow:hidden;z-index:0}
@media(min-width:2200px){.sag-map2{height:clamp(480px,62vh,1100px)}}
.sag-map2 .maplibregl-map{font:inherit}
.sag-map2 .maplibregl-canvas{outline:none}
.sag-map2 .maplibregl-ctrl-attrib{background:rgba(11,21,38,.82);color:var(--muted);font-size:.64rem}
.sag-map2 .maplibregl-ctrl-attrib a{color:var(--ink)}
.sag-map2 .maplibregl-ctrl-attrib-button{filter:invert(1)}
.sag-map2 .m2-nomap{padding:24px;color:var(--ink);font-size:.85rem;line-height:1.5}

/* hub codes and aircraft as DOM markers — a symbol layer needs a glyph server, and we host none */
.sag-map2 .m2-lbl{font-family:"IBM Plex Mono",monospace;font-size:.62rem;letter-spacing:.04em;color:#f2ece1;white-space:nowrap;pointer-events:none;text-shadow:0 0 3px #0b1526,0 0 3px #0b1526,0 0 5px #0b1526}
.sag-map2 .m2-plane{background:none;border:0;cursor:pointer}
.sag-map2 .m2-plane .m2-plane-rot{display:block;width:16px;height:16px;transform-origin:50% 50%;transition:transform .4s ease-out}
.sag-map2 .m2-plane svg{display:block;fill:#f2ece1;stroke:var(--deep);stroke-width:.6}
.sag-map2 .m2-plane.cp svg{fill:var(--gold)}
.sag-map2 .m2-plane.cargo svg{fill:var(--green)}
.sag-map2 .m2-plane.live svg{fill:#ffd980;filter:drop-shadow(0 0 3px rgba(224,180,90,.9))}
.sag-map2 .m2-plane.sel svg{stroke:#fff;stroke-width:1.5}

/* the extra rows the Layers panel grows on the working maps (not on the home page) */
.map-layers .m2-extra{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;margin-top:6px;padding-top:6px;border-top:1px solid var(--line)}
.map-layers .m2-extra .m2-wide{grid-column:1/-1;justify-content:space-between;gap:10px}
.map-layers .m2-extra select{background:#0b1526;color:var(--ivory);border:1px solid var(--line);border-radius:3px;font:inherit;font-size:.64rem;padding:1px 3px;cursor:pointer}

/* light basemap flavours (grey / light / white): our overlays are drawn for a dark map */
.sag-map2.is-light .m2-lbl{color:#2f2a20;text-shadow:0 0 3px #fff,0 0 3px #fff,0 0 5px #fff}
.sag-map2.is-light .m2-plane svg{stroke:#241d10;stroke-width:1}
.sag-map2.is-light .m2-plane.live svg{filter:drop-shadow(0 0 3px rgba(0,0,0,.5))}
