:root{--bg-0: #070b14;--bg-1: #0d1424;--bg-2: #131c30;--panel: rgba(22, 30, 48, .72);--panel-solid: #161e30;--border: rgba(120, 140, 190, .14);--border-strong: rgba(120, 140, 190, .28);--text-0: #e8edf7;--text-1: #9aa7c2;--text-2: #6b7794;--up: #22c55e;--down: #f43f5e;--accent: #6366f1;--accent-2: #22d3ee;--gold: #fbbf24}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100vh;background:var(--bg-0);font-family:-apple-system,Segoe UI,PingFang SC,Microsoft YaHei,system-ui,sans-serif;color:var(--text-0);-webkit-font-smoothing:antialiased}body{background:var(--bg-0)}.glass{background:var(--panel-solid);border:1px solid var(--border);border-radius:8px}.stat-card{padding:10px 12px}.stat-card .label{font-size:11px;color:var(--text-1);letter-spacing:.2px;display:flex;align-items:center;gap:5px;margin-bottom:4px}.stat-card .value{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1;letter-spacing:-.5px}.stat-card .sub{font-size:11px;color:var(--text-2);margin-top:4px}.topbar{display:flex;align-items:center;justify-content:space-between;padding:0 16px;height:48px;background:var(--bg-1);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50}.brand{display:flex;align-items:center;gap:8px;font-weight:700;font-size:14px}.brand .logo{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:var(--accent);font-size:14px}.price-pill{font-variant-numeric:tabular-nums;font-weight:700;font-size:13px;padding:3px 10px;border-radius:8px;background:#fbbf241a;border:1px solid rgba(251,191,36,.25);color:var(--gold)}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:6px}.dot.on{background:var(--up);box-shadow:0 0 #22c55e99;animation:pulse 1.8s infinite}.dot.off{background:var(--text-2)}@keyframes pulse{0%{box-shadow:0 0 #22c55e80}70%{box-shadow:0 0 0 8px #22c55e00}to{box-shadow:0 0 #22c55e00}}.signal-badge{display:inline-flex;align-items:center;gap:6px;font-size:18px;font-weight:800;padding:5px 13px;border-radius:10px;letter-spacing:.5px}.signal-up{background:#22c55e24;color:var(--up);border:1px solid rgba(34,197,94,.35)}.signal-down{background:#f43f5e24;color:var(--down);border:1px solid rgba(244,63,94,.35)}.signal-hold{background:#94a3b81f;color:var(--text-1);border:1px solid rgba(148,163,184,.25)}.ring{transform:rotate(-90deg)}.section-title{font-size:13px;font-weight:650;color:var(--text-0);display:flex;align-items:center;gap:7px;padding:9px 13px;border-bottom:1px solid var(--border)}.ind-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px dashed rgba(120,140,190,.1)}.ind-row:last-child{border-bottom:none}.ind-row .k{color:var(--text-1);font-size:13px}.ind-row .v{font-variant-numeric:tabular-nums;font-weight:650;font-size:13px}.chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;border:1px solid var(--border-strong);color:var(--text-1)}.chip.good{background:#22c55e1f;color:var(--up);border-color:#22c55e4d}.chip.bad{background:#f43f5e1f;color:var(--down);border-color:#f43f5e4d}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#788cbe40;border-radius:8px}::-webkit-scrollbar-track{background:transparent}.ant-form-vertical .ant-form-item{margin-bottom:12px!important}.ant-form-vertical .ant-form-item-label{padding-bottom:2px!important}.ant-form-item-label>label{font-size:12px!important;height:auto!important}.ant-table{background:transparent!important}.ant-table-thead>tr>th{background:#131c3099!important;color:var(--text-1)!important;border-bottom:1px solid var(--border)!important;font-weight:600!important;padding:6px 10px!important;font-size:12px!important}.ant-table-tbody>tr>td{background:transparent!important;border-bottom:1px solid rgba(120,140,190,.08)!important;color:var(--text-0)!important;padding:5px 10px!important;font-size:12px!important}.ant-table-tbody>tr:hover>td{background:#6366f10f!important}.ant-pagination-item,.ant-pagination-item-link{background:transparent!important;border-color:var(--border)!important}.ant-pagination-item a{color:var(--text-1)!important}.ant-empty-description{color:var(--text-2)!important}
