/* ============ THEMES ============ */
:root, [data-theme="dark"] {
  --bg:#000; --panel:#121316; --panel2:#1a1c21; --line:#2a2d34;
  --text:#e6e8ee; --dim:#8b909c;
  --long:#14b77d; --long-soft:rgba(20,183,125,.14); --long-strong:rgba(20,183,125,.52);
  --short:#f0455a; --short-soft:rgba(240,69,90,.14); --short-strong:rgba(240,69,90,.52);
  --accent:#f5b83d; --focus:#4d8dff; --price:#3d6bff; --liq:#ff9f1a;
  color-scheme: dark;
}
[data-theme="silver"] {
  --bg:#0d1117; --panel:#161b22; --panel2:#1c2128; --line:#30363d;
  --text:#c9d1d9; --dim:#8b949e;
  --long:#3fb950; --long-soft:rgba(63,185,80,.16); --long-strong:rgba(63,185,80,.55);
  --short:#f85149; --short-soft:rgba(248,81,73,.16); --short-strong:rgba(248,81,73,.55);
  --accent:#d29922; --focus:#58a6ff; --price:#3d8bff; --liq:#f0883e;
  color-scheme: dark;
}
[data-theme="white"] {
  --bg:#f6f8fa; --panel:#ffffff; --panel2:#f3f4f8; --line:#d0d7de;
  --text:#1f2328; --dim:#656d76;
  --long:#1a7f37; --long-soft:rgba(26,127,55,.12); --long-strong:rgba(26,127,55,.45);
  --short:#cf222e; --short-soft:rgba(207,34,46,.11); --short-strong:rgba(207,34,46,.42);
  --accent:#9a6700; --focus:#0969da; --price:#0550ae; --liq:#bc4c00;
  color-scheme: light;
}

*{box-sizing:border-box}
html,body{height:100%;margin:0;overflow:hidden}
body{background:var(--bg);color:var(--text);font:12.5px/1.4 "Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;display:flex;flex-direction:column}
button,input,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--focus);outline-offset:1px}
.num,.tbl td,.tbl th{font-variant-numeric:tabular-nums}
button{cursor:pointer}
.bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:7px 12px;background:var(--panel);border-bottom:1px solid var(--line);flex-shrink:0}
.brand{display:flex;flex-direction:column;line-height:1.1}
.brand strong{font-size:14px} .brand span{color:var(--dim);font-size:11px}
.ctl{display:flex;align-items:center;gap:6px}
.ctl label{color:var(--dim)}
input,select{background:var(--panel2);border:1px solid var(--line);border-radius:4px;padding:4px 7px;min-width:0}
input[type=checkbox]{width:auto;accent-color:var(--focus)}
#instId{width:160px}
.btn{background:var(--panel2);border:1px solid var(--line);border-radius:4px;padding:4px 10px}
.btn:hover{border-color:var(--dim)}
.btn.main{background:var(--focus);border-color:var(--focus);color:#fff;font-weight:600}
.btn.main.off{background:var(--short);border-color:var(--short)}
.btn.sm{padding:2px 7px;font-size:11.5px}
.st{display:flex;align-items:center;gap:6px;color:var(--dim)}
.dot{width:8px;height:8px;border-radius:50%;background:var(--dim)}
.st.ok .dot{background:var(--long)} .st.warn .dot{background:var(--accent)} .st.err .dot{background:var(--short)}
.kpis{display:flex;gap:16px;margin-left:auto;flex-wrap:wrap}
.kpi{display:flex;flex-direction:column;min-width:60px}
.kpi small{color:var(--dim);font-size:10.5px} .kpi b{font-size:14px}
.l{color:var(--long)} .s{color:var(--short)}
.pbar{height:5px;border-radius:3px;background:var(--short-strong);overflow:hidden;margin-top:3px}
.pbar i{display:block;height:100%;background:var(--long)}
#mode{font-weight:600}
#themeSelect{background:var(--panel2);border:1px solid var(--line);border-radius:4px;padding:4px 8px}

.banner{display:none;padding:5px 12px;font-weight:600;text-align:center;flex-shrink:0}
.banner.demo{display:block;background:rgba(245,184,61,.16);color:var(--accent)}
.banner.live{display:block;background:var(--short);color:#fff}
.note{padding:5px 12px;background:var(--panel2);color:var(--accent);border-bottom:1px solid var(--line);display:none;flex-shrink:0}
details.set{background:var(--panel);border-bottom:1px solid var(--line);padding:0 12px;flex-shrink:0}
details.set summary{cursor:pointer;padding:6px 0;color:var(--dim)}
.sgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px 14px;padding:4px 0 12px}
.sgrid label{display:flex;flex-direction:column;gap:3px;color:var(--dim);font-size:11.5px}
.sgrid label.chk{flex-direction:row;align-items:center;gap:7px;color:var(--text)}
.sgrid h4{grid-column:1/-1;margin:6px 0 0;font-size:12px;color:var(--text);border-bottom:1px solid var(--line);padding-bottom:3px}

.layout{flex:1;min-height:0;display:grid;gap:8px;padding:8px;
  grid-template-columns:270px minmax(0,1fr) 360px;
  grid-template-rows:minmax(0,1fr) 250px;
  grid-template-areas:"lad chart ord" "lad tabs ord"}
.a-lad{grid-area:lad;overflow:hidden}
.a-chart{grid-area:chart;overflow:hidden}
.a-tabs{grid-area:tabs;overflow:hidden}
.a-ord{grid-area:ord;overflow:hidden;display:flex;flex-direction:column}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:6px;display:flex;flex-direction:column;min-height:0;min-width:0}
.panel>h2{margin:0;padding:6px 10px;font-size:12px;font-weight:600;border-bottom:1px solid var(--line);color:var(--dim);flex-shrink:0}
.scroll{overflow:auto;min-height:0;flex:1}

