@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap');

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:14px;-webkit-font-smoothing:antialiased}

:root {
  --bg:#070b14; --bg2:#0d1424; --bg3:#111c30; --bg4:#172038;
  --border:#192540; --border2:#243454;
  --text:#c8d4e8; --sub:#7a8aaa; --muted:#485878; --dim:#283048;
  --green:#00c87a; --red:#e03050; --amber:#d89020;
  --blue:#3d88d8; --teal:#18c0b8; --cotton:#8858d0; --orange:#d07820;
  --font:'JetBrains Mono','Fira Code','Cascadia Code',monospace;
  --sbw:220px;
}

body{font-family:'Inter',system-ui,sans-serif;background:var(--bg);color:var(--text);display:flex;min-height:100vh;overflow-x:hidden}

/* SIDEBAR */
.sidebar{width:var(--sbw);position:fixed;top:0;left:0;height:100vh;background:#050912;border-right:1px solid #121c2e;display:flex;flex-direction:column;z-index:200;overflow-y:auto}
.sb-logo{padding:16px 16px 12px;border-bottom:1px solid #121c2e;flex-shrink:0}
.sb-brand{font-size:15px;font-weight:700;color:var(--text);letter-spacing:-.02em;line-height:1.1}
.sb-brand b{color:var(--teal)}
.sb-tagline{font-size:8.5px;font-family:var(--font);color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin-top:3px}
.sb-section{padding:12px 10px 0}
.sb-label{font-size:8.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;padding:0 6px;margin-bottom:4px}
.sb-spacer{flex:1}
.sb-footer{padding:10px 14px;border-top:1px solid #121c2e;font-size:9px;color:var(--muted);font-family:var(--font);line-height:1.6}
.nav-item{display:flex;align-items:center;gap:9px;padding:7px 6px 7px 8px;border-radius:6px;color:var(--sub);text-decoration:none;font-size:12px;font-weight:500;transition:background .12s,color .12s;margin-bottom:2px;border-left:2px solid transparent}
.nav-item svg{width:13px;height:13px;flex-shrink:0;opacity:.65}
.nav-item:hover{background:var(--bg3);color:var(--text)}
.nav-item:hover svg{opacity:1}
.nav-item.active{background:rgba(24,192,184,.1);color:var(--teal);border-left-color:var(--teal)}
.nav-item.active svg{opacity:1}

/* MAIN */
.main{margin-left:var(--sbw);flex:1;min-width:0;display:flex;flex-direction:column;min-height:100vh}

/* PAGE HEADER */
.page-hdr{background:#060a12;border-bottom:1px solid var(--border);padding:12px 20px 10px;display:flex;align-items:flex-start;justify-content:space-between;flex-shrink:0;gap:16px}
.page-hdr-left{}
.page-title{font-size:17px;font-weight:700;color:var(--text);letter-spacing:-.02em;line-height:1.2}
.page-desc{font-size:11px;color:var(--sub);margin-top:2px}
.page-hdr-right{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-top:2px}
.hdr-pill{font-size:9px;font-family:var(--font);color:var(--teal);border:1px solid rgba(24,192,184,.22);padding:3px 8px;border-radius:3px;white-space:nowrap}
.hdr-clock{font-size:10px;font-family:var(--font);color:var(--muted)}
.live-dot{width:5px;height:5px;border-radius:50%;background:var(--green);display:inline-block;margin-right:4px;animation:pdot 2s ease-in-out infinite}
@keyframes pdot{0%,100%{opacity:1}50%{opacity:.25}}

/* TICKER */
.ticker-bar{background:#060a12;border-bottom:1px solid var(--border);overflow:hidden;height:28px;display:flex;align-items:center;flex-shrink:0}
#ticker-strip{display:flex;white-space:nowrap;animation:tscroll 90s linear infinite}
#ticker-strip:hover{animation-play-state:paused}
@keyframes tscroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.tick{display:inline-flex;align-items:center;gap:6px;padding:0 14px;border-right:1px solid var(--border);font-size:11px;height:28px}
.tick-name{color:var(--sub);font-size:9.5px;font-family:var(--font)}
.tick-price{color:var(--text);font-family:var(--font);font-weight:500}
.tick-chg{font-family:var(--font);font-size:9.5px}
.tick-chg.up{color:var(--green)}.tick-chg.dn{color:var(--red)}

/* BODY */
.page-body{padding:16px 20px 40px;flex:1;overflow-y:auto}

/* GRID HELPERS */
.section-gap{margin-bottom:14px}
.section-title{font-size:9px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
@media(max-width:1300px){.grid3{grid-template-columns:1fr 1fr}.grid4{grid-template-columns:1fr 1fr}}
@media(max-width:800px){.grid2,.grid3,.grid4{grid-template-columns:1fr}}

/* CARD */
.card{background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:14px}
.card-title{font-size:9px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:10px}
.card-value{font-size:22px;font-weight:700;color:var(--text);font-family:var(--font);line-height:1.1}

/* TERMINAL PANELS */
.terminal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(clamp(200px,18vw,320px),1fr));gap:10px}
.terminal-panel{background:var(--bg2);border:1px solid var(--border);border-radius:6px;padding:12px}
.terminal-panel.good{border-color:rgba(0,200,122,.28);background:linear-gradient(145deg,rgba(0,200,122,.05) 0%,var(--bg2) 60%)}
.terminal-panel.warn{border-color:rgba(216,144,32,.3);background:linear-gradient(145deg,rgba(216,144,32,.06) 0%,var(--bg2) 60%)}
.terminal-panel.bad{border-color:rgba(224,48,80,.28);background:linear-gradient(145deg,rgba(224,48,80,.05) 0%,var(--bg2) 60%)}
.panel-kicker{font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:4px}
.panel-value{font-size:15px;font-weight:700;color:var(--text);font-family:var(--font);line-height:1.2;text-transform:capitalize}
.panel-copy{font-size:10px;color:var(--sub);margin-top:4px;line-height:1.5}
.terminal-panel code{font-size:9px;word-break:break-all;white-space:pre-wrap;color:var(--teal);display:block;line-height:1.6;margin-top:4px}

/* OPS BOARD */
.ops-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(clamp(250px,20vw,360px),1fr));gap:12px}
.ops-card{background:var(--bg2);border:1px solid var(--border);border-radius:7px;padding:12px;min-height:96px;transition:border-color .15s}
.ops-card:hover{border-color:var(--border2)}
.ops-card.good{border-color:rgba(0,200,122,.28);background:linear-gradient(145deg,rgba(0,200,122,.05) 0%,var(--bg2) 60%)}
.ops-card.warn{border-color:rgba(216,144,32,.3);background:linear-gradient(145deg,rgba(216,144,32,.06) 0%,var(--bg2) 60%)}
.ops-card.bad{border-color:rgba(224,48,80,.28);background:linear-gradient(145deg,rgba(224,48,80,.05) 0%,var(--bg2) 60%)}
.ops-name{font-size:10px;font-weight:600;color:var(--text);margin-bottom:1px}
.ops-symbol{font-size:9px;color:var(--muted);font-family:var(--font);margin-bottom:3px}
.ops-last{font-size:15px;font-weight:700;color:var(--text);line-height:1.2;margin:4px 0 6px;font-family:var(--font);text-transform:capitalize}
.ops-meta{display:flex;flex-wrap:wrap;gap:3px}
.ops-meta span{font-size:9px;background:var(--bg4);border:1px solid var(--border);border-radius:3px;padding:1px 5px;color:var(--sub);font-family:var(--font)}

/* METRICS GRID */
.metrics-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(clamp(140px,11vw,190px),1fr));gap:8px}
.metric-card{background:var(--bg2);border:1px solid var(--border);border-radius:6px;padding:10px 11px;cursor:pointer;transition:border-color .15s}
.metric-card:hover{border-color:var(--border2)}
.cotton-card{border-color:rgba(136,88,208,.25);background:linear-gradient(145deg,rgba(136,88,208,.04) 0%,var(--bg2) 60%)}
.mc-label{font-size:9px;font-weight:600;color:var(--sub);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mc-price{font-size:14px;font-weight:700;font-family:var(--font);color:var(--text);line-height:1.2}
.mc-meta{display:flex;align-items:center;gap:5px;margin-top:2px}
.mc-chg{font-family:var(--font);font-size:10px;font-weight:500}
.mc-chg.up{color:var(--green)}.mc-chg.dn{color:var(--red)}
.mc-unit{font-size:9px;color:var(--muted);font-family:var(--font)}
.mc-source{margin-top:3px}

/* BADGES */
.badge{display:inline-block;font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:2px 6px;border-radius:3px}
.badge-hi{background:rgba(0,200,122,.1);color:var(--green);border:1px solid rgba(0,200,122,.25)}
.badge-med{background:rgba(216,144,32,.1);color:var(--amber);border:1px solid rgba(216,144,32,.25)}
.badge-exp{background:rgba(61,136,216,.1);color:var(--blue);border:1px solid rgba(61,136,216,.25)}
.badge-red{background:rgba(224,48,80,.1);color:var(--red);border:1px solid rgba(224,48,80,.25)}
.badge-dim{background:rgba(255,255,255,.03);color:var(--muted);border:1px solid var(--border)}

/* FILTER BAR */
.filter-bar{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;align-items:center}
.small-btn{font-size:10px;padding:4px 10px;background:var(--bg3);border:1px solid var(--border);color:var(--sub);border-radius:4px;cursor:pointer;transition:background .1s,color .1s,border-color .1s;font-family:inherit;font-weight:500}
.small-btn:hover{background:var(--bg4);color:var(--text);border-color:var(--border2)}
.small-btn.active{background:rgba(24,192,184,.1);color:var(--teal);border-color:rgba(24,192,184,.35)}
.filter-label{font-size:10px;color:var(--muted);margin-right:2px}
.filter-btn{font-size:10px;padding:4px 10px;background:var(--bg3);border:1px solid var(--border);color:var(--sub);border-radius:4px;cursor:pointer;transition:background .1s,color .1s;font-family:inherit;font-weight:500}
.filter-btn.active{background:rgba(24,192,184,.1);color:var(--teal);border-color:rgba(24,192,184,.35)}

/* EVENT ROWS */
.event-row{display:grid;grid-template-columns:120px 140px 1fr;gap:10px;padding:9px 0;border-bottom:1px solid var(--border);font-size:11px;align-items:start}
.event-time{font-family:var(--font);color:var(--muted);font-size:9px}
.event-status{font-family:var(--font);font-size:10px;font-weight:600}
.event-status.good{color:var(--green)}.event-status.warn{color:var(--amber)}.event-status.bad{color:var(--red)}
@media(max-width:900px){.event-row{grid-template-columns:1fr;gap:3px}}

/* ALPHA SIGNAL CARD */
.alpha-card{background:linear-gradient(145deg,rgba(24,192,184,.04) 0%,var(--bg2) 55%);border:1px solid rgba(24,192,184,.2);border-radius:8px;padding:14px;margin-bottom:14px}
.alpha-title{font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--teal);margin-bottom:4px}
.alpha-desc{font-size:10px;color:var(--sub);line-height:1.5;margin-bottom:10px;max-width:680px}
.alpha-badge{display:inline-block;font-family:var(--font);font-size:11px;font-weight:700;padding:3px 10px;border-radius:4px;border:1px solid;margin-bottom:10px;letter-spacing:.04em}

