:root{color-scheme:light;--bg: #f4f6fa;--bg-soft: #eef2f7;--panel: #ffffff;--panel-2: #f8fafc;--panel-3: #f1f5f9;--text: #0f172a;--text-2: #334155;--muted: #64748b;--line: #e2e8f0;--line-strong: #cbd5e1;--accent: #1d4ed8;--accent-2: #2563eb;--accent-soft: #eff6ff;--up: #c62828;--up-soft: #fef2f2;--down: #0f8a5f;--down-soft: #ecfdf5;--warn: #b45309;--error: #b91c1c;--forecast: #7c3aed;--shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 24px rgba(15, 23, 42, .06);--shadow-soft: 0 1px 2px rgba(15, 23, 42, .05);--radius: 14px;--radius-sm: 9px;--chart-bg: #ffffff}[data-theme=dark]{color-scheme:dark;--bg: #0b1120;--bg-soft: #0f172a;--panel: #111a2e;--panel-2: #16213a;--panel-3: #1b2740;--text: #e2e8f0;--text-2: #cbd5e1;--muted: #94a3b8;--line: #24314d;--line-strong: #334155;--accent: #60a5fa;--accent-2: #3b82f6;--accent-soft: #172554;--up: #f87171;--up-soft: #3b1418;--down: #34d399;--down-soft: #0f2e25;--warn: #fbbf24;--error: #f87171;--forecast: #a78bfa;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 12px 30px rgba(0, 0, 0, .32);--shadow-soft: 0 1px 2px rgba(0, 0, 0, .35);--chart-bg: #111a2e}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:radial-gradient(1200px 600px at 12% -10%,rgba(37,99,235,.07),transparent 60%),radial-gradient(900px 500px at 100% 0%,rgba(124,58,237,.05),transparent 55%),var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:var(--accent)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app{max-width:1520px;margin:0 auto;padding:14px 18px 28px}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:10px 14px;margin:0 0 14px;background:color-mix(in srgb,var(--panel) 88%,transparent);border:1px solid var(--line);border-radius:var(--radius);backdrop-filter:blur(14px);box-shadow:var(--shadow-soft);overflow:hidden}.brand{display:flex;align-items:center;gap:10px;min-width:180px}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:linear-gradient(140deg,var(--accent-2),#0ea5e9);color:#fff;font-weight:800;letter-spacing:.5px;box-shadow:0 4px 12px #2563eb47}.brand-title{font-size:17px;font-weight:800;letter-spacing:.2px;line-height:1.2}.brand-sub{color:var(--muted);font-size:11.5px}.topbar-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.etf-picker{display:flex;align-items:center;gap:6px;padding:4px;background:var(--panel-2);border:1px solid var(--line);border-radius:10px}.select{height:32px;padding:0 26px 0 9px;border:1px solid var(--line-strong);border-radius:8px;background:var(--panel) no-repeat right 8px center/10px;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 13px) 14px,calc(100% - 9px) 14px;background-size:4px 4px;background-repeat:no-repeat;font-size:12.5px;outline:none}.select:focus-visible,.mini-input:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.select.compact{min-width:150px;height:32px;background-color:var(--panel)}.mini-input{width:108px;height:30px;padding:0 8px;border:1px solid var(--line-strong);border-radius:8px;background:var(--panel);font-size:12.5px;outline:none}.ghost-btn,.primary-btn,.theme-btn{height:32px;padding:0 11px;border-radius:8px;border:1px solid var(--line-strong);background:var(--panel);color:var(--text-2);font-size:12.5px;font-weight:600;white-space:nowrap;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .1s ease}.ghost-btn:hover,.theme-btn:hover,.ghost-btn.active{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.ghost-btn.tiny{height:26px;padding:0 8px;font-size:11.5px}.ghost-btn.wide{width:100%;margin-top:8px}.ghost-btn.danger:hover{border-color:var(--error);color:var(--error);background:var(--up-soft)}.primary-btn{border-color:transparent;background:linear-gradient(135deg,var(--accent-2),#3b82f6);color:#fff;box-shadow:0 3px 10px #2563eb38}.primary-btn:hover{filter:brightness(1.05)}.primary-btn.small{height:30px;padding:0 10px;font-size:12px}.theme-btn{width:34px;padding:0;font-size:12px;font-weight:700}.index-picker-wrap{position:relative}.index-picker-pop{position:absolute;top:calc(100% + 8px);right:0;z-index:50;width:320px;max-width:calc(100vw - 32px);padding:12px;background:var(--panel);border:1px solid var(--line-strong);border-radius:12px;box-shadow:var(--shadow)}.index-picker-row{display:flex;gap:6px;align-items:center;margin-top:8px}.index-picker-row .mini-input{flex:1;width:auto}.index-picker-pop small{display:block;margin-top:8px;color:var(--muted);font-size:11px;line-height:1.5}.toggle-btn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 10px;border:1px solid var(--line-strong);border-radius:8px;background:var(--panel);color:var(--text-2);font-size:12.5px;font-weight:600}.toggle-btn.on{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.toggle-track{position:relative;display:inline-block;width:26px;height:14px;border-radius:999px;background:var(--line-strong)}.toggle-btn.on .toggle-track{background:var(--accent)}.toggle-thumb{position:absolute;top:2px;left:2px;width:10px;height:10px;border-radius:50%;background:#fff;transition:transform .16s ease}.toggle-btn.on .toggle-thumb{transform:translate(12px)}.topbar-progress{position:absolute;left:0;bottom:0;height:2px;width:40%;background:linear-gradient(90deg,transparent,var(--accent),transparent);animation:progress-slide 1.2s infinite ease-in-out}@keyframes progress-slide{0%{transform:translate(-60%)}to{transform:translate(260%)}}.app-main{display:flex;flex-direction:column;gap:12px}.status-line{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:7px 12px;background:var(--panel);border:1px solid var(--line);border-radius:10px;color:var(--muted);font-size:12px}.source-state.ok{color:var(--down)}.source-state.warn{color:var(--warn)}.source-state.error{color:var(--error)}.notice-strip{display:flex;flex-wrap:wrap;gap:8px 16px;padding:9px 12px;border:1px dashed var(--line-strong);border-radius:10px;background:var(--panel-2);font-size:12px;color:var(--text-2)}.error-text{color:var(--error)}.warn-text{color:var(--warn)}.muted-text{color:var(--muted)}.pill{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;border:1px solid var(--line-strong);background:var(--panel-2);color:var(--muted);font-size:11px;font-weight:600;white-space:nowrap}.pill.solid{border-color:transparent;background:var(--accent-soft);color:var(--accent)}.pill.muted{background:var(--panel-3)}.pill.up-pill{border-color:var(--up);color:var(--up);background:var(--up-soft)}.pill.down-pill{border-color:var(--down);color:var(--down);background:var(--down-soft)}.pill.forecast-pill{border-color:var(--forecast);color:var(--forecast);background:color-mix(in srgb,var(--forecast) 10%,var(--panel))}.quote-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:12px}.quote-card{padding:14px 16px;border-radius:var(--radius);border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow-soft);position:relative;overflow:hidden}.quote-card:after{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--line-strong)}.quote-card.up:after{background:var(--up)}.quote-card.down:after{background:var(--down)}.quote-card.skeleton{min-height:176px;background:linear-gradient(100deg,var(--panel),var(--panel-2),var(--panel));background-size:200% 100%;animation:shimmer 1.4s infinite linear}@keyframes shimmer{0%{background-position:120% 0}to{background-position:-80% 0}}.quote-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.quote-head>div{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.quote-tag{display:inline-flex;align-items:center;height:20px;padding:0 6px;border-radius:5px;background:var(--accent-soft);color:var(--accent);font-size:10.5px;font-weight:700;letter-spacing:.4px}.quote-tag.index{background:color-mix(in srgb,#0e7490 12%,var(--panel));color:#0e7490}[data-theme=dark] .quote-tag.index{color:#22d3ee}.quote-head strong{font-size:14px;font-weight:700}.quote-change{font-size:13px;font-weight:700;text-align:right;white-space:nowrap}.quote-change em{display:block;font-style:normal;font-size:11px;font-weight:500;opacity:.8}.quote-price{margin:6px 0 2px;font-size:clamp(28px,4vw,42px);font-weight:800;letter-spacing:-.5px;line-height:1.1;font-variant-numeric:tabular-nums}.quote-meta{display:flex;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:11.5px;font-variant-numeric:tabular-nums}.quote-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px;padding-top:9px;border-top:1px dashed var(--line)}.quote-stats>div{display:flex;flex-direction:column;gap:1px;min-width:0}.quote-stats span{color:var(--muted);font-size:10.5px;display:inline-flex;align-items:center;gap:2px}.quote-stats strong{font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis}.quote-note{margin:8px 0 0;color:var(--muted);font-size:11.5px}.up{color:var(--up)!important}.down{color:var(--down)!important}.flat{color:var(--text-2)}.layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(340px,1fr);gap:12px;align-items:start}.col{display:flex;flex-direction:column;gap:12px;min-width:0}.card{padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow-soft);min-width:0}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}.card-head h2,.card h2{margin:0;display:flex;align-items:center;gap:5px;font-size:15px;font-weight:750;letter-spacing:.1px}.card-sub{margin:3px 0 0;color:var(--muted);font-size:11.5px;line-height:1.45}.mini-title{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase}.empty-text{margin:8px 0 2px;color:var(--muted);font-size:12.5px;line-height:1.6}.advice-card{position:relative;overflow:hidden}.advice-card.advice-buy{border-top:3px solid var(--up)}.advice-card.advice-sell{border-top:3px solid var(--down)}.advice-card.advice-wait{border-top:3px solid var(--accent)}.advice-badges{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.advice-hero{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 13px;border-radius:12px;background:var(--panel-2);border:1px solid var(--line)}.advice-buy .advice-hero{background:linear-gradient(120deg,var(--up-soft),var(--panel-2));border-color:color-mix(in srgb,var(--up) 22%,var(--line))}.advice-sell .advice-hero{background:linear-gradient(120deg,var(--down-soft),var(--panel-2));border-color:color-mix(in srgb,var(--down) 22%,var(--line))}.advice-side{display:flex;align-items:center;gap:10px;min-width:0}.advice-arrow{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--panel);border:1px solid var(--line);font-size:18px;font-weight:800;flex:0 0 auto}.advice-buy .advice-arrow{color:var(--up);border-color:color-mix(in srgb,var(--up) 30%,var(--line))}.advice-sell .advice-arrow{color:var(--down);border-color:color-mix(in srgb,var(--down) 30%,var(--line))}.advice-title{font-size:16px;font-weight:800;letter-spacing:.2px}.advice-buy .advice-title{color:var(--up)}.advice-sell .advice-title{color:var(--down)}.advice-sub{margin-top:2px;color:var(--muted);font-size:11.5px;display:flex;align-items:center;gap:2px;flex-wrap:wrap}.dot-sep{margin:0 4px;opacity:.5}.execute-btn{flex:0 0 auto;white-space:nowrap}.metric-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin-top:10px}.metric{padding:7px 8px;border-radius:9px;border:1px solid var(--line);background:var(--panel-2);min-width:0;position:relative}.metric-up{border-color:color-mix(in srgb,var(--up) 20%,var(--line));background:color-mix(in srgb,var(--up-soft) 65%,var(--panel))}.metric-down{border-color:color-mix(in srgb,var(--down) 20%,var(--line));background:color-mix(in srgb,var(--down-soft) 65%,var(--panel))}.metric-label{display:flex;align-items:center;gap:2px;color:var(--muted);font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metric-value{margin-top:1px;font-size:13px;font-weight:750;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis}.metric-up .metric-value{color:var(--up)}.metric-down .metric-value{color:var(--down)}.advice-reasons{margin-top:11px;padding:9px 11px;border-radius:10px;background:var(--panel-2);border:1px dashed var(--line)}.advice-reasons h3{margin:0 0 5px;font-size:12px;color:var(--text-2)}.advice-reasons ul,.reason-list{margin:0;padding-left:17px;color:var(--text-2);font-size:12px;line-height:1.75}.risk-notes{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.risk-notes span{padding:2px 7px;border-radius:6px;background:var(--up-soft);color:var(--warn);font-size:11px}.advice-foot{display:flex;flex-wrap:wrap;gap:12px;margin-top:9px;padding-top:8px;border-top:1px solid var(--line);color:var(--muted);font-size:11px}.skeleton-lines{display:flex;flex-direction:column;gap:8px}.skeleton-lines span{height:38px;border-radius:8px;background:linear-gradient(100deg,var(--panel-2),var(--panel-3),var(--panel-2));background-size:200% 100%;animation:shimmer 1.4s infinite linear}.chart-card{padding-bottom:10px}.chart-head{align-items:center}.chart-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.segmented{display:inline-flex;padding:2px;border-radius:8px;background:var(--panel-3);border:1px solid var(--line)}.segmented button{height:26px;padding:0 10px;border:0;border-radius:6px;background:transparent;color:var(--muted);font-size:11.5px;font-weight:600}.segmented button.active{background:var(--panel);color:var(--text);box-shadow:0 1px 3px #0f172a1f}.check{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:11.5px;white-space:nowrap;cursor:pointer}.check input{accent-color:var(--accent);width:13px;height:13px}.chart-wrap{position:relative;width:100%;height:clamp(300px,44vh,470px);background:var(--chart-bg);border-radius:10px;overflow:hidden;border:1px solid var(--line)}.chart-canvas{position:absolute;inset:0;display:block}.chart-overlay{pointer-events:auto;touch-action:none;cursor:crosshair}.chart-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--muted);font-size:13px;pointer-events:none}.chart-empty small{font-size:11.5px;opacity:.75}.chart-float{position:absolute;top:8px;right:66px;z-index:2;padding:3px 8px;border-radius:7px;background:color-mix(in srgb,var(--panel) 90%,transparent);border:1px solid var(--line);font-size:11.5px;font-weight:700;pointer-events:none;backdrop-filter:blur(6px);font-variant-numeric:tabular-nums}.chart-float em{margin-left:7px;font-style:normal;color:var(--muted);font-weight:600}.chart-legend{position:absolute;left:10px;top:7px;z-index:2;display:flex;gap:8px;flex-wrap:wrap;max-width:calc(100% - 150px);padding:2px 5px;border-radius:6px;background:color-mix(in srgb,var(--panel) 78%,transparent);font-size:10.5px;color:var(--muted);pointer-events:none}.chart-legend span{display:inline-flex;align-items:center;gap:3px;white-space:nowrap}.chart-legend .dot{width:7px;height:7px;border-radius:50%;display:inline-block}.chart-legend .dot.price{background:var(--text-2)}.chart-legend .dot.vwap{background:#b45309}.chart-legend .dot.index{background:#0e7490}.chart-legend .dot.iopv{background:#0891b2}[data-theme=dark] .chart-legend .dot.vwap{background:#fbbf24}[data-theme=dark] .chart-legend .dot.index{background:#22d3ee}[data-theme=dark] .chart-legend .dot.iopv{background:#67e8f9}.chart-legend .tri{width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;display:inline-block}.chart-legend .tri.buy{border-bottom:7px solid var(--up)}.chart-legend .tri.sell{border-top:7px solid var(--down)}.chart-legend .ring{width:8px;height:8px;border:1.5px dashed var(--forecast);border-radius:50%;display:inline-block}.chart-hint{position:absolute;right:8px;bottom:3px;z-index:2;color:var(--muted);font-size:10px;opacity:.75;pointer-events:none}.auction-card.verdict-up{border-left:3px solid var(--up)}.auction-card.verdict-down{border-left:3px solid var(--down)}.auction-card.verdict-flat{border-left:3px solid var(--accent)}.auction-hero{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:10px 12px;border-radius:11px;background:var(--panel-2);border:1px solid var(--line)}.auction-verdict{font-size:16px;font-weight:800}.auction-card.verdict-up .auction-verdict,.auction-card.verdict-up .auction-sub strong{color:var(--up)}.auction-card.verdict-down .auction-verdict,.auction-card.verdict-down .auction-sub strong{color:var(--down)}.auction-sub{margin-top:2px;color:var(--muted);font-size:11.5px}.auction-confidence{display:flex;flex-direction:column;align-items:flex-end;gap:1px;font-size:10.5px;color:var(--muted)}.auction-confidence strong{font-size:15px;color:var(--text)}.auction-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin-top:8px}.auction-stats>div{padding:7px 8px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);min-width:0}.auction-stats span{display:block;color:var(--muted);font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.auction-stats strong{display:block;font-size:12.5px;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis}.auction-card .reason-list{margin-top:8px}.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table{width:100%;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}.data-table th,.data-table td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.data-table th{color:var(--muted);font-weight:600;font-size:11px;background:var(--panel-2);position:sticky;top:0}.data-table td.num,.data-table th.num{text-align:right}.data-table tbody tr:hover{background:var(--panel-2)}.stock-code{display:inline-block;min-width:52px;color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.stock-name{font-weight:600}.bar-col{width:84px}.contrib-track{width:100%;height:5px;border-radius:999px;background:var(--panel-3);overflow:hidden}.contrib-bar{height:100%;border-radius:999px}.contrib-bar.up{background:var(--up)}.contrib-bar.down{background:var(--down)}.contrib-bar.flat{background:var(--line-strong)}.signal-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.signal-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;background:var(--panel-2);border:1px solid var(--line);font-size:11.5px;flex-wrap:wrap}.signal-item.forecast{border-style:dashed;border-color:var(--forecast);background:color-mix(in srgb,var(--forecast) 6%,var(--panel))}.signal-item.invalid{opacity:.55}.signal-time{color:var(--muted);font-variant-numeric:tabular-nums}.signal-side{font-weight:700}.signal-side.buy{color:var(--up)}.signal-side.sell{color:var(--down)}.signal-price{font-variant-numeric:tabular-nums}.signal-conf,.signal-phase{padding:0 5px;border-radius:4px;background:var(--panel-3);color:var(--muted)}.signal-item.forecast .signal-phase{color:var(--forecast);background:transparent}.signal-item.confirmed .signal-phase{color:var(--accent);background:transparent}.signal-reason{flex:1;min-width:120px;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.warehouse-card h2{align-items:center}.warehouse-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.warehouse-summary>div{padding:8px 9px;border-radius:9px;border:1px solid var(--line);background:var(--panel-2);min-width:0}.warehouse-summary span{display:block;color:var(--muted);font-size:10.5px}.warehouse-summary strong{display:block;font-size:14px;font-weight:750;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 8px;margin-top:10px}.field{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:4px 7px;border-radius:7px;background:var(--panel-2);border:1px solid var(--line);font-size:11px;color:var(--muted)}.field>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.field-input{display:flex;align-items:center;gap:2px}.field-input input{width:64px;height:24px;padding:0 4px;border:1px solid var(--line-strong);border-radius:5px;background:var(--panel);font-size:11.5px;text-align:right;outline:none;font-variant-numeric:tabular-nums}.field-input em{font-style:normal;font-size:10px}.trade-form{margin-top:10px;padding:9px;border-radius:10px;border:1px dashed var(--line-strong);background:var(--panel-2)}.trade-form-row{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:6px}.trade-form-row .select.compact{min-width:76px;width:76px;height:28px;font-size:11.5px}.trade-form-row .mini-input{width:74px;height:28px}.trade-form small{display:block;margin-top:6px;font-size:10.5px}.history-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:12px 0 4px}.history-head h3{margin:0;font-size:12.5px;color:var(--text-2)}.history-table{font-size:11.5px}.icon-btn{width:20px;height:20px;border:0;border-radius:5px;background:transparent;color:var(--muted);font-size:15px;line-height:1}.icon-btn:hover{background:var(--up-soft);color:var(--error)}.replay-bar{position:sticky;bottom:10px;z-index:25;display:flex;flex-direction:column;gap:5px;padding:8px 12px;border-radius:12px;border:1px solid var(--accent);background:color-mix(in srgb,var(--panel) 92%,transparent);box-shadow:var(--shadow);backdrop-filter:blur(12px)}.replay-main{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.replay-time{min-width:64px;font-weight:750;font-size:12.5px;font-variant-numeric:tabular-nums}.replay-range{flex:1;min-width:140px;height:4px;accent-color:var(--accent)}.speed-group{display:flex;gap:3px}.speed-group .ghost-btn.active{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.replay-advice{display:flex;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:11px}.replay-advice span:first-child{font-weight:700}.replay-advice.buy span:first-child{color:var(--up)}.replay-advice.sell span:first-child{color:var(--down)}.tips-card h2{margin-bottom:7px}.tips-card ul{margin:0;padding-left:16px;color:var(--text-2);font-size:11.5px;line-height:1.75}.app-footer{margin-top:10px;padding:12px 4px 0;border-top:1px solid var(--line);color:var(--muted);font-size:11px;line-height:1.7}.app-footer p{margin:0}@media(max-width:1180px){.layout{grid-template-columns:1fr}.side-col{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start}}@media(max-width:860px){.app{padding:10px 10px 22px}.quote-grid{grid-template-columns:1fr}.side-col{display:flex}.metric-grid,.auction-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.chart-wrap{height:clamp(300px,48vh,420px)}.brand-sub{display:none}.topbar-controls{width:100%;justify-content:flex-start}.etf-picker{flex:1 1 100%}.etf-picker .select{flex:1;min-width:0}.index-picker-pop{right:auto;left:0}}@media(max-width:560px){.quote-stats,.metric-grid,.auction-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.advice-hero{align-items:stretch;flex-direction:column}.execute-btn{width:100%}.warehouse-summary,.settings-grid{grid-template-columns:1fr}.chart-legend{max-width:calc(100% - 90px);gap:6px}.chart-float{right:60px;font-size:10.5px}.chart-hint{display:none}.quote-price{font-size:30px}.topbar{padding:9px 10px}.ghost-btn,.select,.mini-input,.toggle-btn{height:30px}.replay-bar{bottom:6px}.data-table th,.data-table td{padding:5px 6px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.sub-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:12px;margin-top:12px}.quote-grid.single{grid-template-columns:1fr}.quote-premium{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:8px;padding:7px 10px;border-radius:8px;background:var(--panel-2);border:1px solid var(--line);font-size:11.5px}.quote-premium span{display:inline-flex;align-items:center;gap:4px;color:var(--text-2)}.quote-premium strong{font-variant-numeric:tabular-nums;font-size:12.5px}.premium-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:10px}.premium-grid>div{display:flex;flex-direction:column;gap:3px;padding:8px 10px;border-radius:8px;background:var(--panel-2);border:1px solid var(--line)}.premium-grid span{font-size:10.5px;color:var(--muted);display:inline-flex;align-items:center;gap:3px}.premium-grid strong{font-size:13.5px;font-variant-numeric:tabular-nums}.book{display:flex;flex-direction:column;margin-top:8px;font-size:11.5px;font-variant-numeric:tabular-nums}.book-row{display:grid;grid-template-columns:26px minmax(0,1fr) minmax(0,1fr);align-items:center;padding:2px 4px;border-radius:4px}.book-row:hover{background:var(--panel-2)}.book-side{font-size:10px;color:var(--muted)}.book-row.ask .book-side,.book-row.ask .book-price{color:var(--down)}.book-row.bid .book-side,.book-row.bid .book-price{color:var(--up)}.book-volume{text-align:right;color:var(--text-2)}.book-sep{height:1px;margin:3px 0;background:var(--line)}.health-wrap{position:relative}.health-pill{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px;border-radius:999px;border:1px solid var(--line-strong);background:var(--panel);color:var(--text-2);font-size:11px;font-weight:600}.health-pill .health-dot{width:7px;height:7px;border-radius:50%;background:var(--muted)}.health-pill.ok .health-dot{background:var(--down)}.health-pill.degraded .health-dot{background:#d97706}.health-pill.failed .health-dot{background:var(--error)}.health-pill.failed{color:var(--error);border-color:var(--error)}.health-pop{position:absolute;top:calc(100% + 6px);left:0;z-index:40;width:min(430px,84vw);max-height:340px;overflow:auto;padding:10px 12px;border-radius:12px;border:1px solid var(--line-strong);background:var(--panel);box-shadow:var(--shadow)}.health-pop-head{display:flex;align-items:center;gap:8px}.health-pop-head strong{flex:1;font-size:12px}.health-list{list-style:none;margin:6px 0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:11px}.health-item{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:4px 6px;border-radius:6px;background:var(--panel-2)}.health-item-label{font-weight:600}.health-item-state.ok{color:var(--down)}.health-item-state.degraded{color:#d97706}.health-item-state.failed{color:var(--error)}.health-item-source,.health-item-time{color:var(--muted)}.health-item-msg{flex:1 0 100%;color:var(--text-2);font-size:10.5px;word-break:break-word}.health-warnings{display:flex;flex-direction:column;gap:2px;margin:6px 0;font-size:10.5px;color:#b45309}[data-theme=dark] .health-warnings{color:#fbbf24}.watch-pop{width:320px}.watch-list{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:3px;max-height:240px;overflow:auto}.watch-list li{display:flex;align-items:center;gap:2px}.watch-main{flex:1;min-width:0;display:flex;align-items:center;gap:6px;padding:4px 6px;border:0;border-radius:6px;background:transparent;text-align:left;font-size:11.5px;overflow:hidden}.watch-main:hover{background:var(--panel-2)}.watch-main .stock-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.watch-main em{font-style:normal;font-size:10px;color:var(--muted)}.icon-btn.ok:hover{background:var(--accent-soft);color:var(--accent)}.icon-btn.danger:hover{background:var(--up-soft);color:var(--error)}.history-table tr.editing .mini-input,.history-table tr.editing .select{width:72px;height:26px}@media(max-width:1180px){.sub-grid{grid-template-columns:1fr}}@media(max-width:860px){.sub-grid{grid-template-columns:1fr}.premium-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.watch-pop{width:min(320px,88vw)}}
