        :root{
            --bg-0:#0a0e1a;
            --bg-1:#0f1729;
            --bg-2:#1a2340;
            --bg-3:#111c33;
            --border:rgba(56,189,248,0.12);
            --border-strong:rgba(56,189,248,0.24);
            --text-1:#e2e8f0;
            --text-2:#94a3b8;
            --text-3:#64748b;
            --accent:#3b82f6;
            --accent-2:#38bdf8;
            --ok:#10b981;
            --warn:#f59e0b;
            --err:#ef4444;
            /* 数字/代码字体：SF Mono 优先（macOS/iOS），Windows 落到 Consolas。
               旧值把微软雅黑排在最前，导致所有 KPI 数字实际用的是非等宽中文字体 */
            --mono:ui-monospace,'SF Mono','SFMono-Regular','Menlo','Roboto Mono','Consolas',monospace;
        }
        body.theme-light{
            --bg-0:#f4f7fb;
            --bg-1:#ffffff;
            --bg-2:#eef5ff;
            --bg-3:#f8fafc;
            --border:rgba(37,99,235,0.12);
            --border-strong:rgba(37,99,235,0.24);
            --text-1:#0f172a;
            --text-2:#475569;
            --text-3:#64748b;
        }
        *{margin:0;padding:0;box-sizing:border-box;}
        html,body{min-height:100%;}
        body{
            /* Apple 系统字体优先：SF Pro（-apple-system）+ 苹方 PingFang SC */
            font-family:-apple-system,BlinkMacSystemFont,'SF Pro Text','Helvetica Neue','PingFang SC','Hiragino Sans GB','Microsoft YaHei','微软雅黑',system-ui,'Segoe UI',Arial,sans-serif;
            background:
                radial-gradient(circle at 18% -10%,rgba(59,130,246,0.22),transparent 30%),
                radial-gradient(circle at 90% 4%,rgba(16,185,129,0.12),transparent 26%),
                linear-gradient(180deg,#0b1020 0%,var(--bg-0) 58%,#070a12 100%);
            color:var(--text-1);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;
            overflow-x:hidden;
        }
        button,input,select{font-family:inherit;}
        button{border:none;}
        .app-shell{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:100vh;}
        .sidebar{
            position:sticky;top:0;height:100vh;padding:20px 14px;display:flex;flex-direction:column;
            background:linear-gradient(180deg,rgba(15,23,41,0.96),rgba(7,10,18,0.98));
            border-right:1px solid var(--border);box-shadow:14px 0 36px rgba(0,0,0,0.28);z-index:20;
        }
        .brand{display:flex;align-items:center;gap:12px;padding:2px 8px 22px;}
        .brand-mark{
            width:42px;height:42px;border-radius:12px;display:grid;place-items:center;color:#fff;font-weight:900;
            background:linear-gradient(135deg,#2563eb,#38bdf8);box-shadow:0 12px 30px rgba(37,99,235,0.28);
        }
        .brand-title{font-size:14px;font-weight:800;color:#fff;letter-spacing:0;line-height:1.2;white-space:nowrap;}
        .brand-subtitle{font-size:11px;color:var(--text-3);font-family:var(--mono);margin-top:1px;}
        .nav-group{padding:14px 0;border-top:1px solid rgba(148,163,184,0.12);}
        .nav-group-title{padding:0 10px 9px;color:var(--text-3);font-size:11px;font-weight:700;letter-spacing:.08em;}
        .nav-list{display:flex;flex-direction:column;gap:6px;}
        .nav-item{
            position:relative;width:100%;display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:center;
            padding:10px 10px 10px 12px;border-radius:12px;color:var(--text-2);background:transparent;cursor:pointer;text-align:left;
            transition:background .18s,border-color .18s,transform .18s;
        }
        .nav-item:before{content:'';position:absolute;left:0;top:11px;bottom:11px;width:3px;border-radius:99px;background:transparent;}
        .nav-item:hover{background:rgba(26,35,64,0.7);transform:translateX(1px);}
        /* 侧栏分组小标题（机会 / 市场 / 系统） */
        .nav-group-label{
            padding:14px 12px 6px;color:var(--text-3);font-size:10px;font-weight:800;
            letter-spacing:.14em;text-transform:uppercase;
        }
        body.theme-light .nav-group-label{color:#94a3b8;}
        .nav-item.active{background:linear-gradient(90deg,rgba(59,130,246,0.18),rgba(56,189,248,0.06));color:#fff;}
        .nav-item.active:before{background:var(--accent-2);box-shadow:0 0 18px rgba(56,189,248,0.7);}
        .nav-icon{
            width:32px;height:32px;border-radius:10px;display:grid;place-items:center;
            background:rgba(56,189,248,0.08);border:1px solid rgba(56,189,248,0.12);font-size:15px;
        }
        .nav-name{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
        .nav-status{margin-top:2px;display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-3);}
        .status-dot{width:7px;height:7px;border-radius:50%;background:var(--text-3);display:inline-block;flex:0 0 auto;}
        .status-dot.running{background:var(--ok);box-shadow:0 0 0 4px rgba(16,185,129,0.12);animation:pulse 1.5s infinite;}
        .status-dot.stopped{background:var(--text-3);box-shadow:none;}
        .status-dot.partial{background:var(--warn);box-shadow:0 0 0 4px rgba(245,158,11,0.12);}
        .status-dot.error{background:var(--err);box-shadow:0 0 0 4px rgba(239,68,68,0.12);}
        .status-text.running{color:#86efac;}
        .status-text.partial{color:#fcd34d;}
        .status-text.stopped{color:var(--text-3);}
        .sidebar-footer{margin-top:auto;padding:14px 10px 4px;border-top:1px solid rgba(148,163,184,0.12);}
        .api-pill{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--text-2);font-size:12px;margin-bottom:10px;}
        .api-pill-left{display:flex;align-items:center;gap:8px;}
        .side-clock{font-family:var(--mono);font-size:20px;font-weight:800;color:#fff;letter-spacing:0;}
        .side-clock-zone{font-family:var(--mono);font-size:11px;color:var(--text-3);margin-top:1px;}
        .main{min-width:0;padding:26px 30px 48px;}
        .mobile-topbar{display:none;align-items:center;justify-content:space-between;margin-bottom:14px;}
        .hamburger{
            width:40px;height:40px;border-radius:10px;background:rgba(15,23,41,0.86);border:1px solid var(--border);
            color:var(--text-1);font-size:18px;cursor:pointer;
        }
        .top-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;}

        /* ===== 统一页头控制栏 =====
           每个模块页共用的一条：左侧 tab 切换，右侧运行开关 + 预警记录 + 设置。
           页面内部不再各自摆设置卡片或启停按钮。 */
        .hub-bar{
            display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
            margin-bottom:18px;padding:8px 10px;border-radius:14px;
            background:rgba(15,23,41,0.55);border:1px solid var(--border);
        }
        .hub-bar[hidden]{display:none;}
        body.theme-light .hub-bar{background:#fff;border-color:rgba(37,99,235,0.10);box-shadow:0 1px 2px rgba(15,23,42,0.04);}
        .notify-sub{font-size:11px;font-weight:600;color:var(--text-3);margin-left:8px;font-family:var(--mono);}
        .hub-tabs{display:flex;align-items:center;gap:4px;flex-wrap:wrap;min-width:0;}
        .hub-tab{
            display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:10px;
            border:1px solid transparent;background:transparent;color:var(--text-2);
            font-size:13px;font-weight:700;cursor:pointer;transition:background .16s,color .16s;
        }
        .hub-tab:hover{background:rgba(56,189,248,0.08);color:var(--text-1);}
        .hub-tab.active{background:rgba(56,189,248,0.14);border-color:rgba(56,189,248,0.28);color:#fff;}
        body.theme-light .hub-tab.active{background:rgba(37,99,235,0.10);border-color:rgba(37,99,235,0.22);color:#0f172a;}
        .hub-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
        .hub-btn{
            display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:10px;
            border:1px solid var(--border);background:rgba(15,23,41,0.5);color:var(--text-2);
            font-size:12px;font-weight:700;cursor:pointer;transition:background .16s,color .16s,border-color .16s;
        }
        .hub-btn:hover{background:rgba(56,189,248,0.10);color:var(--text-1);border-color:rgba(56,189,248,0.3);}
        body.theme-light .hub-btn{background:#f8fafc;border-color:rgba(37,99,235,0.14);color:#475569;}
        body.theme-light .hub-btn:hover{background:#eef5ff;color:#0f172a;}
        /* 运行开关：全站唯一的启停控件（概览卡片上的徽章与它同源） */
        .hub-switch{
            display:inline-flex;align-items:center;gap:9px;padding:6px 12px 6px 8px;border-radius:99px;
            border:1px solid var(--border);background:rgba(15,23,41,0.5);cursor:pointer;
            font-size:12px;font-weight:800;color:var(--text-3);transition:border-color .16s,background .16s;
        }
        .hub-switch:hover{border-color:rgba(56,189,248,0.35);}
        .hub-switch-track{
            position:relative;width:34px;height:18px;border-radius:99px;flex:0 0 auto;
            background:rgba(148,163,184,0.35);transition:background .18s;
        }
        .hub-switch-knob{
            position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;
            background:#fff;transition:transform .18s;box-shadow:0 1px 3px rgba(0,0,0,.3);
        }
        .hub-switch.on{color:#86efac;border-color:rgba(16,185,129,0.4);background:rgba(16,185,129,0.10);}
        .hub-switch.on .hub-switch-track{background:var(--ok);}
        .hub-switch.on .hub-switch-knob{transform:translateX(16px);}
        body.theme-light .hub-switch{background:#f8fafc;border-color:rgba(37,99,235,0.14);color:#94a3b8;}
        body.theme-light .hub-switch.on{background:rgba(16,185,129,0.10);color:#047857;border-color:rgba(16,185,129,0.35);}
        @media(max-width:900px){
            .hub-bar{padding:8px;}
            .hub-tab{padding:7px 10px;font-size:12px;}
            .hub-actions{width:100%;justify-content:flex-end;}
        }
        .page-kicker{font-size:12px;color:var(--accent-2);font-weight:800;letter-spacing:.08em;margin-bottom:4px;}
        .page-title{font-size:28px;font-weight:850;color:#fff;letter-spacing:0;line-height:1.15;}
        .page-subtitle{font-size:13px;color:var(--text-2);margin-top:6px;}
        .header-actions{display:flex;align-items:center;gap:10px;}
        .live-chip,.clock-chip,.alert-btn{
            height:38px;display:flex;align-items:center;gap:8px;border-radius:12px;padding:0 12px;
            background:rgba(15,23,41,0.72);border:1px solid var(--border);color:var(--text-2);font-size:12px;
            box-shadow:inset 0 1px 0 rgba(255,255,255,0.03);
        }
        .theme-toggle{
            height:38px;display:flex;align-items:center;gap:8px;border-radius:12px;padding:0 12px;
            background:rgba(15,23,41,0.72);border:1px solid var(--border);color:var(--text-1);
            font-size:12px;font-weight:800;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,0.03);
        }
        .theme-toggle:hover{border-color:var(--border-strong);background:rgba(26,35,64,0.86);}
        .clock-chip{font-family:var(--mono);color:var(--text-1);}
        .alert-wrap{position:relative;}
        .alert-btn{cursor:pointer;color:#fff;}
        .alert-btn:hover{border-color:var(--border-strong);background:rgba(26,35,64,0.86);}
        .alert-count{min-width:20px;height:20px;padding:0 6px;border-radius:999px;display:none;place-items:center;background:#ef4444;color:#fff;font-family:var(--mono);font-weight:800;font-size:11px;line-height:1;box-shadow:0 2px 6px rgba(239,68,68,0.35);}
        .alert-count.show{display:grid;}
        .alert-popover{
            position:absolute;right:0;top:46px;width:300px;max-width:calc(100vw - 36px);display:none;z-index:40;
            background:rgba(15,23,41,0.98);border:1px solid var(--border);border-radius:14px;box-shadow:0 20px 50px rgba(0,0,0,0.42);padding:12px;
        }
        .alert-popover.show{display:block;}
        .alert-popover h4{font-size:13px;color:#fff;margin-bottom:8px;}
        .alert-list{display:flex;flex-direction:column;gap:8px;max-height:260px;overflow:auto;}
        .alert-item{padding:9px 10px;border-radius:10px;background:rgba(26,35,64,0.65);border:1px solid rgba(148,163,184,0.08);font-size:12px;color:var(--text-2);}
        .alert-item strong{display:block;color:var(--text-1);font-size:12px;margin-bottom:2px;}
        .page{display:none;animation:fadeIn .22s ease;}
        .page.active{display:block;}
        @keyframes fadeIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}
        @keyframes pulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.58;transform:scale(.88);}}
        .overview-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px;}
        .metric-card,.tool-card,.section,.coin-card{
            background:linear-gradient(180deg,rgba(15,23,41,0.9),rgba(15,23,41,0.72));
            border:1px solid var(--border);border-radius:16px;box-shadow:0 18px 42px rgba(0,0,0,0.22),inset 0 1px 0 rgba(255,255,255,0.03);
        }
        .metric-card{padding:17px 18px;min-height:112px;position:relative;overflow:hidden;}
        .metric-card:after{content:'';position:absolute;right:-32px;top:-34px;width:92px;height:92px;border-radius:50%;background:rgba(56,189,248,0.07);}
        .metric-label{font-size:12px;color:var(--text-2);font-weight:700;margin-bottom:9px;}
        .metric-value{font-family:var(--mono);font-size:28px;font-weight:900;color:#fff;letter-spacing:0;line-height:1.1;}
        .metric-note{font-size:11px;color:var(--text-3);margin-top:8px;}
        .coin-list-note{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
        .tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}
        /* 概览模块卡按侧栏同一套分组排列，分组标题占满整行 */
        .tool-group-label{
            grid-column:1/-1;margin:6px 0 -4px;color:var(--text-3);font-size:10px;font-weight:800;
            letter-spacing:.14em;text-transform:uppercase;
        }
        .tool-group-label:first-child{margin-top:0;}
        body.theme-light .tool-group-label{color:#94a3b8;}
        .tool-card{padding:16px;display:flex;flex-direction:column;gap:12px;transition:border-color .25s ease, box-shadow .25s ease, transform .25s ease;}
        .tool-card .tool-stats-footer{margin-top:auto;}
        .stat-item-muted{opacity:.55;font-style:italic;}
        .tool-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
        .tool-card-title{display:flex;align-items:center;gap:10px;}
        .tool-card-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:rgba(56,189,248,0.08);border:1px solid rgba(56,189,248,0.12);}
        .tool-card h3{font-size:15px;color:#fff;line-height:1.2;}
        .tool-card p{font-size:12px;color:var(--text-3);margin-top:3px;}
        .status-badge{
            display:inline-flex;align-items:center;gap:7px;height:28px;padding:0 10px;border-radius:999px;white-space:nowrap;
            background:rgba(100,116,139,0.12);color:var(--text-3);font-size:12px;font-weight:800;cursor:pointer;border:1px solid rgba(148,163,184,0.1);
        }
        .status-badge.running{background:rgba(16,185,129,0.12);color:#86efac;border-color:rgba(16,185,129,0.22);}
        .status-badge.stopped{background:rgba(100,116,139,0.12);color:var(--text-3);}
        .tool-stats{display:flex;flex-wrap:wrap;gap:8px;}
        .stat-item{padding:7px 10px;background:rgba(26,35,64,0.72);border:1px solid rgba(148,163,184,0.08);border-radius:10px;font-size:12px;color:var(--text-2);}
        .stat-item span{font-family:var(--mono);color:#fff;font-weight:850;margin-left:4px;}
        .stat-item.stat-wide{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
        .funding-wl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;}
        .funding-wl-card{background:rgba(15,23,41,0.55);border:1px solid rgba(148,163,184,0.18);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:8px;transition:border-color .15s, box-shadow .15s;}
        .funding-wl-card:hover{border-color:rgba(34,197,94,0.55);}
        .funding-wl-card.active{border-color:#22c55e;box-shadow:0 0 0 1px rgba(34,197,94,0.45);}
        .funding-wl-card .fwl-head{display:flex;align-items:center;justify-content:space-between;gap:6px;}
        .funding-wl-card .fwl-base{display:flex;align-items:center;gap:8px;min-width:0;font-weight:800;font-size:16px;letter-spacing:.02em;}
        .funding-wl-card .fwl-token-link{font-family:var(--mono);font-weight:900;color:var(--text-1);text-decoration:none;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
        .funding-wl-card .fwl-token-link:hover{color:#38bdf8;}
        body.theme-light .funding-wl-card .fwl-token-link{color:#0f172a;}
        body.theme-light .funding-wl-card .fwl-token-link:hover{color:#0369a1;}
        .funding-wl-card .fwl-row{display:flex;justify-content:space-between;font-size:12px;color:var(--text-2);gap:8px;}
        .funding-wl-card .fwl-row strong{color:var(--text);font-weight:700;text-align:right;overflow-wrap:anywhere;}
        .funding-wl-card .fwl-row strong.arb-rate.pos,.funding-wl-card .fwl-row strong .arb-rate.pos{color:#22c55e;}
        .funding-wl-card .fwl-row strong.arb-rate.neg,.funding-wl-card .fwl-row strong .arb-rate.neg{color:#ef4444;}
        .funding-wl-card .fwl-price-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;}
        .funding-wl-card .fwl-price-strip>div{min-width:0;padding:8px 9px;border-radius:8px;border:1px solid rgba(148,163,184,0.12);background:rgba(10,14,26,0.22);}
        .funding-wl-card .fwl-price-strip .lbl{display:block;font-size:10.5px;color:var(--text-3);font-weight:750;line-height:1.2;}
        .funding-wl-card .fwl-price-strip .val{display:block;margin-top:4px;font-family:var(--mono);font-size:12px;font-weight:900;color:var(--text-1);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
        .funding-wl-card .fwl-price-strip .val em{display:block;margin-top:2px;font-style:normal;font-size:10.5px;color:var(--text-3);}
        .funding-wl-card .fwl-price-strip .val.pos,.funding-wl-card .fwl-price-strip .val.pos em{color:#10b981;}
        .funding-wl-card .fwl-price-strip .val.neg,.funding-wl-card .fwl-price-strip .val.neg em{color:#ef4444;}
        .fwl-price-link{color:inherit;text-decoration:none;border-bottom:1px dashed transparent;transition:color .12s,border-color .12s;cursor:pointer;}
        .fwl-price-link:hover{color:#38bdf8;border-bottom-color:rgba(56,189,248,0.5);}
        body.theme-light .fwl-price-link:hover{color:#0369a1;border-bottom-color:rgba(3,105,161,0.5);}
        .arb-metric-val .fwl-price-link{color:#38bdf8;border-bottom:1px dashed rgba(56,189,248,0.45);}
        .arb-metric-val .fwl-price-link:hover{color:#0ea5e9;border-bottom-color:#0ea5e9;}
        body.theme-light .arb-metric-val .fwl-price-link{color:#0369a1;border-bottom-color:rgba(3,105,161,0.45);}
        body.theme-light .arb-metric-val .fwl-price-link:hover{color:#075985;border-bottom-color:#075985;}
        .funding-wl-card .fwl-calc{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:8px;border-top:1px dashed rgba(148,163,184,0.22);}
        .funding-wl-card .fwl-calc input{width:100%;}
        .funding-wl-card .fwl-thresholds{display:grid;grid-template-columns:1fr 1fr;gap:6px;font-size:11px;color:var(--text-2);}
        .funding-wl-card .fwl-actions{display:flex;gap:6px;justify-content:flex-end;}
        .funding-wl-card .fwl-est{color:#22c55e;font-weight:700;}
        .funding-wl-card .fwl-est.neg{color:#ef4444;}
        body.theme-light .funding-wl-card{background:#fff;border-color:rgba(37,99,235,0.18);}
        body.theme-light .funding-wl-card .fwl-price-strip>div{background:#f8fbff;border-color:rgba(37,99,235,0.1);}
        .chart-pair{display:grid;grid-template-columns:1fr;gap:12px;}
        .chart-pair .form-label{margin-bottom:6px;}
        body.theme-light #fundingPriceChart,body.theme-light #fundingRateHistoryChart{background:rgba(15,23,41,0.05) !important;}
        .stat-item.stat-clickable{cursor:pointer;transition:background 0.15s ease, border-color 0.15s ease, transform 0.1s ease;}
        .stat-item.stat-clickable:hover{background:rgba(56,189,248,0.18);border-color:rgba(56,189,248,0.45);}
        .stat-item.stat-clickable:active{transform:translateY(1px);}
        .tool-card-clickable{cursor:pointer;}
        @keyframes toolCardBreath{
            0%,100%{box-shadow:0 6px 18px rgba(15,23,42,0.18),0 0 0 1px rgba(56,189,248,0.45),0 0 12px rgba(56,189,248,0.18);}
            50%{box-shadow:0 14px 32px rgba(15,23,42,0.28),0 0 0 1px rgba(56,189,248,0.7),0 0 26px rgba(56,189,248,0.42);}
        }
        .tool-card-clickable:hover{
            border-color:rgba(56,189,248,0.55);
            transform:translateY(-2px);
            animation:toolCardBreath 2.4s ease-in-out infinite;
        }
        body.theme-light .tool-card-clickable:hover{
            border-color:rgba(37,99,235,0.55);
        }
        @keyframes toolCardBreathLight{
            0%,100%{box-shadow:0 4px 14px rgba(37,99,235,0.12),0 0 0 1px rgba(37,99,235,0.4),0 0 10px rgba(37,99,235,0.16);}
            50%{box-shadow:0 12px 28px rgba(37,99,235,0.22),0 0 0 1px rgba(37,99,235,0.6),0 0 22px rgba(37,99,235,0.34);}
        }
        body.theme-light .tool-card-clickable:hover{animation:toolCardBreathLight 2.4s ease-in-out infinite;}
        .tool-card-link{cursor:pointer;}
        .tool-card-link:hover{color:#38bdf8;text-decoration:underline;}
        .tool-actions{margin-top:auto;display:flex;gap:8px;}
        .spread-kline-block{margin-top:14px;padding:10px 12px;border:1px solid rgba(148,163,184,0.12);border-radius:10px;background:rgba(26,35,64,0.45);}
        .spread-kline-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;gap:8px;flex-wrap:wrap;}
        .spread-kline-tabs{display:inline-flex;gap:4px;background:rgba(15,23,42,0.4);border-radius:8px;padding:2px;}
        .spread-kline-tab{appearance:none;border:0;background:transparent;color:var(--text-3);font-size:12px;padding:4px 10px;border-radius:6px;cursor:pointer;font-weight:700;}
        .spread-kline-tab.active{background:rgba(56,189,248,0.18);color:#38bdf8;}
        .spread-kline-chart{position:relative;width:100%;height:160px;}
        .spread-kline-chart svg{width:100%;height:100%;display:block;}
        .spread-kline-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--text-3);font-size:12px;}
        .spread-kline-info{margin-top:6px;font-size:11px;color:var(--text-3);font-family:var(--mono);}
        body.theme-light .spread-kline-block{background:#f3f7fc;border-color:rgba(37,99,235,0.1);}
        body.theme-light .spread-kline-tabs{background:rgba(15,23,42,0.06);}
        body.theme-light .spread-kline-tab.active{background:rgba(56,189,248,0.22);color:#0369a1;}
        body.theme-light .stat-item.stat-clickable:hover{background:rgba(56,189,248,0.16);border-color:rgba(56,189,248,0.45);}
        .section{margin-bottom:16px;overflow:hidden;}
        .section-header{
            padding:15px 18px;border-bottom:1px solid rgba(148,163,184,0.1);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
            font-size:14px;font-weight:850;color:#fff;
        }
        .panel{padding:18px;}
        .panel-title{font-size:13px;font-weight:800;color:var(--text-1);margin-bottom:10px;display:flex;align-items:center;gap:8px;}
        .status-indicator{
            position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;padding:12px 14px 12px 16px;
            border-radius:12px;background:rgba(26,35,64,0.6);border:1px solid rgba(148,163,184,0.1);color:var(--text-2);font-weight:800;font-size:13px;overflow:hidden;
        }
        .status-indicator:before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--text-3);}
        .status-indicator.running:before{background:var(--ok);box-shadow:0 0 16px rgba(16,185,129,0.7);}
        .status-indicator.stopped:before{background:var(--err);}
        .status-indicator-main{display:flex;align-items:center;gap:9px;}
        .pulse-dot{width:8px;height:8px;border-radius:50%;background:var(--text-3);}
        .running .pulse-dot{background:var(--ok);box-shadow:0 0 0 4px rgba(16,185,129,0.12);animation:pulse 1.5s infinite;}
        .stopped .pulse-dot{background:var(--err);box-shadow:0 0 0 4px rgba(239,68,68,0.12);}
        .stat-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px;}
        .feature-block{padding:15px 16px;border-radius:13px;margin-top:13px;background:rgba(26,35,64,0.45);border:1px solid rgba(56,189,248,0.1);}
        .feature-block.above-block{border-color:rgba(16,185,129,0.18);background:rgba(16,185,129,0.06);}
        .feature-block.below-block{border-color:rgba(239,68,68,0.18);background:rgba(239,68,68,0.06);}
        .feature-block.cooldown-block{border-color:rgba(59,130,246,0.18);background:rgba(59,130,246,0.06);}
        .feature-block.funding-block{border-color:rgba(245,158,11,0.18);background:rgba(245,158,11,0.06);}
        .feature-block.alert-block{border-color:rgba(56,189,248,0.18);background:rgba(56,189,248,0.06);}
        .feature-block.default-block{border-color:rgba(59,130,246,0.2);background:rgba(59,130,246,0.07);}
        .form-group{margin-bottom:16px;}
        .form-label{display:block;font-weight:750;margin-bottom:6px;color:var(--text-2);font-size:12px;letter-spacing:0;}
        .form-input,.form-select{
            width:100%;padding:9px 11px;font-size:13px;background:rgba(10,14,26,0.76);border:1px solid rgba(148,163,184,0.16);
            border-radius:10px;color:var(--text-1);outline:none;transition:border-color .18s,box-shadow .18s,background .18s;
        }
        .form-select{cursor:pointer;}
        .form-select option{background:#0f1729;color:var(--text-1);}
        .form-input:hover,.form-select:hover{border-color:rgba(56,189,248,0.26);}
        .form-input:focus,.form-select:focus{border-color:var(--accent-2);box-shadow:0 0 0 3px rgba(56,189,248,0.12);background:rgba(10,14,26,0.95);}
        .form-input::placeholder{color:var(--text-3);}
        .form-input.short{width:120px;display:inline-block;}
        .inline-group{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:13px;color:var(--text-2);flex-wrap:wrap;}
        .inline-group .form-input{width:98px;text-align:center;padding:7px 9px;font-family:var(--mono);}
        .help-text{font-size:11px;color:var(--text-3);margin-top:6px;line-height:1.55;}
        .btn{
            min-height:38px;padding:9px 16px;font-size:13px;font-weight:800;border-radius:10px;cursor:pointer;transition:transform .18s,box-shadow .18s,background .18s,border-color .18s;
            color:#fff;letter-spacing:0;background:rgba(26,35,64,0.9);border:1px solid rgba(148,163,184,0.12);display:inline-flex;align-items:center;justify-content:center;gap:6px;
        }
        .btn:hover{transform:translateY(-1px);}
        .btn:disabled,.btn.btn-busy{opacity:0.55;cursor:wait;transform:none;pointer-events:none;}
        .btn-start{background:linear-gradient(135deg,#3b82f6,#2563eb);border-color:rgba(59,130,246,0.35);box-shadow:0 10px 22px rgba(37,99,235,0.22);}
        .btn-stop{background:linear-gradient(135deg,#ef4444,#dc2626);border-color:rgba(239,68,68,0.35);box-shadow:0 10px 22px rgba(239,68,68,0.16);}
        .btn-send{background:linear-gradient(135deg,#f59e0b,#d97706);border-color:rgba(245,158,11,0.35);}
        .btn-add{background:linear-gradient(135deg,#10b981,#059669);border-color:rgba(16,185,129,0.35);}
        .btn-del{background:rgba(239,68,68,0.1);color:#fecaca;border:1px solid rgba(239,68,68,0.28);min-height:32px;padding:6px 11px;font-size:12px;}
        .btn-secondary{background:rgba(26,35,64,0.76);color:var(--text-1);}
        .btn-group{display:flex;gap:12px;margin-top:20px;justify-content:center;flex-wrap:wrap;}
        .btn-group .btn{flex:1;max-width:260px;padding:11px 16px;}
        .coin-card{padding:16px;margin-bottom:14px;}
        .coin-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;flex-wrap:wrap;gap:10px;}
        .coin-name{font-family:var(--mono);font-size:18px;font-weight:900;color:#fff;letter-spacing:0;}
        .coin-source{font-size:11px;padding:4px 9px;border-radius:999px;font-weight:850;margin-left:8px;border:1px solid transparent;}
        .coin-source.binance{background:rgba(245,158,11,0.12);color:#fcd34d;border-color:rgba(245,158,11,0.22);}
        .coin-source.alpha{background:rgba(56,189,248,0.12);color:#7dd3fc;border-color:rgba(56,189,248,0.22);}
        .coin-prices{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:10px;margin-bottom:14px;padding:13px;background:rgba(10,14,26,0.45);border:1px solid rgba(148,163,184,0.08);border-radius:12px;}
        .coin-prices>div{text-align:left;}
        .coin-prices .label{font-size:11px;color:var(--text-3);display:block;margin-bottom:4px;font-weight:750;}
        .coin-prices .val{font-family:var(--mono);font-size:15px;color:#fff;font-weight:900;letter-spacing:0;}
        /* === Compact watchlist card grid (legacy) — superseded by .wl-cards-grid === */
        .coin-card-mini{padding:13px 14px;border-radius:14px;background:rgba(15,23,41,0.65);border:1px solid rgba(148,163,184,0.12);display:flex;flex-direction:column;gap:10px;margin:0;}
        body.theme-light .coin-card-mini{background:#fff;border-color:rgba(37,99,235,0.12);}
        .coin-card-mini .ccm-head{display:flex;align-items:center;gap:8px;}
        .coin-card-mini .ccm-name{font-family:var(--mono);font-size:17px;font-weight:950;color:var(--text-1);letter-spacing:0;}
        .coin-card-mini .ccm-icons{margin-left:auto;display:flex;gap:6px;}
        .coin-card-mini .ccm-icon-btn{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid rgba(148,163,184,0.18);background:rgba(15,23,41,0.4);color:var(--text-2);cursor:pointer;font-size:13px;}
        .coin-card-mini .ccm-icon-btn:hover{background:rgba(56,189,248,0.18);color:#38bdf8;}
        .coin-card-mini .ccm-icon-btn.danger:hover{background:rgba(239,68,68,0.18);color:#ef4444;border-color:rgba(239,68,68,0.32);}
        body.theme-light .coin-card-mini .ccm-icon-btn{background:#fff;border-color:rgba(37,99,235,0.14);color:#1e3a8a;}
        .coin-card-mini .ccm-prices{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;padding:10px 12px;border-radius:10px;background:rgba(10,14,26,0.45);border:1px solid rgba(148,163,184,0.08);}
        body.theme-light .coin-card-mini .ccm-prices{background:#f8fbff;border-color:rgba(37,99,235,0.1);}
        .coin-card-mini .ccm-prices .lbl{font-size:10.5px;color:var(--text-3);font-weight:750;letter-spacing:.02em;}
        .coin-card-mini .ccm-prices .val{font-family:var(--mono);font-size:13.5px;color:var(--text-1);font-weight:900;}
        .coin-card-mini .ccm-prices .val.pos{color:#10b981;}
        .coin-card-mini .ccm-prices .val.neg{color:#ef4444;}
        .coin-card-mini .ccm-toggles{display:flex;gap:8px;flex-wrap:wrap;}
        .coin-card-mini .ccm-toggle{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid rgba(148,163,184,0.16);border-radius:10px;font-size:12px;font-weight:800;color:var(--text-2);cursor:pointer;background:rgba(15,23,41,0.32);flex:1;justify-content:center;min-width:0;}
        .coin-card-mini .ccm-toggle input{accent-color:var(--accent);}
        .coin-card-mini .ccm-toggle.on{background:rgba(16,185,129,0.13);border-color:rgba(16,185,129,0.32);color:#10b981;}
        body.theme-light .coin-card-mini .ccm-toggle{background:#fff;border-color:rgba(37,99,235,0.14);color:#1e3a8a;}
        body.theme-light .coin-card-mini .ccm-toggle.on{background:#ecfdf5;border-color:rgba(16,185,129,0.36);color:#047857;}
        .coin-card-mini .ccm-expand-btn{width:100%;padding:7px;border:1px dashed rgba(148,163,184,0.22);background:transparent;border-radius:9px;font-size:11.5px;font-weight:800;color:var(--text-3);cursor:pointer;letter-spacing:.04em;}
        .coin-card-mini .ccm-expand-btn:hover{color:var(--text-1);border-color:rgba(148,163,184,0.4);}
        .coin-card-mini .ccm-detail{display:none;padding:10px 0 0;border-top:1px dashed rgba(148,163,184,0.14);margin-top:2px;flex-direction:column;gap:10px;}
        .coin-card-mini.expanded .ccm-detail{display:flex;}
        .coin-card-mini .ccm-section{padding:9px 11px;border-radius:10px;background:rgba(26,35,64,0.36);border:1px solid rgba(148,163,184,0.1);}
        .coin-card-mini .ccm-section.disabled{opacity:0.45;}
        .coin-card-mini .ccm-section.price{border-color:rgba(245,158,11,0.18);background:rgba(245,158,11,0.05);}
        .coin-card-mini .ccm-section.spread{border-color:rgba(59,130,246,0.18);background:rgba(59,130,246,0.05);}
        .coin-card-mini .ccm-section .ccm-section-title{font-size:11.5px;font-weight:850;color:var(--text-1);margin-bottom:6px;letter-spacing:.02em;}
        .coin-card-mini .ccm-grid2{display:grid;grid-template-columns:1fr 1fr;gap:7px;}
        .coin-card-mini .ccm-grid2 .form-input,.coin-card-mini .ccm-grid2 .form-select{font-size:12px;padding:6px 8px;}
        .coin-card-mini .ccm-grid2 .form-label{font-size:10.5px;margin-bottom:3px;}
        .coin-card-mini .ccm-push-toggle{display:flex;align-items:center;gap:7px;font-size:11.5px;font-weight:800;color:var(--text-3);cursor:pointer;margin-top:4px;}
        .coin-card-mini .ccm-push-fields{display:none;margin-top:7px;flex-direction:column;gap:6px;}
        .coin-card-mini .ccm-push-fields.show{display:flex;}
        .coin-card-mini .ccm-push-fields .form-input,.coin-card-mini .ccm-push-fields .form-select{font-size:12px;padding:6px 8px;}
        .coin-card-mini .ccm-save-row{display:flex;justify-content:flex-end;}
        .coin-card-mini .ccm-save-row .btn{font-size:12px;min-height:30px;padding:6px 14px;}
        .watchlist-quick-row{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;margin:14px 0 12px;}
        .watchlist-quick-row .watchlist-add-field{flex:1;min-width:240px;}
        .watchlist-quick-row .btn{min-width:112px;}
        .watchlist-settings-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;}
        .watchlist-settings-summary .stat-item{margin:0;}
        .arb-config-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;}
        .arb-check-grid{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px;}
        .arb-check{display:inline-flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid rgba(148,163,184,0.14);border-radius:10px;background:rgba(10,14,26,0.34);font-size:12px;font-weight:800;color:var(--text-2);cursor:pointer;}
        .arb-check input{accent-color:var(--accent);}
        .arb-workspace{display:grid;grid-template-columns:minmax(0,1fr) 430px;gap:14px;align-items:start;}
        .arb-list-pane{min-width:0;}
        .page.page-with-side{display:none;}
        .page.page-with-side.active{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:14px;align-items:start;}
        .page.page-with-side .page-main{min-width:0;display:flex;flex-direction:column;gap:16px;}
        .page.page-with-side .page-main > .section{margin-bottom:0;}
        .page.page-with-side .page-side{position:sticky;top:0;align-self:start;max-height:calc(100vh - 12px);overflow:auto;padding-bottom:8px;}
        .page.page-with-side .page-side .arb-drawer{position:static;top:auto;max-height:none;}
        .page.page-with-side.side-collapsed.active{grid-template-columns:minmax(0,1fr);}
        .page.page-with-side.side-collapsed > .page-side{display:none;}
        .page.page-with-side .kpi-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));}
        .arb-table-wrap{overflow:auto;border:1px solid rgba(148,163,184,0.1);border-radius:12px;background:rgba(10,14,26,0.28);}
        .arb-table{width:100%;min-width:880px;border-collapse:collapse;}
        .arb-workspace .arb-table{min-width:800px;}
        .arb-table th,.arb-table td{padding:11px 12px;border-bottom:1px solid rgba(148,163,184,0.09);text-align:left;white-space:nowrap;}
        .arb-table th{font-size:11px;color:var(--text-3);font-weight:850;text-transform:uppercase;letter-spacing:.04em;background:rgba(26,35,64,0.5);}
        .arb-table td{font-size:13px;color:var(--text-2);}
        .arb-table tbody tr{cursor:pointer;}
        .arb-table tr:hover td{background:rgba(56,189,248,0.05);}
        .arb-table tr.active td{background:rgba(16,185,129,0.08);border-bottom-color:rgba(16,185,129,0.22);}
        .arb-table tr.active .arb-base{color:#34d399;}
        .arb-base{font-family:var(--mono);font-weight:900;color:var(--text-1);}
        .arb-rate{font-family:var(--mono);font-weight:900;}
        .arb-rate.pos{color:#059669;}
        .arb-rate.neg{color:#dc2626;}
        .arb-ex-link{font-family:var(--mono);font-weight:900;color:var(--text-1);text-decoration:none;border-bottom:1px dashed transparent;transition:color .12s,border-color .12s;}
        .arb-ex-link:hover{color:#38bdf8;border-bottom-color:rgba(56,189,248,0.5);}
        .arb-ex-link.disabled{color:var(--text-3);cursor:default;}
        body.theme-light .arb-ex-link{color:#0f172a;}
        body.theme-light .arb-ex-link:hover{color:#0369a1;border-bottom-color:rgba(3,105,161,0.5);}
        .arb-volume{font-family:var(--mono);font-weight:850;color:var(--text-2);}
        .arb-volume.pos{color:#10b981;}
        body.theme-light .arb-volume.pos{color:#047857;}
        .arb-spread{font-family:var(--mono);font-weight:950;color:#d97706;}
        .arb-drawer{position:sticky;top:18px;max-height:calc(100vh - 36px);background:rgba(15,23,41,0.78);border:1px solid rgba(148,163,184,0.12);box-shadow:0 18px 46px rgba(0,0,0,0.22);border-radius:14px;padding:16px;overflow:auto;}
        .arb-drawer.show{transform:none;}
        .arb-drawer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;}
        .arb-drawer-title{font-family:var(--mono);font-size:22px;font-weight:950;color:#fff;}
        .arb-rank-list{display:flex;flex-direction:column;gap:8px;margin-bottom:14px;}
        .arb-rank-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:10px;background:rgba(26,35,64,0.62);border:1px solid rgba(148,163,184,0.1);}
        .arb-rank-item strong{font-size:12px;color:var(--text-1);}
        .arb-chart{width:100%;height:230px;border:1px solid rgba(148,163,184,0.12);border-radius:12px;background:rgba(10,14,26,0.36);overflow:hidden;}
        .arb-chart svg{width:100%;height:100%;display:block;}
        body.theme-light .arb-check,body.theme-light .arb-table-wrap,body.theme-light .arb-chart{
            background:#f8fbff;border-color:rgba(37,99,235,0.12);
        }
        body.theme-light .arb-table th{background:#eef5ff;}
        body.theme-light .arb-drawer{background:#fff;border-color:rgba(37,99,235,0.14);box-shadow:0 18px 42px rgba(15,23,42,0.10);}
        body.theme-light .arb-drawer-title{color:#0f172a;}
        body.theme-light .arb-rank-item{background:#f3f7fc;border-color:rgba(37,99,235,0.1);}
        /* ===== Funding Arb v2: KPI / Filter / Pager / Detail rework ===== */
        /* 末尾那列 104px 原本是给「⚙ 设置」卡留的位置，设置入口挪到页头后
           改成自适应，卡片才不会留一个空格 */
        .kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;}
        @media(max-width:760px){.kpi-grid{grid-template-columns:repeat(2,1fr);}}
        .kpi-card{background:rgba(15,23,41,0.65);border:1px solid rgba(148,163,184,0.12);border-radius:14px;padding:14px 16px;min-height:96px;display:flex;flex-direction:column;justify-content:center;}
        .kpi-card.kpi-clickable{cursor:pointer;transition:border-color .15s, transform .15s, box-shadow .15s;}
        .kpi-card.kpi-clickable:hover{border-color:rgba(94,170,255,0.55);transform:translateY(-1px);box-shadow:0 6px 18px rgba(0,0,0,0.18);}
        .arb-settings-btn{width:100%;height:100%;min-height:96px;border-radius:14px;border:1px solid rgba(148,163,184,0.12);background:rgba(15,23,41,0.65);color:var(--text-1);font-size:14px;font-weight:700;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;transition:border-color .15s, transform .15s, box-shadow .15s;}
        .arb-settings-btn:hover{border-color:rgba(94,170,255,0.55);transform:translateY(-1px);box-shadow:0 6px 18px rgba(0,0,0,0.18);}
        .arb-settings-btn span{font-size:22px;line-height:1;color:var(--text-2);}
        .kpi-label{font-size:11px;color:var(--text-3);font-weight:750;letter-spacing:.04em;}
        .kpi-value{font-family:var(--mono);font-size:22px;font-weight:950;margin-top:6px;color:var(--text-1);line-height:1.1;}
        .kpi-value.pos{color:#10b981;}
        .kpi-value.neg{color:#ef4444;}
        .kpi-value.warn{color:#f59e0b;}
        .kpi-sub{font-size:11px;color:var(--text-3);margin-top:4px;font-weight:700;}
        body.theme-light .kpi-card{background:#fff;border-color:rgba(37,99,235,0.12);}
        body.theme-light .kpi-value{color:#0f172a;}
        body.theme-light .arb-settings-btn{background:#fff;color:#0f172a;border-color:rgba(37,99,235,0.12);}
        body.theme-light .arb-settings-btn:hover{border-color:rgba(94,170,255,0.55);box-shadow:0 6px 18px rgba(15,23,42,0.08);}
        body.theme-light .arb-settings-btn span{color:#64748b;}

        .arb-settings-backdrop{position:fixed;inset:0;background:rgba(2,6,23,0.46);z-index:79;opacity:0;pointer-events:none;transition:opacity .18s;}
        .arb-settings-backdrop.show{opacity:1;pointer-events:auto;}
        .arb-settings-panel{position:fixed;top:0;right:0;width:520px;max-width:calc(100vw - 18px);height:100vh;z-index:80;background:rgba(15,23,41,0.98);border-left:1px solid var(--border);box-shadow:none;transform:translateX(calc(100% + 64px));transition:transform .22s ease,box-shadow .22s ease;padding:20px;overflow:auto;}
        .arb-settings-panel.arb-settings-panel-wide{width:920px;}
        .arb-settings-panel.show{transform:translateX(0);box-shadow:-24px 0 56px rgba(0,0,0,0.35);}
        .arb-settings-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px;}
        .arb-settings-title{font-size:20px;font-weight:950;color:var(--text-1);}
        .arb-settings-sub{font-size:12px;color:var(--text-3);margin-top:4px;}
        .arb-settings-actions{position:sticky;bottom:-20px;margin:18px -20px -20px;padding:14px 20px;background:linear-gradient(180deg,rgba(15,23,41,0.70),rgba(15,23,41,0.98));border-top:1px solid rgba(148,163,184,0.12);display:flex;gap:10px;flex-wrap:wrap;}
        /* 抽屉底部说明：解释「保存」不改运行状态，避免用户找不到启停 */
        .arb-settings-hint{flex:1 0 100%;font-size:11px;color:var(--text-3);line-height:1.5;}
        .exchange-fee-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:6px;}
        .exchange-fee-table th,.exchange-fee-table td{padding:6px 8px;border-bottom:1px solid rgba(148,163,184,0.14);text-align:left;color:var(--text-2);}
        .exchange-fee-table th{font-weight:700;color:var(--text-3);font-size:12px;text-transform:uppercase;letter-spacing:0.04em;}
        .exchange-fee-table input.form-input{padding:4px 8px;font-size:12px;height:28px;width:100px;}
        body.theme-light .exchange-fee-table th,body.theme-light .exchange-fee-table td{border-bottom-color:rgba(15,23,42,0.08);}
        .btn-arb-calc{background:rgba(99,102,241,0.18);color:#818cf8;border:1px solid rgba(99,102,241,0.4);border-radius:6px;padding:5px 9px;font-size:12px;cursor:pointer;line-height:1;margin-right:4px;}
        .btn-arb-calc:hover{background:rgba(99,102,241,0.32);}
        body.theme-light .btn-arb-calc{background:#eef2ff;color:#4f46e5;border-color:rgba(99,102,241,0.45);}
        .arb-settings-actions .btn{flex:1;}
        body.theme-light .arb-settings-panel{background:#fff;border-left-color:rgba(37,99,235,0.14);}
        body.theme-light .arb-settings-panel.show{box-shadow:-24px 0 56px rgba(15,23,42,0.16);}
        body.theme-light .arb-settings-actions{background:linear-gradient(180deg,rgba(255,255,255,0.72),#fff);border-top-color:rgba(37,99,235,0.12);}

        .arb-filter-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px;}
        .arb-filter-row .form-select{min-height:36px;padding:6px 10px;font-size:12px;max-width:200px;}
        .arb-filter-row .toggle{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:10px;border:1px solid rgba(148,163,184,0.14);background:rgba(10,14,26,0.34);font-size:12px;font-weight:800;color:var(--text-2);cursor:pointer;}
        .arb-filter-row .toggle input{accent-color:var(--accent);}
        body.theme-light .arb-filter-row .toggle{background:#f8fbff;border-color:rgba(37,99,235,0.12);}

        /* ===== Surge module (spot/futures price burst) ===== */
        .surge-window-input{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:10px;border:1px solid rgba(148,163,184,0.14);background:rgba(10,14,26,0.34);}
        .surge-window-input .form-input{width:80px;padding:6px 8px;font-size:12px;font-family:var(--mono);text-align:center;}
        .surge-window-label{font-size:12px;font-weight:800;color:var(--text-2);}
        .surge-window-unit{font-size:11px;color:var(--text-3);}
        .surge-window-apply{min-height:32px;padding:4px 12px;font-size:12px;}
        .surge-ex-chips{display:inline-flex;gap:6px;flex-wrap:wrap;}
        .surge-ex-chip{display:inline-flex;align-items:center;gap:4px;padding:6px 10px;border-radius:999px;border:1px solid rgba(148,163,184,0.18);background:rgba(10,14,26,0.34);font-size:11px;font-weight:800;color:var(--text-3);cursor:pointer;letter-spacing:0;user-select:none;transition:background .15s,border-color .15s,color .15s;}
        .surge-ex-chip:hover{border-color:rgba(56,189,248,0.4);}
        .surge-ex-chip.active{background:linear-gradient(135deg,rgba(59,130,246,0.22),rgba(56,189,248,0.16));border-color:rgba(56,189,248,0.5);color:#fff;box-shadow:0 4px 12px rgba(59,130,246,0.18);}
        body.theme-light .surge-ex-chip{background:#f3f7fc;color:#64748b;}
        body.theme-light .surge-ex-chip.active{background:linear-gradient(135deg,rgba(59,130,246,0.16),rgba(14,165,233,0.1));color:#0f172a;}

        /* Exchange icon badge (used in tables) */
        .ex-logo{width:16px;height:16px;border-radius:4px;vertical-align:middle;flex-shrink:0;background:rgba(148,163,184,0.16);object-fit:cover;}
        .ex-logo-fallback{width:16px;height:16px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;color:#fff;flex-shrink:0;letter-spacing:0;}
        .ex-logo-fallback[data-ex="binance"]{background:#F0B90B;color:#1f1300;}
        .ex-logo-fallback[data-ex="bybit"]{background:#F7A600;color:#1f1300;}
        .ex-logo-fallback[data-ex="okx"]{background:#0f172a;color:#fff;}
        .ex-badge{display:inline-flex;align-items:center;gap:6px;line-height:1;}
        .ex-badge .ex-name{font-weight:700;}

        .surge-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
        .surge-pane{border-radius:12px;border:1px solid rgba(148,163,184,0.14);background:rgba(15,23,41,0.42);overflow:hidden;}
        .surge-pane-pos{border-color:rgba(16,185,129,0.28);background:linear-gradient(180deg,rgba(16,185,129,0.06),rgba(15,23,41,0.4));}
        .surge-pane-neg{border-color:rgba(239,68,68,0.28);background:linear-gradient(180deg,rgba(239,68,68,0.06),rgba(15,23,41,0.4));}
        .surge-pane-head{padding:11px 14px;font-size:13px;font-weight:850;color:#fff;display:flex;align-items:center;gap:8px;border-bottom:1px solid rgba(148,163,184,0.12);}
        .surge-pane-pos .surge-pane-head{color:#86efac;background:rgba(16,185,129,0.06);}
        .surge-pane-neg .surge-pane-head{color:#fca5a5;background:rgba(239,68,68,0.06);}
        .surge-pane-icon{font-size:14px;display:inline-grid;place-items:center;width:22px;height:22px;border-radius:6px;}
        .surge-pane-pos .surge-pane-icon{background:rgba(16,185,129,0.16);color:#10b981;}
        .surge-pane-neg .surge-pane-icon{background:rgba(239,68,68,0.16);color:#ef4444;}
        .surge-pane .arb-table-wrap{border-radius:0;border:none;background:transparent;}
        .surge-pane .arb-table{min-width:0;}
        @media (max-width:1100px){
            .surge-grid{grid-template-columns:1fr;}
        }
        body.theme-light .surge-pane{background:#fff;}
        body.theme-light .surge-pane-pos{background:linear-gradient(180deg,#ecfdf5,#fff);}
        body.theme-light .surge-pane-neg{background:linear-gradient(180deg,#fef2f2,#fff);}

        .arb-table .spark{vertical-align:middle;display:inline-block;}
        .arb-table .muted{color:var(--text-3);font-size:11px;}
        .arb-pager{display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 8px 4px;flex-wrap:wrap;font-size:12px;color:var(--text-3);}
        .arb-pager button{min-width:32px;min-height:30px;padding:4px 10px;border-radius:8px;border:1px solid rgba(148,163,184,0.18);background:rgba(15,23,41,0.5);color:var(--text-2);cursor:pointer;font-weight:800;}
        .arb-pager button.active{background:var(--accent);color:#fff;border-color:var(--accent);}
        .arb-pager button:disabled{opacity:.4;cursor:not-allowed;}
        .arb-pager select{min-height:30px;padding:4px 8px;font-size:12px;}
        body.theme-light .arb-pager button{background:#fff;border-color:rgba(37,99,235,0.18);}

        .arb-direction{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;margin-bottom:14px;}
        .arb-side{padding:14px;border-radius:12px;text-align:center;}
        .arb-side.long{background:rgba(16,185,129,0.12);border:1px solid rgba(16,185,129,0.32);}
        .arb-side.short{background:rgba(239,68,68,0.12);border:1px solid rgba(239,68,68,0.32);}
        .arb-side .form-label{margin-bottom:4px;}
        .arb-side-ex{font-size:18px;font-weight:950;font-family:var(--mono);margin-top:4px;color:var(--text-1);}
        .arb-arrow{font-size:22px;color:var(--text-3);text-align:center;}
        .funding-hedge-status{margin:-4px 0 12px;padding:9px 11px;border-radius:8px;border:1px solid rgba(59,130,246,0.18);background:rgba(59,130,246,0.08);color:var(--text-2);font-size:12px;font-weight:800;line-height:1.45;}
        .funding-hedge-status.pos{border-color:rgba(16,185,129,0.28);background:rgba(16,185,129,0.08);color:#10b981;}
        .funding-hedge-status.neg{border-color:rgba(239,68,68,0.28);background:rgba(239,68,68,0.08);color:#ef4444;}
        .funding-hedge-direction{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;margin-bottom:10px;}
        .funding-hedge-leg{padding:12px;border-radius:10px;text-align:center;border:1px solid rgba(148,163,184,0.12);background:rgba(26,35,64,0.42);}
        .funding-hedge-leg.short{border-color:rgba(239,68,68,0.28);background:rgba(239,68,68,0.08);}
        .funding-hedge-leg.long{border-color:rgba(16,185,129,0.28);background:rgba(16,185,129,0.08);}
        .funding-hedge-leg.spot{border-color:rgba(59,130,246,0.24);background:rgba(59,130,246,0.08);}
        .funding-hedge-action{font-size:17px;font-weight:950;color:var(--text-1);margin-top:3px;}
        .funding-hedge-sub{font-size:11px;color:var(--text-3);font-weight:750;margin-top:5px;line-height:1.35;}
        .funding-hedge-note{margin-bottom:14px;padding:10px 12px;border-radius:8px;border:1px dashed rgba(148,163,184,0.22);color:var(--text-2);font-size:12px;line-height:1.5;background:rgba(10,14,26,0.18);}
        .arb-metric-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:14px;}
        .arb-metric-grid > div{background:rgba(26,35,64,0.55);padding:10px 12px;border-radius:10px;border:1px solid rgba(148,163,184,0.08);}
        .arb-metric-val{font-family:var(--mono);font-size:17px;font-weight:900;margin-top:4px;color:var(--text-1);line-height:1.22;overflow-wrap:anywhere;}
        .arb-metric-val.pos{color:#10b981;}
        .arb-metric-val.neg{color:#ef4444;}
        .arb-metric-val.warn{color:#f59e0b;}
        body.theme-light .arb-metric-grid > div{background:#f3f7fc;border-color:rgba(37,99,235,0.1);}
        body.theme-light .arb-side.long{background:#e8fbf2;}
        body.theme-light .arb-side.short{background:#fdecec;}
        body.theme-light .arb-side-ex{color:#0f172a;}
        body.theme-light .funding-hedge-leg{background:#f8fbff;border-color:rgba(37,99,235,0.12);}
        body.theme-light .funding-hedge-leg.short{background:#fef2f2;}
        body.theme-light .funding-hedge-leg.long{background:#ecfdf5;}
        body.theme-light .funding-hedge-leg.spot{background:#eff6ff;}
        body.theme-light .funding-hedge-action{color:#0f172a;}
        body.theme-light .funding-hedge-note{background:#f8fbff;border-color:rgba(100,116,139,0.18);}

        .arb-chart-legend{display:flex;gap:14px;font-size:11px;margin:6px 0 8px;color:var(--text-3);font-weight:700;}
        .arb-chart-legend .dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:middle;}

        .arb-rank-table{border:1px solid rgba(148,163,184,0.1);border-radius:10px;overflow:hidden;margin-bottom:14px;}
        .arb-rank-head,.arb-rank-row{display:grid;grid-template-columns:1.2fr 1.35fr 56px;gap:10px;padding:8px 12px;align-items:center;}
        .arb-rank-head{font-size:11px;color:var(--text-3);background:rgba(26,35,64,0.55);font-weight:800;letter-spacing:.04em;}
        .arb-rank-row{border-top:1px solid rgba(148,163,184,0.08);background:rgba(15,23,41,0.4);font-size:13px;}
        .arb-rank-row strong{color:var(--text-1);font-size:13px;font-weight:900;}
        .arb-rank-rate{font-family:var(--mono);}
        .arb-rate-raw{font-family:var(--mono);font-size:10.5px;color:var(--text-3);margin-left:6px;line-height:1.25;}
        .arb-rank-row .rank-num{font-family:var(--mono);font-weight:950;color:var(--text-2);}
        body.theme-light .arb-rank-head{background:#eef5ff;}
        body.theme-light .arb-rank-row{background:#fff;}
        .coin-config{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
        .coin-config .form-input,.coin-config .form-select{font-size:12px;padding:8px 10px;}
        .coin-config .form-label{font-size:11px;margin-bottom:4px;}
        .trigger-section{padding:12px 14px;border-radius:12px;margin-top:10px;background:rgba(26,35,64,0.44);border:1px solid rgba(148,163,184,0.1);}
        .trigger-section.price-trigger{border-color:rgba(245,158,11,0.18);background:rgba(245,158,11,0.055);}
        .trigger-section.spread-trigger{border-color:rgba(59,130,246,0.18);background:rgba(59,130,246,0.055);}
        .trigger-section.manual-trigger{border-color:rgba(16,185,129,0.18);background:rgba(16,185,129,0.055);}
        .trigger-title{font-size:12px;font-weight:850;color:var(--text-1);margin-bottom:10px;}
        .empty-state{text-align:center;color:var(--text-3);padding:30px;font-size:14px;border:1px dashed rgba(148,163,184,0.18);border-radius:14px;background:rgba(10,14,26,0.28);}
        .toast{position:fixed;top:22px;left:50%;transform:translateX(-50%) translateY(-80px);padding:12px 22px;border-radius:12px;font-size:13px;font-weight:800;color:#fff;z-index:9999;opacity:0;transition:all .25s;pointer-events:none;box-shadow:0 18px 42px rgba(0,0,0,0.35);}
        .toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
        .toast.success{background:linear-gradient(135deg,#10b981,#059669);}
        .toast.error{background:linear-gradient(135deg,#ef4444,#dc2626);}
        .last-update{text-align:center;font-size:11px;color:var(--text-3);margin-top:18px;font-family:var(--mono);}
        .sidebar-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.55);z-index:15;}
        body.theme-light{
            background:linear-gradient(180deg,#f8fbff 0%,#f3f7fc 55%,#edf3fa 100%);
            color:var(--text-1);
        }
        body.theme-light .sidebar{
            background:linear-gradient(180deg,rgba(255,255,255,0.98),rgba(239,246,255,0.96));
            border-right:1px solid var(--border);box-shadow:12px 0 30px rgba(15,23,42,0.08);
        }
        body.theme-light .brand-title,body.theme-light .page-title,body.theme-light .metric-value,
        body.theme-light .tool-card h3,body.theme-light .section-header,body.theme-light .coin-name,
        body.theme-light .coin-prices .val,body.theme-light .stat-item span{color:#0f172a;}
        body.theme-light .nav-group,body.theme-light .sidebar-footer{border-color:rgba(37,99,235,0.12);}
        body.theme-light .nav-item{color:#475569;}
        body.theme-light .nav-item:hover{background:#eef5ff;}
        body.theme-light .nav-item.active{background:linear-gradient(90deg,rgba(59,130,246,0.16),rgba(14,165,233,0.08));color:#0f172a;}
        body.theme-light .nav-icon,body.theme-light .tool-card-icon{
            background:#eff6ff;border-color:rgba(37,99,235,0.16);
        }
        body.theme-light .metric-card,body.theme-light .tool-card,body.theme-light .section,body.theme-light .coin-card{
            background:rgba(255,255,255,0.92);border-color:rgba(37,99,235,0.12);
            box-shadow:0 16px 38px rgba(15,23,42,0.08),inset 0 1px 0 rgba(255,255,255,0.72);
        }
        body.theme-light .metric-card:after{background:rgba(59,130,246,0.08);}
        body.theme-light .live-chip,body.theme-light .clock-chip,body.theme-light .alert-btn,body.theme-light .theme-toggle{
            background:rgba(255,255,255,0.86);border-color:rgba(37,99,235,0.14);color:#334155;
            box-shadow:0 8px 18px rgba(15,23,42,0.06);
        }
        body.theme-light .alert-btn:hover,body.theme-light .theme-toggle:hover{background:#eff6ff;}
        body.theme-light .alert-popover{background:#fff;border-color:rgba(37,99,235,0.14);box-shadow:0 20px 50px rgba(15,23,42,0.16);}
        body.theme-light .alert-popover h4{color:#0f172a;}
        body.theme-light .alert-item,body.theme-light .stat-item,body.theme-light .tool-stats .stat-item{
            background:#f3f7fc;border-color:rgba(37,99,235,0.1);
        }
        body.theme-light .section-header{border-bottom-color:rgba(37,99,235,0.1);}
        body.theme-light .status-indicator,body.theme-light .feature-block,body.theme-light .trigger-section{
            background:#f8fbff;border-color:rgba(37,99,235,0.11);
        }
        body.theme-light .feature-block.above-block{background:rgba(16,185,129,0.08);border-color:rgba(16,185,129,0.18);}
        body.theme-light .feature-block.below-block{background:rgba(239,68,68,0.06);border-color:rgba(239,68,68,0.16);}
        body.theme-light .feature-block.cooldown-block,body.theme-light .feature-block.default-block{background:rgba(59,130,246,0.07);border-color:rgba(59,130,246,0.16);}
        body.theme-light .feature-block.funding-block{background:rgba(245,158,11,0.08);border-color:rgba(245,158,11,0.16);}
        body.theme-light .feature-block.alert-block{background:rgba(14,165,233,0.07);border-color:rgba(14,165,233,0.16);}
        body.theme-light .form-input,body.theme-light .form-select{
            background:#fff;border-color:rgba(100,116,139,0.2);color:#0f172a;
        }
        body.theme-light .form-input:focus,body.theme-light .form-select:focus{background:#fff;}
        body.theme-light .form-select option{background:#fff;color:#0f172a;}
        body.theme-light .coin-prices,body.theme-light .empty-state{
            background:#f8fbff;border-color:rgba(37,99,235,0.1);
        }
        body.theme-light .btn-secondary{background:#eef5ff;color:#1e3a8a;border-color:rgba(37,99,235,0.14);}
        body.theme-light .side-clock{color:#0f172a;}
        ::-webkit-scrollbar{width:10px;height:10px;}
        ::-webkit-scrollbar-track{background:rgba(10,14,26,0.35);}
        ::-webkit-scrollbar-thumb{background:rgba(100,116,139,0.5);border-radius:8px;border:2px solid rgba(10,14,26,0.35);}
        ::-webkit-scrollbar-thumb:hover{background:rgba(148,163,184,0.68);}
        ::-webkit-scrollbar-corner{background:transparent;}
        body.theme-light{scrollbar-color:rgba(148,163,184,0.55) transparent;}
        body.theme-light ::-webkit-scrollbar-track{background:transparent;}
        body.theme-light ::-webkit-scrollbar-thumb{background:rgba(148,163,184,0.45);border:2px solid transparent;background-clip:padding-box;}
        body.theme-light ::-webkit-scrollbar-thumb:hover{background:rgba(100,116,139,0.7);background-clip:padding-box;}
        @media(max-width:1280px){.arb-workspace{grid-template-columns:1fr;}.arb-drawer{position:relative;top:auto;max-height:none;}}
        @media(max-width:1280px){.page.page-with-side{grid-template-columns:1fr;}.page.page-with-side .page-side{position:relative;top:auto;max-height:none;overflow:visible;}}
        @media(max-width:1100px){.overview-stats{grid-template-columns:repeat(2,minmax(0,1fr));}.tool-grid{grid-template-columns:1fr;}}
        @media(max-width:900px){
            .app-shell{display:block;}
            .sidebar{position:fixed;left:0;top:0;bottom:0;width:224px;transform:translateX(-110%);transition:transform .22s ease;}
            body.sidebar-open .sidebar{transform:translateX(0);}
            body.sidebar-open .sidebar-backdrop{display:block;}
            .main{padding:16px 14px 40px;}
            .mobile-topbar{display:flex;}
            .top-header{align-items:flex-start;flex-direction:column;}
            .header-actions{width:100%;justify-content:space-between;flex-wrap:wrap;}
            .page-title{font-size:24px;}
        }
        @media(max-width:620px){
            .overview-stats{grid-template-columns:1fr;}
            .coin-config{grid-template-columns:1fr;}
            .btn-group .btn{max-width:none;}
            .panel,.section-header{padding-left:14px;padding-right:14px;}
            .clock-chip{display:none;}
        }

        /* ========== Phase 1-4 additions ========== */
        .simple-config-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:10px 0;}
        .simple-config-grid label{display:block;font-size:11px;color:var(--text-3);margin-bottom:4px;text-transform:uppercase;letter-spacing:.04em;}
        .feed-table{width:100%;min-width:780px;border-collapse:collapse;}
        .feed-table th,.feed-table td{padding:9px 11px;border-bottom:1px solid rgba(148,163,184,0.08);font-size:13px;text-align:left;white-space:nowrap;}
        .feed-table th{font-size:11px;color:var(--text-3);font-weight:850;text-transform:uppercase;background:rgba(26,35,64,0.5);}
        body.theme-light .feed-table th{background:#eef5ff;}
        .feed-row-long td{background:rgba(16,185,129,0.04);}
        .feed-row-short td{background:rgba(239,68,68,0.04);}
        .feed-row-buy td{background:rgba(16,185,129,0.04);}
        .feed-row-sell td{background:rgba(239,68,68,0.04);}
        .badge-side{display:inline-block;padding:2px 8px;border-radius:6px;font-weight:800;font-size:11px;}
        .badge-side.long{background:rgba(16,185,129,0.18);color:#10b981;}
        .badge-side.short{background:rgba(239,68,68,0.18);color:#ef4444;}
        .badge-side.buy{background:rgba(16,185,129,0.18);color:#10b981;}
        .badge-side.sell{background:rgba(239,68,68,0.18);color:#ef4444;}
        .badge-cat{display:inline-block;padding:2px 8px;border-radius:6px;font-weight:800;font-size:11px;background:rgba(94,170,255,0.18);color:#5eaaff;}
        .badge-cat.listing{background:rgba(16,185,129,0.18);color:#10b981;}
        .badge-cat.delisting{background:rgba(239,68,68,0.18);color:#ef4444;}
        .badge-cat.airdrop{background:rgba(245,158,11,0.18);color:#f59e0b;}
        .badge-cat.maintenance{background:rgba(148,163,184,0.18);color:#94a3b8;}
        .badge-cat.contract{background:rgba(168,85,247,0.18);color:#a855f7;}
        .quick-trade{display:inline-flex;gap:4px;}
        .quick-trade .btn-mini{min-height:24px;padding:3px 8px;font-size:11px;font-weight:800;border-radius:5px;text-decoration:none;display:inline-flex;align-items:center;}
        .quick-trade .btn-long{background:rgba(16,185,129,0.18);color:#10b981;border:1px solid rgba(16,185,129,0.32);}
        .quick-trade .btn-short{background:rgba(239,68,68,0.18);color:#ef4444;border:1px solid rgba(239,68,68,0.32);}
        .quick-trade .btn-mini:hover{filter:brightness(1.15);}

        /* Funding countdown column */
        .funding-countdown{font-variant-numeric:tabular-nums;font-weight:800;color:#5eaaff;}

        /* Arb calculator modal */
        .arb-calc-backdrop{position:fixed;inset:0;background:rgba(2,6,18,0.55);z-index:90;display:none;}
        .arb-calc-backdrop.show{display:block;}
        .arb-calc-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:rgba(15,23,41,0.98);border:1px solid rgba(148,163,184,0.16);border-radius:16px;padding:22px 24px;min-width:420px;max-width:90vw;z-index:91;display:none;color:var(--text-2);}
        .arb-calc-modal.show{display:block;}
        body.theme-light .arb-calc-modal{background:#fff;color:#1e293b;}
        .arb-calc-row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px dashed rgba(148,163,184,0.2);}
        .arb-calc-row:last-of-type{border-bottom:none;}
        .arb-calc-row span:last-child{font-weight:800;color:#5eaaff;}
        .arb-calc-result{margin-top:14px;padding:12px;background:rgba(94,170,255,0.08);border-radius:10px;}

        /* Command palette (Ctrl+K) */
        .cmd-palette{position:fixed;top:18%;left:50%;transform:translateX(-50%);width:min(560px,92vw);background:rgba(15,23,41,0.98);border:1px solid rgba(148,163,184,0.18);border-radius:14px;box-shadow:0 30px 60px rgba(0,0,0,0.4);z-index:120;display:none;}
        .cmd-palette.show{display:block;}
        body.theme-light .cmd-palette{background:#fff;}
        .cmd-input{width:100%;padding:14px 18px;border:none;background:transparent;font-size:16px;color:var(--text-1);outline:none;border-bottom:1px solid rgba(148,163,184,0.16);}
        body.theme-light .cmd-input{color:#1e293b;}
        .cmd-list{max-height:60vh;overflow:auto;padding:6px 0;}
        .cmd-item{padding:10px 18px;cursor:pointer;display:flex;justify-content:space-between;font-size:13px;color:var(--text-2);}
        .cmd-item:hover,.cmd-item.active{background:rgba(94,170,255,0.10);}
        .cmd-item .cmd-hint{color:var(--text-3);font-size:11px;}

        /* Mobile responsive */
        @media (max-width:780px){
            .feed-table{min-width:560px;}
            .arb-calc-modal{min-width:0;width:92vw;padding:18px;}
            .cmd-palette{top:8%;}
            .quick-trade{flex-direction:column;}
            .quick-trade .btn-mini{padding:2px 6px;font-size:10px;}
        }

        /* ============================================================
           Goldview Personal — Overview redesign (designer spec)
           ============================================================ */

        /* --- Header search box --- */
        .top-header-left{min-width:0;}
        .header-search{position:relative;display:flex;align-items:center;gap:8px;height:38px;padding:0 10px 0 12px;width:320px;max-width:32vw;border-radius:12px;background:rgba(15,23,41,0.72);border:1px solid var(--border);box-shadow:inset 0 1px 0 rgba(255,255,255,0.03);}
        body.theme-light .header-search{background:#fff;border-color:rgba(37,99,235,0.14);box-shadow:0 1px 2px rgba(15,23,41,0.04);}
        .header-search:focus-within{border-color:var(--accent-2);box-shadow:0 0 0 3px rgba(56,189,248,0.16);}
        body.theme-light .header-search:focus-within{box-shadow:0 0 0 3px rgba(99,102,241,0.16);border-color:#a5b4fc;}
        .header-search-icon{font-size:13px;color:var(--text-3);}
        .header-search-input{flex:1;min-width:0;border:none;background:transparent;outline:none;color:var(--text-1);font-size:13px;font-family:inherit;}
        .header-search-input::placeholder{color:var(--text-3);}
        .header-search-kbd{font-family:var(--mono);font-size:10.5px;color:var(--text-3);padding:2px 6px;border-radius:6px;border:1px solid rgba(148,163,184,0.22);background:rgba(15,23,41,0.4);}
        body.theme-light .header-search-kbd{background:#f1f5f9;border-color:#e2e8f0;}
        .header-search-pop{position:absolute;left:0;top:46px;width:min(420px,80vw);background:rgba(15,23,41,0.98);border:1px solid var(--border);border-radius:12px;box-shadow:0 24px 50px rgba(0,0,0,0.32);max-height:60vh;overflow:auto;display:none;z-index:60;padding:6px;}
        body.theme-light .header-search-pop{background:#fff;border-color:rgba(37,99,235,0.14);box-shadow:0 16px 40px rgba(15,23,41,0.12);}
        .header-search-pop.show{display:block;}
        .hsp-group{padding:6px 8px 4px;font-size:10.5px;font-weight:800;color:var(--text-3);letter-spacing:.06em;text-transform:uppercase;}
        .hsp-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;cursor:pointer;color:var(--text-1);font-size:13px;}
        .hsp-item:hover,.hsp-item.active{background:rgba(99,102,241,0.10);}
        body.theme-light .hsp-item:hover,body.theme-light .hsp-item.active{background:#f1f5ff;}
        .hsp-item-icon{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:rgba(99,102,241,0.12);font-size:14px;}
        .hsp-item-meta{margin-left:auto;font-size:11px;color:var(--text-3);}
        .hsp-empty{padding:18px 12px;text-align:center;color:var(--text-3);font-size:12px;}

        /* --- Sidebar tweaks for new design --- */
        .sidebar-theme-toggle{width:38px;height:38px;padding:0;display:grid;place-items:center;font-size:16px;}
        .sidebar-collapse-btn{display:none;}
        .sidebar-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;}

        /* --- Header chips override --- */
        .live-chip{color:var(--text-1);font-weight:700;}
        body.theme-light .live-chip,body.theme-light .clock-chip,body.theme-light .alert-btn{background:#fff;border-color:rgba(37,99,235,0.14);color:#0f172a;box-shadow:0 1px 2px rgba(15,23,41,0.04);}
        body.theme-light .alert-btn{color:#0f172a;}
        body.theme-light .live-chip:hover,body.theme-light .alert-btn:hover{border-color:#a5b4fc;}

        /* --- Overview layout: main + side rail --- */
        .overview-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start;}
        .overview-main{min-width:0;}
        .overview-side{display:flex;flex-direction:column;gap:14px;position:sticky;top:18px;}

        /* --- Metric cards (designer style) --- */
        .overview-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px;}
        .metric-card{position:relative;padding:18px 18px 16px;min-height:118px;background:linear-gradient(180deg,rgba(15,23,41,0.9),rgba(15,23,41,0.72));border:1px solid var(--border);border-radius:16px;overflow:hidden;}
        body.theme-light .metric-card{background:#fff;border-color:rgba(37,99,235,0.10);box-shadow:0 1px 3px rgba(15,23,41,0.04);}
        .metric-card:after{display:none;}
        .metric-icon{position:absolute;right:16px;top:16px;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-size:16px;background:rgba(99,102,241,0.12);color:#818cf8;}
        .mc-running .metric-icon{background:rgba(59,130,246,0.14);color:#60a5fa;}
        .mc-alerts  .metric-icon{background:rgba(244,63,94,0.14); color:#f87171;}
        .mc-coins   .metric-icon{background:rgba(245,158,11,0.16);color:#fbbf24;}
        .mc-strategy .metric-icon{background:rgba(139,92,246,0.16);color:#a78bfa;}
        body.theme-light .mc-running .metric-icon{background:#dbeafe;color:#2563eb;}
        body.theme-light .mc-alerts  .metric-icon{background:#fee2e2;color:#dc2626;}
        body.theme-light .mc-coins   .metric-icon{background:#fef3c7;color:#d97706;}
        body.theme-light .mc-strategy .metric-icon{background:#ede9fe;color:#7c3aed;}
        .metric-label{font-size:13px;color:var(--text-2);font-weight:700;margin-bottom:8px;}
        .metric-value{font-family:var(--mono);font-size:30px;font-weight:900;color:var(--text-1);line-height:1.05;}
        body.theme-light .metric-value{color:#0f172a;}
        .metric-note{font-size:11px;color:var(--text-3);margin-top:10px;}

        /* --- Modules panel + grid --- */
        .overview-modules-panel{padding:18px 20px 22px;background:rgba(15,23,41,0.86);border:1px solid var(--border);border-radius:18px;}
        body.theme-light .overview-modules-panel{background:#fff;border-color:rgba(37,99,235,0.10);box-shadow:0 1px 3px rgba(15,23,41,0.04);}
        .overview-modules-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
        .overview-section-title{font-size:15px;font-weight:850;color:var(--text-1);}
        body.theme-light .overview-section-title{color:#0f172a;}

        .tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
        .tool-card{padding:14px 14px 12px;border-radius:14px;background:rgba(26,35,64,0.55);border:1px solid rgba(148,163,184,0.10);display:flex;flex-direction:column;gap:10px;}
        body.theme-light .tool-card{background:#f8fbff;border-color:rgba(37,99,235,0.10);box-shadow:none;}
        .tool-card .tool-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;}
        .tool-card .tool-card-title{display:flex;align-items:flex-start;gap:9px;min-width:0;}
        .tool-card .tool-card-icon{width:34px;height:34px;border-radius:10px;flex:0 0 34px;display:grid;place-items:center;font-size:15px;background:rgba(99,102,241,0.12);color:#a5b4fc;border:none;}
        body.theme-light .tool-card .tool-card-icon{background:#ede9fe;color:#6366f1;}
        .tool-card h3{font-size:13.5px;font-weight:850;color:var(--text-1);line-height:1.2;}
        body.theme-light .tool-card h3{color:#0f172a;}
        .tool-card p{display:block;font-size:11px;color:var(--text-3);margin-top:3px;line-height:1.3;}
        .tool-card .status-badge{height:22px;padding:0 8px;font-size:11px;border-radius:999px;cursor:pointer;flex:0 0 auto;}
        .tool-card .tool-stats{display:flex;flex-wrap:wrap;gap:6px;}
        .tool-card .tool-stats .stat-item{padding:5px 8px;font-size:11px;}
        .tool-card .tool-stats-footer{margin-top:auto;}
        .tool-card-foot{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 0 2px;border-top:1px dashed rgba(148,163,184,0.16);font-size:12px;color:var(--accent-2);font-weight:800;cursor:pointer;}
        body.theme-light .tool-card-foot{color:#6366f1;border-top-color:rgba(37,99,235,0.10);}
        .tool-card-clickable:hover{transform:translateY(-2px);}
        body.theme-light .tool-card-clickable:hover{border-color:rgba(99,102,241,0.45);}
        .tool-card-clickable:hover .tool-card-foot{color:#0ea5e9;}
        body.theme-light .tool-card-clickable:hover .tool-card-foot{color:#4f46e5;}

        @media (max-width:1280px){
            .overview-layout{grid-template-columns:minmax(0,1fr) 290px;}
            .tool-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
        }
        @media (max-width:1080px){
            .overview-layout{grid-template-columns:1fr;}
            .overview-side{position:static;}
            .tool-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
        }
        @media (max-width:760px){
            .overview-stats{grid-template-columns:repeat(2,minmax(0,1fr));}
            .tool-grid{grid-template-columns:repeat(1,minmax(0,1fr));}
            .header-search{display:none;}
        }
        @media (max-width:620px){
            .top-header{gap:14px;margin-bottom:18px;}
            .header-actions{display:grid;grid-template-columns:1fr auto auto;width:100%;gap:10px;align-items:center;}
            .live-chip{justify-content:center;min-width:0;}
            .alert-wrap{justify-self:center;}
            .theme-toggle{justify-content:center;min-width:0;padding:0 10px;}
            .overview-stats{grid-template-columns:1fr;}
            .metric-card{min-height:108px;}
        }
        @media (max-width:520px){
            .main{padding-left:12px;padding-right:12px;}
            .header-actions{grid-template-columns:1fr;gap:8px;}
            .alert-wrap{justify-self:stretch;}
            .alert-btn{width:100%;justify-content:center;}
            .theme-toggle{width:100%;grid-column:1 / -1;}
            .overview-stats{gap:10px;}
            .mobile-topbar .brand-subtitle{display:none;}
        }

        /* Sidebar single-list mode — no group titles */
        .nav-list-flat{padding:12px 0 16px;display:flex;flex-direction:column;gap:6px;border-top:1px solid rgba(148,163,184,0.12);}
        body.theme-light .nav-list-flat{border-top-color:rgba(37,99,235,0.10);}

        /* ---------- Runtime log page ---------- */
        /* 下拉基类是 width:100%，放进 auto-basis 的 flex 容器会把工具栏算窄、挤成
           两行。这里给容器 max-content 宽、给下拉自适应宽，才能排成一行。 */
        .runtime-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;flex:0 0 auto;width:max-content;max-width:100%;}
        .runtime-toolbar .form-select{width:auto;flex:0 0 auto;}
        .runtime-log-panel{padding:16px 18px;}
        .runtime-log-stats{
            display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:14px;
        }
        .rtl-stat{
            display:flex;align-items:center;justify-content:space-between;gap:10px;
            padding:10px 14px;border-radius:10px;background:rgba(56,189,248,0.06);
            border:1px solid rgba(148,163,184,0.14);
        }
        body.theme-light .rtl-stat{background:#f6faff;border-color:rgba(37,99,235,0.10);}
        .rtl-stat-label{font-size:12px;color:var(--text-3);font-weight:600;}
        .rtl-stat-val{font-size:18px;font-weight:800;color:var(--text-1);font-family:var(--mono);}
        .rtl-stat.ok .rtl-stat-val{color:var(--ok);}
        .rtl-stat.warn .rtl-stat-val{color:#f59e0b;}
        .rtl-stat.err .rtl-stat-val{color:var(--err);}
        .rtl-stat.info .rtl-stat-val{color:var(--accent-2);}
        .runtime-log-table{
            width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed;
        }
        .runtime-log-table thead th{
            position:sticky;top:0;background:rgba(15,23,41,0.92);color:var(--text-3);
            font-weight:700;font-size:11px;letter-spacing:.06em;text-transform:uppercase;
            text-align:left;padding:10px 12px;border-bottom:1px solid rgba(148,163,184,0.16);
        }
        body.theme-light .runtime-log-table thead th{background:#f1f6ff;color:#475569;border-bottom-color:rgba(37,99,235,0.12);}
        .runtime-log-table tbody td{
            padding:9px 12px;border-bottom:1px solid rgba(148,163,184,0.08);color:var(--text-2);
            vertical-align:top;word-break:break-word;
        }
        body.theme-light .runtime-log-table tbody td{color:#475569;border-bottom-color:rgba(37,99,235,0.06);}
        .runtime-log-table tbody tr:hover td{background:rgba(56,189,248,0.04);}
        body.theme-light .runtime-log-table tbody tr:hover td{background:#eef5ff;}
        .rtl-time{font-family:var(--mono);font-size:12px;color:var(--text-3);white-space:nowrap;}
        .rtl-extras{font-size:12px;color:var(--text-3);line-height:1.6;word-break:break-word;}
        .rtl-badge{
            display:inline-block;padding:3px 10px;border-radius:99px;font-size:11px;font-weight:700;
            background:rgba(56,189,248,0.10);color:var(--accent-2);border:1px solid rgba(56,189,248,0.20);
            white-space:nowrap;
        }
        .rtl-badge.rtl-ok{background:rgba(16,185,129,0.12);color:var(--ok);border-color:rgba(16,185,129,0.24);}
        .rtl-badge.rtl-warn{background:rgba(245,158,11,0.14);color:#f59e0b;border-color:rgba(245,158,11,0.26);}
        .rtl-badge.rtl-err{background:rgba(239,68,68,0.12);color:var(--err);border-color:rgba(239,68,68,0.26);}
        .rtl-badge.rtl-info{background:rgba(56,189,248,0.12);color:var(--accent-2);border-color:rgba(56,189,248,0.24);}

        /* --- Right rail cards --- */
        .ovs-card{padding:14px 16px 14px;border-radius:16px;background:rgba(15,23,41,0.86);border:1px solid var(--border);}
        body.theme-light .ovs-card{background:#fff;border-color:rgba(37,99,235,0.10);box-shadow:0 1px 3px rgba(15,23,41,0.04);}
        .ovs-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
        .ovs-head h3{font-size:14px;font-weight:850;color:var(--text-1);}
        body.theme-light .ovs-head h3{color:#0f172a;}
        .ovs-link{font-size:12px;color:var(--text-3);text-decoration:none;font-weight:700;}
        .ovs-link:hover{color:var(--accent-2);}
        body.theme-light .ovs-link:hover{color:#6366f1;}
        .ovs-empty{padding:14px 6px;text-align:center;color:var(--text-3);font-size:12px;}
        .ovs-foot-link{display:block;margin-top:10px;padding-top:10px;border-top:1px dashed rgba(148,163,184,0.16);text-align:center;font-size:12px;color:var(--accent-2);text-decoration:none;font-weight:800;cursor:pointer;}
        body.theme-light .ovs-foot-link{color:#6366f1;border-top-color:rgba(37,99,235,0.08);}

        /* Latest alerts list */
        .ovs-alerts-list{display:flex;flex-direction:column;gap:8px;}
        .ovs-alert-row{display:flex;align-items:flex-start;gap:10px;padding:9px 10px;border-radius:10px;background:rgba(26,35,64,0.45);border:1px solid rgba(148,163,184,0.06);cursor:pointer;}
        body.theme-light .ovs-alert-row{background:#f8fbff;border-color:rgba(37,99,235,0.06);}
        .ovs-alert-row:hover{border-color:rgba(99,102,241,0.35);}
        .ovs-alert-icon{width:24px;height:24px;border-radius:7px;flex:0 0 24px;display:grid;place-items:center;font-size:12px;background:rgba(245,158,11,0.16);color:#fbbf24;}
        body.theme-light .ovs-alert-icon{background:#fef3c7;color:#d97706;}
        .ovs-alert-body{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px;}
        .ovs-alert-title{font-size:12px;font-weight:800;color:var(--text-1);}
        body.theme-light .ovs-alert-title{color:#0f172a;}
        .ovs-alert-detail{font-size:11px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
        .ovs-alert-time{font-size:10.5px;color:var(--text-3);font-family:var(--mono);white-space:nowrap;}

        /* Watchlist snapshot table */
        .ovs-watch-table{display:flex;flex-direction:column;gap:6px;}
        .ovs-watch-row{display:grid;grid-template-columns:76px 1fr auto auto;gap:8px;align-items:center;padding:8px 8px;border-radius:9px;font-size:12px;cursor:pointer;}
        .ovs-watch-row:hover{background:rgba(99,102,241,0.08);}
        body.theme-light .ovs-watch-row:hover{background:#f1f5ff;}
        .ovs-watch-row .owr-coin{display:flex;align-items:center;gap:6px;min-width:0;font-weight:850;color:var(--text-1);}
        body.theme-light .ovs-watch-row .owr-coin{color:#0f172a;}
        .ovs-watch-row .owr-price{font-family:var(--mono);font-weight:800;color:var(--text-1);text-align:right;}
        body.theme-light .ovs-watch-row .owr-price{color:#0f172a;}
        .ovs-watch-row .owr-chg{font-family:var(--mono);font-weight:800;text-align:right;min-width:54px;}
        .ovs-watch-row .owr-rate{font-family:var(--mono);font-weight:800;text-align:right;min-width:62px;}
        .ovs-watch-row .pos{color:#10b981;}
        .ovs-watch-row .neg{color:#ef4444;}
        .owr-head{font-size:10.5px;color:var(--text-3);font-weight:700;text-transform:uppercase;letter-spacing:.04em;cursor:default;padding-bottom:0;}
        .owr-head:hover{background:transparent;}

        /* Quick actions */
        .ovs-quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
        .ovs-quick-btn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;border-radius:12px;background:rgba(26,35,64,0.45);border:1px solid rgba(148,163,184,0.10);color:var(--text-1);font-size:12px;font-weight:800;cursor:pointer;transition:all .15s;}
        body.theme-light .ovs-quick-btn{background:#f8fbff;border-color:rgba(37,99,235,0.08);color:#0f172a;}
        .ovs-quick-btn:hover{border-color:rgba(99,102,241,0.45);transform:translateY(-1px);}
        .ovs-quick-icon{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;font-size:16px;}
        .ovs-qi-1{background:rgba(245,158,11,0.16);color:#fbbf24;}
        .ovs-qi-2{background:rgba(244,63,94,0.16); color:#fb7185;}
        .ovs-qi-3{background:rgba(139,92,246,0.16);color:#a78bfa;}
        .ovs-qi-4{background:rgba(59,130,246,0.16);color:#60a5fa;}
        body.theme-light .ovs-qi-1{background:#fef3c7;color:#d97706;}
        body.theme-light .ovs-qi-2{background:#fee2e2;color:#dc2626;}
        body.theme-light .ovs-qi-3{background:#ede9fe;color:#7c3aed;}
        body.theme-light .ovs-qi-4{background:#dbeafe;color:#2563eb;}

        /* Coin mini chip in metric note */
        .coin-chip-row{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px;}
        .coin-chip{display:inline-flex;align-items:center;gap:4px;padding:1px 7px;border-radius:999px;background:rgba(99,102,241,0.14);color:var(--text-1);font-size:10.5px;font-weight:800;}
        body.theme-light .coin-chip{background:#ede9fe;color:#4338ca;}

        /* Clickable metric card on overview */
        .metric-card.mc-clickable{cursor:pointer;transition:transform .15s, border-color .15s, box-shadow .15s;}
        .metric-card.mc-clickable:hover{transform:translateY(-2px);border-color:rgba(99,102,241,0.45);}
        body.theme-light .metric-card.mc-clickable:hover{border-color:rgba(99,102,241,0.45);box-shadow:0 6px 20px rgba(15,23,41,0.08);}

        /* ============================================================
           Spread Monitor v2 — designer redesign
           ============================================================ */
        .spread-page-v2.page-with-side.active{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px;align-items:start;}
        .spread-page-v2 .page-side{position:sticky;top:18px;}

        /* KPI strip */
        .spread-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:14px;}
        .sk-card{position:relative;padding:14px 16px 12px;border-radius:14px;background:rgba(15,23,41,0.86);border:1px solid var(--border);min-height:118px;display:flex;flex-direction:column;gap:6px;}
        body.theme-light .sk-card{background:#fff;border-color:rgba(37,99,235,0.10);box-shadow:0 1px 3px rgba(15,23,41,0.04);}
        .sk-head{display:flex;align-items:center;gap:8px;}
        .sk-icon{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font-size:13px;background:rgba(99,102,241,0.12);color:#a5b4fc;}
        .sk-i-pos{background:rgba(16,185,129,0.16);color:#10b981;}
        .sk-i-neg{background:rgba(239,68,68,0.16);color:#ef4444;}
        .sk-i-bell{background:rgba(244,63,94,0.16);color:#f87171;}
        .sk-i-target{background:rgba(139,92,246,0.16);color:#a78bfa;}
        .sk-i-shield{background:rgba(59,130,246,0.16);color:#60a5fa;}
        .sk-i-gear{background:rgba(148,163,184,0.18);color:#cbd5e1;}
        body.theme-light .sk-i-pos{background:#d1fae5;color:#059669;}
        body.theme-light .sk-i-neg{background:#fee2e2;color:#dc2626;}
        body.theme-light .sk-i-bell{background:#ffe4e6;color:#e11d48;}
        body.theme-light .sk-i-target{background:#ede9fe;color:#7c3aed;}
        body.theme-light .sk-i-shield{background:#dbeafe;color:#2563eb;}
        body.theme-light .sk-i-gear{background:#e2e8f0;color:#475569;}
        .sk-label{font-size:12px;color:var(--text-2);font-weight:700;}
        .sk-value{font-family:var(--mono);font-size:26px;font-weight:900;color:var(--text-1);line-height:1.05;letter-spacing:-0.01em;}
        body.theme-light .sk-value{color:#0f172a;}
        .sk-value.pos{color:#10b981;}
        .sk-value.neg{color:#ef4444;}
        .sk-value.warn{color:#f59e0b;}
        .sk-sub-row{display:flex;align-items:center;justify-content:space-between;gap:8px;}
        .sk-sub{font-size:11px;color:var(--text-3);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;}
        .sk-spark{display:block;width:60px;height:24px;flex:0 0 60px;}
        .sk-spark svg{width:100%;height:100%;display:block;}

        @media (max-width:760px){
            .spread-page-v2.page-with-side{grid-template-columns:1fr;}
            .spread-page-v2 .page-side{position:static;}
            .spread-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
        }

        /* Status bar */
        .spread-status-bar{display:flex;align-items:center;gap:14px;padding:12px 16px;border-radius:12px;background:rgba(15,23,41,0.72);border:1px solid var(--border);margin-bottom:12px;flex-wrap:wrap;}
        body.theme-light .spread-status-bar{background:#fff;border-color:rgba(37,99,235,0.10);box-shadow:0 1px 3px rgba(15,23,41,0.04);}
        .spread-status-stats{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
        .ssb-stat{font-size:12px;color:var(--text-3);font-weight:700;}
        .ssb-stat strong{color:var(--text-1);font-family:var(--mono);font-weight:900;margin-left:4px;}
        body.theme-light .ssb-stat strong{color:#0f172a;}
        .spread-status-update{margin-left:auto;font-size:11px;color:var(--text-3);font-family:var(--mono);}

        /* Toolbar */
        .spread-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap;}
        .spread-toolbar .spread-filter-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1;min-width:0;}
        .spread-toolbar .form-select,.spread-toolbar .form-input{min-height:36px;padding:7px 11px;font-size:12px;border-radius:10px;width:auto;}
        .spread-toolbar .spread-filter-row .form-select{min-width:140px;}
        .spread-toolbar .spread-filter-row .form-input{min-width:180px;flex:1;max-width:240px;}
        body.theme-light .spread-toolbar .form-select,body.theme-light .spread-toolbar .form-input{background:#fff;border-color:rgba(37,99,235,0.14);color:#0f172a;}
        body.theme-light .spread-toolbar .form-select option{background:#fff;color:#0f172a;}
        .spread-toolbar .btn-secondary{min-height:36px;padding:7px 14px;font-size:12px;}
        .spread-view-actions{display:flex;align-items:center;gap:8px;}
        .spread-view-btn{min-height:36px;padding:7px 12px;font-size:12px;background:rgba(15,23,41,0.72);border:1px solid var(--border);color:var(--text-1);}
        body.theme-light .spread-view-btn{background:#fff;color:#0f172a;border-color:rgba(37,99,235,0.14);}
        .spread-view-count{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:rgba(99,102,241,0.18);color:#a5b4fc;font-family:var(--mono);font-size:10.5px;font-weight:900;margin-left:4px;}
        body.theme-light .spread-view-count{background:#ede9fe;color:#6366f1;}
        .spread-view-mgr{position:relative;}
        .spread-view-menu{display:none;position:absolute;right:0;top:42px;min-width:240px;max-width:340px;z-index:40;padding:6px;background:rgba(15,23,41,0.98);border:1px solid var(--border);border-radius:12px;box-shadow:0 18px 40px rgba(0,0,0,0.32);max-height:60vh;overflow:auto;}
        body.theme-light .spread-view-menu{background:#fff;border-color:rgba(37,99,235,0.14);box-shadow:0 14px 36px rgba(15,23,41,0.12);}
        .spread-view-menu.show{display:block;}
        .svm-item{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:8px;cursor:pointer;font-size:12px;color:var(--text-1);}
        .svm-item:hover{background:rgba(99,102,241,0.10);}
        body.theme-light .svm-item:hover{background:#f1f5ff;}
        .svm-item-name{flex:1;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
        .svm-item-meta{font-size:10.5px;color:var(--text-3);font-weight:700;font-family:var(--mono);}
        .svm-item-del{width:22px;height:22px;border-radius:6px;background:transparent;color:var(--text-3);font-size:13px;display:grid;place-items:center;cursor:pointer;border:none;}
        .svm-item-del:hover{background:rgba(239,68,68,0.16);color:#ef4444;}
        .svm-empty{padding:14px;text-align:center;color:var(--text-3);font-size:12px;}

        /* Table v2 */
        .spread-table-wrap{overflow:auto;border:1px solid var(--border);border-radius:14px;background:rgba(15,23,41,0.72);}
        body.theme-light .spread-table-wrap{background:#fff;border-color:rgba(37,99,235,0.10);box-shadow:0 1px 3px rgba(15,23,41,0.04);}
        .spread-table{width:100%;min-width:900px;border-collapse:separate;border-spacing:0;}
        .spread-table th,.spread-table td{padding:12px 14px;text-align:left;white-space:nowrap;font-size:13px;}
        .spread-table th{font-size:11px;color:var(--text-3);font-weight:800;letter-spacing:.04em;background:rgba(26,35,64,0.5);text-transform:uppercase;border-bottom:1px solid var(--border);}
        body.theme-light .spread-table th{background:#f8fbff;color:#475569;border-bottom-color:rgba(37,99,235,0.10);}
        .spread-table th.ra,.spread-table td.ra{text-align:right;font-family:var(--mono);}
        .spread-table tbody tr{border-bottom:1px solid rgba(148,163,184,0.06);cursor:pointer;transition:background .12s;}
        body.theme-light .spread-table tbody tr{border-bottom-color:rgba(37,99,235,0.06);}
        .spread-table tbody tr:hover{background:rgba(99,102,241,0.08);}
        body.theme-light .spread-table tbody tr:hover{background:#f8fbff;}
        .spread-table tbody tr.active{background:rgba(99,102,241,0.14);}
        body.theme-light .spread-table tbody tr.active{background:#f1f5ff;}
        .spread-table tbody td{color:var(--text-1);font-weight:600;}
        body.theme-light .spread-table tbody td{color:#0f172a;}

        .spt-coin-cell{display:flex;align-items:center;gap:9px;}
        .token-icon-base{position:relative;overflow:hidden;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-family:var(--mono);font-weight:900;color:#fff;background:linear-gradient(135deg,#475569,#64748b);vertical-align:middle;flex-shrink:0;}
        .token-icon-letter{position:relative;z-index:1;}
        .token-icon-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%;background:#fff;z-index:2;}
        .token-icon-img.tv-logo{background:transparent;}
        .token-base-cell{display:inline-flex;align-items:center;gap:7px;min-width:0;vertical-align:middle;}
        .table-token-icon{width:20px;height:20px;flex:0 0 20px;font-size:8px;}
        .spt-coin-icon{width:30px;height:30px;flex:0 0 30px;font-size:11px;}
        .coin-chip-icon{width:14px;height:14px;font-size:8px;}
        .owr-coin-icon{width:16px;height:16px;font-size:8px;}
        .spt-coin-name{display:flex;flex-direction:column;line-height:1.2;}
        .spt-coin-base{font-weight:900;color:var(--text-1);font-size:13px;}
        body.theme-light .spt-coin-base{color:#0f172a;}
        .spt-coin-pair{font-size:11px;color:var(--text-3);font-family:var(--mono);}

        .spt-source-cell{display:flex;align-items:center;gap:7px;}
        .spt-source-cell .ex-logo{width:18px;height:18px;border-radius:5px;}
        .spt-source-cell .ex-logo-fallback{width:18px;height:18px;border-radius:5px;display:grid;place-items:center;background:#3b82f6;color:#fff;font-weight:900;font-size:9px;}
        .spt-source-name{font-weight:800;font-size:12px;color:var(--text-1);}
        body.theme-light .spt-source-name{color:#0f172a;}
        .spt-pair-chip{display:inline-block;padding:1px 7px;border-radius:999px;font-size:10.5px;font-weight:800;background:rgba(99,102,241,0.14);color:#a5b4fc;margin-top:2px;}
        body.theme-light .spt-pair-chip{background:#ede9fe;color:#6366f1;}
        .spt-source-meta{display:flex;flex-direction:column;gap:1px;}

        .spt-spread.pos{color:#10b981;font-weight:900;}
        .spt-spread.neg{color:#ef4444;font-weight:900;}
        .spt-live-cell{display:flex;align-items:center;justify-content:flex-end;gap:8px;}

        .spt-fresh-cell{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:12px;color:var(--text-2);}
        .spt-fresh-dot{width:7px;height:7px;border-radius:50%;background:#10b981;box-shadow:0 0 0 3px rgba(16,185,129,0.16);}
        .spt-fresh-dot.warn{background:#f59e0b;box-shadow:0 0 0 3px rgba(245,158,11,0.16);}
        .spt-fresh-dot.stale{background:#ef4444;box-shadow:0 0 0 3px rgba(239,68,68,0.16);}

        .spt-act-cell{display:flex;align-items:center;gap:6px;}
        .spt-detail-btn{padding:5px 11px;border-radius:8px;font-size:11.5px;font-weight:800;background:rgba(99,102,241,0.14);color:#a5b4fc;border:1px solid transparent;cursor:pointer;}
        body.theme-light .spt-detail-btn{background:#ede9fe;color:#6366f1;}
        .spt-detail-btn:hover{background:rgba(99,102,241,0.24);}
        .spt-star{width:24px;height:24px;border-radius:6px;background:transparent;color:var(--text-3);font-size:14px;cursor:pointer;border:none;display:grid;place-items:center;}
        .spt-star.on{color:#fbbf24;}
        .spt-star:hover{background:rgba(251,191,36,0.14);color:#fbbf24;}

        .spread-table .empty-state{padding:30px 14px;text-align:center;color:var(--text-3);font-size:12px;cursor:default;}
        .spread-table tbody tr.empty-row{cursor:default;}
        .spread-table tbody tr.empty-row:hover{background:transparent;}

        /* Pagination */
        .spread-pagination{display:flex;align-items:center;justify-content:space-between;padding:12px 4px 0;flex-wrap:wrap;gap:10px;}
        .sp-total{font-size:12px;color:var(--text-3);font-weight:700;}
        .sp-pager{display:flex;align-items:center;gap:4px;}
        .sp-page-btn{min-width:32px;height:32px;padding:0 9px;border-radius:8px;background:rgba(15,23,41,0.72);border:1px solid var(--border);color:var(--text-2);font-family:var(--mono);font-size:12px;font-weight:800;cursor:pointer;}
        body.theme-light .sp-page-btn{background:#fff;color:#475569;border-color:rgba(37,99,235,0.14);}
        .sp-page-btn:hover:not(:disabled){border-color:rgba(99,102,241,0.45);color:var(--text-1);}
        body.theme-light .sp-page-btn:hover:not(:disabled){color:#6366f1;}
        .sp-page-btn.active{background:linear-gradient(135deg,#6366f1,#818cf8);color:#fff;border-color:transparent;}
        .sp-page-btn:disabled{opacity:0.4;cursor:not-allowed;}
        .sp-size-sel{min-height:32px;padding:5px 10px;font-size:12px;border-radius:8px;}

        /* Right panel — asset detail v2 */
        .spread-detail-panel{padding:18px 18px 18px;border-radius:16px;background:rgba(15,23,41,0.86);border:1px solid var(--border);display:flex;flex-direction:column;gap:14px;}
        body.theme-light .spread-detail-panel{background:#fff;border-color:rgba(37,99,235,0.10);box-shadow:0 1px 3px rgba(15,23,41,0.04);}
        .sd-head{display:flex;align-items:center;gap:12px;}
        .sd-coin-icon{position:relative;width:46px;height:46px;border-radius:50%;flex:0 0 46px;display:grid;place-items:center;font-family:var(--mono);font-weight:900;color:#fff;font-size:14px;background:linear-gradient(135deg,#475569,#64748b);overflow:hidden;}
        .sd-coin-icon .token-icon-img,.sd-coin-icon img{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover;border-radius:50%;}
        .sd-coin-icon .token-icon-letter{position:relative;z-index:1;}
        .sd-coin-meta{flex:1;min-width:0;}
        .sd-coin-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
        .sd-coin-symbol{font-size:18px;font-weight:900;color:var(--text-1);letter-spacing:-0.01em;line-height:1.2;}
        body.theme-light .sd-coin-symbol{color:#0f172a;}
        .sd-monitor-chip{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;font-size:10.5px;font-weight:800;background:rgba(16,185,129,0.14);color:#10b981;}
        body.theme-light .sd-monitor-chip{background:#d1fae5;color:#059669;}
        .sd-coin-name{font-size:12px;color:var(--text-3);margin-top:2px;}
        .sd-star{width:32px;height:32px;border-radius:8px;background:transparent;color:#fbbf24;font-size:18px;cursor:pointer;border:none;display:grid;place-items:center;}
        .sd-star:hover{background:rgba(251,191,36,0.14);}

        .sd-section{display:flex;flex-direction:column;gap:10px;}
        .sd-section-title{font-size:13px;font-weight:850;color:var(--text-1);}
        body.theme-light .sd-section-title{color:#0f172a;}

        .sd-overview{display:grid;grid-template-columns:1.3fr 1fr;gap:12px;align-items:center;}
        .sd-ov-main .sd-ov-lbl{font-size:11px;color:var(--text-3);font-weight:700;}
        .sd-ov-value{font-family:var(--mono);font-size:32px;font-weight:900;line-height:1.05;margin-top:2px;color:var(--text-1);letter-spacing:-0.02em;}
        body.theme-light .sd-ov-value{color:#0f172a;}
        .sd-ov-value.pos{color:#10b981;}
        .sd-ov-value.neg{color:#ef4444;}
        .sd-ov-delta{font-size:11px;color:var(--text-3);font-family:var(--mono);font-weight:700;margin-top:4px;}
        .sd-ov-side{display:flex;flex-direction:column;gap:6px;padding:10px;border-radius:10px;background:rgba(26,35,64,0.45);}
        body.theme-light .sd-ov-side{background:#f8fbff;}
        .sd-ov-row{display:flex;justify-content:space-between;align-items:center;font-size:11.5px;color:var(--text-3);}
        .sd-ov-row-val{font-family:var(--mono);font-weight:900;color:var(--text-1);font-size:13px;}
        body.theme-light .sd-ov-row-val{color:#0f172a;}

        .sd-prices{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px 12px;border-radius:10px;background:rgba(26,35,64,0.45);}
        body.theme-light .sd-prices{background:#f8fbff;}
        .sd-prices > div{display:flex;flex-direction:column;gap:3px;}
        .sd-mini-lbl{font-size:11px;color:var(--text-3);font-weight:700;}
        .sd-mini-val{font-family:var(--mono);font-size:13.5px;font-weight:900;color:var(--text-1);}
        body.theme-light .sd-mini-val{color:#0f172a;}

        .sd-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;padding:10px 12px;border-radius:10px;background:rgba(26,35,64,0.32);}
        body.theme-light .sd-meta-grid{background:#f8fbff;}
        .sd-meta-grid > div{display:flex;justify-content:space-between;font-size:11.5px;}
        .sd-meta-lbl{color:var(--text-3);font-weight:700;}
        .sd-meta-val{font-family:var(--mono);font-weight:800;color:var(--text-1);}
        body.theme-light .sd-meta-val{color:#0f172a;}


        .sd-source-row{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;background:rgba(26,35,64,0.32);font-size:12px;}
        body.theme-light .sd-source-row{background:#f8fbff;}
        .sd-src-tag{padding:2px 7px;border-radius:6px;font-size:10.5px;font-weight:800;}
        .sd-src-tag.spot{background:rgba(245,158,11,0.16);color:#fbbf24;}
        .sd-src-tag.fut{background:rgba(99,102,241,0.16);color:#a5b4fc;}
        body.theme-light .sd-src-tag.spot{background:#fef3c7;color:#d97706;}
        body.theme-light .sd-src-tag.fut{background:#ede9fe;color:#6366f1;}
        .sd-src-link{flex:1;color:var(--text-1);font-weight:800;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
        body.theme-light .sd-src-link{color:#0f172a;}
        .sd-src-link:hover{color:#38bdf8;}
        body.theme-light .sd-src-link:hover{color:#2563eb;}
        .sd-src-link::after{content:' ↗';font-size:10px;color:var(--text-3);}
        .sd-src-price{font-family:var(--mono);font-weight:900;color:var(--text-1);}
        body.theme-light .sd-src-price{color:#0f172a;}

        .sd-add-watch{width:100%;padding:13px 16px;font-size:14px;font-weight:900;background:linear-gradient(135deg,#3b82f6,#6366f1);color:#fff;border:none;border-radius:12px;box-shadow:0 8px 22px rgba(59,130,246,0.32);}
        .sd-add-watch:hover{transform:translateY(-1px);}

        .sd-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;}
        .sd-action-btn{display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 6px;border-radius:10px;background:rgba(26,35,64,0.45);border:1px solid var(--border);color:var(--text-2);font-size:11.5px;font-weight:800;cursor:pointer;}
        body.theme-light .sd-action-btn{background:#f8fbff;border-color:rgba(37,99,235,0.10);color:#475569;}
        .sd-action-btn:hover{border-color:rgba(99,102,241,0.45);color:var(--text-1);}
        body.theme-light .sd-action-btn:hover{color:#6366f1;}
        .sd-action-btn span{font-size:14px;}

        /* K-line modal */
        .sd-kline-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:80;}
        .sd-kline-backdrop.show{display:block;}
        .sd-kline-modal{display:none;position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(720px,92vw);max-height:80vh;background:rgba(15,23,41,0.98);border:1px solid var(--border);border-radius:14px;padding:18px;z-index:90;overflow:auto;}
        body.theme-light .sd-kline-modal{background:#fff;border-color:rgba(37,99,235,0.14);box-shadow:0 20px 50px rgba(15,23,41,0.16);}
        .sd-kline-modal.show{display:block;}
        .sd-kline-modal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;flex-wrap:wrap;}
        .sd-kline-close{width:32px;height:32px;border-radius:8px;background:transparent;border:none;color:var(--text-2);font-size:18px;cursor:pointer;display:grid;place-items:center;}
        .sd-kline-close:hover{background:rgba(239,68,68,0.14);color:#ef4444;}
        .sd-kline-modal .spread-kline-chart{height:360px;}

        /* ============================================================
           Surge Monitor v2 — unified spot + futures
           ============================================================ */
        .surge-page-v2{display:none;}
        .surge-page-v2.active{display:flex;flex-direction:column;gap:14px;}

        /* Tabs */

        /* KPI strip */
        .surge-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;}
        .surge-kpi-card{background:rgba(15,23,41,0.86);border:1px solid var(--border);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:6px;min-height:108px;}
        body.theme-light .surge-kpi-card{background:#fff;border-color:rgba(37,99,235,0.10);box-shadow:0 1px 3px rgba(15,23,41,0.04);}
        .surge-kpi-head{display:flex;align-items:center;gap:8px;}
        .surge-kpi-icon{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font-size:13px;background:rgba(99,102,241,0.12);color:#a5b4fc;}
        .surge-kpi-icon.pos{background:rgba(16,185,129,0.16);color:#10b981;}
        .surge-kpi-icon.neg{background:rgba(239,68,68,0.16);color:#ef4444;}
        .surge-kpi-icon.warn{background:rgba(245,158,11,0.16);color:#f59e0b;}
        .surge-kpi-icon.bell{background:rgba(244,63,94,0.16);color:#f87171;}
        .surge-kpi-icon.clock{background:rgba(59,130,246,0.16);color:#60a5fa;}
        body.theme-light .surge-kpi-icon{background:#eef2ff;color:#6366f1;}
        body.theme-light .surge-kpi-icon.pos{background:#d1fae5;color:#059669;}
        body.theme-light .surge-kpi-icon.neg{background:#fee2e2;color:#dc2626;}
        body.theme-light .surge-kpi-icon.warn{background:#fef3c7;color:#d97706;}
        body.theme-light .surge-kpi-icon.bell{background:#ffe4e6;color:#e11d48;}
        body.theme-light .surge-kpi-icon.clock{background:#dbeafe;color:#2563eb;}
        .surge-kpi-label{font-size:12px;color:var(--text-2);font-weight:700;}
        .surge-kpi-value{font-family:var(--mono);font-size:24px;font-weight:900;color:var(--text-1);line-height:1.05;letter-spacing:-0.01em;}
        body.theme-light .surge-kpi-value{color:#0f172a;}
        .surge-kpi-value.pos{color:#10b981;}
        .surge-kpi-value.neg{color:#ef4444;}
        .surge-kpi-value.warn{color:#f59e0b;}
        .surge-kpi-unit{font-size:13px;font-weight:700;color:var(--text-2);}
        .surge-kpi-sub{font-size:11.5px;color:var(--text-3);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
        .surge-kpi-cta{margin-top:auto;font-size:12px;color:var(--accent-2);font-weight:800;}
        body.theme-light .surge-kpi-cta{color:#6366f1;}
                @media (max-width:900px){.surge-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}

        /* Heatmap */
        .surge-heatmap-section{padding:0;background:transparent;border:none;box-shadow:none;}
        .surge-heatmap-card{background:rgba(15,23,41,0.86);border:1px solid var(--border);border-radius:14px;padding:14px 18px;}
        body.theme-light .surge-heatmap-card{background:#fff;border-color:rgba(37,99,235,0.10);box-shadow:0 1px 3px rgba(15,23,41,0.04);}
        .surge-heatmap-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
        .surge-heatmap-title{font-size:13px;font-weight:800;color:var(--text-1);}
        .surge-heatmap-legend{display:flex;gap:14px;font-size:11.5px;color:var(--text-2);}
        .surge-heatmap-legend i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px;vertical-align:middle;}
        .surge-heatmap-legend i.pos{background:#10b981;}
        .surge-heatmap-legend i.neg{background:#ef4444;}
        .surge-heatmap-body{display:grid;grid-template-columns:80px 1fr;row-gap:6px;align-items:center;}
        .surge-heatmap-row{display:contents;}
        .surge-heatmap-rowlbl{font-size:12px;font-weight:800;color:var(--text-2);display:flex;flex-direction:column;gap:2px;}
        .surge-heatmap-rowtot{font-family:var(--mono);font-size:11px;color:var(--text-3);font-weight:700;}
        .surge-heatmap-cells{display:grid;grid-template-columns:repeat(96,minmax(0,1fr));gap:2px;}
        .surge-heatmap-cell{height:18px;border-radius:2px;background:rgba(148,163,184,0.10);transition:transform .15s,outline-color .15s;}
        body.theme-light .surge-heatmap-cell{background:rgba(148,163,184,0.16);}
        .surge-heatmap-cell:hover{transform:scale(1.6);outline:1px solid rgba(99,102,241,0.55);z-index:1;}
        .surge-heatmap-axis{grid-column:2/3;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));font-size:10.5px;color:var(--text-3);margin-top:4px;font-family:var(--mono);}
        .surge-heatmap-axis span{text-align:left;}

        /* Toolbar (filter row) */
        .surge-toolbar-section{padding:0;background:transparent;border:none;box-shadow:none;}
        .surge-toolbar-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:12px 16px;border-radius:14px;background:rgba(15,23,41,0.72);border:1px solid var(--border);}
        body.theme-light .surge-toolbar-row{background:#fff;border-color:rgba(37,99,235,0.10);box-shadow:0 1px 3px rgba(15,23,41,0.04);}
        .surge-toolbar-lbl{font-size:12px;color:var(--text-2);font-weight:700;white-space:nowrap;flex:0 0 auto;}
        .surge-toolbar-row .surge-toolbar-sel{width:auto;min-width:108px;max-width:140px;padding:7px 9px;font-size:12.5px;flex:0 0 auto;}
        .surge-toolbar-row .surge-toolbar-search{width:auto;flex:1 1 180px;min-width:160px;max-width:240px;padding:7px 11px;font-size:12.5px;}
        .surge-ex-chips{display:flex;gap:6px;flex-wrap:wrap;}
        .surge-ex-chip{padding:5px 12px;border-radius:999px;font-size:12px;font-weight:700;cursor:pointer;background:rgba(148,163,184,0.10);color:var(--text-2);border:1px solid transparent;transition:background .15s,color .15s,border-color .15s;}
        body.theme-light .surge-ex-chip{background:#f1f5f9;color:#64748b;}
        .surge-ex-chip:hover{color:var(--text-1);}
        .surge-ex-chip.active{background:linear-gradient(135deg,#3b82f6,#6366f1);color:#fff;border-color:transparent;box-shadow:0 4px 10px rgba(59,130,246,0.25);}

        /* Two-pane tables */
        .surge-grid-v2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
        .surge-pane-v2{background:rgba(15,23,41,0.86);border:1px solid var(--border);border-radius:14px;overflow:hidden;}
        body.theme-light .surge-pane-v2{background:#fff;border-color:rgba(37,99,235,0.10);box-shadow:0 1px 3px rgba(15,23,41,0.04);}
        .surge-pane-head-v2{display:flex;align-items:center;gap:12px;padding:13px 16px;border-bottom:1px solid var(--border);}
        body.theme-light .surge-pane-head-v2{border-bottom-color:rgba(37,99,235,0.08);}
        .surge-pane-tag{font-size:14px;font-weight:900;}
        .surge-pane-tag.pos{color:#10b981;}
        .surge-pane-tag.neg{color:#ef4444;}
        .surge-pane-meta{font-size:12px;color:var(--text-3);margin-left:auto;font-weight:600;}
        .surge-view-all{font-size:12px;color:var(--accent-2);font-weight:800;text-decoration:none;}
        body.theme-light .surge-view-all{color:#6366f1;}
        .surge-view-all:hover{text-decoration:underline;}
        .surge-table-v2 th{font-size:11.5px;color:var(--text-3);font-weight:700;}
        .surge-table-v2 td{vertical-align:middle;}
        .surge-row-coin{display:flex;align-items:center;gap:8px;}
        .surge-coin-icon{width:24px;height:24px;border-radius:50%;background:rgba(99,102,241,0.16);display:grid;place-items:center;font-size:10px;font-weight:900;color:#a5b4fc;flex:0 0 auto;}
        body.theme-light .surge-coin-icon{background:#eef2ff;color:#6366f1;}
        .surge-coin-name{font-weight:800;color:var(--text-1);font-family:var(--mono);}
        .surge-market-tag{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;border-radius:6px;background:rgba(245,158,11,0.14);color:#f59e0b;font-size:11px;font-weight:800;white-space:nowrap;}
        .surge-market-tag.tag-binance{background:rgba(245,158,11,0.14);color:#f59e0b;}
        .surge-market-tag.tag-okx{background:rgba(59,130,246,0.16);color:#60a5fa;}
        .surge-market-tag.tag-bybit{background:rgba(245,158,11,0.18);color:#fbbf24;}
        .surge-market-tag.tag-alpha{background:rgba(245,158,11,0.14);color:#f59e0b;}
        body.theme-light .surge-market-tag{background:#fef3c7;color:#b45309;}
        body.theme-light .surge-market-tag.tag-okx{background:#dbeafe;color:#1d4ed8;}
        body.theme-light .surge-market-tag.tag-bybit{background:#fef3c7;color:#b45309;}
        body.theme-light .surge-market-tag.tag-alpha{background:#fef3c7;color:#b45309;}
        .surge-spark{display:block;width:80px;height:24px;}
        .surge-watch-btn{padding:5px 12px;border-radius:8px;border:1px solid rgba(99,102,241,0.32);background:rgba(99,102,241,0.10);color:#a5b4fc;font-size:11.5px;font-weight:800;cursor:pointer;}
        body.theme-light .surge-watch-btn{border-color:rgba(99,102,241,0.30);background:#eef2ff;color:#6366f1;}
        .surge-watch-btn:hover{background:rgba(99,102,241,0.20);}
        .surge-watch-btn.active{background:rgba(16,185,129,0.16);color:#10b981;border-color:rgba(16,185,129,0.30);}
        body.theme-light .surge-watch-btn.active{background:#d1fae5;color:#059669;border-color:rgba(16,185,129,0.30);}
        @media (max-width:1100px){.surge-grid-v2{grid-template-columns:1fr;}}

        .surge-footer{font-size:11.5px;color:var(--text-3);text-align:right;padding:6px 4px;}

        /* Funding page merged tabs */
        .funding-tabs{display:flex;align-items:center;gap:8px;margin-bottom:14px;padding:6px;border-radius:14px;background:rgba(15,23,41,0.55);border:1px solid var(--border);width:max-content;}
        .funding-tab{padding:9px 22px;border-radius:10px;background:transparent;color:var(--text-2);font-size:13px;font-weight:800;cursor:pointer;border:1px solid transparent;transition:background .15s,color .15s,box-shadow .15s;letter-spacing:.02em;}
        .funding-tab:hover{color:var(--text-1);background:rgba(56,189,248,0.06);}
        .funding-tab.active{background:linear-gradient(135deg,#2563eb,#38bdf8);color:#fff;box-shadow:0 6px 18px rgba(37,99,235,0.32);}
        .funding-tab-badge{margin-left:6px;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:800;color:#0ea5e9;background:rgba(14,165,233,0.12);border:1px solid rgba(14,165,233,0.28);letter-spacing:.04em;}
        body.theme-light .funding-tabs{background:#eef5ff;border-color:rgba(37,99,235,0.18);}
        body.theme-light .funding-tab{color:#475569;}
        body.theme-light .funding-tab:hover{background:#fff;}
        body.theme-light .funding-tab.active{background:linear-gradient(135deg,#2563eb,#3b82f6);color:#fff;box-shadow:0 6px 16px rgba(37,99,235,0.22);}
        body.theme-light .funding-tab-badge{color:#0369a1;background:#e0f2fe;border-color:rgba(14,165,233,0.30);}

        /* Direction suggestion badge in funding monitor table */
        .dir-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:999px;font-size:12px;font-weight:800;letter-spacing:.02em;line-height:1.2;}
        .dir-badge.long{color:#10b981;background:rgba(16,185,129,0.14);border:1px solid rgba(16,185,129,0.28);}
        .dir-badge.short{color:#ef4444;background:rgba(239,68,68,0.14);border:1px solid rgba(239,68,68,0.28);}
        .dir-badge.neutral{color:var(--text-3);background:rgba(148,163,184,0.10);border:1px solid rgba(148,163,184,0.22);}
        body.theme-light .dir-badge.long{background:#d1fae5;border-color:rgba(16,185,129,0.30);}
        body.theme-light .dir-badge.short{background:#fee2e2;border-color:rgba(239,68,68,0.30);}

        /* ============== Funding Page · Pro design ============== */
        /* Sidebar: 资金费率 sub-nav + caret */
        .nav-caret{margin-left:auto;color:var(--text-3);font-size:11px;transition:transform .15s;}
        .nav-item.active .nav-caret{transform:rotate(180deg);color:var(--accent-2);}
        .nav-sub{display:flex;flex-direction:column;gap:2px;padding:2px 0 6px 38px;margin:-2px 0 4px;}
        .nav-sub-item{position:relative;display:flex;align-items:center;gap:8px;padding:7px 10px 7px 14px;border-radius:8px;background:transparent;color:var(--text-3);font-size:12.5px;font-weight:700;cursor:pointer;border:none;text-align:left;transition:background .12s,color .12s;}
        .nav-sub-item:hover{background:rgba(56,189,248,0.06);color:var(--text-1);}
        .nav-sub-dot{width:5px;height:5px;border-radius:50%;background:var(--text-3);flex:0 0 auto;}
        .nav-sub-item.active{color:var(--accent-2);background:rgba(56,189,248,0.10);}
        .nav-sub-item.active .nav-sub-dot{background:var(--accent-2);box-shadow:0 0 0 3px rgba(56,189,248,0.16);}
        body.theme-light .nav-sub-item{color:#64748b;}
        body.theme-light .nav-sub-item:hover{background:#eff6ff;color:#0f172a;}
        body.theme-light .nav-sub-item.active{color:#2563eb;background:#dbeafe;}
        body.theme-light .nav-sub-item.active .nav-sub-dot{background:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,0.18);}

        /* Tabs cleaner */
        #page-funding .funding-tabs{padding:5px;border-radius:12px;}
        #page-funding .funding-tab{padding:8px 22px;font-size:13px;border-radius:8px;}
        body.theme-light #page-funding .funding-tabs{background:#eef4ff;border-color:rgba(37,99,235,0.14);}

        #page-funding .kpi-grid-pro{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;}
        #page-funding .kpi-card{background:#fff;border:1px solid #e6edf6;border-radius:14px;padding:14px 16px;min-height:96px;box-shadow:0 1px 0 rgba(15,23,42,0.02);}
        #page-funding .kpi-label{font-size:12px;color:#64748b;font-weight:700;letter-spacing:0;}
        #page-funding .kpi-value{font-size:22px;font-weight:900;margin-top:8px;color:#0f172a;letter-spacing:0;}
        #page-funding .kpi-value.warn{color:#10b981;}
        #page-funding .kpi-value.pos{color:#10b981;}
        #page-funding .kpi-value.neg{color:#ef4444;}
        #page-funding .kpi-sub{font-size:11.5px;color:#94a3b8;margin-top:4px;font-weight:600;}
        body.theme-dark #page-funding .kpi-card{background:rgba(15,23,41,0.65);border-color:rgba(148,163,184,0.12);}
        body.theme-dark #page-funding .kpi-label{color:var(--text-2);}
        body.theme-dark #page-funding .kpi-value{color:#fff;}
        body.theme-dark #page-funding .kpi-sub{color:var(--text-3);}

        /* Section panel */
        #page-funding .section{background:#fff;border:1px solid #e6edf6;border-radius:14px;padding:18px;box-shadow:0 1px 0 rgba(15,23,42,0.02);}
        body.theme-dark #page-funding .section{background:rgba(15,23,41,0.78);border-color:var(--border);}
        #page-funding .panel{background:transparent;border:none;padding:0;box-shadow:none;}

        /* Section header pro */
        .section-header-pro{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px;padding:0;border:none;}
        .section-header-pro .sh-title{font-size:15px;font-weight:850;color:var(--text-1);display:flex;align-items:center;gap:6px;}
        .section-header-pro .sh-info{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;background:rgba(148,163,184,0.16);color:var(--text-3);font-size:11px;font-weight:700;cursor:help;font-style:normal;}
        .section-header-pro .sh-tools{display:flex;align-items:center;gap:8px;}
        .section-header-pro .sh-search{display:flex;align-items:center;gap:6px;height:34px;padding:0 12px;border-radius:10px;background:#f3f6fb;border:1px solid #e6edf6;min-width:240px;}
        .section-header-pro .sh-search-icon{color:#94a3b8;font-size:12px;}
        .section-header-pro .sh-search input{flex:1;border:none;outline:none;background:transparent;font-size:12.5px;color:var(--text-1);}
        .section-header-pro .sh-search input::placeholder{color:#94a3b8;}
        .section-header-pro .sh-btn-ghost{height:34px;padding:0 14px;border-radius:10px;background:#fff;border:1px solid #e6edf6;color:var(--text-1);font-size:12.5px;font-weight:800;cursor:pointer;}
        .section-header-pro .sh-btn-ghost:hover{background:#f3f6fb;}
        body.theme-dark .section-header-pro .sh-search,body.theme-dark .section-header-pro .sh-btn-ghost{background:rgba(15,23,41,0.55);border-color:var(--border);}
        body.theme-dark .section-header-pro .sh-search input{color:var(--text-1);}

        /* Filter row pro: rounded gray pills */
        .arb-filter-row-pro{gap:10px;margin-bottom:14px;}
        .arb-filter-row-pro .form-select{height:36px;padding:0 14px;border-radius:10px;border:1px solid #e6edf6;background:#fff;color:var(--text-1);font-size:12.5px;font-weight:700;min-width:130px;cursor:pointer;}
        .arb-filter-row-pro .form-select:disabled{cursor:default;color:var(--text-2);}
        body.theme-dark .arb-filter-row-pro .form-select{background:rgba(15,23,41,0.55);border-color:var(--border);}
        .btn-link-blue{height:36px;padding:0 14px;background:transparent;border:none;color:#2563eb;font-size:13px;font-weight:800;cursor:pointer;border-radius:8px;}
        .btn-link-blue:hover{background:rgba(37,99,235,0.08);}

        /* Table pro */
        #page-funding .arb-table-wrap{border:1px solid #e6edf6;border-radius:12px;background:#fff;}
        body.theme-dark #page-funding .arb-table-wrap{background:rgba(10,14,26,0.34);border-color:var(--border);}
        #page-funding .arb-table{min-width:920px;}
        #page-funding .arb-table th{background:transparent;color:#94a3b8;font-size:11.5px;font-weight:800;letter-spacing:0;text-transform:none;padding:13px 14px;border-bottom:1px solid #eef2f7;}
        #page-funding .arb-table td{padding:14px;border-bottom:1px solid #f1f5f9;color:#1e293b;font-size:13px;}
        body.theme-dark #page-funding .arb-table th{color:var(--text-3);border-bottom-color:rgba(148,163,184,0.12);}
        body.theme-dark #page-funding .arb-table td{color:var(--text-1);border-bottom-color:rgba(148,163,184,0.08);}
        #page-funding .arb-table tr:last-child td{border-bottom:none;}
        #page-funding .arb-table tr:hover td{background:rgba(37,99,235,0.04);}
        #page-funding .arb-table tr.active td{background:#eff6ff;border-bottom-color:#dbeafe;}
        body.theme-dark #page-funding .arb-table tr:hover td{background:rgba(56,189,248,0.06);}
        body.theme-dark #page-funding .arb-table tr.active td{background:rgba(37,99,235,0.16);}
        #page-funding .arb-table .arb-rate{font-family:var(--mono);font-weight:850;font-size:13.5px;}
        #page-funding .arb-table .arb-rate.pos{color:#10b981;}
        #page-funding .arb-table .arb-rate.neg{color:#ef4444;}
        #page-funding .arb-table .arb-base{color:#2563eb;font-weight:850;}
        body.theme-dark #page-funding .arb-table .arb-base{color:var(--accent-2);}
        #page-funding .arb-table .muted{color:#94a3b8;font-size:11.5px;}

        /* Action button styling in last column */
        #page-funding .arb-table tr.active .btn-add{background:#2563eb;border:none;color:#fff;font-weight:800;border-radius:8px;padding:7px 16px;}
        #page-funding .arb-table tr.active .btn-add:hover{background:#1d4ed8;}
        #page-funding .arb-table tr:not(.active) .btn-add{width:30px;height:30px;min-height:30px;padding:0;border-radius:8px;background:#f3f6fb;border:1px solid #e6edf6;color:#475569;font-size:16px;font-weight:700;}
        #page-funding .arb-table tr:not(.active) .btn-add:before{content:'+';}
        #page-funding .arb-table tr:not(.active) .btn-add{font-size:0;}
        #page-funding .arb-table tr:not(.active) .btn-add:before{font-size:16px;}
        #page-funding .arb-table tr:not(.active) .btn-add:hover{background:#e0e7ff;border-color:#c7d2fe;color:#2563eb;}
        body.theme-dark #page-funding .arb-table tr:not(.active) .btn-add{background:rgba(15,23,41,0.6);border-color:var(--border);color:var(--text-2);}

        /* Pager pro */
        #page-funding .arb-pager{padding:14px 4px 2px;color:#64748b;font-size:12.5px;}
        #page-funding .arb-pager button{min-width:32px;height:32px;background:#fff;border:1px solid #e6edf6;color:#475569;border-radius:8px;}
        #page-funding .arb-pager button.active{background:#2563eb;border-color:#2563eb;color:#fff;}
        #page-funding .arb-pager select{height:32px;border-radius:8px;border:1px solid #e6edf6;background:#fff;}
        body.theme-dark #page-funding .arb-pager button,body.theme-dark #page-funding .arb-pager select{background:rgba(15,23,41,0.55);border-color:var(--border);color:var(--text-1);}

        /* Watchlist (自选监控 + 收益计算器) cards */
        #page-funding .funding-wl-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}
        #page-funding .funding-wl-card{background:#fff;border:1px solid #e6edf6;border-radius:14px;padding:16px;box-shadow:0 1px 0 rgba(15,23,42,0.02);}
        body.theme-dark #page-funding .funding-wl-card{background:rgba(15,23,41,0.55);border-color:var(--border);}

        /* Right side panel pro */
        #page-funding .arb-drawer{background:#fff;border:1px solid #e6edf6;border-radius:14px;box-shadow:0 1px 0 rgba(15,23,42,0.02);}
        body.theme-dark #page-funding .arb-drawer{background:rgba(15,23,41,0.78);border-color:var(--border);}
        #page-funding .arb-drawer-title{color:#0f172a;font-size:18px;}
        body.theme-dark #page-funding .arb-drawer-title{color:#fff;}
        #page-funding .panel-title{color:#475569;font-size:12.5px;font-weight:800;margin:14px 0 10px;letter-spacing:0;}
        body.theme-dark #page-funding .panel-title{color:var(--text-2);}
        #page-funding .arb-metric-val{font-family:var(--mono);font-size:14px;font-weight:850;color:#0f172a;}
        body.theme-dark #page-funding .arb-metric-val{color:#fff;}
        #page-funding .arb-metric-val.pos{color:#10b981;}
        #page-funding .arb-metric-val.neg{color:#ef4444;}
        #page-funding .arb-metric-val.warn{color:#f59e0b;}

        /* Watchlist add button (header right) */
        #page-funding .section .section-header .btn-add,#page-funding .section .section-header > span + .btn-add{background:transparent;color:#2563eb;border:none;padding:0;font-size:13px;font-weight:800;}
        #page-funding .section .section-header .btn-add:hover{background:transparent;color:#1d4ed8;text-decoration:underline;}

        /* Status indicator: hide the noisy Funding Monitor strip on monitor tab to match design */
        #page-funding #fundingStatus{margin-bottom:12px;}

        /* Two-column page layout side panel width slightly wider to fit the design */
        @media(min-width:1281px){
            #page-funding.page-with-side.active{grid-template-columns:minmax(0,1fr) 360px;gap:16px;}
            #page-funding.page-with-side.active.side-collapsed{grid-template-columns:minmax(0,1fr);}
        }

        /* Tabs: 复用 surge 样式并在 page-main 里水平居中 */
        #page-funding .funding-surge-tabs{align-self:center;margin:0 auto 4px;}

        /* KPI 网格: 6 张卡固定排成一行。
           原来是 auto-fit + minmax(180px)，主栏宽度差一点就放不下第 6 张，
           「下次结算倒计时」被挤到第二行单独占一整行，非常突兀。 */
        #page-funding .funding-kpi-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:16px;}
        #page-funding .funding-kpi-grid .surge-kpi-card{padding:12px 13px;}
        #page-funding .funding-kpi-grid .surge-kpi-head{gap:6px;}
                /* 1680px 以下单张卡放不下「最大绝对费率 · 8H」这种最长的标签（要 150px），
                   与其让标签折行，不如退回 3 列。 */
                @media (max-width:1680px){#page-funding .funding-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
                @media (max-width:900px){#page-funding .funding-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}

        /* 字号统一: 让 KPI / 表格 / 标题 形成一致的层级 */
        #page-funding .funding-kpi-grid .surge-kpi-label{font-size:12px;line-height:1.3;}
        #page-funding .funding-kpi-grid .surge-kpi-value{font-size:21px;line-height:1.1;}
        #page-funding .funding-kpi-grid .surge-kpi-unit{font-size:12.5px;}
        #page-funding .funding-kpi-grid .surge-kpi-sub{font-size:12px;line-height:1.35;}
        #page-funding .funding-kpi-grid .surge-kpi-cta{font-size:12px;}
        #page-funding .arb-table th{font-size:12px;}
        #page-funding .arb-table td{font-size:13px;}
        #page-funding .arb-table .muted{font-size:11.5px;}
        #page-funding .arb-table .arb-rate{font-size:13.5px;}
        #page-funding .empty-state{font-size:13px;}
        #page-funding .arb-pager{font-size:12.5px;}
        #page-funding .funding-tab,

        /* Section header: 统计芯片 inline
           workspace 主题给 .section>.section-header 加了 16px 20px 的卡片头内边距，
           而资金费率页的筛选行、表格是贴着 .section 自己的 18px 内边距排的，
           标题就比下面所有内容多缩进 20px、右边工具条也短一截。这里把左右内边距清零，
           标题、搜索框和下面的筛选行、表格对齐到同一条竖线上。 */
        #page-funding .section-header-pro{flex-wrap:wrap;padding:2px 0 14px;margin:0 0 14px;}
        #page-funding .section-header-pro .sh-title{font-size:14px;}
        #page-funding .sh-status-inline{display:flex;align-items:center;gap:8px;flex:1;flex-wrap:wrap;margin:0 8px;}
        #page-funding .stat-row.stat-row-inline{display:inline-flex;flex-wrap:wrap;gap:6px;margin:0;}
        #page-funding .stat-row.stat-row-inline .stat-item{
            display:inline-flex;align-items:center;gap:4px;
            padding:4px 10px;border-radius:999px;
            background:#f3f6fb;border:1px solid #e6edf6;
            font-size:12px;font-weight:700;color:#475569;
        }
        #page-funding .stat-row.stat-row-inline .stat-item span{color:#0f172a;font-weight:800;}
        body.theme-dark #page-funding .stat-row.stat-row-inline .stat-item{background:rgba(15,23,41,0.55);border-color:var(--border);color:var(--text-2);}
        body.theme-dark #page-funding .stat-row.stat-row-inline .stat-item span{color:var(--text-1);}

        /* New columns: 交易所 + 机会估值(8H) */
        #page-funding .fr-ex-cell{display:inline-flex;align-items:center;gap:6px;}
        #page-funding .fr-ex-cell .fr-ex-name{font-weight:700;color:#0f172a;font-size:13px;}
        body.theme-dark #page-funding .fr-ex-cell .fr-ex-name{color:#fff;}
        #page-funding .fr-est{font-family:var(--mono);font-weight:850;font-size:13px;line-height:1.25;}
        #page-funding .fr-est.pos{color:#10b981;}
        #page-funding .fr-est.neg{color:#ef4444;}

        /* ===================== Watchlist v2 (特别关注) ===================== */
        /* Two-column layout (main + sticky side drawer) — overrides .page-with-side defaults
           with a slightly wider drawer than 380px because the per-coin form is dense. */
        .page.page-with-side.watchlist-v2.active{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:16px;align-items:start;}
        /* 没选中币种时抽屉整块收起，卡片区占满整行（和价差 / 资金费率页一致） */
        .page.page-with-side.watchlist-v2.active.side-collapsed{grid-template-columns:minmax(0,1fr);}
        .watchlist-v2 .page-main{min-width:0;display:flex;flex-direction:column;gap:18px;}
        @media (max-width:1280px){
            .page.page-with-side.watchlist-v2.active{grid-template-columns:1fr;}
        }

        /* --- 顶部指标条（关注币种 / 累计预警）：一行小字，不再占两张大卡 --- */
        .wl-statbar{
            display:flex;align-items:center;flex-wrap:wrap;gap:6px 16px;
            padding:8px 14px;background:rgba(15,23,41,0.55);
            border:1px solid var(--border);border-radius:12px;
        }
        body.theme-light .wl-statbar{background:#fff;border-color:rgba(37,99,235,0.10);}
        .wl-stat{display:inline-flex;align-items:center;gap:8px;min-width:0;}
        .wl-stat-ico{
            width:22px;height:22px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;
            font-size:12px;background:rgba(56,189,248,0.12);color:#38bdf8;flex-shrink:0;
        }
        .wl-stat-ico.mauve{background:rgba(217,70,239,0.14);color:#d946ef;}
        .wl-stat-ico.rose{background:rgba(244,63,94,0.16);color:#f43f5e;}
        body.theme-light .wl-stat-ico.mauve{background:rgba(217,70,239,0.10);color:#a21caf;}
        body.theme-light .wl-stat-ico.rose{background:rgba(244,63,94,0.12);color:#be123c;}
        .wl-stat-label{font-size:12.5px;font-weight:650;color:var(--text-2);white-space:nowrap;}
        .wl-stat-value{
            font-family:var(--mono);font-size:16px;font-weight:800;color:var(--text-1);
            font-variant-numeric:tabular-nums;line-height:1;
        }
        .wl-stat-sub{
            font-size:12px;color:var(--text-3);font-weight:500;
            white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:420px;
        }
        .wl-stat-div{width:1px;height:16px;background:var(--border);flex-shrink:0;}

        /* --- Toolbar --- */
        .wl-toolbar{
            display:flex;align-items:center;gap:10px;flex-wrap:wrap;
            padding:10px 12px;background:rgba(15,23,41,0.55);border:1px solid var(--border);border-radius:14px;
        }
        body.theme-light .wl-toolbar{background:#fff;border-color:rgba(37,99,235,0.10);}
        .wl-search-wrap{position:relative;flex:1 1 200px;min-width:180px;}
        /* 搜索词不在关注列表时浮出的「添加」建议条 */
        .wl-add-suggest{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:30;}
        .wl-add-suggest-btn{
            width:100%;text-align:left;padding:10px 14px;border-radius:10px;cursor:pointer;font-size:13px;font-weight:700;
            color:#fff;background:linear-gradient(135deg,#10b981,#059669);border:1px solid rgba(16,185,129,0.35);
            box-shadow:0 12px 26px rgba(2,8,20,0.35);
        }
        .wl-add-suggest-btn:hover{filter:brightness(1.06);}
        .wl-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-3);pointer-events:none;font-size:14px;}
        .wl-search-input{
            width:100%;height:38px;padding:0 14px 0 36px;border-radius:10px;
            background:rgba(10,14,26,0.55);border:1px solid var(--border);color:var(--text-1);
            font-size:13.5px;outline:none;
        }
        .wl-search-input:focus{border-color:var(--accent-2);box-shadow:0 0 0 2px rgba(56,189,248,0.18);}
        body.theme-light .wl-search-input{background:#f8fbff;border-color:rgba(37,99,235,0.12);}
        .wl-btn-primary{
            background:linear-gradient(180deg,#3b82f6,#2563eb);color:#fff;border:none;
            font-weight:800;font-size:13px;height:38px;padding:0 16px;border-radius:10px;cursor:pointer;
        }
        .wl-btn-primary:hover{background:linear-gradient(180deg,#2563eb,#1d4ed8);}
        .wl-btn-ghost{
            background:rgba(15,23,41,0.45);border:1px solid var(--border);color:var(--text-1);
            font-weight:700;font-size:13px;height:38px;padding:0 14px;border-radius:10px;cursor:pointer;
        }
        .wl-btn-ghost:hover{border-color:var(--border-strong);}
        body.theme-light .wl-btn-ghost{background:#fff;border-color:rgba(37,99,235,0.14);color:#1e293b;}
        .wl-btn-secondary{
            background:rgba(56,189,248,0.12);border:1px solid rgba(56,189,248,0.28);color:#38bdf8;
            font-weight:800;font-size:13px;height:38px;padding:0 14px;border-radius:10px;cursor:pointer;
        }
        body.theme-light .wl-btn-secondary{background:rgba(37,99,235,0.08);border-color:rgba(37,99,235,0.20);color:#1d4ed8;}
        .wl-bulk-wrap{position:relative;}
        .wl-bulk-menu{position:absolute;top:calc(100% + 6px);left:0;min-width:220px;background:rgba(15,23,41,0.98);border:1px solid var(--border);border-radius:12px;padding:6px;z-index:30;box-shadow:0 18px 38px rgba(0,0,0,0.42);}
        body.theme-light .wl-bulk-menu{background:#fff;box-shadow:0 14px 36px rgba(15,23,42,0.14);}
        .wl-bulk-item{display:block;width:100%;text-align:left;padding:8px 12px;border-radius:8px;border:none;background:transparent;color:var(--text-1);font-size:13px;font-weight:700;cursor:pointer;}
        .wl-bulk-item:hover{background:rgba(56,189,248,0.12);color:#38bdf8;}
        .wl-chip-group{display:flex;gap:6px;}
        .wl-toolbar-right{display:flex;align-items:center;gap:6px;margin-left:auto;}
        .wl-btn-reset{padding:0 12px;}
        .wl-chip{
            display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;
            background:rgba(15,23,41,0.45);border:1px solid var(--border);color:var(--text-2);
            font-size:12.5px;font-weight:700;cursor:pointer;
        }
        .wl-chip span{
            display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;
            border-radius:999px;background:rgba(148,163,184,0.18);font-size:11px;font-weight:850;color:var(--text-1);
        }
        .wl-chip.active{background:rgba(56,189,248,0.16);border-color:rgba(56,189,248,0.4);color:#38bdf8;}
        .wl-chip.active span{background:rgba(56,189,248,0.32);color:#0ea5e9;}
        body.theme-light .wl-chip{background:#fff;border-color:rgba(37,99,235,0.14);color:#475569;}
        body.theme-light .wl-chip span{background:#eef2f8;color:#0f172a;}
        body.theme-light .wl-chip.active{background:#dbeafe;border-color:#93c5fd;color:#1d4ed8;}

        /* --- Cards grid --- */
        .wl-cards-wrap{display:flex;flex-direction:column;gap:14px;}
        .wl-cards-grid{display:flex;flex-direction:column;gap:14px;}
        .wl-empty{padding:48px 16px;text-align:center;color:var(--text-3);font-size:13.5px;border:1px dashed var(--border);border-radius:14px;}
        .wl-drag-hint{font-size:11.5px;color:var(--text-3);text-align:center;padding-top:4px;}

        .wl-coin-card{
            background:rgba(15,23,41,0.7);border:1px solid var(--border);border-radius:16px;
            padding:18px 20px;display:flex;flex-direction:column;gap:14px;transition:border-color .15s, box-shadow .15s, background-color .15s;
        }
        body.theme-light .wl-coin-card{background:#fff;border-color:rgba(37,99,235,0.10);box-shadow:0 1px 0 rgba(15,23,42,0.02);}
        .wl-coin-card:hover{border-color:var(--border-strong);}
        .wl-coin-card.selected{
            border-color:rgba(56,189,248,0.55);
            box-shadow:0 0 0 1px rgba(56,189,248,0.25), 0 14px 32px rgba(56,189,248,0.10);
            background:rgba(56,189,248,0.04);
        }
        body.theme-light .wl-coin-card.selected{
            border-color:#93c5fd;background:#f5faff;
            box-shadow:0 0 0 1px rgba(37,99,235,0.18), 0 12px 28px rgba(37,99,235,0.08);
        }

        /* 头部是固定四列网格：图标 / 币种名（定宽） / 价格 / 开关。
           币种名再长也只在自己那一列里省略，后面三个价格格子在每张卡片上都对齐。 */
        .wl-cc-head{
            display:grid;grid-template-columns:42px var(--wl-name-col,128px) minmax(0,1fr) auto;
            align-items:center;gap:14px;
        }
        .wl-coin-icon{
            position:relative;overflow:hidden;
            width:42px;height:42px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
            font-weight:950;font-size:16px;font-family:var(--mono);color:#fff;flex:0 0 42px;
            background:linear-gradient(135deg,#475569,#64748b);
        }
        .wl-coin-icon.btc{background:linear-gradient(135deg,#f59e0b,#f97316);}
        .wl-coin-icon.eth{background:linear-gradient(135deg,#6366f1,#8b5cf6);}
        .wl-coin-icon.bnb{background:linear-gradient(135deg,#fbbf24,#f59e0b);}
        .wl-coin-icon.sol{background:linear-gradient(135deg,#a855f7,#06b6d4);}
        .wl-coin-icon.usdt{background:linear-gradient(135deg,#10b981,#059669);}
        .wl-coin-icon.has-tv-logo{
            background:transparent;overflow:visible;border-radius:0;
        }
        /* Logo image overlays the letter avatar; on load failure it self-hides
           via onCoinIconError() and the .wl-coin-letter underneath shows through. */
        .wl-coin-letter{position:relative;z-index:1;}
        .wl-coin-icon-img{
            position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
            border-radius:inherit;background:#fff;z-index:2;
        }
        .wl-coin-icon-img.tv-logo{
            inset:5px;width:32px;height:32px;border-radius:50%;transform:none;background:transparent;
        }
        /* Funding watchlist card icon — smaller, sits inline with the base name. */
        .fwl-coin-icon-wrap{
            width:22px;height:22px;border-radius:50%;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;
            flex:0 0 22px;background:transparent;
        }
        .fwl-coin-icon-img{
            width:100%;height:100%;border-radius:50%;object-fit:cover;background:#fff;display:block;
        }
        .fwl-coin-icon-img.tv-logo{
            width:18px;height:18px;transform:none;background:transparent;
        }
        .wl-cc-id{display:flex;flex-direction:column;gap:2px;min-width:0;overflow:hidden;}
        .wl-cc-name{font-size:18px;font-weight:900;color:var(--text-1);font-family:var(--mono);letter-spacing:.01em;
            white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
        .wl-cc-src{font-size:11.5px;color:var(--text-3);font-weight:650;
            white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
        .wl-cc-tools{display:flex;align-items:center;gap:10px;justify-self:end;}
        .wl-cc-spread-toggle,.wl-cc-price-toggle,.wl-cc-funding-toggle{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:10px;border:1px solid var(--border);background:rgba(15,23,41,0.4);color:var(--text-2);font-size:12px;font-weight:750;}
        .wl-cc-spread-toggle.on{border-color:rgba(16,185,129,0.32);background:rgba(16,185,129,0.10);color:#10b981;}
        .wl-cc-price-toggle.on{border-color:rgba(245,158,11,0.32);background:rgba(245,158,11,0.10);color:#f59e0b;}
        .wl-cc-funding-toggle.on{border-color:rgba(139,92,246,0.34);background:rgba(139,92,246,0.10);color:#a78bfa;}
        body.theme-light .wl-cc-spread-toggle,body.theme-light .wl-cc-price-toggle,body.theme-light .wl-cc-funding-toggle{background:#f8fbff;border-color:rgba(37,99,235,0.12);color:#475569;}
        body.theme-light .wl-cc-spread-toggle.on{background:#ecfdf5;border-color:rgba(16,185,129,0.38);color:#047857;}
        body.theme-light .wl-cc-price-toggle.on{background:#fef3c7;border-color:rgba(245,158,11,0.42);color:#b45309;}
        body.theme-light .wl-cc-funding-toggle.on{background:#f5f3ff;border-color:rgba(139,92,246,0.44);color:#6d28d9;}
        .wl-cc-spread-lbl,.wl-cc-price-lbl,.wl-cc-funding-lbl{font-size:12px;}
        /* 没有费率规则的币种补一个等宽隐形占位，保证开关区和价格格子整列对齐 */
        .wl-cc-toggle-ph{visibility:hidden;pointer-events:none;}

        .wl-switch{position:relative;display:inline-block;width:34px;height:18px;}
        .wl-switch input{opacity:0;width:0;height:0;}
        .wl-switch-slider{position:absolute;cursor:pointer;inset:0;background:#475569;border-radius:999px;transition:.18s;}
        .wl-switch-slider:before{content:"";position:absolute;width:14px;height:14px;left:2px;top:2px;background:#fff;border-radius:50%;transition:.18s;box-shadow:0 1px 4px rgba(0,0,0,0.25);}
        .wl-switch input:checked + .wl-switch-slider{background:#10b981;}
        .wl-switch input:checked + .wl-switch-slider:before{transform:translateX(16px);}

        .wl-cc-menu-wrap{position:relative;}
        .wl-cc-menu-btn{
            width:32px;height:32px;border-radius:8px;border:1px solid var(--border);background:rgba(15,23,41,0.4);color:var(--text-2);
            font-size:18px;font-weight:850;line-height:1;cursor:pointer;
        }
        .wl-cc-menu-btn:hover{border-color:var(--border-strong);color:var(--text-1);}
        body.theme-light .wl-cc-menu-btn{background:#fff;border-color:rgba(37,99,235,0.14);color:#1e293b;}
        .wl-cc-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:200px;background:rgba(15,23,41,0.98);border:1px solid var(--border);border-radius:12px;padding:6px;z-index:30;display:none;box-shadow:0 18px 38px rgba(0,0,0,0.42);}
        .wl-cc-menu.open{display:block;}
        body.theme-light .wl-cc-menu{background:#fff;box-shadow:0 14px 36px rgba(15,23,42,0.14);}
        .wl-cc-menu button{display:block;width:100%;text-align:left;padding:8px 12px;border-radius:8px;border:none;background:transparent;color:var(--text-1);font-size:13px;font-weight:700;cursor:pointer;}
        .wl-cc-menu button:hover{background:rgba(56,189,248,0.12);color:#38bdf8;}
        .wl-cc-menu button.wl-cc-menu-danger{color:#f87171;}
        .wl-cc-menu button.wl-cc-menu-danger:hover{background:rgba(239,68,68,0.14);color:#ef4444;}

        .wl-cc-note-row{display:flex;}
        .wl-cc-note-btn{
            display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:8px;
            background:transparent;border:1px dashed rgba(148,163,184,0.28);color:var(--text-3);
            font-size:11.5px;font-weight:650;cursor:pointer;
        }
        .wl-cc-note-btn:hover{color:var(--text-1);border-color:var(--border-strong);}
        /* Empty state: the button shrinks to a tiny pencil-only square so it doesn't shout "添加备注" at the user. */
        .wl-cc-note-row.empty .wl-cc-note-btn{padding:3px 7px;border-style:dashed;opacity:0.55;}
        .wl-cc-note-row.empty .wl-cc-note-btn:hover{opacity:1;}

        /* --- Inline prices live in the card head, next to the coin name. --- */
        .wl-cc-prices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;min-width:0;}
        .wl-pcell{padding:8px 12px;border-radius:10px;background:rgba(10,14,26,0.5);border:1px solid rgba(148,163,184,0.10);min-width:0;}
        body.theme-light .wl-pcell{background:#f8fbff;border-color:rgba(37,99,235,0.10);}
        .wl-pcell-lbl{font-size:11px;color:var(--text-3);font-weight:700;margin-bottom:3px;}
        .wl-pcell-val{font-family:var(--mono);font-size:16px;font-weight:900;color:var(--text-1);line-height:1.15;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
        .wl-pcell-val.pos{color:#10b981;}
        .wl-pcell-val.neg{color:#ef4444;}
        .wl-pcell-chg{font-family:var(--mono);font-size:11px;font-weight:800;margin-top:3px;color:var(--text-3);}
        .wl-pcell-chg.pos{color:#10b981;}
        .wl-pcell-chg.neg{color:#ef4444;}

        /* Chart container — used both by the (now-removed) card body fallback and by the drawer. */
        .wl-cc-spark{position:relative;height:80px;display:flex;align-items:stretch;}
        .wl-spark{flex:1;display:block;}
        .wl-spark-yaxis{
            display:flex;flex-direction:column;justify-content:space-between;
            font-family:var(--mono);font-size:10.5px;color:var(--text-3);font-weight:700;
            padding:2px 0 2px 6px;text-align:right;min-width:46px;
        }

        /* ---- 套利持仓盈亏测算：抽屉「套利测算」页签的内容 ---- */
        .wl-arb-lead{font-size:11.5px;line-height:1.6;color:var(--text-3);margin-bottom:10px;}
        .wl-arb .arb-side{margin-bottom:10px;}
        .wl-arb .arb-side-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:6px 0 5px;font-size:11.5px;font-weight:800;color:var(--text-2);}
        .wl-arb .arb-addrow{border:1px solid var(--border);background:transparent;color:var(--accent-2);font-size:11px;font-weight:750;border-radius:7px;padding:3px 8px;cursor:pointer;line-height:1.2;}
        .wl-arb .arb-addrow:hover{border-color:var(--accent-2);}
        .wl-arb .arb-row{display:grid;grid-template-columns:1fr 1fr 64px 20px;gap:6px;align-items:center;margin-bottom:5px;}
        .wl-arb .arb-row-head{font-size:10.5px;color:var(--text-3);font-weight:700;margin-bottom:3px;}
        .wl-arb .arb-row-head span{padding-left:2px;}
        .wl-arb .arb-in{width:100%;box-sizing:border-box;font-family:var(--mono);font-size:12px;padding:6px 7px;border-radius:7px;border:1px solid var(--border);background:rgba(10,14,26,0.55);color:var(--text-1);}
        body.theme-light .wl-arb .arb-in{background:#fff;}
        .wl-arb .arb-in:focus{outline:none;border-color:var(--accent-2);box-shadow:0 0 0 2px rgba(56,189,248,0.14);}
        .wl-arb .arb-amt{font-family:var(--mono);font-size:11.5px;color:var(--text-2);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
        .wl-arb .arb-del{border:none;background:transparent;color:var(--text-3);font-size:12px;cursor:pointer;line-height:1;padding:0;}
        .wl-arb .arb-del:hover{color:#ef4444;}
        .wl-arb .arb-foot{font-family:var(--mono);font-size:11px;color:var(--text-3);font-weight:650;padding:2px 2px 0;border-top:1px dashed var(--border);margin-top:2px;}
        .wl-arb .arb-result{margin-top:10px;padding-top:10px;border-top:1px solid var(--border);}
        .wl-arb .arb-res-live{font-size:11px;color:var(--text-3);font-weight:650;margin-bottom:7px;}
        .wl-arb .arb-res-live b{color:var(--text-1);font-family:var(--mono);}
        .wl-arb .arb-res-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:3px 0;}
        .wl-arb .arb-res-lbl{font-size:12px;color:var(--text-2);font-weight:700;}
        .wl-arb .arb-res-val{font-family:var(--mono);font-size:13px;font-weight:850;color:var(--text-1);}
        .wl-arb .arb-res-val.pos{color:#10b981;}
        .wl-arb .arb-res-val.neg{color:#ef4444;}
        .wl-arb .arb-res-val em{font-style:normal;font-size:10.5px;font-weight:650;color:var(--text-3);}
        .wl-arb .arb-res-div{height:1px;background:var(--border);margin:5px 0;}
        .wl-arb .arb-hint{font-size:10.5px;line-height:1.5;color:var(--text-3);margin-top:7px;}
        .wl-arb .arb-hint.warn{color:#f59e0b;font-weight:700;margin-top:6px;}

        /* Detail (expandable from ⋯ menu) */
        .wl-cc-detail{display:none;padding-top:12px;border-top:1px dashed rgba(148,163,184,0.18);flex-direction:column;gap:12px;}
        .wl-coin-card.expanded .wl-cc-detail{display:flex;}
        .wl-cc-detail .ccm-section{padding:10px 12px;border-radius:10px;background:rgba(26,35,64,0.36);border:1px solid rgba(148,163,184,0.10);}
        .wl-cc-detail .ccm-section.disabled{opacity:0.45;}
        .wl-cc-detail .ccm-section.price{border-color:rgba(245,158,11,0.18);background:rgba(245,158,11,0.05);}
        .wl-cc-detail .ccm-section.spread{border-color:rgba(59,130,246,0.18);background:rgba(59,130,246,0.05);}
        .wl-cc-detail .ccm-section-title{font-size:12px;font-weight:850;color:var(--text-1);margin-bottom:8px;display:flex;align-items:center;gap:8px;}
        .wl-cc-detail .ccm-grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
        .wl-cc-detail .ccm-grid2 .form-input,.wl-cc-detail .ccm-grid2 .form-select{font-size:12.5px;padding:7px 9px;}
        .wl-cc-detail .ccm-grid2 .form-label{font-size:11px;margin-bottom:3px;}
        .wl-cc-detail .ccm-push-toggle{display:flex;align-items:center;gap:7px;font-size:11.5px;font-weight:750;color:var(--text-3);cursor:pointer;margin-top:8px;}
        .wl-cc-detail .ccm-push-fields{display:none;margin-top:7px;flex-direction:column;gap:6px;}
        .wl-cc-detail .ccm-push-fields.show{display:flex;}
        .wl-cc-detail .ccm-save-row{display:flex;justify-content:flex-end;}
        .wl-mini-toggle{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:750;color:var(--text-3);margin-left:auto;cursor:pointer;}
        .wl-fade{font-weight:650;color:var(--text-3);font-size:11px;}

        /* Responsive: 头部先折成两行（价格独占第二行），再把价格竖排 */
        @media (max-width:1180px){
            .wl-cc-head{grid-template-columns:42px minmax(0,1fr) auto;}
            .wl-cc-tools{grid-column:3;grid-row:1;}
            .wl-cc-prices{grid-column:1/-1;grid-row:2;}
        }
        @media (max-width:720px){
            .wl-cc-prices{grid-template-columns:1fr;}
            .wl-toolbar-right{margin-left:0;flex-wrap:wrap;}
            .wl-cc-tools{flex-wrap:wrap;justify-content:flex-end;}
            .wl-cc-toggle-ph{display:none;}
        }

        /* --- Sticky right drawer (per-coin threshold & push) --- */
        .watchlist-v2 .page-side{position:sticky;top:8px;align-self:start;max-height:calc(100vh - 24px);}
        .wl-side-drawer{
            background:rgba(15,23,41,0.78);border:1px solid var(--border);border-radius:14px;
            box-shadow:0 18px 46px rgba(0,0,0,0.22);
            display:flex;flex-direction:column;max-height:calc(100vh - 24px);overflow:hidden;
        }
        body.theme-light .wl-side-drawer{background:#fff;border-color:rgba(37,99,235,0.14);box-shadow:0 18px 42px rgba(15,23,42,0.08);}

        /* Compact top-bar empty state — keep it slim so the drawer body stays useful even when no coin is picked. */
        .wl-side-empty{padding:10px 14px;color:var(--text-3);display:flex;flex-direction:row;gap:8px;align-items:center;border-bottom:1px dashed var(--border);}
        .wl-side-empty[hidden]{display:none;}
        .wl-side-empty-icon{
            width:22px;height:22px;border-radius:6px;background:rgba(56,189,248,0.10);
            display:inline-flex;align-items:center;justify-content:center;font-size:13px;color:#38bdf8;flex:0 0 22px;
        }
        body.theme-light .wl-side-empty-icon{background:rgba(37,99,235,0.08);color:#1d4ed8;}
        .wl-side-empty-title{font-size:12px;font-weight:700;color:var(--text-2);line-height:1.3;}

        .wl-side-content{display:flex;flex-direction:column;min-height:0;flex:1;}
        .wl-side-content[hidden]{display:none;}
        .wl-side-head{
            display:flex;align-items:center;gap:10px;padding:16px 18px;
            border-bottom:1px solid var(--border);
        }
        .wl-side-head-id{flex:1;min-width:0;}
        .wl-side-head-title{font-size:15px;font-weight:900;color:var(--text-1);font-family:var(--mono);letter-spacing:.01em;}
        .wl-side-head-sub{font-size:11.5px;color:var(--text-3);font-weight:650;margin-top:2px;}
        .wl-side-close{
            width:30px;height:30px;border-radius:8px;border:1px solid var(--border);background:transparent;
            color:var(--text-2);font-size:14px;cursor:pointer;line-height:1;
        }
        .wl-side-close:hover{color:var(--text-1);border-color:var(--border-strong);}
        /* 页签：价格 / 价差 / 费率 / 套利，四个等宽，标题只留两个字才塞得下 */
        .wl-side-tabs{display:flex;gap:5px;padding:10px 16px 0;}
        .wl-side-tab{
            flex:1;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:5px;
            padding:8px 6px;border-radius:9px;border:1px solid var(--border);background:transparent;
            color:var(--text-3);font-size:12.5px;font-weight:800;cursor:pointer;white-space:nowrap;
        }
        .wl-side-tab:hover{color:var(--text-1);border-color:var(--border-strong);}
        .wl-side-tab.active{background:rgba(56,189,248,0.12);border-color:rgba(56,189,248,0.34);color:#38bdf8;}
        body.theme-light .wl-side-tab{background:#f6f9fe;border-color:rgba(37,99,235,0.12);color:#64748b;}
        body.theme-light .wl-side-tab.active{background:#dbeafe;border-color:#93c5fd;color:#1d4ed8;}
        .wl-side-tab-dot{width:6px;height:6px;border-radius:50%;background:#10b981;flex:0 0 6px;}

        .wl-side-body{flex:1;overflow:auto;padding:14px 16px 18px;display:flex;flex-direction:column;gap:12px;}
        /* 四个面板都渲染、只切换显示：隐藏那几页的输入框仍在 DOM 里，
           保存按钮一次提交全部规则，切不切页签都不会丢改动 */
        .wl-side-pane{display:none;flex-direction:column;gap:12px;}
        .wl-side-pane.active{display:flex;}
        /* 手动 Webhook + 保存按钮：三个规则页签共用一份，套利页隐藏 */
        .wl-side-foot{display:flex;flex-direction:column;gap:12px;}
        .wl-side-foot[hidden]{display:none;}

        /* 推送设置每条规则一份，平时折起来，标题右侧直接显示当前通知方式 */
        .wl-side-body .ccm-notify{grid-column:1/-1;border-top:1px dashed var(--border);padding-top:8px;margin-top:2px;}
        .wl-side-body .ccm-notify > summary{
            list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;
            font-size:11.5px;font-weight:750;color:var(--text-3);
        }
        .wl-side-body .ccm-notify > summary::-webkit-details-marker{display:none;}
        .wl-side-body .ccm-notify > summary::after{content:"\25BE";font-size:10px;opacity:.6;transition:transform .18s ease;}
        .wl-side-body .ccm-notify[open] > summary::after{transform:rotate(180deg);}
        .wl-side-body .ccm-notify > summary b{
            margin-left:auto;font-family:var(--mono);font-size:11.5px;font-weight:850;color:var(--text-2);
        }
        .wl-side-body .ccm-notify-body{margin-top:8px;display:flex;flex-direction:column;gap:7px;}

        /* Reuse legacy .ccm-section blocks inside the drawer with adjusted spacing. */
        .wl-side-body .ccm-section{padding:11px 13px;border-radius:10px;background:rgba(26,35,64,0.36);border:1px solid rgba(148,163,184,0.10);}
        .wl-side-body .ccm-section.disabled{opacity:0.45;}
        .wl-side-body .ccm-section.price{border-color:rgba(245,158,11,0.18);background:rgba(245,158,11,0.06);}
        .wl-side-body .ccm-section.spread{border-color:rgba(59,130,246,0.18);background:rgba(59,130,246,0.06);}
        .wl-side-body .ccm-section.funding{border-color:rgba(139,92,246,0.20);background:rgba(139,92,246,0.06);}
        body.theme-light .wl-side-body .ccm-section{background:#f8fbff;border-color:rgba(37,99,235,0.10);}
        body.theme-light .wl-side-body .ccm-section.price{background:#fffaf0;border-color:rgba(245,158,11,0.20);}
        body.theme-light .wl-side-body .ccm-section.spread{background:#eff6ff;border-color:rgba(59,130,246,0.18);}
        body.theme-light .wl-side-body .ccm-section.funding{background:#f5f3ff;border-color:rgba(139,92,246,0.24);}
        /* 删除某条规则：标题栏右侧的小 ✕ */
        .wl-side-body .wl-rule-del{margin-left:6px;width:22px;height:22px;border-radius:6px;border:1px solid var(--border);
            background:transparent;color:var(--text-3);font-size:12px;line-height:1;cursor:pointer;}
        .wl-side-body .wl-rule-del:hover{color:var(--err);border-color:rgba(239,68,68,0.4);}
        .wl-side-body .ccm-est{margin-top:8px;font-size:11.5px;color:var(--text-3);font-weight:700;}
        .wl-side-body .ccm-est.pos{color:#22c55e;}
        .wl-side-body .ccm-est.neg{color:#ef4444;}
        .wl-side-body .ccm-section-title{font-size:12.5px;font-weight:850;color:var(--text-1);margin-bottom:8px;display:flex;align-items:center;gap:8px;}
        .wl-side-body .ccm-grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
        .wl-side-body .ccm-grid2 .form-input,
        .wl-side-body .ccm-grid2 .form-select{font-size:12.5px;padding:7px 9px;}
        .wl-side-body .ccm-grid2 .form-label{font-size:11px;margin-bottom:3px;}
        .wl-side-body .ccm-push-toggle{display:flex;align-items:center;gap:7px;font-size:11.5px;font-weight:750;color:var(--text-3);cursor:pointer;margin-top:8px;}
        .wl-side-body .ccm-push-fields{display:none;margin-top:7px;flex-direction:column;gap:6px;}
        .wl-side-body .ccm-push-fields.show{display:flex;}
        .wl-side-body .ccm-save-row{display:flex;justify-content:flex-end;margin-top:4px;}
        .wl-side-body .ccm-save-row .btn{font-size:13px;}
        .wl-side-body .wl-mini-toggle{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:750;color:var(--text-3);margin-left:auto;cursor:pointer;}

        @media (max-width:1280px){
            .watchlist-v2 .page-side{position:relative;top:auto;max-height:none;}
            .wl-side-drawer{max-height:none;}
            .wl-side-body{max-height:60vh;}
        }

        /* ===================== Watchlist v2: 新建预警规则 side panel ===================== */
        .wl-rule-panel{display:flex;flex-direction:column;padding:0;width:480px;max-width:calc(100vw - 18px);overflow:hidden;}
        .wl-rule-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--border);}
        .wl-rule-title{font-size:16px;font-weight:900;color:var(--text-1);}
        .wl-rule-close{width:30px;height:30px;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--text-2);font-size:16px;line-height:1;cursor:pointer;}
        .wl-rule-close:hover{color:var(--text-1);border-color:var(--border-strong);}

        .wl-rule-tabs{display:flex;gap:0;padding:14px 22px 0;}
        .wl-rule-tab{
            flex:1;padding:10px 12px;border-radius:10px 10px 0 0;border:1px solid var(--border);border-bottom:none;
            background:rgba(15,23,41,0.45);color:var(--text-2);font-weight:800;font-size:13px;cursor:pointer;
            position:relative;top:1px;
        }
        .wl-rule-tab.active{background:rgba(56,189,248,0.10);color:#38bdf8;border-color:rgba(56,189,248,0.32);}
        body.theme-light .wl-rule-tab{background:#f3f6fb;color:#475569;border-color:rgba(37,99,235,0.14);}
        body.theme-light .wl-rule-tab.active{background:#dbeafe;color:#1d4ed8;border-color:#93c5fd;}

        .wl-rule-body{flex:1;overflow:auto;padding:18px 22px;display:flex;flex-direction:column;gap:14px;border-top:1px solid var(--border);}
        .wl-rule-field{display:flex;flex-direction:column;gap:6px;}
        .wl-rule-label{font-size:12.5px;font-weight:800;color:var(--text-1);}
        .wl-rule-help{font-size:11.5px;color:var(--text-3);font-weight:600;}
        .wl-rule-select,.wl-rule-input,.wl-rule-textarea{
            width:100%;background:rgba(10,14,26,0.55);border:1px solid var(--border);color:var(--text-1);
            border-radius:10px;padding:10px 12px;font-size:13.5px;outline:none;
        }
        .wl-rule-select:focus,.wl-rule-input:focus,.wl-rule-textarea:focus{border-color:var(--accent-2);box-shadow:0 0 0 2px rgba(56,189,248,0.18);}
        body.theme-light .wl-rule-select,body.theme-light .wl-rule-input,body.theme-light .wl-rule-textarea{background:#f8fbff;border-color:rgba(37,99,235,0.14);}
        .wl-rule-textarea{resize:vertical;min-height:88px;font-family:inherit;}
        .wl-rule-count{text-align:right;font-size:11px;color:var(--text-3);font-family:var(--mono);}

        .wl-rule-segments{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;background:rgba(10,14,26,0.4);padding:5px;border-radius:11px;border:1px solid var(--border);}
        body.theme-light .wl-rule-segments{background:#f3f6fb;border-color:rgba(37,99,235,0.14);}
        .wl-rule-seg{
            padding:9px 8px;border-radius:8px;border:none;background:transparent;color:var(--text-2);
            font-size:12.5px;font-weight:750;cursor:pointer;
        }
        .wl-rule-seg.active{background:rgba(56,189,248,0.16);color:#38bdf8;}
        body.theme-light .wl-rule-seg.active{background:#dbeafe;color:#1d4ed8;}

        .wl-rule-cond{display:flex;align-items:flex-end;gap:8px;}
        .wl-rule-input-wrap{flex:1;min-width:0;position:relative;display:flex;flex-direction:column;gap:4px;}
        .wl-rule-input-lbl{font-size:11px;color:var(--text-3);font-weight:700;}
        .wl-rule-input-suffix{
            position:absolute;right:12px;bottom:11px;font-size:11.5px;color:var(--text-3);font-weight:800;font-family:var(--mono);
            pointer-events:none;
        }
        .wl-rule-input{padding-right:50px;}
        .wl-rule-tilde{font-size:18px;color:var(--text-3);font-weight:900;padding-bottom:9px;}

        .wl-rule-check{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--text-1);font-weight:700;cursor:pointer;}
        .wl-rule-check input{width:16px;height:16px;accent-color:var(--accent);}

        .wl-rule-foot{
            display:flex;gap:8px;justify-content:flex-end;
            padding:14px 22px;border-top:1px solid var(--border);background:rgba(10,14,26,0.4);
        }
        body.theme-light .wl-rule-foot{background:#f8fbff;}
        .wl-rule-foot .btn{height:38px;padding:0 16px;}

        /* ============================================================
           Apple 风格统一层（2026-07-06）
           目的：全站字号 / 圆角 / 控件高度 / 字重归一。
           放在文件末尾整体覆盖，改动集中、可整段回滚。
           ============================================================ */

        /* --- 1. KPI 卡片家族统一（五套卡片样式 22~30px 不齐 → 统一 24px） --- */
        .metric-card,.kpi-card,.sk-card,.surge-kpi-card,.wl-kpi-card{
            border-radius:14px;min-height:108px;padding:14px 16px;
        }
        .metric-value,.kpi-value,.sk-value,.surge-kpi-value,.wl-kpi-value,
        #page-funding .kpi-value,
        #page-funding .funding-kpi-grid .surge-kpi-value{
            font-family:var(--mono);font-size:24px;font-weight:700;
            letter-spacing:-0.02em;line-height:1.1;
            font-variant-numeric:tabular-nums;
        }
        .metric-label,.kpi-label,.sk-label,.surge-kpi-label,.wl-kpi-label,
        #page-funding .kpi-label,
        #page-funding .funding-kpi-grid .surge-kpi-label{
            font-size:12px;font-weight:600;letter-spacing:0;color:var(--text-2);
        }
        .metric-note,.kpi-sub,.sk-sub,.surge-kpi-sub,.wl-kpi-sub,
        #page-funding .kpi-sub,
        #page-funding .funding-kpi-grid .surge-kpi-sub{
            font-size:11.5px;font-weight:500;color:var(--text-3);
        }
        .surge-kpi-unit,#page-funding .funding-kpi-grid .surge-kpi-unit{font-size:12px;font-weight:600;}

        /* --- 2. 标题层级：850/900/950 的超重字重收敛到 600/700 --- */
        .page-title{font-size:26px;font-weight:700;letter-spacing:-0.022em;}
        .brand-title{font-weight:700;}
        .arb-settings-title{font-weight:700;font-size:18px;}
        .section-header,.section-header-pro .sh-title,.overview-section-title,
        .ovs-head h3,.surge-heatmap-title,.sd-section-title,.panel-title,
        .arb-drawer-title,.sd-coin-symbol{font-weight:600;}
        .nav-name{font-weight:600;}
        .arb-base,.arb-rate,.arb-spread,.arb-volume,.arb-metric-val,
        .sd-ov-value,.sd-mini-val,.sd-meta-val,.sd-ov-row-val,.sd-src-price,
        .surge-coin-name,.spt-coin-base,.coin-name,.rtl-stat-val,
        .ssb-stat strong,.stat-item span{
            font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:0;
        }
        #page-funding .arb-table .arb-base,#page-funding .arb-table .arb-rate{font-weight:600;}

        /* --- 3. 表单控件 / 按钮：高度与圆角统一（38/36/34/32 → 36，小号 30） --- */
        .form-input,.form-select{min-height:36px;padding:7px 12px;border-radius:10px;font-size:13px;}
        .inline-group .form-input{min-height:32px;}
        .btn{min-height:36px;padding:8px 16px;border-radius:10px;font-weight:600;letter-spacing:0;}
        .btn:hover{transform:none;filter:brightness(1.06);}
        .btn:active{transform:scale(0.98);filter:brightness(0.96);}
        .live-chip,.clock-chip,.alert-btn,.theme-toggle,.header-search{height:36px;border-radius:10px;font-weight:600;}
        /* 主操作按钮：渐变 → Apple 系统色（蓝/红/绿）扁平化 */
        .btn-start{background:#0a84ff;border-color:transparent;box-shadow:0 1px 3px rgba(10,132,255,0.35);}
        .btn-stop{background:#ff453a;border-color:transparent;box-shadow:0 1px 3px rgba(255,69,58,0.30);}
        .btn-add{background:#30d158;border-color:transparent;box-shadow:0 1px 3px rgba(48,209,88,0.30);}
        .btn-send{background:#ff9f0a;border-color:transparent;box-shadow:0 1px 3px rgba(255,159,10,0.30);}
        body.theme-light .btn-start{background:#007aff;}
        body.theme-light .btn-stop{background:#ff3b30;}
        body.theme-light .btn-add{background:#34c759;}
        body.theme-light .btn-send{background:#ff9500;}
        .sd-add-watch{background:#0a84ff;box-shadow:0 1px 3px rgba(10,132,255,0.35);border-radius:12px;font-weight:600;}
        body.theme-light .sd-add-watch{background:#007aff;}
        .sp-page-btn.active{background:#0a84ff;}
        body.theme-light .sp-page-btn.active{background:#007aff;}

        /* --- 4. 标签页 → Apple 分段控件（Segmented Control） --- */
        .spread-kline-tab{font-weight:600;}

        /* --- 5. 筛选圆片（chips）：渐变高亮 → 扁平系统蓝 --- */
        .surge-ex-chip{font-weight:600;}
        .surge-ex-chip.active{background:#0a84ff;border-color:transparent;box-shadow:none;color:#fff;}
        body.theme-light .surge-ex-chip.active{background:#007aff;color:#fff;}
        .wl-chip.active{background:#0a84ff;color:#fff;}
        body.theme-light .wl-chip.active{background:#007aff;color:#fff;}

        /* --- 6. 表格：表头去大写化，行高与字号统一 --- */
        .arb-table th,.spread-table th,.feed-table th,.exchange-fee-table th,
        .runtime-log-table thead th,#page-funding .arb-table th{
            text-transform:none;letter-spacing:0;font-weight:600;font-size:12px;
        }
        .arb-table th,.arb-table td{padding:11px 14px;}
        .arb-table td,.spread-table td,.feed-table td{font-size:13px;}

        /* --- 7. 悬浮动效收敛：去掉“呼吸灯”动画，统一轻量位移 + 阴影 --- */
        .tool-card-clickable:hover,
        body.theme-light .tool-card-clickable:hover{
            animation:none;
            border-color:rgba(10,132,255,0.45);
            box-shadow:0 6px 18px rgba(0,0,0,0.14);
        }
        body.theme-light .tool-card-clickable:hover{box-shadow:0 6px 18px rgba(15,23,42,0.10);}
        .metric-card.mc-clickable:hover,
        .kpi-card.kpi-clickable:hover{transform:translateY(-1px);border-color:rgba(10,132,255,0.40);}

        /* --- 8. 其它一致性微调 --- */
        .status-badge,.status-indicator-inline{font-weight:600;}
        .toast{font-weight:600;border-radius:12px;}
        .help-text{font-size:11.5px;}
        .form-label{font-weight:600;}
        .surge-toolbar-lbl,.spread-toolbar .form-select,.spread-toolbar .form-input{font-weight:500;}
        .surge-toolbar-row .surge-toolbar-sel{min-height:34px;}
        .empty-state{font-size:13px;}

        /* --- 9. 预览校对补丁 --- */
        /* 顶栏胶囊在窄视口下文字折行 → 强制单行 */
        .live-chip,.clock-chip,.theme-toggle,.alert-btn{white-space:nowrap;flex:0 0 auto;}
        /* 异动榜单在半宽面板里继承 880px 最小宽导致横向滚动 → 按内容自适应 */
        .surge-pane-v2 .arb-table{min-width:0;}
        .surge-table-v2 th,.surge-table-v2 td{padding:9px 10px;}

        /* ===================================================================
           关注列表 · 按监控类型分区视图
           价格 / 价差 用紧凑表格行（一行只放这一类要看的列），
           费率沿用卡片（要放收益计算器）。同一个币可以同时出现在多个分区。
           =================================================================== */
        .wl-view-switch{display:inline-flex;gap:2px;padding:2px;border-radius:10px;border:1px solid var(--border);background:rgba(15,23,41,0.4);}
        body.theme-light .wl-view-switch{background:#f1f5f9;border-color:rgba(37,99,235,0.12);}
        .wl-view-btn{border:none;background:transparent;color:var(--text-3);font-size:12px;font-weight:750;
            padding:5px 11px;border-radius:8px;cursor:pointer;white-space:nowrap;}
        .wl-view-btn.active{background:rgba(56,189,248,0.18);color:#38bdf8;}
        body.theme-light .wl-view-btn.active{background:#fff;color:#1d4ed8;box-shadow:0 1px 2px rgba(15,23,42,0.08);}

        .wl-type-chip-row{display:flex;gap:6px;flex-wrap:wrap;margin:-4px 0 2px;}
        .wl-type-chip{
            border:1px solid var(--border);background:rgba(15,23,41,0.4);color:var(--text-3);
            font-size:12px;font-weight:750;padding:5px 12px;border-radius:999px;cursor:pointer;
        }
        .wl-type-chip span{margin-left:5px;padding:1px 6px;border-radius:999px;background:rgba(148,163,184,0.18);font-size:11px;}
        .wl-type-chip.active{background:rgba(56,189,248,0.16);border-color:rgba(56,189,248,0.4);color:#38bdf8;}
        body.theme-light .wl-type-chip{background:#fff;border-color:rgba(37,99,235,0.14);color:#475569;}
        body.theme-light .wl-type-chip.active{background:#dbeafe;border-color:#93c5fd;color:#1d4ed8;}

        .wl-type-sections{display:flex;flex-direction:column;gap:16px;}
        .wl-sec{background:rgba(15,23,41,0.7);border:1px solid var(--border);border-radius:16px;overflow:hidden;}
        body.theme-light .wl-sec{background:#fff;border-color:rgba(37,99,235,0.10);box-shadow:0 1px 0 rgba(15,23,42,0.02);}
        .wl-sec-head{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border);flex-wrap:wrap;}
        .wl-sec.collapsed .wl-sec-head{border-bottom:none;}
        .wl-sec-caret{border:none;background:transparent;color:var(--text-3);font-size:13px;cursor:pointer;padding:0 2px;line-height:1;}
        .wl-sec-title{font-size:15px;font-weight:900;color:var(--text-1);}
        .wl-sec-title.price{color:#f59e0b;}
        .wl-sec-title.spread{color:#10b981;}
        .wl-sec-title.funding{color:#a78bfa;}
        body.theme-light .wl-sec-title.price{color:#b45309;}
        body.theme-light .wl-sec-title.spread{color:#047857;}
        body.theme-light .wl-sec-title.funding{color:#6d28d9;}
        .wl-sec-count{font-size:12px;font-weight:750;color:var(--text-2);font-family:var(--mono);}
        .wl-sec-desc{font-size:11.5px;color:var(--text-3);}
        .wl-sec-gap{flex:1;}
        .wl-sec-act{
            border:1px solid var(--border);background:rgba(15,23,41,0.4);color:var(--text-2);
            font-size:11.5px;font-weight:750;padding:4px 10px;border-radius:8px;cursor:pointer;white-space:nowrap;
        }
        .wl-sec-act:hover{border-color:var(--border-strong);color:var(--text-1);}
        body.theme-light .wl-sec-act{background:#f8fbff;border-color:rgba(37,99,235,0.12);color:#475569;}
        .wl-sec-body{display:flex;flex-direction:column;}
        .wl-sec-empty{padding:22px 16px;text-align:center;color:var(--text-3);font-size:12.5px;}
        .wl-sec-add{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:10px 16px;
            border-top:1px dashed var(--border);font-size:11.5px;color:var(--text-3);}
        .wl-add-chip{
            border:1px dashed var(--border-strong);background:transparent;color:var(--text-2);
            font-size:11.5px;font-weight:750;font-family:var(--mono);padding:3px 10px;border-radius:999px;cursor:pointer;
        }
        .wl-add-chip:hover{border-style:solid;border-color:rgba(56,189,248,0.5);color:#38bdf8;}

        /* 表格行：价格 / 价差各自一套列宽，表头和数据行共用同一个网格 */
        .wl-tr{display:grid;align-items:center;gap:12px;padding:11px 16px;border-bottom:1px solid var(--border);}
        .wl-tr:last-child{border-bottom:none;}
        .wl-tr-price{grid-template-columns:var(--wl-coin-col,180px) minmax(0,1fr) minmax(0,1fr) minmax(0,1.1fr) 94px;}
        .wl-tr-spread{grid-template-columns:var(--wl-coin-col,180px) minmax(0,1fr) 132px minmax(0,1.1fr) 94px;}
        .wl-tr-head{font-size:11px;font-weight:800;color:var(--text-3);letter-spacing:.02em;
            padding-top:8px;padding-bottom:8px;cursor:default;background:rgba(148,163,184,0.06);}
        .wl-tr:not(.wl-tr-head):hover{background:rgba(56,189,248,0.05);}
        .wl-tr.selected{background:rgba(56,189,248,0.10);box-shadow:inset 3px 0 0 rgba(56,189,248,0.7);}
        body.theme-light .wl-tr.selected{background:#f0f7ff;box-shadow:inset 3px 0 0 #2563eb;}
        .wl-tr.off .wl-pcell-val,.wl-tr.off .wl-tc-thr{opacity:.62;}
        .wl-tr-coin{display:flex;align-items:center;gap:8px;min-width:0;}
        .wl-tr-name{font-family:var(--mono);font-size:14.5px;font-weight:900;color:var(--text-1);
            white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
        .wl-tc{min-width:0;}
        .wl-tc-thr{font-size:12px;color:var(--text-2);}
        .wl-tc-thr b{font-family:var(--mono);font-weight:850;color:var(--text-1);}
        .wl-tc-sub{font-size:10.5px;color:var(--text-3);margin-top:3px;}
        .wl-thr-unset{color:var(--text-3);font-weight:600;}
        .wl-tc-act{justify-self:end;display:flex;align-items:center;gap:8px;}

        /* ⚙ 阈值与推送入口：阈值不常改，所以只让这个按钮打开右侧抽屉，行本身不再可点 */
        .wl-gear-btn{
            width:26px;height:26px;flex:0 0 26px;border-radius:7px;border:1px solid var(--border);
            background:rgba(15,23,41,0.4);color:var(--text-3);font-size:13px;line-height:1;cursor:pointer;
            display:inline-flex;align-items:center;justify-content:center;padding:0;
        }
        .wl-gear-btn:hover{border-color:rgba(56,189,248,0.55);color:#38bdf8;}
        body.theme-light .wl-gear-btn{background:#fff;border-color:rgba(37,99,235,0.14);color:#64748b;}
        body.theme-light .wl-gear-btn:hover{border-color:#93c5fd;color:#1d4ed8;}
        .wl-cc-gear{width:32px;height:32px;flex:0 0 32px;border-radius:8px;font-size:15px;}
        .wl-tc-spark{position:relative;height:34px;}
        .wl-tc-spark .wl-spark{flex:none;width:120px;height:34px;}

        /* 三个小点 = 这个币配了哪几类规则；实心亮起表示该类正在运行 */
        .wl-dots{display:inline-flex;gap:3px;flex:0 0 auto;}
        .wl-dot{width:6px;height:6px;border-radius:50%;background:rgba(148,163,184,0.25);cursor:pointer;display:inline-block;}
        .wl-dot.has{background:rgba(148,163,184,0.55);}
        .wl-dot.price.on{background:#f59e0b;}
        .wl-dot.spread.on{background:#10b981;}
        .wl-dot.funding.on{background:#a78bfa;}

        .wl-flash{animation:wlFlash 1.1s ease-out;}
        @keyframes wlFlash{0%{box-shadow:0 0 0 2px rgba(56,189,248,0.65);}100%{box-shadow:0 0 0 2px rgba(56,189,248,0);}}

        /* 费率分区卡片 —— 原「资金费率 › 自选费率 · 收益计算器」搬过来 */
        .wl-fcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;padding:14px 16px;}
        .wl-fcard{border:1px solid var(--border);border-radius:14px;padding:13px 14px;display:flex;flex-direction:column;gap:10px;
            background:rgba(148,163,184,0.05);}
        body.theme-light .wl-fcard{background:#fbfdff;border-color:rgba(37,99,235,0.10);}
        .wl-fcard:hover{border-color:var(--border-strong);}
        .wl-fcard.selected{border-color:rgba(56,189,248,0.55);box-shadow:0 0 0 1px rgba(56,189,248,0.22);}
        .wl-fcard.off{opacity:.78;}
        .wl-fcard-head{display:flex;align-items:center;gap:8px;}
        .wl-fcard-id{display:flex;align-items:center;gap:7px;min-width:0;}
        .wl-fcard-id .fwl-token-link{font-family:var(--mono);font-size:14px;font-weight:900;color:var(--text-1);text-decoration:none;}
        .wl-fcard-id .fwl-token-link:hover{color:#38bdf8;text-decoration:underline;}
        .wl-fcard-sym{font-size:10.5px;color:var(--text-3);font-family:var(--mono);}
        .wl-fcard-sw{margin-left:auto;display:flex;align-items:center;gap:8px;}
        .wl-fcard-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
        .wl-fm{background:rgba(15,23,41,0.45);border-radius:10px;padding:7px 9px;min-width:0;}
        body.theme-light .wl-fm{background:#f1f5f9;}
        .wl-fm span{display:block;font-size:10.5px;color:var(--text-3);margin-bottom:2px;}
        .wl-fm b{font-size:14px;font-weight:900;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;}
        .wl-fm .fwl-est{color:#10b981;font-family:var(--mono);}
        .wl-fm .fwl-est.neg{color:#ef4444;}
        .wl-fcard-calc{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
        .wl-fcard-calc label{display:flex;flex-direction:column;gap:3px;font-size:10.5px;color:var(--text-3);}
        .wl-fcard-calc .form-input{min-height:30px;font-size:12px;padding:4px 8px;}
        .wl-fcard-hint{grid-column:1 / span 2;font-size:10.5px;color:var(--text-3);line-height:1.5;}
        .wl-fcard-thr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px 10px;font-size:11px;color:var(--text-3);}
        .wl-fcard-thr b{font-family:var(--mono);font-weight:850;color:var(--text-2);}

        .wl-moved-note{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 16px;
            border:1px dashed var(--border);border-radius:14px;font-size:12.5px;color:var(--text-3);}

        @media (max-width:1180px){
            .wl-tr-price,.wl-tr-spread{grid-template-columns:150px minmax(0,1fr) minmax(0,1fr) 52px;}
            .wl-tr-price .wl-tc-thr,.wl-tr-spread .wl-tc-spark{display:none;}
            .wl-tr-head.wl-tr-price div:nth-child(4),.wl-tr-head.wl-tr-spread div:nth-child(3){display:none;}
            .wl-fcards{grid-template-columns:minmax(0,1fr);}
            .wl-sec-desc{display:none;}
        }

/* ---------- 通知黑名单（v1.6.0） ---------- */
.bl-btn{margin-left:4px;padding:5px 9px;border-radius:8px;font-size:11.5px;font-weight:700;background:transparent;color:var(--text-3);border:1px solid rgba(148,163,184,0.35);cursor:pointer;white-space:nowrap;vertical-align:middle;}
.bl-btn:hover{color:#f87171;border-color:rgba(248,113,113,0.55);background:rgba(248,113,113,0.08);}
.bl-btn.on{color:#f87171;border-color:rgba(248,113,113,0.45);background:rgba(248,113,113,0.12);}
.bl-btn.on:hover{color:var(--text-2);border-color:rgba(148,163,184,0.45);background:transparent;}
.bl-tag{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:6px;font-size:10.5px;font-weight:700;line-height:16px;color:#f87171;background:rgba(248,113,113,0.12);vertical-align:middle;white-space:nowrap;}
tr.bl-muted > td{opacity:.55;}
tr.bl-muted > td:last-child{opacity:1;}
.bl-box{display:flex;flex-direction:column;gap:8px;}
.bl-chips{display:flex;flex-wrap:wrap;gap:6px;min-height:24px;align-items:center;}
.bl-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 4px 3px 9px;border-radius:999px;font-size:12px;font-weight:700;color:#f87171;background:rgba(248,113,113,0.12);border:1px solid rgba(248,113,113,0.3);}
.bl-chip button{width:18px;height:18px;border-radius:50%;border:none;background:transparent;color:inherit;cursor:pointer;font-size:13px;line-height:1;display:grid;place-items:center;}
.bl-chip button:hover{background:rgba(248,113,113,0.2);}
.bl-add-row{display:flex;gap:8px;flex-wrap:wrap;}
.bl-add-row .form-input{flex:1;min-width:160px;}
body.theme-light .bl-btn.on, body.theme-light .bl-tag, body.theme-light .bl-chip{color:#dc2626;}