/* CHART CONTAINERS */
.chart-h200{height:200px}.chart-h240{height:240px}.chart-h280{height:280px}
.chart-h320{height:320px}.chart-h360{height:360px}.chart-h400{height:400px}
.chart-h460{height:460px}.chart-h520{height:520px}

/* TABLE */
.data-table{width:100%;border-collapse:collapse;font-size:11px}
.data-table th{text-align:left;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:6px 8px;border-bottom:1px solid var(--border)}
.data-table td{padding:7px 8px;border-bottom:1px solid rgba(255,255,255,.03);color:var(--text)}
.data-table tr:hover td{background:var(--bg3)}
.premium-positive{color:var(--green)}.premium-negative{color:var(--red)}

/* SOURCE LINK */
.src-link{color:var(--muted);font-size:9px;text-decoration:none;font-family:var(--font)}
.src-link:hover{color:var(--teal)}

/* ROUTES */
.route-item{display:grid;grid-template-columns:100px 16px 100px 120px 1fr;gap:8px;align-items:center;padding:7px 0;border-bottom:1px solid var(--border);font-size:11px}
.route-from,.route-to{color:var(--text);font-weight:500}
.route-arrow{color:var(--muted)}
.route-comm{color:var(--sub);font-size:10px}
.route-vol{color:var(--teal);font-family:var(--font);font-size:10px}

