:root{
  /* МОНОХРОМ, data-first: нейтральный обсидиан + одна сдержанная пара up/dn +
     единственный teal-акцент (только для выбранного/активного). Всё остальное —
     оттенки серого; сигналы кодируются текстом/весом/интенсивностью, не цветом. */
  --bg:#0a0b0e;--panel:#111318;--panel2:#0d0f13;--panel3:#141720;--panel4:#0f1218;
  --line:rgba(255,255,255,.10);--line2:rgba(255,255,255,.055);--text:#f2f4f7;--muted:#98a0ab;
  --up:#3ecf8f;--dn:#ec5f6b;--warn:#c9a24b;--info:#3ecf8f;--hot:#98a0ab;--violet:#98a0ab;--sel:rgba(62,207,143,.12)
}
*{box-sizing:border-box;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
html,body{height:100%}body{margin:0;background:var(--bg);color:var(--text);overflow:hidden}
:root{scrollbar-width:thin;scrollbar-color:rgba(62,207,143,.32) rgba(255,255,255,.03)}
*::-webkit-scrollbar{width:8px;height:8px}
*::-webkit-scrollbar-track{background:rgba(255,255,255,.025);border-radius:999px}
*::-webkit-scrollbar-thumb{background:rgba(62,207,143,.32);border-radius:999px;border:2px solid rgba(6,11,20,.85)}
*::-webkit-scrollbar-thumb:hover{background:rgba(62,207,143,.5)}
*::-webkit-scrollbar-corner{background:transparent}
/* Цены/объёмы — табличное начертание, чтобы колонки не "прыгали" по ширине
   при live-обновлении, как на биржевых терминалах. */
.summary-card b{font-variant-numeric:tabular-nums}
button,select,input{font:inherit}
.app-shell{height:100vh;display:grid;grid-template-rows:auto auto auto 1fr;overflow:hidden;background:radial-gradient(circle at 30% 0%,rgba(62,207,143,.08),transparent 28%),var(--bg)}
.topbar{height:64px;display:grid;grid-template-columns:270px 1fr auto;align-items:center;gap:14px;padding:10px 14px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#0d172a,#07101d)}
.brand{display:flex;align-items:center;gap:10px;min-width:0}.brand-mark{width:30px;height:30px;display:block;filter:drop-shadow(0 1px 4px rgba(0,0,0,.5))}.brand-title{font-weight:850;letter-spacing:.2px}.version{font-size:11px;color:var(--info);border:1px solid rgba(62,207,143,.35);border-radius:999px;padding:1px 6px;margin-left:5px}.brand-subtitle{font-size:11px;color:var(--muted);margin-top:1px;text-transform:uppercase;letter-spacing:.8px}
.summary-strip{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:8px;min-width:0}.summary-card{border:1px solid var(--line);border-radius:12px;background:rgba(15,23,42,.58);padding:7px 10px;min-width:0}.summary-card span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.6px}.summary-card b{display:block;margin-top:2px;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.summary-card .up{color:var(--up)}.summary-card .dn{color:var(--dn)}
.status-strip{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.status-item{border:1px solid var(--line);background:rgba(15,23,42,.65);border-radius:999px;padding:6px 9px}.status-item b{color:var(--text)}
.status-badge{border:1px solid var(--line);border-radius:999px;padding:6px 10px;text-transform:uppercase;font-weight:850;font-size:11px;letter-spacing:.5px;background:rgba(148,163,184,.10);color:var(--muted)}.status-badge[data-status="connecting"],.status-badge[data-status="reconnecting"]{color:var(--warn);border-color:rgba(245,158,11,.45);background:rgba(245,158,11,.10)}.status-badge[data-status="live"]{color:var(--up);border-color:rgba(34,197,94,.45);background:rgba(34,197,94,.10)}.status-badge[data-status="error"]{color:var(--dn);border-color:rgba(239,68,68,.45);background:rgba(239,68,68,.10)}
.error-box{padding:8px 14px;border-bottom:1px solid rgba(239,68,68,.25);background:rgba(239,68,68,.10);color:#fecaca;font-size:12px}.workspacebar{min-height:50px;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:8px 14px;border-bottom:1px solid var(--line);background:rgba(7,14,26,.92)}.workspace-left,.workspace-right,.preset-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.preset-bar{justify-content:center;min-width:0}
.app{display:grid;grid-template-columns:minmax(455px,28vw) minmax(0,1fr) minmax(360px,22vw);min-height:0;overflow:hidden}.col{overflow:auto;min-height:0;min-width:0}.left{border-right:1px solid var(--line);padding:10px;background:rgba(10,18,32,.96)}.right{border-left:1px solid var(--line);padding:10px;background:rgba(10,18,32,.96)}.center{padding:10px;background:transparent;overflow:auto;min-width:0}
.block{padding-bottom:10px;margin-bottom:10px;border-bottom:1px solid var(--line)}.block:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}.control-row{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.control{display:inline-flex;gap:7px;align-items:center}.control.compact select{max-width:170px}.mt-10{margin-top:10px}
.input,select{background:rgba(15,23,42,.84);border:1px solid rgba(148,163,184,.25);color:var(--text);border-radius:9px;padding:8px 10px;outline:none}.input{width:100%}.input:focus,select:focus{border-color:rgba(62,207,143,.70);box-shadow:0 0 0 3px rgba(62,207,143,.10)}.label{font-size:12px;opacity:.75}.small{font-size:12px;color:var(--muted);margin-bottom:8px}.accent{color:var(--info)}
.btn,.preset-btn,.watch-btn{border:1px solid rgba(148,163,184,.24);background:rgba(15,23,42,.8);color:var(--text);border-radius:10px;padding:8px 11px;cursor:pointer}.btn:hover,.preset-btn:hover,.watch-btn:hover{border-color:rgba(62,207,143,.5);background:rgba(17,28,51,.95)}.btn.ghost{color:var(--muted)}.btn.hot{border-color:rgba(249,115,22,.35);color:#fed7aa;background:rgba(249,115,22,.10)}.preset-btn{font-size:12px;padding:7px 10px;border-radius:999px;color:var(--muted)}.preset-btn.active{color:var(--text);border-color:rgba(62,207,143,.65);background:rgba(62,207,143,.14);box-shadow:0 0 18px rgba(62,207,143,.08)}
.pill{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(148,163,184,.25);border-radius:999px;padding:6px 9px;background:rgba(15,23,42,.8);font-size:12px;color:var(--text)}.table-title{display:flex;justify-content:space-between;align-items:center;gap:10px}.table-empty{padding:24px 8px;color:var(--muted);text-align:center}
table{width:100%;border-collapse:collapse;font-size:12px}thead th{position:sticky;top:0;z-index:1;background:var(--panel2);text-align:left;padding:9px 6px;border-bottom:1px solid var(--line);color:var(--muted);font-weight:800}tbody td{padding:7px 6px;border-bottom:1px solid rgba(148,163,184,.09);white-space:nowrap}tbody tr:hover{background:rgba(148,163,184,.08);cursor:pointer}tbody tr.sel{background:var(--sel)}.sym-cell{display:flex;align-items:center;gap:6px}.star-mini{color:var(--warn);font-size:12px}.watch-toggle{padding:3px 6px;border-radius:7px;background:transparent;border:1px solid transparent;color:var(--muted);cursor:pointer}.watch-toggle.active{color:var(--warn);border-color:rgba(245,158,11,.25);background:rgba(245,158,11,.08)}
.pct.up,.move.up{color:var(--up);font-weight:750}.pct.dn,.move.dn{color:var(--dn);font-weight:750}.metric-muted{color:var(--muted)}.score{font-weight:850}.score.hot-score{color:#fed7aa}.badge{display:inline-flex;align-items:center;justify-content:center;min-width:42px;padding:4px 7px;border-radius:999px;border:1px solid var(--line);font-size:10px;font-weight:850;letter-spacing:.5px}.badge.HOT{color:#fed7aa;border-color:rgba(249,115,22,.45);background:rgba(249,115,22,.14)}.badge.UP{color:#bbf7d0;border-color:rgba(34,197,94,.45);background:rgba(34,197,94,.12)}.badge.DOWN{color:#fecaca;border-color:rgba(239,68,68,.45);background:rgba(239,68,68,.12)}.badge.SPIKE{color:#bfdbfe;border-color:rgba(59,130,246,.45);background:rgba(59,130,246,.12)}.badge.LIQUID{color:#ddd6fe;border-color:rgba(167,139,250,.45);background:rgba(167,139,250,.12)}.badge.WATCH{color:#fde68a;border-color:rgba(245,158,11,.45);background:rgba(245,158,11,.12)}.badge.STALE{color:#cbd5e1;background:rgba(148,163,184,.08)}.pattern{color:var(--muted);font-size:11px}.pattern.hot-pattern{color:var(--info)}
.grid{display:grid;grid-template-columns:repeat(var(--tile-cols,3),minmax(0,1fr));gap:10px;align-items:start;min-width:0;width:100%}.tile{border:1px solid rgba(148,163,184,.18);border-radius:15px;overflow:hidden;background:linear-gradient(180deg,rgba(15,23,42,.80),rgba(10,18,32,.64));cursor:pointer;min-width:0}.tile:hover{border-color:rgba(62,207,143,.48);background:rgba(15,23,42,.82)}.tile.sel{border-color:rgba(62,207,143,.85)}.tile-head{display:grid;grid-template-columns:1fr auto;gap:8px;padding:8px 10px;border-bottom:1px solid rgba(148,163,184,.12)}.tile-symbol{font-weight:850;letter-spacing:.2px;overflow:hidden;text-overflow:ellipsis}.tile-sub{margin-top:4px;display:flex;gap:7px;align-items:center;color:var(--muted);font-size:11px}.tile-metrics{display:flex;gap:8px;font-size:12px;white-space:nowrap;min-width:0;overflow:hidden}.chart-box{height:145px;min-width:0}.tile-footer{display:flex;justify-content:space-between;gap:8px;padding:7px 10px;border-top:1px solid rgba(148,163,184,.08);font-size:11px;color:var(--muted);min-width:0;overflow:hidden}.tile-footer span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.big-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}.big-title{margin:0 0 4px 0}.watch-btn{font-size:18px;width:38px;height:34px;padding:0;color:var(--muted)}.watch-btn.active{color:var(--warn);border-color:rgba(245,158,11,.35);background:rgba(245,158,11,.10)}.selected-panel{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:10px}.selected-kpi{border:1px solid var(--line);border-radius:12px;padding:8px 10px;background:rgba(15,23,42,.55)}.selected-kpi span{display:block;font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.selected-kpi b{display:block;margin-top:3px;font-size:13px}.big-chart{height:500px;border:1px solid var(--line2);border-radius:15px;overflow:hidden;background:rgba(15,23,42,.35)}
.grid[data-cols="1"] .chart-box{height:280px}
.grid[data-cols="2"] .chart-box{height:220px}
.grid[data-cols="3"] .chart-box{height:165px}
.grid[data-cols="4"] .chart-box{height:132px}
.grid[data-cols="5"] .chart-box,.grid[data-cols="6"] .chart-box{height:108px}
.grid[data-cols="4"] .tile-head,.grid[data-cols="5"] .tile-head,.grid[data-cols="6"] .tile-head{padding:7px 8px}
.grid[data-cols="4"] .tile-footer,.grid[data-cols="5"] .tile-footer,.grid[data-cols="6"] .tile-footer{padding:6px 8px;font-size:10px}
.grid[data-cols="4"] .tile-metrics,.grid[data-cols="5"] .tile-metrics,.grid[data-cols="6"] .tile-metrics{gap:6px;font-size:11px}
.grid[data-cols="5"] .tile-sub,.grid[data-cols="6"] .tile-sub{font-size:10px;gap:5px}
.grid[data-cols="5"] .badge,.grid[data-cols="6"] .badge{min-width:34px;padding:3px 6px;font-size:9px}
@media (max-width:1500px){.app{grid-template-columns:minmax(430px,30vw) minmax(0,1fr) minmax(350px,24vw)}.summary-strip{grid-template-columns:repeat(2,minmax(120px,1fr))}.topbar{height:82px}}
@media (max-width:1200px){.app{grid-template-columns:420px 1fr;grid-template-areas:"left center" "right right"}.left{grid-area:left}.center{grid-area:center}.right{grid-area:right;border-left:0;border-top:1px solid var(--line)}.workspacebar{grid-template-columns:1fr}.workspace-left,.workspace-right,.preset-bar{justify-content:flex-start}.topbar{grid-template-columns:1fr}.summary-strip{display:none}.status-strip{justify-content:flex-start}}
/* v3 derivatives layer */
.summary-strip{grid-template-columns:repeat(6,minmax(110px,1fr))}
.badge.SQUEEZE{color:#fef3c7;border-color:rgba(245,158,11,.70);background:linear-gradient(90deg,rgba(245,158,11,.22),rgba(249,115,22,.18));box-shadow:0 0 24px rgba(245,158,11,.10)}
.badge.OI{color:#bae6fd;border-color:rgba(62,207,143,.55);background:rgba(62,207,143,.14)}
.badge.FUNDING{color:#fbcfe8;border-color:rgba(236,72,153,.50);background:rgba(236,72,153,.13)}
.badge.LIQ{color:#fecaca;border-color:rgba(239,68,68,.50);background:rgba(239,68,68,.13)}
.badge.UNWIND{color:#cbd5e1;border-color:rgba(148,163,184,.35);background:rgba(148,163,184,.10)}
.deriv-badge{display:inline-flex;align-items:center;justify-content:center;min-width:38px;padding:3px 7px;border-radius:999px;border:1px solid rgba(148,163,184,.22);font-size:10px;font-weight:850;letter-spacing:.45px;color:var(--muted);background:rgba(148,163,184,.08);white-space:nowrap}.deriv-badge.SQUEEZE{color:#fef3c7;border-color:rgba(245,158,11,.60);background:rgba(245,158,11,.16)}.deriv-badge.OI{color:#bae6fd;border-color:rgba(62,207,143,.50);background:rgba(62,207,143,.13)}.deriv-badge.FUNDING{color:#fbcfe8;border-color:rgba(236,72,153,.46);background:rgba(236,72,153,.12)}.deriv-badge.LIQ{color:#fecaca;border-color:rgba(239,68,68,.45);background:rgba(239,68,68,.12)}.deriv-badge.UNWIND{color:#cbd5e1}.deriv-badge.NONE{opacity:.65}.deriv-num.up,.selected-kpi .up{color:var(--up);font-weight:800}.deriv-num.dn,.selected-kpi .dn{color:var(--dn);font-weight:800}.tile-deriv{color:var(--muted);font-size:11px}.tile-deriv.SQUEEZE{color:#fbbf24}.tile-deriv.OI{color:var(--info)}.tile-deriv.FUNDING{color:#f9a8d4}.tile-deriv.LIQ{color:#fca5a5}.tile-deriv-line{display:flex;gap:8px;min-width:0;overflow:hidden;white-space:nowrap;color:var(--muted)}.tile-deriv-line span{min-width:0;overflow:hidden;text-overflow:ellipsis}.selected-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.selected-kpi.wide{grid-column:span 2}.selected-kpi em{font-style:normal;font-size:10px;color:var(--muted);margin-left:4px}.left table{font-size:11px}.left thead th,.left tbody td{padding-left:5px;padding-right:5px}.left{overflow:auto}.block-table{overflow:auto}
@media (max-width:1650px){.summary-strip{grid-template-columns:repeat(3,minmax(120px,1fr))}.topbar{height:86px}}
@media (max-width:1350px){.summary-strip{grid-template-columns:repeat(2,minmax(120px,1fr))}.topbar{height:104px}}

/* v3.1 data-mode + compact/full table polish */
.data-badge{border:1px solid rgba(245,158,11,.45);border-radius:999px;padding:6px 10px;text-transform:uppercase;font-weight:850;font-size:11px;letter-spacing:.5px;background:rgba(245,158,11,.12);color:#fde68a;white-space:nowrap}.data-badge[data-mode="real"]{color:var(--up);border-color:rgba(34,197,94,.45);background:rgba(34,197,94,.10)}
.workspace-left{flex-wrap:wrap}.workspace-left .control.compact select{max-width:140px}.workspace-left #workspaceSelect{max-width:160px}.workspace-left #exchange{max-width:130px}.workspace-left #tableMode{max-width:115px}
body[data-table-mode="compact"] .left table{font-size:11.5px}body[data-table-mode="compact"] .left thead th,body[data-table-mode="compact"] .left tbody td{padding-left:6px;padding-right:6px}.status-badge{white-space:nowrap}.selected-kpi.wide .deriv-badge{width:100%;justify-content:flex-start;padding-left:10px}
@media (max-width:1650px){.workspacebar{grid-template-columns:1fr}.workspace-left,.workspace-right,.preset-bar{justify-content:flex-start}.preset-bar{order:3}.workspace-right{order:2}}


/* v4 order-flow / density layer */
.summary-strip{grid-template-columns:repeat(7,minmax(105px,1fr))}
.badge.BIDWALL,.badge.ASKWALL,.badge.DENSITY{color:#ccfbf1;border-color:rgba(45,212,191,.52);background:rgba(20,184,166,.13)}
.badge.TAPE{color:#bfdbfe;border-color:rgba(59,130,246,.50);background:rgba(59,130,246,.13)}
.badge.ABSORB{color:#fde68a;border-color:rgba(245,158,11,.62);background:rgba(245,158,11,.16)}
.badge.PULL{color:#fecaca;border-color:rgba(239,68,68,.50);background:rgba(239,68,68,.13)}
.badge.WIDE{color:#cbd5e1;border-color:rgba(148,163,184,.40);background:rgba(148,163,184,.10)}
.flow-badge{display:inline-flex;align-items:center;justify-content:center;min-width:38px;padding:3px 7px;border-radius:999px;border:1px solid rgba(148,163,184,.22);font-size:10px;font-weight:850;letter-spacing:.45px;color:var(--muted);background:rgba(148,163,184,.08);white-space:nowrap}.flow-badge.BIDWALL,.flow-badge.ASKWALL,.flow-badge.DENSITY{color:#99f6e4;border-color:rgba(45,212,191,.45);background:rgba(20,184,166,.12)}.flow-badge.TAPE{color:#bfdbfe;border-color:rgba(59,130,246,.45);background:rgba(59,130,246,.12)}.flow-badge.ABSORB{color:#fde68a;border-color:rgba(245,158,11,.55);background:rgba(245,158,11,.14)}.flow-badge.PULL{color:#fecaca;border-color:rgba(239,68,68,.45);background:rgba(239,68,68,.12)}.flow-badge.WIDE{color:#cbd5e1}.flow-badge.NONE{opacity:.65}.tile-flow{color:var(--muted);font-size:11px}.tile-flow.BIDWALL,.tile-flow.ASKWALL,.tile-flow.DENSITY{color:#5eead4}.tile-flow.TAPE{color:#93c5fd}.tile-flow.ABSORB{color:#fbbf24}.tile-flow.PULL{color:#fca5a5}
@media (max-width:1650px){.summary-strip{grid-template-columns:repeat(4,minmax(120px,1fr))}}
@media (max-width:1350px){.summary-strip{grid-template-columns:repeat(2,minmax(120px,1fr))}}

/* v4.1 selected panel polish: grouped diagnostics + visual liquidity bars */
.selected-panel{display:block;margin-bottom:10px}
.selected-section{border:1px solid rgba(148,163,184,.16);border-radius:14px;background:linear-gradient(180deg,rgba(15,23,42,.68),rgba(11,18,32,.52));padding:10px;margin-bottom:9px;overflow:hidden}
.selected-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:8px;color:var(--text)}
.selected-section-title b{font-size:12px;letter-spacing:.35px;text-transform:uppercase}.selected-section-title span{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.selected-kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.selected-kpi-grid.tight .selected-kpi{padding:7px 9px;min-width:0}.selected-kpi-grid .selected-kpi.wide{grid-column:span 2}.selected-kpi{min-width:0}.selected-kpi b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selected-kpi .badge,.selected-kpi .deriv-badge,.selected-kpi .flow-badge{width:100%;justify-content:flex-start;min-width:0}.reason-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.reason-chip{display:inline-flex;align-items:center;gap:5px;border:1px solid rgba(148,163,184,.18);background:rgba(148,163,184,.08);border-radius:999px;padding:5px 8px;font-size:10px;color:var(--muted);font-weight:700}.reason-chip b{color:var(--text);font-weight:850}.reason-chip.up{border-color:rgba(34,197,94,.35);background:rgba(34,197,94,.08);color:#bbf7d0}.reason-chip.dn{border-color:rgba(239,68,68,.35);background:rgba(239,68,68,.08);color:#fecaca}.reason-chip.SPIKE,.reason-chip.TAPE{border-color:rgba(59,130,246,.35);background:rgba(59,130,246,.10);color:#bfdbfe}.reason-chip.ABSORB,.reason-chip.SQUEEZE{border-color:rgba(245,158,11,.38);background:rgba(245,158,11,.10);color:#fde68a}.reason-muted{font-size:11px;color:var(--muted)}
.microbar{display:grid;grid-template-columns:82px minmax(0,1fr) 64px;align-items:center;gap:8px;margin-top:8px;font-size:10px;color:var(--muted)}.microbar-track{height:7px;border-radius:999px;background:rgba(148,163,184,.10);overflow:hidden;position:relative}.microbar-track:before{content:"";position:absolute;inset:0;border:1px solid rgba(148,163,184,.10);border-radius:999px}.microbar-track i{display:block;height:100%;border-radius:999px;background:rgba(62,207,143,.45)}.microbar-track i.up{background:linear-gradient(90deg,rgba(34,197,94,.25),rgba(34,197,94,.85))}.microbar-track i.dn{background:linear-gradient(90deg,rgba(239,68,68,.25),rgba(239,68,68,.85))}.microbar b{text-align:right;font-size:10px}.microbar b.up{color:var(--up)}.microbar b.dn{color:var(--dn)}
.wall-visual{margin-top:8px;border:1px solid rgba(148,163,184,.12);background:rgba(2,6,23,.25);border-radius:12px;padding:8px}.wall-labels,.wall-distances{display:flex;justify-content:space-between;gap:8px;font-size:10px;color:var(--muted)}.wall-labels span,.wall-distances span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wallbar{display:flex;height:9px;border-radius:999px;overflow:hidden;margin:7px 0;background:rgba(148,163,184,.10)}.wallbar .bid{background:linear-gradient(90deg,rgba(34,197,94,.25),rgba(34,197,94,.82))}.wallbar .ask{background:linear-gradient(90deg,rgba(239,68,68,.82),rgba(239,68,68,.25))}.setup-section{border-color:rgba(62,207,143,.18)}.derivatives-section{border-color:rgba(167,139,250,.16)}.flow-section{border-color:rgba(45,212,191,.16)}.context-section{border-color:rgba(148,163,184,.12)}
.right{scrollbar-width:thin}.big-chart{height:430px}.topbar .brand-title .version{background:rgba(62,207,143,.16);border-color:rgba(62,207,143,.45)}
@media (max-height:900px){.selected-section{padding:8px;margin-bottom:7px}.selected-kpi-grid.tight .selected-kpi{padding:6px 8px}.big-chart{height:360px}.microbar{margin-top:6px}.wall-visual{padding:7px;margin-top:6px}}
@media (max-width:1500px){.selected-section-title{display:block}.selected-section-title span{display:block;margin-top:2px}.selected-kpi-grid{grid-template-columns:1fr}.selected-kpi-grid .selected-kpi.wide{grid-column:auto}.microbar{grid-template-columns:70px minmax(0,1fr) 58px}}

/* v4.2 focus chart overlay */
.right-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.btn.primary{border-color:rgba(62,207,143,.55);background:rgba(62,207,143,.14);color:#e0f2fe;font-weight:800}.btn.primary:hover{background:rgba(62,207,143,.22)}
.chart-overlay[hidden]{display:none!important}.chart-overlay{position:fixed;inset:0;z-index:50;background:rgba(2,6,23,.82);backdrop-filter:blur(8px);padding:18px;display:flex;align-items:stretch;justify-content:center}.chart-modal{width:min(1680px,100%);height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#08111f;border:1px solid rgba(148,163,184,.24);border-radius:18px;box-shadow:0 30px 90px rgba(0,0,0,.55);overflow:hidden}.chart-modal-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border-bottom:1px solid rgba(148,163,184,.16);background:linear-gradient(180deg,rgba(15,23,42,.98),rgba(9,17,31,.98))}.chart-modal-title{font-size:18px;font-weight:900;letter-spacing:.2px}.chart-modal-meta{font-size:12px;color:var(--muted);margin-top:3px}.chart-modal-controls{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.overlay-badges{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.focus-chart{min-height:0;background:#0b1220}.chart-modal-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 14px;border-top:1px solid rgba(148,163,184,.14);font-size:11px;color:var(--muted);background:rgba(15,23,42,.75)}body.focus-open{overflow:hidden}.selected-panel{padding-bottom:14px}.big-header{position:sticky;top:0;z-index:3;background:var(--panel2);padding-bottom:8px}.selected-actions-note{border:1px solid rgba(62,207,143,.18);background:rgba(62,207,143,.08);border-radius:12px;padding:10px 12px;color:var(--muted);font-size:12px;line-height:1.45}.selected-actions-note b{color:#e0f2fe}
@media (max-width:900px){.chart-overlay{padding:8px}.chart-modal-header{align-items:flex-start;flex-direction:column}.chart-modal-controls{justify-content:flex-start}.chart-modal-footer{display:none}}

/* v5.2 explicit chart price overlay */
.chart-host{position:relative;overflow:hidden}
.manual-price-line{position:absolute;left:0;right:0;height:0;border-top:1px dashed rgba(62,207,143,.95);z-index:8;pointer-events:none;filter:drop-shadow(0 0 4px rgba(62,207,143,.35))}
.manual-price-label{position:absolute;right:6px;transform:translateY(-50%);z-index:9;pointer-events:none;background:#3ecf8f;color:#06111f;border:1px solid rgba(255,255,255,.35);border-radius:7px;padding:3px 7px;font-size:12px;font-weight:900;letter-spacing:.1px;box-shadow:0 6px 18px rgba(62,207,143,.28)}
.manual-price-label.compact{right:4px;padding:2px 5px;font-size:10px;border-radius:6px;max-width:74px;overflow:hidden;text-overflow:ellipsis}
.chart-box{padding-right:46px;background:rgba(3,7,18,.16)}
.focus-chart{padding-right:72px;background:#0b1220}
.grid[data-cols="4"] .chart-box,.grid[data-cols="5"] .chart-box,.grid[data-cols="6"] .chart-box{padding-right:40px}

/* v5.5 layout density + resizable panels */
:root{--left-w:380px;--right-w:320px}
.app{grid-template-columns:var(--left-w) 6px minmax(0,1fr) 6px var(--right-w)}
.splitter{min-width:6px;width:6px;cursor:col-resize;background:linear-gradient(180deg,transparent,rgba(148,163,184,.18),transparent);border-left:1px solid rgba(148,163,184,.10);border-right:1px solid rgba(148,163,184,.06);z-index:5}
.splitter:hover,.resizing-panels .splitter{background:rgba(62,207,143,.18);border-color:rgba(62,207,143,.35)}
.resizing-panels{user-select:none;cursor:col-resize}
.left{padding:8px}.right{padding:8px}.center{padding:8px}.block{padding-bottom:8px;margin-bottom:8px}.input,select{padding:7px 9px}.pill{padding:5px 8px}.control-row{gap:7px}
body[data-table-mode="slim"] .left table{font-size:11px}body[data-table-mode="slim"] .left thead th,body[data-table-mode="slim"] .left tbody td{padding:6px 5px}
body[data-table-mode="slim"] .left th:nth-child(3),body[data-table-mode="slim"] .left td:nth-child(3){text-align:right}

/* v5.5 compact tiles: badges stop eating half of each card */
.tile{position:relative}.tile-head{display:block;position:relative;min-height:46px;padding:7px 9px 5px;border-bottom:1px solid rgba(148,163,184,.10)}
.tile-symbol{font-size:16px;line-height:1.05;padding-right:76px;white-space:nowrap}.tile-sub{margin-top:3px;gap:5px;white-space:nowrap;overflow:hidden;min-width:0}.tile-sub span{min-width:0;max-width:76px;overflow:hidden;text-overflow:ellipsis}.tile-sub .tile-flow,.tile-sub .tile-deriv{font-size:10px}.tile-head>.badge{position:absolute!important;top:7px!important;right:8px!important;width:auto!important;height:auto!important;min-width:0!important;max-width:72px!important;aspect-ratio:auto!important;padding:3px 7px!important;border-radius:999px!important;font-size:9px!important;line-height:1.05!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;box-shadow:none!important}.tile-head>.badge:empty{display:none}
.tile-footer{display:block;padding:5px 8px 6px;font-size:10px}.tile-metrics{gap:7px;font-size:11px}.tile-deriv-line{display:none}.chart-box{padding-right:48px}.grid{gap:8px}.grid[data-cols="2"] .chart-box{height:245px}.grid[data-cols="3"] .chart-box{height:198px}.grid[data-cols="4"] .chart-box{height:162px}.grid[data-cols="5"] .chart-box,.grid[data-cols="6"] .chart-box{height:126px}.grid[data-cols="4"] .tile-symbol,.grid[data-cols="5"] .tile-symbol,.grid[data-cols="6"] .tile-symbol{font-size:15px}.grid[data-cols="4"] .tile-head,.grid[data-cols="5"] .tile-head,.grid[data-cols="6"] .tile-head{min-height:42px;padding:6px 8px 4px}.grid[data-cols="4"] .tile-head>.badge,.grid[data-cols="5"] .tile-head>.badge,.grid[data-cols="6"] .tile-head>.badge{top:6px!important;right:6px!important;font-size:8px!important;max-width:58px!important;padding:3px 6px!important}
.manual-price-label.compact{font-size:10px;max-width:68px}.grid[data-cols="4"] .chart-box,.grid[data-cols="5"] .chart-box,.grid[data-cols="6"] .chart-box{padding-right:42px}

/* v5.5 right diagnostics: smaller but still readable */
.big-header{margin-bottom:6px}.big-title{font-size:16px}.right-actions{gap:6px}.right-actions .btn{padding:7px 9px}.watch-btn{width:34px;height:32px}.selected-section{padding:8px;margin-bottom:7px;border-radius:12px}.selected-section-title{margin-bottom:6px}.selected-section-title b{font-size:11px}.selected-section-title span{font-size:9px}.selected-kpi-grid.tight{gap:6px}.selected-kpi-grid.tight .selected-kpi{padding:6px 7px}.selected-kpi span{font-size:9px}.selected-kpi b{font-size:12px}.reason-row{gap:4px;max-height:48px;overflow:hidden}.reason-chip{padding:4px 6px;font-size:9px}.microbar{grid-template-columns:62px minmax(0,1fr) 50px;gap:6px;margin-top:6px}.wall-visual{padding:6px;margin-top:6px}.wall-labels,.wall-distances{font-size:9px}.wallbar{height:7px;margin:5px 0}.selected-actions-note{padding:8px 9px;font-size:11px}

@media (max-width:1200px){.app{grid-template-columns:1fr;grid-template-areas:"left" "center" "right"}.splitter{display:none}.left{grid-area:left}.center{grid-area:center}.right{grid-area:right;border-left:0;border-top:1px solid var(--line)}}

/* ============================================================
   v6 — МОНОХРОМ, data-first. Цвет ТОЛЬКО для направления (up/dn) и одного
   teal-акцента (выбор/актив). Сигнальные бейджи/чипы — нейтральные: смысл
   несёт текст и ИНТЕНСИВНОСТЬ (яркость/вес), не оттенок. Идёт последним →
   перебивает разноцветные слои v3–v5.5. Откат = удалить этот блок.
   ============================================================ */
.badge,.flow-badge,.deriv-badge{
  color:#c3c9d2!important;border-color:var(--line)!important;
  background:rgba(255,255,255,.045)!important;box-shadow:none!important;font-weight:800!important;
}
/* слабые/нейтральные сигналы — тусклее */
.badge.STALE,.badge.WIDE,.badge.UNWIND,.flow-badge.WIDE,.flow-badge.NONE,.deriv-badge.UNWIND,.deriv-badge.NONE{color:var(--muted)!important}
/* сильные сигналы — ярче (интенсивность вместо цвета) */
.badge.HOT,.badge.SQUEEZE,.badge.OI,.badge.SPIKE,.badge.LIQ,.badge.LIQUID,.badge.FUNDING,.badge.BIDWALL,.badge.ASKWALL,.badge.DENSITY,.badge.TAPE,.badge.ABSORB,.badge.PULL,
.flow-badge.BIDWALL,.flow-badge.ASKWALL,.flow-badge.DENSITY,.flow-badge.TAPE,.flow-badge.ABSORB,.flow-badge.PULL,
.deriv-badge.SQUEEZE,.deriv-badge.OI,.deriv-badge.FUNDING,.deriv-badge.LIQ{color:#eef1f6!important;border-color:rgba(255,255,255,.18)!important}
/* ЕДИНСТВЕННЫЙ цвет-код в бейджах — направление */
.badge.UP{color:var(--up)!important;border-color:rgba(62,207,143,.4)!important}
.badge.DOWN{color:var(--dn)!important;border-color:rgba(236,95,107,.4)!important}
/* tile-inline сигналы — нейтральные */
.tile-flow,.tile-deriv{color:var(--muted)!important}
.tile-flow.BIDWALL,.tile-flow.ASKWALL,.tile-flow.DENSITY,.tile-flow.TAPE,.tile-flow.ABSORB,.tile-flow.PULL,
.tile-deriv.SQUEEZE,.tile-deriv.OI,.tile-deriv.FUNDING,.tile-deriv.LIQ{color:#d3d8e0!important}
/* reason-chips — нейтральные, кроме направления */
.reason-chip{color:var(--muted)!important;border-color:var(--line)!important;background:rgba(255,255,255,.045)!important}
.reason-chip b{color:#eef1f6!important}
.reason-chip.up{color:var(--up)!important;border-color:rgba(62,207,143,.3)!important;background:rgba(62,207,143,.07)!important}
.reason-chip.dn{color:var(--dn)!important;border-color:rgba(236,95,107,.3)!important;background:rgba(236,95,107,.07)!important}
.reason-chip.SPIKE,.reason-chip.TAPE,.reason-chip.ABSORB,.reason-chip.SQUEEZE{color:#d3d8e0!important;border-color:var(--line)!important;background:rgba(255,255,255,.045)!important}
/* прочий «горячий» декор → интенсивность, не цвет */
.btn.hot{color:#eef1f6!important;border-color:var(--line)!important;background:rgba(255,255,255,.05)!important}
.score.hot-score{color:#eef1f6!important}
.pattern.hot-pattern{color:var(--info)!important}
/* секции selected-panel — нейтральные рамки */
.setup-section,.derivatives-section,.flow-section,.context-section{border-color:var(--line)!important}
/* микробары/стены: нейтраль + сдержанные up/dn (уровни, поддержка/сопротивление) */
.microbar-track i{background:rgba(255,255,255,.32)!important}
.microbar-track i.up{background:var(--up)!important}
.microbar-track i.dn{background:var(--dn)!important}
.wallbar .bid{background:var(--up)!important}
.wallbar .ask{background:var(--dn)!important}
/* «горячая» кнопка/бейдж-пресеты уже нейтральны через --info(teal) выше */
/* ============================================================
   v7 — МИНИМАЛИЗМ: меньше «коробок» (рамок/фонов/пилюль), больше воздуха.
   Данные — главные, хром — тихий. Идёт последним. Откат = удалить блок.
   ============================================================ */
/* фон без радиального глоу */
.app-shell{background:var(--bg)!important}
.topbar{background:transparent!important}
/* сводка — без коробок, просто подпись+значение */
.summary-strip{gap:0 4px!important}
.summary-card{border:0!important;background:transparent!important;padding:4px 10px 4px 0!important}
.summary-card span{font-size:9px!important;letter-spacing:.7px!important}
/* статус/режим — тише, без пилюль */
.status-item,.data-badge{border-color:transparent!important;background:transparent!important;padding:4px 4px!important}
.status-badge{border-color:transparent!important;background:transparent!important;padding:4px 4px!important}
/* пресеты — текст-кнопки, активный подчёркнут teal (вместо 19 пилюль) */
.preset-btn{border:0!important;background:transparent!important;border-radius:0!important;box-shadow:none!important;
  padding:5px 9px!important;color:var(--muted)!important;font-weight:700!important}
.preset-btn:hover{color:var(--text)!important;background:transparent!important;transform:none!important}
.preset-btn.active{color:var(--info)!important;background:transparent!important;box-shadow:inset 0 -2px 0 var(--info)!important}
.preset-bar{gap:2px 4px!important}
/* кнопки/селекты/инпуты — плоские, минимальная рамка */
.btn,.watch-btn{background:transparent!important;border-color:rgba(255,255,255,.10)!important;box-shadow:none!important}
.btn:hover{background:rgba(255,255,255,.05)!important;border-color:rgba(255,255,255,.18)!important;transform:none!important}
.btn.hot{background:transparent!important}
.input,select{background:rgba(255,255,255,.03)!important;border-color:rgba(255,255,255,.08)!important}
.pill{border-color:rgba(255,255,255,.08)!important;background:transparent!important}
/* блоки/разделители — тоньше */
.block{border-bottom-color:rgba(255,255,255,.05)!important;padding-bottom:10px!important;margin-bottom:10px!important}
/* таблица — прозрачные заголовки, тонкие линии, без «зебры» */
thead th{background:transparent!important;border-bottom-color:rgba(255,255,255,.10)!important;color:var(--muted)!important}
tbody td{border-bottom-color:rgba(255,255,255,.05)!important}
tbody tr:hover{background:rgba(255,255,255,.04)!important}
/* тайлы — тоньше рамка, спокойнее фон */
.tile{border-color:rgba(255,255,255,.08)!important;background:rgba(255,255,255,.015)!important;border-radius:10px!important}
.tile:hover{border-color:rgba(255,255,255,.18)!important;background:rgba(255,255,255,.03)!important}
.tile.sel{border-color:var(--info)!important}
/* секции контекст-панели — без цветных рамок, тонкие */
.selected-section{border-color:rgba(255,255,255,.08)!important;background:rgba(255,255,255,.015)!important}
.selected-kpi{border-color:rgba(255,255,255,.08)!important;background:transparent!important}
/* сплиттеры — почти невидимы, teal только при перетаскивании */
.splitter{background:transparent!important;border-color:transparent!important}
.splitter:hover,.resizing-panels .splitter{background:rgba(62,207,143,.14)!important}
/* версия/сабтайтл — тише */
.version{border-color:rgba(255,255,255,.14)!important;background:transparent!important;color:var(--muted)!important}
/* ============================================================
   v8 — СТРОГО 2 ЦВЕТА: чёрный/серый + зелёный, красный ТОЛЬКО на падение.
   Выбиваем остатки золота/янтаря/синего из хрома (watchlist, статусы,
   data-badge, «горячие» кнопки). Идёт последним. Откат = удалить блок.
   ============================================================ */
/* watchlist: активное = зелёный акцент, неактивное = серое (не золото) */
.star-mini,.badge.WATCH{color:var(--up)!important}
.watch-toggle{color:var(--muted)!important}
.watch-toggle.active,.watch-btn.active{color:var(--up)!important;border-color:rgba(62,207,143,.28)!important;background:rgba(62,207,143,.08)!important}
/* статусы соединения: не янтарь — нейтраль; live=зелёный; error=красный (это и есть «красный на падение») */
.status-badge[data-status="connecting"],.status-badge[data-status="reconnecting"]{color:var(--muted)!important;border-color:transparent!important;background:transparent!important}
.status-badge[data-status="live"]{color:var(--up)!important;border-color:transparent!important;background:transparent!important}
.status-badge[data-status="error"]{color:var(--dn)!important;border-color:transparent!important;background:transparent!important}
/* режим данных: mock=серый, real=зелёный (без янтаря) */
.data-badge{color:var(--muted)!important;border-color:transparent!important;background:transparent!important}
.data-badge[data-mode="real"]{color:var(--up)!important}
/* «горячая» кнопка Alert — нейтраль, не оранжевая */
.btn.hot{color:var(--muted)!important}
/* primary-кнопка (Open Chart) — зелёный текст вместо голубого */
.btn.primary,.selected-actions-note b,.chart-modal-title{color:#eef1f6!important}
/* ошибка-бокс: красный текст на нейтральном фоне (красный=падение допустим) */
.error-box{color:var(--dn)!important;background:rgba(236,95,107,.06)!important;border-bottom-color:rgba(236,95,107,.25)!important}
/* ============================================================
   v9 — REFERENCE MATCH (scalpboard-style): нейтральный чёрный без синевы,
   трейдерский зелёный/красный, моноширинные цифры, чистый главный экран.
   Идёт последним. Откат = удалить блок.
   ============================================================ */
:root{
  --bg:#09090b;--panel:#0e0e11;--panel2:#0b0b0e;--panel3:#101013;--panel4:#0d0d10;
  --line:rgba(255,255,255,.07);--line2:rgba(255,255,255,.04);
  --text:#d1d4dc;--muted:#787b86;
  --up:#26de81;--dn:#f6465d;--info:#26de81;--warn:#787b86;--hot:#787b86;--violet:#787b86;
  --sel:rgba(38,222,129,.10)
}
/* убиваем ВСЮ синеву (navy rgba(15,23,42)/#0d172a/#07101d/#0b1220) → нейтральный чёрный */
.app-shell{background:#09090b!important}
.topbar{background:#0b0b0e!important;border-bottom:1px solid var(--line)!important}
.left,.right{background:#0a0a0d!important}
.left{border-right:1px solid var(--line)!important}.right{border-left:1px solid var(--line)!important}
.workspacebar{background:#0a0a0d!important;border-bottom:1px solid var(--line)!important}
.center{background:transparent!important}
.big-chart,.chart-box,.focus-chart{background:#0a0a0d!important}
.chart-modal,.chart-modal-header,.chart-modal-footer{background:#0b0b0e!important}
.chart-overlay{background:rgba(0,0,0,.86)!important}
.big-header{background:#0b0b0e!important}
.wall-visual{background:rgba(255,255,255,.02)!important;border-color:var(--line)!important}
thead th{background:#0a0a0d!important}
.selected-section{background:rgba(255,255,255,.015)!important}
.input,select{background:rgba(255,255,255,.03)!important}
/* тёмные нативные выпадающие списки (было белое системное окно) */
select option,select optgroup{background:#0e0e11!important;color:#d1d4dc!important}
/* моноширинные цифры/данные — «терминальный» вид как в референсе */
table,.tile-symbol,.tile-metrics,.tile-sub,.tile-deriv-line,.summary-card b,
.selected-kpi b,.selected-kpi span,.status-item,.status-badge,.data-badge,
.manual-price-label,.big-title,.chart-modal-title,.chart-modal-meta,.score,.pct,.move,
.wall-labels,.wall-distances,.microbar,.reason-chip{font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace!important}
/* чистим главный экран: сводка-полоса убрана (её нет в референсе) */
.summary-strip{display:none!important}
/* скроллбар — нейтральный серый, не зелёный */
:root{scrollbar-color:rgba(255,255,255,.16) transparent!important}
*::-webkit-scrollbar-thumb{background:rgba(255,255,255,.16)!important;border-color:transparent!important}
*::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.26)!important}
/* активный пресет/выбор — зелёная нижняя черта, чистый зелёный */
.preset-btn.active{color:var(--up)!important;box-shadow:inset 0 -2px 0 var(--up)!important}
.tile.sel{border-color:var(--up)!important}
tbody tr.sel{background:var(--sel)!important}
/* тонкие рамки тайлов/кнопок под новый чёрный */
.tile{border-color:var(--line)!important;background:rgba(255,255,255,.012)!important}
.tile:hover{border-color:rgba(255,255,255,.16)!important;background:rgba(255,255,255,.028)!important}
.btn,.watch-btn,.pill,.selected-kpi{border-color:var(--line)!important}
/* ============================================================
   v10 — МОДАЛКА НАСТРОЕК. Всю конфигурацию (сетка/сортировка/фильтры/
   таблица/workspace) убрали с главного экрана в аккуратное окно.
   ============================================================ */
.settings-modal[hidden]{display:none!important}
.settings-modal{position:fixed;inset:0;z-index:60;display:flex;align-items:flex-start;justify-content:center;padding:6vh 18px}
.settings-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.72);backdrop-filter:blur(6px)}
.settings-dialog{position:relative;width:min(620px,100%);max-height:88vh;overflow:auto;background:#0d0d10;border:1px solid var(--line);border-radius:16px;box-shadow:0 30px 90px rgba(0,0,0,.6)}
.settings-head{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;background:#0d0d10;border-bottom:1px solid var(--line);z-index:1}
.settings-title{font-size:15px;font-weight:800;letter-spacing:.2px;color:var(--text)}
.settings-body{padding:4px 18px 18px}
.settings-group{padding:14px 0;border-bottom:1px solid var(--line2)}
.settings-group:last-child{border-bottom:0}
.settings-group-title{font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:var(--muted);margin-bottom:10px;font-family:"JetBrains Mono",ui-monospace,monospace}
.settings-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.settings-row .control{gap:8px}
.settings-row select{min-width:92px}
body.settings-open{overflow:hidden}
#settingsBtn{white-space:nowrap}
/* клик по названию монеты → большой график */
.sym-open{cursor:pointer}
.sym-cell.sym-open:hover b,.big-title.sym-open:hover{color:var(--up)!important;text-decoration:underline;text-underline-offset:2px}
/* большой график: панель инструментов рисования слева */
.focus-body{display:flex;min-height:0;min-width:0}
.focus-body .focus-chart{flex:1;min-width:0}
.draw-toolbar{display:flex;flex-direction:column;gap:6px;padding:8px;border-right:1px solid var(--line);background:#0b0b0e}
.draw-btn{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:8px;cursor:pointer;font-size:15px;line-height:1;padding:0}
.draw-btn:hover{color:var(--text);border-color:rgba(255,255,255,.2)}
.draw-btn.active{color:var(--up);border-color:rgba(38,222,129,.5);background:rgba(38,222,129,.08)}
.draw-btn.draw-trash{margin-top:6px;color:var(--dn)}
.draw-btn.draw-trash:hover{border-color:rgba(246,70,93,.5);color:var(--dn)}
@media (max-width:900px){.draw-toolbar{flex-direction:row;flex-wrap:wrap;border-right:0;border-bottom:1px solid var(--line)}.focus-body{flex-direction:column}}
.draw-btn.draw-alert{color:var(--up)}
/* тосты алертов */
#alertToasts{position:fixed;right:16px;bottom:16px;z-index:80;display:flex;flex-direction:column;gap:8px;max-width:340px}
.alert-toast{display:flex;align-items:center;gap:8px;background:#0e0e11;border:1px solid rgba(38,222,129,.4);border-left:3px solid var(--up);color:var(--text);border-radius:10px;padding:9px 12px;font-size:12px;box-shadow:0 12px 32px rgba(0,0,0,.5);opacity:0;transform:translateY(8px);transition:opacity .2s,transform .2s;cursor:pointer;font-family:"JetBrains Mono",ui-monospace,monospace}
.alert-toast.show{opacity:1;transform:none}
.alert-toast-dot{width:8px;height:8px;border-radius:50%;background:var(--up);box-shadow:0 0 8px var(--up);flex:0 0 auto}
.alert-toast-sub{color:var(--muted);margin-left:4px}
/* список алертов в настройках */
.settings-hint{font-size:11px;color:var(--muted);margin-bottom:8px;line-height:1.45}
.alerts-list{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}
.alerts-empty{color:var(--muted);font-size:12px;padding:6px 0}
.alert-row{display:flex;align-items:center;gap:10px;padding:7px 10px;border:1px solid var(--line);border-radius:9px;font-family:"JetBrains Mono",ui-monospace,monospace;font-size:12px}
.alert-row.hit{opacity:.6}
.alert-row .alert-sym{font-weight:700;min-width:80px}
.alert-row .alert-price{color:var(--up)}
.alert-row.hit .alert-price{color:var(--muted)}
.alert-row .alert-state{margin-left:auto;color:var(--muted);font-size:11px}
.alert-del{background:transparent;border:1px solid var(--line);color:var(--muted);border-radius:6px;cursor:pointer;width:24px;height:24px;padding:0;line-height:1}
.alert-del:hover{color:var(--dn);border-color:rgba(246,70,93,.4)}
/* кнопка Trade — главный CTA, заливка зелёным; правые действия переносятся */
.right-actions{flex-wrap:wrap!important;justify-content:flex-end}
#tradeSelected{background:var(--up)!important;color:#06140d!important;border-color:var(--up)!important;font-weight:800!important;box-shadow:0 2px 10px rgba(38,222,129,.22)!important}
#tradeSelected:hover{background:#34e79c!important;border-color:#34e79c!important}
.right-actions .btn{white-space:nowrap}
#overlayToggle.active{color:var(--up)!important;border-color:rgba(38,222,129,.5)!important;background:rgba(38,222,129,.08)!important}
/* Данные устарели: рынок молчит > 30 с */
#lastUpdate[data-stale="1"] { color: #f0b429; }

/* Телефон: страница прокручивается целиком вместо зажатых колонок на 100vh */
@media (max-width:760px){
  html,body{height:auto}
  body{overflow:auto}
  .app-shell{height:auto;min-height:100vh;overflow:visible}
  .topbar{height:auto!important;gap:8px;padding:10px 12px}
  .status-strip{gap:6px 10px;font-size:11px}
  .app{overflow:visible}
  .col,.center,.right{overflow:visible}
  .left{max-height:70vh;overflow:auto;border-right:0;border-bottom:1px solid var(--line)}
  .grid{--tile-cols:1!important;grid-template-columns:1fr!important}
  .chart-box{height:170px}
  .big-chart{height:340px}
  .big-header{position:static}
}

/* Ликвидации за час под плиткой */
.tile-liq{flex-basis:100%;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.tile-liq[data-dom="long"]{color:#f6465d}
.tile-liq[data-dom="short"]{color:#26de81}
.tile-footer{flex-wrap:wrap}

/* Радар объёма */
.radar-dialog{width:min(860px,100%)}
.radar-note{margin-top:3px;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.radar-wrap{overflow-x:auto;padding:0 10px}
.radar-table{width:100%;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}
.radar-table th{position:sticky;top:0;text-align:left;font-size:10px;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);font-weight:700;padding:8px;border-bottom:1px solid var(--line);background:#0d0d10;white-space:nowrap}
.radar-table td{padding:7px 8px;border-bottom:1px solid rgba(255,255,255,.04);white-space:nowrap}
.radar-table .num{text-align:right;font-family:"JetBrains Mono",ui-monospace,monospace}
.radar-table td.sym{font-weight:800}
.radar-table tbody tr{cursor:pointer}
.radar-table tbody tr:hover,.radar-table tbody tr:focus{background:rgba(255,255,255,.04);outline:none}
.radar-table .up{color:#26de81}.radar-table .dn{color:#f6465d}
.radar-table .hot1{color:#f0b429}
.radar-table .hot2{color:#ff9f43;font-weight:700}
.radar-table .hot3{color:#fff;background:rgba(255,159,67,.22);font-weight:800}
.radar-foot{padding:10px 18px 16px;font-size:11px;color:var(--muted)}

/* Плотности */
.dens-dialog{width:min(980px,100%)}
.dens-filters{display:flex;flex-wrap:wrap;gap:8px 12px;padding:10px 18px;border-bottom:1px solid var(--line)}
.dens-filters input{width:110px}
