:root{--bg:#080a0d;--panel:#0d1015;--panel2:#10141a;--line:#202630;--line2:#2b333e;--text:#e7ebef;--muted:#7e8997;--accent:#d8ff4f;--accent2:#a9cf32;--danger:#ff6978;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 50% -20%,#171c25 0,#090b0f 38%,#07090c 100%);color:var(--text);height:100vh;overflow:hidden}.app-shell{height:100vh;display:grid;grid-template-rows:52px 42px 1fr 28px}.topbar{display:flex;align-items:center;gap:20px;padding:0 16px;border-bottom:1px solid var(--line);background:#0a0d11}.brand{display:flex;align-items:center;gap:9px;min-width:215px;font-weight:750;letter-spacing:.16em;font-size:13px}.brand-mark{width:26px;height:26px;border:1px solid var(--accent);display:grid;place-items:center;color:var(--accent);font-weight:900;letter-spacing:0}.brand small{color:var(--muted);font-size:8px;letter-spacing:.2em;margin-left:2px}.command-trigger{height:32px;flex:1;max-width:620px;margin:auto;background:#0f1318;border:1px solid var(--line2);border-radius:5px;color:#9ba5b1;text-align:left;padding:0 10px;display:flex;align-items:center;gap:10px;cursor:pointer}.command-trigger:hover{border-color:#424b57;color:var(--text)}.command-trigger span{color:var(--accent);font-weight:800}.command-trigger kbd{margin-left:auto;font-size:10px;color:#6e7885;background:#171c23;padding:3px 6px;border-radius:3px}.top-actions{display:flex;gap:8px;align-items:center}.env-badge{font-size:9px;letter-spacing:.14em;color:var(--accent);border:1px solid #3d4c22;padding:5px 7px;border-radius:3px}.icon-btn{background:none;border:1px solid transparent;color:#87919d;cursor:pointer;font-size:18px}.icon-btn:hover{color:var(--text);border-color:var(--line2)}.workspace-bar{display:flex;align-items:stretch;overflow:auto;border-bottom:1px solid var(--line);background:#0b0e12;padding:0 8px}.workspace-tab{flex:0 0 auto;background:none;border:0;border-bottom:2px solid transparent;color:#77818d;padding:0 13px;font-size:11px;cursor:pointer;display:flex;gap:6px;align-items:center}.workspace-tab:hover{color:#cbd1d8;background:#10141a}.workspace-tab.active{color:#f2f5f7;border-bottom-color:var(--accent);background:#0f1318}.workspace-index{font-size:9px;color:#4f5965}.active .workspace-index{color:var(--accent)}.workspace-area{min-height:0;padding:10px;background:#07090c}.panel-canvas{height:100%;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:minmax(180px,1fr);gap:8px;overflow:auto}.panel{background:linear-gradient(180deg,#0f1318,#0c0f14);border:1px solid var(--line);border-radius:4px;min-width:0;display:flex;flex-direction:column;overflow:hidden;grid-column:span 4;min-height:180px}.panel:nth-child(1){grid-column:span 8}.panel.selected{border-color:#4c5b31;box-shadow:0 0 0 1px #263019 inset}.panel.dragging{opacity:.45}.panel-head{height:31px;flex:0 0 31px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 8px;gap:7px;background:#10141a}.drag-handle{color:#4f5965;cursor:grab;letter-spacing:-3px}.panel-title{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.panel-phase{margin-left:auto;font-size:8px;color:#66717e;letter-spacing:.12em}.panel-close{border:0;background:none;color:#59636f;cursor:pointer;font-size:16px;line-height:1}.panel-close:hover{color:var(--danger)}.panel-body{padding:14px;min-height:0;overflow:auto;flex:1}.empty-action{height:100%;min-height:120px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;gap:6px}.empty-action .glyph{font-size:25px;color:#55606d}.empty-action strong{font-size:12px}.empty-action span,.muted{font-size:10px;color:var(--muted);line-height:1.5}.state-grid,.overview{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.state-grid div,.overview div{border:1px solid var(--line);padding:10px;background:#0b0e12}.state-grid span,.overview span{display:block;color:#66717d;font-size:8px;letter-spacing:.12em}.state-grid strong,.overview strong{display:block;margin-top:5px;font-size:11px;color:#c9d0d7}.statusbar{display:flex;align-items:center;justify-content:space-between;padding:0 10px;border-top:1px solid var(--line);background:#0a0d11;color:#68727e;font-size:9px;letter-spacing:.08em}.statusbar>div{display:flex;gap:13px}.status-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px #b8d83e;align-self:center}.status-items b{color:#8c96a2;font-weight:600}.overlay{position:fixed;inset:0;background:rgba(0,0,0,.62);display:grid;place-items:start center;padding-top:105px;z-index:10}.hidden{display:none}.palette{width:min(650px,calc(100vw - 30px));background:#0d1116;border:1px solid #303946;border-radius:7px;box-shadow:0 22px 70px rgba(0,0,0,.55);overflow:hidden}.palette-head{height:54px;display:flex;align-items:center;padding:0 14px;border-bottom:1px solid var(--line);gap:10px}.palette-head input{flex:1;background:none;border:0;outline:0;color:var(--text);font-size:15px}.palette-head span{font-size:9px;color:#697482;border:1px solid var(--line2);padding:3px 5px;border-radius:3px}.command-list{max-height:390px;overflow:auto;padding:6px}.command-item{width:100%;height:42px;background:none;border:0;border-radius:4px;color:#dce1e6;display:flex;align-items:center;padding:0 10px;cursor:pointer;text-align:left}.command-item:hover,.command-item.active{background:#171d24}.command-item.active{box-shadow:inset 2px 0 0 var(--accent)}.command-item small{margin-left:auto;color:#687482;font-size:9px;text-transform:uppercase;letter-spacing:.08em}.no-results{padding:28px;text-align:center;color:#687482;font-size:11px}.palette-foot{border-top:1px solid var(--line);padding:8px 12px;color:#5d6874;font-size:9px}@media(max-width:900px){.panel-canvas{grid-template-columns:repeat(6,minmax(0,1fr))}.panel,.panel:nth-child(1){grid-column:span 6}.brand{min-width:auto}.brand small{display:none}.status-items{display:none}}@media(max-width:600px){.app-shell{grid-template-rows:48px 42px 1fr 26px}.topbar{gap:8px;padding:0 9px}.brand{font-size:11px;letter-spacing:.1em}.command-trigger{max-width:none}.command-trigger kbd{display:none}.workspace-tab{padding:0 10px}.workspace-area{padding:6px}.panel-canvas{grid-template-columns:1fr;grid-auto-rows:minmax(170px,auto)}.panel,.panel:nth-child(1){grid-column:1}.top-actions{display:none}}

.toast{position:fixed;left:50%;bottom:46px;transform:translateX(-50%);z-index:20;background:#151a20;border:1px solid #39434f;color:#dce2e8;padding:9px 12px;border-radius:4px;font-size:10px;letter-spacing:.04em;box-shadow:0 12px 30px rgba(0,0,0,.35)}.command-focus{animation:commandFocus .9s ease-out}@keyframes commandFocus{0%{border-color:var(--accent);box-shadow:0 0 0 2px rgba(216,255,79,.22) inset,0 0 18px rgba(216,255,79,.12)}100%{border-color:var(--line);box-shadow:none}}
/* Phase 4 — market monitor */
.watchlist-editor{display:flex;gap:8px;margin-bottom:12px}.watchlist-editor input{flex:1;min-width:0;background:#0b0f14;border:1px solid #27303a;color:#d9e2ec;padding:9px 10px;border-radius:6px;outline:none}.watchlist-editor input:focus{border-color:#607083}.watchlist-editor button,.watch-chip,.btn{background:#121821;border:1px solid #293442;color:#b9c6d4;border-radius:6px;padding:8px 10px;cursor:pointer}.watchlist-editor button:hover,.watch-chip:hover,.btn:hover{border-color:#5c6d80}.btn-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.btn{font-size:11px;letter-spacing:.04em}.btn.active{border-color:var(--accent);color:var(--accent)}.watchlist-chips{display:flex;flex-wrap:wrap;gap:7px}.watch-chip{font-size:11px;letter-spacing:.06em}.watch-chip span{margin-left:7px;color:#6e7d8c}.monitor-head,.quote-row{display:grid;grid-template-columns:1.3fr 1fr .9fr .9fr 1.1fr;gap:8px;align-items:center}.monitor-head{font-size:9px;letter-spacing:.1em;color:#657382;padding:0 8px 7px;border-bottom:1px solid #202832}.quote-row{padding:9px 8px;border-bottom:1px solid #171e26;font-variant-numeric:tabular-nums}.quote-row:last-child{border-bottom:0}.quote-symbol{font-weight:700;color:#dce6ef;letter-spacing:.05em}.positive{color:#73d49b}.negative{color:#ee7d88}.quote-time{font-size:10px;color:#667584}.panel-phase{color:#79a8d8!important}
/* Phase 5 — chart engine foundation */
/* Phase 6 — core charting (candles/OHLC/timeframe toolbar controls) */
.chart-panel-body{display:flex;flex-direction:column;height:100%;gap:8px}
.chart-toolbar{display:flex;align-items:center;gap:10px;flex:0 0 auto;flex-wrap:wrap}
.chart-toolbar select{background:#121821;border:1px solid #293442;color:#dce6ef;border-radius:6px;padding:6px 8px;font-size:11px;outline:none}
.chart-toolbar select:focus{border-color:#607083}
.chart-hint{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chart-surface{position:relative;flex:1;min-height:0}
.chart-surface canvas{display:block;width:100%;height:100%}
