:root{--bg: #ece5d3;--panel: #f7f2e4;--panel-alt: #efe9d8;--ink: #16150f;--ink-dim: #6b6555;--line: #16150f;--line-soft: #c9c1ab;--green: #009457;--green-bright: #00c853;--red: #cf2233;--blue: #2456d6;--gold: #c8961e;--font: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, "Courier New", monospace}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:12px;-webkit-font-smoothing:antialiased}#root{min-height:100vh}.dashboard{max-width:1400px;margin:0 auto;padding:8px 10px 24px;display:grid;grid-template-columns:repeat(12,1fr);gap:8px}.panel{background:var(--panel);border:1.5px solid var(--line);box-shadow:3px 3px #16150f2e;display:flex;flex-direction:column;min-width:0}.panel-title{display:flex;justify-content:space-between;align-items:center;padding:5px 9px;border-bottom:1.5px solid var(--line);font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:var(--panel-alt)}.panel-body{padding:8px 9px;flex:1;min-height:0}.s3{grid-column:span 3}.s4{grid-column:span 4}.s5{grid-column:span 5}.s6{grid-column:span 6}.s7{grid-column:span 7}.s8{grid-column:span 8}.s12{grid-column:span 12}@media(max-width:1000px){.s3,.s4,.s5,.s6,.s7,.s8{grid-column:span 12}}.green{color:var(--green)}.red{color:var(--red)}.blue{color:var(--blue)}.gold{color:var(--gold)}.dim{color:var(--ink-dim)}.badge{display:inline-block;padding:2px 7px;font-size:10px;font-weight:700;letter-spacing:.08em;border:1.5px solid var(--line)}.badge.live{background:var(--red);color:#fff;border-color:var(--red)}.badge.paper{background:var(--blue);color:#fff;border-color:var(--blue)}.badge.verified{background:var(--green);color:#fff;border-color:var(--green)}.badge.warn{background:var(--gold);color:#fff;border-color:var(--gold)}.header{grid-column:span 12;display:flex;align-items:center;gap:14px;padding:8px 12px;background:var(--panel);border:1.5px solid var(--line);box-shadow:3px 3px #16150f2e;flex-wrap:wrap}.header .logo{font-size:16px;font-weight:800;letter-spacing:.06em}.header .sub{font-size:10px;color:var(--ink-dim);letter-spacing:.1em}.header .spacer{flex:1}.header .clock{font-size:15px;font-weight:700}.tickerstrip{grid-column:span 12;display:flex;gap:0;border:1.5px solid var(--line);background:var(--ink);color:#e8e2cf;overflow-x:auto;font-size:11px}.tickerstrip .cell{padding:5px 12px;border-right:1px solid #3a382d;white-space:nowrap;display:flex;gap:8px;align-items:center}.bignum{font-size:30px;font-weight:800;letter-spacing:-.01em}.mednum{font-size:17px;font-weight:700}.kv-row{display:flex;justify-content:space-between;padding:3px 0;font-size:11.5px}.kv-row .k{color:var(--ink-dim);text-transform:uppercase;font-size:10px;letter-spacing:.06em}.bar-outer{height:10px;border:1px solid var(--line);background:var(--panel-alt);position:relative;overflow:hidden}.bar-inner{height:100%;background:var(--green);transition:width .6s ease}.ladder{display:flex;flex-direction:column;gap:3px;margin-top:6px;max-height:190px;overflow-y:auto}.ladder-row{display:flex;align-items:center;gap:7px;font-size:10.5px;padding:2px 4px}.ladder-row.reached{background:#0094571f}.ladder-row.current{background:#c8961e2e;border:1px dashed var(--gold)}.ladder-dot{width:8px;height:8px;border-radius:50%;border:1.5px solid var(--line);background:transparent;flex-shrink:0}.ladder-row.reached .ladder-dot{background:var(--green);border-color:var(--green)}.pipeline{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.stage{border:1.5px solid var(--line-soft);padding:6px 8px;background:var(--panel-alt);color:var(--ink-dim);font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:capitalize}.stage .idx{font-size:9px;display:block;color:var(--ink-dim)}.stage.active{background:var(--red);border-color:var(--line);color:#fff;box-shadow:2px 2px #16150f4d}.stage.active .idx{color:#ffffffbf}.stage.done{border-color:var(--line);color:var(--ink)}.feed{overflow-y:auto;max-height:340px;display:flex;flex-direction:column;gap:2px;font-size:11px}.feed-row{display:flex;gap:8px;padding:3px 5px;border-bottom:1px dotted var(--line-soft);align-items:baseline}.feed-row .t{color:var(--ink-dim);font-size:10px;flex-shrink:0}.feed-row .sym{font-weight:700;width:74px;flex-shrink:0}.feed-row .verdict{font-weight:800;font-size:10px;padding:1px 5px;flex-shrink:0;border:1px solid currentColor}.feed-row .verdict.ENTER{color:#fff;background:var(--green);border-color:var(--green)}.feed-row .verdict.EXIT{color:#fff;background:var(--red);border-color:var(--red)}.feed-row .verdict.SKIP{color:var(--gold)}.feed-row .verdict.HOLD{color:var(--blue)}.feed-row .verdict.INFO{color:var(--ink-dim)}.feed-row .reason{flex:1;min-width:0}.feed-row .z{color:var(--ink-dim);font-size:10px;flex-shrink:0}.table{width:100%;border-collapse:collapse;font-size:11px}.table th{text-align:left;font-size:9.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-dim);border-bottom:1.5px solid var(--line);padding:3px 6px}.table td{padding:3px 6px;border-bottom:1px dotted var(--line-soft)}.table .chip{font-weight:800;font-size:9.5px;padding:1px 5px;color:#fff}.table .chip.buy{background:var(--green)}.table .chip.sell{background:var(--red)}.chart-tabs{display:flex;gap:4px}.chart-tabs button{font-family:var(--font);font-size:10px;font-weight:700;padding:2px 8px;border:1.5px solid var(--line);background:var(--panel);cursor:pointer}.chart-tabs button.on{background:var(--ink);color:var(--panel)}.chart-box{width:100%;height:260px}.chart-box.tall{height:220px}.statgrid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.statcell{border:1px solid var(--line-soft);padding:6px 8px;background:var(--panel-alt)}.statcell .lbl{font-size:9.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-dim)}.statcell .val{font-size:16px;font-weight:800;margin-top:2px}.conn-dot{width:8px;height:8px;border-radius:50%;background:var(--red);display:inline-block}.conn-dot.on{background:var(--green-bright)}.toggle-switch{font-family:var(--font);font-size:10px;font-weight:700;letter-spacing:.08em;padding:3px 9px;border:1.5px solid var(--line);background:var(--panel-alt);color:var(--ink-dim);cursor:pointer}.toggle-switch.on{background:var(--green);border-color:var(--green);color:#fff}.scroll-y{overflow-y:auto;max-height:300px}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-panel{width:min(360px,100%)}.login-body{padding:16px 14px 18px;display:flex;flex-direction:column;gap:10px}.login-lead{margin:0;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-dim)}.login-label{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.login-input{font-family:var(--font);font-size:14px;padding:8px 10px;border:1.5px solid var(--line);background:#fff}.login-input:focus{outline:2px solid var(--blue);outline-offset:1px}.login-error{margin:0;color:var(--red);font-size:11px}.login-btn,.logout-btn{font-family:var(--font);font-size:11px;font-weight:700;letter-spacing:.08em;padding:8px 12px;border:1.5px solid var(--line);background:var(--ink);color:var(--panel);cursor:pointer}.login-btn:disabled{opacity:.5;cursor:not-allowed}.logout-btn{background:var(--panel-alt);color:var(--ink-dim);padding:3px 8px;font-size:10px}
