:root{
  --bg:#030811;--panel:#091523;--panel2:#0d1b2b;--panel3:#07111d;
  --line:#18304a;--line2:#294a69;--text:#e9f2fc;--muted:#7790aa;
  --green:#0fd39a;--red:#ff4d69;--blue:#438cff;--gold:#f7b93d;
  --violet:#8f65ff;--cyan:#3bb7ff;--shadow:0 16px 44px rgba(0,0,0,.25);
  color-scheme:dark;font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text)}
body{min-width:1180px;background:#030811;font-size:clamp(13px,.72vw,15px);line-height:1.45}
button,input{font:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed}
svg{display:block;flex:none}
[data-lucide]{width:16px;height:16px;stroke-width:1.8}
.app{height:100vh;min-height:700px;overflow:hidden}
.topbar{height:64px;display:flex;align-items:center;padding:0 18px;border-bottom:1px solid var(--line);background:#07111f;position:relative;z-index:20}
.brand{display:flex;align-items:center;gap:10px;width:255px;text-decoration:none;color:#5d9cff;font-weight:900;letter-spacing:2px;white-space:nowrap}
.brand img{width:30px;height:30px;border-radius:7px;display:block}
.live{display:inline-flex;align-items:center;gap:7px;margin-left:7px;color:var(--green);font:800 10px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:0}
.live:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 4px rgba(15,211,154,.08)}
.ticker{display:flex;align-items:stretch;flex:1;min-width:0;height:100%}
.metric{display:flex;align-items:center;gap:9px;padding:0 25px;border-left:1px solid rgba(24,48,74,.7);white-space:nowrap}
.metric-label{font-size:11px;color:#8ca1b7}
.metric-value{font:800 14px/1 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--gold)}
.metric-value.green{color:var(--green)}.metric-value.user{color:#b9cce0}.period-value{color:#9cb4ca}
.metric-value.negative{color:var(--red)}
.system-clock{font:600 14px/1 ui-monospace,SFMono-Regular,Consolas,monospace;color:#8ba0b5;margin:0 17px;white-space:nowrap}
.top-actions{display:flex;gap:8px;align-items:center}
.icon-btn,.filter-icon{width:34px;height:34px;border:1px solid var(--line2);background:#0b1929;color:#9cb3ca;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.icon-btn:hover,.filter-icon:hover{color:#fff;border-color:#46769f;background:#11243a}
.shell{padding:12px;display:grid;grid-template-columns:minmax(285px,24%) minmax(610px,1fr) minmax(330px,27%);gap:10px;height:calc(100vh - 64px);min-height:636px}
.column{min-width:0;min-height:0;display:flex;flex-direction:column;gap:10px}
.panel{background:rgba(9,21,35,.98);border:1px solid var(--line);border-radius:6px;box-shadow:var(--shadow);min-height:0;overflow:hidden}
.panel.flex{display:flex;flex-direction:column;flex:1}
.panel-head{height:54px;padding:0 14px;display:flex;align-items:center;gap:9px;border-bottom:1px solid var(--line);background:#0b1a2b}
.panel-head>i{color:#91b7d8}.panel-title{font-size:14px;font-weight:750}
.panel-sub{margin-left:auto;font:700 11px/1 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--muted)}
.status-dot{margin-left:auto;display:inline-flex;align-items:center;gap:7px;font-size:10px;color:var(--muted)}
.status-dot:before{content:"";width:7px;height:7px;border-radius:50%;background:#587086}.status-dot.on{color:var(--green)}.status-dot.on:before{background:var(--green)}
.record-head{height:58px}
.panel-tabs-title{height:100%;display:flex;align-items:stretch;gap:26px}
.panel-tabs-title span{display:flex;align-items:center;gap:8px;color:#7f94aa;font-weight:700;font-size:14px;position:relative}
.panel-tabs-title span.active{color:#e8f3ff}.panel-tabs-title span.active:after{content:"";height:2px;left:0;right:0;bottom:0;background:var(--blue);position:absolute}
.panel-tabs-title #record-sync{font-size:12px;color:var(--green)}
.panel-tabs-title #record-sync:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green)}
.scope-row{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;padding:9px 12px;border-bottom:1px solid var(--line);background:#081522}
.scope-row button{height:45px;border:1px solid var(--line);border-radius:5px;background:#07131f;color:#8ba2b8;text-align:left;padding:0 10px}
.scope-row button b{display:block;font-size:13px;color:#dbe9f6;margin-bottom:5px}.scope-row button small{display:block;font:700 10px/1 ui-monospace,SFMono-Regular,Consolas,monospace;color:#6f879d}
.scope-row button.active{border-color:#438cff;background:#102947;box-shadow:inset 0 0 0 1px rgba(67,140,255,.2)}
.scope-row button.active b{color:#fff}.scope-row button.active small{color:#85b9ff}
.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line)}
.summary-cell{height:76px;display:flex;flex-direction:column;justify-content:center;text-align:center;border-right:1px solid var(--line)}.summary-cell:last-child{border-right:0}
.summary-label{font-size:10px;color:var(--muted);margin-bottom:8px}.summary-value{font:800 17px/1 ui-monospace,SFMono-Regular,Consolas,monospace}
.summary-value.pos{color:var(--green)}.summary-value.neg{color:var(--red)}
.filter-row{height:56px;padding:9px 12px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}
.seg{display:flex;gap:7px}.seg button,.log-filters button{height:32px;border:1px solid var(--line);background:#08131f;color:#728aa2;padding:0 13px;border-radius:5px;font-size:11px}
.seg button.active,.log-filters button.active{border-color:#438cff;background:#15304f;color:#fff;box-shadow:inset 0 0 0 1px rgba(67,140,255,.25)}
.filter-icon{width:32px;height:32px}
.records{overflow:auto;min-height:0;flex:1;scrollbar-width:thin;scrollbar-color:#203a55 transparent}
.record{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:11px;padding:13px 12px;border-bottom:1px solid rgba(24,48,74,.8);align-items:center;min-height:78px}
.record:hover{background:#0e2033}
.dir{width:38px;height:38px;border:1px solid;border-radius:5px;display:flex;align-items:center;justify-content:center;font:900 12px/1 ui-monospace,SFMono-Regular,Consolas,monospace}
.dir.up{color:var(--green);background:rgba(15,211,154,.09);border-color:rgba(15,211,154,.32)}.dir.down{color:var(--red);background:rgba(255,77,105,.09);border-color:rgba(255,77,105,.32)}
.record-main{min-width:0}.record-line{display:flex;align-items:center;gap:7px;min-width:0}.record-title{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.result-badge{padding:3px 5px;border:1px solid;border-radius:4px;font-size:9px;font-weight:800}.result-badge.win{color:var(--green);border-color:rgba(15,211,154,.35)}.result-badge.loss{color:var(--red);border-color:rgba(255,77,105,.35)}.result-badge.pending{color:var(--gold);border-color:rgba(247,185,61,.35)}.result-badge.order{color:var(--cyan);border-color:rgba(39,195,255,.38);background:rgba(39,195,255,.06)}
.record-meta{display:flex;gap:11px;font:10px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--muted);margin-top:5px}
.record-pnl{text-align:right;font:800 13px/1 ui-monospace,SFMono-Regular,Consolas,monospace}.record-pnl small{display:block;color:var(--muted);font-size:9px;margin-top:7px}.record-pnl.pos{color:var(--green)}.record-pnl.neg{color:var(--red)}.record-pnl.order{color:var(--cyan)}
.pager{height:48px;display:flex;align-items:center;justify-content:center;gap:18px;border-top:1px solid var(--line);color:var(--muted);font:11px/1 ui-monospace,SFMono-Regular,Consolas,monospace}
.pager button{width:31px;height:30px;border:1px solid var(--line2);background:#0b1827;color:#9bb0c7;border-radius:5px;display:grid;place-items:center}.pager button:disabled{opacity:.35}
.command-panel{height:100%;display:flex;flex-direction:column;overflow:auto;scrollbar-width:thin;scrollbar-color:#203a55 transparent}
.market-meta{min-height:60px;padding:9px 15px;display:grid;grid-template-columns:1.15fr 1fr auto;gap:20px;align-items:center;border-bottom:1px solid var(--line);background:#0b1a2a}
.market-meta>div{min-width:0}.eyebrow{display:block;font-size:10px;color:var(--muted);margin-bottom:7px}.market-meta strong{display:flex;align-items:center;gap:8px;font-size:13px;color:#c7d7e7;white-space:nowrap}
.market-meta strong i{color:var(--gold)}
.settle-toggle{display:flex;align-items:center;gap:12px;cursor:pointer}.settle-toggle span{text-align:right}.settle-toggle small,.settle-toggle b{display:block;font-size:9px}.settle-toggle small{color:var(--muted);margin-bottom:5px}.settle-toggle b{color:#afc1d4}
.settle-toggle input{position:absolute;opacity:0}.settle-toggle>i{width:45px;height:24px;border-radius:12px;background:#25384b;border:1px solid #38546c;position:relative;transition:.2s}.settle-toggle>i:after{content:"";position:absolute;width:18px;height:18px;border-radius:50%;background:#d5e3ee;top:2px;left:3px;transition:.2s}.settle-toggle input:checked+i{background:#08775d;border-color:#0cbf8d}.settle-toggle input:checked+i:after{transform:translateX(20px)}
.period-zone{height:24px;margin:8px 10px 0;border:1px solid var(--line);border-bottom:0;background:#07131f;color:#7f98b1;border-radius:5px 5px 0 0;display:flex;align-items:center;gap:8px;padding:0 10px;font:800 9px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.2px}
.period-zone i{width:13px;height:13px;color:var(--cyan)}.period-zone.next-zone{margin-top:10px;color:#a7b9cb}.period-zone.next-zone i{color:var(--gold)}
.market-stage{margin:0 10px 0;padding:12px 14px 9px;background:#07131f;display:grid;grid-template-columns:1fr 1.15fr 1fr;align-items:center;border:1px solid var(--line);border-radius:0 0 5px 5px}
.price-side{text-align:center}.price-side span{display:block;font:900 18px/1 ui-monospace,SFMono-Regular,Consolas,monospace;margin-bottom:7px}.price-side strong{font:900 38px/.95 ui-monospace,SFMono-Regular,Consolas,monospace}.up-side{color:var(--green)}.down-side{color:var(--red)}
.settlement{text-align:center;color:#8ea3b7}.settlement>span{display:block;font-size:10px;margin-bottom:6px}.settlement>strong{display:block;font:800 32px/1 ui-monospace,SFMono-Regular,Consolas,monospace;color:#e7f0fa;letter-spacing:1px}.settlement small{display:block;margin-top:7px}.settlement b{font-weight:600;color:#aebfd0}
.distribution{grid-column:1/-1;margin-top:11px}.distribution-track{height:14px;border-radius:3px;background:var(--red);position:relative;overflow:hidden}.distribution-track span{display:block;height:100%;background:var(--green);transition:width .18s linear}.distribution-track i{position:absolute;top:-4px;bottom:-4px;width:3px;left:50%;background:#e9eef3;box-shadow:0 0 9px rgba(255,255,255,.4)}
.distribution-labels{display:grid;grid-template-columns:100px 1fr 100px;align-items:center;margin-top:9px;font:700 14px/1 ui-monospace,SFMono-Regular,Consolas,monospace}.distribution-labels b:first-child{color:var(--green)}.distribution-labels b:last-child{text-align:right;color:var(--red)}.distribution-labels span{text-align:center;font:10px/1 "Segoe UI","Microsoft YaHei",sans-serif;color:var(--muted)}
.market-stats{grid-column:1/-1;margin-top:10px;display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--line);background:#091726}
.market-stats div{padding:8px 6px;text-align:center;border-right:1px solid var(--line)}.market-stats div:last-child{border-right:0}.market-stats small{display:block;color:var(--muted);font-size:8px;margin-bottom:5px}.market-stats b{font:800 12px/1 ui-monospace,SFMono-Regular,Consolas,monospace}.market-stats .green{color:var(--green)}
.next-market-panel{margin:0 10px 10px;border:1px solid var(--line);background:#081522;border-radius:0 0 5px 5px;overflow:hidden}
.next-market-head{height:30px;padding:0 11px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);background:#0a1828}
.next-market-head span{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:800;color:#d8e7f5}.next-market-head span i{color:var(--gold)}
.next-market-head b{margin-left:auto;font:800 12px/1 ui-monospace,SFMono-Regular,Consolas,monospace;color:#b9cce0}.next-market-head em{font-style:normal;font:800 11px/1 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--gold)}
.next-odds-grid{display:grid;grid-template-columns:128px 1fr 128px;gap:10px;align-items:center;padding:8px 10px}
.next-odds-card{height:54px;border:1px solid var(--line);background:#06111d;border-radius:5px;padding:7px 9px;overflow:hidden}.next-odds-card span{display:block;font:900 11px/1 ui-monospace,SFMono-Regular,Consolas,monospace;margin-bottom:4px}.next-odds-card strong{display:block;font:900 23px/.95 ui-monospace,SFMono-Regular,Consolas,monospace}.next-odds-card small{display:block;margin-top:5px;color:#7790aa;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.next-odds-card.up span,.next-odds-card.up strong,.next-odds-card.up b{color:var(--green)}.next-odds-card.down span,.next-odds-card.down strong,.next-odds-card.down b{color:var(--red)}
.next-odds-meter{min-width:0}.next-track{height:12px;border-radius:3px;background:var(--red);position:relative;overflow:hidden}.next-track span{display:block;height:100%;background:var(--green);transition:width .18s linear}.next-track i{position:absolute;top:-3px;bottom:-3px;width:2px;left:50%;background:#e9eef3;box-shadow:0 0 8px rgba(255,255,255,.35)}
.next-odds-meter small{display:block;text-align:center;margin-top:8px;color:#7f96ad;font-size:10px}
.signals{padding:10px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.signal-card{border:1px solid var(--line);background:#0a1726;padding:10px;border-radius:5px;min-height:112px}.signal-card.ai{border-top-color:var(--blue)}.signal-card.smart{border-top-color:var(--violet)}
.signal-head{display:flex;align-items:center;justify-content:space-between;color:#c5d5e5;font-size:12px;font-weight:750}.signal-head>span{display:flex;align-items:center;gap:7px}.signal-head>b{padding:4px 8px;border:1px solid rgba(15,211,154,.35);border-radius:4px;color:var(--green);font-size:10px}
.signal-state{margin-top:15px;display:flex;align-items:flex-end;gap:9px}.signal-direction{font:900 23px/1 ui-monospace,SFMono-Regular,Consolas,monospace}.signal-direction.up{color:var(--green)}.signal-direction.down{color:var(--red)}.signal-score{margin-left:auto;font:800 17px/1 ui-monospace,SFMono-Regular,Consolas,monospace;color:#c8d8e8}
.confidence-row{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:9px;margin-top:14px;color:var(--muted);font-size:9px}.mini-track{height:6px;background:#20344b}.mini-track span{display:block;height:100%;background:var(--blue)}.smart .mini-track span{background:var(--violet)}
.signal-note{font-size:10px;color:#8299b0;margin-top:12px}
.consensus{margin:0 10px 10px;padding:10px 12px;border:1px solid var(--line2);background:#0a1725;display:flex;align-items:center;gap:9px;font-size:11px}.consensus>i{color:var(--gold)}.consensus strong{color:var(--gold)}.consensus span:last-child{margin-left:auto;color:var(--muted);font-size:10px}
.risk{padding:9px 11px;border-top:1px solid var(--line);flex:0 0 auto;min-height:160px;display:flex;flex-direction:column;justify-content:flex-start}
.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.section-heading>span,.mode-title{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700}.section-heading small{color:var(--muted);font-size:9px}
.risk-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.field{display:block;background:#081522;border:1px solid var(--line);padding:9px;border-radius:5px}.field>span{display:block;font-size:10px;color:#afc0d1}.field>span small{color:#617a92}.field input{width:100%;height:26px;border:0;outline:0;background:transparent;color:#fff;font:800 19px/1 ui-monospace,SFMono-Regular,Consolas,monospace;margin:5px 0}.field em{font-style:normal;color:#657f98;font-size:9px}.rule-card strong{display:block;min-height:26px;margin:5px 0;color:#10d59a;font:800 15px/1.25 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:normal}.rule-card{box-shadow:inset 0 0 0 1px rgba(16,213,154,.04)}
.thresholds{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:7px}.thresholds label{height:40px;border:1px solid var(--line);background:#081522;display:flex;align-items:center;padding:0 10px;gap:7px;border-radius:5px}.thresholds span{color:#86a0b8;font-size:10px}.thresholds b{margin-left:auto}.thresholds input{width:47px;border:0;background:transparent;color:#fff;outline:0;text-align:right;font:800 13px/1 ui-monospace,SFMono-Regular,Consolas,monospace}.thresholds em{font-style:normal;color:var(--muted);font-size:10px}
.risk-apply{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px}.risk-apply span{font-size:10px;color:#7f96ae}.risk-apply button{height:34px;border-radius:5px;border:1px solid rgba(39,195,255,.35);background:#0b2135;color:#b9d8f5;padding:0 12px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:6px}.risk-apply button.dirty{border-color:rgba(247,185,61,.65);color:#ffd36a;background:rgba(247,185,61,.08)}
.command-bar{padding:0 11px 11px;margin-top:auto}.mode-title{height:31px}
.mode-row{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.mode-row button{height:50px;border:1px solid var(--line2);background:#0b1928;color:#8ba2b8;border-radius:5px;font-size:12px;display:flex;align-items:center;justify-content:center;gap:8px}.mode-row button.active{color:#fff;background:#102940;border-color:var(--green);box-shadow:inset 0 0 0 1px rgba(15,211,154,.15)}
.action-row{display:grid;grid-template-columns:1fr minmax(210px,.85fr) 105px;gap:7px;margin-top:9px}.engine-summary{height:50px;border:1px solid var(--line);background:#081522;display:flex;align-items:center;gap:10px;padding:0 13px}.engine-summary>i{color:var(--green);width:21px;height:21px}.engine-summary b,.engine-summary small{display:block}.engine-summary b{color:var(--green);font-size:11px}.engine-summary small{font-size:9px;color:var(--muted);margin-top:4px}
.start-btn,.stop-btn{height:50px;border-radius:5px;font-weight:850;display:flex;align-items:center;justify-content:center;gap:9px}.start-btn{border:1px solid #15d69f;color:#04130e;background:#10c992;font-size:16px}.start-btn:disabled{filter:saturate(.3);opacity:.58}.stop-btn{color:#9fb0c1;background:#111f31;border:1px solid var(--line2)}.stop-btn.enabled{color:#fff;background:#a52b42;border-color:#d94f66}
.positions-panel{flex:1.05}.logs-panel{flex:.95}
.tabs{display:flex;border-bottom:1px solid var(--line)}.tabs button{flex:1;height:43px;border:0;border-right:1px solid var(--line);background:#091624;color:var(--muted);font-size:12px}.tabs button.active{background:#13283f;color:#fff}
.position-summary{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line)}.position-summary div{height:71px;display:flex;flex-direction:column;justify-content:center;text-align:center;border-right:1px solid var(--line)}.position-summary div:last-child{border-right:0}.position-summary small{color:var(--muted);font-size:9px;margin-bottom:7px}.position-summary b{font:800 14px/1 ui-monospace,SFMono-Regular,Consolas,monospace}
.sell-watch{border-bottom:1px solid var(--line);background:#07131f;padding:10px 12px}
.sell-watch-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.sell-watch-head span{font-size:11px;font-weight:800;color:#d7e6f3}.sell-watch-head b{font:850 10px/1 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--muted);padding:4px 7px;border:1px solid var(--line2);border-radius:4px}
.sell-watch-head b.ready{color:var(--green);border-color:rgba(15,211,154,.35);background:rgba(15,211,154,.06)}.sell-watch-head b.warn{color:var(--gold);border-color:rgba(247,185,61,.35);background:rgba(247,185,61,.06)}.sell-watch-head b.danger{color:var(--red);border-color:rgba(255,77,105,.35);background:rgba(255,77,105,.06)}
.sell-watch-main{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}.sell-watch-main strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sell-watch-main span{font:800 11px/1 ui-monospace,SFMono-Regular,Consolas,monospace;color:#9fb4c9;text-align:right}
.sell-watch-lines{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:9px}.sell-watch-lines span{height:28px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);background:#081522;border-radius:4px;font:800 10px/1 ui-monospace,SFMono-Regular,Consolas,monospace;color:#89a1b9}
.position-list{overflow:auto;min-height:0;flex:1;scrollbar-width:thin;scrollbar-color:#203a55 transparent}
.position{padding:13px;border-bottom:1px solid var(--line)}.position-top{display:flex;align-items:center;gap:8px}.position-title{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.position-status{margin-left:auto;font:800 9px/1 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--muted);padding:3px 6px;border:1px solid var(--line2);border-radius:4px}.position-status.warn{color:var(--gold);border-color:rgba(247,185,61,.35)}.position-status.danger{color:var(--red);border-color:rgba(255,77,105,.35)}.position-status.ready{color:var(--green);border-color:rgba(15,211,154,.35)}.badge{padding:4px 7px;border:1px solid var(--line2);border-radius:4px;font-size:9px}.badge.up{color:var(--green)}.badge.down{color:var(--red)}
.position-meta{display:grid;grid-template-columns:repeat(3,1fr);margin-top:12px;font:9px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--muted)}.position-meta b{display:block;color:#d9e7f4;font-size:11px;margin-top:3px}.position-actions{display:flex;align-items:center;margin-top:11px}.pnl{font:800 11px/1 ui-monospace,SFMono-Regular,Consolas,monospace}.pnl.pos{color:var(--green)}.pnl.neg{color:var(--red)}
.sell-btn,.cancel-btn{margin-left:auto;height:28px;padding:0 10px;border:1px solid #326895;background:#14304d;color:#e2edf7;border-radius:4px;font-size:10px}.sell-btn:disabled,.cancel-btn:disabled{opacity:.45}
.log-filters{height:45px;padding:7px 11px;display:flex;gap:6px;border-bottom:1px solid var(--line)}.log-filters button{height:29px;padding:0 10px}
.logs{padding:9px 11px;overflow:auto;flex:1;background:#050d16;font:10px/1.8 ui-monospace,SFMono-Regular,Consolas,monospace;color:#8ea6bf;scrollbar-width:thin;scrollbar-color:#203a55 transparent}
.log{display:grid;grid-template-columns:60px auto 1fr;gap:7px;align-items:start}.log time{color:#49657e}.log-tag{font:800 9px/1.5 "Segoe UI","Microsoft YaHei",sans-serif;border:1px solid var(--line2);border-radius:3px;padding:1px 4px;color:#81a1bd}.log.ok .log-text{color:var(--green)}.log.warn .log-text{color:var(--gold)}.log.err .log-text{color:var(--red)}.log.hidden{display:none}
.empty{display:grid;place-items:center;min-height:140px;color:#526c84;font-size:11px;text-align:center;padding:20px}
.toast{position:fixed;right:18px;top:76px;z-index:50;background:#122238;border:1px solid #33567a;color:#fff;padding:11px 14px;border-radius:5px;box-shadow:var(--shadow);font-size:12px;opacity:0;transform:translateY(-8px);pointer-events:none;transition:.18s}.toast.show{opacity:1;transform:none}.toast.err{border-color:#8e3548;color:#ffd5dc}
@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:1500px){
  body{min-width:1100px}.shell{grid-template-columns:260px minmax(570px,1fr) 310px}.metric{padding:0 16px}.market-stage{padding-top:15px}.price-side strong{font-size:40px}.settlement>strong{font-size:35px}.risk-grid{grid-template-columns:repeat(2,1fr)}.field input{font-size:16px}.signal-card{min-height:126px}
}
@media(max-height:850px){
  .app{min-height:650px}.shell{min-height:586px}.topbar{height:58px}.shell{height:calc(100vh - 58px)}.panel-head{height:45px}.summary-cell{height:62px}.filter-row{height:45px}.record{min-height:65px;padding:9px 11px}.market-meta{min-height:57px;padding:8px 14px}.market-stage{padding:12px 14px 9px}.price-side span{font-size:18px;margin-bottom:7px}.price-side strong{font-size:36px}.settlement>strong{font-size:31px}.distribution{margin-top:12px}.market-stats{margin-top:9px}.market-stats div{padding:8px 5px}.signals{padding:8px}.signal-card{min-height:108px;padding:10px}.signal-state{margin-top:10px}.confidence-row{margin-top:9px}.signal-note{margin-top:8px}.consensus{margin-bottom:7px;padding:8px 10px}.risk{padding:8px;min-height:170px}.field{padding:7px}.field input{height:21px;margin:3px 0}.command-bar{padding:0 8px 8px}.mode-row button{height:39px}.action-row{margin-top:6px}.start-btn,.stop-btn,.engine-summary{height:41px}.position-summary div{height:57px}.tabs button{height:36px}.log-filters{height:38px;padding:5px 9px}
}
@media(max-width:1180px){
  body{min-width:0}.app{height:auto;min-height:100vh;overflow:visible}.topbar{height:auto;min-height:58px;flex-wrap:wrap;padding:9px 12px;gap:8px}.brand{width:auto;margin-right:auto}.ticker{order:3;width:100%;height:45px;overflow:auto;border-top:1px solid var(--line);scrollbar-width:thin}.metric{padding:0 15px}.system-clock{display:none}
  .shell{height:auto;min-height:0;display:flex;flex-direction:column;padding:8px}.command-column{order:-1}.column{min-height:560px}.command-panel{height:auto}.records-column,.official-column{min-height:520px}.signals{grid-template-columns:1fr}.market-meta{grid-template-columns:1fr auto}.market-meta>div:nth-child(2){display:none}.risk-grid{grid-template-columns:1fr 1fr}.action-row{grid-template-columns:1fr 1fr}.engine-summary{grid-column:1/-1}.price-side strong{font-size:32px}.settlement>strong{font-size:29px}.panel.flex{min-height:520px}.next-odds-grid{grid-template-columns:1fr}.next-odds-card{height:auto}.next-odds-card small{white-space:normal}
}
@media(max-width:900px){
  .risk-grid,.thresholds,.mode-row{grid-template-columns:1fr}.market-stage{grid-template-columns:1fr 1fr}.settlement{grid-column:1/-1;order:-1;margin-bottom:10px}.market-stats{grid-template-columns:1fr 1fr}.market-stats div:nth-child(5){grid-column:1/-1}.distribution-labels{grid-template-columns:58px 1fr 58px}.sell-watch-main{display:block}.sell-watch-main span{display:block;text-align:left;margin-top:6px}.sell-watch-lines{grid-template-columns:1fr 1fr}.log{grid-template-columns:54px auto 1fr}.action-row{grid-template-columns:1fr}.start-btn,.stop-btn{width:100%}.records-column,.official-column,.column{min-height:480px}
}

/* Readability pass: keep the trading console dense, but readable on large and mid screens. */
.brand{font-size:clamp(15px,.78vw,17px)}
.live{font-size:clamp(11px,.58vw,12px)}
.metric-label{font-size:clamp(12px,.62vw,13px)}
.metric-value,.system-clock{font-size:clamp(15px,.78vw,17px)}
.icon-btn,.filter-icon{width:clamp(36px,1.95vw,42px);height:clamp(36px,1.95vw,42px)}

.panel-head{height:clamp(56px,3vw,62px);padding-inline:clamp(16px,.9vw,20px)}
.panel-title{font-size:clamp(16px,.86vw,18px)}
.panel-sub,.status-dot{font-size:clamp(12px,.62vw,13px)}
.panel-tabs-title span{font-size:clamp(15px,.8vw,17px)}
.summary-label{font-size:clamp(12px,.62vw,13px)}
.summary-value{font-size:clamp(18px,.98vw,21px)}
.seg button,.log-filters button{height:clamp(34px,1.9vw,38px);font-size:clamp(13px,.68vw,14px);padding-inline:14px}

.record{grid-template-columns:44px minmax(0,1fr) auto;gap:13px;min-height:86px}
.dir{width:40px;height:40px;font-size:13px}
.record-title{font-size:clamp(13px,.7vw,15px)}
.result-badge{font-size:11px;padding:4px 7px}
.record-meta{font-size:clamp(11px,.62vw,13px);line-height:1.55}
.record-pnl{font-size:clamp(14px,.76vw,16px)}
.record-pnl small{font-size:11px}
.pager{font-size:clamp(12px,.66vw,14px)}

.eyebrow{font-size:clamp(12px,.62vw,13px)}
.market-meta strong{font-size:clamp(14px,.75vw,16px)}
.settle-toggle small,.settle-toggle b{font-size:clamp(11px,.6vw,12px)}
.period-zone{height:28px;font-size:clamp(10px,.58vw,12px)}
.price-side span{font-size:clamp(19px,1.05vw,22px)}
.price-side strong{font-size:clamp(40px,2.45vw,50px)}
.settlement>span{font-size:clamp(12px,.64vw,14px)}
.settlement>strong{font-size:clamp(34px,2vw,43px)}
.distribution-labels{font-size:clamp(14px,.76vw,17px)}
.distribution-labels span{font-size:clamp(11px,.6vw,13px)}
.market-stats small{font-size:clamp(10px,.56vw,12px)}
.market-stats b{font-size:clamp(13px,.72vw,15px)}

.next-market-head span,.signal-head,.section-heading>span,.mode-title{font-size:clamp(13px,.7vw,15px)}
.next-market-head b,.next-market-head em{font-size:clamp(12px,.64vw,14px)}
.next-odds-card{height:clamp(60px,3.2vw,68px)}
.next-odds-card span{font-size:clamp(12px,.64vw,14px)}
.next-odds-card strong{font-size:clamp(25px,1.55vw,31px)}
.next-odds-card small,.next-odds-meter small{font-size:clamp(10px,.56vw,12px)}
.signal-direction{font-size:clamp(24px,1.38vw,29px)}
.signal-score{font-size:clamp(18px,1vw,21px)}
.confidence-row,.signal-note,.consensus,.consensus span:last-child{font-size:clamp(11px,.62vw,13px)}

.field>span,.thresholds span{font-size:clamp(12px,.64vw,13px)}
.field input{font-size:clamp(20px,1.08vw,23px)}
.field em,.section-heading small{font-size:clamp(10px,.56vw,12px)}
.rule-card strong{font-size:clamp(16px,.9vw,18px)}
.thresholds input{font-size:clamp(14px,.76vw,16px)}
.thresholds em{font-size:clamp(11px,.6vw,12px)}
.mode-row button{height:clamp(52px,2.85vw,58px);font-size:clamp(13px,.72vw,15px)}
.engine-summary b{font-size:clamp(12px,.66vw,14px)}
.engine-summary small{font-size:clamp(10px,.56vw,12px)}
.start-btn,.stop-btn{font-size:clamp(16px,.9vw,19px)}

.tabs button{height:clamp(48px,2.65vw,54px);font-size:clamp(15px,.8vw,17px)}
.position-summary div{height:clamp(78px,4.1vw,88px)}
.position-summary small{font-size:clamp(12px,.64vw,13px)}
.position-summary b{font-size:clamp(17px,.92vw,20px)}
.sell-watch{padding:clamp(13px,.78vw,17px) clamp(15px,.9vw,20px)}
.sell-watch-head span{font-size:clamp(14px,.78vw,16px)}
.sell-watch-head b{font-size:clamp(11px,.62vw,13px)}
.sell-watch-main strong{font-size:clamp(14px,.78vw,16px)}
.sell-watch-main span{font-size:clamp(13px,.72vw,15px)}
.sell-watch-lines span{height:clamp(34px,1.9vw,39px);font-size:clamp(12px,.68vw,14px)}
.position{padding:clamp(15px,.9vw,19px)}
.position-title{font-size:clamp(14px,.76vw,16px)}
.position-status,.badge{font-size:clamp(11px,.62vw,13px)}
.position-meta{font-size:clamp(12px,.66vw,14px);line-height:1.65}
.position-meta b{font-size:clamp(14px,.78vw,16px)}
.pnl{font-size:clamp(13px,.72vw,15px)}
.sell-btn,.cancel-btn{height:clamp(34px,1.9vw,38px);font-size:clamp(12px,.68vw,14px);padding-inline:14px}

.log-filters{height:clamp(52px,2.8vw,58px);padding:8px 12px}
.logs{font-size:clamp(12px,.68vw,14px);line-height:1.85;padding:12px 14px}
.log{grid-template-columns:clamp(66px,3.6vw,76px) auto 1fr;gap:9px}
.log-tag{font-size:clamp(11px,.62vw,13px);padding:2px 6px}
.empty{font-size:clamp(13px,.7vw,15px)}

@media(max-width:1180px){
  body{font-size:14px}
  .record{min-height:80px}
  .price-side strong{font-size:36px}
  .settlement>strong{font-size:32px}
  .logs{font-size:13px}
}

@media(max-width:900px){
  .panel-head{height:54px}
  .tabs button{height:46px}
  .position-summary div{height:74px}
  .sell-watch-lines span{height:32px}
  .log{grid-template-columns:62px auto 1fr}
}

@media(min-width:2200px){
  body{font-size:17px}
  [data-lucide]{width:19px;height:19px}
  .app{min-height:900px}
  .topbar{height:74px;padding-inline:24px}
  .brand{width:320px;font-size:19px;gap:13px}
  .brand img{width:36px;height:36px}
  .live{font-size:13px}
  .metric{padding-inline:34px;gap:12px}
  .metric-label{font-size:14px}
  .metric-value,.system-clock{font-size:18px}
  .icon-btn,.filter-icon{width:44px;height:44px}

  .shell{height:calc(100vh - 74px);grid-template-columns:minmax(410px,24%) minmax(980px,1fr) minmax(500px,27%);gap:16px;padding:16px}
  .column{gap:16px}
  .panel{border-radius:8px}
  .panel-head{height:70px;padding-inline:22px;gap:12px}
  .panel-title{font-size:21px}
  .panel-sub,.status-dot{font-size:14px}
  .panel-tabs-title span{font-size:18px}

  .summary-cell{height:90px}
  .summary-label{font-size:14px}
  .summary-value{font-size:23px}
  .filter-row{height:66px;padding-inline:16px}
  .seg button,.log-filters button{height:42px;font-size:15px;padding-inline:18px}
  .record{grid-template-columns:52px minmax(0,1fr) auto;gap:16px;min-height:98px;padding:16px}
  .dir{width:48px;height:48px;font-size:15px}
  .record-title{font-size:16px}
  .record-meta{font-size:14px}
  .record-pnl{font-size:17px}
  .pager{height:58px;font-size:15px}

  .market-meta{min-height:78px;padding:13px 22px}
  .eyebrow{font-size:14px}
  .market-meta strong{font-size:17px}
  .settle-toggle small,.settle-toggle b{font-size:13px}
  .settle-toggle>i{width:54px;height:30px;border-radius:15px}
  .settle-toggle>i:after{width:23px;height:23px}
  .settle-toggle input:checked+i:after{transform:translateX(24px)}
  .period-zone{height:34px;margin:12px 14px 0;padding-inline:14px;font-size:13px}
  .market-stage{margin-inline:14px;padding:20px 22px 16px}
  .price-side span{font-size:25px}
  .price-side strong{font-size:58px}
  .settlement>span{font-size:15px}
  .settlement>strong{font-size:50px}
  .distribution-track{height:18px}
  .distribution-labels{font-size:19px}
  .distribution-labels span{font-size:14px}
  .market-stats div{padding:13px 8px}
  .market-stats small{font-size:13px}
  .market-stats b{font-size:17px}

  .next-market-panel,.consensus{margin-inline:14px}
  .next-market-head{height:40px;padding-inline:16px}
  .next-market-head span,.signal-head,.section-heading>span,.mode-title{font-size:16px}
  .next-market-head b,.next-market-head em{font-size:15px}
  .next-odds-grid{grid-template-columns:168px 1fr 168px;gap:14px;padding:12px 14px}
  .next-odds-card{height:76px;padding:11px 13px}
  .next-odds-card span{font-size:15px}
  .next-odds-card strong{font-size:36px}
  .next-odds-card small,.next-odds-meter small{font-size:13px}
  .signals{padding:14px;gap:14px}
  .signal-card{min-height:148px;padding:15px}
  .signal-direction{font-size:34px}
  .signal-score{font-size:23px}
  .confidence-row,.signal-note,.consensus,.consensus span:last-child{font-size:14px}
  .mini-track{height:8px}

  .risk{padding:14px 16px;min-height:210px}
  .risk-grid{gap:10px}
  .field{padding:13px}
  .field>span,.thresholds span{font-size:14px}
  .field input{height:34px;font-size:25px}
  .field em,.section-heading small{font-size:13px}
  .rule-card strong{font-size:20px}
  .thresholds{gap:10px;margin-top:10px}
  .thresholds label{height:50px}
  .thresholds input{font-size:18px}
  .thresholds em{font-size:13px}
  .risk-apply span{font-size:13px}.risk-apply button{height:42px;font-size:14px;padding:0 16px}
  .command-bar{padding:0 16px 16px}
  .mode-title{height:40px}
  .mode-row{gap:10px}
  .mode-row button{height:64px;font-size:17px}
  .action-row{grid-template-columns:1fr minmax(260px,.85fr) 130px;gap:10px;margin-top:12px}
  .engine-summary,.start-btn,.stop-btn{height:62px}
  .engine-summary b{font-size:15px}
  .engine-summary small{font-size:13px}
  .start-btn,.stop-btn{font-size:21px}

  .tabs button{height:62px;font-size:19px}
  .position-summary div{height:100px}
  .position-summary small{font-size:14px}
  .position-summary b{font-size:22px}
  .sell-watch{padding:18px 22px}
  .sell-watch-head{margin-bottom:13px}
  .sell-watch-head span{font-size:18px}
  .sell-watch-head b{font-size:14px;padding:6px 10px}
  .sell-watch-main strong{font-size:17px}
  .sell-watch-main span{font-size:16px}
  .sell-watch-lines{gap:10px;margin-top:14px}
  .sell-watch-lines span{height:43px;font-size:15px}
  .position{padding:20px 22px}
  .position-title{font-size:17px}
  .position-status,.badge{font-size:14px;padding:6px 9px}
  .position-meta{font-size:15px;line-height:1.75}
  .position-meta b{font-size:18px}
  .pnl{font-size:16px}
  .sell-btn,.cancel-btn{height:42px;font-size:15px;padding-inline:18px}

  .log-filters{height:64px;padding:10px 16px}
  .logs{font-size:16px;line-height:1.9;padding:16px 18px}
  .log{grid-template-columns:86px auto 1fr;gap:12px}
  .log-tag{font-size:14px;padding:3px 8px}
  .empty{font-size:16px}
  .toast{font-size:15px;padding:14px 18px}
}
