:root{color-scheme:dark;--bg:#070a0e;--surface:#0d1117;--surface2:#121821;--surface3:#18202b;--line:#222c38;--line2:#2d3947;--text:#e8edf3;--muted:#8995a4;--faint:#596574;--accent:#a7d7ff;--accent2:#70adff;--bull:#55c99a;--bear:#ef7a7a;--warn:#e2bd68;--info:#7daeff;--pending:#b4a0e5;--sans:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--mono:"SFMono-Regular",Consolas,monospace}
*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:14px}button,input,select{font:inherit;color:inherit}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.skip{position:fixed;z-index:99;left:12px;top:-60px;background:#fff;color:#000;padding:10px}.skip:focus{top:12px}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.app{min-height:100vh;display:grid;grid-template:58px 34px 1fr/220px 1fr;grid-template-areas:"rail top" "rail quality" "rail main"}.rail{grid-area:rail;position:fixed;inset:0 auto 0 0;width:220px;padding:18px 14px;display:flex;flex-direction:column;background:#090d12;border-right:1px solid var(--line);z-index:20}.brand{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:760;letter-spacing:.16em;margin-bottom:25px}.brand small{display:block;color:var(--faint);font-size:8px;letter-spacing:.14em;margin-top:3px}.nav-label,.kicker{font:700 9px var(--mono);letter-spacing:.15em;color:var(--faint);text-transform:uppercase}.rail nav{display:grid;gap:3px}.rail nav a{padding:9px 11px;border-radius:5px;color:#9ca8b6;transition:.15s}.rail nav a:hover,.rail nav a.active{color:#fff;background:var(--surface2)}.rail nav a.active{box-shadow:inset 2px 0 var(--accent)}.count{float:right;min-width:18px;text-align:center;border-radius:9px;background:var(--bear);color:#111;font:bold 10px var(--mono);padding:2px 5px}.future{margin-top:20px;border-top:1px solid var(--line);padding:15px 11px;color:var(--faint);display:flex;justify-content:space-between}.future small{font:700 8px var(--mono);letter-spacing:.1em}.rail-foot{margin-top:auto;display:grid;grid-template-columns:10px 1fr;align-items:center;gap:6px;color:var(--muted);font-size:11px}.rail-foot small{grid-column:2;font-family:var(--mono);color:var(--faint)}.pulse{width:7px;height:7px;background:var(--bear);border-radius:50%}.pulse.on{background:var(--bull);box-shadow:0 0 0 4px #55c99a18}
.topbar{grid-area:top;display:flex;align-items:center;gap:18px;padding:0 22px;border-bottom:1px solid var(--line);background:#0a0e13;position:sticky;top:0;z-index:15}.search-trigger{width:min(340px,30vw);height:34px;border:1px solid var(--line);border-radius:5px;background:var(--surface);color:var(--muted);display:flex;justify-content:space-between;align-items:center;padding:0 10px;cursor:pointer}.search-trigger kbd{font:10px var(--mono);border:1px solid var(--line2);border-radius:3px;padding:3px 5px}.instrument-mini{display:flex;gap:8px;align-items:baseline}.instrument-mini strong{font:700 14px var(--mono)}.instrument-mini span{color:var(--muted);font-size:11px;white-space:nowrap}.top-meta{margin-left:auto;display:flex;gap:14px;color:var(--muted);font:10px var(--mono)}.connection{font:800 9px var(--mono);letter-spacing:.08em;padding:5px 7px;border:1px solid var(--line);border-radius:3px}.connection.connected{color:var(--bull)}.connection.connecting{color:var(--warn)}.connection.disconnected{color:var(--bear)}.icon-button{border:1px solid var(--line);border-radius:4px;background:transparent;min-width:32px;height:32px;cursor:pointer}.quality-strip{grid-area:quality;display:flex;align-items:center;gap:18px;padding:0 22px;border-bottom:1px solid var(--line);background:#0a0e13;color:var(--muted);font:9px var(--mono);letter-spacing:.08em;overflow:auto;white-space:nowrap}.quality-strip strong{color:var(--text)}.quality-strip .fallback{color:var(--warn)}
#workspace{grid-area:main;padding:20px 22px 40px;min-width:0}.page-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:18px}.page-head h1{font-size:24px;margin:3px 0 4px;letter-spacing:-.03em}.page-head p{margin:0;color:var(--muted)}.actions{display:flex;gap:8px}.button{border:1px solid var(--line2);border-radius:4px;background:var(--surface2);padding:8px 12px;cursor:pointer;font-weight:650}.button:hover{border-color:#4b5d70}.button.primary{background:#d8eaff;color:#08101a;border-color:#d8eaff}.button.small{padding:5px 8px;font-size:11px}.button:disabled{opacity:.5;cursor:not-allowed}.grid{display:grid;gap:12px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.panel{background:var(--surface);border:1px solid var(--line);border-radius:6px;min-width:0;overflow:hidden}.panel-head{min-height:44px;padding:11px 14px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-head h2{font-size:12px;letter-spacing:.04em;margin:0}.panel-head span{font:9px var(--mono);color:var(--faint);text-transform:uppercase}.panel-body{padding:14px}.panel.hero{background:linear-gradient(120deg,#111822,#0b1017)}
.intelligence-strip{display:grid;grid-template-columns:1.4fr repeat(5,1fr);border:1px solid var(--line);border-radius:6px;background:var(--surface);margin-bottom:12px}.intel{padding:14px;border-right:1px solid var(--line);min-width:0}.intel:last-child{border:0}.intel label,.metric-label{display:block;color:var(--muted);font:9px var(--mono);letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px}.intel strong{font:700 16px var(--mono);overflow:hidden;text-overflow:ellipsis;display:block}.intel.instrument strong{font-size:22px}.intel small{display:block;color:var(--muted);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bullish{color:var(--bull)!important}.bearish{color:var(--bear)!important}.neutral{color:#c4ccd5!important}.pending{color:var(--pending)!important}.unavailable{color:var(--muted)!important}.stale{color:var(--warn)!important}.badge{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line2);padding:4px 6px;border-radius:3px;font:800 9px var(--mono);letter-spacing:.06em}.badge.bullish{background:#55c99a12}.badge.bearish{background:#ef7a7a12}.badge.pending{border-style:dashed}.badge.unavailable{opacity:.8}.badge.stale{background:#e2bd6810}.meter{height:3px;background:var(--line);margin-top:8px;overflow:hidden}.meter i{height:100%;display:block;background:var(--accent2)}
.terminal-layout{display:grid;grid-template-columns:minmax(150px,190px) minmax(480px,1fr) minmax(245px,320px);gap:12px;align-items:start}.watchlist{display:grid}.watch-row{display:grid;grid-template-columns:44px 1fr;gap:7px;padding:9px 12px;border-bottom:1px solid var(--line);cursor:pointer}.watch-row:hover{background:var(--surface2)}.watch-row strong{font-family:var(--mono)}.watch-row span{text-align:right;font-size:11px}.chart{height:390px;position:relative;background:linear-gradient(#0b1016,#090d12)}.chart svg{width:100%;height:100%;display:block}.chart-tools{position:absolute;top:8px;left:8px;display:flex;gap:4px}.chart-tools button{border:1px solid var(--line);background:#0b1119;padding:4px 7px;border-radius:3px;font:9px var(--mono)}.chart-tooltip{position:absolute;display:none;background:#090d12eF;border:1px solid var(--line2);padding:7px;pointer-events:none;font:10px var(--mono);z-index:3}.marker{cursor:pointer}.marker.direct{fill:var(--warn)}.marker.inferred{fill:transparent;stroke:var(--warn);stroke-width:2;stroke-dasharray:3 2}.volume{opacity:.3;fill:#70849a}.news-list{max-height:620px;overflow:auto}.event{padding:12px 14px;border-bottom:1px solid var(--line);position:relative}.event.new{animation:incoming .7s ease}.event time{font:9px var(--mono);color:var(--muted)}.event h3{font-size:12px;line-height:1.45;margin:6px 0}.event-meta{display:flex;gap:6px;flex-wrap:wrap;color:var(--muted);font-size:9px}.severity{width:3px;position:absolute;left:0;top:0;bottom:0;background:var(--faint)}.severity.CRITICAL{background:var(--bear)}.severity.HIGH{background:var(--warn)}.severity.MEDIUM{background:var(--info)}
.bias-card{display:grid;grid-template-columns:1.2fr 1fr;gap:18px}.bias-word{font-size:27px;font-weight:800;letter-spacing:-.04em}.score{font:700 34px var(--mono)}.score small{font-size:12px;color:var(--muted)}.pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.metric strong{font:650 15px var(--mono)}.status-list{display:grid}.analyst{display:grid;grid-template-columns:135px 100px 1fr;gap:12px;align-items:start;padding:11px 14px;border-bottom:1px solid var(--line)}.analyst h3{font-size:12px;margin:0}.analyst p{margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.45}.analyst .confidence{font:10px var(--mono);color:var(--muted)}.observation{border-left:2px solid var(--line2);padding-left:9px;margin:8px 0;color:#b7c1cc;line-height:1.45}.contradiction{padding:10px;border:1px solid #e2bd6840;background:#e2bd6808;margin:7px 0}.timeframes{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.timeframe{padding:10px;border:1px solid var(--line);text-align:center}.timeframe strong{display:block;font:700 13px var(--mono);margin-bottom:5px}.empty,.error-state{padding:28px 18px;text-align:center;color:var(--muted)}.empty strong,.error-state strong{display:block;color:var(--text);margin-bottom:5px}.error-state{color:var(--bear)}.skeleton{height:13px;border-radius:3px;background:linear-gradient(90deg,var(--surface2),var(--surface3),var(--surface2));background-size:200% 100%;animation:shimmer 1.4s infinite;margin:10px}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse}.data-table th{text-align:left;padding:9px 12px;color:var(--muted);font:9px var(--mono);letter-spacing:.08em;border-bottom:1px solid var(--line)}.data-table td{padding:10px 12px;border-bottom:1px solid var(--line);font-size:11px}.data-table td.num{font-family:var(--mono)}.data-table tr:hover td{background:var(--surface2)}
.thesis h3{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:15px 0 6px}.thesis p{line-height:1.55;margin:0}.thesis ul{padding-left:18px;color:#b7c1cc;line-height:1.5}.attribution{display:grid;gap:9px}.driver{display:grid;grid-template-columns:110px 1fr 54px;gap:10px;align-items:center}.driver-bar{height:6px;background:var(--line)}.driver-bar i{display:block;height:100%;background:var(--info)}.driver.unexplained i{background:var(--muted)}.disclaimer{margin-top:14px;padding:9px;border:1px solid var(--line);color:var(--warn);font-size:11px}.modal,.drawer{position:fixed;inset:0;z-index:60}.backdrop{position:absolute;inset:0;background:#020407b8;backdrop-filter:blur(3px)}.palette{position:relative;width:min(620px,calc(100% - 32px));margin:12vh auto;background:var(--surface2);border:1px solid var(--line2);border-radius:7px;box-shadow:0 24px 70px #000;padding:10px}.palette input{width:100%;height:48px;border:0;border-bottom:1px solid var(--line);background:transparent;padding:0 12px;font-size:17px;outline:0}.palette-results{max-height:380px;overflow:auto;padding:6px 0}.palette-item{display:grid;grid-template-columns:55px 1fr auto;gap:12px;padding:10px 12px;border-radius:4px;cursor:pointer}.palette-item:hover,.palette-item.selected{background:var(--surface3)}.palette-item strong{font-family:var(--mono)}.palette-item small{color:var(--muted)}.palette footer{display:flex;gap:16px;padding:8px 12px 2px;color:var(--faint);font:9px var(--mono)}.drawer aside{position:absolute;right:0;top:0;bottom:0;width:min(520px,92vw);background:var(--surface);border-left:1px solid var(--line2);padding:20px;overflow:auto;animation:slide .2s ease}.toast{position:fixed;right:20px;bottom:20px;z-index:80;background:var(--surface3);border:1px solid var(--line2);padding:11px 15px;border-radius:5px}.gate{position:fixed;inset:0;display:grid;place-items:center;background:radial-gradient(circle at 50% 25%,#172230,#070a0e 55%)}.gate-card{width:min(390px,calc(100% - 32px));background:var(--surface);border:1px solid var(--line2);border-radius:8px;padding:30px}.gate-card h1{font-size:23px}.gate-card p{color:var(--muted);line-height:1.5}.gate-card label{display:block;font-size:11px;margin:18px 0 6px}.gate-card input{width:100%;height:40px;background:var(--bg);border:1px solid var(--line2);border-radius:4px;padding:0 10px}.gate-card .button{width:100%}.error{min-height:17px;color:var(--bear)!important;font-size:11px}.mobile-only{display:none}
@keyframes shimmer{to{background-position:-200% 0}}@keyframes incoming{from{background:#7daeff35;transform:translateY(-4px)}to{background:transparent;transform:none}}@keyframes slide{from{transform:translateX(100%)}to{transform:none}}
@media(max-width:1180px){.app{grid-template-columns:68px 1fr}.rail{width:68px;padding:16px 9px}.brand span,.nav-label,.rail nav a,.future span,.future small,.rail-foot span:not(.pulse),.rail-foot small{font-size:0}.brand{justify-content:center}.rail nav a{height:37px;position:relative}.rail nav a:after{content:attr(data-route);font-size:9px;text-transform:uppercase;position:absolute;inset:12px 0;text-align:center}.future{height:1px;padding:0}.terminal-layout{grid-template-columns:150px minmax(440px,1fr) 270px}.top-meta span:first-child{display:none}}
@media(max-width:900px){.terminal-layout{grid-template-columns:1fr}.terminal-layout>.panel:first-child{display:none}.news-list{max-height:420px}.intelligence-strip{grid-template-columns:repeat(3,1fr)}.intel:nth-child(3){border-right:0}.intel:nth-child(-n+3){border-bottom:1px solid var(--line)}.grid.three,.grid.four{grid-template-columns:repeat(2,1fr)}.top-meta{display:none}.instrument-mini span{display:none}}
@media(max-width:640px){.app{display:block}.rail{transform:translateX(-100%);width:220px;transition:.2s}.rail.open{transform:none}.rail.open .brand span,.rail.open .nav-label,.rail.open nav a,.rail.open .future span,.rail.open .future small,.rail.open .rail-foot span,.rail.open .rail-foot small{font-size:initial}.rail.open nav a:after{display:none}.topbar{height:56px;padding:0 10px;gap:8px}.quality-strip{height:34px;padding:0 10px}.mobile-only{display:block}.search-trigger{width:auto;flex:1}.search-trigger span{font-size:0}.search-trigger span:after{content:'Search';font-size:12px}.instrument-mini{display:none}#workspace{padding:14px 10px 30px}.page-head{align-items:start;flex-direction:column}.intelligence-strip{grid-template-columns:repeat(2,1fr)}.intel{border-bottom:1px solid var(--line)}.intel:nth-child(2n){border-right:0}.grid.two,.grid.three,.grid.four,.pair{grid-template-columns:1fr}.chart{height:300px}.analyst{grid-template-columns:1fr}.timeframes{grid-template-columns:repeat(3,1fr)}.actions{width:100%}.actions .button{flex:1}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}}

/* Professional chart workstation */
.panel:has(.chart-pro)>.panel-head{display:none}.chart-pro{height:620px;background:#090b10}.chart-station{height:100%;display:grid;grid-template-rows:42px minmax(0,1fr) auto 28px;background:#090b10;color:#e7e2e4;border:1px solid #29242a;position:relative}.chart-topbar{display:flex;align-items:center;gap:6px;padding:5px 8px;border-bottom:1px solid #2b252b;background:#0d0d12;overflow:auto}.chart-topbar strong{font:800 13px var(--mono);margin-right:4px}.chart-topbar button,.chart-topbar select,.draw-tools button,.replay-bar button,.replay-bar select,.object-tree button{height:29px;border:1px solid #302a31;border-radius:3px;background:#121116;color:#b9b2b6;font:10px var(--mono);padding:0 9px;white-space:nowrap}.chart-topbar button:hover,.chart-topbar button.active,.draw-tools button:hover,.draw-tools button.active{background:#38141d;border-color:#70263a;color:#f4e8eb}.chart-work{min-height:0;display:grid;grid-template-columns:36px minmax(0,1fr) auto;position:relative}.draw-tools{display:flex;flex-direction:column;gap:3px;padding:5px 3px;border-right:1px solid #2b252b;background:#0d0d12;overflow:auto}.draw-tools button{width:29px;height:29px;padding:0;font-weight:700}.chart-stage{position:relative;min-width:0;min-height:0}.chart-canvas{position:absolute;inset:0}.drawing-layer{position:absolute;inset:0;width:100%;height:100%;z-index:4}.drawing-layer line,.drawing-layer rect{vector-effect:non-scaling-stroke}.ohlc{position:absolute;z-index:5;left:10px;top:7px;pointer-events:none;color:#c7bec2;background:#090b10cc;padding:4px 6px;font:10px var(--mono)}.replay-watermark{position:absolute;z-index:3;inset:45% auto auto 50%;transform:translate(-50%,-50%);font:800 58px var(--mono);letter-spacing:.18em;color:#8c263d33;pointer-events:none}.object-tree{width:210px;border-left:1px solid #302a31;background:#0d0d12;overflow:auto}.object-tree header{display:flex;justify-content:space-between;align-items:center;padding:8px;font:800 9px var(--mono);letter-spacing:.1em}.object-tree [data-role=objects]>div{display:grid;grid-template-columns:28px 1fr 28px;align-items:center;padding:4px;border-top:1px solid #242027;font-size:10px}.object-tree p{padding:10px;color:var(--faint)}.replay-bar{display:flex;align-items:center;gap:7px;min-height:38px;padding:4px 8px;border-top:1px solid #542031;background:#210c12;overflow:auto}.replay-bar strong{font:800 9px var(--mono);color:#e7a8b8;white-space:nowrap}.replay-bar span{font:10px var(--mono);white-space:nowrap}.chart-status{display:flex;gap:18px;align-items:center;padding:0 9px;border-top:1px solid #242027;background:#0d0d12;color:#787178;font:9px var(--mono);letter-spacing:.06em}.chart-status a{margin-left:auto;color:#8f868b}.chart-station.focus{position:fixed;inset:0;z-index:90;height:100vh}.chart-station.focus .chart-work{grid-template-columns:36px 1fr auto}.chart-station.focus .chart-stage{min-height:0}
.replay-bar label{display:flex;align-items:center;gap:3px;color:#aa939a;font:9px var(--mono)}.replay-bar input{width:68px;height:28px;border:1px solid #4b2631;border-radius:3px;background:#11090c;padding:0 5px;font:10px var(--mono)}
@media(max-width:900px){.chart-pro{height:520px}.chart-topbar button[data-action=layout],.chart-topbar button[data-action=overlays]{display:none}.object-tree{position:absolute;right:0;top:0;bottom:0;z-index:8}.chart-status span[data-role=connection]{display:none}}
@media(max-width:640px){.chart-pro{height:470px}.draw-tools{display:none}.chart-work{grid-template-columns:1fr}.chart-topbar button[data-action=indicators],.chart-topbar button[data-action=layout]{display:none}.chart-status{gap:8px}.chart-status a{font-size:0}.chart-status a:after{content:'TradingView';font-size:9px}.replay-bar [data-action=long],.replay-bar [data-action=short],.replay-bar [data-action=exit]{display:none}}

/* Cortex V2 — premium workstation identity */
:root{--bg:#050506;--surface:#0a090b;--surface2:#100d10;--surface3:#171116;--line:#271b20;--line2:#3a252d;--text:#f1ecee;--muted:#a4989d;--faint:#695c61;--wine-100:#f7dbe1;--wine-300:#d88a9b;--wine-500:#9f2947;--wine-700:#641429;--wine-800:#46101e;--accent:var(--wine-300);--accent2:var(--wine-500);--bull:#42c38b;--bear:#ed6473;--warn:#d9ae64;--info:#74a8df;--radius:10px;--shadow-panel:0 12px 32px #0005}
body{background:radial-gradient(circle at 76% -10%,#280b1548,transparent 34%),var(--bg)}.app{grid-template-rows:60px 32px 1fr;grid-template-columns:232px 1fr;grid-template-areas:"rail top" "rail quality" "rail main"}.rail{width:232px;background:linear-gradient(180deg,#0c080b,#070607 70%);border-color:#2c1720}.brand{color:var(--wine-100)}.brand img{filter:drop-shadow(0 0 10px #8d234766)}.rail nav{gap:2px}.rail nav a{display:flex;align-items:center;gap:10px;border-radius:6px;border:1px solid transparent;padding:9px 10px}.rail nav a b{width:18px;color:var(--faint);font:600 13px var(--mono);text-align:center}.rail nav a:hover{background:#1a1015;border-color:#321b24}.rail nav a.active{background:linear-gradient(90deg,var(--wine-800),#1a0e13);border-color:#5c1c31;color:#fff;box-shadow:inset 3px 0 var(--wine-300),0 8px 24px #0005}.rail nav a.active b{color:var(--wine-300)}.topbar,.quality-strip{background:#080708ef;border-color:#25171c;backdrop-filter:blur(12px)}.connection{border-radius:999px}.search-trigger{border-radius:999px;background:#0f0c0e;padding:0 14px}.search-trigger:hover{border-color:var(--wine-500)}.event-center-button{position:relative}.event-dot{position:absolute;right:-4px;top:-4px;min-width:16px;height:16px;border-radius:8px;background:var(--wine-500);color:white;font:700 9px/16px var(--mono)}
#workspace{padding:24px 26px 44px;animation:workspace-in .22s ease}.page-head h1{font-size:28px;font-weight:720}.kicker{color:var(--wine-300)}.button{border-radius:6px;background:#151014;border-color:#3b242d}.button:hover{border-color:var(--wine-500);background:#211218}.button.primary{background:linear-gradient(180deg,#a42d4c,#7b1934);border-color:#b84461;color:#fff;box-shadow:0 7px 20px #5f102933}.panel{border-radius:var(--radius);border-color:#2a1c21;background:linear-gradient(150deg,#0d0b0d,#090809);box-shadow:var(--shadow-panel)}.panel:hover{border-color:#3c252e}.panel.hero{background:linear-gradient(135deg,#160d12,#090809 58%)}.panel-head{border-color:#2a1b21}.meter{height:4px;border-radius:2px}.meter i{background:linear-gradient(90deg,var(--wine-700),var(--wine-300))}.intelligence-strip{border-color:#351d27;border-radius:var(--radius);background:linear-gradient(100deg,#180d12,#0c090b);box-shadow:var(--shadow-panel)}.intel{border-color:#34202a}.quality-strip strong{color:var(--wine-100)}
.workspace-hero{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.5fr);gap:12px;margin-bottom:12px}.command-card{min-height:220px;padding:28px;background:linear-gradient(125deg,#200d15,#0d090b 62%);border:1px solid #512034;border-radius:14px;position:relative;overflow:hidden}.command-card:after{content:'C';position:absolute;right:-28px;bottom:-70px;font:900 250px/1 var(--sans);color:#7d1e3a12}.command-card h2{font-size:34px;max-width:600px;margin:8px 0}.command-card p{color:#b9abb0;max-width:620px;line-height:1.6}.command-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.command-stat{padding:14px;border:1px solid #332129;border-radius:8px;background:#0d090b}.command-stat strong{display:block;font:700 19px var(--mono);margin-top:6px}.market-tape{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#2b1920;border:1px solid #2b1920;border-radius:10px;overflow:hidden}.market-tile{background:#0d0a0c;padding:16px;min-height:96px}.market-tile strong{font:750 18px var(--mono)}
.charts-workspace{margin:-24px -26px -44px;min-height:calc(100vh - 92px);display:grid;grid-template-columns:minmax(0,1fr) 288px;background:#060506}.charts-main{min-width:0;display:grid;grid-template-rows:40px minmax(620px,calc(100vh - 132px))}.charts-context{border-left:1px solid #2a1920;background:#0a0809;display:grid;grid-template-rows:auto 1fr;min-width:0}.context-tabs{display:flex;padding:8px;border-bottom:1px solid #281920;gap:4px}.context-tabs button{flex:1;border:0;background:transparent;color:var(--muted);padding:8px 4px;border-radius:4px}.context-tabs button.active{background:var(--wine-800);color:#fff}.context-body{overflow:auto}.chart-commandbar{padding:6px 10px;border-bottom:1px solid #25171d;display:flex;align-items:center;gap:8px;color:var(--muted)}.chart-commandbar strong{color:#fff}.chart-commandbar .spacer{margin-left:auto}.charts-workspace .chart-pro{height:100%}.charts-workspace .chart-station{border:0}.charts-workspace.context-closed{grid-template-columns:1fr}.charts-workspace.context-closed .charts-context{display:none}
.favorite-tfs{display:flex;gap:3px}.chart-dialog{position:absolute;z-index:12;top:50px;left:52px;width:min(660px,calc(100% - 70px));max-height:calc(100% - 85px);overflow:auto;background:#100c0f;border:1px solid #572137;border-radius:10px;box-shadow:0 28px 90px #000d}.chart-dialog>header{position:sticky;top:0;display:flex;justify-content:space-between;align-items:center;padding:13px 15px;background:#160d12;border-bottom:1px solid #3c202b;z-index:2}.chart-dialog>header button{border:0;background:transparent;color:var(--muted);font-size:18px}.chart-dialog [data-role=dialog-body]{padding:14px}.dialog-search{width:100%;padding:11px;background:#080708;border:1px solid #40202c;border-radius:6px;margin-bottom:8px}.indicator-categories{color:var(--muted);font-size:10px;padding:5px 0 12px}.indicator-list{display:grid;grid-template-columns:1fr 1fr;gap:6px}.indicator-row{display:flex;align-items:center;justify-content:space-between;text-align:left;padding:10px;border:1px solid #302027;border-radius:6px;background:#0b090a;color:var(--text)}.indicator-row span{display:grid}.indicator-row small{color:var(--muted);margin-top:3px}.indicator-row b{color:var(--wine-300);font-size:10px}.indicator-row.active{background:var(--wine-800);border-color:var(--wine-500)}.indicator-row:disabled{opacity:.45}.dialog-options,.chart-settings{display:grid;grid-template-columns:1fr 1fr;gap:8px}.dialog-options label,.chart-settings section{padding:12px;border:1px solid #302027;border-radius:6px}.chart-settings section{display:grid;gap:10px}.chart-settings label{display:flex;justify-content:space-between;color:var(--muted)}.timeframe-catalog{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.timeframe-catalog button{display:grid;text-align:left;padding:9px;background:#0b090a;border:1px solid #302027;border-radius:5px;color:var(--text)}.timeframe-catalog button.active{background:var(--wine-800);border-color:var(--wine-300)}.timeframe-catalog button small,.timeframe-catalog button span{color:var(--muted);font-size:9px}.timeframe-catalog button:disabled{opacity:.42}.object-groups>b{display:block;padding:9px;color:var(--wine-300);font:700 8px var(--mono);letter-spacing:.1em;border-top:1px solid #2b1c22}.object-groups>div{font-size:10px;color:var(--muted)}
.event-popup{position:fixed;z-index:55;right:24px;top:104px;width:min(380px,calc(100vw - 32px));background:linear-gradient(145deg,#260d16,#0d090b);border:1px solid var(--wine-500);border-radius:10px;padding:16px;box-shadow:0 24px 80px #000c;animation:event-in .25s ease}.event-popup h3{margin:6px 0;font-size:14px;line-height:1.45}.event-popup footer{display:flex;justify-content:space-between;align-items:center;margin-top:12px}.event-popup .close-event{border:0;background:transparent;color:var(--muted)}.event-drawer-list .event{border:1px solid #2b1b21;border-radius:8px;margin:8px 0}.unread{box-shadow:inset 3px 0 var(--wine-500)}
.analyze-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:12px}.analysis-nav{display:flex;gap:6px;overflow:auto;margin-bottom:12px}.analysis-nav a{padding:7px 10px;border-radius:999px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}.analysis-nav a:first-child{background:var(--wine-800);border-color:var(--wine-500);color:white}.ai-entry{border:1px solid #542136;background:linear-gradient(135deg,#1b0c12,#0b090a);padding:18px;border-radius:10px}.ai-entry input{width:100%;margin-top:12px;background:#090708;border:1px solid #45202e;padding:11px;border-radius:6px}.ai-entry small{color:var(--muted)}
.settings-grid{display:grid;grid-template-columns:220px 1fr;gap:12px}.settings-menu button{display:block;width:100%;text-align:left;border:0;background:transparent;color:var(--muted);padding:11px;border-radius:6px}.settings-menu button.active{background:var(--wine-800);color:#fff}.setting-row{display:flex;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1px solid var(--line)}.setting-row select,.setting-row input{background:#090708;border:1px solid var(--line2);border-radius:5px;padding:7px}.unsupported-note{padding:10px;border:1px solid #6b4b254f;background:#2d200c26;color:var(--warn);border-radius:6px}
@keyframes workspace-in{from{opacity:0;transform:translateY(3px)}}@keyframes event-in{from{opacity:0;transform:translateY(-8px)}}
@media(max-width:1180px){.app{grid-template-columns:72px 1fr}.rail{width:72px}.rail nav a b{font-size:13px}.charts-workspace{grid-template-columns:1fr 250px}.command-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1024px){.charts-workspace{grid-template-columns:1fr}.charts-context{display:none}.analyze-layout,.workspace-hero{grid-template-columns:1fr}.command-card{min-height:180px}.market-tape{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.charts-workspace{margin:-14px -10px -30px;min-height:calc(100vh - 90px)}.charts-main{grid-template-rows:40px minmax(470px,calc(100vh - 132px))}.chart-commandbar{overflow:auto}.command-card{padding:20px}.command-card h2{font-size:25px}.command-grid,.market-tape{grid-template-columns:1fr 1fr}.settings-grid{grid-template-columns:1fr}.settings-menu{display:flex;overflow:auto}.page-head h1{font-size:23px}}
@media(prefers-reduced-motion:reduce){#workspace,.event-popup{animation:none!important}}
.drawing-layer,.trading-lines{pointer-events:none}.drawing-layer[data-capture=true]{pointer-events:auto}.chart-trader{position:absolute;z-index:8;top:42px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:5px;padding:5px;background:#0b0b0eee;border:1px solid #38252d;border-radius:5px;box-shadow:0 8px 30px #0009}.chart-trader[hidden]{display:none}.chart-trader button,.chart-trader select,.chart-trader input{min-height:32px;border:1px solid #40353a;background:#151216;color:var(--text);font:10px var(--mono)}.chart-trader .buy{border-color:#27745d;background:#123b31;color:#8ae2c1}.chart-trader .sell{border-color:#8b3444;background:#461923;color:#f1a0ae}.chart-trader label{display:grid;font:8px var(--mono);color:var(--muted)}.chart-trader input{width:48px;padding:0 5px}.sim-badge{font:800 8px var(--mono);color:#d493a3;white-space:nowrap}.trading-lines{position:absolute;inset:0;z-index:6}.trade-line{position:absolute;left:0;right:54px;height:0;border-top:1px dashed #8e98a3}.trade-line span{position:absolute;right:0;transform:translateY(-50%);padding:4px 7px;border-radius:3px;background:#252b31;color:#e8edf1;font:9px var(--mono)}.trade-line button{pointer-events:auto;position:absolute;right:-28px;top:-12px;width:24px;height:24px;border:1px solid #4a525a;background:#15191d;color:#d8dde1}.trade-line.pending{border-color:#d2a74c}.trade-line.pending span{background:#5a4518}.trade-line.position{border-color:#4f92c5}.trade-line.position span{background:#173c57}.trade-line.target{border-color:#49b98d}.trade-line.target span{background:#15513e}.trade-line.stop{border-color:#db6674}.trade-line.stop span{background:#64232d}.trade-line.projection{border-color:#b6bdc5;opacity:.75}.order-ticket,.trading-panel{position:absolute;z-index:14;right:12px;top:82px;width:250px;padding:12px;border:1px solid #5b2b39;border-radius:7px;background:#100d10ee;box-shadow:0 22px 60px #000c}.order-ticket{display:grid;gap:8px}.order-ticket[hidden],.order-confirm[hidden],.trading-panel[hidden]{display:none}.order-ticket header,.trading-panel header{display:flex;justify-content:space-between}.order-ticket label{display:grid;grid-template-columns:1fr 110px;align-items:center;color:var(--muted);font:9px var(--mono)}.order-ticket input,.order-ticket select{height:30px;border:1px solid #3b3035;background:#090809;color:var(--text);padding:0 6px}.order-ticket footer{display:flex;justify-content:flex-end;gap:6px}.order-ticket button,.order-confirm button,.trading-panel button,.chart-context-menu button{border:1px solid #49313a;background:#181217;color:var(--text);padding:7px;font:9px var(--mono)}.order-ticket .primary,.order-confirm .primary{background:var(--wine-600)}.order-confirm{position:absolute;z-index:13;left:50%;bottom:40px;transform:translateX(-50%);display:flex;gap:9px;align-items:center;padding:8px 10px;border:1px solid #64525a;background:#111216ed;font:9px var(--mono)}.trading-panel{top:auto;bottom:34px;width:min(520px,calc(100% - 70px));max-height:230px;overflow:auto}.trading-panel nav{display:flex;gap:4px;margin:10px 0}.trading-panel table{width:100%;font:9px var(--mono);border-collapse:collapse}.trading-panel td{padding:6px;border-top:1px solid #29242a}.chart-context-menu{position:absolute;z-index:18;display:grid;min-width:190px;padding:5px;background:#100d10;border:1px solid #51303b;box-shadow:0 12px 40px #000}.chart-context-menu button{text-align:left}.chart-context-menu button:hover{background:var(--wine-700)}
@media(max-width:760px){.chart-trader{left:40px;right:4px;transform:none;overflow:auto}.sim-badge{display:none}.order-ticket{right:5px;top:80px;width:min(250px,calc(100% - 55px))}}
.replay-bar label,.replay-bar [data-action=long],.replay-bar [data-action=short],.replay-bar [data-action=exit]{display:none}
.chart-grid{height:100%;display:grid;gap:1px;background:#2a2024}.chart-grid.layout-1{grid-template-columns:1fr}.chart-grid.layout-2{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-grid.layout-4{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}.chart-grid .chart-pro{min-width:0;min-height:0;background:#070708}.charts-main{grid-template-rows:36px minmax(0,calc(100vh - 128px))}.chart-commandbar{height:36px;padding:0 8px;background:#090809}.chart-commandbar strong{font:800 15px var(--mono)}.chart-last{font:700 13px var(--mono);color:#e7e2e4}.layout-switch{display:flex;border:1px solid #30262a}.layout-switch button{border:0;border-right:1px solid #30262a;background:#0b0a0b;color:#81797d;padding:4px 8px}.layout-switch button:last-child{border:0}.layout-switch button.active{background:var(--wine-700);color:white}.sync-toggle{font:8px var(--mono);color:var(--muted);white-space:nowrap}.context-tabs{border-radius:0}.context-tabs button{border-radius:0;padding:7px 3px;font:8px var(--mono);text-transform:uppercase}.chart-station{border:0}.chart-topbar{height:38px;padding:3px 6px}.chart-topbar button,.chart-topbar select{height:27px;border-radius:2px}.chart-dialog,.order-ticket,.trading-panel{border-radius:3px}.chart-station.focus{z-index:100}.chart-station.focus .chart-topbar{height:40px}
@media(max-width:1024px){.chart-grid.layout-2,.chart-grid.layout-4{grid-template-columns:1fr}.chart-grid.layout-4{grid-template-rows:repeat(4,minmax(420px,1fr));overflow:auto}.sync-toggle{display:none}}
@media(max-width:640px){.chart-grid.layout-2,.chart-grid.layout-4{display:block}.chart-grid.layout-2 .chart-pro:not(:first-child),.chart-grid.layout-4 .chart-pro:not(:first-child){display:none}.layout-switch{display:none}}
.trade-line.position span button{position:static;width:auto;height:18px;margin-left:3px;padding:0 4px;border:0;background:#24506b;font-size:8px}.settings-tabs{margin-bottom:10px;color:var(--wine-300);font:8px var(--mono);letter-spacing:.06em;line-height:1.7}
.trade-line[data-draggable]>span{pointer-events:auto;cursor:ns-resize;user-select:none}
.indicator-legend{position:absolute;z-index:7;top:36px;left:8px;display:grid;gap:2px;pointer-events:none}.indicator-legend>div{display:flex;align-items:center;gap:3px;padding:2px 4px;background:#09090ab8;color:#bcb5b8;font:9px var(--mono);pointer-events:auto}.indicator-legend button{display:none;border:0;background:transparent;color:#958b90;padding:1px 3px}.indicator-legend>div:hover button,.indicator-legend button:focus{display:inline-block}.indicator-legend button:hover{color:white;background:var(--wine-700)}
.symbol-select{display:inline-flex;align-items:center;gap:5px;border:0;background:transparent;color:var(--text);font:inherit;cursor:pointer;padding:2px 4px}.symbol-select:hover,.symbol-select:focus-visible{background:var(--hover)}
.symbol-menu{width:min(440px,calc(100vw - 32px))}.symbol-menu input{width:100%;margin-bottom:12px}.symbol-group{margin:12px 0}.symbol-group>strong{display:block;margin-bottom:6px;color:var(--muted);font-size:10px;letter-spacing:.12em;text-transform:uppercase}.symbol-group-buttons{display:flex;flex-wrap:wrap;gap:6px}.symbol-group-buttons button{min-width:58px}

/* Cortex V4 — separated product workspaces */
body{background:#050506}.app{grid-template:52px 28px 1fr/190px 1fr;grid-template-areas:"rail top" "rail quality" "rail main"}.rail{width:190px;padding:14px 10px;background:#080708}.brand{margin-bottom:16px;font-size:14px}.rail nav a{border-radius:2px;padding:8px 9px}.rail nav a.active{background:#211017;border-color:#4a1d2c;box-shadow:inset 2px 0 var(--wine-300)}.nav-more{margin-top:2px;color:var(--muted)}.nav-more summary{list-style:none;padding:8px 9px;cursor:pointer}.nav-more summary::-webkit-details-marker{display:none}.nav-more summary b{display:inline-block;width:24px;text-align:center}.nav-more div{margin:2px 0 4px 30px;border-left:1px solid var(--line)}.nav-more div a{padding:6px 9px;font-size:11px}.topbar{gap:12px;padding:0 14px}.search-trigger{height:30px;border-radius:2px}.quality-strip{padding:0 14px}.connection{border-radius:2px}#workspace{padding:18px 20px 36px;animation:none}.page-head h1{font-size:25px}.panel,.command-card,.market-tape,.command-stat,.intelligence-strip,.ai-entry{border-radius:3px;background:#0b090a;box-shadow:none}.button,.dialog-search,.indicator-row,.timeframe-catalog button{border-radius:2px}.button.primary{background:#781d36;box-shadow:none}.market-tape{border-radius:2px}.command-card{min-height:160px;padding:22px;background:#0d090b}.command-card:after{display:none}

body[data-workspace=charts] .quality-strip,body[data-workspace=charts] .topbar{display:none}body[data-workspace=charts] .app{grid-template-rows:1fr;grid-template-areas:"rail main"}body[data-workspace=charts] #workspace{padding:0;overflow:hidden}.charts-workspace{margin:0;min-height:100vh;display:block;background:#050506}.charts-main{display:block;height:100vh}#chart-grid-host,.charts-workspace .chart-grid{height:100%}.charts-workspace .chart-pro{height:100%;min-height:0}.charts-workspace .chart-station{height:100%;display:grid;grid-template-rows:36px minmax(0,1fr) auto auto}.chart-topbar{height:36px;background:#090809;border-bottom:1px solid #21181c}.chart-topbar button,.chart-topbar select{border-radius:0;border-color:#2b2024;background:#0b0a0b}.chart-topbar button:disabled{opacity:.32}.draw-tools{width:35px}.draw-tools button{font-size:0;border-radius:0}.draw-tools button:before{font-size:10px;content:attr(aria-label);display:block;max-width:2ch;overflow:hidden}.chart-dialog{border-radius:2px;background:#0c0a0b}.chart-dialog>header{background:#120b0e}.chart-status{min-height:22px}.timeframe-group{margin:10px 0}.timeframe-group>b{display:block;margin:0 0 6px;color:var(--wine-300);font:700 9px var(--mono);letter-spacing:.12em}.timeframe-choice{display:grid;grid-template-columns:25px 1fr}.timeframe-choice>[data-favorite]{border:0;background:transparent;color:var(--wine-300)}.timeframe-catalog{grid-template-columns:repeat(4,minmax(0,1fr))}.layout-options{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.layout-options button{padding:18px;border:1px solid var(--line2);background:#0a090a}.layout-options [data-save-layout]{grid-column:1/-1;padding:10px}

.news-filters{display:flex;gap:1px;overflow:auto;border-bottom:1px solid var(--line);margin-bottom:8px}.news-filters button{border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);padding:9px 11px;white-space:nowrap;font:700 9px var(--mono)}.news-filters button.active{color:#fff;border-color:var(--wine-500)}.news-columns,.news-row{display:grid;grid-template-columns:76px 84px minmax(280px,1fr) 130px 110px 150px 50px;gap:10px;align-items:center}.news-columns{padding:6px 10px;color:var(--faint);font:700 8px var(--mono);text-transform:uppercase}.news-table{border-top:1px solid var(--line)}.news-row{width:100%;min-height:48px;padding:7px 10px;border:0;border-bottom:1px solid #1e171a;background:#080708;color:var(--muted);text-align:left}.news-row:hover{background:#100c0e}.news-row.high-impact{box-shadow:inset 2px 0 var(--wine-500)}.news-row time,.news-row .num{font-family:var(--mono)}.news-row strong{color:#e8e2e4;font-size:12px;line-height:1.35}.news-severity{color:var(--wine-300);font:700 9px var(--mono)}.news-detail{display:grid;grid-template-columns:140px 1fr;gap:8px;margin:20px 0}.news-detail dt{color:var(--muted)}.news-detail dd{margin:0}.news-summary{font-size:15px;line-height:1.6}

.market-view{display:grid;grid-template-columns:1fr auto;gap:5px;padding:13px 0;border-block:1px solid var(--line);margin-bottom:12px}.market-view strong{font:700 16px var(--mono)}.market-view p{grid-column:1/-1;margin:0;color:var(--muted)}.opportunity-head,.opportunity-row{display:grid;grid-template-columns:120px 170px 70px 220px 100px minmax(180px,1fr) 110px;gap:10px;align-items:center}.opportunity-head{padding:7px 10px;color:var(--faint);font:700 8px var(--mono);text-transform:uppercase}.opportunity-list{border-top:1px solid var(--line)}.opportunity-row{min-height:58px;padding:8px 10px;border-bottom:1px solid var(--line);color:var(--muted)}.opportunity-row:hover{background:#0d0a0c}.opportunity-row>span:first-child{display:flex;gap:12px;align-items:center}.opportunity-row>span:first-child b{color:var(--faint);font:10px var(--mono)}.opportunity-row strong{color:#fff;font:700 15px var(--mono)}.opportunity-row button{border:1px solid var(--line2);background:transparent;padding:7px;color:#ddd}.analysis-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-block:1px solid var(--line);margin-bottom:12px}.analysis-summary>div{padding:11px;border-right:1px solid var(--line)}.analysis-summary span{display:block;color:var(--muted);font:8px var(--mono);text-transform:uppercase}.analysis-summary strong{display:block;margin-top:5px;font:650 12px var(--mono)}.analysis-document{max-width:1050px}.analysis-document>section{padding:22px 0;border-bottom:1px solid var(--line)}.analysis-document h2{font-size:19px}.scenario-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.scenario-grid article{background:#090809;padding:14px}.scenario-grid article>b{color:var(--wine-300);font:9px var(--mono)}.evidence-list{padding-left:18px;line-height:1.6}.muted-copy{color:var(--muted)}.invalidation{margin-top:15px;padding:12px;border-left:2px solid var(--wine-500);background:#100a0d}.ask-disabled{display:flex;justify-content:space-between;color:var(--faint)}

@media(max-width:1180px){.app{grid-template-columns:64px 1fr}.rail{width:64px}.nav-more summary{font-size:0}.nav-more summary b{font-size:12px}.nav-more div{position:absolute;left:58px;width:120px;background:#0b090a;padding:5px;display:none}.nav-more[open] div{display:block}.opportunity-head,.opportunity-row{grid-template-columns:90px 140px 60px 190px 80px minmax(140px,1fr) 100px}.news-columns,.news-row{grid-template-columns:70px 75px minmax(260px,1fr) 100px 100px 120px 45px}}
@media(max-width:900px){.opportunity-head{display:none}.opportunity-row{grid-template-columns:90px 1fr 60px}.opportunity-row span:nth-child(n+4):not(:last-child){display:none}.opportunity-row button{grid-column:3}.news-columns{display:none}.news-row{grid-template-columns:70px 80px 1fr}.news-row span:nth-of-type(n+3){display:none}.analysis-summary{grid-template-columns:repeat(2,1fr)}.scenario-grid{grid-template-columns:1fr}.timeframe-catalog{grid-template-columns:repeat(3,1fr)}}
@media(max-width:640px){.rail{width:220px;transform:translateX(-101%)}.rail.open{transform:none}body[data-workspace=charts] .app{grid-template-rows:1fr;grid-template-columns:1fr;grid-template-areas:"main"}body[data-workspace=charts] .rail{display:none}body[data-workspace=charts] .charts-workspace,body[data-workspace=charts] .charts-main{height:100vh;min-height:0}.chart-topbar .favorite-tfs{display:none}.chart-topbar{overflow:auto}.chart-topbar button[data-action=indicators]{display:block}.news-row{grid-template-columns:62px 1fr}.news-row .news-severity{display:none}.page-head{align-items:start}.analysis-summary{grid-template-columns:1fr 1fr}.opportunity-row{grid-template-columns:75px 1fr}.opportunity-row>span:nth-child(3){display:none}.opportunity-row button{grid-column:2}.ask-disabled{display:grid;gap:5px}}

/* Cortex Charts V5 — TradingView-class workstation hierarchy */
body[data-workspace=charts] .app{grid-template-columns:48px 1fr}body[data-workspace=charts] .rail{width:48px;padding:8px 5px;overflow:hidden}body[data-workspace=charts] .brand{width:36px;height:36px;justify-content:center;margin:0 0 10px;font-size:0}body[data-workspace=charts] .brand:before{content:'C';font:800 15px var(--mono);color:#fff}body[data-workspace=charts] .brand>*{display:none}body[data-workspace=charts] .rail nav a{width:38px;height:38px;padding:9px;text-align:center;font-size:0}body[data-workspace=charts] .rail nav a::first-letter{font-size:13px}body[data-workspace=charts] .nav-label,body[data-workspace=charts] .future,body[data-workspace=charts] .rail-foot,body[data-workspace=charts] .nav-more{display:none}
.ui-icon{width:16px;height:16px;display:block;flex:none}.chart-station{--chartbar:44px}.charts-workspace .chart-station{grid-template-rows:var(--chartbar) minmax(0,1fr) auto auto}.chart-topbar{height:var(--chartbar);padding:0 6px;gap:2px;overflow:visible;background:#0a090a;border-color:#292126}.chart-topbar>button,.chart-topbar>select{height:32px;padding:0 9px;border:0;background:transparent;color:#c8c1c4;display:flex;gap:6px;align-items:center;white-space:nowrap}.chart-topbar>button:hover,.chart-topbar>select:hover{background:#181216;color:#fff}.chart-topbar>button:disabled{opacity:.28}.chart-topbar .icon-control{width:32px;padding:0;justify-content:center}.chart-mark{width:30px;height:30px;display:grid;place-items:center;border-radius:4px;background:#781d36;font:800 14px var(--mono);margin-right:2px}.symbol-select{min-width:90px;text-align:left;display:grid!important;grid-template-columns:1fr}.symbol-select strong{font:800 13px var(--mono)}.symbol-select small{font:7px var(--mono);color:var(--faint);line-height:1}.toolbar-spacer{flex:1}.favorite-tfs{display:flex;gap:0;border-left:1px solid #2b2226;margin-left:2px}.favorite-tfs button{height:30px;min-width:29px;border:0;background:transparent;color:#857b80;font:700 10px var(--mono)}.favorite-tfs button:hover,.favorite-tfs button.active{color:#fff;background:#20151a}.favorite-tfs button.active{box-shadow:inset 0 -2px var(--wine-500)}
.chart-work{grid-template-columns:40px minmax(0,1fr) auto}.draw-tools{width:40px;padding:3px 0;background:#090809;border-color:#292126;gap:1px}.draw-tools button{width:34px;height:34px;margin:auto;border:0;background:transparent;color:#8f878b;display:grid;place-items:center}.draw-tools button:hover,.draw-tools button.active{background:#1b1417;color:#fff}.draw-tools button:before{display:none!important}.ohlc{top:7px;left:12px;font:10px var(--mono);color:#847b80;background:transparent;padding:0}.ohlc strong{color:#eee}.ohlc span{margin-left:8px}.chart-status{height:23px;background:#090809;border-color:#292126;color:#6f686c}.chart-grid.layout-2v{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-grid.layout-2h{grid-template-rows:repeat(2,minmax(0,1fr))}.chart-grid.layout-4{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}.chart-grid .price-chart{outline:1px solid transparent;outline-offset:-1px}.chart-grid .price-chart.is-active{outline-color:#87405a}.chart-grid.has-maximized .price-chart:not(.is-maximized){display:none}.chart-grid.has-maximized .price-chart.is-maximized{grid-column:1/-1;grid-row:1/-1}
.chart-dialog{width:min(680px,calc(100% - 24px));max-height:min(720px,calc(100% - 30px));box-shadow:0 24px 80px #000b;border:1px solid #403038}.chart-dialog>header{height:44px;padding:0 14px}.chart-dialog>header strong{font-size:13px}.dialog-search{height:42px;font-size:15px}.symbol-search-head{display:flex;gap:6px;align-items:center}.symbol-search-head input{flex:1}.symbol-search-head kbd{border:1px solid var(--line2);padding:3px 5px;color:var(--muted)}.symbol-tabs{display:flex;border-bottom:1px solid var(--line);margin:10px -12px 0;padding:0 12px}.symbol-tabs button{border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);padding:9px 12px;font:700 9px var(--mono)}.symbol-tabs button.active{color:#fff;border-color:var(--wine-400)}.symbol-results{max-height:430px;overflow:auto}.symbol-row{width:100%;display:grid;grid-template-columns:90px 1fr 150px;align-items:center;text-align:left;border:0;border-bottom:1px solid #211a1e;background:transparent;padding:10px}.symbol-row:hover,.symbol-row.active{background:#171115}.symbol-row strong{font:800 13px var(--mono)}.symbol-row span{color:#bbb}.symbol-row small{text-align:right;color:var(--faint);font:9px var(--mono)}
.layout-options{grid-template-columns:repeat(4,1fr)}.layout-options button{padding:12px 8px;display:grid;gap:8px;justify-items:center}.layout-diagram{width:58px;height:42px;display:grid;gap:3px;padding:3px;border:1px solid #50424a}.layout-diagram i{display:block;background:#5b4852}.layout-diagram.layout-2v{grid-template-columns:1fr 1fr}.layout-diagram.layout-2h{grid-template-rows:1fr 1fr}.layout-diagram.layout-4{grid-template-columns:1fr 1fr}.sync-options{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;border:1px solid var(--line);margin:12px 0;padding:10px}.sync-options legend{color:var(--muted);font:9px var(--mono)}.saved-layouts{display:flex;align-items:end;gap:8px}.saved-layouts label{display:grid;gap:4px;color:var(--muted);font-size:10px}.saved-layouts input{height:30px;background:#090809;border:1px solid var(--line2);padding:0 7px}
.settings-shell{display:grid;grid-template-columns:155px 1fr;min-height:330px;margin:-12px}.settings-nav{border-right:1px solid var(--line);padding:10px 0;background:#090809}.settings-nav button{display:block;width:100%;padding:10px 12px;text-align:left;border:0;background:transparent;color:var(--muted)}.settings-nav button.active{color:#fff;background:#1a1216;box-shadow:inset 2px 0 var(--wine-400)}.chart-settings{padding:16px}.chart-settings section{grid-template-columns:1fr}.chart-context-menu{min-width:220px;padding:5px;background:#110d0f;border:1px solid #49343f;box-shadow:0 16px 45px #000b}.chart-context-menu button{width:100%;text-align:left;border:0;background:transparent;padding:8px;color:#cfc7cb}.chart-context-menu button:hover{background:#261820}.chart-context-menu button:disabled{color:#554d51}.chart-context-menu hr{border:0;border-top:1px solid var(--line)}.replay-bar{min-height:38px;background:#100b0d;border-color:#462433}.replay-trade-fields{display:none!important}
@media(max-width:1100px){.chart-topbar [data-action=templates],.chart-topbar [data-action=alert] span,.chart-topbar [data-action=replay] span,.favorite-tfs button:nth-child(n+4){display:none}.chart-grid.layout-2v{grid-template-columns:1fr;grid-template-rows:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){body[data-workspace=charts] .app{grid-template-columns:1fr}.chart-topbar{overflow-x:auto}.chart-topbar .toolbar-spacer,.chart-topbar [data-action=templates],.chart-topbar [data-action=alert],.favorite-tfs{display:none}.chart-work{grid-template-columns:34px minmax(0,1fr)}.draw-tools{width:34px}.draw-tools button{width:30px}.layout-options{grid-template-columns:repeat(2,1fr)}.sync-options{grid-template-columns:1fr 1fr}.settings-shell{grid-template-columns:110px 1fr}.symbol-row{grid-template-columns:70px 1fr}.symbol-row small{display:none}}

/* Cortex Charts V6 — shell replacement */
body[data-workspace=charts]{--v6-toolbar:44px;--v6-tools:44px;--v6-bg:#0b0c0f;--v6-surface:#141519;--v6-hover:#202126;--v6-rule:#2a2b31;--v6-text:#d8d9de;--v6-muted:#898b94;--v6-accent:#9b3858;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}body[data-workspace=charts] .app{display:block}body[data-workspace=charts] .rail{display:none!important}body[data-workspace=charts] #workspace,body[data-workspace=charts] .charts-workspace,body[data-workspace=charts] .charts-main,body[data-workspace=charts] #chart-grid-host{height:100vh;min-height:0}body[data-workspace=charts] .chart-grid{position:relative;height:100%;padding-top:var(--v6-toolbar);padding-left:var(--v6-tools);gap:1px;background:var(--v6-rule)}
.chart-grid .chart-station{height:100%;grid-template-rows:minmax(0,1fr) auto;background:var(--v6-bg)}.chart-grid .chart-work{grid-template-columns:minmax(0,1fr) auto;min-height:0}.chart-grid .price-chart:not(:first-child) .chart-topbar,.chart-grid .price-chart:not(:first-child) .draw-tools{display:none}.chart-grid .price-chart:first-child .chart-topbar{position:fixed;z-index:55;left:0;right:0;top:0;height:var(--v6-toolbar)}.chart-grid .price-chart:first-child .draw-tools{position:fixed;z-index:50;left:0;top:var(--v6-toolbar);bottom:0;width:var(--v6-tools)}.chart-status{display:none!important}
.chart-topbar{padding:0 8px;gap:3px;background:#111216;border-bottom:1px solid var(--v6-rule);font-size:12px}.chart-topbar>button,.chart-topbar .favorite-tfs button{height:34px;min-width:34px;border:0;border-radius:5px;background:transparent;color:#b5b6bd;padding:0 9px}.chart-topbar>button:hover,.favorite-tfs button:hover{background:var(--v6-hover);color:#f5f5f7}.chart-topbar>button.active,.favorite-tfs button.active{color:#fff;background:#24171d;box-shadow:inset 0 -2px var(--v6-accent)}.chart-mark{width:34px!important;padding:0!important;display:grid!important;place-items:center!important}.symbol-select{min-width:132px!important;display:flex!important;gap:8px!important;align-items:baseline!important;padding-inline:10px!important}.symbol-select strong{font:700 13px Inter,sans-serif}.symbol-select small{font:11px Inter,sans-serif;color:var(--v6-muted);max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toolbar-separator{display:block;width:1px;height:22px;background:var(--v6-rule);margin:0 4px}.favorite-tfs{border:0;margin:0;gap:1px}.favorite-tfs button{font:600 12px Inter,sans-serif}.favorite-tfs button:disabled{display:none}.interval-more{width:32px;padding:0!important}.chart-type-trigger,.chart-topbar [data-action=indicators],.chart-topbar [data-action=alert],.chart-topbar [data-action=replay]{display:flex!important;align-items:center;gap:7px}.overflow-trigger{display:none!important}.ui-icon{width:17px;height:17px;stroke-width:1.65}
.draw-tools{padding:5px 4px;background:#111216;border-right:1px solid var(--v6-rule);gap:2px;overflow-y:auto;scrollbar-width:none}.draw-tools button{width:36px;height:34px;border-radius:5px;color:#9b9da6}.draw-tools button:hover{background:var(--v6-hover);color:#fff}.draw-tools button.active{color:#f0cad6;background:transparent;box-shadow:inset 2px 0 var(--v6-accent)}.draw-tools button:nth-child(10){margin-bottom:8px}.draw-tools button:nth-child(11){border-top:1px solid var(--v6-rule);border-radius:0;padding-top:7px;height:42px}
.ohlc{display:flex;align-items:center;gap:14px;top:8px;left:12px;padding:0;color:var(--v6-muted);font:12px Inter,sans-serif}.ohlc strong{font-weight:600;color:var(--v6-text)}.ohlc span{margin:0;font-variant-numeric:tabular-nums}.ohlc small{font-size:10px;color:#777981}.ohlc em{font-style:normal}.ohlc .up{color:#52b991}.ohlc .down{color:#df6d79}.replay-watermark{font:600 38px Inter,sans-serif;letter-spacing:.18em;opacity:.055}.indicator-legend{top:37px;left:12px;gap:3px}.indicator-legend>div{min-height:26px;padding:3px 6px;border-radius:4px;background:transparent;color:#aaa;font:12px Inter,sans-serif}.indicator-legend>div button{opacity:0;transition:opacity .12s}.indicator-legend>div:hover button,.indicator-legend>div:focus-within button{opacity:1}
.chart-dialog{position:fixed;z-index:80;top:62px;left:50%;transform:translateX(-50%);width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 92px);border:1px solid #34353b;border-radius:6px;background:#17181c;box-shadow:0 20px 70px #000a;color:var(--v6-text)}.chart-dialog>header{height:46px;background:transparent;border-bottom:1px solid var(--v6-rule);padding:0 16px;text-transform:none;letter-spacing:0}.chart-dialog>header strong{font:600 14px Inter,sans-serif}.chart-dialog>header button{border:0;background:transparent;color:var(--v6-muted);font-size:18px}.chart-dialog>[data-role=dialog-body]{padding:12px 16px}.compact-dialog{left:auto;right:12px;transform:none;width:300px}.app-menu-dialog{left:8px;right:auto;width:210px}.interval-dialog{left:210px;right:auto;width:430px}.layout-dialog{right:92px;width:340px}.saved-layout-dialog{right:48px;width:240px}.app-switcher,.compact-menu,.saved-layout-menu{display:grid;gap:2px}.app-switcher a,.compact-menu button,.saved-layout-menu button{height:38px;display:flex;align-items:center;gap:10px;border:0;border-radius:4px;background:transparent;color:var(--v6-text);padding:0 10px;text-align:left}.app-switcher a:hover,.compact-menu button:hover,.saved-layout-menu button:hover{background:var(--v6-hover)}.saved-layout-menu label{padding:10px;color:var(--v6-muted)}
.dialog-search{height:42px;border:1px solid #3a3b42;border-radius:5px;background:#0f1013;padding:0 12px;font:14px Inter,sans-serif;box-shadow:none}.dialog-search:focus{border-color:#8d4960;outline:none;box-shadow:0 0 0 2px #9b385822}.symbol-tabs,.indicator-tabs{display:flex;gap:16px;margin:8px 0 4px;padding:0;border-bottom:1px solid var(--v6-rule)}.symbol-tabs button,.indicator-tabs button{height:34px;padding:0;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--v6-muted);font:12px Inter,sans-serif;text-transform:none;letter-spacing:0}.symbol-tabs button.active,.indicator-tabs button.active{border-color:var(--v6-accent);color:#fff}.symbol-row{min-height:44px;grid-template-columns:75px 1fr 100px;padding:7px 8px;border:0;border-radius:4px}.symbol-row:hover,.symbol-row.active{background:var(--v6-hover)}.symbol-row strong{font:650 13px Inter,sans-serif}.symbol-row span,.symbol-row small{font:12px Inter,sans-serif;color:var(--v6-muted)}.indicator-list{display:grid;gap:2px}.indicator-row{min-height:48px;padding:7px 9px;border:0;border-radius:4px;background:transparent}.indicator-row:hover,.indicator-row.active{background:var(--v6-hover);border:0}.indicator-row strong{font:600 13px Inter,sans-serif}.indicator-row small{font:11px Inter,sans-serif;color:var(--v6-muted)}.indicator-row>.ui-icon{color:#a95b73}
.interval-menu{max-height:470px;overflow:auto}.timeframe-group{display:grid;grid-template-columns:70px 1fr;align-items:start;margin:8px 0}.timeframe-group>b{margin:8px 0;color:var(--v6-muted);font:500 11px Inter,sans-serif;letter-spacing:0}.timeframe-catalog{display:grid;grid-template-columns:repeat(4,1fr);gap:2px}.timeframe-choice{display:flex;grid-template-columns:none}.timeframe-choice>[data-favorite]{width:22px;padding:0;color:#777}.timeframe-choice>[data-interval]{min-width:38px;height:30px;border:0;border-radius:4px;background:transparent;color:#bbb;padding:0}.timeframe-choice>[data-interval]:hover{background:var(--v6-hover)}.timeframe-choice>[data-interval].active{color:#fff;background:#291820}.timeframe-choice>[data-interval]:disabled{opacity:.22}.layout-options{grid-template-columns:repeat(4,1fr);gap:4px}.layout-options button{border:0;border-radius:4px;background:transparent;padding:8px}.layout-options button:hover{background:var(--v6-hover)}.layout-diagram{width:45px;height:34px}.sync-options{display:grid;grid-template-columns:1fr 1fr;margin:8px 0 0;padding:12px 4px;border:0;border-top:1px solid var(--v6-rule);gap:9px;color:#aaa}.sync-options strong{grid-column:1/-1;font-size:12px}.quiet-disabled{opacity:.32}
.settings-shell{grid-template-columns:145px 1fr;min-height:360px;margin:-12px -16px}.settings-nav{padding:8px;background:#121317}.settings-nav button{min-height:36px;padding:7px 11px;border-radius:4px;font:12px Inter,sans-serif}.settings-nav button.active{background:var(--v6-hover);box-shadow:inset 2px 0 var(--v6-accent)}.chart-settings{padding:18px 20px}.chart-settings section{display:grid;gap:0}.chart-settings section>strong{margin-bottom:10px;font-size:13px}.chart-settings label{min-height:39px;padding:8px 0;border-bottom:1px solid #24252a;font:12px Inter,sans-serif}.chart-settings input[type=color]{width:28px;height:22px;border:0;padding:0;background:transparent}
.replay-bar{position:fixed;z-index:58;left:var(--v6-tools);right:0;bottom:0;min-height:42px;padding:4px 10px;gap:6px;background:#17181c;border-top:1px solid #34353b;font:12px Inter,sans-serif}.replay-bar>strong{font-weight:600;text-transform:none;letter-spacing:0}.replay-bar button,.replay-bar select{height:30px;border:0;border-radius:4px;background:var(--v6-hover);padding:0 9px}.replay-bar .ui-icon{width:15px}.chart-trader{top:40px;left:auto;right:72px;border:1px solid #33343a;border-radius:5px;background:#17181c;padding:4px}.sim-badge{font:10px Inter,sans-serif;letter-spacing:0;text-transform:none}.order-ticket{top:78px;left:auto;right:20px;transform:none;width:280px;border-radius:6px;background:#17181c}.trading-panel{border-radius:6px;background:#17181c}.trading-lines .trade-line-label{font:11px Inter,sans-serif;border-radius:3px}
@media(max-width:1180px){.chart-topbar [data-action=alert] span,.chart-topbar [data-action=replay] span,.chart-type-trigger span{display:none}.symbol-select{min-width:92px!important}.symbol-select small{display:none}.toolbar-separator{margin-inline:2px}}
@media(max-width:1024px){.favorite-tfs button:nth-child(1),.favorite-tfs button:nth-child(5){display:none}.chart-topbar [data-action=save]{display:none}.chart-grid.layout-2v{grid-template-columns:1fr}.chart-dialog{max-height:calc(100vh - 76px)}}
@media(max-width:640px){body[data-workspace=charts]{--v6-tools:38px}.chart-topbar{padding:0 4px}.chart-mark{width:30px!important}.symbol-select{min-width:64px!important;padding-inline:6px!important}.favorite-tfs{display:none!important}.chart-topbar [data-action=alert],.chart-topbar [data-action=undo],.chart-topbar [data-action=redo],.chart-topbar [data-action=layout],.chart-topbar [data-action=save],.chart-topbar [data-action=settings],.toolbar-separator{display:none!important}.overflow-trigger{display:grid!important;place-items:center}.draw-tools{padding-inline:2px}.draw-tools button{width:33px}.chart-dialog,.compact-dialog,.app-menu-dialog,.interval-dialog,.layout-dialog,.saved-layout-dialog{left:0;right:0;top:auto;bottom:0;transform:none;width:100%;max-width:none;max-height:78vh;border-radius:10px 10px 0 0}.settings-shell{grid-template-columns:112px 1fr}.symbol-row{grid-template-columns:64px 1fr 70px}.ohlc span{display:none}.chart-trader{right:8px}.replay-bar{overflow-x:auto;white-space:nowrap}}

/* Official Advanced Charts host. The licensed widget is themed only through its
   supported API; Cortex never reaches into or restyles its internal DOM. */
.advanced-charts-workspace{position:fixed;inset:0;background:#080a0e;overflow:hidden}
#advanced-chart-host{position:absolute;inset:0;min-width:0;min-height:420px}
.cortex-analyze-link{position:absolute;z-index:3;right:12px;bottom:12px;padding:7px 11px;border:1px solid #343842;border-radius:6px;background:rgba(12,14,19,.92);color:#e7e9ee;font:500 12px/1.2 Inter,system-ui,sans-serif;text-decoration:none;box-shadow:0 6px 22px #0008}
.cortex-analyze-link:hover,.cortex-analyze-link:focus-visible{border-color:#a72f4c;color:#fff;outline:none}
.open-chart-workspace{position:fixed;inset:0;background:#080a0e;overflow:hidden}.open-chart-workspace #open-chart-host{position:absolute;inset:0;min-width:0;min-height:420px}.open-chart-workspace #open-chart-host>div{width:100%;height:100%}.open-chart-quality{position:absolute;z-index:4;right:12px;top:9px;padding:5px 8px;border:1px solid #343842;border-radius:4px;background:#11151dcc;color:#abb5c5;font:700 9px/1.2 var(--mono);letter-spacing:.08em;pointer-events:none}
@media(max-width:640px){.cortex-analyze-link{right:8px;bottom:8px;padding:6px 9px}}

/* Isolated chart-engine bake-off. Candidate bundles load only on chart-lab routes. */
.chart-lab{height:calc(100vh - 108px);min-height:640px;padding:12px;display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:12px;background:#090d14}.chart-lab>header{display:flex;align-items:end;justify-content:space-between;gap:24px}.chart-lab h1{margin:3px 0;font-size:22px}.chart-lab p{margin:0;color:#8f9bad}.chart-lab nav,.lab-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.lab-controls output{overflow:hidden;color:#8f9bad;font:11px ui-monospace,SFMono-Regular,monospace;text-overflow:ellipsis;white-space:nowrap}.chart-lab #chart-lab-host{min-height:0;overflow:hidden;border:1px solid #263142;border-radius:8px;background:#0b0f15}.chart-lab #chart-lab-host>div{width:100%;height:100%}@media(max-width:800px){.chart-lab>header{align-items:start;flex-direction:column}.chart-lab{height:calc(100vh - 88px);padding:8px}}

/* ==========================================================================
   CORTEX CHARTS — tokenized surface
   --------------------------------------------------------------------------
   The first Cortex surface with an enforced token set. Everything below uses
   these variables; no raw hex is introduced past this comment.

   Typography note. The stylesheet above asks for "Inter" and Inter is never
   loaded - no @font-face, no font link - so every screen has been rendering in
   the platform UI font while claiming otherwise. Rather than add a webfont
   download to a trading surface, the chart commits to the platform stack
   explicitly: SF Pro on macOS, Segoe UI Variable on Windows, Roboto on
   Android/ChromeOS. All three are high quality, already resident, cost zero
   bytes, and carry no licence obligation. Figures use tabular numerals so
   columns align and digits stop shifting width as prices tick.
   ========================================================================== */
:root {
  /* surfaces */
  --ch-bg:        #0b0d10;
  --ch-panel:     #0f1216;
  --ch-raised:    #151a20;
  --ch-sunken:    #08090b;
  /* lines */
  --ch-line:      #1e242c;
  --ch-line-2:    #2a323c;
  /* text */
  --ch-text:      #e8ecf1;
  --ch-text-2:    #9aa4b2;
  --ch-text-3:    #646d7a;
  /* meaning */
  --ch-accent:    #9f2942;
  --ch-accent-2:  #c9536e;
  --ch-up:        #42c38b;
  --ch-down:      #ed6473;
  --ch-warn:      #d9ae64;
  --ch-info:      #74a8df;
  /* interaction */
  --ch-hover:     #1a2028;
  --ch-active:    #223042;
  --ch-focus:     #4d7ea8;
  /* geometry — three radii, not thirty-three */
  --ch-r-sm: 2px;
  --ch-r-md: 4px;
  --ch-r-lg: 6px;
  /* spacing scale */
  --ch-s1: 2px;  --ch-s2: 4px;  --ch-s3: 6px;
  --ch-s4: 8px;  --ch-s5: 12px; --ch-s6: 16px;
  /* type scale — six sizes total */
  --ch-t-xs: 10px; --ch-t-sm: 11px; --ch-t-md: 12px;
  --ch-t-lg: 13px; --ch-t-xl: 15px; --ch-t-2xl: 18px;
  /* chrome dimensions */
  --ch-toolbar: 38px;
  --ch-rail:    40px;
  --ch-font: -apple-system, "SF Pro Text", "Segoe UI Variable Text", "Segoe UI",
             Roboto, system-ui, sans-serif;
  --ch-num: "SF Mono", "Segoe UI Mono", "Roboto Mono", ui-monospace, monospace;
}

/* Every figure on the chart surface is tabular. This is the fix for columns
   that would not align and digits that jittered on each tick. */
.chart-station, .chart-station input, .chart-station select, .chart-station button {
  font-family: var(--ch-font);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1, "cv01" 1;
}
.chart-station .ohlc, .chart-station .legend-chip,
.chart-station .chart-popover, .chart-station .chart-context { font-variant-numeric: tabular-nums; }

.charts-workspace .chart-station { background: var(--ch-bg); border: 0; }
.charts-workspace .chart-topbar {
  height: var(--ch-toolbar);
  background: var(--ch-panel);
  border-bottom: 1px solid var(--ch-line);
  gap: var(--ch-s2);
  padding: 0 var(--ch-s4);
}
.charts-workspace .chart-topbar button,
.charts-workspace .chart-topbar select {
  height: 26px; border: 1px solid transparent; border-radius: var(--ch-r-sm);
  background: transparent; color: var(--ch-text-2);
  font: 500 var(--ch-t-md)/1 var(--ch-font); padding: 0 var(--ch-s4);
}
.charts-workspace .chart-topbar button:hover { background: var(--ch-hover); color: var(--ch-text); }
.charts-workspace .chart-topbar button.active,
.charts-workspace .chart-topbar .favorite-tfs button.active {
  background: var(--ch-active); color: var(--ch-text); border-color: var(--ch-line-2);
}
.charts-workspace .chart-topbar .symbol-select strong {
  font: 700 var(--ch-t-lg)/1 var(--ch-font); color: var(--ch-text); letter-spacing: .01em;
}
.charts-workspace .chart-topbar .symbol-select small { color: var(--ch-text-3); font-size: var(--ch-t-sm); }
.charts-workspace .toolbar-separator { width: 1px; height: 18px; background: var(--ch-line); margin: 0 var(--ch-s2); }

/* ---- drawing rail ----
   No grid-template-columns here on purpose. In the V6 chart layout the rail is
   position:fixed and therefore out of grid flow, so the work area is a
   two-column grid. Re-declaring three columns put the chart stage in the 40px
   rail track and collapsed the plot to zero width. */
.charts-workspace .draw-tools {
  background: var(--ch-panel);
  border-right: 1px solid var(--ch-line);
  padding: var(--ch-s3) 0; gap: var(--ch-s1); overflow: visible;
}
.charts-workspace .draw-tools .rail-btn {
  position: relative; width: 30px; height: 30px; margin: 0 auto; padding: 0;
  border: 1px solid transparent; border-radius: var(--ch-r-md);
  background: transparent; color: var(--ch-text-2);
  display: grid; place-items: center; transition: background .12s, color .12s;
}
.charts-workspace .draw-tools .rail-btn svg { width: 17px; height: 17px; }
.charts-workspace .draw-tools .rail-btn:hover { background: var(--ch-hover); color: var(--ch-text); }
.charts-workspace .draw-tools .rail-btn.active {
  background: var(--ch-active); color: var(--ch-text);
  box-shadow: inset 2px 0 0 var(--ch-accent-2);
}
.charts-workspace .draw-tools .rail-btn:focus-visible { outline: 2px solid var(--ch-focus); outline-offset: 1px; }
.charts-workspace .draw-tools .rail-btn[data-state="strong"] { color: var(--ch-warn); }
.rail-caret {
  position: absolute; right: 2px; bottom: 2px;
  width: 0; height: 0; border-left: 3px solid transparent;
  border-bottom: 3px solid currentColor; opacity: .5;
}
.charts-workspace .rail-sep { display: block; height: 1px; margin: var(--ch-s2) var(--ch-s3); background: var(--ch-line); }
.rail-flyout {
  position: absolute; z-index: 60; min-width: 186px; padding: var(--ch-s2);
  background: var(--ch-raised); border: 1px solid var(--ch-line-2);
  border-radius: var(--ch-r-lg); box-shadow: 0 10px 32px #00000080;
  display: grid; gap: 1px;
  animation: ch-pop .1s ease-out;
}
@keyframes ch-pop { from { opacity: 0; transform: translateY(-2px) scale(.99); } }
.rail-flyout button {
  display: flex; align-items: center; gap: var(--ch-s4);
  width: 100%; height: 28px; padding: 0 var(--ch-s3);
  border: 0; border-radius: var(--ch-r-md); background: transparent;
  color: var(--ch-text-2); font: 500 var(--ch-t-md)/1 var(--ch-font); text-align: left;
}
.rail-flyout button:hover { background: var(--ch-hover); color: var(--ch-text); }
.rail-flyout button.active { color: var(--ch-text); background: var(--ch-active); }
.rail-flyout .flyout-icon { display: grid; place-items: center; width: 17px; color: var(--ch-text-3); }
.rail-flyout button:hover .flyout-icon, .rail-flyout button.active .flyout-icon { color: var(--ch-accent-2); }

/* ---- popovers, context menu ---- */
.chart-popover, .chart-context {
  position: absolute; z-index: 70;
  background: var(--ch-raised); border: 1px solid var(--ch-line-2);
  border-radius: var(--ch-r-lg); box-shadow: 0 12px 36px #00000090;
  color: var(--ch-text); animation: ch-pop .12s ease-out;
}
.chart-context { min-width: 168px; padding: var(--ch-s2); display: grid; gap: 1px; }
.chart-context button {
  height: 27px; padding: 0 var(--ch-s4); border: 0; border-radius: var(--ch-r-md);
  background: transparent; color: var(--ch-text-2);
  font: 500 var(--ch-t-md)/1 var(--ch-font); text-align: left;
}
.chart-context button:hover { background: var(--ch-hover); color: var(--ch-text); }
.chart-context button.danger:hover { background: #3a1721; color: var(--ch-down); }
.chart-popover { width: 236px; padding: var(--ch-s5); }
.chart-popover header { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--ch-s4); }
.chart-popover header strong { font: 600 var(--ch-t-lg)/1 var(--ch-font); }
.chart-popover header button { border: 0; background: transparent; color: var(--ch-text-3); font-size: var(--ch-t-xl); line-height: 1; }
.chart-popover .row { display: flex; align-items: center; justify-content: space-between; gap: var(--ch-s4); margin-bottom: var(--ch-s4); }
.chart-popover .row > span { color: var(--ch-text-2); font-size: var(--ch-t-md); }
.chart-popover input[type=range] { width: 108px; accent-color: var(--ch-accent-2); }
.chart-popover input[type=text] {
  width: 118px; height: 24px; padding: 0 var(--ch-s3);
  background: var(--ch-sunken); border: 1px solid var(--ch-line-2);
  border-radius: var(--ch-r-sm); color: var(--ch-text); font-size: var(--ch-t-md);
}
.chart-popover select {
  height: 24px; background: var(--ch-sunken); color: var(--ch-text);
  border: 1px solid var(--ch-line-2); border-radius: var(--ch-r-sm); font-size: var(--ch-t-md);
}
.chart-popover .swatches { display: flex; gap: var(--ch-s1); }
.chart-popover .swatches button {
  width: 17px; height: 17px; padding: 0; border-radius: var(--ch-r-sm);
  background: var(--sw); border: 1px solid #ffffff1f;
}
.chart-popover .swatches button.on { outline: 2px solid var(--ch-text); outline-offset: 1px; }
.chart-popover footer { display: flex; gap: var(--ch-s3); margin-top: var(--ch-s5); }
.chart-popover footer button {
  flex: 1; height: 26px; border-radius: var(--ch-r-md);
  border: 1px solid var(--ch-line-2); background: var(--ch-panel);
  color: var(--ch-text-2); font: 500 var(--ch-t-md)/1 var(--ch-font);
}
.chart-popover footer button:hover { background: var(--ch-hover); color: var(--ch-text); }
.chart-popover footer button.danger { border-color: #4a1f2a; color: var(--ch-down); }
.chart-popover footer button.danger:hover { background: #3a1721; }
.chart-popover.confirm { width: 210px; }
.chart-popover.confirm p { margin: 0 0 var(--ch-s5); font-size: var(--ch-t-md); color: var(--ch-text-2); }

/* ---- indicator legend chips ---- */
.charts-workspace .indicator-legend { top: var(--ch-s4); left: var(--ch-s5); gap: var(--ch-s1); }
.charts-workspace .indicator-legend .legend-chip {
  display: flex; align-items: center; gap: var(--ch-s2);
  height: 20px; padding: 0 var(--ch-s2) 0 var(--ch-s3);
  background: #0b0d10cc; border: 1px solid transparent; border-radius: var(--ch-r-sm);
  color: var(--ch-text-2); font: 500 var(--ch-t-sm)/1 var(--ch-font);
  pointer-events: auto;
}
.charts-workspace .indicator-legend .legend-chip:hover {
  border-color: var(--ch-line-2); background: var(--ch-raised); color: var(--ch-text);
}
.charts-workspace .indicator-legend .chip-actions { display: flex; gap: 0; }
.charts-workspace .indicator-legend button {
  display: none; width: 18px; height: 18px; padding: 0;
  border: 0; border-radius: var(--ch-r-sm); background: transparent;
  color: var(--ch-text-3); place-items: center;
}
.charts-workspace .indicator-legend button svg { width: 12px; height: 12px; }
.charts-workspace .indicator-legend .legend-chip:hover button { display: grid; }
.charts-workspace .indicator-legend button:hover { background: var(--ch-hover); color: var(--ch-text); }
.charts-workspace .indicator-legend button[data-volume-remove]:hover { color: var(--ch-down); }

/* ---- chart legend (OHLC) ----
   The symbol legend and the indicator chips both anchor top-left, so they are
   stacked rather than layered: symbol first, indicators beneath it. They were
   overlapping into an unreadable smear. */
.charts-workspace .ohlc {
  left: var(--ch-s5); top: var(--ch-s3);
  font: 500 var(--ch-t-sm)/1.5 var(--ch-font); color: var(--ch-text-3);
  display: flex; align-items: baseline; gap: var(--ch-s4);
}
.charts-workspace .indicator-legend { top: 30px; }
.charts-workspace .ohlc strong { color: var(--ch-text); font-weight: 600; font-size: var(--ch-t-md); }

.cortex-draw-layer { position: absolute; inset: 0; }

/* ============================================================ NAMI PASS
   Row 1 floating style bar, row 5 settings, row 7 Fib levels, row 9
   indicator cards, row 15 legend placement. Tokens only - no new colours
   are introduced here, and nothing below changes the approved candles. */

/* ---- floating style bar ----
   Anchored to the selected drawing and repositioned on every paint, so it
   tracks pan, zoom and drag. Compact on purpose: it sits over the chart. */
.charts-workspace .style-bar {
  position: absolute; z-index: 60;
  display: flex; align-items: center; gap: var(--ch-s2);
  height: 30px; padding: 0 var(--ch-s3);
  background: var(--ch-raised); border: 1px solid var(--ch-line-2);
  border-radius: var(--ch-r-lg); box-shadow: 0 10px 30px #00000090;
  animation: ch-pop .1s ease-out;
}
.charts-workspace .style-bar .sb-sep {
  width: 1px; height: 16px; background: var(--ch-line-2); flex: none;
}
.charts-workspace .style-bar button {
  display: grid; place-items: center;
  width: 22px; height: 22px; padding: 0;
  border: 1px solid transparent; border-radius: var(--ch-r-sm);
  background: transparent; color: var(--ch-text-2);
}
.charts-workspace .style-bar button:hover { background: var(--ch-hover); color: var(--ch-text); }
.charts-workspace .style-bar button.on { background: var(--ch-active); color: var(--ch-text); }
.charts-workspace .style-bar button svg { width: 13px; height: 13px; }
.charts-workspace .style-bar .sb-swatches,
.charts-workspace .style-bar .sb-widths,
.charts-workspace .style-bar .sb-dashes { display: flex; gap: var(--ch-s1); }
.charts-workspace .style-bar .sb-swatches button {
  width: 15px; height: 15px; border-radius: 50%;
  background: var(--sw); border: 1px solid #ffffff24;
}
.charts-workspace .style-bar .sb-swatches button.on {
  outline: 2px solid var(--ch-text); outline-offset: 1px;
}
.charts-workspace .style-bar .sb-widths i {
  display: block; width: 13px; background: currentColor; border-radius: 1px;
}
.charts-workspace .style-bar .sb-dashes i { display: block; width: 13px; height: 0; border-top: 2px solid currentColor; }
.charts-workspace .style-bar .sb-dash { border-top-style: dashed; }
.charts-workspace .style-bar .sb-dot { border-top-style: dotted; }
.charts-workspace .style-bar .sb-delete:hover { background: #3a1721; color: var(--ch-down); }

/* ---- popover used as a menu (templates) ---- */
.chart-popover.menu { width: 268px; padding: var(--ch-s4); }
.chart-popover.menu > button {
  display: flex; align-items: center; justify-content: space-between;
  width: 100%; min-height: 28px; padding: var(--ch-s2) var(--ch-s4);
  margin-top: 1px; border: 0; border-radius: var(--ch-r-md);
  background: transparent; color: var(--ch-text-2);
  font: 500 var(--ch-t-md)/1.35 var(--ch-font); text-align: left;
}
.chart-popover.menu > button:hover:not(:disabled) { background: var(--ch-hover); color: var(--ch-text); }
.chart-popover.menu > button:disabled { color: var(--ch-text-3); opacity: .5; }
.chart-popover.menu > button i {
  font-style: normal; padding: 0 var(--ch-s2); color: var(--ch-text-3); border-radius: var(--ch-r-sm);
}
.chart-popover.menu > button i:hover { background: #3a1721; color: var(--ch-down); }
.chart-popover.menu input[data-tpl-name] {
  width: 100%; height: 26px; padding: 0 var(--ch-s3);
  background: var(--ch-sunken); border: 1px solid var(--ch-line-2);
  border-radius: var(--ch-r-sm); color: var(--ch-text); font-size: var(--ch-t-md);
}

/* ---- Fibonacci level editor ---- */
.chart-popover.settings.wide { width: 320px; }
.level-editor { margin-top: var(--ch-s5); border-top: 1px solid var(--ch-line); padding-top: var(--ch-s4); }
.level-editor b { display: block; margin-bottom: var(--ch-s3); font: 600 var(--ch-t-md)/1 var(--ch-font); color: var(--ch-text-2); }
.level-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px var(--ch-s4); max-height: 210px; overflow-y: auto; }
.level-row {
  display: grid; grid-template-columns: 14px 1fr 18px; align-items: center;
  gap: var(--ch-s3); height: 22px;
  font: 500 var(--ch-t-sm)/1 var(--ch-num); color: var(--ch-text-2);
  font-variant-numeric: tabular-nums;
}
.level-row:hover { color: var(--ch-text); }
.level-row input[type=color] {
  width: 18px; height: 14px; padding: 0; border: 1px solid var(--ch-line-2);
  border-radius: var(--ch-r-sm); background: transparent;
}
.level-row input[type=checkbox] { accent-color: var(--ch-accent-2); }

/* ---- chart settings ---- */
.charts-workspace .chart-settings .setting {
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--ch-s6); padding: var(--ch-s4) 0;
  border-bottom: 1px solid var(--ch-line);
}
.charts-workspace .chart-settings .setting:last-child { border-bottom: 0; }
.charts-workspace .chart-settings .setting > span { display: grid; gap: 2px; }
.charts-workspace .chart-settings .setting b { font: 600 var(--ch-t-lg)/1.2 var(--ch-font); color: var(--ch-text); }
.charts-workspace .chart-settings .setting small { font: 400 var(--ch-t-md)/1.4 var(--ch-font); color: var(--ch-text-3); max-width: 46ch; }
.charts-workspace .chart-settings .setting.wide { align-items: flex-start; }
.charts-workspace .chart-settings .slider-row { display: flex; align-items: center; gap: var(--ch-s4); }
.charts-workspace .chart-settings .slider-row i { font-style: normal; font-size: var(--ch-t-sm); color: var(--ch-text-3); }
.charts-workspace .chart-settings input[type=range] { width: 132px; accent-color: var(--ch-accent-2); }
.charts-workspace .chart-settings input[type=number] {
  width: 96px; height: 26px; padding: 0 var(--ch-s3);
  background: var(--ch-sunken); border: 1px solid var(--ch-line-2);
  border-radius: var(--ch-r-sm); color: var(--ch-text);
  font: 500 var(--ch-t-md)/1 var(--ch-num); font-variant-numeric: tabular-nums;
}
.charts-workspace .chart-settings input[type=color] {
  width: 30px; height: 22px; padding: 0; background: transparent;
  border: 1px solid var(--ch-line-2); border-radius: var(--ch-r-sm);
}
.charts-workspace .chart-settings input[type=checkbox] { accent-color: var(--ch-accent-2); width: 15px; height: 15px; }
.charts-workspace .settings-foot {
  display: flex; align-items: center; gap: var(--ch-s4);
  padding: var(--ch-s5) 0 0; margin-top: var(--ch-s5);
  border-top: 1px solid var(--ch-line);
}
.charts-workspace .settings-foot span { flex: 1; }
.charts-workspace .settings-foot button {
  height: 28px; padding: 0 var(--ch-s5); border-radius: var(--ch-r-md);
  border: 1px solid var(--ch-line-2); background: var(--ch-panel);
  color: var(--ch-text-2); font: 500 var(--ch-t-md)/1 var(--ch-font);
}
.charts-workspace .settings-foot button:hover { background: var(--ch-hover); color: var(--ch-text); }
.charts-workspace .settings-foot button.primary {
  background: var(--ch-accent); border-color: var(--ch-accent); color: #fff;
}

/* ---- indicator cards ---- */
.charts-workspace .indicator-head { display: flex; align-items: center; gap: var(--ch-s4); }
.charts-workspace .indicator-head .dialog-search { flex: 1; }
.charts-workspace .active-count {
  padding: 0 var(--ch-s4); height: 22px; display: grid; place-items: center;
  border-radius: 11px; background: var(--ch-active);
  font: 600 var(--ch-t-sm)/1 var(--ch-font); color: var(--ch-text-2); white-space: nowrap;
}
.charts-workspace .indicator-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(268px, 1fr));
  gap: var(--ch-s4); margin-top: var(--ch-s5);
}
.charts-workspace .indicator-card {
  display: grid; grid-template-columns: 64px 1fr 20px; align-items: center;
  gap: var(--ch-s5); padding: var(--ch-s5); text-align: left;
  background: var(--ch-panel); border: 1px solid var(--ch-line);
  border-radius: var(--ch-r-lg); color: var(--ch-text-2);
}
.charts-workspace .indicator-card:hover { border-color: var(--ch-line-2); background: var(--ch-raised); }
.charts-workspace .indicator-card.active { border-color: var(--ch-focus); background: #101820; }
.charts-workspace .ind-figure {
  display: grid; place-items: center; height: 40px;
  background: var(--ch-sunken); border-radius: var(--ch-r-md);
}
.charts-workspace .ind-preview { width: 56px; height: 26px; }
.charts-workspace .ind-copy { display: grid; gap: 3px; }
.charts-workspace .ind-copy strong { font: 600 var(--ch-t-lg)/1.2 var(--ch-font); color: var(--ch-text); }
.charts-workspace .ind-copy small { font: 400 var(--ch-t-sm)/1.45 var(--ch-font); color: var(--ch-text-3); }
.charts-workspace .ind-state { display: grid; place-items: center; color: var(--ch-text-3); }
.charts-workspace .ind-state svg { width: 15px; height: 15px; }
.charts-workspace .indicator-card.active .ind-state { color: var(--ch-up); }
.charts-workspace .dialog-note {
  margin: var(--ch-s5) 0 0; font: 400 var(--ch-t-md)/1.5 var(--ch-font); color: var(--ch-text-3);
}

/* ---- flyout shortcut hints ---- */
.rail-flyout button { justify-content: flex-start; gap: var(--ch-s4); }
.rail-flyout kbd {
  margin-left: auto; padding: 1px var(--ch-s2);
  border: 1px solid var(--ch-line-2); border-radius: var(--ch-r-sm);
  font: 500 var(--ch-t-xs)/1.4 var(--ch-num); color: var(--ch-text-3);
}

/* ---- status line and legend placement ----
   The indicator chips move to the bottom-left corner, clear of the symbol
   legend they used to sit under and compete with. */
.charts-workspace .ohlc .status-meta {
  font: 500 var(--ch-t-sm)/1.5 var(--ch-num); color: var(--ch-text-3);
  font-variant-numeric: tabular-nums;
}
.charts-workspace .indicator-legend {
  top: auto; bottom: 32px; left: var(--ch-s5);
  align-content: end;
}

/* The settings and indicator dialogs carry two columns of content and a nav;
   560px squeezed every sub-label into three lines. Widened only for those
   two, so the symbol search and the compact menus keep their proportions. */
.charts-workspace .chart-dialog:has(.settings-shell),
.charts-workspace .chart-dialog:has(.indicator-grid) {
  width: min(820px, calc(100vw - 32px));
}
.charts-workspace .settings-shell { grid-template-columns: 172px 1fr; }
/* The base sheet makes .chart-settings a two-column grid, so each section
   was rendering at half the dialog's width and every sub-label wrapped to
   three lines inside a dialog that was two-thirds empty. */
.charts-workspace .chart-settings { display: block; padding: var(--ch-s6) 22px; }
.charts-workspace .chart-settings section { display: block; }
.charts-workspace .chart-settings .setting { min-height: 0; }
.charts-workspace .chart-settings .setting small { max-width: 52ch; }

/* The stream badge reports a state, not a fault. An idle socket is not an
   error, and painting it the same red as a failure made every screen open by
   telling the user twice that the product was broken. */
.charts-workspace .connection, .connection.disconnected { color: var(--ch-text-3, #646d7a); }
.connection.connecting { color: var(--ch-warn, #d9ae64); }
.connection.connected { color: var(--ch-up, #42c38b); }

/* ============================================================ DESIGN SYSTEM
   The app adopts the v2 tokens. Declared last so it wins over the older
   page rules it replaces, without having to delete them all in one pass -
   the migration is incremental and every page stays working throughout. */
body, .app, input, select, textarea, button {
  font-family: var(--font);
}
body { background: var(--c-bg); color: var(--c-text); }
/* Market data reads as market data everywhere, not only in tables. */
.data-table td, .c-num, .num,
[class*="price"], [class*="score"], [class*="change"], [class*="confidence"] {
  font-variant-numeric: tabular-nums;
}

/* ---- market tile price line ----
   The price is the first thing a trader looks for, so it outranks the score
   typographically. A missing price says so in words rather than showing 0. */
.market-tile .tile-price {
  display: flex; align-items: baseline; gap: var(--s2);
  margin: 2px 0 1px;
  font: 600 17px/1.15 var(--font-num);
  font-variant-numeric: tabular-nums;
  color: var(--c-text); letter-spacing: -0.01em;
}
.market-tile .tile-price em {
  font: 600 var(--t-compact)/1 var(--font-num);
  font-style: normal; font-variant-numeric: tabular-nums;
}
.market-tile .tile-nodata {
  font: 400 var(--t-compact)/1 var(--font); font-style: normal; color: var(--c-text-3);
}

/* Drawer action row: one button system, laid out once. */
.drawer-actions { display: flex; flex-wrap: wrap; gap: var(--s2); margin-top: var(--s4); }
.drawer-actions .c-btn { height: 30px; padding: 0 var(--s4); }

/* Filter chips carry their own count, so the size of a slice is visible
   before it is chosen and an empty result is never a surprise. */
.news-filters button .chip-n {
  margin-left: var(--s2); padding: 0 var(--s1);
  border-radius: var(--r-sm); background: var(--c-surface-2);
  font: 600 var(--t-micro)/1.6 var(--font-num);
  font-variant-numeric: tabular-nums; color: var(--c-text-3);
}
.news-filters button.active .chip-n { background: var(--c-accent-dim); color: #fff; }