/* Стакан */
.lad{font-variant-numeric:tabular-nums;font-size:11.5px}
.r{display:grid;grid-template-columns:70px 1fr 54px;align-items:center;height:19px}
.r .p{text-align:right;padding-right:8px;font-weight:600}
.r.ask .p{color:var(--short)} .r.bid .p{color:var(--long)}
.r .s{height:100%;display:flex;align-items:center;gap:5px;padding:0 5px;white-space:nowrap;overflow:hidden}
.r.ask .s{background:linear-gradient(to right,var(--short-soft) var(--w),transparent var(--w))}
.r.bid .s{background:linear-gradient(to right,var(--long-soft) var(--w),transparent var(--w))}
.r .c{color:var(--dim);text-align:right;padding-right:6px;font-size:10.5px}
.r.wall.ask .s{background:linear-gradient(to right,var(--short-strong) var(--w),transparent var(--w));font-weight:700}
.r.wall.bid .s{background:linear-gradient(to right,var(--long-strong) var(--w),transparent var(--w));font-weight:700}
.tw{font-size:10px;font-weight:600;padding:0 4px;border-radius:3px;background:var(--panel2)}
.r.ask .tw{color:var(--short)} .r.bid .tw{color:var(--long)}
.r.fresh .tw{background:var(--accent);color:#111}
.mid{display:flex;justify-content:space-between;align-items:center;padding:4px 10px;background:var(--panel2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.mid b{font-size:14px}
@media (prefers-reduced-motion:no-preference){
  .r.fresh .s{animation:pulse 1.6s ease-out 2}
  @keyframes pulse{0%{box-shadow:inset 0 0 0 2px var(--accent)}100%{box-shadow:inset 0 0 0 0 transparent}}
}

/* График */
.ch1{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:5px 10px;border-bottom:1px solid var(--line);flex-shrink:0}
.tfs{display:flex;gap:2px}
.tfs button{background:transparent;border:0;color:var(--dim);padding:3px 8px;border-radius:3px}
.tfs button.on{background:var(--panel2);color:var(--text);font-weight:600}
.ch1 label{display:flex;align-items:center;gap:4px;color:var(--dim)}
.ohlc{padding:3px 10px;font-size:11.5px;color:var(--dim);display:flex;flex-wrap:wrap;gap:2px 12px;font-variant-numeric:tabular-nums;flex-shrink:0}
.ohlc b{color:var(--text);font-weight:600}
.cwrap{flex:1;min-height:0;position:relative}
canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}

/* Вкладки/таблицы */
.tabbar{display:flex;gap:2px;padding:4px 6px;border-bottom:1px solid var(--line);align-items:center;flex-shrink:0}
.tabbar button{background:transparent;border:0;color:var(--dim);padding:4px 10px;border-radius:3px}
.tabbar button.on{background:var(--panel2);color:var(--text);font-weight:600}
.tabbar .sp{flex:1}
.tbl{width:100%;border-collapse:collapse;font-size:11.5px}
.tbl th{position:sticky;top:0;background:var(--panel);color:var(--dim);font-weight:500;text-align:right;padding:4px 8px;border-bottom:1px solid var(--line)}
.tbl td{text-align:right;padding:4px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl th:first-child,.tbl td:first-child{text-align:left}
.tbl input{width:72px;padding:2px 4px;text-align:right}
.tag{padding:1px 6px;border-radius:3px;font-weight:700;font-size:10.5px}
.tag.long{background:var(--long-soft);color:var(--long)} .tag.short{background:var(--short-soft);color:var(--short)}
.empty{color:var(--dim);padding:10px}
.two{display:grid;grid-template-columns:1fr 1fr 1.6fr;gap:0;height:100%}
.col{padding:6px 10px;border-right:1px solid var(--line);overflow:auto;min-width:0}
.col:last-child{border-right:0;padding:0}
.col h3{margin:0 0 6px;font-size:12px}
.wi{display:flex;justify-content:space-between;gap:6px;padding:3px 0;border-bottom:1px dashed var(--line);font-size:11.5px;font-variant-numeric:tabular-nums}
.wi small{color:var(--dim)}
.wi .new{color:#111;background:var(--accent);border-radius:3px;padding:0 4px;font-size:10px;font-weight:700;margin-left:4px}
.ev{display:grid;grid-template-columns:58px 60px 1fr;gap:6px;padding:4px 10px;border-bottom:1px solid var(--line);font-size:11.5px}
.ev time{color:var(--dim)} .ev .tg{font-weight:700}
.ev.bid .tg{color:var(--long)} .ev.ask .tg{color:var(--short)}
.ev .k-pulled,.ev .k-spoof{color:var(--accent)} .ev .k-filled,.ev .k-partial{color:var(--dim)}

/* Форма торговли */
.ordf{padding:8px 10px;overflow:auto;min-height:200px;flex:1;display:flex;flex-direction:column;gap:8px}
.acc{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;background:var(--panel2);border-radius:5px;padding:6px 8px;flex-shrink:0}
.acc small{color:var(--dim);display:block;font-size:10.5px} .acc b{font-size:13px}
.seg{display:flex;border:1px solid var(--line);border-radius:5px;overflow:hidden;flex-shrink:0}
.seg button{flex:1;background:transparent;border:0;padding:6px 4px;color:var(--dim)}
.seg button.on{background:var(--panel2);color:var(--text);font-weight:700}
.seg.side button.on[data-v=long]{background:var(--long);color:#fff}
.seg.side button.on[data-v=short]{background:var(--short);color:#fff}
.fld{display:flex;flex-direction:column;gap:3px;flex-shrink:0}
.fld>label{color:var(--dim);font-size:11px;display:flex;justify-content:space-between}
.fld .row{display:flex;gap:4px;align-items:center}
.fld .row input{flex:1}
.chips{display:flex;gap:4px;flex-wrap:wrap}
.chip{background:var(--panel2);border:1px solid var(--line);border-radius:3px;padding:1px 6px;font-size:11px;color:var(--dim)}
.chip:hover{color:var(--text);border-color:var(--dim)}
.prev{background:var(--panel2);border-radius:5px;padding:6px 8px;font-size:11.5px;display:grid;grid-template-columns:1fr auto;gap:2px 8px;font-variant-numeric:tabular-nums;flex-shrink:0}
.prev span:nth-child(odd){color:var(--dim)}
.go{border:0;border-radius:5px;padding:10px;font-weight:700;font-size:14px;color:#fff}
.go.long{background:var(--long)} .go.short{background:var(--short)}
.hint{color:var(--dim);font-size:11px}
.foot{padding:5px 12px;color:var(--dim);font-size:11px;border-top:1px solid var(--line);background:var(--panel);flex-shrink:0}

/* Тосты, модалки, попапы */
#toasts{position:fixed;left:12px;bottom:12px;display:flex;flex-direction:column;gap:6px;z-index:50;max-width:380px}
.toast{background:var(--panel2);border:1px solid var(--line);border-left:4px solid var(--focus);border-radius:4px;padding:7px 10px;box-shadow:0 4px 14px rgba(0,0,0,.35)}
.toast.ok{border-left-color:var(--long)}
.toast.err{border-left-color:var(--short)}
.toast.warn{border-left-color:var(--accent)}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.6);display:none;align-items:center;justify-content:center;z-index:60}
.modal.on{display:flex}
.mbox{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:16px;width:min(440px,92vw);display:flex;flex-direction:column;gap:10px}
.mbox h3{margin:0}
.mbox .btns{display:flex;gap:8px;justify-content:flex-end}
.mbox .warn{color:var(--accent);font-size:11.5px}
.mbox input{width:100%}
@media (max-width:1180px){
  /* ── FIX: розблоковуємо прокрутку на мобільних ── */
  html, body {
    height: auto !important;
    overflow: visible !important;
    touch-action: pan-y;
  }
  body {
    display: block;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
  }
  .layout {
    display: flex;
    flex-direction: column;
    height: auto;
    min-height: auto;
  }
  .panel {
    min-height: 300px;
    overflow: visible !important;
  }
  /* панелі більше не ховають контент */
  .a-lad, .a-chart, .a-tabs, .a-ord {
    overflow: visible !important;
  }
  /* внутрішні скроли стають звичайним потоком */
  .scroll {
    overflow: visible !important;
    flex: none !important;
    min-height: 0;
  }
  .ordf {
    overflow: visible !important;
  }
  /* дашборди AutoTrader/SmartTrader/Journal більше не мають обмеження висоти */
  .dash {
    max-height: none !important;
    overflow: visible !important;
  }
  #autoPanel {
    max-height: none !important;
    overflow: visible !important;
  }
  .at-log {
    max-height: none !important;
    overflow: visible !important;
  }
  .a-tabs  { min-height: 320px; }
  .cwrap   { min-height: 380px; }
}
.gos{display:grid;grid-template-columns:1fr 1fr;gap:8px;flex-shrink:0}
.go.sel{box-shadow:0 0 0 2px var(--text) inset}

/* Попапы */
.pop{position:fixed;display:none;z-index:70;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px 12px;width:330px;box-shadow:0 8px 24px rgba(0,0,0,.45);flex-direction:column;max-height:86vh;overflow:auto}
.pop h4{margin:0 0 4px;font-size:13px;display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.pop label{display:flex;flex-direction:column;gap:2px;color:var(--dim);font-size:11px;margin-top:6px}
.pop label.chk{flex-direction:row;align-items:center;gap:6px;margin-top:8px;color:var(--text);font-size:12px}
.pop input{width:100%}
.pop input[type=checkbox]{width:auto}
.pop input[type=range]{padding:0;accent-color:var(--focus)}
.pop .row2{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:6px}
.pop .btns{display:flex;gap:6px;justify-content:flex-end;margin-top:8px}
.pop .btns .go{padding:6px 12px;font-size:12.5px}
.pop .pf{display:flex;flex-direction:column;gap:4px;margin-top:8px}
.pop .pf>label{display:flex;justify-content:space-between;align-items:baseline;color:var(--dim);font-size:11.5px;margin:0}
.pop .sl{display:flex;align-items:center;gap:8px}
.pop .sl input[type=range]{flex:1}
.pop .sl input[type=number]{width:64px;flex:none}
.pop .sl b{min-width:40px;text-align:right}
.pop .chips{display:flex;gap:4px;flex-wrap:wrap}
.pop .seg.sm{margin-top:8px}
.pop .seg.sm button{padding:4px;font-size:12px}
.pop .seg.sm button[disabled]{opacity:.4;cursor:not-allowed}
.pop .prev{margin-top:10px}

/* Модалки */
.mbox.stm{width:min(900px,96vw);max-height:92vh}
.sthead{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.stbody{overflow:auto;max-height:68vh;border-top:1px solid var(--line)}
.stg{border-bottom:1px solid var(--line)}
.stg summary{cursor:pointer;padding:7px 4px;font-weight:600}
.stgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:6px 14px;padding:4px 4px 12px}
.stgrid label{display:flex;flex-direction:column;gap:2px;font-size:11.5px;color:var(--text)}
.stgrid .row{display:flex;gap:4px}
.mbox.pm{width:min(760px,96vw);max-height:92vh}
.pmctl{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.pmctl input{flex:1;min-width:150px}
.pmsum{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.pmsum .pbar{flex:1;min-width:120px;margin:0}
.pm .tbl th{cursor:pointer;user-select:none}
.pm .tbl td:not(:first-child),.pm .tbl th:not(:first-child){text-align:right}
.pmr{cursor:pointer} .pmr:hover{background:var(--panel2)}
.gh td{background:var(--panel2);font-weight:600;color:var(--text);text-align:left!important}
.star{background:transparent;border:0;color:var(--dim);font-size:14px;padding:0 4px}
.star.on{color:var(--accent)}
#autoBtn.on{border-color:var(--focus);color:var(--focus)}
.lnk{cursor:pointer;color:var(--focus);font-weight:700;border-bottom:1px dotted currentColor}
.lnk:hover{filter:brightness(1.25)}
.lnk.cur{color:var(--text);border-bottom-color:transparent;cursor:default}
.tfs button[data-tfadd],.tfs button[data-tfedit]{padding:3px 7px}
.tfs button.rm{color:var(--short)}

/* Алерты */
#alerts{position:fixed;right:14px;bottom:14px;display:flex;flex-direction:column;gap:10px;z-index:90;width:min(340px,92vw)}
.al{position:relative;overflow:hidden;cursor:pointer;background:#111318;color:#f2f4f8;border:1px solid #2b2f38;border-left:5px solid #ff4d5e;border-radius:10px;padding:10px 12px 12px;box-shadow:0 10px 30px rgba(0,0,0,.65),0 0 0 1px rgba(255,255,255,.03);font-variant-numeric:tabular-nums}
.al.up{border-left-color:#19c37d} .al.up .al-chg{color:#19c37d} .al.dn .al-chg{color:#ff4d5e}
.al-h{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;letter-spacing:.4px;color:#ffb347}
.al-h time{margin-left:auto;color:#8b909c;font-weight:500}
.al-x{background:transparent;border:0;color:#8b909c;font-size:13px;padding:0 2px}
.al-x:hover{color:#fff}
.al-pair{display:block;font-size:19px;font-weight:800;margin:6px 0 0;color:#fff;border-bottom:1px dotted #5b6070;width:fit-content}
.al-pair:hover{color:#82a6ff}
.al-chg{font-size:26px;font-weight:800;line-height:1.15;margin:2px 0 4px}
.al-chg small{font-size:12px;color:#8b909c;font-weight:600}
.al-l{font-size:12px;color:#c9ccd4}
.al-l b{color:#fff}
.al-f{font-size:10.5px;color:#7b8090;margin-top:6px}
.al-bar{position:absolute;left:0;bottom:0;height:3px;width:100%;background:#ffb347;transform-origin:left;animation:alshrink linear forwards}
@keyframes alshrink{from{transform:scaleX(1)}to{transform:scaleX(0)}}
.al.tp{border-left-color:#19c37d}
.al.sl{border-left-color:#ff7a45}
.al.liq,.al.crit{border-left-color:#ff2d55;box-shadow:0 0 0 1px #ff2d55,0 10px 30px rgba(0,0,0,.65)}
.al.warn{border-left-color:#ffb347}
.al.tr .al-chg{color:#fff;font-size:22px}
.al.tp .al-chg{color:#19c37d}
.al.sl .al-chg,.al.liq .al-chg,.al.crit .al-chg{color:#ff6b6b}
.al-acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.al-acts .btn{background:#1e2128;border-color:#343842;color:#f2f4f8}

/* Fullscreen chart */
.fsbar,.fsdock{display:none}
.a-chart.fs{position:fixed;inset:0;z-index:60;margin:0;border-radius:0;border:0;height:100vh;height:100dvh;max-height:none;min-height:0}
.a-chart.fs .cwrap{min-height:0}
.a-chart.fs .fsbar{display:flex;gap:6px;align-items:center;padding:6px 8px;border-bottom:1px solid var(--line);background:var(--panel);overflow-x:auto;flex-wrap:nowrap}
.a-chart.fs .fsbar>*{flex:0 0 auto}
.a-chart.fs .fsdock{display:flex;flex-direction:column;gap:6px;padding:8px;border-top:1px solid var(--line);background:var(--panel);padding-bottom:calc(8px + env(safe-area-inset-bottom,0px))}
.fsbar input{width:150px}
.fsbar .favs{display:flex;gap:4px;flex-wrap:nowrap}
.fsbar .chip.on{color:var(--text);border-color:var(--focus)}
.fsbar b{font-size:15px;margin:0 4px}
.fsrow{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.fsrow input[type=number]{width:74px}
.fsl{display:flex;align-items:center;gap:3px;color:var(--dim);font-size:11px}
.fsrow .go{padding:9px 18px;font-size:14px}
.fspos{display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-size:12px}
.pchip{display:inline-flex;gap:5px;align-items:center;background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:3px 6px}
.pchip.long{border-left:3px solid var(--long)} .pchip.short{border-left:3px solid var(--short)}
body.fs-lock{overflow:hidden}

@media (max-width:640px){
  .bar{padding:6px 8px}
  #instId{width:120px}
  .ctl label{display:none}
  .kpis{gap:8px} .kpi b{font-size:13px} .kpi small{font-size:9.5px}
  .sgrid{grid-template-columns:1fr}
  .stgrid{grid-template-columns:1fr}
  .ohlc{font-size:10.5px;gap:2px 8px}
  .tbl{font-size:11px} .tbl td,.tbl th{padding:4px 5px}
  #alerts{right:8px;left:8px;bottom:8px;width:auto}
  .mbox{padding:12px}
  .fsbar input{width:110px} .fsrow .go{flex:1} .fsrow input[type=number]{width:62px}
}
@media (pointer:coarse){
  .btn,.tfs button,.chip,.tabbar button,.seg button,.star{min-height:36px}
  .btn.sm{min-height:32px}
  input,select{min-height:34px;font-size:14px}
  .tbl td,.tbl th{padding-top:7px;padding-bottom:7px}
}

/* SmartTrader dashboard */
.dash{
  background:var(--panel2);
  border-bottom:1px solid var(--line);
  font-size:11.5px;
  color:var(--text);
  padding:0;
  flex-shrink:0;
  max-height:15vh;
  overflow-y:auto;
}
.dash:empty{display:none}
.dash-head{
  display:flex; justify-content:space-between; align-items:center; gap:8px;
  padding:6px 10px; background:var(--panel); border-bottom:1px solid var(--line);
  cursor:pointer; user-select:none; position:sticky; top:0; z-index:1;
}
.dash-head b{font-size:12px}
.dash-head .hint{font-size:10.5px}
.dash-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:4px 8px; padding:6px 10px; }
.dash-row{ display:flex; justify-content:space-between; align-items:baseline; gap:4px; font-size:11px; }
.dash-row span{color:var(--dim)}
.dash-row b{font-weight:600}
.dash-line{ padding:4px 10px; border-top:1px dashed var(--line); font-size:11px; color:var(--text); line-height:1.45; }
.dash-line .l{color:var(--long);font-weight:700}
.dash-line .s{color:var(--short);font-weight:700}
.dash-line b{color:var(--text)}
.dash-line b.l{color:var(--long)}
.dash-line b.s{color:var(--short)}
@media (max-width:1180px){
  .dash{max-height:none}
}

/* Расширенное меню настроек */
.set-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 0 8px;border-bottom:1px solid var(--line)}
.set-toolbar input{flex:1;min-width:200px}
.set-toolbar select{padding:4px 8px}
.set-toolbar .hint{margin-left:auto}
.set-badge{display:none;background:var(--accent);color:#111;border-radius:8px;padding:0 6px;font-size:10px;font-weight:700;margin-left:6px}
.set-badge.on{display:inline-block}
.set-tabs{display:flex;flex-wrap:wrap;gap:4px;padding:8px 0;border-bottom:1px solid var(--line)}
.set-tabs button{background:var(--panel2);border:1px solid var(--line);border-radius:5px;color:var(--dim);padding:5px 10px;font-size:12px}
.set-tabs button.on{background:var(--focus);border-color:var(--focus);color:#fff;font-weight:600}
.set-tabs button .bdot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-left:5px;vertical-align:middle}
.set-body{padding-top:10px}
.set-cat{display:none}
.set-cat.on{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px 14px}
.set-cat h4{grid-column:1/-1;margin:8px 0 0;font-size:12px;color:var(--text);border-bottom:1px solid var(--line);padding-bottom:3px}
.set-cat label{display:flex;flex-direction:column;gap:3px;color:var(--dim);font-size:11.5px}
.set-cat label>span{color:var(--dim)}
.set-cat label.chk{flex-direction:row;align-items:center;gap:7px;color:var(--text)}
.set-cat label.invalid>span{color:var(--short)}
.set-cat label.invalid input,.set-cat label.invalid select{border-color:var(--short);background:rgba(240,69,90,.06)}
.set-cat label[hidden]{display:none!important}
.set-adv{grid-column:1/-1;border:1px solid var(--line);border-radius:5px;padding:4px 8px}
.set-adv summary{cursor:pointer;padding:4px 0;color:var(--text);font-size:11.5px;font-weight:600}
.sgrid-adv{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px 12px;padding:4px 0 8px}
.sgrid-adv label{display:flex;flex-direction:column;gap:2px;color:var(--dim);font-size:11.5px}
body.compact-ui .layout{gap:4px;padding:4px}
body.compact-ui .bar{padding:4px 8px}
body.compact-ui .kpis{gap:8px}
body.compact-ui .kpi b{font-size:13px}
body.compact-ui .tbl td,body.compact-ui .tbl th{padding:2px 5px}
body.compact-ui .panel>h2{padding:4px 8px;font-size:11.5px}
@media (max-width:900px){
  .set-toolbar input{min-width:100%}
  .set-cat{grid-template-columns:1fr}
}

/* Дополнительные модули */
.tpl-bar{display:flex;flex-wrap:wrap;gap:4px;padding:4px 0 8px;border-bottom:1px solid var(--line);margin-bottom:6px;flex-shrink:0}
.chip.tpl{background:var(--panel2);border:1px solid var(--line);color:var(--text);padding:3px 8px;font-size:11.5px;border-radius:5px}
.chip.tpl:hover{border-color:var(--focus);color:var(--focus)}
.tpl-row{display:grid;grid-template-columns:1fr auto auto;gap:4px;margin:4px 0}
.tpl-row .tpl-name{flex:1;min-width:0}
#journalPanel .j-row{display:grid;grid-template-columns:80px 1fr auto;gap:6px;align-items:baseline;font-size:11px;padding:2px 0}
#journalPanel .j-time{color:var(--dim)}
.jt{display:inline-block;background:var(--panel2);border:1px solid var(--line);border-radius:3px;padding:0 5px;font-size:10px;margin-right:3px}
.j-toolbar{display:flex;gap:6px;margin-bottom:6px}
.j-toolbar input{flex:1}
.j-body{max-height:60vh;overflow:auto;border:1px solid var(--line);border-radius:4px}
.j-body .tbl td{text-align:left;font-size:11px;padding:3px 5px}
.j-body .tbl th{font-size:11px}
.j-note{width:100%;padding:1px 3px;font-size:11px}
#pnlPanel canvas{background:transparent;margin:4px 0}
#riskPanel .dash-row b.warn{color:var(--accent)}
#hmBtn.on{border-color:var(--focus);color:var(--focus)}

/* Backtest */
#btBtn{background:var(--panel2);border-color:var(--line)}
#btBtn:hover{border-color:var(--accent);color:var(--accent)}
#btPrev{font-variant-numeric:tabular-nums;gap:2px 8px}
#btPrev .l{color:var(--long);font-weight:600}
#btPrev .s{color:var(--short);font-weight:600}
#btInfo{min-height:16px;padding:4px 0}
#btCanvas{display:block;width:100%;height:80px;margin-top:6px;background:rgba(0,0,0,.15);border-radius:4px}

/* Auto-Trader panel */
#autoPanel{
  background:var(--panel2);
  border-bottom:1px solid var(--line);
  font-size:11.5px;
  color:var(--text);
  padding:0;
  flex-shrink:0;
  max-height:22vh;
  overflow-y:auto;
}
#autoPanel.on{border-left:3px solid var(--long)}
#autoPanel .dash-head{cursor:default;user-select:none}
#autoPanel .at-stat{display:flex;justify-content:space-between;padding:3px 10px;font-size:11px}
#autoPanel .at-stat span{color:var(--dim)}
#autoPanel .at-btns{display:flex;gap:4px;padding:6px 10px;flex-wrap:wrap}
#autoPanel .at-btns .btn{flex:1;min-width:80px}
#autoPanel .at-btns .btn.on{background:var(--long);border-color:var(--long);color:#fff}
#autoPanel .at-btns .btn.off{background:var(--short);border-color:var(--short);color:#fff}
.at-log{padding:4px 10px;font-size:10.5px;color:var(--dim);border-top:1px dashed var(--line);max-height:100px;overflow-y:auto}
.at-log .log-entry{margin-bottom:2px}
.at-log .log-entry .l{color:var(--long);font-weight:700}
.at-log .log-entry .s{color:var(--short);font-weight:700}