/* =====================================================================
   KAIROS — all styles. Core terminal, then Zero/Aether cards, then Nexus.
   ===================================================================== */

:root{--bg:#07080d;--panel:#0d1017;--panel2:#12151e;--border:#1d2330;--text:#e9edf5;--muted:#6d7688;--cyan:#22d3ee;--pika:#f2c14e;--gold:#f2c14e;--barney:#a855f7;--green:#34d399;--red:#f87171;--teal:#2dd4bf}
*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,system-ui,sans-serif;background:var(--bg);color:var(--text);min-height:100vh}
.mono{font-family:'JetBrains Mono',monospace}
header{display:flex;align-items:center;justify-content:space-between;padding:9px 16px;background:linear-gradient(180deg,#0b0d14,#090b10);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50}
.logo{font-weight:700;font-size:1.02rem;letter-spacing:.34em;display:flex;align-items:center;gap:10px;text-transform:uppercase}
.logo span{color:var(--gold);text-shadow:0 0 16px #f2c14e55;font-size:.85rem}
header{gap:10px}
.hdr-nav,.hdr-tools{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.hdr-nav{flex:1 1 auto}
.hdr-tools{flex:0 0 auto;justify-content:flex-end}
.btn{background:transparent;border:1px solid transparent;color:var(--muted);padding:5px 11px;border-radius:7px;font-size:.74rem;cursor:pointer;font-family:inherit;transition:color .15s,border-color .15s}
.btn:hover{color:var(--text)}
.btn.primary{background:var(--gold);color:#0a0a08;border:none;font-weight:700}
.btn.primary:hover{color:#000;filter:brightness(1.06)}
#btnSettings,#btnHelp{border-color:var(--border);color:var(--muted)}
#btnSettings:hover,#btnHelp:hover{color:var(--text);border-color:#2a3140}
@media(prefers-reduced-motion:no-preference){
  .king-pill{animation:kglow 2.6s ease-in-out infinite}
  @keyframes kglow{0%,100%{box-shadow:0 0 0 0 #f2c14e00}50%{box-shadow:0 0 14px 0 #f2c14e33}}
}
.btn.active{border-color:var(--cyan);background:#00e5ff18;color:var(--cyan)}
select,input{background:var(--panel2);border:1px solid var(--border);color:var(--text);padding:5px 8px;border-radius:5px;font-size:.76rem;font-family:inherit}
/* metric toggle — GEX / VEX */
.mtoggle{display:inline-flex;border:1px solid var(--border);border-radius:7px;overflow:hidden}
.mtoggle button{background:transparent;border:none;color:var(--muted);padding:5px 9px;font-size:.72rem;font-weight:700;cursor:pointer;font-family:inherit;letter-spacing:.03em;transition:background .15s,color .15s}
.mtoggle button:hover{color:var(--text)}
.mtoggle button[data-m="gex"].on{background:var(--gold);color:#0a0a08}
.mtoggle button[data-m="vex"].on{background:var(--cyan);color:#04121a}
.mtoggle.dim{opacity:.35;pointer-events:none}
#centertoggle button[data-c="spot"].on{background:var(--cyan);color:#04121a}
#centertoggle button[data-c="king"].on{background:var(--gold);color:#0a0a08}
#presetBar{display:flex;gap:5px;flex-wrap:wrap;align-items:center;padding:2px 2px 0}
.pchip{background:var(--panel2);border:1px solid var(--border);color:var(--muted);padding:4px 11px;border-radius:7px;font-size:.74rem;font-weight:700;font-family:'JetBrains Mono';cursor:pointer;letter-spacing:.02em;transition:color .12s,border-color .12s,background .12s;flex:0 0 auto}
.pchip:hover{color:var(--text);border-color:#2a3140}
.pchip.on{background:#00e5ff18;border-color:var(--cyan);color:var(--cyan)}
@media(max-width:760px){
  #presetBar{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:3px}
  #presetBar::-webkit-scrollbar{display:none}
  .pchip{padding:4px 9px;font-size:.68rem}
}
.banner{background:#0a1218;border-bottom:1px solid #152028;padding:5px 14px;font-size:.7rem;color:var(--muted);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.banner .live{color:var(--green);font-weight:600}
#sessInfo{color:var(--muted)}
main{padding:10px;display:flex;flex-direction:column;gap:10px}
.trinity{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}
.panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;display:flex;flex-direction:column;height:calc(100vh - 172px);min-height:540px;overflow:hidden}
.panel.single-mode{max-height:none;min-height:580px}
.p-head{padding:8px 10px;background:var(--panel2);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:6px;flex-shrink:0}
.p-left{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ticker-sel{font-weight:700;font-size:.95rem;max-width:88px}
.price{font-family:'JetBrains Mono';font-size:.9rem}
.badge-src{font-size:.6rem;padding:1px 5px;border-radius:3px;font-weight:600}
.badge-src.live{background:#22c55e22;color:var(--green)}.badge-src.sandbox{background:#f59e0b22;color:#f59e0b}
.badge-src.cboe{background:#38bdf822;color:#38bdf8}.badge-src.demo{background:#f2c14e22;color:var(--pika)}
.badge-src.stale{background:#f8717122;color:#f87171}
.king-pill{background:linear-gradient(135deg,#f2c14e30,#f2c14e12);border:1px solid #f2c14e77;color:var(--pika);font-size:.66rem;padding:2px 8px;border-radius:12px;font-weight:700;white-space:nowrap}
.king-pill.vex{background:linear-gradient(135deg,#22d3ee30,#22d3ee12);border-color:#22d3ee77;color:var(--cyan)}
.strikes{overflow-y:auto;flex:1;scrollbar-width:thin;scrollbar-color:#2a3140 transparent}
.srow{display:grid;grid-template-columns:56px 1fr 76px;align-items:center;padding:3px 8px;font-size:.74rem;border-bottom:1px solid #0c0f16;cursor:pointer}
.srow:hover{filter:brightness(1.18)}
/* spot row — deliberately loud: cyan glow frame + cyan strike + live price pill */
.srow.spot{border-left:3px solid var(--cyan);outline:2px solid #22d3eeb3;outline-offset:-2px;position:relative;z-index:1;box-shadow:inset 0 0 12px #22d3ee22}
.srow.spot .strike{color:var(--cyan);text-shadow:0 0 8px #22d3ee88}
.srow.king{background:#f2c14e!important}
.srow.king.vexk{background:var(--cyan)!important}
.srow.king .strike,.srow.king .gex{color:#000!important;font-weight:700!important;text-shadow:none}
.srow.king .star{color:#000}
.srow.wall .gex{font-weight:700}
.srow .strike{font-family:'JetBrains Mono';font-weight:600}
.srow .gex{font-family:'JetBrains Mono';text-align:right;font-weight:600;font-size:.72rem}
.srow .mid{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.star{color:var(--pika);font-size:.72rem;font-weight:700}
.wtag{font-size:.54rem;padding:0 4px;border-radius:3px;font-weight:700;letter-spacing:.03em}
.wtag.cw{background:#2dd4bf26;color:var(--teal)}
.wtag.pw{background:#a855f733;color:#c99bff}
.dchip{font-size:.58rem;font-family:'JetBrains Mono';margin-left:2px}
.drv{font-size:.62rem;padding:1px 7px;border-radius:9px;border:1px solid #2a3140;color:var(--teal);background:#2dd4bf10}
.drv.warn{color:#fca5a5;border-color:#7f1d1d;background:#f871710d}
.combo-pop{position:fixed;z-index:120;background:var(--panel);border:1px solid #2a3140;border-radius:8px;max-height:250px;overflow-y:auto;box-shadow:0 12px 34px #000d;padding:4px;scrollbar-width:thin;scrollbar-color:#2a3140 transparent}
.combo-item{padding:6px 12px;font-size:.78rem;font-family:'JetBrains Mono';font-weight:600;cursor:pointer;border-radius:5px;white-space:nowrap}
.combo-item:hover,.combo-item.on{background:#00e5ff18;color:var(--cyan)}
.combo-hint{padding:5px 12px;font-size:.62rem;color:var(--muted);border-top:1px solid #1a1f2b;margin-top:3px}
.sgrid-wrap{overflow:auto;flex:1;scrollbar-width:thin;scrollbar-color:#2a3140 transparent}
table.sgrid{border-collapse:collapse;width:auto;margin:0 auto}
.sgrid th{position:sticky;top:0;z-index:5;background:#0e1119;color:var(--cyan);font-size:.68rem;font-weight:600;padding:6px 8px;text-align:right;border-bottom:1px solid var(--border);white-space:nowrap}
.sgrid th.sk,.sgrid td.sk{position:sticky;left:0;z-index:4;background:var(--panel);text-align:left;font-family:'JetBrains Mono';font-weight:700;font-size:.7rem;padding:2px 8px;border-right:1px solid var(--border);white-space:nowrap}
.sgrid th.sk{z-index:6}
.sgrid td{font-family:'JetBrains Mono';font-size:.68rem;font-weight:600;text-align:right;padding:2px 9px;border-bottom:1px solid #0c0f16;white-space:nowrap;min-width:92px;max-width:118px}
.sgrid tr.spotrow td.sk{color:var(--cyan);text-shadow:0 0 8px #22d3ee88;background:#0c1e27}
.sgrid tr.spotrow{outline:2px solid #22d3eeb3;outline-offset:-2px}
.sgrid td.kcell{background:#f2c14e!important;color:#000!important;font-weight:700!important}
.sgrid td.kcell.vexk{background:var(--cyan)!important}
.sgrid td.zero{color:#3a4254}
@media(max-width:760px){.sgrid td,.sgrid th{padding:2px 6px;font-size:.6rem}.sgrid td{min-width:70px}}
.imb,.tape{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:12px}
.imb-top{display:flex;gap:10px;align-items:center;margin-bottom:10px}
.imb-stats{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
#tapeStats{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.imb-stats,#tapeStats{grid-template-columns:repeat(2,1fr)}}
.stat{background:var(--panel2);border:1px solid var(--border);border-radius:9px;padding:8px 10px}
.sl{font-size:.58rem;color:var(--muted);letter-spacing:.07em;margin-bottom:3px}
.sv{font-size:1.02rem;font-weight:700;font-family:'JetBrains Mono'}
.imb-row{display:grid;grid-template-columns:1fr 158px 1fr;align-items:center;gap:6px;padding:2px 0}
.imb-row .side{position:relative;height:13px;background:#10141d;border-radius:3px;overflow:hidden}
.imb-row .side i,.imb-row .side b{position:absolute;top:0;height:100%;display:block}
.side.l i,.side.l b{right:0}.side.r i,.side.r b{left:0}
.side.l i{background:#34d3991c}.side.l b{background:#34d399c9}
.side.r i{background:#f871711c}.side.r b{background:#f87171c9}
.klabel{text-align:center;font-size:.72rem;font-weight:700;display:flex;align-items:center;justify-content:center;gap:5px;flex-wrap:wrap;font-family:'JetBrains Mono';white-space:nowrap}
.imb-row.spotrow2{outline:2px solid #22d3eeb3;outline-offset:-2px;border-radius:4px}
.spotpx{font-size:.62rem;font-family:'JetBrains Mono';font-weight:800;color:#04121a;background:var(--cyan);border:1px solid #a5f3fc;border-radius:4px;padding:0 6px;letter-spacing:.02em;box-shadow:0 0 12px #22d3eecc,0 0 4px #67e8f9;text-shadow:none}
.lvl.spotlvl{background:#0c1e27;border-radius:6px;padding:6px 6px;margin:2px 0;border-bottom:none;box-shadow:inset 0 0 0 1px #22d3ee66}
.lvl.spotlvl .lvl-v{color:var(--cyan);text-shadow:0 0 8px #22d3ee88;font-size:.86rem}
.lvl.spotlvl .dot.spot{width:10px;height:10px;box-shadow:0 0 10px #22d3ee,0 0 4px #22d3ee}
.dpill{font-size:.56rem;font-family:'JetBrains Mono';font-weight:700;padding:0 5px;border-radius:4px}
.dpill.up{background:#34d39922;color:#34d399}.dpill.dn{background:#f8717126;color:#f87171}
/* flow tape */
.tape-wrap{max-height:54vh;overflow:auto;scrollbar-width:thin;scrollbar-color:#2a3140 transparent;margin-top:10px}
.tape table{border-collapse:collapse;width:100%}
.tape th{position:sticky;top:0;background:#0e1119;color:var(--muted);font-size:.62rem;letter-spacing:.05em;text-align:right;padding:6px 8px;border-bottom:1px solid var(--border);white-space:nowrap}
.tape th:first-child,.tape td:first-child{text-align:left}
.tape td{font-family:'JetBrains Mono';font-size:.7rem;padding:4px 8px;border-bottom:1px solid #0c0f16;text-align:right;white-space:nowrap}
.tape tr:hover td{background:#12151e}
.cbadge{font-size:.56rem;font-weight:700;padding:0 5px;border-radius:3px}
.cbadge.c{background:#34d39922;color:var(--green)}
.cbadge.p{background:#f8717122;color:var(--red)}
.chart-area{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:10px;display:grid;grid-template-columns:1fr 252px;gap:10px;height:calc(100vh - 128px);min-height:520px}
.chart-col{display:flex;flex-direction:column;min-width:0}
.chart-top{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}
#chartFocus{font-size:.68rem;color:#f59e0b}
#tvChart{flex:1;min-height:0;border-radius:8px;overflow:hidden}
.rail-h{font-size:.64rem;color:var(--muted);letter-spacing:.09em;margin-bottom:6px}
.levels{background:var(--panel2);border-radius:8px;padding:10px;overflow-y:auto}
@media(max-width:900px){.chart-area{grid-template-columns:1fr;height:auto}#tvChart{height:62vh}.levels{max-height:300px}}
.lvl{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid #1a1f2b;font-size:.76rem}
.lvl-l{display:flex;align-items:center;gap:6px}
.dot{width:8px;height:8px;border-radius:50%}
.dot.king{background:var(--pika);box-shadow:0 0 6px var(--pika)}.dot.call{background:var(--teal)}.dot.put{background:var(--barney)}.dot.flip{background:var(--cyan)}.dot.gate{background:#f59e0b}
.dot.spot{background:#e9edf5;box-shadow:0 0 6px #e9edf5}
.lvl-v{font-family:'JetBrains Mono';font-weight:600}
.surfaced{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:10px}
.surfaced h3{font-size:.72rem;color:var(--muted);letter-spacing:.05em;margin-bottom:8px;text-transform:uppercase}
.card{background:var(--panel2);border:1px solid var(--border);border-radius:8px;padding:10px;cursor:pointer}.card:hover{border-color:var(--cyan)}
.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.card-sym{font-weight:700}
.tag{font-size:.6rem;padding:1px 5px;border-radius:3px;font-weight:600;margin-left:3px}
.tag.long{background:#22c55e22;color:var(--green)}.tag.short{background:#ef444422;color:var(--red)}.tag.king{background:#f2c14e22;color:var(--pika)}
.score{width:32px;height:32px;border-radius:50%;border:2px solid var(--cyan);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.76rem;color:var(--cyan)}
.card-line{font-family:'JetBrains Mono';font-size:.78rem}.card-meta{font-size:.68rem;color:var(--muted);margin-top:2px}
.modal-bg{position:fixed;inset:0;background:#000000cc;display:none;align-items:center;justify-content:center;z-index:100;padding:16px}
.modal-bg.open{display:flex}
.modal{background:var(--panel);border:1px solid var(--border);border-radius:12px;width:100%;max-width:900px;max-height:88vh;overflow-y:auto;padding:18px;position:relative}
.modal h2{font-size:1.15rem;margin-bottom:10px}
.close{position:absolute;top:10px;right:14px;background:none;border:none;color:var(--muted);font-size:1.4rem;cursor:pointer}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:680px){.g2{grid-template-columns:1fr}}
.st{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:10px 0 6px}
.rec{background:var(--panel2);border-radius:7px;padding:10px;border-left:3px solid var(--cyan);margin-bottom:6px}
.conf-box{background:#0a0c12;border:1px solid var(--border);border-radius:7px;padding:8px 10px;font-size:.74rem;font-family:'JetBrains Mono';line-height:1.7;margin-bottom:6px}
.prof{height:140px;background:#0a0c12;border-radius:6px}
.settings{position:fixed;top:0;right:-360px;width:340px;height:100%;background:var(--panel);border-left:1px solid var(--border);z-index:80;transition:right .22s;padding:16px;overflow-y:auto}
.settings.open{right:0}
.fg{margin-bottom:12px}.fg label{display:block;font-size:.72rem;color:var(--muted);margin-bottom:3px}
.fg .hint{font-size:.62rem;color:var(--muted);margin-top:3px;line-height:1.45}
.method{font-size:.72rem;color:var(--muted);line-height:1.5;background:#0a0c12;padding:10px;border-radius:7px;margin-top:10px}
footer{text-align:center;padding:12px;font-size:.65rem;color:#3f4656;border-top:1px solid var(--border)}
/* sign-aware King: gold is earned by POSITIVE nodes only; a negative King is
   the most vibrant of its own colour (Heatseeker convention) */
.srow.king.kneg{background:#c026ff!important}
.srow.king.kneg .strike,.srow.king.kneg .gex{color:#fff!important}
.srow.king.kneg .star{color:#fff}
.sgrid td.kcell.kneg{background:#c026ff!important;color:#fff!important}
.king-pill.kneg{background:linear-gradient(135deg,#c026ff30,#c026ff12);border-color:#c026ff88;color:#e879f9}
[data-tip]{position:relative}
[data-tip]:hover::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 7px);left:50%;transform:translateX(-50%);background:#161a24;border:1px solid #2a3140;color:var(--text);padding:7px 10px;border-radius:7px;font-size:.68rem;font-weight:400;line-height:1.45;white-space:normal;width:max-content;max-width:260px;z-index:200;pointer-events:none;text-align:left;box-shadow:0 6px 20px #000c}
[data-tip]:hover::before{content:'';position:absolute;bottom:calc(100% + 2px);left:50%;transform:translateX(-50%);border:5px solid transparent;border-top-color:#2a3140;z-index:200}
.skelrow{height:19px;margin:3px 8px;border-radius:4px;background:linear-gradient(90deg,#10141d 25%,#181e2b 50%,#10141d 75%);background-size:200% 100%;animation:shimmer 1.3s infinite}
@keyframes shimmer{to{background-position:-200% 0}}
.err-chip{margin:14px;padding:10px;border:1px solid #ef444455;border-radius:8px;color:#fca5a5;font-size:.74rem;line-height:1.5}
.pstats{display:flex;gap:10px;flex-wrap:wrap;padding:5px 10px;border-bottom:1px solid var(--border);background:#0d1018;font-size:.66rem;color:var(--muted)}
.pstats b{color:var(--text);font-family:'JetBrains Mono';font-weight:600}
.regime{padding:1px 6px;border-radius:3px;font-weight:700;font-size:.62rem}
.regime.pos{background:#2dd4bf22;color:var(--teal)}.regime.neg{background:#c026ff22;color:#e879f9}
.help h3{font-size:.86rem;margin:14px 0 5px;color:var(--cyan)}
.help p,.help li{font-size:.78rem;line-height:1.65;color:#c6cddb}
.help ul{padding-left:18px;margin:4px 0}
.help .kbd{background:#161a24;border:1px solid #2a3140;border-radius:4px;padding:0 5px;font-family:'JetBrains Mono';font-size:.72rem}
@media(max-width:760px){
  header{flex-wrap:wrap;row-gap:6px;padding:8px 10px}
  /* two tidy rows: view tabs, then controls — both wrap and center, no scroll */
  header{flex-direction:column;align-items:stretch;gap:7px}
  .logo{align-self:center;font-size:.9rem}
  .hdr-nav,.hdr-tools{width:100%;justify-content:center;gap:5px;row-gap:5px}
  .hdr-nav{order:1;border-bottom:1px solid var(--border);padding-bottom:7px}
  .hdr-tools{order:2}
  .hdr-nav .btn{flex:0 0 auto;white-space:nowrap;padding:6px 11px;font-size:.74rem}
  #expiryFilter{flex:0 0 auto}
  #lastUp{display:none}
  .banner{font-size:.6rem;gap:8px;padding:4px 10px}
  main{padding:5px}
  /* keep all three Triad panels side by side — skinny is intentional */
  .trinity{grid-template-columns:repeat(3,1fr);gap:2px}
  .panel{height:auto;min-height:0;max-height:70vh}
  /* A flex child defaults to min-height:auto, so .strikes grew to full content
     height instead of scrolling — the panel just clipped it. With min-height:0
     the child can shrink and its own overflow-y takes over, which is what makes
     programmatic centring possible on mobile at all. */
  .panel .strikes,.panel .sgrid-wrap{min-height:0}
  .chart-area{grid-template-columns:1fr}
  .levels{max-height:180px}
  .settings{width:100%;right:-100%}
  .cards{grid-template-columns:1fr 1fr}
  .modal{padding:14px}
  .srow{grid-template-columns:34px 1fr 50px;padding:2px;font-size:.6rem}
  .srow .strike{font-size:.6rem}
  .srow .gex{font-size:.6rem}
  .p-head{padding:4px 3px;gap:2px;flex-wrap:wrap}
  .ticker-sel{max-width:52px;font-size:.72rem;padding:2px}
  .price{font-size:.68rem}
  .king-pill{font-size:.52rem;padding:1px 4px}
  .badge-src{font-size:.5rem}
  .pstats{padding:3px;gap:4px;font-size:.55rem}
  .imb-row{grid-template-columns:1fr 120px 1fr}
  .spotpx{font-size:.52rem;padding:0 4px}
}
.hidden{display:none!important}
.loader{display:inline-block;width:10px;height:10px;border:2px solid var(--cyan);border-top-color:transparent;border-radius:50%;animation:spin .65s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}


/* ================= AETHER: Zero + Swing cards ================= */

/* ===== KAIROS ZERO (0DTE) ===== */
#aetherTabs button.on{background:var(--gold);color:#0a0a08}
#aetherTabs button[data-a="zero"].on{background:var(--cyan);color:#04121a}
.zstrip{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.zchip{font-size:.64rem;font-family:'JetBrains Mono';color:var(--muted);border:1px solid var(--border);border-radius:12px;padding:3px 10px}
.zchip.go{color:var(--teal);border-color:#2dd4bf55}
.zchip.blk{color:#f59e0b;border-color:#f59e0b55}
.zchip.warn{color:#fca5a5;border-color:#7f1d1d}
.zbtn{margin-left:auto;background:transparent;border:1px solid var(--border);color:var(--muted);padding:4px 11px;border-radius:7px;font-size:.68rem;cursor:pointer;font-family:'JetBrains Mono'}
.zbtn:hover{color:var(--cyan);border-color:var(--cyan)}
.zgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;align-items:start}
.zcard{background:var(--panel2);border:1px solid var(--border);border-radius:9px;padding:10px;position:relative;overflow:hidden}
.zcard .zhead{display:flex;justify-content:space-between;align-items:center;margin:2px 0 6px}
.zsetup{font-size:.6rem;font-family:'JetBrains Mono';font-weight:700;letter-spacing:.05em;color:var(--cyan);border:1px solid #22d3ee44;border-radius:4px;padding:1px 6px;margin-left:6px}
.zstandby{opacity:.62}
.zstandby .zsetup{color:var(--muted);border-color:var(--border)}
.zcon{font-size:.8rem;font-weight:600;margin-bottom:7px}
.zrow{font-size:.66rem;font-family:'JetBrains Mono';margin:5px 0}
.zest{display:flex;gap:10px;flex-wrap:wrap;background:#0a0c12;border:1px solid var(--border);border-radius:6px;padding:6px 8px}
.zest b{font-weight:700}
.zribbon{font-size:.58rem;font-family:'JetBrains Mono';font-weight:700;letter-spacing:.08em;padding:2px 8px;border-radius:4px;display:inline-block;margin-bottom:4px}
.zribbon.live{background:#22c55e22;color:var(--green)}
.zribbon.stop{background:#ef444426;color:var(--red)}
.zribbon.tgt{background:#f2c14e26;color:var(--pika)}
.zribbon.exp{background:#6d768822;color:var(--muted)}
.zmap{position:relative;height:14px;margin:8px 2px 2px}
.zbar{position:absolute;left:0;right:0;top:6px;height:2px;background:linear-gradient(90deg,#f87171aa,#2a3140 30%,#2a3140 70%,#34d399aa);border-radius:2px}
.zmk{position:absolute;top:2px;width:10px;height:10px;border-radius:50%;transform:translateX(-50%);border:2px solid var(--panel2)}
.zmk.mstop{background:var(--red)}
.zmk.ment{background:#e9edf5}
.zmk.mt1{background:var(--cyan)}
.zmk.mt2{background:var(--pika)}
.zlabels{display:flex;justify-content:space-between;font-size:.56rem;font-family:'JetBrains Mono';color:var(--muted);margin-top:2px;flex-wrap:wrap;gap:4px}
.zgates{margin:7px 0 2px;border-top:1px solid #1a1f2b;padding-top:6px}
.zg{display:flex;gap:7px;align-items:baseline;font-size:.62rem;padding:1.5px 0}
.zg span{width:11px;flex:0 0 auto;font-weight:700}
.zg.ok span{color:var(--teal)}
.zg.no span{color:var(--red)}
.zg b{color:var(--text);font-weight:600;flex:0 0 auto}
.zg i{color:var(--muted);font-style:normal;font-family:'JetBrains Mono';font-size:.58rem}
.zwhy{font-size:.7rem;color:#c6cddb;line-height:1.5;margin-top:6px}
.zfoot{font-size:.58rem;font-family:'JetBrains Mono';color:#f59e0b;margin-top:7px;border-top:1px solid #1a1f2b;padding-top:6px;line-height:1.5}
.zhon{margin-top:12px;background:#0a0c12;border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:.64rem;color:var(--muted);line-height:1.7}
.zhon b{color:#f59e0b}
.zspec{display:flex;flex-direction:column;gap:2.5px;margin:2px 0 6px}
.zspec>div{display:flex;gap:8px;align-items:baseline}
.zspec span{font-family:'JetBrains Mono';font-size:.55rem;letter-spacing:.09em;color:var(--muted);width:66px;flex:0 0 auto;padding-top:1px}
.zspec b{font-weight:600;font-family:'JetBrains Mono';font-size:.71rem;color:var(--text)}
.zspec em{font-style:normal;font-weight:700}
.zspec i,.zlvls i{font-style:normal;color:var(--muted);font-weight:400;font-size:.6rem}
.zlvls{width:100%;border-collapse:collapse;margin:7px 0 3px;font-family:'JetBrains Mono'}
.zlvls th{font-size:.53rem;letter-spacing:.09em;color:var(--muted);text-align:right;font-weight:600;padding:2px 6px;border-bottom:1px solid #1a1f2b}
.zlvls th:first-child{text-align:left}
.zlvls td{font-size:.69rem;font-weight:600;text-align:right;padding:3px 6px;border-bottom:1px solid #12161f;white-space:nowrap}
.zlvls td:first-child{text-align:left;font-size:.55rem;letter-spacing:.07em;color:var(--muted)}
.zlvls tr.ls td:nth-child(2){color:var(--red)}
.zlvls tr.l1 td:nth-child(2){color:var(--cyan)}
.zlvls tr.l2 td:nth-child(2){color:var(--pika)}
.zlvls tr.lr td{border-bottom:none;color:var(--text)}
.zlvls .up{color:var(--green)}
.zlvls .dn{color:var(--red)}
@media(max-width:760px){.zgrid{grid-template-columns:1fr}.zbtn{margin-left:0}}
/* Swing deck reads GOLD, Zero stays CYAN — two engines, two looks */
.scard{border-color:#f2c14e2e;background:linear-gradient(180deg,#131118,#0d1017)}
.scard .zsetup{color:var(--gold);border-color:#f2c14e44}
.scard .score{border-color:var(--gold);color:var(--gold)}
.scard.zstandby .zsetup{color:var(--muted);border-color:var(--border)}
.sspread{font-family:'JetBrains Mono';font-size:.62rem;color:var(--gold);background:#f2c14e0d;border:1px solid #f2c14e2e;border-radius:6px;padding:5px 8px;margin:6px 0 3px;line-height:1.55}
.sspread i{font-style:normal;color:var(--muted)}


/* ================= NEXUS (the field) ================= */

/* ===== KAIROS ARENA v3 — THE FIELD ===== */
.arena{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:12px}
.a-top{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.a-legend{display:flex;gap:11px;flex-wrap:wrap;margin-left:auto}
.a-lg{display:flex;align-items:center;gap:6px;font-size:.62rem;font-family:'JetBrains Mono';color:var(--muted);letter-spacing:.05em;white-space:nowrap}
.a-lg s{width:14px;height:8px;display:block;text-decoration:none;border-radius:2px}
.a-lg s.aeg{background:linear-gradient(90deg,rgba(45,212,191,0),rgba(45,212,191,.9))}
.a-lg s.mae{background:linear-gradient(90deg,rgba(192,84,247,0),rgba(192,84,247,.9))}
.a-lg s.scorch{background:rgba(200,140,70,.85)}
.a-lg s.reach{background:rgba(34,211,238,.3);border:1px solid rgba(34,211,238,.5)}
.a-lg i{width:9px;height:9px;border-radius:50%;display:block;font-style:normal}
.a-lg i.std{background:#fff;box-shadow:0 0 9px var(--cyan)}
.a-stage{position:relative;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#05070c}
#arenaCanvas{display:block;width:100%;height:clamp(500px,calc(100vh - 330px),1100px);min-height:440px}
.a-wait{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;font-family:'JetBrains Mono';font-size:.72rem;color:var(--muted);background:#05070c;text-align:center;padding:16px;line-height:1.6}
.a-hud{display:grid;grid-template-columns:repeat(8,1fr);gap:6px;margin-top:10px}
.a-hud .sv{font-size:.78rem}
.a-hud .stat{padding:7px 9px}
@media(max-width:1100px){.a-hud{grid-template-columns:repeat(4,1fr)}}
@media(max-width:600px){.a-hud{grid-template-columns:repeat(2,1fr)}.a-legend{margin-left:0}#arenaCanvas{height:60vh;min-height:380px}}
.a-note{font-size:.62rem;color:var(--muted);margin-top:9px;line-height:1.6}
.a-note b{color:var(--teal)}
.a-note em{font-style:normal;color:#e879f9}
.a-note u{text-decoration:none;color:rgba(200,140,70,1)}
.a-note q{quotes:none;color:var(--cyan)}
/* editable preset chips */
.pchip{position:relative}
.pchip .px{display:none;margin-left:6px;font-size:.72rem;line-height:1;color:var(--muted);opacity:.75;padding:0 1px;border-radius:3px}
.pchip:hover .px{display:inline}
.pchip .px:hover{color:var(--red);opacity:1;background:#ef444422}
.pchip.padd{color:var(--teal);border-color:#2dd4bf55;font-weight:700;padding:4px 10px}
.pchip.padd:hover{background:#2dd4bf18;border-color:var(--teal);color:var(--teal)}

/* ---- Nexus v4: window chips + live snap-back ---- */
.nx-wins{flex-wrap:wrap}
.nx-wins button.on{background:var(--cyan);color:#04121a}
.nx-wins button[data-w="candle"].on{background:var(--teal,#2dd4bf);color:#04121a}
.nx-wins .livebtn{color:var(--cyan);border-left:1px solid var(--border)}
.nx-wins .livebtn:hover{background:rgba(34,211,238,.12);color:var(--cyan)}
@media(max-width:600px){.nx-wins{order:3;width:100%}}

/* ---- Nexus candle-interval chips ---- */
.nx-wins button.ciBtn{padding:4px 6px;font-size:.64rem;opacity:.82}
.nx-wins button.ciBtn.on{background:var(--teal,#2dd4bf);color:#04121a;opacity:1}
.nx-wins button[data-w="candle"].on{background:var(--teal,#2dd4bf);color:#04121a}

/* ---- Regime: intraday chart legend + sortable table ---- */
.reg-lg{display:inline-flex;align-items:center;gap:5px;font-size:.6rem;color:var(--muted);letter-spacing:.05em}
.reg-lg s{width:14px;height:3px;border-radius:2px;display:inline-block;text-decoration:none}

/* ---- Surfaced Ideas: compact expandable thumbnails ---- */
.idea-thumb{transition:border-color .15s}
.idea-thumb.open{border-color:var(--cyan)}
.thumb-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.thumb-sym{font-weight:700;font-size:.9rem}
.thumb-contract{font-family:'JetBrains Mono';font-size:.8rem;color:var(--gold);letter-spacing:.02em;margin-bottom:8px}
.thumb-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.thumb-grid>div{display:flex;flex-direction:column;gap:1px;min-width:0}
.thumb-grid .tl{font-size:.55rem;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}
.thumb-grid .tv{font-family:'JetBrains Mono';font-size:.78rem;font-weight:600}
.thumb-detail{margin-top:10px;padding-top:9px;border-top:1px solid var(--border)}
.thumb-deep{width:100%;color:var(--cyan)}
.thumb-deep:hover{background:rgba(34,211,238,.1)}
.thumb-standby{font-family:'JetBrains Mono';font-size:.7rem;color:var(--muted)}
/* the 0DTE thumbnails grid: cap width so they read as cards, not banners; fit height */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px;align-items:start}
@media(max-width:640px){.cards{grid-template-columns:1fr 1fr}.zgrid{grid-template-columns:1fr}}
@media(max-width:400px){.cards{grid-template-columns:1fr}}

/* ---- Tape: sortable headers ---- */
.tape th.tsort{cursor:pointer;user-select:none;transition:color .12s}
.tape th.tsort:hover{color:var(--text)}
.tape th.tsort.on{color:var(--cyan)}

/* ============ ORRERY — market rotation view ============ */
.orrery{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:10px}
.orr-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.orr-title{font-weight:700;font-size:.95rem;letter-spacing:.08em;color:var(--green);display:flex;align-items:baseline;gap:10px}
.orr-sub{font-size:.62rem;color:var(--muted);letter-spacing:.06em;font-weight:500}
.orr-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.orr-tf button[data-tf].on,#orrTf button.on{background:var(--green);color:#04120a}
.orr-meta{font-size:.64rem;color:var(--muted);font-family:'JetBrains Mono'}
.orr-grid{display:grid;grid-template-columns:1fr 320px;gap:12px;align-items:stretch}
.orr-stage{position:relative;min-height:0}
#orrCanvas{display:block;width:100%;height:clamp(420px,calc(100vh - 340px),820px);border-radius:8px;background:radial-gradient(120% 120% at 50% 40%,#0a0e16,#06080d)}
.orr-wait{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--muted);font-size:.8rem;line-height:1.7;pointer-events:none}
.orr-rail{background:var(--panel2);border:1px solid var(--border);border-radius:8px;padding:8px;overflow:auto;max-height:clamp(420px,calc(100vh - 340px),820px)}
.orr-rail-h{font-size:.6rem;letter-spacing:.1em;color:var(--muted);padding:4px 6px 8px;font-weight:700}
.orr-callout{background:#0a0e16;border:1px solid var(--border);border-radius:6px;padding:8px 9px;margin-bottom:8px;font-size:.66rem;font-family:'JetBrains Mono';line-height:1.9}
.oc-l{font-weight:700;letter-spacing:.05em;margin-right:5px}
.orr-row{display:grid;grid-template-columns:14px 46px 1fr auto auto;align-items:center;gap:7px;padding:6px 6px;border-radius:5px;cursor:pointer;font-size:.7rem;transition:background .1s}
.orr-row:hover{background:rgba(52,211,153,.08)}
.orr-row.sel{background:rgba(52,211,153,.14);outline:1px solid rgba(52,211,153,.35)}
.orr-dot{width:9px;height:9px;border-radius:50%}
.orr-rsym{font-weight:700;font-family:'JetBrains Mono'}
.orr-rname{color:var(--muted);font-size:.64rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.orr-rphase{font-size:.58rem;font-weight:600;letter-spacing:.03em}
.orr-rret{font-family:'JetBrains Mono';font-size:.66rem;text-align:right}
.orr-note{font-size:.62rem;color:var(--muted);line-height:1.6;border-top:1px solid var(--border);padding-top:9px}
/* drill panel */
.orr-drill{border-top:1px solid var(--border);padding-top:10px}
.orr-drill:empty{display:none}
.orr-drill-load,.od-noflow{color:var(--muted);font-size:.72rem;padding:10px}
.od-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:10px}
.od-sym{font-weight:700;font-size:1.05rem;font-family:'JetBrains Mono'}
.od-px{color:var(--cyan);font-size:.82rem}
.od-regime{font-size:.72rem;font-family:'JetBrains Mono';color:var(--muted)}
.od-open{margin-left:auto;font-size:.68rem;color:var(--cyan)}
.od-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.od-statrow{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:10px}
.od-stat{background:var(--panel2);border:1px solid var(--border);border-radius:6px;padding:6px 8px}
.od-l{font-size:.54rem;color:var(--muted);letter-spacing:.06em}
.od-v{font-family:'JetBrains Mono';font-weight:700;font-size:.82rem;margin-top:2px}
.od-lh{font-size:.58rem;letter-spacing:.08em;color:var(--muted);font-weight:700;margin:4px 0 6px}
.od-lrow{display:grid;grid-template-columns:64px 1fr 60px;align-items:center;gap:8px;font-family:'JetBrains Mono';font-size:.66rem;padding:2px 0}
.od-lrow.spot{background:rgba(34,211,238,.08);border-radius:3px}
.od-lk{font-weight:600}
.od-lbar{height:8px;background:#0a0e16;border-radius:3px;overflow:hidden}
.od-lbar i{display:block;height:100%;border-radius:3px;opacity:.7}
.od-lv{text-align:right}
.od-prints{width:100%;border-collapse:collapse;font-size:.64rem;font-family:'JetBrains Mono'}
.od-prints th{text-align:left;color:var(--muted);font-weight:600;padding:4px 6px;border-bottom:1px solid var(--border);font-size:.56rem;letter-spacing:.04em}
.od-prints td{padding:4px 6px;border-bottom:1px solid rgba(29,35,48,.5)}
.od-tag{padding:1px 6px;border-radius:9px;font-size:.56rem;font-weight:600}
.od-tag.hedge{background:rgba(126,166,214,.14);color:#9db4d6}
.od-tag.spread{background:rgba(242,193,78,.14);color:var(--gold)}
.od-tag.bet{background:rgba(52,211,153,.16);color:var(--green)}
.od-tag.flow{background:rgba(34,211,238,.12);color:var(--cyan)}
@media(max-width:820px){.orr-grid{grid-template-columns:1fr}.orr-rail{max-height:260px}.od-grid{grid-template-columns:1fr}.od-statrow{grid-template-columns:1fr 1fr}}

/* ---- Mythos: basket badge + category toggle ---- */
.orr-basket{color:var(--cyan);font-size:.7rem;opacity:.8}
#orrCatSel button.on{background:var(--green);color:#04120a}
#orrCatSel button{font-size:.6rem;letter-spacing:.04em}

/* ---- Junction header strip: weekly walls + biggest nodes ---- */
.p-mid{display:flex;align-items:center;gap:18px;flex:1;justify-content:center;flex-wrap:wrap}
.hm-block{display:flex;flex-direction:column;gap:3px;align-items:center}
.hm-lab{font-size:.52rem;letter-spacing:.1em;color:var(--muted);font-weight:700}
.hm-walls{display:flex;gap:8px;font-family:'JetBrains Mono';font-size:.72rem;font-weight:700}
.hw-c{color:var(--teal)}
.hw-p{color:#c99bff}
.hm-nodes{display:flex;gap:6px}
.hn-node{font-family:'JetBrains Mono';font-size:.66rem;font-weight:600;padding:1px 7px;border-radius:10px;white-space:nowrap}
.hn-node i{font-style:normal;opacity:.62;font-weight:500;margin-left:3px}
.hn-node.pos{background:rgba(45,212,191,.12);color:var(--teal)}
.hn-node.neg{background:rgba(147,51,234,.14);color:#c99bff}
/* only the wide single/Junction panel shows it; Triad's 3-up panels stay clean */
.panel:not(.single-mode) .p-mid{display:none}
@media(max-width:900px){.p-mid{display:none}}

/* ---- Aether v2: factor chips + desk note ---- */
.desk-note{font-size:.74rem;line-height:1.55;color:var(--text);background:rgba(34,211,238,.06);border-left:2px solid var(--cyan);padding:7px 10px;border-radius:0 6px 6px 0;margin-bottom:8px}
.factor-row{display:flex;gap:5px;flex-wrap:wrap;margin:6px 0 4px}
.drv.fpos{background:rgba(52,211,153,.14);color:var(--green);border:1px solid rgba(52,211,153,.25)}
.drv.fneg{background:rgba(248,113,113,.12);color:var(--red);border:1px solid rgba(248,113,113,.22)}
.drv.fpos,.drv.fneg{cursor:help}

/* ---- Aether v2: vol-regime + journal pulse bar ---- */
.aether-pulse{display:flex;gap:20px;flex-wrap:wrap;padding:8px 12px;margin-bottom:10px;background:var(--panel2);border:1px solid var(--border);border-radius:8px;font-family:'JetBrains Mono'}
.ap-block{display:flex;align-items:center;gap:7px;font-size:.72rem}
.ap-l{font-size:.56rem;letter-spacing:.08em;color:var(--muted);font-weight:700}
.ap-block i{font-style:normal;color:var(--muted);font-size:.66rem}
.ap-block b{font-weight:700}

/* ---- extended-hours price block in the Junction header ---- */
.hm-xh{display:flex;align-items:baseline;gap:7px;font-family:'JetBrains Mono';font-size:.78rem;font-weight:700}
.hm-xh i{font-style:normal;font-size:.66rem;font-weight:600}
.hm-xh s{font-size:.6rem;font-weight:500}

/* ---- NFA — deliberately subtle ---- */
.nfa-sub{font-size:.56rem;color:var(--muted);opacity:.65;text-align:center;padding:8px 4px 2px;letter-spacing:.03em}
.nfa-min{display:inline-block;font-size:.52rem;letter-spacing:.08em;font-weight:800;color:#b98b4a;border:1px solid rgba(242,193,78,.3);border-radius:8px;padding:0 5px;vertical-align:1px;margin-right:2px}

/* ---- "took it" checkbox on cards ---- */
.lg-take{display:inline-flex;align-items:center;gap:5px;font-size:.58rem;letter-spacing:.06em;font-weight:700;color:var(--muted);cursor:pointer;user-select:none;padding:2px 6px;border:1px solid var(--border);border-radius:11px;white-space:nowrap}
.lg-take:hover{border-color:var(--teal);color:var(--teal)}
.lg-take.on{border-color:var(--green);color:var(--green);background:rgba(52,211,153,.1)}
.lg-cb{display:inline-flex;align-items:center;justify-content:center;width:12px;height:12px;border:1px solid currentColor;border-radius:3px;font-size:.6rem;line-height:1}

/* ---- trade ledger ---- */
.ledger{margin-top:14px;border:1px solid var(--border);border-radius:9px;background:var(--panel2);overflow:hidden}
.lg-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 11px;border-bottom:1px solid var(--border)}
.lg-title{font-size:.6rem;letter-spacing:.12em;font-weight:800;color:var(--text)}
.lg-tab{background:transparent;border:1px solid var(--border);color:var(--muted);font-size:.58rem;letter-spacing:.07em;font-weight:700;padding:3px 9px;border-radius:11px;cursor:pointer;font-family:inherit}
.lg-tab i{font-style:normal;opacity:.7}
.lg-tab.on{border-color:var(--teal);color:var(--teal);background:rgba(45,212,191,.1)}
.lg-rate{font-size:.64rem;color:var(--muted);font-family:'JetBrains Mono'}
.lg-rate i{font-style:normal;opacity:.7}
.lg-note{margin-left:auto;font-size:.56rem;color:var(--muted);letter-spacing:.04em}
.lg-row{display:flex;align-items:center;gap:9px;padding:6px 11px;border-bottom:1px solid #141922;font-size:.68rem}
.lg-row:last-child{border-bottom:none}
.lg-row.lg-win{background:rgba(52,211,153,.05)}
.lg-row.lg-loss{background:rgba(248,113,113,.05)}
.lg-sym{font-weight:800;width:58px;flex-shrink:0}
.lg-con{color:var(--cyan);width:150px;flex-shrink:0;font-size:.66rem}
.lg-dir{font-size:.55rem;letter-spacing:.06em;font-weight:800;padding:1px 5px;border-radius:8px}
.lg-dir.up{color:var(--green);background:rgba(52,211,153,.13)}
.lg-dir.dn{color:var(--red);background:rgba(248,113,113,.13)}
.lg-meta{color:var(--muted);font-size:.62rem;flex:1;font-family:'JetBrains Mono'}
.lg-date{color:var(--muted);font-size:.58rem;font-family:'JetBrains Mono'}
.lg-acts{display:flex;gap:4px;flex-shrink:0}
.lg-b{background:transparent;border:1px solid var(--border);color:var(--muted);font-size:.55rem;letter-spacing:.05em;font-weight:700;padding:2px 7px;border-radius:9px;cursor:pointer;font-family:inherit}
.lg-b.win:hover{border-color:var(--green);color:var(--green)}
.lg-b.loss:hover{border-color:var(--red);color:var(--red)}
.lg-b.del:hover{border-color:var(--red);color:var(--red)}
.lg-empty{padding:14px 11px;color:var(--muted);font-size:.66rem}
@media(max-width:760px){.lg-con{width:auto}.lg-meta,.lg-date{display:none}}


/* ---- regime crosshair readout ---- */
.reg-tip{position:absolute;z-index:5;pointer-events:none;background:rgba(8,13,20,.94);border:1px solid rgba(124,196,236,.35);border-radius:7px;padding:6px 9px;font-family:'JetBrains Mono';font-size:.64rem;color:var(--text);display:flex;flex-direction:column;gap:2px;box-shadow:0 4px 18px rgba(0,0,0,.5)}
.reg-tip b{color:#eafcff}
.reg-tip .rt-row{display:flex;gap:6px;align-items:baseline}
.reg-tip .rt-row i{font-style:normal;font-size:.54rem;letter-spacing:.06em;width:38px}
.reg-tip .rt-row em{font-style:normal;font-size:.56rem;color:var(--muted)}

/* ---- aether engine status ---- */
.eng-status{font-size:.62rem;letter-spacing:.05em;color:var(--muted);font-family:'JetBrains Mono';padding:5px 9px;border:1px solid var(--border);border-radius:7px;background:var(--panel2)}
.eng-status b{font-weight:800}

/* ---- mobile: keep the doctrine + disclosures compact ---- */
@media(max-width:760px){
  .zhon{font-size:.55rem;line-height:1.45;color:var(--muted)}
  .nfa-sub{font-size:.52rem}
  .eng-status{font-size:.56rem}
}


/* ---- VIX desk (Junction) ---- */
.vixdesk{margin-top:12px;border:1px solid var(--border);border-radius:10px;background:var(--panel2);padding:10px 12px}
.vd-head{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}
.vd-head b{font-size:.72rem;letter-spacing:.14em}
.vd-head span{font-size:.56rem;color:var(--muted);letter-spacing:.05em}
.vd-row{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin:7px 0}
.vd-chip{display:inline-flex;flex-direction:column;gap:1px;border:1px solid var(--border);border-radius:7px;padding:4px 9px;background:var(--panel)}
.vd-chip i{font-style:normal;font-size:.5rem;letter-spacing:.1em;color:var(--muted)}
.vd-chip b{font-family:'JetBrains Mono';font-size:.76rem}
.vd-note{font-size:.6rem;color:var(--muted);line-height:1.5;padding:2px 0}
.vd-lad{margin-top:4px;display:flex;flex-direction:column;gap:2.5px}
.vd-lr{display:flex;align-items:center;gap:8px;font-family:'JetBrains Mono';font-size:.66rem}
.vd-lr>span{width:56px;flex-shrink:0}
.vd-tr{flex:1;height:6px;border-radius:3px;overflow:hidden;background:rgba(126,166,214,.06)}
.vd-tr>div{height:100%;border-radius:3px;opacity:.85}

/* ---- collapsible doctrine ---- */
.zhon-d summary{cursor:pointer;font-size:.62rem;color:var(--muted);letter-spacing:.04em;padding:4px 2px;list-style:none}
.zhon-d summary::-webkit-details-marker{display:none}
.zhon-d summary::after{content:' \25be';opacity:.6}
.zhon-d[open] summary::after{content:' \25b4'}
.zhon-d .zhon{margin-top:4px}


/* ---- v12.1: desktop cards wide enough that score badges never clip ---- */
@media(min-width:761px){.zgrid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}}
.zhead{gap:6px}
.zhead .score,.zhead .lg-take{flex-shrink:0}
#vixSec{margin-top:8px}


/* ---- Oracle (AI) ---- */
.oracle{margin:8px 0 10px;border:1px solid rgba(45,212,191,.22);border-radius:9px;background:linear-gradient(180deg,rgba(45,212,191,.05),rgba(45,212,191,.01));padding:9px 12px}
.or-block{margin-bottom:7px}
.or-block:last-of-type{margin-bottom:0}
.or-head{display:flex;align-items:baseline;gap:8px;margin-bottom:3px}
.or-head b,.or-block summary b{font-size:.6rem;letter-spacing:.13em;color:var(--teal)}
.or-head i,.or-block summary i{font-style:normal;font-size:.55rem;color:var(--muted)}
.or-block summary{cursor:pointer;list-style:none;padding:2px 0}
.or-block summary::-webkit-details-marker{display:none}
.or-block summary::after{content:' \25be';opacity:.5;color:var(--muted)}
.or-block[open] summary::after{content:' \25b4'}
.or-body{font-size:.72rem;line-height:1.65;color:var(--text)}
.or-body b{color:var(--gold)}
.or-body ul{margin:4px 0 4px 15px;padding:0}
.or-body li{margin:2px 0}
.or-foot{margin-top:7px;padding-top:6px;border-top:1px solid rgba(126,166,214,.1);font-size:.55rem;color:var(--muted);opacity:.75}
@media(max-width:760px){.or-body{font-size:.68rem}}

.prov{font-family:'JetBrains Mono';font-size:.55rem;color:var(--muted);opacity:.7;border:1px solid var(--border);border-radius:8px;padding:1px 5px;margin-left:6px;white-space:nowrap}


/* ---- Nova ---- */
.nova{margin:10px 0;border:1px solid rgba(45,212,191,.2);border-radius:9px;background:linear-gradient(180deg,rgba(45,212,191,.045),rgba(45,212,191,.01));padding:9px 12px}
.nova-hd{display:flex;align-items:center;gap:7px;margin-bottom:6px}
.nova-hd b{font-size:.62rem;letter-spacing:.18em;color:var(--teal)}
.nova-hd i{font-style:normal;font-size:.54rem;color:var(--muted);opacity:.8}
.nova-dot{width:6px;height:6px;border-radius:50%;background:var(--teal);box-shadow:0 0 7px var(--teal);animation:novaPulse 2.6s ease-in-out infinite}
@keyframes novaPulse{0%,100%{opacity:.45}50%{opacity:1}}
@media(max-width:760px){
  .nova{padding:8px 10px;margin:8px 0}
  .nova-hd i{display:none}
  .or-body{font-size:.68rem;line-height:1.6}
  .or-block summary{font-size:.58rem}
}

#novaJunction,#novaVix{margin-top:0}
#novaJunction .or-body,#novaVix .or-body{max-height:190px;overflow:auto}


/* ---- guide ---- */
.guide-lede{font-size:.74rem;line-height:1.7;color:var(--muted);margin:6px 0 14px}
.guide-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:9px;margin-bottom:18px}
.guide-item{border:1px solid var(--border);border-radius:8px;padding:9px 11px;background:var(--panel2)}
.guide-item b{display:block;font-size:.66rem;letter-spacing:.13em;color:var(--teal);margin-bottom:4px}
.guide-item span{display:block;font-size:.71rem;line-height:1.62;color:var(--text)}
.guide-item i{color:var(--gold);font-style:normal}
@media(max-width:760px){.guide-grid{grid-template-columns:1fr}.guide-item span{font-size:.68rem}}


/* ---- modal close button: keep it inside the viewport on phones ---- */
.modal-bg .modal,.modal-bg .modal.help{position:relative}
.close{z-index:5}
@media(max-width:760px){
  .modal-bg{padding:10px}
  .modal-bg .modal,.modal-bg .modal.help{max-height:88vh;overflow:auto;padding-top:44px;-webkit-overflow-scrolling:touch}
  .close{position:fixed;top:14px;right:18px;font-size:1.7rem;line-height:1;background:rgba(10,14,20,.92);border:1px solid var(--border);border-radius:50%;width:38px;height:38px;display:flex;align-items:center;justify-content:center;color:var(--text)}
  .settings{max-height:88vh;overflow:auto}
}


/* ---- Nova v2: instrument readout ---- */
.nova{position:relative;overflow:hidden}
.nova::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:linear-gradient(180deg,var(--teal),rgba(45,212,191,.05));opacity:.8}
.or-block{border-top:1px solid rgba(126,166,214,.07)}
.or-block:first-of-type{border-top:none}
.or-block summary{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;padding:5px 0}
.or-block summary::-webkit-details-marker{display:none}
.nv-tag{font-size:.55rem;letter-spacing:.16em;font-weight:800;color:var(--teal);border:1px solid rgba(45,212,191,.3);border-radius:3px;padding:2px 6px;background:rgba(45,212,191,.07);white-space:nowrap}
.or-block summary i{font-style:normal;font-size:.52rem;color:var(--muted);opacity:.75;font-family:'JetBrains Mono'}
.or-block summary::after{content:'\25be';margin-left:auto;opacity:.4;font-size:.6rem}
.or-block[open] summary::after{content:'\25b4'}
.nv-zero .nv-tag{color:#f2c14e;border-color:rgba(242,193,78,.32);background:rgba(242,193,78,.07)}
.nv-regime .nv-tag,.nv-tape .nv-tag{color:#c084fc;border-color:rgba(192,132,252,.32);background:rgba(192,132,252,.07)}
.nv-brief .nv-tag,.nv-mythos .nv-tag{color:#7cc4ec;border-color:rgba(124,196,236,.32);background:rgba(124,196,236,.07)}
.or-body{font-size:.73rem;line-height:1.75;color:var(--text);padding:2px 0 6px}
/* inline data chips — the analysis reads like the terminal around it */
.nv-lvl{font-family:'JetBrains Mono';font-size:.7rem;color:#eafcff;background:rgba(124,196,236,.1);border-bottom:1px solid rgba(124,196,236,.35);padding:0 3px;border-radius:2px}
.nv-usd{font-family:'JetBrains Mono';font-size:.7rem;color:#34d399;background:rgba(52,211,153,.09);padding:0 3px;border-radius:2px}
.nv-pct{font-family:'JetBrains Mono';font-size:.7rem;color:#f2c14e;padding:0 2px}
.nv-tick{font-family:'JetBrains Mono';font-size:.69rem;font-weight:700;color:var(--text);background:rgba(126,166,214,.13);border:1px solid rgba(126,166,214,.22);padding:0 4px;border-radius:3px;letter-spacing:.04em}
.nv-term{color:#c084fc;font-weight:600}
@media(max-width:760px){.or-body{font-size:.69rem;line-height:1.7}.nv-tag{font-size:.5rem}}


/* ═══ Nova v3 — one strip, one tap, tabbed detail ═══ */
.nova{padding:0;margin:8px 0;border:1px solid rgba(45,212,191,.18);border-radius:9px;
  background:linear-gradient(180deg,rgba(45,212,191,.05),rgba(45,212,191,.012));overflow:hidden}
.nova::before{display:none}
.nv-strip{display:flex;align-items:center;gap:9px;width:100%;padding:8px 12px;background:none;
  border:0;cursor:pointer;text-align:left;font-family:inherit;color:var(--text)}
.nv-strip:hover{background:rgba(45,212,191,.045)}
.nv-strip>b{font-size:.58rem;letter-spacing:.2em;color:var(--teal);flex-shrink:0}
.nv-wait{cursor:default}
.nv-peek{flex:1;min-width:0;font-size:.68rem;line-height:1.4;color:var(--muted);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nv-chev{flex-shrink:0;color:var(--muted);font-size:.7rem;opacity:.7}
.nv-body{border-top:1px solid rgba(45,212,191,.14);display:grid;grid-template-columns:1fr}
.nv-tabs{display:flex;gap:5px;padding:8px 12px;overflow-x:auto;-webkit-overflow-scrolling:touch;
  border-bottom:1px solid rgba(126,166,214,.08)}
.nv-tab{flex-shrink:0;display:flex;flex-direction:column;gap:1px;background:none;cursor:pointer;
  border:1px solid var(--border);border-radius:5px;padding:4px 9px;font-family:inherit;
  font-size:.53rem;letter-spacing:.12em;font-weight:800;color:var(--muted);white-space:nowrap}
.nv-tab i{font-style:normal;font-size:.48rem;letter-spacing:.04em;font-weight:500;opacity:.7}
.nv-tab:hover{color:var(--text);border-color:rgba(126,166,214,.4)}
.nv-tab.on{color:var(--teal);border-color:rgba(45,212,191,.45);background:rgba(45,212,191,.09)}
.nv-content{padding:10px 14px 12px}
.nv-content .or-body{padding:0;max-width:88ch}
.nv-content .or-foot{margin-top:9px;padding-top:7px;border-top:1px solid rgba(126,166,214,.08);
  font-size:.52rem;color:var(--muted);opacity:.7;font-family:'JetBrains Mono'}
/* per-pass accent */
.nv-t-zero{color:#f2c14e!important;border-color:rgba(242,193,78,.35)!important}
.nv-t-zero.on{background:rgba(242,193,78,.09)!important}
.nv-t-regime,.nv-t-tape{color:#c084fc!important;border-color:rgba(192,132,252,.35)!important}
.nv-t-regime.on,.nv-t-tape.on{background:rgba(192,132,252,.09)!important}
.nv-t-brief,.nv-t-mythos{color:#7cc4ec!important;border-color:rgba(124,196,236,.35)!important}
.nv-t-brief.on,.nv-t-mythos.on{background:rgba(124,196,236,.09)!important}
span.nv-tag{flex-shrink:0}

/* DESKTOP: tabs become a vertical rail beside the text */
@media(min-width:900px){
  .nv-body{grid-template-columns:158px 1fr}
  .nv-tabs{flex-direction:column;overflow-x:visible;border-bottom:0;
    border-right:1px solid rgba(126,166,214,.08);padding:10px}
  .nv-tab{width:100%;text-align:left}
  .nv-content{padding:12px 16px 14px}
}
/* MOBILE: tighter strip, no wasted room */
@media(max-width:760px){
  .nova{margin:6px 0}
  .nv-strip{padding:7px 10px;gap:7px}
  .nv-strip>b{font-size:.52rem;letter-spacing:.14em}
  .nv-peek{font-size:.63rem}
  .nv-strip .nv-tag{display:none}
  .nv-content{padding:9px 11px 11px}
  .nv-content .or-body{font-size:.69rem;line-height:1.68}
}

/* ═══════════ FLOW CONSOLE (Junction · Regime) ═══════════ */
.flowcon{border:1px solid var(--border);border-radius:10px;background:var(--panel2);padding:12px 16px 14px;margin-bottom:10px}
.fc-head{display:flex;align-items:baseline;gap:10px;margin-bottom:12px}
.fc-head b{font-size:.62rem;letter-spacing:.18em;color:var(--text)}
.fc-head span{font-size:.56rem;color:var(--muted);font-family:'JetBrains Mono'}
.fc-ends{display:flex;justify-content:space-between;font-family:'JetBrains Mono';font-size:.58rem;
  letter-spacing:.1em;margin-bottom:5px}
.fc-put-l{color:rgba(248,113,113,.75)} .fc-call-l{color:rgba(52,211,153,.75)}
.fc-ends b{font-size:.68rem;font-weight:700}
.fc-put-l b{color:#f87171} .fc-call-l b{color:#34d399}
.fc-track{position:relative;display:flex;height:20px;border-radius:4px;overflow:hidden;background:rgba(126,166,214,.05)}
.fc-fill{height:100%}
.fc-fill.fc-put{background:linear-gradient(90deg,rgba(248,113,113,.85),rgba(248,113,113,.2))}
.fc-fill.fc-call{background:linear-gradient(90deg,rgba(52,211,153,.2),rgba(52,211,153,.85))}
.fc-mid{position:absolute;left:50%;top:0;bottom:0;width:1px;background:rgba(126,166,214,.3)}
.fc-fulcrum{position:absolute;top:-4px;bottom:-4px;width:2px;background:#eafcff;
  box-shadow:0 0 8px rgba(234,252,255,.6);transform:translateX(-1px)}
.fc-balance{text-align:center;font-family:'JetBrains Mono';font-size:.56rem;letter-spacing:.12em;
  color:var(--muted);margin-top:7px}
.fc-balance b{color:#eafcff;font-weight:700}
.fc-dials{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:13px}
.fc-dial{border:1px solid var(--border);border-radius:8px;background:var(--panel);padding:8px 11px;
  display:flex;flex-direction:column;gap:3px;min-width:0}
.fc-dial i{font-style:normal;font-size:.5rem;letter-spacing:.12em;color:var(--muted);white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.fc-dial b{font-family:'JetBrains Mono';font-size:.86rem;font-weight:700;letter-spacing:-.01em}

/* Regime split — the tape needs more room than the bars */
.reg-split{display:grid;grid-template-columns:0.95fr 1.25fr;gap:10px;align-items:stretch}
.reg-col{border:1px solid var(--border);border-radius:10px;background:var(--panel2);padding:11px 12px;min-width:0;overflow:hidden;display:flex;flex-direction:column;max-height:760px}
.reg-hd{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:9px;
  padding-bottom:8px;border-bottom:1px solid rgba(126,166,214,.09)}
.reg-hd b{font-size:.58rem;letter-spacing:.16em;color:var(--teal)}
.reg-hd span{font-size:.52rem;color:var(--muted)}
.reg-note{font-size:.6rem;color:var(--muted);margin-top:9px;line-height:1.55}
/* tape table, compacted for a column instead of a full page */
.reg-col table{width:100%;font-size:.63rem}
.reg-col th{font-size:.52rem!important;letter-spacing:.06em;padding:4px 3px!important;white-space:nowrap}
.reg-col td{padding:3px 3px!important;white-space:nowrap}
/* Height is capped on the COLUMN, not the scroll child — capping the child
   left the shorter column (imbalance, which has no stat boxes above it) with
   dead space under the bars while the grid stretched the row to the tape. */
.reg-col #tapeBody,.reg-col #imbBars{flex:1 1 auto;min-height:0;overflow:auto}
.reg-col #tapeStats{flex:0 0 auto}
/* ═══════════ NOVA HUB ═══════════ */
.novasec{padding:0}
.nv-hub{display:flex;flex-direction:column;gap:12px}
.nv-hero{display:flex;align-items:center;gap:20px;border:1px solid rgba(45,212,191,.2);border-radius:12px;
  background:radial-gradient(120% 140% at 10% 50%,rgba(45,212,191,.08),rgba(45,212,191,.01) 60%);padding:16px 20px}
.nv-core{width:132px;height:132px;flex-shrink:0}
.nc-r1{animation:ncSpin 34s linear infinite;transform-origin:100px 100px}
.nc-r2{animation:ncSpin 19s linear infinite reverse;transform-origin:100px 100px}
.nc-r3{animation:ncSpin 11s linear infinite;transform-origin:100px 100px}
@keyframes ncSpin{to{transform:rotate(360deg)}}
.nc-pulse{animation:ncP 2.8s ease-in-out infinite}
@keyframes ncP{0%,100%{opacity:.5;r:8}50%{opacity:1;r:11}}
.nv-core.live .nc-pulse{filter:drop-shadow(0 0 9px #2dd4bf)}
.nv-hero-txt{min-width:0}
.nv-hero-txt h2{font-size:1.5rem;letter-spacing:.42em;margin:0 0 5px;color:var(--teal);font-weight:800}
.nv-hero-txt p{font-size:.72rem;line-height:1.65;color:var(--muted);margin:0 0 9px;max-width:62ch}
.nv-status{display:flex;flex-wrap:wrap;gap:6px}
.nv-st{font-family:'JetBrains Mono';font-size:.53rem;letter-spacing:.1em;color:var(--muted);
  border:1px solid var(--border);border-radius:20px;padding:3px 10px}
.nv-st.on{color:var(--teal);border-color:rgba(45,212,191,.4);background:rgba(45,212,191,.08)}
.nv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:10px}
.nv-card{border:1px solid var(--border);border-radius:10px;background:var(--panel2);padding:11px 13px}
.nv-card-hd{font-size:.56rem;letter-spacing:.18em;font-weight:800;color:var(--teal);margin-bottom:7px;
  padding-bottom:6px;border-bottom:1px solid rgba(126,166,214,.09)}
.nv-c-so{border-color:rgba(242,193,78,.24)} .nv-c-so .nv-card-hd{color:#f2c14e;border-color:rgba(242,193,78,.16)}
.nv-c-me{border-color:rgba(192,132,252,.24)} .nv-c-me .nv-card-hd{color:#c084fc;border-color:rgba(192,132,252,.16)}
.nv-c-wa{border-color:rgba(124,196,236,.24)} .nv-c-wa .nv-card-hd{color:#7cc4ec;border-color:rgba(124,196,236,.16)}
.nv-feed-hd{font-size:.55rem;letter-spacing:.22em;color:var(--muted);margin-top:4px}
.nv-feed{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:8px}
.nv-tx{border:1px solid var(--border);border-radius:9px;background:var(--panel2);padding:8px 11px}
.nv-tx summary{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none}
.nv-tx summary::-webkit-details-marker{display:none}
.nv-tx summary::after{content:'\25be';margin-left:auto;opacity:.4;font-size:.6rem}
.nv-tx[open] summary::after{content:'\25b4'}
.nv-tx summary i{font-style:normal;font-size:.5rem;color:var(--muted);font-family:'JetBrains Mono'}
.nv-tx .or-body{margin-top:8px;padding-top:8px;border-top:1px solid rgba(126,166,214,.08)}

/* ═══════════ MOBILE ═══════════ */
@media(max-width:860px){
  .reg-split{grid-template-columns:1fr}
  .fc-dials{grid-template-columns:repeat(2,1fr)}
  .nv-hero{flex-direction:column;text-align:center;gap:12px;padding:14px}
  .nv-core{width:104px;height:104px}
  .nv-hero-txt h2{font-size:1.2rem;letter-spacing:.32em}
  .nv-status{justify-content:center}
  .nv-grid,.nv-feed{grid-template-columns:1fr}
  .flowcon{padding:9px 10px 11px}
  .reg-col{padding:9px 10px}
}
@media(prefers-reduced-motion:reduce){
  .nc-r1,.nc-r2,.nc-r3,.nc-pulse{animation:none}
}

/* hub source line */
.nv-src{font-family:'JetBrains Mono';font-size:.52rem;color:var(--muted);opacity:.7;letter-spacing:.05em}
@media(max-width:860px){
  .fc-ends{font-size:.52rem}
  .fc-ends b{font-size:.62rem}
  .fc-dials{grid-template-columns:repeat(2,1fr)}
  .flowcon{padding:10px 12px 12px}
  .reg-col table{font-size:.6rem}
  .reg-col{max-height:560px}
}

/* ═══════════════ NOVA COMMAND DECK ═══════════════ */
.nv-deck{display:flex;flex-direction:column;gap:14px}

/* hero */
.nv-hero{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:22px;
  border:1px solid rgba(45,212,191,.22);border-radius:14px;padding:18px 22px;overflow:hidden;
  background:
    radial-gradient(90% 160% at 12% 50%,rgba(45,212,191,.11),transparent 62%),
    linear-gradient(180deg,rgba(10,16,22,.9),rgba(8,12,18,.6))}
.nv-hero::after{content:'';position:absolute;inset:0;pointer-events:none;opacity:.35;
  background:repeating-linear-gradient(0deg,rgba(45,212,191,.05) 0 1px,transparent 1px 3px)}
.nv-hero-core{position:relative;z-index:1}
.nv-core{width:150px;height:150px;display:block}
.nc-r1{animation:ncSpin 40s linear infinite;transform-origin:110px 110px}
.nc-r2{animation:ncSpin 22s linear infinite reverse;transform-origin:110px 110px}
.nc-r3{animation:ncSpin 13s linear infinite;transform-origin:110px 110px}
.nc-sweep{animation:ncSpin 6s linear infinite;transform-origin:110px 110px;opacity:.85}
@keyframes ncSpin{to{transform:rotate(360deg)}}
.nc-pulse{animation:ncP 3s ease-in-out infinite}
@keyframes ncP{0%,100%{opacity:.55;r:9}50%{opacity:1;r:12}}
.nv-core.live .nc-pulse{filter:drop-shadow(0 0 12px #2dd4bf)}
.nv-hero-txt{position:relative;z-index:1;min-width:0}
.nv-wordmark{font-size:2.3rem;letter-spacing:.5em;font-weight:800;color:var(--teal);line-height:1;
  text-shadow:0 0 26px rgba(45,212,191,.45)}
.nv-sub{font-family:'JetBrains Mono';font-size:.6rem;letter-spacing:.16em;color:var(--muted);margin:9px 0 12px}
.nv-status{display:flex;flex-wrap:wrap;gap:6px}
.nv-st{display:inline-flex;align-items:center;gap:6px;font-family:'JetBrains Mono';font-size:.53rem;
  letter-spacing:.1em;color:var(--muted);border:1px solid var(--border);border-radius:20px;padding:3px 11px}
.nv-st i{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.45}
.nv-st.on{color:var(--teal);border-color:rgba(45,212,191,.4);background:rgba(45,212,191,.08)}
.nv-st.on i{opacity:1;box-shadow:0 0 7px currentColor;animation:ncP 2.4s ease-in-out infinite}
.nv-gauges{position:relative;z-index:1;display:flex;gap:12px}
.nv-g{border:1px solid var(--border);border-radius:9px;background:rgba(8,12,18,.55);padding:9px 13px;min-width:132px}
.nv-g-lab{font-size:.48rem;letter-spacing:.14em;color:var(--muted);margin-bottom:5px}
.nv-g-bar{height:5px;border-radius:3px;background:rgba(248,113,113,.28);overflow:hidden;margin-bottom:5px}
.nv-g-bar>div{height:100%;background:linear-gradient(90deg,rgba(52,211,153,.6),#34d399)}
.nv-g-val{font-family:'JetBrains Mono';font-size:.56rem;color:var(--muted)}
.nv-g-val.big{font-size:1.25rem;font-weight:700;line-height:1.15;margin-bottom:2px}

/* the board */
.nv-const{border:1px solid var(--border);border-radius:12px;background:var(--panel2);padding:12px 14px}
.nv-const-hd{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.nv-const-hd b{font-size:.6rem;letter-spacing:.18em;color:var(--teal)}
.nv-const-hd span{font-size:.52rem;color:var(--muted)}
.nv-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(124px,1fr));gap:7px}
.nv-tile{display:flex;flex-direction:column;gap:2px;text-align:left;cursor:pointer;font-family:inherit;
  border:1px solid var(--border);border-radius:8px;padding:8px 10px;position:relative;overflow:hidden;
  background:var(--panel);transition:transform .12s ease,border-color .12s ease}
.nv-tile::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;opacity:calc(.35 + var(--mag) * .65)}
.nv-tile.pos::before{background:#34d399} .nv-tile.neg::before{background:#c084fc}
.nv-tile:hover{transform:translateY(-2px);border-color:rgba(45,212,191,.45)}
.nv-tile-s{font-size:.7rem;font-weight:800;letter-spacing:.05em;color:var(--text)}
.nv-tile-p{font-family:'JetBrains Mono';font-size:.66rem;color:#7cc4ec}
.nv-tile-k{font-family:'JetBrains Mono';font-size:.54rem;color:var(--muted)}
.nv-tile-k i{font-style:normal;opacity:.75}

/* briefing */
.nv-brief-hd{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-top:2px}
.nv-brief-hd b{font-size:.6rem;letter-spacing:.18em;color:var(--teal)}
.nv-brief-hd span{font-size:.52rem;color:var(--muted)}
.nv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:10px}
.nv-card{border:1px solid var(--border);border-radius:11px;background:var(--panel2);padding:12px 14px;position:relative;overflow:hidden}
.nv-card-hd{display:flex;align-items:center;gap:8px;font-size:.55rem;letter-spacing:.18em;font-weight:800;
  color:var(--teal);margin-bottom:9px;padding-bottom:7px;border-bottom:1px solid rgba(126,166,214,.09)}
.nv-ic{font-size:.8rem;opacity:.85;line-height:1}
.nv-c-pu{border-color:rgba(45,212,191,.26)}
.nv-c-ca{border-color:rgba(242,193,78,.26)} .nv-c-ca .nv-card-hd{color:#f2c14e;border-color:rgba(242,193,78,.16)}
.nv-c-ro{border-color:rgba(124,196,236,.26)} .nv-c-ro .nv-card-hd{color:#7cc4ec;border-color:rgba(124,196,236,.16)}
.nv-c-so{border-color:rgba(192,132,252,.26)} .nv-c-so .nv-card-hd{color:#c084fc;border-color:rgba(192,132,252,.16)}
.nv-c-me{border-color:rgba(126,166,214,.26)} .nv-c-me .nv-card-hd{color:#9fb4cc;border-color:rgba(126,166,214,.16)}
.nv-c-wa{border-color:rgba(248,113,113,.26)} .nv-c-wa .nv-card-hd{color:#f87171;border-color:rgba(248,113,113,.16)}
.nv-src{font-family:'JetBrains Mono';font-size:.52rem;color:var(--muted);opacity:.7;letter-spacing:.05em}
/* awaiting state gets a scanning bar so the page never looks dead */
.nv-await{position:relative}
.nv-scan{position:absolute;left:0;right:0;top:0;height:2px;overflow:hidden}
.nv-scan::after{content:'';position:absolute;top:0;left:-45%;width:45%;height:2px;
  background:linear-gradient(90deg,transparent,#2dd4bf,transparent);animation:nvScan 2.6s linear infinite}
@keyframes nvScan{to{left:115%}}

@media(max-width:900px){
  .nv-hero{grid-template-columns:1fr;text-align:center;gap:12px;padding:16px 14px}
  .nv-hero-core{margin:0 auto}
  .nv-core{width:112px;height:112px}
  .nv-wordmark{font-size:1.5rem;letter-spacing:.34em}
  .nv-status,.nv-gauges{justify-content:center}
  .nv-gauges{flex-wrap:wrap}
  .nv-g{flex:1;min-width:0}
  .nv-grid{grid-template-columns:1fr}
  .nv-tiles{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:6px}
  .nv-tile{padding:7px 8px}
}
@media(prefers-reduced-motion:reduce){
  .nc-r1,.nc-r2,.nc-r3,.nc-sweep,.nc-pulse,.nv-scan::after,.nv-st.on i{animation:none}
}
