/* ========== 深色 H5 APP 风格 — 公共深色底 ========== */
:root,[data-theme="green"]{
  --ora:#f59e0b;--grn:#10b981;--red:#ef4444;
  --t1:#e2e8f0;--t2:#94a3b8;--t3:#64748b;
  --bg:#0b1120;--card:#131b2e;--bd:rgba(255,255,255,.06);
  --r:12px;--rl:16px;--rf:999px;
  --sh:0 2px 16px rgba(0,0,0,.3);
  --input-bg:#1a2332;--input-bd:rgba(255,255,255,.1);
  --hover:rgba(255,255,255,.04);--divider:rgba(255,255,255,.06);
  --bg2:#131b2e;--bg3:#1a2332;--bg4:#243044;
  --tab-bg:#0f1729;--tab-bd:rgba(255,255,255,.06);--tab-shadow:0 -2px 16px rgba(0,0,0,.4);
  --sub-header-bg:#0f1729;
  --modal-bg:#1a2332;--modal-mask:rgba(0,0,0,.2);
  --toast-bg:#1a2332;
  --skeleton-a:#1a2332;--skeleton-b:#243044;
  --login-grad-top:#1a2744;--login-grad-mid:#0f1a2e;
  --home-top-a:#131b2e;
  --strat-head-a:#0f1a2e;--strat-head-b:#122a1e;
  --prof-head-a:#0f2a1e;--prof-head-b:#0f1729;
  --white-alpha-03:rgba(255,255,255,.03);--white-alpha-04:rgba(255,255,255,.04);--white-alpha-05:rgba(255,255,255,.05);--white-alpha-06:rgba(255,255,255,.06);--white-alpha-08:rgba(255,255,255,.08);--white-alpha-10:rgba(255,255,255,.1);--white-alpha-12:rgba(255,255,255,.12);--white-alpha-15:rgba(255,255,255,.15);--white-alpha-20:rgba(255,255,255,.2);
  --black-alpha-20:rgba(0,0,0,.2);--black-alpha-30:rgba(0,0,0,.3);--black-alpha-40:rgba(0,0,0,.4);
  --sw-off:rgba(255,255,255,.15);--sw-knob:#fff;
  --itv-bg:rgba(255,255,255,.06);--itv-hover:rgba(255,255,255,.1);
  --rd-bd:rgba(255,255,255,.2);--chk-bd:rgba(255,255,255,.2);
  --scroll-thumb:rgba(255,255,255,.15);
  --is-dark:1;
  /* green 默认 — 翠绿 */
  --c1:#10b981;--c2:#34d399;--c3:#059669;--cbg:rgba(16,185,129,.08);
  --soft:rgba(16,185,129,.15);--pale:rgba(16,185,129,.05);--mid:#6ee7b7;
  --c1-25:rgba(16,185,129,.25);--c1-20:rgba(16,185,129,.2);--c1-15:rgba(16,185,129,.15);
  --c1-12:rgba(16,185,129,.12);--c1-10:rgba(16,185,129,.1);--c1-08:rgba(16,185,129,.08);
  --c1-06:rgba(16,185,129,.06);--c1-04:rgba(16,185,129,.04);--c1-03:rgba(16,185,129,.03);
  --c2-25:rgba(52,211,153,.25);--c2-20:rgba(52,211,153,.2);
  --c3-03:rgba(5,150,105,.03);--c3-05:rgba(5,150,105,.05);--c3-06:rgba(5,150,105,.06);
  --c1-30:rgba(16,185,129,.3);--c1-40:rgba(16,185,129,.4);
  --hero-txt:#6ee7b7;--fmz-txt:#34d399;--fmz-soft:rgba(16,185,129,.12);
}
[data-theme="cream"]{
  --strat-head-b:#2a2010;--prof-head-a:#2a2010;--prof-head-b:#1a1508;
  --c1:#d4a24e;--c2:#e8c87a;--c3:#b8860b;--cbg:rgba(212,162,78,.08);
  --soft:rgba(212,162,78,.15);--pale:rgba(212,162,78,.05);--mid:#f0d78c;
  --c1-25:rgba(212,162,78,.25);--c1-20:rgba(212,162,78,.2);--c1-15:rgba(212,162,78,.15);
  --c1-12:rgba(212,162,78,.12);--c1-10:rgba(212,162,78,.1);--c1-08:rgba(212,162,78,.08);
  --c1-06:rgba(212,162,78,.06);--c1-04:rgba(212,162,78,.04);--c1-03:rgba(212,162,78,.03);
  --c2-25:rgba(232,200,122,.25);--c2-20:rgba(232,200,122,.2);
  --c3-03:rgba(184,134,11,.03);--c3-05:rgba(184,134,11,.05);--c3-06:rgba(184,134,11,.06);
  --c1-30:rgba(212,162,78,.3);--c1-40:rgba(212,162,78,.4);
  --hero-txt:#f0d78c;--fmz-txt:#e8c87a;--fmz-soft:rgba(212,162,78,.12);
}
[data-theme="purple"]{
  --strat-head-b:#1e0f3a;--prof-head-a:#1e0f3a;--prof-head-b:#140a2a;
  --c1:#a855f7;--c2:#c084fc;--c3:#7c3aed;--cbg:rgba(168,85,247,.08);
  --soft:rgba(168,85,247,.15);--pale:rgba(168,85,247,.05);--mid:#d8b4fe;
  --c1-25:rgba(168,85,247,.25);--c1-20:rgba(168,85,247,.2);--c1-15:rgba(168,85,247,.15);
  --c1-12:rgba(168,85,247,.12);--c1-10:rgba(168,85,247,.1);--c1-08:rgba(168,85,247,.08);
  --c1-06:rgba(168,85,247,.06);--c1-04:rgba(168,85,247,.04);--c1-03:rgba(168,85,247,.03);
  --c2-25:rgba(192,132,252,.25);--c2-20:rgba(192,132,252,.2);
  --c3-03:rgba(124,58,237,.03);--c3-05:rgba(124,58,237,.05);--c3-06:rgba(124,58,237,.06);
  --c1-30:rgba(168,85,247,.3);--c1-40:rgba(168,85,247,.4);
  --hero-txt:#d8b4fe;--fmz-txt:#c084fc;--fmz-soft:rgba(168,85,247,.12);
}
[data-theme="teal"]{
  --strat-head-b:#0f2a28;--prof-head-a:#0f2a28;--prof-head-b:#0a1e1c;
  --c1:#14b8a6;--c2:#2dd4bf;--c3:#0d9488;--cbg:rgba(20,184,166,.08);
  --soft:rgba(20,184,166,.15);--pale:rgba(20,184,166,.05);--mid:#5eead4;
  --c1-25:rgba(20,184,166,.25);--c1-20:rgba(20,184,166,.2);--c1-15:rgba(20,184,166,.15);
  --c1-12:rgba(20,184,166,.12);--c1-10:rgba(20,184,166,.1);--c1-08:rgba(20,184,166,.08);
  --c1-06:rgba(20,184,166,.06);--c1-04:rgba(20,184,166,.04);--c1-03:rgba(20,184,166,.03);
  --c2-25:rgba(45,212,191,.25);--c2-20:rgba(45,212,191,.2);
  --c3-03:rgba(13,148,136,.03);--c3-05:rgba(13,148,136,.05);--c3-06:rgba(13,148,136,.06);
  --c1-30:rgba(20,184,166,.3);--c1-40:rgba(20,184,166,.4);
  --hero-txt:#5eead4;--fmz-txt:#2dd4bf;--fmz-soft:rgba(20,184,166,.12);
}
[data-theme="yellow"]{
  --strat-head-b:#2a1e0a;--prof-head-a:#2a1e0a;--prof-head-b:#1e1505;
  --c1:#f59e0b;--c2:#fbbf24;--c3:#d97706;--cbg:rgba(245,158,11,.08);
  --soft:rgba(245,158,11,.15);--pale:rgba(245,158,11,.05);--mid:#fcd34d;
  --c1-25:rgba(245,158,11,.25);--c1-20:rgba(245,158,11,.2);--c1-15:rgba(245,158,11,.15);
  --c1-12:rgba(245,158,11,.12);--c1-10:rgba(245,158,11,.1);--c1-08:rgba(245,158,11,.08);
  --c1-06:rgba(245,158,11,.06);--c1-04:rgba(245,158,11,.04);--c1-03:rgba(245,158,11,.03);
  --c2-25:rgba(251,191,36,.25);--c2-20:rgba(251,191,36,.2);
  --c3-03:rgba(217,119,6,.03);--c3-05:rgba(217,119,6,.05);--c3-06:rgba(217,119,6,.06);
  --c1-30:rgba(245,158,11,.3);--c1-40:rgba(245,158,11,.4);
  --hero-txt:#fcd34d;--fmz-txt:#fbbf24;--fmz-soft:rgba(245,158,11,.12);
}
[data-theme="coral"]{
  --strat-head-b:#2a150a;--prof-head-a:#2a150a;--prof-head-b:#1e0f06;
  --c1:#f97316;--c2:#fb923c;--c3:#ea580c;--cbg:rgba(249,115,22,.08);
  --soft:rgba(249,115,22,.15);--pale:rgba(249,115,22,.05);--mid:#fdba74;
  --c1-25:rgba(249,115,22,.25);--c1-20:rgba(249,115,22,.2);--c1-15:rgba(249,115,22,.15);
  --c1-12:rgba(249,115,22,.12);--c1-10:rgba(249,115,22,.1);--c1-08:rgba(249,115,22,.08);
  --c1-06:rgba(249,115,22,.06);--c1-04:rgba(249,115,22,.04);--c1-03:rgba(249,115,22,.03);
  --c2-25:rgba(251,146,60,.25);--c2-20:rgba(251,146,60,.2);
  --c3-03:rgba(234,88,12,.03);--c3-05:rgba(234,88,12,.05);--c3-06:rgba(234,88,12,.06);
  --c1-30:rgba(249,115,22,.3);--c1-40:rgba(249,115,22,.4);
  --hero-txt:#fdba74;--fmz-txt:#fb923c;--fmz-soft:rgba(249,115,22,.12);
}
[data-theme="blue"]{
  --strat-head-b:#0f1e3a;--prof-head-a:#0f1e3a;--prof-head-b:#0a142a;
  --c1:#3b82f6;--c2:#60a5fa;--c3:#2563eb;--cbg:rgba(59,130,246,.08);
  --soft:rgba(59,130,246,.15);--pale:rgba(59,130,246,.05);--mid:#93c5fd;
  --c1-25:rgba(59,130,246,.25);--c1-20:rgba(59,130,246,.2);--c1-15:rgba(59,130,246,.15);
  --c1-12:rgba(59,130,246,.12);--c1-10:rgba(59,130,246,.1);--c1-08:rgba(59,130,246,.08);
  --c1-06:rgba(59,130,246,.06);--c1-04:rgba(59,130,246,.04);--c1-03:rgba(59,130,246,.03);
  --c2-25:rgba(96,165,250,.25);--c2-20:rgba(96,165,250,.2);
  --c3-03:rgba(37,99,235,.03);--c3-05:rgba(37,99,235,.05);--c3-06:rgba(37,99,235,.06);
  --c1-30:rgba(59,130,246,.3);--c1-40:rgba(59,130,246,.4);
  --hero-txt:#93c5fd;--fmz-txt:#60a5fa;--fmz-soft:rgba(59,130,246,.12);
}
[data-theme="oat"]{
  --strat-head-b:#1e1a17;--prof-head-a:#1e1a17;--prof-head-b:#15120f;
  --c1:#a1887f;--c2:#bcaaa4;--c3:#8d6e63;--cbg:rgba(161,136,127,.08);
  --soft:rgba(161,136,127,.15);--pale:rgba(161,136,127,.05);--mid:#d7ccc8;
  --c1-25:rgba(161,136,127,.25);--c1-20:rgba(161,136,127,.2);--c1-15:rgba(161,136,127,.15);
  --c1-12:rgba(161,136,127,.12);--c1-10:rgba(161,136,127,.1);--c1-08:rgba(161,136,127,.08);
  --c1-06:rgba(161,136,127,.06);--c1-04:rgba(161,136,127,.04);--c1-03:rgba(161,136,127,.03);
  --c2-25:rgba(188,170,164,.25);--c2-20:rgba(188,170,164,.2);
  --c3-03:rgba(141,110,99,.03);--c3-05:rgba(141,110,99,.05);--c3-06:rgba(141,110,99,.06);
  --c1-30:rgba(161,136,127,.3);--c1-40:rgba(161,136,127,.4);
  --hero-txt:#d7ccc8;--fmz-txt:#bcaaa4;--fmz-soft:rgba(161,136,127,.12);
}
[data-theme="sky"]{
  --strat-head-b:#0a1e2e;--prof-head-a:#0a1e2e;--prof-head-b:#061520;
  --c1:#0ea5e9;--c2:#38bdf8;--c3:#0284c7;--cbg:rgba(14,165,233,.08);
  --soft:rgba(14,165,233,.15);--pale:rgba(14,165,233,.05);--mid:#7dd3fc;
  --c1-25:rgba(14,165,233,.25);--c1-20:rgba(14,165,233,.2);--c1-15:rgba(14,165,233,.15);
  --c1-12:rgba(14,165,233,.12);--c1-10:rgba(14,165,233,.1);--c1-08:rgba(14,165,233,.08);
  --c1-06:rgba(14,165,233,.06);--c1-04:rgba(14,165,233,.04);--c1-03:rgba(14,165,233,.03);
  --c2-25:rgba(56,189,248,.25);--c2-20:rgba(56,189,248,.2);
  --c3-03:rgba(2,132,199,.03);--c3-05:rgba(2,132,199,.05);--c3-06:rgba(2,132,199,.06);
  --c1-30:rgba(14,165,233,.3);--c1-40:rgba(14,165,233,.4);
  --hero-txt:#7dd3fc;--fmz-txt:#38bdf8;--fmz-soft:rgba(14,165,233,.12);
}
[data-theme="purewhite"]{
  --strat-head-b:#1e2030;--prof-head-a:#1e2030;--prof-head-b:#161824;
  --c1:#8b95a5;--c2:#b0bac8;--c3:#6b7585;--cbg:rgba(139,149,165,.08);
  --soft:rgba(139,149,165,.15);--pale:rgba(139,149,165,.05);--mid:#d0d6de;
  --c1-25:rgba(139,149,165,.25);--c1-20:rgba(139,149,165,.2);--c1-15:rgba(139,149,165,.15);
  --c1-12:rgba(139,149,165,.12);--c1-10:rgba(139,149,165,.1);--c1-08:rgba(139,149,165,.08);
  --c1-06:rgba(139,149,165,.06);--c1-04:rgba(139,149,165,.04);--c1-03:rgba(139,149,165,.03);
  --c2-25:rgba(176,186,200,.25);--c2-20:rgba(176,186,200,.2);
  --c3-03:rgba(107,117,133,.03);--c3-05:rgba(107,117,133,.05);--c3-06:rgba(107,117,133,.06);
  --c1-30:rgba(139,149,165,.3);--c1-40:rgba(139,149,165,.4);
  --hero-txt:#d0d6de;--fmz-txt:#b0bac8;--fmz-soft:rgba(139,149,165,.12);
}
[data-theme="fresh"]{
  --strat-head-b:#0f2a1a;--prof-head-a:#0f2a1a;--prof-head-b:#0a1e12;
  --c1:#22c55e;--c2:#4ade80;--c3:#16a34a;--cbg:rgba(34,197,94,.08);
  --soft:rgba(34,197,94,.15);--pale:rgba(34,197,94,.05);--mid:#86efac;
  --c1-25:rgba(34,197,94,.25);--c1-20:rgba(34,197,94,.2);--c1-15:rgba(34,197,94,.15);
  --c1-12:rgba(34,197,94,.12);--c1-10:rgba(34,197,94,.1);--c1-08:rgba(34,197,94,.08);
  --c1-06:rgba(34,197,94,.06);--c1-04:rgba(34,197,94,.04);--c1-03:rgba(34,197,94,.03);
  --c2-25:rgba(74,222,128,.25);--c2-20:rgba(74,222,128,.2);
  --c3-03:rgba(22,163,74,.03);--c3-05:rgba(22,163,74,.05);--c3-06:rgba(22,163,74,.06);
  --c1-30:rgba(34,197,94,.3);--c1-40:rgba(34,197,94,.4);
  --hero-txt:#86efac;--fmz-txt:#4ade80;--fmz-soft:rgba(34,197,94,.12);
}
/* ========== 白天模式 ========== */
[data-mode="light"]{
  --ora:#d97706;--grn:#059669;--red:#dc2626;
  --t1:#1e293b;--t2:#475569;--t3:#94a3b8;
  --bg:#f1f5f9;--card:#ffffff;--bd:rgba(0,0,0,.08);
  --sh:0 2px 12px rgba(0,0,0,.06);
  --input-bg:#f8fafc;--input-bd:rgba(0,0,0,.12);
  --hover:rgba(0,0,0,.03);--divider:rgba(0,0,0,.06);
  --bg2:#ffffff;--bg3:#f8fafc;--bg4:#e2e8f0;
  --tab-bg:#ffffff;--tab-bd:rgba(0,0,0,.06);--tab-shadow:0 -2px 12px rgba(0,0,0,.06);
  --sub-header-bg:#ffffff;
  --modal-bg:#ffffff;--modal-mask:rgba(0,0,0,.3);
  --toast-bg:#ffffff;
  --skeleton-a:#e2e8f0;--skeleton-b:#f1f5f9;
  --login-grad-top:#e0e7ff;--login-grad-mid:#f1f5f9;
  --home-top-a:#ffffff;
  --strat-head-a:#f1f5f9;--strat-head-b:#dbeafe;--strat-head-c:#3b82f6;
  --prof-head-a:#f0fdf4;--prof-head-b:#dcfce7;
  --white-alpha-03:rgba(0,0,0,.02);--white-alpha-04:rgba(0,0,0,.03);--white-alpha-05:rgba(0,0,0,.04);--white-alpha-06:rgba(0,0,0,.05);--white-alpha-08:rgba(0,0,0,.06);--white-alpha-10:rgba(0,0,0,.08);--white-alpha-12:rgba(0,0,0,.1);--white-alpha-15:rgba(0,0,0,.12);--white-alpha-20:rgba(0,0,0,.15);
  --black-alpha-20:rgba(0,0,0,.08);--black-alpha-30:rgba(0,0,0,.1);--black-alpha-40:rgba(0,0,0,.15);
  --sw-off:rgba(0,0,0,.15);--sw-knob:#fff;
  --itv-bg:rgba(0,0,0,.04);--itv-hover:rgba(0,0,0,.08);
  --rd-bd:rgba(0,0,0,.45);--chk-bd:rgba(0,0,0,.45);
  --scroll-thumb:rgba(0,0,0,.12);
  --is-dark:0;
}
[data-mode="light"] .prof-head{background:linear-gradient(135deg,var(--c1-15),var(--c1-25)) !important;border-bottom:2px solid var(--c1-20)}
[data-mode="light"] .strat-head{background:linear-gradient(135deg,var(--c1-25),var(--c1-40),var(--c1)) !important;color:#1e293b !important}
[data-mode="light"] .strat-head .sh-label{color:rgba(30,41,59,.6) !important}
[data-mode="light"] .strat-head .sh-val{color:#1e293b !important}
[data-mode="light"] .strat-head .sh-title{color:#1e293b !important}
[data-mode="light"] .strat-head .sh-ex{background:rgba(255,255,255,.6) !important;color:#1e293b !important;box-shadow:0 2px 8px rgba(0,0,0,.08) !important}
[data-mode="light"] .strat-head .sh-tech-grid{background-image:linear-gradient(rgba(0,0,0,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.03) 1px,transparent 1px) !important}
[data-mode="light"] .strat-head .sh-tech-orb{background:var(--c1-20) !important}
[data-mode="light"] .strat-head .sh-tech-line{background:linear-gradient(90deg,transparent,rgba(0,0,0,.04) 30%,rgba(0,0,0,.03) 70%,transparent) !important}
[data-mode="light"] .strat-head::before{background:radial-gradient(circle,var(--c1-08) 0%,transparent 60%) !important}
[data-mode="light"] .strat-head::after{background:radial-gradient(circle,var(--c1-06) 0%,transparent 55%) !important}
[data-mode="light"] .strat-head .ex-dropdown{background:var(--bg2) !important}
[data-mode="light"] .home-top{background:#ffffff !important}
[data-mode="light"] .tab-bar{background:#ffffff !important;border-top:1px solid rgba(0,0,0,.06) !important;box-shadow:0 -1px 8px rgba(0,0,0,.04) !important}
[data-mode="light"] .sub-header{background:#ffffff !important;border-bottom:1px solid rgba(0,0,0,.06) !important}
[data-mode="light"] .login-page{background:linear-gradient(to bottom,#e0e7ff,#f1f5f9,#f1f5f9) !important;min-height:100vh}
/* ========== 纯白主题 + 浅色模式：纯白 ========== */
[data-mode="light"][data-theme="purewhite"]{
  --bg:#ffffff;--card:#ffffff;--input-bg:#ffffff;
  --bg2:#ffffff;--bg3:#fafafa;--bg4:#f5f5f5;
  --bd:rgba(0,0,0,.06);--sh:0 1px 6px rgba(0,0,0,.04);
  --strat-head-a:#ffffff;--strat-head-b:#f8f8f8;--strat-head-c:#8b95a5;
  --prof-head-a:#fafafa;--prof-head-b:#f5f5f5;
  --login-grad-top:#ffffff;--login-grad-mid:#ffffff;
  --skeleton-a:#f0f0f0;--skeleton-b:#fafafa;
  --tab-bg:#ffffff;--tab-bd:rgba(0,0,0,.05);--tab-shadow:0 -1px 8px rgba(0,0,0,.03);
  --sub-header-bg:#ffffff;
  --modal-bg:#ffffff;
  --toast-bg:#ffffff;
  --home-top-a:#ffffff;
  --input-bd:rgba(0,0,0,.1);
  --hover:rgba(0,0,0,.02);--divider:rgba(0,0,0,.05);
  --itv-bg:rgba(0,0,0,.03);--itv-hover:rgba(0,0,0,.06);
}

:root {
  --safe-b: env(safe-area-inset-bottom, 20px);
}
*{margin:0;padding:0;box-sizing:border-box}
html{height:100%;overscroll-behavior-y:none}
body{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Helvetica Neue','Microsoft YaHei',sans-serif;background:var(--bg);color:var(--t1);max-width:33.75rem;margin:0 auto;min-height:100%;-webkit-font-smoothing:antialiased}
@media(min-width:541px){body{box-shadow:0 0 30px rgba(0,0,0,.3)}}
a{color:var(--c1);text-decoration:none}
button{cursor:pointer;border:none;outline:none;font-family:inherit;border-radius:var(--rf)}
input{font-family:inherit;outline:none;color:var(--t1);background:var(--input-bg)}
select{color:var(--t1);background:var(--input-bg)}
textarea{color:var(--t1);background:var(--input-bg)}
.hide{display:none!important}

/* ========== 页面 ========== */
.page{display:none}
.page.active{display:block;padding-bottom:calc(4.375rem + var(--safe-b))}
.page.sub{padding-bottom:calc(5.625rem + var(--safe-b));background:var(--bg)}

/* ========== 骨架屏 Loading ========== */
.skeleton {
    background: linear-gradient(90deg, var(--skeleton-a) 25%, var(--skeleton-b) 50%, var(--skeleton-a) 75%);
    background-size: 200% 100%;
    animation: skeleton-loading 1.5s infinite;
    border-radius: 4px;
    display: inline-block;
    width: 100%;
}
.skeleton-text { height: 1em; margin-bottom: 0.5em; width: 80%; }
.skeleton-rect { height: 100px; width: 100%; border-radius: 8px; }
.skeleton-circle { width: 40px; height: 40px; border-radius: 50%; }
@keyframes skeleton-loading { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
@keyframes pulse { 0%,100% { opacity: 1; } 50% { opacity: .4; } }

/* ========== 空状态 Empty State ========== */
.empty-state { padding: 60px 20px; text-align: center; display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--t3); }
.empty-icon { font-size: 48px; margin-bottom: 12px; opacity: 0.5; filter: grayscale(1); }
.empty-text { font-size: 14px; font-weight: 500; opacity: 0.8; }
.empty-sub { font-size: 12px; margin-top: 4px; opacity: 0.6; }
.empty-btn { margin-top: 16px; padding: 8px 20px; border-radius: 20px; border: 1px solid var(--bd); background: var(--card); color: var(--t2); font-size: 13px; font-weight: 500; }

/* ========== 增强点击反馈 ========== */
.clickable:active, .sr-item:active, .news-item:active, .gf-item:active, .rank-card:active, .mi:active, .sp-row:active, .faq-q:active, .strat-card:active, .fmz-card:active {
    background-color: rgba(255,255,255,0.03);
    transform: scale(0.995);
    transition: transform 0.1s;
}

#pg-login,#pg-register{padding-bottom:0;background:#ffffff !important;min-height:100vh}
.login-bg{display:none}
.login-body{padding:0 1.75rem;padding-top:3rem;display:flex;flex-direction:column;align-items:center}
.login-logo{width:6rem;height:6rem;border-radius:1.25rem;background:transparent;display:flex;align-items:center;justify-content:center}
.login-logo svg{width:2.625rem;height:2.625rem}
.login-logo img{width:100%;height:100%;object-fit:contain}
.login-title{margin-top:1rem;font-size:1.3125rem;font-weight:600;color:#1e293b}
.login-form{width:100%;margin-top:2.25rem}
.field-label{display:block;font-size:0.875rem;font-weight:500;margin-bottom:0.375rem;margin-top:1.125rem;color:#475569}
.field-input{width:100%;height:3rem;background:#f8fafc;border:1.5px solid rgba(0,0,0,.12);border-radius:var(--r);padding:0 0.875rem;font-size:0.9375rem;box-sizing:border-box;color:#1e293b;transition:border-color .2s,box-shadow .2s}
.field-input::placeholder{color:#94a3b8}
.field-input:focus{border-color:var(--c1);box-shadow:0 0 0 3px var(--c1-10);outline:none;background:#fff}
.forgot-row{text-align:right;margin-top:0.5rem;font-size:0.8125rem}
.forgot-row a{color:#475569}
.btn-login{width:100%;height:3rem;border-radius:var(--rf);background:linear-gradient(135deg,var(--c1),#8b5cf6);color:#fff;font-size:1rem;font-weight:600;margin-top:1.875rem;box-shadow:0 0.25rem 1rem rgba(59,130,246,.3);transition:transform .15s,box-shadow .15s}
.btn-login:active{transform:scale(.98);box-shadow:0 0.125rem 0.5rem var(--c1-20)}
.reg-row{text-align:center;margin-top:1rem;font-size:0.875rem;color:#475569}
.reg-row a{font-weight:600;color:var(--c1)}

/* ========== 注册页 ========== */
.reg-body{padding-bottom:40px}
.code-row{display:flex;gap:10px;align-items:center}
.code-row .code-inp{flex:1}
.code-btn{flex-shrink:0;height:3rem;padding:0 1rem;border:none;border-radius:var(--rf);background:var(--cbg);color:var(--c1);font-size:0.8125rem;font-weight:600;cursor:pointer;white-space:nowrap}
.code-btn:disabled{color:#94a3b8;cursor:not-allowed;background:rgba(0,0,0,.04)}
.captcha-row{display:flex;gap:8px;align-items:center}
.captcha-row .captcha-inp{flex:1;min-width:0}
.captcha-box{position:relative;width:96px;height:40px;border-radius:8px;background:linear-gradient(135deg,#f8fafc,#e2e8f0);cursor:pointer;overflow:hidden;flex-shrink:0;border:1px solid rgba(0,0,0,.12)}
.captcha-refresh{flex-shrink:0;width:36px;height:40px;border:1px solid rgba(0,0,0,.12);border-radius:8px;background:#fff;color:var(--c1);font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .3s}
.captcha-refresh:active{transform:rotate(180deg)}
.agree-row{display:flex;align-items:center;gap:6px;margin-top:18px;font-size:13px;color:#475569}
.agree-row a{color:var(--c1);font-weight:500}
.agree-check{width:18px;height:18px;border-radius:50%;border:2px solid rgba(0,0,0,.25);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:all .2s}
.agree-check.on{background:var(--c1);border-color:var(--c1)}
.agree-check.on::after{content:'✓';color:#fff;font-size:11px}

/* ========== 底部 Tab ========== */
.tab-bar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:33.75rem;height:calc(3.5rem + var(--safe-b));padding-bottom:var(--safe-b);background:var(--tab-bg);display:flex;justify-content:space-around;align-items:center;border-top:1px solid var(--tab-bd);z-index:100;box-shadow:var(--tab-shadow)}
.tb{display:flex;flex-direction:column;align-items:center;gap:0.125rem;color:#4a5568;font-size:0.6875rem;padding:0.375rem 0;transition:color .2s}
.tb.on{color:var(--c1)}
.tb svg{display:block}

/* ========== 首页 ========== */
.home-top{background:linear-gradient(to bottom,var(--home-top-a),var(--bg));padding:0 1rem 0.5rem;border-radius:0}
.banner-carousel{position:relative;border-radius:var(--r);overflow:hidden;margin-top:0.75rem}
.banner-track{display:flex;transition:transform .5s ease}
.banner{min-width:100%;border-radius:var(--r);padding:1.25rem;color:#fff;position:relative;overflow:hidden;box-sizing:border-box;box-shadow:0 0.25rem 1rem rgba(0,0,0,.3)}
.banner::before{content:'';position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,rgba(255,255,255,0) 70%);transform:rotate(30deg)}
.banner::after{display:none}
.banner-1{background:linear-gradient(135deg,#1e3a5f,#2563eb)}
.banner-2{background:linear-gradient(135deg,#1a365d,#3b82f6)}
.banner-3{background:linear-gradient(135deg,#4c1d95,#7c3aed)}
.banner-t1{font-size:1.125rem;font-weight:600;line-height:1.4;position:relative;text-shadow:0 1px 2px rgba(0,0,0,.2)}
.banner-t2{font-size:1.125rem;font-weight:600;line-height:1.4;position:relative;text-shadow:0 1px 2px rgba(0,0,0,.2)}
.banner-sub{font-size:0.875rem;margin-top:0.5rem;opacity:.9;position:relative}
.banner-dots{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);display:flex;gap:6px}
.b-dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.4);transition:all .3s}
.b-dot.active{width:18px;border-radius:3px;background:#fff}

/* 公告栏 */
.notice-bar{display:flex;align-items:center;gap:0.5rem;background:var(--card);border:1px solid var(--bd);border-radius:0.5rem;padding:0.75rem 1rem;margin:0.75rem 1rem;box-shadow:var(--sh);overflow:hidden}
.nb-icon{font-size:1rem;flex-shrink:0}
.nb-marquee{flex:1;overflow:hidden;position:relative;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.nb-scroll{display:inline-block;white-space:nowrap;font-size:0.8125rem;color:var(--c2);font-weight:500;animation:nbScroll 16s linear infinite;padding-left:100%}
.nb-scroll:hover{animation-play-state:paused}
@keyframes nbScroll{0%{transform:translateX(0)}100%{transform:translateX(-100%)}}
.nb-arrow{color:var(--c1);flex-shrink:0;font-weight:bold}

/* 实时行情条 */
.ticker-bar{display:flex;gap:8px;padding:6px 16px;overflow-x:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x}
.ticker-bar::-webkit-scrollbar{display:none}
.ticker-bar:empty{display:none}
.tk-item{flex-shrink:0;background:var(--card);border-radius:8px;padding:10px 14px;min-width:105px;box-shadow:var(--sh);border:1px solid var(--bd)}
.tk-sym{font-size:11px;font-weight:600;color:var(--t1)}
.tk-price{font-size:15px;font-weight:700;margin-top:2px}
.tk-chg{font-size:11px;margin-top:1px}
.tk-price.up,.tk-chg.up{color:var(--grn)}
.tk-price.down,.tk-chg.down{color:var(--red)}

/* 策略页实时价格 */
.sh-live{display:flex;gap:8px;margin-top:8px;margin-bottom:4px;overflow-x:auto;padding-bottom:2px;-webkit-overflow-scrolling:touch;touch-action:pan-x;position:relative;z-index:1}
.sh-live::-webkit-scrollbar{display:none}
.sh-live:empty{display:none}
.lp-item{flex-shrink:0;background:rgba(255,255,255,.12);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.15);border-radius:10px;padding:8px 12px;min-width:90px}
.lp-sym{font-size:10px;color:rgba(255,255,255,.65)}
.lp-val{font-size:14px;font-weight:700;color:#fff;margin-top:1px}
.lp-chg{font-size:10px}
.lp-chg.up{color:var(--mid)}
.lp-chg.down{color:#fca5a5}

/* 功能入口 8 宫格 */
.grid-features{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem 0;padding:0.5rem 1rem 0}
.gf-item{display:flex;flex-direction:column;align-items:center;gap:0.5rem;padding:0.5rem 0;cursor:pointer}
.gf-icon{width:3.5rem;height:3.5rem;border-radius:1rem;display:flex;align-items:center;justify-content:center;font-size:1.5rem;border:1px solid var(--bd);box-shadow:0 0.125rem 0.5rem rgba(0,0,0,.2);transition:transform .15s,box-shadow .15s}
.gf-icon:active{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.3)}
.gf-icon.pur{background:linear-gradient(135deg,rgba(59,130,246,.25),rgba(59,130,246,.12));color:var(--c1)}
.gf-icon.ora{background:linear-gradient(135deg,rgba(245,158,11,.25),rgba(245,158,11,.12));color:#f59e0b}
.gf-icon.grn{background:linear-gradient(135deg,rgba(16,185,129,.25),rgba(16,185,129,.12));color:#10b981}
.gf-icon.blu{background:linear-gradient(135deg,rgba(99,102,241,.25),rgba(99,102,241,.12));color:#6366f1}
[data-mode="light"] .gf-icon.pur{background:linear-gradient(135deg,rgba(59,130,246,.15),rgba(59,130,246,.05))}
[data-mode="light"] .gf-icon.ora{background:linear-gradient(135deg,rgba(245,158,11,.15),rgba(245,158,11,.05))}
[data-mode="light"] .gf-icon.grn{background:linear-gradient(135deg,rgba(16,185,129,.15),rgba(16,185,129,.05))}
[data-mode="light"] .gf-icon.blu{background:linear-gradient(135deg,rgba(99,102,241,.15),rgba(99,102,241,.05))}
.gf-name{font-size:0.75rem;color:var(--t2);font-weight:400;text-align:center}

/* 小节标题 */
.sec-head{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1rem 0.625rem}
.sec-title{font-size:1rem;font-weight:600;color:var(--t1)}
.sec-more{font-size:1.25rem;color:var(--t3);cursor:pointer}

/* 收益排行 横向滚动 */
.rank-scroll{display:flex;gap:12px;padding:0 16px;overflow-x:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x}
.rank-scroll::-webkit-scrollbar{display:none}
.rank-card{flex-shrink:0;width:120px;background:var(--card);border-radius:8px;padding:14px 10px;text-align:center;box-shadow:var(--sh);position:relative;border:1px solid var(--bd)}
.rc-badge{position:absolute;top:6px;left:6px;width:22px;height:22px;border-radius:50%;font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center;color:#fff}
.rc-badge.g1{background:linear-gradient(135deg,#FFD54F,#FFB300)}
.rc-badge.g2{background:linear-gradient(135deg,#B0BEC5,#78909C)}
.rc-badge.g3{background:linear-gradient(135deg,#FFAB91,#FF7043)}
.rc-name{font-size:11px;color:var(--t2);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rc-val{font-size:20px;font-weight:700;color:var(--c1);margin-top:2px}
.rc-lab{font-size:10px;color:var(--t3)}

/* 日志 Banner */
.log-banner{margin:16px;background:linear-gradient(135deg,#1e3a5f,#2563eb);border-radius:var(--r);padding:20px;color:#fff;display:flex;align-items:center;justify-content:space-between;cursor:pointer;box-shadow:0 4px 16px rgba(37,99,235,.2);position:relative;overflow:hidden}
.log-banner::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="none"><path d="M0,0 Q50,20 100,0 L100,100 Q50,80 0,100 Z" fill="rgba(255,255,255,0.08)"/></svg>');background-size:cover}
.lb-t{font-size:18px;font-weight:700;position:relative}
.lb-s{font-size:11px;opacity:.8;margin-top:2px;position:relative}
.lb-go{width:40px;height:40px;background:rgba(255,255,255,.2);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;position:relative}

/* 资讯 */
.news-list{padding:0 16px 16px}
.news-item{padding:0.75rem 0;border-bottom:1px solid var(--divider);font-size:0.875rem;line-height:1.6}
.news-item:last-child{border-bottom:none}
.news-meta{font-size:11px;color:var(--t3);margin-top:3px}

/* 币种列表 */
.coin-table{padding:0 16px 16px}
.ct-hd{display:flex;padding:10px 0;font-size:11px;color:var(--t3);border-bottom:1px solid var(--divider)}
.ct-hd .ct-c1{flex:1}.ct-hd .ct-c2{width:100px;text-align:right}.ct-hd .ct-c3{width:80px;text-align:right}
.ct-row{display:flex;align-items:center;padding:12px 0;border-bottom:1px solid var(--divider)}
.ct-row .ct-c1{flex:1;display:flex;align-items:center;gap:8px}
.ct-sym{font-size:13px;font-weight:600}.ct-pair{font-size:10px;color:var(--t3)}
.ct-row .ct-c2{width:100px;text-align:right;font-size:13px;font-weight:600}
.ct-row .ct-c3{width:80px;text-align:right}
.ct-chg{display:inline-block;padding:4px 10px;border-radius:4px;font-size:11px;font-weight:600;color:#fff;min-width:60px;text-align:center}
.ct-chg.up{background:var(--grn)}.ct-chg.down{background:var(--red)}

/* ========== 策略页 ========== */
.strat-head{background:linear-gradient(135deg,var(--strat-head-a),var(--strat-head-b),var(--c1));padding:1rem 1rem 1.5rem;border-radius:0 0 1rem 1rem;color:#fff;position:relative;overflow:visible}
.strat-head::before,.strat-head::after{clip-path:inset(0 0 0 0 round 0 0 16px 16px)}
.strat-head::before{content:'';position:absolute;top:-40%;right:-15%;width:300px;height:300px;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 60%);pointer-events:none}
.strat-head::after{content:'';position:absolute;bottom:-25%;left:-10%;width:250px;height:250px;background:radial-gradient(circle,rgba(255,255,255,.06) 0%,transparent 55%);pointer-events:none}
.strat-head .sh-tech-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:32px 32px;pointer-events:none;z-index:0;border-radius:0 0 16px 16px}
.strat-head .sh-tech-orb{position:absolute;width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.2);box-shadow:0 0 10px var(--c2-20);pointer-events:none;z-index:0;animation:orbFloat 4s ease-in-out infinite}
.strat-head .sh-tech-orb:nth-child(2){width:4px;height:4px;top:20%;right:15%;background:rgba(255,255,255,.15);animation-delay:-1.5s;animation-duration:5s}
.strat-head .sh-tech-orb:nth-child(3){width:5px;height:5px;top:65%;right:30%;background:rgba(255,255,255,.12);animation-delay:-3s;animation-duration:6s}
.strat-head .sh-tech-orb:nth-child(4){width:3px;height:3px;top:40%;left:20%;background:rgba(255,255,255,.1);animation-delay:-2s;animation-duration:4.5s}
.strat-head .sh-tech-line{position:absolute;top:50%;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.06) 30%,rgba(255,255,255,.04) 70%,transparent);pointer-events:none;z-index:0}
@keyframes shGlow{0%{opacity:.5;transform:scale(1)}100%{opacity:.8;transform:scale(1.05)}}
@keyframes orbFloat{0%,100%{transform:translateY(0) scale(1);opacity:.3}50%{transform:translateY(-6px) scale(1.2);opacity:.6}}
.sh-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;position:relative;z-index:10}
.sh-title{font-size:1.25rem;font-weight:700;letter-spacing:.3px}
.sh-ex{position:relative;background:rgba(255,255,255,.1);border:none;border-radius:1.25rem;padding:0.4375rem 1rem;font-size:0.8125rem;font-weight:500;color:#fff;cursor:pointer;display:flex;align-items:center;gap:0.375rem;box-shadow:0 0.125rem 0.5rem rgba(0,0,0,.2);user-select:none;z-index:100;backdrop-filter:blur(8px)}
.sh-ex:active{opacity:.85}
.ex-cur-icon{display:flex;align-items:center}
.ex-cur-name{font-weight:600}
.ex-arrow{font-size:10px;color:var(--t3);transition:transform .2s}
.ex-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:var(--modal-bg);border-radius:var(--r);box-shadow:0 4px 20px rgba(0,0,0,.4);padding:6px 0;min-width:140px;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-6px);transition:all .2s ease;z-index:200;border:1px solid var(--bd)}
.ex-dropdown.open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
.ex-opt{display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;transition:background .15s;font-size:14px;font-weight:500;color:var(--t1);white-space:nowrap}
.ex-opt:hover{background:rgba(255,255,255,.05)}
.ex-opt:active{background:rgba(255,255,255,.08)}
.ex-opt svg{flex-shrink:0}
.sh-row-inline{display:flex;align-items:baseline;gap:0.5rem;padding:0.25rem 0 0.375rem;position:relative;z-index:1}
.sh-row-inline .sh-label{font-size:0.75rem;color:rgba(255,255,255,.65)}
.sh-row-inline .sh-val{font-size:1rem;font-weight:700}
.sh-row-inline .sh-val.big{font-size:1.375rem;font-weight:700}
.sh-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.25rem 0;position:relative;z-index:1}
.sh-item{padding:0.4375rem 0}
.sh-item .sh-label{font-size:0.75rem;color:rgba(255,255,255,.65)}
.sh-item .sh-val{font-size:1rem;font-weight:700;margin-top:0.125rem}
.sh-item .sh-val.big{font-size:1.375rem;font-weight:700}

/* AI 功能卡片 */
.ai-sec-title{padding:1.125rem 1rem 0.625rem;font-size:1rem;font-weight:600;color:var(--t1)}
.ai-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.75rem;padding:0 1rem}
.ai-card{border-radius:var(--r);padding:1.125rem 1rem;min-height:6.25rem;box-shadow:var(--sh);cursor:pointer;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;transition:transform .15s,box-shadow .15s}
.ai-card:active{transform:scale(.97);box-shadow:0 2px 8px rgba(0,0,0,.06)}
.ai-card-text{position:relative;z-index:2}
.ai-card-text b{font-size:1rem;display:block;margin-bottom:0.25rem;font-weight:600}
.ai-card-sub{font-size:0.75rem;opacity:.75;display:block;line-height:1.4}
.ai-card-deco{position:absolute;right:0.5rem;bottom:0.5rem;font-size:2.625rem;opacity:.15;z-index:1;filter:blur(0.5px)}
.ai-td9{background:linear-gradient(135deg,#1a237e,#283593);color:#fff}
.ai-spot{background:linear-gradient(135deg,#422006,#78350f);color:#fbbf24}
.ai-contract{background:linear-gradient(135deg,#1e3a5f,#2563eb);color:#fff}
.ai-nebula,.ai-nova{background:linear-gradient(135deg,#2e1065,#4c1d95);color:#c4b5fd}
.ai-fmz{background:linear-gradient(135deg,#0c2d48,#1e3a5f);color:#60a5fa}
.ai-dragon{background:linear-gradient(135deg,#831843,#be185d);color:#fff;position:relative}
.ai-zlma{background:linear-gradient(135deg,#0f766e,#14b8a6);color:#fff;position:relative}
.ai-trend-res{background:linear-gradient(135deg,#311b92,#4527a0);color:#d1c4e9;position:relative}
.ai-deco-td9{opacity:.15}
.ai-deco-spot{opacity:.12}
.ai-deco-contract{opacity:.15}
.ai-deco-nova{opacity:.12}
.ai-deco-fmz{opacity:.12}
.ai-deco-dragon{opacity:.1}
.ai-card-badge{position:absolute;top:10px;right:10px;background:rgba(0,0,0,.12);color:#616161;font-size:10px;padding:2px 8px;border-radius:10px;font-weight:600;z-index:2}
.fmz-batch-chk input[type="checkbox"]{width:20px;height:20px;accent-color:var(--c1);cursor:pointer;border-radius:4px}
.ai-protect{grid-column:1/-1;background:var(--card);padding:16px;border-radius:var(--r);box-shadow:var(--sh);border:1px solid var(--bd)}
.ap-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:14px;color:var(--t2)}
.ap-row:first-child{padding-bottom:10px;border-bottom:1px solid var(--divider);margin-bottom:6px;color:var(--t1);font-weight:500}

/* ========== 广场页 ========== */
.plaza-head{background:var(--c1);padding:16px 16px 0;border-radius:0 0 var(--r) var(--r);box-shadow:0 2px 4px rgba(0,0,0,.08)}
.ph-ex{color:#fff;background:rgba(255,255,255,.2);display:inline-block;border-radius:var(--rf);padding:5px 12px;font-size:13px;margin-bottom:12px}
.ph-tabs{display:flex}
.pt{flex:1;text-align:center;padding:10px 0;font-size:13px;color:rgba(255,255,255,.6);position:relative;cursor:pointer}
.pt.active{color:#fff;font-weight:600}
.pt.active::after{content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:20px;height:3px;background:#fff;border-radius:2px}
.plaza-tag{display:inline-block;padding:6px 14px;border-radius:var(--rf);font-size:13px;cursor:pointer;background:var(--card);color:var(--t1);border:1px solid var(--bd);transition:all .2s;flex-shrink:0}
.plaza-tag.active{background:rgba(59,130,246,.12);color:var(--c1);border-color:var(--c1);font-weight:600}
.trader-list{padding:12px 16px}
.tc{background:var(--card);border-radius:8px;padding:16px;margin-bottom:12px;box-shadow:var(--sh);border:1px solid var(--bd)}
.tc-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.tc-info{display:flex;align-items:center;gap:10px}
.tc-av{width:38px;height:38px;border-radius:50%;background:var(--cbg);display:flex;align-items:center;justify-content:center;font-size:16px}
.tc-name{font-size:14px;font-weight:600;color:var(--t1)}
.tc-fol{font-size:11px;color:var(--t3)}
.tc-fol b{color:var(--c1)}
.btn-follow{background:var(--c1);color:#fff;border:none;border-radius:var(--rf);padding:7px 14px;font-size:12px;font-weight:500;transition:opacity .15s}
.btn-follow:active{opacity:.85}
.tc-stats{display:grid;grid-template-columns:repeat(3,1fr);text-align:center;margin-top:12px;padding-top:12px;border-top:1px solid var(--divider)}
.tc-stats .sl{font-size:12px;color:var(--t3);margin-bottom:4px}
.tc-stats .sv{font-size:14px;font-weight:600;margin-top:1px}
.tc-stats .sv.grn{color:var(--grn)}

/* ========== 我的页面 ========== */
.prof-head{background:linear-gradient(135deg,var(--prof-head-a),var(--prof-head-b));padding:1.5rem 1rem 1.25rem;border-radius:0 0 1.25rem 1.25rem;box-shadow:var(--sh)}
.prof-info{display:flex;align-items:center;gap:0.875rem}
.prof-avatar{width:4rem;height:4rem;border-radius:50%;background:var(--card);display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;flex-shrink:0;border:2px solid var(--c1-30);box-shadow:0 0.125rem 0.5rem rgba(0,0,0,.3)}
.prof-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}
.prof-txt{flex:1}
.prof-nickname{font-size:1.125rem;font-weight:700;color:var(--t1);cursor:pointer;display:flex;align-items:center;gap:0.375rem}
.prof-email{font-size:0.8125rem;color:var(--t2);margin-top:0.1875rem}
.prof-uid{font-size:0.8125rem;color:var(--t2);margin-top:0.0625rem}
.prof-exp{font-size:0.75rem;color:var(--t3);margin-top:0.0625rem}
.prof-edit{color:var(--t1);font-size:18px;background:none;border:none;cursor:pointer}
.flow-bar{display:flex;align-items:center;justify-content:space-between;background:var(--card);border-radius:var(--rl);margin:1rem 1rem 0;padding:1rem 0.75rem;box-shadow:var(--sh);border:1px solid var(--bd)}
.flow-step{display:flex;flex-direction:column;align-items:center;gap:0.5rem;cursor:pointer;flex:1}
.fs-icon{width:2.75rem;height:2.75rem;border-radius:var(--r);display:flex;align-items:center;justify-content:center;font-size:1.25rem;box-shadow:0 0.125rem 0.375rem rgba(0,0,0,.2)}
.fs-icon.purple{background:var(--c1);color:#fff}
.fs-icon.orange{background:var(--c1);color:#fff}
.fs-icon.green{background:var(--c1);color:#fff}
.fs-icon.blue{background:var(--c1);color:#fff}
.fs-name{font-size:0.8125rem;color:var(--t1);white-space:nowrap;font-weight:500}
.flow-arr{color:var(--c1);font-weight:700;font-size:0.875rem}
.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0.75rem;padding:1rem}
.qg-item{display:flex;flex-direction:column;align-items:center;gap:0.5rem;font-size:0.8125rem;color:var(--t1);font-weight:500;cursor:pointer}
.qg-icon{width:3rem;height:3rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.25rem;box-shadow:0 0.125rem 0.375rem rgba(0,0,0,.2)}
.qg-icon.purple{background:rgba(59,130,246,.2);color:var(--c1)}
.qg-icon.orange{background:rgba(245,158,11,.2);color:#f59e0b}
.qg-icon.green{background:rgba(16,185,129,.2);color:#10b981}
.qg-icon.blue{background:rgba(99,102,241,.2);color:#6366f1}
[data-mode="light"] .qg-icon.purple{background:rgba(59,130,246,.1)}
[data-mode="light"] .qg-icon.orange{background:rgba(245,158,11,.1)}
[data-mode="light"] .qg-icon.green{background:rgba(16,185,129,.1)}
[data-mode="light"] .qg-icon.blue{background:rgba(99,102,241,.1)}
.menu-card{background:var(--card);border-radius:var(--rl);margin:0 1rem;box-shadow:var(--sh);overflow:hidden;border:1px solid var(--bd)}
.mi{display:flex;align-items:center;padding:0.875rem 1rem;border-bottom:1px solid var(--divider);cursor:pointer;font-size:1rem;font-weight:400;transition:background .15s}
.mi:last-child{border-bottom:none}
.mi:hover,.mi:active{background:rgba(255,255,255,.03)}
.mi-i{width:1.75rem;height:1.75rem;margin-right:0.75rem;text-align:center;font-size:1rem;display:inline-flex;align-items:center;justify-content:center;border-radius:0.375rem;background:var(--cbg);flex-shrink:0;color:var(--c1)}
.mi-a{margin-left:auto;color:var(--t3);font-size:0.875rem}

/* ========== 子页面 / 策略详情 ========== */
.sub-header{display:flex;align-items:center;gap:0.5rem;padding:0.625rem 0.875rem;background:var(--sub-header-bg);border-bottom:1px solid var(--divider);position:sticky;top:0;z-index:100;-webkit-backface-visibility:hidden;backface-visibility:hidden}
.back{width:3rem;height:3rem;min-width:3rem;display:flex;align-items:center;justify-content:center;font-size:1.75rem;font-weight:700;background:none;color:var(--t1);border:none;border-radius:0.875rem;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;padding:0;margin:-0.125rem 0 -0.125rem -0.125rem;position:relative;z-index:101;pointer-events:auto}.back::after{content:'';position:absolute;inset:-0.625rem;border-radius:0.875rem}
.sub-header span{font-size:1rem;font-weight:600}
.sub-body,.detail-body{padding:1rem;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.btn-save{position:fixed;bottom:4.6875rem;left:50%;transform:translateX(-50%);width:calc(100% - 2rem);max-width:25.125rem;height:3rem;border-radius:1.5rem;background:linear-gradient(135deg,var(--c1),var(--c2));color:#fff;font-size:1rem;font-weight:600;box-shadow:0 0.25rem 1rem var(--c1-20);z-index:50;border:none;letter-spacing:.3px}

/* 策略预设选择 */
.preset-sec{background:var(--cbg);border-radius:var(--r);padding:14px!important;margin-bottom:4px}
.preset-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.preset-tag{padding:0.375rem 0.875rem;border-radius:var(--rf);font-size:0.8125rem;background:var(--input-bg);color:var(--t2);cursor:pointer;border:1.5px solid transparent;transition:all .15s}
.preset-tag.on{background:var(--c1);color:#fff;border-color:var(--c1)}
.preset-tag:not(.on):hover{border-color:var(--c2)}

/* 币种选择器 */
.sym-picker{cursor:pointer}
.sym-pick-val{color:var(--t2);display:flex;align-items:center;gap:4px;cursor:pointer}
.sym-arrow{font-size:16px;color:var(--t3)}

/* 选择币种全屏页面 */
#pg-symbol{padding-bottom:80px}
#pg-symbol>.sub-header{background:linear-gradient(135deg,var(--c1),var(--c2)) !important;border-bottom:none !important}
#pg-symbol>.sub-header .back,#pg-symbol>.sub-header span{color:#fff !important}
.sym-search-bar{margin:10px 16px;display:flex;align-items:center;background:var(--input-bg);border-radius:var(--rf);padding:0 14px;height:42px}
.sym-search-icon{font-size:16px;margin-right:8px;color:var(--t3)}
.sym-search-inp{flex:1;border:none;background:none;font-size:14px;outline:none}
.sym-table-hd{display:flex;padding:8px 16px;font-size:12px;color:var(--t3);border-bottom:1px solid var(--divider)}
.sth-c1{flex:1}.sth-c2{width:100px;text-align:center}.sth-c3{width:70px;text-align:center}
.sym-table-body{overflow-y:auto;max-height:calc(100vh - 230px)}
.sym-row{display:flex;align-items:center;padding:14px 16px;border-bottom:1px solid var(--divider);cursor:pointer;transition:background .12s}
.sym-row:active{background:var(--cbg)}
.sym-row.selected{background:var(--cbg)}
.sym-check{width:20px;height:20px;border-radius:4px;border:2px solid var(--bd);margin-right:12px;flex-shrink:0;position:relative;transition:all .15s}
.sym-row.selected .sym-check{background:var(--c1);border-color:var(--c1)}
.sym-row.selected .sym-check::after{content:'✓';position:absolute;top:-1px;left:2px;color:#fff;font-size:14px;font-weight:700}
.sym-row .sr-name{flex:1;font-size:14px;font-weight:500}
.sym-row .sr-amount{width:100px;text-align:center;font-size:14px;color:var(--t1)}
.sym-row .sr-indicator{width:70px;text-align:center;font-size:13px;color:var(--t2)}
.sym-confirm-btn{position:fixed;bottom:1rem;left:50%;transform:translateX(-50%);width:calc(100% - 2rem);max-width:25.125rem;height:3rem;border-radius:var(--rf);background:var(--c1);color:#fff;font-size:1rem;font-weight:600;box-shadow:0 0.25rem 1rem var(--c1-20);z-index:50;border:none;cursor:pointer}

/* 设置行 */
.s-sec{padding:0.75rem 0;border-bottom:1px solid var(--divider)}
.s-sec-t{font-size:0.9375rem;font-weight:600;color:var(--c3);margin-bottom:0.5rem;padding:0.25rem 0}
.s-row{display:flex;align-items:flex-start;justify-content:space-between;padding:0.5rem 0;min-height:2.375rem;font-size:0.875rem;gap:0.5rem}
.s-row .label{color:var(--t1);flex-shrink:0;padding-top:0.25rem;min-width:5.625rem}
.s-row .val{display:flex;align-items:center;gap:0.375rem;color:var(--t2);flex-wrap:wrap;justify-content:flex-end}

/* 开关 */
.sw{width:2.75rem;height:1.5rem;border-radius:0.75rem;background:rgba(255,255,255,.15);position:relative;cursor:pointer;transition:background .2s;flex-shrink:0}
.sw::after{content:'';position:absolute;top:0.125rem;left:0.125rem;width:1.25rem;height:1.25rem;border-radius:50%;background:#fff;transition:left .2s;box-shadow:0 1px 3px rgba(0,0,0,.15)}
.sw.on{background:var(--c1)}
.sw.on::after{left:1.375rem}

/* 间隔按钮 */
.itv{display:flex;flex-wrap:wrap;gap:0.25rem}
.itv span{padding:0.25rem 0.5rem;border-radius:0.375rem;font-size:0.75rem;background:rgba(255,255,255,.06);color:var(--t2);cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}
.itv span:hover{background:rgba(255,255,255,.1)}
.itv span.on{background:var(--c1);color:#fff}
.s-row .itv-scroll-wrap{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x;min-width:0;flex:1 1 0;max-width:65vw;padding-bottom:2px}
.itv-scroll-wrap .itv{flex-wrap:nowrap;width:max-content}

/* 单选 */
.rg{display:flex;gap:0.625rem}
.ri{display:flex;align-items:center;gap:0.25rem;cursor:pointer;font-size:0.8125rem;color:var(--t2)}
.rd{width:1rem;height:1rem;border-radius:50%;border:2px solid var(--rd-bd,rgba(255,255,255,.2));position:relative}
.ri.on .rd{border-color:var(--c1)}
.ri.on .rd::after{content:'';position:absolute;top:3px;left:3px;width:6px;height:6px;border-radius:50%;background:var(--c1)}

/* 数字输入 */
.ninp{width:4.25rem;height:1.875rem;border:1px solid var(--input-bd);border-radius:0.375rem;text-align:center;font-size:0.875rem;background:var(--input-bg);color:var(--t1)}
.ninp:focus{border-color:var(--c1)}

/* ========== 子页面内容 ========== */
.sp-card{background:var(--card);border-radius:var(--rl);padding:1.125rem;box-shadow:var(--sh);margin-bottom:0.625rem;border:1px solid var(--bd)}
.sp-big{font-size:1.75rem;font-weight:700;color:var(--c1)}
.sp-unit{font-size:0.8125rem;font-weight:400;color:var(--t2)}
.sp-title{font-size:0.8125rem;color:var(--t2);margin-bottom:0.375rem}
.sp-empty{text-align:center;padding:2.5rem 0;color:var(--t3);font-size:0.8125rem}
.sp-row{display:flex;justify-content:space-between;align-items:center;padding:0.5625rem 0;border-bottom:1px solid var(--divider);font-size:0.8125rem}
.sp-row:last-child{border-bottom:none}
.sp-btn{width:100%;height:2.75rem;border-radius:var(--rf);background:var(--c1);color:#fff;font-size:0.875rem;font-weight:600;border:none;margin-top:0.625rem;cursor:pointer;transition:opacity .15s}
.sp-btn:active{opacity:.85}
.sp-btn.danger{background:transparent;color:var(--red);border:1px solid var(--red)}
.sp-li{padding:12px;background:var(--card);border-radius:var(--r);margin-bottom:8px;box-shadow:var(--sh);border:1px solid var(--bd)}
.sp-steps .step{display:flex;gap:10px;padding:8px 0}
.step-n{width:28px;height:28px;border-radius:50%;background:var(--c1);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}
.step-t{font-size:13px;padding-top:4px;line-height:1.5}
.lang-item{display:flex;align-items:center;gap:10px;padding:12px;background:var(--card);border-radius:var(--r);margin-bottom:6px;box-shadow:var(--sh);cursor:pointer;font-size:14px;border:1px solid var(--bd)}
.lang-item.on{border:2px solid var(--c1)}
.lang-item .ck{margin-left:auto;color:var(--c1);font-weight:700}
.theme-item{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--card);border-radius:var(--r);margin-bottom:8px;box-shadow:var(--sh);cursor:pointer;font-size:14px;border:2px solid var(--bd);transition:border-color .2s,box-shadow .2s}
.theme-item.on{border-color:var(--c1);box-shadow:0 2px 12px var(--c1-15)}
.theme-dot{width:32px;height:32px;border-radius:50%;flex-shrink:0;box-shadow:inset 0 -3px 6px rgba(0,0,0,.1)}
.theme-info{flex:1;display:flex;flex-direction:column;gap:2px}
.theme-name{font-weight:600;color:var(--t1);font-size:15px}
.theme-desc{font-size:12px;color:var(--t3)}
.theme-item .ck{margin-left:auto;color:var(--c1);font-weight:700;font-size:18px}
.faq-item{background:var(--card);border-radius:var(--r);margin-bottom:6px;box-shadow:var(--sh);overflow:hidden}
.faq-q{padding:12px;font-size:13px;font-weight:500;cursor:pointer;display:flex;justify-content:space-between}
.faq-a{max-height:0;overflow:hidden;padding:0 12px;font-size:12px;color:var(--t2);line-height:1.6;transition:max-height .3s,padding .3s}
.faq-item.open .faq-a{max-height:200px;padding:0 12px 12px}

/* ========== 弹窗 ========== */
.modal-mask{position:fixed;inset:0;background:rgba(0,0,0,.2);display:flex;align-items:center;justify-content:center;z-index:9999;padding:1.25rem;backdrop-filter:blur(2px)}
.modal-box{background:var(--modal-bg);border-radius:var(--rl);padding:1.5rem;width:100%;max-width:20rem;border:1px solid var(--bd)}
.modal-t{font-size:1rem;font-weight:600;text-align:center;margin-bottom:0.875rem}
.modal-desc{font-size:0.8125rem;color:var(--t2);text-align:center;margin-bottom:1rem}
.modal-inp{width:100%;height:2.625rem;border:1.5px solid var(--input-bd);border-radius:var(--r);padding:0 0.75rem;font-size:0.875rem;margin-bottom:0.875rem;background:var(--input-bg);color:var(--t1)}
.modal-inp:focus{border-color:var(--c1)}
.modal-btns{display:flex;gap:10px}
.mbtn{flex:1;height:40px;border-radius:var(--rf);font-size:14px}
.mbtn.cancel{background:rgba(255,255,255,.08);color:var(--t2);border:none}
.mbtn.ok{background:var(--c1);color:#fff;border:none;font-weight:600}

/* ========== Toast ========== */
.toast{position:fixed;top:1.875rem;left:50%;transform:translateX(-50%) translateY(-0.625rem);background:var(--toast-bg);color:var(--c1);padding:0.625rem 1.25rem;border-radius:1.5rem;font-size:0.875rem;font-weight:600;z-index:99999;opacity:0;transition:opacity .3s,transform .3s;pointer-events:none;max-width:85%;text-align:center;box-shadow:0 0.5rem 1.5rem rgba(0,0,0,0.15);border:1px solid var(--bd);display:flex;align-items:center;gap:0.5rem}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast.success { background: rgba(16,185,129,.12); color: #10b981; border-color: rgba(16,185,129,.2); }
.toast.error { background: rgba(239,68,68,.12); color: #ef4444; border-color: rgba(239,68,68,.2); }
.toast.warn { background: rgba(245,158,11,.12); color: #f59e0b; border-color: rgba(245,158,11,.2); }
.toast.info { background: var(--toast-bg); color: var(--t1); border-color: var(--bd); }
.toast-icon { font-size: 16px; }


/* ========== API管理页面 ========== */
.api-manage-body{padding:16px;padding-bottom:80px}
.api-card{background:var(--card);border-radius:var(--rl);padding:18px;margin-bottom:14px;box-shadow:var(--sh);border:1px solid var(--bd)}
.api-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.api-card-left{display:flex;align-items:center;gap:10px}
.api-card-logo{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;color:#fff;flex-shrink:0}
.api-card-logo-icon{width:42px;height:42px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.api-card-logo.okx{background:#000}
.api-card-logo.binance{background:#f3ba2f}
.api-card-logo.huobi{background:#1c6cfc}
.api-card-logo.gate{background:#2ea87e}
.api-card-name{font-size:16px;font-weight:600;color:var(--t1)}
.api-card-tags{display:flex;align-items:center;gap:6px}
.api-tag{font-size:11px;padding:2px 8px;border-radius:var(--rf);border:1px solid var(--bd)}
.api-tag.bound{background:var(--grn);color:#fff;border-color:var(--grn)}
.api-tag.unbound{background:rgba(255,255,255,.05);color:var(--t3);border-color:var(--bd)}
.api-card-right{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--t2)}
.api-card-right .user-type{display:flex;align-items:center;gap:2px}
.api-card-right .user-type .icon-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;font-size:10px}
.api-card-right .user-type .icon-badge.pro{background:var(--c1);color:#fff}
.api-card-right .user-type .icon-badge.normal{background:var(--c1);color:#fff}
.api-reg-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;font-size:12px;color:var(--t2)}
.api-reg-row .reg-link{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:8px}
.api-reg-row .copy-btn{color:var(--c1);font-weight:600;cursor:pointer;white-space:nowrap;font-size:12px}
.api-bind-btn{width:100%;height:2.75rem;border-radius:var(--rf);background:var(--c1);color:#fff;font-size:1rem;font-weight:500;border:none;cursor:pointer;transition:opacity .15s}
.api-bind-btn:active{opacity:.85}
.api-manage-footer{text-align:center;padding:20px 16px 30px;font-size:13px;color:var(--t2)}
.api-manage-footer a{color:var(--c1);font-weight:600;text-decoration:none}

/* ========== 绑定API页面 ========== */
.api-bind-body{padding:20px 16px}
.bind-field{margin-bottom:24px}
.bind-field-label{font-size:14px;font-weight:600;color:var(--t1);margin-bottom:10px}
.bind-field-input{width:100%;height:3.125rem;background:var(--input-bg);border:1.5px solid var(--input-bd);border-radius:var(--r);padding:0 1rem;font-size:0.9375rem;color:var(--t1);box-sizing:border-box;transition:border-color .2s,box-shadow .2s}
.bind-field-input::placeholder{color:var(--t3)}
.bind-field-input:focus{border-color:var(--c1);box-shadow:0 0 0 3px var(--c1-10);outline:none}
.bind-submit-btn{width:100%;height:3.125rem;border-radius:var(--rf);background:var(--c1);color:#fff;font-size:1rem;font-weight:600;border:none;cursor:pointer;box-shadow:0 0.25rem 1rem var(--c1-20);margin-top:1rem;margin-bottom:1.5rem}
.bind-submit-btn:active{opacity:.85}
.bind-promo{font-size:13px;color:var(--t1);line-height:1.6;margin-bottom:16px}
.bind-promo b{color:var(--red)}
.bind-link-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.bind-link-row a{color:var(--c1);font-size:13px;word-break:break-all;text-decoration:underline;flex:1;margin-right:10px}
.bind-link-row .copy-btn{color:var(--c1);font-weight:600;cursor:pointer;white-space:nowrap;font-size:13px}

/* ========== 策略列表页 ========== */
.sl-header{display:flex;align-items:center;gap:0.625rem;padding:0.75rem 1rem;background:var(--c1);position:sticky;top:0;z-index:20;box-shadow:0 0.125rem 0.25rem rgba(0,0,0,.08)}
.sl-header .back{background:none;border:none;color:#fff;font-size:1.75rem;font-weight:700;cursor:pointer;padding:0 0.625rem;min-width:3rem;min-height:3rem;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent;touch-action:manipulation;position:relative}.sl-header .back::after{content:'';position:absolute;inset:-0.75rem;border-radius:0.875rem}
.sl-search{flex:1;display:flex;align-items:center;background:rgba(255,255,255,.2);border-radius:var(--rf);padding:0 12px;height:36px;color:rgba(255,255,255,.7);font-size:13px}
.sl-search input{background:none;border:none;color:#fff;flex:1;margin-left:6px;font-size:13px;outline:none}
.sl-search input::placeholder{color:rgba(255,255,255,.6)}
.sl-ex-sel.sh-ex{background:rgba(255,255,255,.2);color:#fff;box-shadow:none}
.sl-ex-sel.sh-ex .ex-cur-name{color:#fff}
.sl-ex-sel.sh-ex .ex-arrow{color:rgba(255,255,255,.7)}
.sl-ex-sel .ex-dropdown{background:var(--modal-bg);border:1px solid var(--bd)}
.sl-ex-sel .ex-opt{color:var(--t1)}

.sl-summary{display:flex;gap:8px;padding:12px 16px;background:var(--cbg)}
.sl-sum-item{flex:1;background:var(--card);border-radius:var(--rf);padding:10px 8px;text-align:center;font-size:13px;color:var(--t1);border:1.5px solid var(--c1);cursor:pointer;transition:all .15s;user-select:none;font-weight:500}
.sl-sum-item b{font-size:15px;font-weight:700;margin-left:2px}
.sl-sum-item.active{background:var(--c1);color:#fff;border-color:var(--c1)}
.sl-sum-item.active b{color:#fff}

.sl-tabs{display:flex;border-bottom:1px solid var(--divider);padding:0 1rem;background:var(--card);position:sticky;top:3.75rem;z-index:19}
.slt{flex:1;text-align:center;padding:0.75rem 0;font-size:0.8125rem;color:var(--t2);cursor:pointer;position:relative;transition:color .2s}
.slt.active{color:var(--c1);font-weight:600}
.slt.active::after{content:'';position:absolute;bottom:0;left:20%;right:20%;height:2px;background:var(--c1);border-radius:1px}

.sl-list{padding:10px 16px;padding-bottom:80px;min-height:200px}

/* 策略卡片 */
.strat-card{background:var(--card);border-radius:8px;padding:12px 14px;margin-bottom:8px;box-shadow:var(--sh);border:1px solid var(--bd);position:relative}
.sc-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.sc-time{font-size:11px;color:var(--t3)}
.sc-status{font-size:11px;padding:3px 10px;border-radius:4px}
.sc-status.running{background:var(--grn);color:#fff}
.sc-status.stopped{background:rgba(255,255,255,.06);color:var(--t3)}
.sc-symbol{font-size:16px;font-weight:500;color:var(--t1);margin-bottom:8px;display:flex;align-items:center;gap:6px}
.sc-tags{display:flex;gap:4px;flex-wrap:wrap}
.sc-tag{font-size:10px;padding:2px 6px;border-radius:4px;font-weight:400}
.sc-tag.loop{background:rgba(124,58,237,.15);color:#a78bfa}
.sc-tag.lever{background:rgba(239,68,68,.15);color:#fca5a5}
.sc-tag.dir-long{background:rgba(16,185,129,.15);color:#6ee7b7}
.sc-tag.dir-short{background:rgba(239,68,68,.15);color:#fca5a5}
.sc-tag.trend{background:rgba(16,185,129,.15);color:#6ee7b7}
.sc-body{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:10px}
.sc-field{font-size:12px}
.sc-field .fl{color:var(--t3);margin-bottom:2px}
.sc-field .fv{font-weight:400;color:var(--t1)}
.sc-field .fv.neg{color:var(--red)}
.sc-field .fv.pos{color:var(--grn)}
.sc-actions{display:flex;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--divider)}
.sc-btn{flex:1;height:36px;border-radius:var(--rf);font-size:13px;font-weight:500;border:none;cursor:pointer;transition:all .15s}
.sc-btn-start{background:var(--c1);color:#fff;box-shadow:0 2px 6px var(--c1-15)}
.sc-btn-start:active{opacity:.85;transform:scale(.98)}
.sc-btn-stop{background:linear-gradient(135deg,#fca5a5,#ef4444);color:#fff;box-shadow:0 2px 6px rgba(239,68,68,.15)}
.sc-btn-stop:active{opacity:.85;transform:scale(.98)}
.sc-btn-detail{background:var(--cbg);color:var(--c1);border:1px solid var(--bd)}
.sc-btn-detail:active{opacity:.85}
.sc-btn-del{background:transparent;color:var(--red);border:1px solid rgba(239,68,68,.2);flex:0 0 auto;width:56px}
.sc-btn-del:active{opacity:.85}

/* 底部操作栏 */
.sl-bottom-bar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:33.75rem;display:flex;gap:0.625rem;padding:0.75rem 1rem;background:var(--card);border-top:1px solid var(--divider);z-index:30}
.sl-btn-batch{flex:0 0 auto;height:2.75rem;padding:0 1.25rem;border-radius:var(--rf);background:var(--card);color:var(--t1);font-size:0.875rem;border:1px solid var(--bd);cursor:pointer}
.sl-btn-create{flex:1;height:2.75rem;border-radius:var(--rf);background:var(--c1);color:#fff;font-size:0.9375rem;font-weight:500;border:none;cursor:pointer}
.sl-btn-create:active{opacity:.85}

.sl-empty{text-align:center;padding:60px 20px;color:var(--t3);font-size:14px}
.sl-spinner{width:28px;height:28px;border:3px solid rgba(255,255,255,.1);border-top-color:var(--c1);border-radius:50%;animation:sl-spin .7s linear infinite;margin:0 auto 10px}
@keyframes sl-spin{to{transform:rotate(360deg)}}

/* ========== 策略详情页 ========== */
.sd-body{padding:0 0 100px;background:var(--bg)}

/* 持仓卡片 */
.sd-pos-card{margin:1rem;border-radius:var(--r);background:linear-gradient(135deg,var(--c1),var(--c2));padding:1.125rem;color:#fff;box-shadow:0 0.25rem 1rem var(--c1-15)}
.sd-pos-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.sd-pos-symbol{display:flex;align-items:center;gap:8px}
.sd-coin-icon{font-size:20px;width:32px;height:32px;background:rgba(255,255,255,.2);border-radius:8px;display:flex;align-items:center;justify-content:center}
.sd-coin-name{font-size:1rem;font-weight:700}
.sd-coin-tag{font-size:11px;background:rgba(255,255,255,.25);padding:3px 10px;border-radius:4px}
.sd-pos-actions{display:flex;gap:8px}
.sd-icon-btn{width:32px;height:32px;border-radius:8px;background:rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:15px}
.sd-icon-btn:active{background:rgba(255,255,255,.3)}

.sd-pos-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px 16px}
.sd-pg-item{}
.sd-pg-label{font-size:11px;color:rgba(255,255,255,.7);margin-bottom:3px}
.sd-pg-val{font-size:17px;font-weight:700}
.sd-pg-val.neg{color:#fca5a5}
.sd-pg-val.pos{color:#a7f3d0}

/* 策略相关 section */
.sd-section{margin:1rem;background:var(--card);border-radius:var(--r);padding:1rem;box-shadow:var(--sh);border:1px solid var(--bd)}
.sd-sec-head{display:flex;align-items:center;gap:6px;margin-bottom:14px}
.sd-sec-icon{font-size:16px}
.sd-sec-title{font-size:15px;font-weight:600;color:var(--t1)}
.sd-sec-dir{margin-left:auto;font-size:13px;font-weight:600;color:var(--c1);background:var(--cbg);padding:3px 12px;border-radius:4px}

.sd-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px}
.sd-info-item{display:flex;justify-content:space-between;align-items:center}
.sd-info-label{font-size:13px;color:var(--t2)}
.sd-info-val{font-size:13px;font-weight:600;color:var(--t1)}

/* 策略操作 */
.sd-op-grid{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:12px;text-align:center}
.sd-op-item{cursor:pointer;transition:transform .15s}
.sd-op-item:active{transform:scale(.92)}
.sd-op-icon{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 6px;font-size:20px}
.sd-op-icon.loop{background:rgba(124,58,237,.15);color:#a78bfa}
.sd-op-icon.sell{background:rgba(37,99,235,.15);color:#60a5fa}
.sd-op-icon.cover{background:rgba(16,185,129,.15);color:#6ee7b7}
.sd-op-icon.toggle{background:rgba(245,158,11,.15);color:#fbbf24}
.sd-op-name{font-size:12px;color:var(--t2)}

/* 底部操作栏 */
.sd-bottom-bar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:33.75rem;display:flex;gap:0.625rem;padding:0.75rem 1rem;background:var(--card);border-top:1px solid var(--divider);z-index:30}
.sd-btn-settings{flex:0 0 7.5rem;height:2.875rem;border-radius:var(--rf);background:var(--card);color:var(--t1);font-size:0.875rem;font-weight:600;border:1px solid var(--bd);cursor:pointer}
.sd-btn-settings:active{background:rgba(255,255,255,.05)}
.sd-btn-toggle{flex:1;height:2.875rem;border-radius:var(--rf);font-size:0.9375rem;font-weight:600;border:none;cursor:pointer;color:#fff;transition:all .2s}
.sd-btn-toggle.running{background:var(--c1);box-shadow:0 4px 14px var(--c1-20)}
.sd-btn-toggle.stopped{background:linear-gradient(135deg,#fca5a5,#ef4444);box-shadow:0 4px 14px rgba(239,68,68,.15)}

/* ========== 批量操作页 ========== */
.bo-body{padding:0 0 80px;background:var(--bg)}

/* 功能按钮区 */
.bo-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:10px 0;padding:18px 16px;margin:0 16px 0;border-radius:var(--r);background:linear-gradient(135deg,var(--c1),var(--c2));color:#fff}
.bo-act-item{display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;transition:transform .15s}
.bo-act-item:active{transform:scale(.9)}
.bo-act-icon{width:44px;height:44px;border-radius:var(--r);background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-size:20px}
.bo-act-name{font-size:11px;color:rgba(255,255,255,.92);white-space:nowrap}

/* 统计栏 */
.bo-summary{display:flex;justify-content:space-around;padding:14px;margin:12px 16px 0;background:var(--card);border-radius:var(--r);box-shadow:var(--sh);border:1px solid var(--bd)}
.bo-sum-item{font-size:13px;color:var(--t2);text-align:center}
.bo-sum-item b{display:block;font-size:20px;font-weight:700;color:var(--t1);margin-top:2px}

/* Tab 栏 */
.bo-tabs{display:flex;padding:12px 16px 0;gap:0}
.bot{flex:1;text-align:center;font-size:14px;color:var(--t3);padding-bottom:10px;border-bottom:2px solid transparent;cursor:pointer;transition:all .2s}
.bot.active{color:var(--c1);font-weight:600;border-bottom-color:var(--c1)}

/* 策略列表 */
.bo-list{padding:10px 16px;min-height:200px}

/* 批量卡片 */
.bo-card{display:flex;align-items:flex-start;gap:12px;background:var(--card);border-radius:8px;padding:14px;margin-bottom:10px;box-shadow:var(--sh);border:1px solid var(--bd)}
.bo-card .bo-chk{flex-shrink:0;margin-top:4px}
.bo-card-content{flex:1;min-width:0}
.bo-card-top{display:flex;align-items:center;gap:6px;margin-bottom:8px}
.bo-card-symbol{font-size:15px;font-weight:700;color:var(--t1)}
.bo-card-tags{display:flex;gap:4px;flex-wrap:wrap}
.bo-card-tag{font-size:10px;padding:2px 6px;border-radius:4px;font-weight:600}
.bo-card-tag.loop{background:rgba(124,58,237,.15);color:#a78bfa}
.bo-card-tag.dir-long{background:rgba(16,185,129,.15);color:#6ee7b7}
.bo-card-tag.dir-short{background:rgba(239,68,68,.15);color:#fca5a5}
.bo-card-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}
.bo-card-field{font-size:12px}
.bo-card-field .bfl{color:var(--t3);margin-bottom:2px}
.bo-card-field .bfv{font-weight:600;color:var(--t1)}
.bo-card-field .bfv.neg{color:var(--red)}
.bo-card-field .bfv.pos{color:var(--grn)}

/* 勾选框 */
.bo-chk{width:20px;height:20px;border-radius:50%;border:2px solid var(--chk-bd,rgba(255,255,255,.2));display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s;flex-shrink:0;background:transparent}
.bo-chk.on{border-color:var(--c1);background:var(--c1)}
.bo-chk.on::after{content:'✓';color:#fff;font-size:12px;font-weight:700}

/* 底部操作栏 */
.bo-bottom-bar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:33.75rem;display:flex;align-items:center;gap:1rem;padding:0.75rem 1rem;background:var(--card);border-top:1px solid var(--divider);z-index:30}
.bo-check-item{display:flex;align-items:center;gap:5px;font-size:13px;color:var(--t1);cursor:pointer;white-space:nowrap}
.bo-radio{width:16px;height:16px;border-radius:50%;border:2px solid var(--rd-bd,rgba(255,255,255,.2));display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background:transparent;transition:all .15s}
.bo-radio.on{border-color:var(--c1);background:var(--c1)}
.bo-radio.on::after{content:'';width:6px;height:6px;border-radius:50%;background:#fff}
.bo-tip{margin-left:auto;font-size:11px;color:var(--c1);white-space:nowrap}

/* ========== 策略记录页 ========== */
.sr-body{padding:16px 16px 80px;min-height:100vh;background:var(--bg)}
.sr-stats-card{background:linear-gradient(135deg,var(--c1),var(--c2));border-radius:var(--r);padding:16px;margin-bottom:14px;color:#fff}
.sr-stats-title{font-size:14px;font-weight:600;margin-bottom:10px;opacity:.9}
.sr-stats-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.sr-stat-label{font-size:11px;opacity:.75;margin-bottom:2px}
.sr-stat-val{font-size:18px;font-weight:700}
.sr-tabs{display:flex;gap:0;border-bottom:1px solid var(--divider);margin-bottom:10px}
.sr-tab{flex:1;text-align:center;padding:10px 0;font-size:14px;color:var(--t3);cursor:pointer;border-bottom:2px solid transparent;transition:all .2s}
.sr-tab.active{color:var(--c1);border-bottom-color:var(--c1);font-weight:600}
.sr-list{display:flex;flex-direction:column;gap:8px}
.sr-loading,.sr-empty{text-align:center;padding:40px 0;color:var(--t3);font-size:13px}
.sr-item{display:flex;align-items:center;gap:8px;padding:12px;background:var(--card);border-radius:8px;border:1px solid var(--bd)}
.sr-item-left{display:flex;flex-direction:column;gap:3px;min-width:50px}
.sr-action{font-size:13px;font-weight:700}
.sr-symbol{font-size:11px;color:var(--t2)}
.sr-side{font-size:10px;padding:1px 4px;border-radius:3px;display:inline-block;width:fit-content}
.sr-item-mid{flex:1;font-size:12px;color:var(--t2);line-height:1.6}
.sr-item-right{text-align:right;font-size:12px;min-width:70px}
.sr-time{font-size:10px;color:var(--t3);margin-top:2px}
.sr-reason{font-size:10px;color:var(--t3);margin-top:1px;max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sr-bottom{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:33.75rem;display:flex;justify-content:space-between;align-items:center;padding:0.75rem 1rem;background:var(--card);border-top:1px solid var(--divider);z-index:30;font-size:0.8125rem;color:var(--t2)}
.sr-pnl{font-weight:700;font-size:15px}

/* ========== 止盈子页面 ========== */
.cc-header{display:flex;align-items:center;padding:14px 16px 8px;border-bottom:1px solid var(--divider)}
.cc-h-label{flex:0 0 60px;font-size:13px;color:var(--t2);font-weight:500}
.cc-h-col{flex:1;text-align:center;font-size:13px;color:var(--t2);font-weight:500}
.cc-list{padding:0 16px}
.cc-row{display:flex;align-items:center;padding:12px 0;border-bottom:1px solid var(--divider)}
.cc-row:last-child{border-bottom:none}
.cc-label{flex:0 0 3.75rem;font-size:0.875rem;color:var(--t1);font-weight:500}
.cc-inp{flex:1;display:flex;align-items:center;justify-content:center;gap:0.125rem;font-size:0.8125rem;color:var(--t1)}
.cc-inp .ninp{width:3.25rem;text-align:center;font-size:0.875rem}
.tp-sub-list{padding:0 16px}
.tp-sub-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--divider)}
.tp-sub-row:last-child{border-bottom:none}
.tp-sub-label{font-size:0.875rem;color:var(--t1);font-weight:500}
.tp-sub-inp{display:flex;align-items:center;gap:0.25rem;font-size:0.875rem;color:var(--t1)}
.tp-sub-inp .ninp{width:4.25rem;text-align:right;font-weight:600;font-size:0.9375rem}
.tp-param-row{flex-wrap:nowrap;gap:6px}
.tp-param-row .tp-sub-label{white-space:nowrap;font-size:0.8125rem}
.tp-param-row .tp-sub-inp .ninp{width:50px}
.tp-mode-row{gap:8px}
.tp-mode-sel{display:flex;align-items:center;gap:4px;padding:6px 12px;background:var(--c1);color:#fff;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}
.tp-mode-arrow{font-size:10px}
.tp-mode-dropdown{position:fixed;background:var(--modal-bg);border:1px solid var(--bd);border-radius:var(--r);box-shadow:0 4px 24px rgba(0,0,0,.2);z-index:999;padding:8px 0;min-width:140px}
.tp-mode-dropdown.hide{display:none}
.tp-mode-opt{padding:12px 20px;font-size:14px;color:var(--t1);text-align:center;cursor:pointer;transition:background .15s}
.tp-mode-opt:hover,.tp-mode-opt:active{background:rgba(255,255,255,.05)}
.tp-mode-opt:first-child{color:var(--c1);font-weight:600}
.tp-sub-footer{padding:24px 16px}
.btn-tp-confirm{width:100%;padding:14px;font-size:16px;font-weight:600;color:#fff;background:var(--c1);border:none;border-radius:var(--rf);cursor:pointer;transition:opacity .2s}
.btn-tp-confirm:active{opacity:.85}

/* ========== NovaAI 策略页 ========== */
.nova-hero{background:linear-gradient(135deg,var(--c1),var(--c3));border-radius:0 0 20px 20px;padding:28px 20px 24px;color:#fff;text-align:center;position:relative;overflow:hidden}
.nova-hero::before{content:'';position:absolute;width:200px;height:200px;background:radial-gradient(circle,var(--c2-25),transparent 70%);top:-60px;right:-40px;border-radius:50%}
.nova-hero::after{content:'';position:absolute;width:140px;height:140px;background:radial-gradient(circle,rgba(255,255,255,.06),transparent 70%);bottom:-30px;left:-20px;border-radius:50%}
.nova-icon{width:64px;height:64px;margin:0 auto 10px;background:rgba(255,255,255,.15);border-radius:18px;display:flex;align-items:center;justify-content:center;font-size:32px;backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2)}
.nova-title{font-size:20px;font-weight:700;letter-spacing:.3px}
.nova-desc{font-size:12px;opacity:.75;margin-top:4px}
.nova-badge{display:inline-flex;align-items:center;gap:5px;margin-top:12px;font-size:12px;padding:5px 16px;border-radius:20px;backdrop-filter:blur(8px)}
.nova-badge.off{background:rgba(255,255,255,.12);color:rgba(255,255,255,.8)}
.nova-badge.on{background:var(--c1-30);color:var(--soft);border:1px solid var(--c1-40)}

.nova-form{padding:1rem}
.nova-sec{background:var(--card);border-radius:var(--rl);padding:1.125rem;margin-bottom:0.875rem;box-shadow:var(--sh);border:1px solid var(--bd)}
.nova-sec-head{display:flex;align-items:center;gap:8px;margin-bottom:14px}
.nova-sec-icon{width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:16px}
.nova-sec-icon.coin{background:rgba(16,185,129,.12);color:#10b981}
.nova-sec-icon.model{background:rgba(124,58,237,.12);color:#a78bfa}
.nova-sec-icon.prompt{background:rgba(234,88,12,.12);color:#fb923c}
.nova-sec-icon.param{background:rgba(37,99,235,.12);color:#60a5fa}
.nova-sec-title{font-size:15px;font-weight:600;color:var(--t1)}
.nova-sec-sub{font-size:11px;color:var(--t3);margin-top:1px}

.nova-label{font-size:12px;font-weight:500;color:var(--t2);margin-bottom:6px;display:flex;align-items:center;gap:4px}
.nova-label .hint{font-weight:400;opacity:.6}
.nova-select,.nova-input{width:100%;height:2.75rem;padding:0 0.875rem;border:1.5px solid var(--input-bd);border-radius:var(--r);font-size:0.875rem;color:var(--t1);background:var(--input-bg);transition:all .2s;box-sizing:border-box;-webkit-appearance:none;appearance:none}
.nova-select{background:var(--input-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%239ca3af' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 14px center}
.nova-input:focus,.nova-select:focus{border-color:var(--c1);background:var(--input-bg);box-shadow:0 0 0 3px var(--c1-08);outline:none}
.nova-input::placeholder{color:var(--t3)}
.nova-textarea{width:100%;padding:12px 14px;border:1.5px solid var(--input-bd);border-radius:var(--r);font-size:13px;color:var(--t1);background:var(--input-bg);transition:all .2s;box-sizing:border-box;resize:vertical;line-height:1.7;font-family:inherit}
.nova-textarea:focus{border-color:var(--c1);background:var(--input-bg);box-shadow:0 0 0 3px var(--c1-08);outline:none}
.nova-textarea::placeholder{color:var(--t3)}
.nova-field{margin-bottom:14px}
.nova-field:last-child{margin-bottom:0}

.nova-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.nova-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}

.nova-actions{display:flex;gap:10px;padding:0 0 30px}
.nova-btn{flex:1;height:48px;border-radius:var(--rf);font-size:15px;font-weight:600;border:none;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:6px}
.nova-btn:active{transform:scale(.97);opacity:.9}
.nova-btn.save{background:var(--c1);color:#fff;box-shadow:0 4px 16px var(--c1-20)}
.nova-btn.start{background:linear-gradient(135deg,#66BB6A,#43A047);color:#fff;box-shadow:0 4px 16px rgba(67,160,71,.2)}
.nova-btn.stop{background:linear-gradient(135deg,#fca5a5,#ef4444);color:#fff;box-shadow:0 4px 16px rgba(239,68,68,.15)}
.nova-switch{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0}
.nova-switch input{opacity:0;width:0;height:0}
.nova-slider{position:absolute;cursor:pointer;inset:0;background:rgba(255,255,255,.15);border-radius:24px;transition:.3s}
.nova-slider:before{content:'';position:absolute;height:18px;width:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.3s}
.nova-switch input:checked+.nova-slider{background:var(--c1)}
.nova-switch input:checked+.nova-slider:before{transform:translateX(20px)}

.nova-tip{text-align:center;font-size:11px;color:var(--t3);padding:0 0 20px;line-height:1.6}

/* ========== NovaAI 决策详情 ========== */
.nova-ai-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.nova-ai-header-left{display:flex;align-items:center;gap:8px}
.nova-ai-icon{width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;background:linear-gradient(135deg,#6366F1,#8B5CF6);color:#fff}
.nova-ai-title{font-size:15px;font-weight:700;color:var(--t1)}
.nova-analyze-btn{padding:7px 16px;border-radius:var(--rf);font-size:12px;font-weight:600;border:none;background:var(--c1);color:#fff;cursor:pointer;transition:all .2s;white-space:nowrap}
.nova-analyze-btn:active{transform:scale(.95);opacity:.9}
.nova-analyze-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}

.nova-decision-badge{display:flex;align-items:center;gap:8px;border-radius:var(--r);padding:12px 14px;margin-bottom:12px}
.nova-decision-icon{font-size:28px}
.nova-decision-label{font-size:20px;font-weight:800;letter-spacing:1px;font-family:'SF Mono',monospace}
.nova-decision-cn{font-size:14px;font-weight:600;opacity:.8}
.nova-sentiment{margin-left:auto;font-size:11px;font-weight:600;padding:3px 10px;border-radius:var(--r);border:1px solid}

.nova-confidence-section{margin-bottom:12px}
.nova-confidence-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.nova-confidence-value{font-size:18px;font-weight:800;font-family:'SF Mono',monospace}
.nova-confidence-bar{height:8px;background:rgba(255,255,255,.1);border-radius:4px;overflow:hidden}
.nova-confidence-fill{height:100%;border-radius:4px;transition:width .6s cubic-bezier(.4,0,.2,1)}

.nova-trade-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.nova-trade-item{background:var(--bg);border-radius:8px;padding:10px 12px;text-align:center}
.nova-trade-label{font-size:11px;color:var(--t3);margin-bottom:3px}
.nova-trade-value{font-size:14px;font-weight:700;color:var(--t1);font-family:'SF Mono',monospace}

.nova-reasoning{background:rgba(16,185,129,.08);border:1px solid rgba(16,185,129,.15);border-radius:var(--r);padding:12px 14px;margin-bottom:12px}
.nova-reasoning-head{font-size:12px;font-weight:700;color:#10b981;margin-bottom:6px}
.nova-reasoning-text{font-size:13px;color:#6ee7b7;line-height:1.7}

.nova-key-levels{display:flex;gap:6px;align-items:flex-start;padding:8px 12px;background:var(--bg);border-radius:8px;margin-bottom:10px;font-size:12px}
.nova-kl-label{color:var(--t3);white-space:nowrap;font-weight:600}
.nova-kl-text{color:var(--t1);line-height:1.5}

.nova-ai-meta{display:flex;flex-wrap:wrap;gap:10px;font-size:11px;color:var(--t3);padding:4px 0}

.nova-expand-btn{cursor:pointer;font-size:16px;color:var(--t3);transition:transform .25s;flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:none;background:none}
.nova-expand-btn:active{opacity:.5}
.nova-summary-row{display:flex;align-items:baseline;gap:16px;padding:4px 0 0}
.nova-summary-field{display:flex;align-items:baseline;gap:6px}
.nova-sf-label{font-size:12px;color:var(--t3);font-weight:400}
.nova-sf-val{font-size:17px;font-weight:400;color:var(--t1);font-family:'SF Mono',SFMono-Regular,Menlo,monospace;letter-spacing:-.3px}
.nova-ai-row{display:flex;align-items:center;gap:8px;padding:8px 0 2px;cursor:pointer;border-top:1px solid var(--divider);margin-top:6px}
.nova-ai-reason{font-size:12px;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.nova-ai-reason-sub{font-size:10px;color:var(--t3);white-space:nowrap;flex-shrink:0}
.nova-summary-badge{padding:3px 8px;border-radius:4px;font-size:12px;font-weight:400;white-space:nowrap;flex-shrink:0}
.nova-card-empty{display:flex;align-items:center;justify-content:space-between;padding:12px 0;cursor:pointer;font-size:13px;color:var(--c1);font-weight:400}

.nova-detail-page{padding-bottom:20px}
.nova-detail-top{padding:20px 16px 12px;background:linear-gradient(135deg,var(--c1),var(--c3));color:#fff;border-radius:0 0 16px 16px;margin-bottom:14px}
.nova-detail-sym{display:flex;align-items:center;gap:8px}
.nova-detail-sym .sc-tag{background:rgba(255,255,255,.2)!important;color:#fff!important}

.nova-analyze-btn-full{width:100%;height:48px;border-radius:var(--rf);font-size:15px;font-weight:700;border:none;background:linear-gradient(135deg,#6366F1,#8B5CF6);color:#fff;cursor:pointer;transition:all .2s;box-shadow:0 4px 16px rgba(99,102,241,.2);display:flex;align-items:center;justify-content:center;gap:8px}
.nova-analyze-btn-full:active{transform:scale(.97);opacity:.9}
.nova-analyze-btn-full:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}

.nova-loading-spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.1);border-top-color:var(--c1);border-radius:50%;animation:novaSpin .8s linear infinite;margin:0 auto}
@keyframes novaSpin{to{transform:rotate(360deg)}}

.nova-empty-state{text-align:center;padding:24px 10px}
.nova-empty-icon{font-size:42px;margin-bottom:8px}
.nova-empty-text{font-size:15px;font-weight:600;color:var(--t1);margin-bottom:4px}
.nova-empty-hint{font-size:12px;color:var(--t3);line-height:1.6}

/* ========== 发明者策略持仓详情 ========== */
.fmz-pos-card{background:var(--card);border-radius:var(--rl);border:1px solid var(--bd);overflow:hidden;margin-bottom:14px;box-shadow:var(--sh)}
.fmz-pos-header{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--divider);background:linear-gradient(135deg,var(--c1-03),var(--c3-03))}
.fmz-pos-side{padding:4px 14px;border-radius:4px;font-size:13px;font-weight:700;color:#fff}
.fmz-pos-symbol{font-size:17px;font-weight:700;color:var(--t1);flex:1}
.fmz-pos-lev{padding:3px 10px;border-radius:4px;font-size:12px;font-weight:600;background:rgba(239,68,68,.15);color:#fca5a5}
.fmz-pos-grid{display:grid;grid-template-columns:1fr 1fr 1fr;padding:4px 0}
.fmz-pos-item{padding:12px 16px;text-align:center}
.fmz-pos-label{font-size:11px;color:var(--t3);margin-bottom:4px}
.fmz-pos-value{font-size:14px;font-weight:600;color:var(--t1)}
.fmz-pos-pnl-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:linear-gradient(135deg,var(--c1-04),var(--c3-06));border-top:1px solid var(--divider)}
.fmz-pos-pnl-label{font-size:13px;color:var(--t2);font-weight:500}
.fmz-pos-pnl-value{font-size:20px;font-weight:800}

.fmz-pos-stats{background:var(--card);border-radius:var(--r);border:1px solid var(--bd);padding:16px;margin-bottom:14px}
.fmz-pos-stats-title{font-size:14px;font-weight:700;color:var(--t1);margin-bottom:12px;display:flex;align-items:center;gap:6px}
.fmz-pos-stats-title::before{content:'';width:3px;height:14px;border-radius:2px;background:var(--c1)}
.fmz-pos-stats-grid{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:8px}
.fmz-pos-stat-item{text-align:center;padding:10px 4px;background:var(--bg);border-radius:8px}
.fmz-pos-stat-val{font-size:16px;font-weight:700;color:var(--t1);margin-bottom:2px}
.fmz-pos-stat-label{font-size:10px;color:var(--t3)}

.fmz-pos-trades{background:var(--card);border-radius:var(--r);border:1px solid var(--bd);padding:16px;margin-bottom:14px}
.fmz-pos-trade-list{display:flex;flex-direction:column;gap:2px}
.fmz-pos-trade-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--divider)}
.fmz-pos-trade-row:last-child{border-bottom:none}
.fmz-pos-trade-left{display:flex;align-items:center;gap:8px}
.fmz-pos-trade-icon{font-size:18px}
.fmz-pos-trade-action{font-size:13px;font-weight:600;color:var(--t1)}
.fmz-pos-trade-time{font-size:10px;color:var(--t3);margin-top:1px}
.fmz-pos-trade-right{text-align:right}
.fmz-pos-trade-price{font-size:13px;font-weight:600;color:var(--t1)}
.fmz-pos-trade-pnl{font-size:12px;font-weight:700;margin-top:1px}
.fmz-pos-trade-qty{font-size:11px;color:var(--t3);margin-top:1px}

/* ========== NovaAI 卡片展开区域 ========== */
.nova-pos-expand{border-top:1px solid var(--divider);margin-top:8px;padding-top:10px}
.nova-ipos-card{background:var(--bg);border-radius:var(--r);border:1px solid var(--bd);overflow:hidden;margin-bottom:10px}
.nova-ipos-card:last-child{margin-bottom:0}
.nova-ipos-header{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--divider)}
.nova-ipos-side{padding:3px 12px;border-radius:4px;font-size:12px;font-weight:400;color:#fff}
.nova-ipos-sym{font-size:15px;font-weight:400;color:var(--t1);flex:1}
.nova-ipos-lev{padding:2px 8px;border-radius:4px;font-size:11px;font-weight:400;background:rgba(239,68,68,.15);color:#fca5a5}
.nova-ipos-grid{display:grid;grid-template-columns:1fr 1fr 1fr;padding:2px 0}
.nova-ipos-item{padding:10px 14px;text-align:center}
.nova-ipos-label{font-size:11px;color:var(--t3);margin-bottom:3px}
.nova-ipos-val{font-size:13px;font-weight:400;color:var(--t1)}
.nova-ipos-pnl{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:linear-gradient(135deg,var(--c1-03),var(--c3-05));border-top:1px solid var(--divider)}
.nova-ipos-pnl-label{font-size:12px;color:var(--t2);font-weight:400}
.nova-ipos-pnl-val{font-size:18px;font-weight:400}

/* ========== 合约策略卡片展开区域 ========== */
.ct-expand-area{border-top:1px solid var(--divider);margin-top:8px;padding-top:10px}
.ct-detail-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0}
.ct-detail-row{padding:10px 4px;text-align:center}
.ct-dl{display:block;font-size:11px;color:var(--t3);margin-bottom:4px}
.ct-dv{display:block;font-size:14px;color:var(--t1)}

/* ========== 帮助问号 & 弹窗 ========== */
.help-q{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;border:1.5px solid var(--t3);color:var(--t3);font-size:11px;font-weight:700;cursor:pointer;margin-left:4px;vertical-align:middle;line-height:1;font-style:normal}
.help-q:active{background:rgba(255,255,255,.05)}
#helpModal{display:none;position:fixed;inset:0;z-index:9999;align-items:center;justify-content:center}
.help-modal-mask{position:absolute;inset:0;background:rgba(0,0,0,.3)}
.help-modal-box{position:relative;background:var(--modal-bg);border-radius:var(--rl);width:280px;max-width:80vw;padding:24px 20px 0;text-align:center;box-shadow:0 8px 30px rgba(0,0,0,.2);border:1px solid var(--bd)}
.help-modal-title{font-size:16px;font-weight:700;color:var(--t1);margin-bottom:14px}
.help-modal-body{font-size:13px;color:var(--t2);line-height:1.7;margin-bottom:18px;text-align:left;white-space:pre-wrap}
.help-modal-btn{padding:14px 0;border-top:1px solid var(--divider);font-size:15px;color:var(--c1);font-weight:600;cursor:pointer}
.help-modal-btn:active{background:rgba(255,255,255,.05);border-radius:0 0 14px 14px}

/* ========== 搜索下拉选择器 ========== */
.search-select{position:relative}
.search-select .ss-trigger{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--card);border:1.5px solid var(--input-bd);border-radius:var(--r);cursor:pointer;font-size:14px;color:var(--t1);font-weight:500;transition:border-color .2s}
.search-select .ss-trigger:active{border-color:var(--c1)}
.search-select .ss-trigger .ss-arrow{color:var(--t3);font-size:12px;transition:transform .2s}
.search-select.open .ss-trigger{border-color:var(--c1);border-radius:var(--r) var(--r) 0 0}
.search-select.open .ss-arrow{transform:rotate(180deg)}
.search-select .ss-drop{display:none;position:absolute;left:0;right:0;top:100%;margin-top:-1px;background:var(--card);border:1.5px solid var(--c1);border-top:none;border-radius:0 0 var(--r) var(--r);z-index:200;box-shadow:0 8px 24px rgba(0,0,0,.08);max-height:280px;overflow:hidden;flex-direction:column}
.search-select.open .ss-drop{display:flex}
.ss-search{padding:8px 10px;border-bottom:1px solid var(--divider)}
.ss-search input{width:100%;border:1.5px solid var(--input-bd);border-radius:8px;padding:8px 10px 8px 30px;font-size:13px;outline:none;box-sizing:border-box;background:var(--bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='%239ca3af' viewBox='0 0 24 24'%3E%3Cpath d='M15.5 14h-.79l-.28-.27A6.47 6.47 0 0016 9.5 6.5 6.5 0 109.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z'/%3E%3C/svg%3E") 9px center no-repeat;transition:border-color .2s}
.ss-search input:focus{border-color:var(--c1)}
.ss-list{overflow-y:auto;max-height:220px;-webkit-overflow-scrolling:touch}
.ss-list::-webkit-scrollbar{width:4px}
.ss-list::-webkit-scrollbar-thumb{background:rgba(255,255,255,.15);border-radius:2px}
.ss-opt{padding:10px 14px;font-size:13px;color:var(--t1);cursor:pointer;transition:background .15s;display:flex;align-items:center;gap:8px}
.ss-opt:active,.ss-opt.active{background:var(--c1-06);color:var(--c1);font-weight:600}
.ss-opt:hover{background:rgba(255,255,255,.04)}
.ss-opt .ss-check{width:16px;height:16px;border-radius:50%;border:1.5px solid var(--rd-bd,rgba(255,255,255,.2));display:flex;align-items:center;justify-content:center;font-size:10px;flex-shrink:0;transition:all .15s}
.ss-opt.active .ss-check{background:var(--c1);border-color:var(--c1);color:#fff}
.ss-empty{padding:20px;text-align:center;color:var(--t3);font-size:12px}

/* ========== 批量设置选项 ========== */
.tr-bs-opt.on{background:#7c3aed!important;color:#fff!important;border-color:#7c3aed!important;font-weight:600}

/* ========== 盈利保护开关 ========== */
.profit-protect-card{margin:12px 16px;background:var(--card);border-radius:12px;padding:16px;box-shadow:var(--sh);border:1px solid var(--bd)}
.pp-header{display:flex;align-items:center;justify-content:space-between}
.pp-title{font-size:15px;font-weight:600;color:var(--t1)}
.pp-switch{position:relative;display:inline-block;width:44px;height:24px}
.pp-switch input{opacity:0;width:0;height:0}
.pp-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,.12);border-radius:24px;transition:.3s}
.pp-slider:before{content:'';position:absolute;height:18px;width:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.3s}
.pp-switch input:checked+.pp-slider{background:var(--c1,#10b981)}
.pp-switch input:checked+.pp-slider:before{transform:translateX(20px)}
.pp-body{margin-top:14px;border-top:1px solid var(--bd);padding-top:12px}
.pp-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0}
.pp-label{font-size:14px;color:var(--c1,#10b981)}
.pp-val-wrap{display:flex;align-items:center;gap:6px}
.pp-val{font-size:15px;font-weight:600;color:var(--t1)}
.pp-unit{font-size:13px;color:var(--t3)}
.pp-edit{cursor:pointer;font-size:16px;opacity:.7}
.pp-edit:hover{opacity:1}

/* ========== 动画 ========== */
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.fade-in{animation:fadeIn .25s ease-out}