/* MOVERS */
.mover-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid var(--border);font-size:11px}
.mover-name{color:var(--text);font-weight:500}
.mover-right{display:flex;gap:8px;align-items:center}
.mover-price{font-family:var(--font);color:var(--sub)}

/* DISCOUNT BAR */
.discount-bar-wrap{margin-bottom:10px}
.discount-bar-label{display:flex;justify-content:space-between;font-size:10px;color:var(--sub);margin-bottom:4px}
.discount-bar-track{height:4px;background:var(--bg4);border-radius:2px;overflow:hidden}
.discount-bar-fill{height:100%;background:var(--red);border-radius:2px;max-width:100%}

/* NEWS */
.news-item{display:flex;gap:8px;padding:7px 0;border-bottom:1px solid var(--border);align-items:flex-start;font-size:11px}
.news-source{font-size:9px;font-family:var(--font);background:var(--bg4);color:var(--muted);padding:1px 5px;border-radius:3px;white-space:nowrap;margin-top:2px;flex-shrink:0}
.news-link{color:var(--text);text-decoration:none;line-height:1.4}
.news-link:hover{color:var(--teal)}

/* FX STRIP */
.fx-strip{display:flex;flex-wrap:wrap;border:1px solid var(--border);border-radius:6px;overflow:hidden}
.fx-item{display:flex;gap:6px;align-items:center;padding:7px 12px;border-right:1px solid var(--border);font-size:11px}
.fx-label{font-size:9px;color:var(--muted);font-family:var(--font)}
.fx-rate{font-family:var(--font);font-weight:600;color:var(--text)}
.fx-chg{font-size:9px;font-family:var(--font)}
.fx-chg.up{color:var(--green)}.fx-chg.dn{color:var(--red)}

