:root{--warn: #f0b90b;--bg: #0b0e14;--panel: #131722;--panel2: #1a1f2e;--line: #232838;--txt: #d6dbe8;--dim: #6b7488;--up: #16c784;--down: #ea3943;--accent: #4c8dff}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--txt);font:14px/1.4 ui-monospace,SF Mono,Menlo,Consolas,monospace}.app{max-width:1200px;margin:0 auto;padding:24px}.hero{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding:8px 0 20px;border-bottom:1px solid var(--line)}.hero h1{margin:0 0 8px;font-size:26px;letter-spacing:.3px}.tagline{margin:0;color:var(--dim);max-width:640px;font-size:13px}.price-now{text-align:right}.price-now .px{font-size:34px;font-weight:700;color:var(--accent)}.price-now .px-label{color:var(--dim);font-size:12px}.symbol-select{font:inherit;font-size:12px;color:var(--txt);background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:2px 6px;cursor:pointer}.symbol-select:hover{border-color:var(--accent)}.symbol-select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.symbol-select option{background:var(--panel2);color:var(--txt)}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:20px 0}.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px;transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease}.card-value{font-size:20px;font-weight:700}.card-label{color:var(--txt);font-size:12px;margin-top:4px}.card-sub{color:var(--dim);font-size:11px}.grid{display:grid;grid-template-columns:2fr 1fr;gap:16px;align-items:start}.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px}.panel h2{margin:0 0 12px;font-size:13px;color:var(--dim);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.chart{grid-column:1;grid-row:1}.tape{grid-column:1;grid-row:2}.book{grid-column:2;grid-row:1 / span 2}.candles{width:100%;height:220px}.lwchart{width:100%;height:240px}.candles .c-up line,.candles .c-up rect{stroke:var(--up);fill:var(--up)}.candles .c-down line,.candles .c-down rect{stroke:var(--down);fill:var(--down)}.candles line{stroke-width:1}.trend{float:right;font-size:11px;padding:2px 8px;border-radius:6px}.trend.up{background:#16c78426;color:var(--up)}.trend.down{background:#ea394326;color:var(--down)}.trend.flat{background:#232838;color:var(--dim)}.book-meta{font-size:11px;color:var(--dim);margin:-6px 0 8px}.book-colhdr{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:10px;color:var(--dim);text-transform:uppercase;letter-spacing:.5px;padding:0 6px 4px}.book-scroll{max-height:300px;overflow-y:auto;scrollbar-width:thin}.book-scroll::-webkit-scrollbar{width:8px}.book-scroll::-webkit-scrollbar-thumb{background:#2a3350;border-radius:4px}.book-cols{display:grid;grid-template-columns:1fr 1fr;gap:8px}.expand-btn{float:right;cursor:pointer;font:inherit;font-size:11px;color:var(--dim);background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:2px 8px;text-transform:none;letter-spacing:0}.expand-btn:hover{border-color:var(--accent);color:var(--accent)}.book.big .book-scroll{max-height:78vh}.book-row{position:relative;display:flex;justify-content:space-between;padding:2px 6px;font-size:12px}.book-row .depth{position:absolute;top:0;bottom:0;right:0;opacity:.18}.book-row.bid .depth{background:var(--up)}.book-row.ask .depth{background:var(--down)}.book-row.bid .bp{color:var(--up)}.book-row.ask .bp{color:var(--down)}.book-row .bs{color:var(--dim);z-index:1}.book-row .bp{z-index:1}.book-mid{text-align:center;color:var(--accent);margin-top:10px;font-size:12px}.tape-rows{max-height:200px;overflow:hidden}.tape-row{display:grid;grid-template-columns:1fr .6fr 1fr 1fr;gap:8px;padding:2px 4px;font-size:12px}.tape-row.buy{color:var(--up)}.tape-row.sell{color:var(--down)}.tape-row span:first-child{color:var(--dim)}.sources{display:flex;flex-direction:column;gap:10px}.source{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:10px 12px}.source-head{display:flex;align-items:center;gap:8px}.source .venue{color:var(--dim);font-size:11px;margin-left:auto}.source .dot{width:8px;height:8px;border-radius:50%;background:var(--dim)}.source.live .dot{background:var(--up);box-shadow:0 0 8px var(--up)}.source.planned .dot{background:var(--warn)}.source.offline .dot{background:var(--down);box-shadow:0 0 8px var(--down)}.source-stats{display:flex;gap:16px;color:var(--dim);font-size:12px;margin-top:6px}.source.live .source-stats span:first-child{color:var(--txt)}.down-txt{color:var(--down);font-weight:700}.soon{color:var(--dim);font-style:italic}.foot{margin-top:24px;padding-top:16px;border-top:1px solid var(--line);color:var(--dim);font-size:12px;display:flex;align-items:center;gap:8px}.live-dot{width:8px;height:8px;border-radius:50%;background:var(--up);box-shadow:0 0 8px var(--up)}.sep{opacity:.4}@media (max-width: 860px){.cards{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}.book{grid-column:1;grid-row:auto}.hero{flex-direction:column}}.card.clickable{position:relative;cursor:pointer;text-align:left;font:inherit;color:inherit;background:var(--panel);border:1px solid #2b3450;padding-right:34px}.card.clickable:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:0 6px 18px #00000059}.card.clickable:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.card.clickable.open{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.card .chev{position:absolute;top:12px;right:12px;width:15px;height:15px;transition:transform .16s ease}.card .chev polyline{fill:none;stroke:var(--dim);stroke-width:1.6}.card.clickable:hover .chev polyline{stroke:var(--accent)}.card.clickable.open .chev{transform:rotate(180deg)}.card.clickable.open .chev polyline{stroke:var(--accent)}.card .live-dot{display:inline-block;vertical-align:middle}.live-dot.bad{background:var(--down);box-shadow:0 0 8px var(--down)}.live-dot.warn{background:var(--warn);box-shadow:0 0 8px var(--warn)}.components{margin:12px 0 4px}.comp-rows{display:grid;gap:6px}.comp-row{display:grid;grid-template-columns:16px 1.4fr .9fr .8fr .5fr;align-items:center;gap:10px;padding:6px 8px;background:var(--panel2);border:1px solid var(--line);border-radius:8px;font-size:12px}.comp-row .dot{width:8px;height:8px;border-radius:50%}.comp-row .dot.on{background:var(--up);box-shadow:0 0 6px var(--up)}.comp-row .dot.off{background:var(--down)}.comp-name{color:var(--txt)}.comp-kind,.comp-up{color:var(--dim)}.comp-state.ok{color:var(--up)}.comp-state.bad{color:var(--down)}.book.big{position:fixed;inset:4vh 50% auto auto;transform:translate(50%);width:min(680px,92vw);z-index:50;box-shadow:0 20px 60px #0009;border-color:var(--accent)}.latency{margin-top:16px}.lat-group{margin-bottom:12px}.lat-group-h{font-size:11px;color:var(--dim);text-transform:uppercase;letter-spacing:.5px;margin:6px 0}.lat-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}.lat-tile{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:10px 12px}.lat-name{font-size:13px;color:var(--txt);display:flex;align-items:center;gap:6px}.lat-name .tag{font-size:9px;padding:1px 5px;border-radius:4px;text-transform:uppercase;letter-spacing:.3px}.tag.meas{background:#16c78426;color:var(--up)}.tag.est{background:#f0b90b26;color:var(--warn)}.lat-desc{font-size:11px;color:var(--dim);margin:2px 0 8px}.lat-nums{display:flex;gap:14px;align-items:baseline}.lat-nums .v{font-size:17px;font-weight:700}.lat-nums .v.dim{font-size:13px;font-weight:600;color:var(--dim)}.lat-nums .p{font-size:9px;color:var(--dim);font-weight:400;margin-left:3px}.spark{width:100%}.spark.sm{height:22px;margin-top:8px}.spark polyline{fill:none;stroke:var(--accent);stroke-width:1.5}.lat-foot{font-size:11px;color:var(--dim);margin-top:6px;border-top:1px solid var(--line);padding-top:10px}.panel-empty{display:flex;align-items:center;justify-content:center;min-height:120px;padding:24px;color:var(--dim);font-size:13px;text-align:center}.lwchart-wrap{position:relative;height:100%}.lwchart-wrap .panel-empty{position:absolute;top:0;right:0;bottom:0;left:0}.cav{font-size:11px;color:var(--dim);font-weight:400;margin-left:8px}