/* BDI */
.bdi-value{font-size:30px;font-weight:700;font-family:var(--font);color:var(--text);line-height:1;margin-bottom:4px}
.bdi-context{font-size:11px;color:var(--sub);line-height:1.5;max-width:360px}

/* MODAL */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:300;align-items:center;justify-content:center}
.modal-overlay.open{display:flex}
.modal-box{background:var(--bg2);border:1px solid var(--border2);border-radius:10px;padding:20px;width:600px;max-width:94vw;max-height:80vh;overflow-y:auto;position:relative}
.modal-close{position:absolute;top:14px;right:16px;background:none;border:none;color:var(--muted);font-size:18px;cursor:pointer}
.modal-close:hover{color:var(--text)}

/* HEATMAP */
.heat-grid{display:grid;gap:2px}
.heat-cell{width:28px;height:28px;border-radius:3px;font-size:8px;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.7);cursor:pointer;font-family:var(--font)}
.heat-label{font-size:9px;color:var(--sub);font-family:var(--font)}

/* MISC COMPONENTS */
.decision-tile{background:var(--bg3);border:1px solid var(--border);border-radius:6px;padding:12px}
.decision-value{font-size:20px;font-weight:700;color:var(--text);font-family:var(--font);margin:4px 0}
.opp-card{background:var(--bg2);border:1px solid var(--border);border-radius:7px;padding:13px;margin-bottom:10px}
.opp-name{font-size:13px;font-weight:600;color:var(--text);margin-bottom:4px}
.opp-meta{font-size:10px;color:var(--sub);line-height:1.5}
.opp-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.opp-chip{font-size:9px;background:var(--bg4);border:1px solid var(--border);border-radius:3px;padding:2px 6px;color:var(--sub)}
.fit-score{font-family:var(--font);font-size:18px;font-weight:700;color:var(--teal)}
.action-list{margin-top:8px}
.action-row{font-size:10px;color:var(--sub);padding:4px 0;border-bottom:1px solid var(--border);line-height:1.4}
.provider-row{background:var(--bg2);border:1px solid var(--border);border-radius:6px;padding:12px;margin-bottom:8px;display:grid;grid-template-columns:1fr auto 2fr auto;gap:10px;align-items:start}
@media(max-width:900px){.provider-row{grid-template-columns:1fr 1fr}}
.plan-card{background:var(--bg2);border:1px solid var(--border);border-radius:7px;padding:16px}
.plan-price{font-size:22px;font-weight:700;font-family:var(--font);color:var(--teal);margin:6px 0}
.desk-pulse{display:flex;flex-wrap:wrap;gap:10px}
.pulse-tile{background:var(--bg3);border:1px solid var(--border);border-radius:6px;padding:10px 12px;min-width:130px}
.pulse-name{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.pulse-last{font-size:17px;font-weight:700;font-family:var(--font);color:var(--text);line-height:1.2}
.pulse-meta{font-size:9px;display:flex;gap:8px;margin-top:3px;color:var(--sub)}
.curve-row{display:grid;grid-template-columns:1fr 60px 60px;gap:10px;padding:6px 0;border-bottom:1px solid var(--border);font-size:11px}
.cotton-command{background:linear-gradient(135deg,rgba(136,88,208,.06) 0%,var(--bg2) 60%);border:1px solid rgba(136,88,208,.25);border-radius:8px;padding:14px;margin-bottom:14px}
.network-svg text{font-size:10px;fill:var(--sub);font-family:'Inter',sans-serif}
.dendro-label{cursor:pointer;font-size:10px}
.dendro-label:hover{fill:var(--teal)!important}
#storage-pill,#storage-pill-2{font-size:9px;font-family:var(--font);color:var(--teal);border:1px solid rgba(24,192,184,.2);padding:3px 8px;border-radius:3px}
#saas-plans{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.nstat{font-size:10px;color:var(--sub)}
.nstat b{color:var(--text);font-family:var(--font)}
a{color:inherit}
button{font-family:inherit}
input,select{background:var(--bg3);border:1px solid var(--border);color:var(--text);border-radius:4px;padding:5px 8px;font-family:inherit;font-size:11px}
input:focus,select:focus{outline:none;border-color:var(--teal)}
.error-state{color:var(--red);font-size:12px;padding:16px}
#ops-command{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}
.corr-network-wrap{overflow-x:auto}

/* Legacy compat — keep existing class names working */
.grid-auto{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:10px}
.overview-market-grid{display:grid;grid-template-columns:minmax(500px,1.35fr) minmax(380px,1fr);gap:14px}
.col-span2{grid-column:span 2}
.col-span3{grid-column:span 3}
.chart-box{position:relative;width:100%}
.plot3d-box{height:520px;width:100%;background:#060a12;border:1px solid var(--border);border-radius:6px;overflow:hidden}
.chart-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.heatmap{display:grid;gap:2px;overflow:auto;padding-bottom:4px;align-items:end}
.heat-cell{width:44px;height:30px;display:flex;align-items:center;justify-content:center;color:#061014;font-family:var(--font);font-size:10px;border-radius:3px;cursor:pointer}
.heat-label{width:116px;height:30px;display:flex;align-items:center;color:var(--muted);font-family:var(--font);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.heat-corner{width:116px;height:118px}
.heat-col-label{width:44px;height:118px;display:flex;align-items:flex-end;justify-content:center;color:var(--muted);font-family:var(--font);font-size:10px;line-height:1.15;writing-mode:vertical-rl;transform:rotate(180deg);white-space:normal;text-align:left;padding-top:6px}
.dendro-wrap{min-height:360px;overflow:auto;border:1px solid var(--border);border-radius:6px;background:var(--bg);padding:12px}
.dendro-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px}
.cluster-card{background:var(--bg2);border:1px solid var(--border);border-radius:6px;padding:10px}
.cluster-card[onclick],.dendro-label{cursor:pointer}
.cluster-title{color:var(--text);font-weight:700;font-size:12px;margin-bottom:6px}
.cluster-meta{color:var(--muted);font-size:11px;line-height:1.45}
.relationship-row{display:grid;grid-template-columns:1fr 58px;gap:8px;padding:7px 0;border-bottom:1px solid var(--border);font-size:11px}
.relationship-row:last-child{border-bottom:none}
.dendro-svg-wrap{margin-top:12px;overflow:auto}
.network-wrap{min-height:340px;overflow:hidden;border:1px solid var(--border);border-radius:6px;background:radial-gradient(circle at 50% 42%,rgba(24,192,184,.06),transparent 34%),var(--bg);position:relative}
.network-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap}
.network-toolbar select,.network-toolbar input{background:var(--bg3);color:var(--text);border:1px solid var(--border2);border-radius:5px;padding:5px 8px;font-family:var(--font);font-size:10px}
.network-readout{min-height:36px;color:var(--muted);font-size:11px;line-height:1.45}
.net-node{cursor:pointer}
.net-node circle{transition:stroke-width .15s,stroke .15s,fill .15s}
.net-node:hover circle,.net-node.focused circle{stroke:var(--amber);stroke-width:2.4;fill:var(--bg3)}
.net-edge{transition:opacity .15s,stroke-width .15s}
.net-edge.dimmed{opacity:.08}
.net-edge.highlighted{opacity:.95;stroke-width:4}
.cotton-command-grid{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(520px,1.1fr);gap:14px;margin-bottom:16px}
.cotton-score{font-size:42px;font-weight:800;line-height:1;color:var(--cotton)}
.cotton-decision-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}
.sankey-wrap{min-height:360px;border:1px solid var(--border);border-radius:6px;background:var(--bg);overflow:hidden}
.sankey-node{fill:var(--bg3);stroke:var(--teal);stroke-opacity:.7}
.sankey-link{fill:none;stroke-opacity:.38;cursor:pointer}
.sankey-link:hover{stroke-opacity:.85}
.user-shell{display:grid;grid-template-columns:minmax(320px,.75fr) minmax(520px,1.25fr);gap:14px}
.user-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;align-items:end}
.auth-shell{display:grid;grid-template-columns:repeat(2,minmax(280px,1fr));gap:14px;align-items:start}
.auth-form{display:grid;grid-template-columns:1fr;gap:10px}
.auth-good{border-color:rgba(0,200,122,.3);color:var(--green)}
.auth-bad{border-color:rgba(224,48,80,.3);color:var(--red)}
.form-field label{display:block;color:var(--muted);font-family:var(--font);font-size:9px;text-transform:uppercase;margin-bottom:5px}
.form-field input,.form-field select{width:100%;background:var(--bg3);border:1px solid var(--border2);color:var(--text);border-radius:5px;padding:7px 8px;font-size:11px}
.admin-table{max-height:360px;overflow:auto}
.model-toggle-wrap{display:flex;flex-wrap:wrap;gap:6px;min-width:360px}
.model-toggle{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border);border-radius:5px;background:var(--bg3);padding:5px 7px;color:var(--muted);font-family:var(--font);font-size:10px;white-space:nowrap;cursor:pointer}
.model-toggle.good{border-color:rgba(0,200,122,.32);color:var(--text)}
.model-toggle.warn{border-color:rgba(216,144,32,.34)}
.model-toggle.bad{border-color:rgba(224,48,80,.34);color:var(--red)}
.model-toggle input{width:auto;margin:0;accent-color:#18c0b8}
button:disabled,.small-btn:disabled{opacity:.55;cursor:not-allowed;filter:saturate(.55)}
.model-output-list{display:grid;gap:5px;margin-top:10px}
.model-output-row{display:grid;grid-template-columns:minmax(92px,1fr) minmax(92px,1fr) 54px;gap:8px;align-items:center;border:1px solid var(--border);border-radius:5px;background:rgba(255,255,255,.025);padding:6px 7px;font-family:var(--font);font-size:10px;color:var(--muted)}
.model-output-row.good{border-color:rgba(0,200,122,.25)}
.model-output-row.warn{border-color:rgba(216,144,32,.25)}
.model-output-row.bad{border-color:rgba(224,48,80,.25)}
.models-page{background:
  linear-gradient(180deg,rgba(61,136,216,.035),transparent 190px),
  radial-gradient(circle at 78% 4%,rgba(24,192,184,.08),transparent 28%),
  var(--bg)}
.models-page .page-hdr{background:linear-gradient(180deg,#070c15,#050912);border-bottom-color:#1b2b45}
.models-page .page-title{font-size:19px;letter-spacing:0}
.models-page .page-desc{color:#93a3be}
.intelligence-card{position:relative;overflow:hidden;background:linear-gradient(180deg,rgba(255,255,255,.018),rgba(255,255,255,.006)),var(--bg2);border-color:#24314d;box-shadow:0 18px 42px rgba(0,0,0,.18)}
.intelligence-card::before{content:"";position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,rgba(24,192,184,.42),rgba(61,136,216,.25),transparent);pointer-events:none}
.model-alpha-card{border-color:rgba(24,192,184,.34);background:linear-gradient(145deg,rgba(24,192,184,.075),rgba(61,136,216,.025) 42%,var(--bg2) 76%)}
.model-performance-card{border-color:rgba(0,200,122,.3);background:linear-gradient(145deg,rgba(0,200,122,.055),rgba(61,136,216,.025) 45%,var(--bg2) 78%)}
.models-page .card-title{color:#9fb0cc;letter-spacing:.12em}
.models-page .panel-copy{color:#8d9bb7}
.model-status-grid{grid-template-columns:repeat(4,minmax(170px,1fr))}
.model-command-panel{position:relative;overflow:hidden;border-color:#263757;background:linear-gradient(150deg,rgba(255,255,255,.035),rgba(255,255,255,.006) 58%),var(--bg2);min-height:118px}
.model-command-panel::after{content:"";position:absolute;inset:auto 12px 10px 12px;height:2px;background:linear-gradient(90deg,rgba(24,192,184,.7),rgba(61,136,216,.55),transparent);opacity:.45}
.model-command-panel .panel-value{font-size:22px;letter-spacing:0;text-transform:none}
.model-command-panel .panel-kicker{color:#8ea2c2}
.model-intel-board{grid-template-columns:repeat(auto-fill,minmax(clamp(290px,24vw,420px),1fr));gap:12px}
.model-state-card,.model-risk-card{position:relative;overflow:hidden;background:linear-gradient(155deg,rgba(255,255,255,.025),rgba(255,255,255,.006) 54%),var(--bg2);border-color:#263757;box-shadow:inset 0 1px rgba(255,255,255,.035)}
.model-state-card::before,.model-risk-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--teal),var(--blue))}
.model-state-card.good::before{background:linear-gradient(180deg,var(--green),var(--teal))}
.model-state-card.warn::before{background:linear-gradient(180deg,var(--amber),var(--blue))}
.model-state-card.bad::before{background:linear-gradient(180deg,var(--red),var(--amber))}
.model-state-card .ops-name,.model-risk-card .ops-name{font-size:11px;letter-spacing:.01em}
.model-state-card .ops-symbol,.model-risk-card .ops-symbol{text-transform:uppercase;letter-spacing:.06em;font-size:8.5px}
.model-state-value{font-size:20px;line-height:1.05;letter-spacing:0;margin:8px 0 9px}
.model-state-card .ops-meta span,.model-risk-card .ops-meta span{background:rgba(5,9,18,.72);border-color:#253653;color:#99a9c4;padding:3px 6px}
.model-output-list{gap:6px;margin-top:12px}
.model-output-row{grid-template-columns:minmax(100px,1fr) minmax(92px,1fr) 60px;background:rgba(5,9,18,.58);border-color:#263757;border-radius:4px;padding:7px 8px;color:#8ea0bd}
.model-output-row b{letter-spacing:0;text-transform:capitalize}
.model-score-strip{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px;padding-top:9px;border-top:1px solid rgba(255,255,255,.045)}
.model-score-pill{display:inline-flex;align-items:center;gap:5px;font-size:9px;font-family:var(--font);border:1px solid #263757;border-radius:4px;padding:3px 7px;background:rgba(5,9,18,.62);color:#7f90ac}
.model-score-pill span,.quality-chip span{text-transform:uppercase;letter-spacing:.05em;color:#6f819f}
.model-score-pill b,.quality-chip b{font-weight:700}
.model-quality-log{max-height:460px;border-top:none;gap:6px;overflow:auto}
.quality-row{grid-template-columns:128px minmax(150px,190px) 1fr;background:rgba(5,9,18,.42);border:1px solid #24314d;border-radius:6px;padding:10px;margin-bottom:6px}
.quality-row:hover{border-color:#314668;background:rgba(17,28,48,.72)}
.quality-chip-grid{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.quality-chip{display:inline-flex;gap:6px;align-items:center;font-size:10px;font-family:var(--font);padding:4px 8px;border-radius:4px;background:rgba(13,20,36,.88);border:1px solid #263757;min-height:24px}
.models-page canvas{filter:saturate(1.05) contrast(1.03)}
@media(max-width:1200px){.model-status-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.model-status-grid,.quality-row{grid-template-columns:1fr}.model-intel-board{grid-template-columns:1fr}.model-state-value{font-size:18px}}
.model-hero{display:grid;grid-template-columns:minmax(360px,.95fr) minmax(480px,1.05fr);gap:14px;align-items:stretch}
.model-card{background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:16px}
.model-flow{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}
.flow-step{border:1px solid var(--border);background:var(--bg);border-radius:6px;padding:11px;min-height:84px}
.model-endpoint{font-family:var(--font);color:var(--teal);background:rgba(24,192,184,.07);border:1px solid rgba(24,192,184,.22);border-radius:6px;padding:10px;margin-top:10px;word-break:break-all}
.event-log{display:flex;flex-direction:column;gap:0;max-height:300px;overflow:auto;border-top:1px solid var(--border)}
table{width:100%;border-collapse:collapse;font-size:12px}
th{text-align:left;padding:8px 10px;color:var(--muted);font-size:10px;letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid var(--border);font-weight:500}
td{padding:9px 10px;border-bottom:1px solid var(--border);color:var(--text)}
tr:last-child td{border-bottom:none}
tr:hover td{background:var(--bg3)}
.ops-hero{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(420px,1.2fr) minmax(280px,.75fr);gap:14px;margin-bottom:16px}
.ops-tile{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:12px;min-height:106px;overflow:hidden}
.ops-tile.fresh{border-color:rgba(0,200,122,.36)}
.ops-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start;margin-bottom:7px}
.ops-price{color:var(--text);font-size:20px;font-weight:700;margin-bottom:6px}
.row-label{font-size:10px;letter-spacing:.07em;color:var(--muted);text-transform:uppercase;margin-bottom:10px}
.ops-symbol{color:var(--muted);font-family:var(--font);font-size:10px;margin-bottom:6px}
.opp-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}
.opp-desc{font-size:11px;color:var(--muted);line-height:1.6;margin-bottom:10px}
.opp-fit{font-size:11px;color:var(--green);background:rgba(0,200,122,.07);border-radius:4px;padding:8px 10px;line-height:1.5}
.opp-fit::before{content:"Your fit: ";font-weight:700}
.opp-capex{font-size:11px;color:var(--amber);margin-top:8px}
.opp-score{font-size:20px;font-weight:700;color:var(--teal)}
.badge-cotton{background:rgba(136,88,208,.15);color:var(--cotton)}
.saas-strip{background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:12px 16px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.saas-strip-title{font-size:11px;color:var(--text);letter-spacing:.04em;text-transform:uppercase}
.saas-strip-copy{font-size:11px;color:var(--muted);line-height:1.45}
@media(max-width:1200px){.terminal-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.grid2,.grid3,.grid4,.terminal-grid,.overview-market-grid,.ops-hero,.model-hero,.model-flow,.cotton-command-grid,.cotton-decision-grid,.user-shell,.user-form,.auth-shell{grid-template-columns:1fr}.col-span2,.col-span3{grid-column:span 1}.provider-row{grid-template-columns:1fr;gap:4px}.event-row{grid-template-columns:1fr!important;gap:4px}.dendro-summary{grid-template-columns:1fr}.ops-board{grid-template-columns:1fr}}
