/* =============================================================================
   全站视觉改版 · 皮肤层（6 套主题 token + 黑灰默认皮肤）
   仅覆盖视觉属性；grid / order / 定位 / 尺寸骨架保持基线不动。
   ========================================================================== */
html[data-theme="graphite"]{
  --wb-bg:#0d0f12; --wb-bg-rgb:13,15,18;
  --wb-surface:#14171c; --wb-surface-rgb:20,23,28;
  --wb-surface2:#1b1f26; --wb-surface2-rgb:27,31,38;
  --wb-surface3:#232a33; --wb-surface3-rgb:35,42,51;
  --wb-line:#2b323c; --wb-line-rgb:43,50,60;
  --wb-line2:#39424e; --wb-line2-rgb:57,66,78;
  --wb-text:#e6e9ee; --wb-text-rgb:230,233,238;
  --wb-text2:#99a3b2; --wb-text2-rgb:153,163,178;
  --wb-text3:#5f6b7a; --wb-text3-rgb:95,107,122;
  --wb-onAccent:#0d0f12; --wb-onAccent-rgb:13,15,18;
  --wb-accent:#2ecc71; --wb-accent-rgb:46,204,113;
  --wb-accentHover:#4ade80; --wb-accentHover-rgb:74,222,128;
  --wb-accentSoft:#1e3931; --wb-accentSoft-rgb:30,57,49;
  --wb-accent2:#4cc9f0; --wb-accent2-rgb:76,201,240;
  --wb-accent2Soft:#213540; --wb-accent2Soft-rgb:33,53,64;
  --wb-up:#2ecc71; --wb-up-rgb:46,204,113;
  --wb-upSoft:#1e3931; --wb-upSoft-rgb:30,57,49;
  --wb-down:#f6465d; --wb-down-rgb:246,70,93;
  --wb-downSoft:#3c252e; --wb-downSoft-rgb:60,37,46;
  --wb-warn:#f0b90b; --wb-warn-rgb:240,185,11;
  --wb-warnSoft:#3b3622; --wb-warnSoft-rgb:59,54,34;
  --wb-info:#5b9cf6; --wb-info-rgb:91,156,246;
  --wb-infoSoft:#253245; --wb-infoSoft-rgb:37,50,69;
  --wb-purple:#a78bfa; --wb-purple-rgb:167,139,250;
  --wb-purpleSoft:#302f46; --wb-purpleSoft-rgb:48,47,70;
  --wb-btnBg:#161b22; --wb-btnBg-rgb:22,27,34;
  --wb-btnHover:#222a33; --wb-btnHover-rgb:34,42,51;
  --wb-overlay:rgb(255,255,255); --wb-overlay-rgb:255,255,255;
  --wb-shadow:rgb(0,0,0); --wb-shadow-rgb:0,0,0;
  --wb-sunken:#07080a; --wb-sunken-rgb:7,8,10;
  --wb-white:#ffffff; --wb-white-rgb:255,255,255;
  --wb-black:#000000; --wb-black-rgb:0,0,0;
}
html[data-theme="origin"]{
  --wb-bg:#1f1f1f; --wb-bg-rgb:31,31,31;
  --wb-surface:#252526; --wb-surface-rgb:37,37,38;
  --wb-surface2:#2b2b2c; --wb-surface2-rgb:43,43,44;
  --wb-surface3:#2f2f30; --wb-surface3-rgb:47,47,48;
  --wb-line:#333333; --wb-line-rgb:51,51,51;
  --wb-line2:#3d3d3d; --wb-line2-rgb:61,61,61;
  --wb-text:#e8e8e8; --wb-text-rgb:232,232,232;
  --wb-text2:#b9b9b9; --wb-text2-rgb:185,185,185;
  --wb-text3:#8b8b8b; --wb-text3-rgb:139,139,139;
  --wb-onAccent:#ffffff; --wb-onAccent-rgb:255,255,255;
  --wb-accent:#238636; --wb-accent-rgb:35,134,54;
  --wb-accentHover:#2ea043; --wb-accentHover-rgb:46,160,67;
  --wb-accentSoft:#2a392e; --wb-accentSoft-rgb:42,57,46;
  --wb-accent2:#00ccff; --wb-accent2-rgb:0,204,255;
  --wb-accent2Soft:#254047; --wb-accent2Soft-rgb:37,64,71;
  --wb-up:#26d07f; --wb-up-rgb:38,208,127;
  --wb-upSoft:#2a4438; --wb-upSoft-rgb:42,68,56;
  --wb-down:#ff5b6f; --wb-down-rgb:255,91,111;
  --wb-downSoft:#4b3236; --wb-downSoft-rgb:75,50,54;
  --wb-warn:#d29922; --wb-warn-rgb:210,153,34;
  --wb-warnSoft:#443c2a; --wb-warnSoft-rgb:68,60,42;
  --wb-info:#58a6ff; --wb-info-rgb:88,166,255;
  --wb-infoSoft:#323d4c; --wb-infoSoft-rgb:50,61,76;
  --wb-purple:#8957e5; --wb-purple-rgb:137,87,229;
  --wb-purpleSoft:#393248; --wb-purpleSoft-rgb:57,50,72;
  --wb-btnBg:#141414; --wb-btnBg-rgb:20,20,20;
  --wb-btnHover:#2a2a2a; --wb-btnHover-rgb:42,42,42;
  --wb-overlay:rgb(255,255,255); --wb-overlay-rgb:255,255,255;
  --wb-shadow:rgb(0,0,0); --wb-shadow-rgb:0,0,0;
  --wb-sunken:#111111; --wb-sunken-rgb:17,17,17;
  --wb-white:#ffffff; --wb-white-rgb:255,255,255;
  --wb-black:#000000; --wb-black-rgb:0,0,0;
}
html[data-theme="emerald"]{
  --wb-bg:#0b100d; --wb-bg-rgb:11,16,13;
  --wb-surface:#131b16; --wb-surface-rgb:19,27,22;
  --wb-surface2:#1a241d; --wb-surface2-rgb:26,36,29;
  --wb-surface3:#223026; --wb-surface3-rgb:34,48,38;
  --wb-line:#26382c; --wb-line-rgb:38,56,44;
  --wb-line2:#35503c; --wb-line2-rgb:53,80,60;
  --wb-text:#eaf3ec; --wb-text-rgb:234,243,236;
  --wb-text2:#a9bdaf; --wb-text2-rgb:169,189,175;
  --wb-text3:#71887a; --wb-text3-rgb:113,136,122;
  --wb-onAccent:#06160c; --wb-onAccent-rgb:6,22,12;
  --wb-accent:#2fc46a; --wb-accent-rgb:47,196,106;
  --wb-accentHover:#49d882; --wb-accentHover-rgb:73,216,130;
  --wb-accentSoft:#1d3c29; --wb-accentSoft-rgb:29,60,41;
  --wb-accent2:#38bdf8; --wb-accent2-rgb:56,189,248;
  --wb-accent2Soft:#1e3839; --wb-accent2Soft-rgb:30,56,57;
  --wb-up:#0ecb81; --wb-up-rgb:14,203,129;
  --wb-upSoft:#183d2c; --wb-upSoft-rgb:24,61,44;
  --wb-down:#f6465d; --wb-down-rgb:246,70,93;
  --wb-downSoft:#3b2927; --wb-downSoft-rgb:59,41,39;
  --wb-warn:#f0b90b; --wb-warn-rgb:240,185,11;
  --wb-warnSoft:#3a3a1a; --wb-warnSoft-rgb:58,58,26;
  --wb-info:#5b9cf6; --wb-info-rgb:91,156,246;
  --wb-infoSoft:#24363e; --wb-infoSoft-rgb:36,54,62;
  --wb-purple:#a78bfa; --wb-purple-rgb:167,139,250;
  --wb-purpleSoft:#2f333e; --wb-purpleSoft-rgb:47,51,62;
  --wb-btnBg:#101813; --wb-btnBg-rgb:16,24,19;
  --wb-btnHover:#1d2a21; --wb-btnHover-rgb:29,42,33;
  --wb-overlay:rgb(255,255,255); --wb-overlay-rgb:255,255,255;
  --wb-shadow:rgb(0,0,0); --wb-shadow-rgb:0,0,0;
  --wb-sunken:#060907; --wb-sunken-rgb:6,9,7;
  --wb-white:#ffffff; --wb-white-rgb:255,255,255;
  --wb-black:#000000; --wb-black-rgb:0,0,0;
}
html[data-theme="gold"]{
  --wb-bg:#0b0e11; --wb-bg-rgb:11,14,17;
  --wb-surface:#181b21; --wb-surface-rgb:24,27,33;
  --wb-surface2:#1e2329; --wb-surface2-rgb:30,35,41;
  --wb-surface3:#2b3139; --wb-surface3-rgb:43,49,57;
  --wb-line:#2b3139; --wb-line-rgb:43,49,57;
  --wb-line2:#3a4048; --wb-line2-rgb:58,64,72;
  --wb-text:#eaecef; --wb-text-rgb:234,236,239;
  --wb-text2:#929aa5; --wb-text2-rgb:146,154,165;
  --wb-text3:#707a8a; --wb-text3-rgb:112,122,138;
  --wb-onAccent:#181a20; --wb-onAccent-rgb:24,26,32;
  --wb-accent:#f0b90b; --wb-accent-rgb:240,185,11;
  --wb-accentHover:#fcd535; --wb-accentHover-rgb:252,213,53;
  --wb-accentSoft:#3e3a24; --wb-accentSoft-rgb:62,58,36;
  --wb-accent2:#2dbdb6; --wb-accent2-rgb:45,189,182;
  --wb-accent2Soft:#20373b; --wb-accent2Soft-rgb:32,55,59;
  --wb-up:#0ecb81; --wb-up-rgb:14,203,129;
  --wb-upSoft:#1c3c36; --wb-upSoft-rgb:28,60,54;
  --wb-down:#f6465d; --wb-down-rgb:246,70,93;
  --wb-downSoft:#3e2831; --wb-downSoft-rgb:62,40,49;
  --wb-warn:#f0b90b; --wb-warn-rgb:240,185,11;
  --wb-warnSoft:#3e3a24; --wb-warnSoft-rgb:62,58,36;
  --wb-info:#3b82f6; --wb-info-rgb:59,130,246;
  --wb-infoSoft:#223148; --wb-infoSoft-rgb:34,49,72;
  --wb-purple:#a78bfa; --wb-purple-rgb:167,139,250;
  --wb-purpleSoft:#333348; --wb-purpleSoft-rgb:51,51,72;
  --wb-btnBg:#12161b; --wb-btnBg-rgb:18,22,27;
  --wb-btnHover:#242a32; --wb-btnHover-rgb:36,42,50;
  --wb-overlay:rgb(255,255,255); --wb-overlay-rgb:255,255,255;
  --wb-shadow:rgb(0,0,0); --wb-shadow-rgb:0,0,0;
  --wb-sunken:#060809; --wb-sunken-rgb:6,8,9;
  --wb-white:#ffffff; --wb-white-rgb:255,255,255;
  --wb-black:#000000; --wb-black-rgb:0,0,0;
}
html[data-theme="navy"]{
  --wb-bg:#0e1420; --wb-bg-rgb:14,20,32;
  --wb-surface:#131722; --wb-surface-rgb:19,23,34;
  --wb-surface2:#1a2130; --wb-surface2-rgb:26,33,48;
  --wb-surface3:#232d40; --wb-surface3-rgb:35,45,64;
  --wb-line:#2a3346; --wb-line-rgb:42,51,70;
  --wb-line2:#3a4761; --wb-line2-rgb:58,71,97;
  --wb-text:#dbe3ef; --wb-text-rgb:219,227,239;
  --wb-text2:#98a6bc; --wb-text2-rgb:152,166,188;
  --wb-text3:#6e7c94; --wb-text3-rgb:110,124,148;
  --wb-onAccent:#ffffff; --wb-onAccent-rgb:255,255,255;
  --wb-accent:#3b82f6; --wb-accent-rgb:59,130,246;
  --wb-accentHover:#5b9cf6; --wb-accentHover-rgb:91,156,246;
  --wb-accentSoft:#1f304e; --wb-accentSoft-rgb:31,48,78;
  --wb-accent2:#26a69a; --wb-accent2-rgb:38,166,154;
  --wb-accent2Soft:#1c323e; --wb-accent2Soft-rgb:28,50,62;
  --wb-up:#0ecb81; --wb-up-rgb:14,203,129;
  --wb-upSoft:#183a3c; --wb-upSoft-rgb:24,58,60;
  --wb-down:#f23645; --wb-down-rgb:242,54,69;
  --wb-downSoft:#3a2433; --wb-downSoft-rgb:58,36,51;
  --wb-warn:#f5a623; --wb-warn-rgb:245,166,35;
  --wb-warnSoft:#3b352e; --wb-warnSoft-rgb:59,53,46;
  --wb-info:#5b9cf6; --wb-info-rgb:91,156,246;
  --wb-infoSoft:#24334e; --wb-infoSoft-rgb:36,51,78;
  --wb-purple:#9b7dff; --wb-purple-rgb:155,125,255;
  --wb-purpleSoft:#2d2f4f; --wb-purpleSoft-rgb:45,47,79;
  --wb-btnBg:#111827; --wb-btnBg-rgb:17,24,39;
  --wb-btnHover:#222d42; --wb-btnHover-rgb:34,45,66;
  --wb-overlay:rgb(255,255,255); --wb-overlay-rgb:255,255,255;
  --wb-shadow:rgb(0,0,0); --wb-shadow-rgb:0,0,0;
  --wb-sunken:#080b12; --wb-sunken-rgb:8,11,18;
  --wb-white:#ffffff; --wb-white-rgb:255,255,255;
  --wb-black:#000000; --wb-black-rgb:0,0,0;
}
html[data-theme="light"]{
  --wb-bg:#f4f6fa; --wb-bg-rgb:244,246,250;
  --wb-surface:#ffffff; --wb-surface-rgb:255,255,255;
  --wb-surface2:#f7f9fc; --wb-surface2-rgb:247,249,252;
  --wb-surface3:#eef2f7; --wb-surface3-rgb:238,242,247;
  --wb-line:#e3e8ef; --wb-line-rgb:227,232,239;
  --wb-line2:#cbd5e1; --wb-line2-rgb:203,213,225;
  --wb-text:#181a20; --wb-text-rgb:24,26,32;
  --wb-text2:#5a6678; --wb-text2-rgb:90,102,120;
  --wb-text3:#8b95a5; --wb-text3-rgb:139,149,165;
  --wb-onAccent:#ffffff; --wb-onAccent-rgb:255,255,255;
  --wb-accent:#2563eb; --wb-accent-rgb:37,99,235;
  --wb-accentHover:#1d4ed8; --wb-accentHover-rgb:29,78,216;
  --wb-accentSoft:#e9effd; --wb-accentSoft-rgb:233,239,253;
  --wb-accent2:#0891b2; --wb-accent2-rgb:8,145,178;
  --wb-accent2Soft:#e6f4f7; --wb-accent2Soft-rgb:230,244,247;
  --wb-up:#0e9f6e; --wb-up-rgb:14,159,110;
  --wb-upSoft:#e7f5f0; --wb-upSoft-rgb:231,245,240;
  --wb-down:#e5484d; --wb-down-rgb:229,72,77;
  --wb-downSoft:#fceded; --wb-downSoft-rgb:252,237,237;
  --wb-warn:#d97706; --wb-warn-rgb:217,119,6;
  --wb-warnSoft:#fbf0e4; --wb-warnSoft-rgb:251,240,228;
  --wb-info:#2563eb; --wb-info-rgb:37,99,235;
  --wb-infoSoft:#e9effd; --wb-infoSoft-rgb:233,239,253;
  --wb-purple:#7c3aed; --wb-purple-rgb:124,58,237;
  --wb-purpleSoft:#f2ebfd; --wb-purpleSoft-rgb:242,235,253;
  --wb-btnBg:#f1f4f9; --wb-btnBg-rgb:241,244,249;
  --wb-btnHover:#e6ebf3; --wb-btnHover-rgb:230,235,243;
  --wb-overlay:rgb(15,23,42); --wb-overlay-rgb:15,23,42;
  --wb-shadow:rgb(15,23,42); --wb-shadow-rgb:15,23,42;
  --wb-sunken:#f2f2f3; --wb-sunken-rgb:242,242,243;
  --wb-white:#ffffff; --wb-white-rgb:255,255,255;
  --wb-black:#000000; --wb-black-rgb:0,0,0;
}
/* ================= 全站视觉改版 · 设计系统层 =================
   仅覆盖视觉属性；所有 grid / order / 定位 / 尺寸骨架保持基线原值。 */
/* 形状 / 间距变量统一由后面的「组件规范层」定义，所有主题（含对照色）共用 */
html[data-skin="on"] body{
  background-color:var(--wb-bg) !important;
  background-image:
    radial-gradient(1100px 600px at 10% -12%, rgba(var(--wb-accent-rgb),.055), transparent 70%),
    radial-gradient(900px 540px at 96% 0%, rgba(var(--wb-accent2-rgb),.045), transparent 72%) !important;
  background-repeat:no-repeat !important;
  background-attachment:fixed !important;
  color:var(--wb-text) !important;
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",Arial,sans-serif !important;
  font-variant-numeric:tabular-nums; -webkit-font-smoothing:antialiased;
}
/* 顶栏 */
html[data-skin="on"] .fixed-nav{
  background:var(--wb-surface) !important; border-bottom:1px solid var(--wb-line) !important;
  box-shadow:0 8px 28px rgba(var(--wb-shadow-rgb),.30) !important;
}
html[data-skin="on"] .header{ background:transparent !important; padding:8px 14px !important; }
html[data-skin="on"] .header-left h1{
  color:var(--wb-text) !important; font-size:17px !important; font-weight:700 !important; letter-spacing:.3px;
}
html[data-skin="on"] .header-left #datetime,
html[data-skin="on"] .header-left #source{ color:var(--wb-text3) !important; }
html[data-skin="on"] .price-card{
  background:var(--wb-surface2) !important; border:1px solid var(--wb-line) !important;
  border-radius:var(--wb-r-md) !important; padding:6px 10px !important;
}
html[data-skin="on"] .symbol-name{ color:var(--wb-text) !important; font-weight:700 !important; }
html[data-skin="on"] .contract-type{ color:var(--wb-text3) !important; }
html[data-skin="on"] .price-value{ color:var(--wb-text) !important; font-weight:700 !important; }
html[data-skin="on"] .account-info{ color:var(--wb-text2) !important; }
html[data-skin="on"] .info-value{ color:var(--wb-accent2) !important; font-weight:700; }
/* 右侧固定竖导航（上半组 + 下半组） */
html[data-skin="on"] .fixed-nav-bottom{
  background:var(--wb-surface) !important; border:1px solid var(--wb-line) !important;
  border-radius:var(--wb-r-lg) !important; padding:8px 6px !important; gap:6px !important;
  box-shadow:0 10px 28px rgba(var(--wb-shadow-rgb),.26) !important;
}
html[data-skin="on"] .nav-left-panel,
html[data-skin="on"] .nav-right-panel{ gap:4px !important; }
html[data-skin="on"] .fixed-nav-btn{
  background:var(--wb-btnBg) !important; color:var(--wb-text2) !important;
  border:1px solid var(--wb-line) !important; border-radius:var(--wb-r-sm) !important;
  padding:6px 3px !important; font-size:11px !important; font-weight:600 !important;
  letter-spacing:.2px; min-height:30px !important;
  transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease;
}
html[data-skin="on"] .fixed-nav-btn:hover{
  background:var(--wb-btnHover) !important; color:var(--wb-text) !important; transform:translateX(-2px);
}
html[data-skin="on"] .fixed-nav-btn.active,
html[data-skin="on"] .fixed-nav-btn.scanner-btn.active,
html[data-skin="on"] .fixed-nav-btn.center-btn.active{
  background:var(--wb-accentSoft) !important; color:var(--wb-accent) !important;
  border-color:rgba(var(--wb-accent-rgb),.45) !important;
  box-shadow:inset 3px 0 0 var(--wb-accent) !important; font-weight:700 !important;
}
html[data-skin="on"] .fixed-nav-btn.settings-btn{ border-top:0 !important; }
html[data-skin="on"] .nav-settings{ border-top:1px solid var(--wb-line) !important; }
/* 主内容两块：gap 与板块内边距（列定义 / order 不动） */
html[data-skin="on"] .main-content{ gap:var(--wb-gap) !important; }
html[data-skin="on"] .panel{
  background:var(--wb-surface) !important; border:1px solid var(--wb-line) !important;
  border-radius:var(--wb-r-lg) !important; padding:var(--wb-pad) !important;
  box-shadow:var(--wb-card-shadow) !important;
}
html[data-skin="on"] .scanner-content,
html[data-skin="on"] .positions-panel,
html[data-skin="on"] .chart-panel,
html[data-skin="on"] .logs-panel,
html[data-skin="on"] .risk-panel{ background:transparent !important; color:var(--wb-text) !important; }
html[data-skin="on"] .bot-panel{
  background:var(--wb-bg) !important; border-radius:var(--wb-r-md) !important;
  padding:var(--wb-pad) !important; color:var(--wb-text) !important;
}
/* 通用按钮 */
html[data-skin="on"] button{
  font-family:inherit;
  transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease,filter .18s ease !important;
}
html[data-skin="on"] button:hover{ filter:brightness(1.10); }
html[data-skin="on"] button:focus-visible{ outline:2px solid var(--wb-accent2); outline-offset:2px; }
html[data-skin="on"] .tab-btn,
html[data-skin="on"] .scanner-tab-btn,
html[data-skin="on"] .logs-tab-btn,
html[data-skin="on"] .astock-view-tab,
html[data-skin="on"] .risk-switch-btn,
html[data-skin="on"] .bp-btn,
html[data-skin="on"] .bv-btn,
html[data-skin="on"] .bv-sub button,
html[data-skin="on"] .signal-filter-btn{
  background:var(--wb-btnBg) !important; color:var(--wb-text2) !important;
  border:1px solid var(--wb-line) !important; border-radius:var(--wb-r-sm) !important;
  font-weight:600 !important;
}
html[data-skin="on"] .tab-btn.active,
html[data-skin="on"] .scanner-tab-btn.active,
html[data-skin="on"] .logs-tab-btn.active,
html[data-skin="on"] .bv-sub button.on,
html[data-skin="on"] .bp-btn.go,
html[data-skin="on"] .bp-btn.gear,
html[data-skin="on"] .astock-view-tab.active,
html[data-skin="on"] .risk-switch-btn.active{
  background:var(--wb-accent) !important; color:var(--wb-onAccent) !important;
  border-color:var(--wb-accentHover) !important;
  box-shadow:0 3px 12px rgba(var(--wb-accent-rgb),.26) !important;
}
html[data-skin="on"] .bp-btn.intro{
  background:var(--wb-accent2Soft) !important; color:var(--wb-accent2) !important;
  border-color:rgba(var(--wb-accent2-rgb),.42) !important;
}
html[data-skin="on"] .bv-btn.danger,
html[data-skin="on"] .bp-btn.danger,
html[data-skin="on"] .astock-del-btn{
  background:var(--wb-downSoft) !important; color:var(--wb-down) !important;
  border-color:rgba(var(--wb-down-rgb),.42) !important;
}
/* 原系统「浅灰底 + 深字」的反转色按钮，统一收敛为主色激活态 */
html[data-skin="on"] .atr-neutral.active,
html[data-skin="on"] .atr-total.active{
  background:var(--wb-accent) !important; color:var(--wb-onAccent) !important;
  border-color:var(--wb-accentHover) !important;
}
/* 表格 */
html[data-skin="on"] table{ border-collapse:separate !important; border-spacing:0 !important; }
html[data-skin="on"] th{
  background:var(--wb-surface2) !important; color:var(--wb-text3) !important;
  font-weight:700 !important; font-size:10.5px !important; letter-spacing:.4px;
  border-bottom:1px solid var(--wb-line) !important; padding:5px 7px !important; text-align:left !important;
}
html[data-skin="on"] td{
  border-bottom:1px solid var(--wb-line) !important; padding:5px 7px !important;
  color:var(--wb-text2) !important; font-size:11px;
}
html[data-skin="on"] tbody tr:hover td{ background:var(--wb-surface2) !important; }
/* 表单 */
html[data-skin="on"] input:not([type=checkbox]):not([type=radio]):not([type=range]),
html[data-skin="on"] select,
html[data-skin="on"] textarea{
  background:var(--wb-surface2) !important; color:var(--wb-text) !important;
  border:1px solid var(--wb-line2) !important; border-radius:var(--wb-r-sm) !important;
  padding:5px 8px !important; outline:none; font-size:11px !important;
}
html[data-skin="on"] input:focus,
html[data-skin="on"] select:focus,
html[data-skin="on"] textarea:focus{
  border-color:var(--wb-accent) !important; box-shadow:0 0 0 3px rgba(var(--wb-accent-rgb),.18);
}
html[data-skin="on"] input::placeholder{ color:var(--wb-text3) !important; }
/* 卡片 / 信息块 */
html[data-skin="on"] .bv-sig,
html[data-skin="on"] .bv-pos,
html[data-skin="on"] .msc-kv,
html[data-skin="on"] .bot-status-item,
html[data-skin="on"] .bot-panel-config-item,
html[data-skin="on"] .trend-desc-item,
html[data-skin="on"] .risk-bot-1-card,
html[data-skin="on"] .risk-bot-2-card,
html[data-skin="on"] .pos-stats-strip,
html[data-skin="on"] .msc-dhead{
  background:var(--wb-surface2) !important; border:1px solid var(--wb-line) !important;
  border-radius:var(--wb-r-md) !important;
}
html[data-skin="on"] .bot-panel-scanning{ background:var(--wb-upSoft) !important; color:var(--wb-up) !important; }
html[data-skin="on"] .bot-panel-stopped{ background:var(--wb-surface3) !important; color:var(--wb-text3) !important; }
html[data-skin="on"] .panel-title{ color:var(--wb-text) !important; font-weight:700 !important; }
html[data-skin="on"] .scanner-label,
html[data-skin="on"] .msc-dsub{ color:var(--wb-text3) !important; }
html[data-skin="on"] .count-badge,
html[data-skin="on"] .tab-count{ border-radius:999px !important; }
html[data-skin="on"] .ec-pill{
  background:var(--wb-accent2Soft) !important; color:var(--wb-accent2) !important;
  border-color:rgba(var(--wb-accent2-rgb),.42) !important;
}
html[data-skin="on"] ::-webkit-scrollbar{ width:9px; height:9px; }
html[data-skin="on"] ::-webkit-scrollbar-track{ background:transparent; }
html[data-skin="on"] ::-webkit-scrollbar-thumb{
  background:var(--wb-line2); border-radius:8px; border:2px solid var(--wb-surface);
}

/* =============================================================================
   全站视觉改版 · 组件规范层（全站组件归一，全部 !important）
   作用域 html[data-comp="on"] body；与主题解耦。
   ========================================================================== */
/* ================= 组件规范层 · 全站唯一一套积木（高密度终端版） =================
   去嵌套：全站只有列外框 .panel 是「带边框的盒子」；其内所有层级（L1 内容区 / L2 分组 /
   列表行）一律透明、零或极小内边距，靠「顶部 1px 发丝线」或「底部 1px 发丝线」分层——
   因此「正文到外框」只剩 .panel 这一层 8px，不再有好几层嵌套。
   形状：板块 8px / 卡片 6px / 按钮·输入 4px / 徽章 999px；
   间距：板块内边距 8px、两块间距 6px、列内分组 4px、行高 4px（参考 TradingView / 同花顺）。
   描边：一律 1px 发丝线 var(--wb-line)；涨跌色只用于数值与状态，不做按钮底色。
   作用域 html[data-comp="on"] body，全部 !important，压过各页面局部重定义与 inline style。 */
html{
  /* 高密度终端风格（参考 TradingView / 同花顺）：边框边距极小、信息密度极高。
     圆角 8/6/4px、板块内边距 8px、两块间距 6px、列内分组 4px、行 4px。 */
  --wb-r-lg:8px; --wb-r-md:6px; --wb-r-sm:4px;
  --wb-gap:6px; --wb-pad:8px;
  --wb-pad-l2:4px; --wb-row:4px;
  --wb-card-shadow:0 4px 14px rgba(var(--wb-shadow-rgb),.14);
}
html[data-comp="on"] body{
  color:var(--wb-text) !important;
  font-size:12px !important; line-height:1.42 !important;
}
/* ---- L0 板块容器（左右两块，布局零改动）——唯一的结构框 ----
   全站只有这一层是「带边框的盒子」；内部所有层级都退为透明流动区，
   靠发丝线 + 留白分层，从根上消灭「正文到边框好几层」的嵌套感。 */
html[data-comp="on"] body .main-content{ gap:var(--wb-gap) !important; }
html[data-comp="on"] body .panel{
  background:var(--wb-surface) !important; border:1px solid var(--wb-line) !important;
  border-radius:var(--wb-r-lg) !important; padding:var(--wb-pad) !important;
  box-shadow:var(--wb-card-shadow) !important;
}
html[data-comp="on"] body .scanner-content,
html[data-comp="on"] body .positions-panel,
html[data-comp="on"] body .chart-panel,
html[data-comp="on"] body .logs-panel,
html[data-comp="on"] body .risk-panel{ background:transparent !important; }
/* ---- L1 内容区：直接嵌在板块框内 → 彻底透明、零内边距、零边框 ----
   内容直接贴着 .panel 的 8px 内边距流动；不再自套一层带底色/边框的盒子，
   因此「正文到外框」只有 .panel 这一层 8px，不存在多层嵌套。 */
html[data-comp="on"] body .bot-panel,
html[data-comp="on"] body .scanner-pool-container,
html[data-comp="on"] body .settings-content,
html[data-comp="on"] body .chart-container,
html[data-comp="on"] body .logs-content,
html[data-comp="on"] body .positions-container,
html[data-comp="on"] body .astock-view-panel,
html[data-comp="on"] body .v5-sheet .ds-group{
  background:transparent !important; border:0 !important;
  border-radius:0 !important; box-shadow:none !important;
  padding:0 !important; margin:0 !important;
}
/* 网格平铺小卡（KPI / 持仓统计瓦片）：并列等体，保留 1px 发丝描边作为瓦片边界
   （这是并列瓦片，不是嵌套框；TV/同花顺 的 watchlist 卡片也是同样的发丝边） */
html[data-comp="on"] body .stat-card,
html[data-comp="on"] body .pos-stat-card{
  background:var(--wb-surface2) !important; border:1px solid var(--wb-line) !important;
  border-radius:var(--wb-r-md) !important; box-shadow:none !important; padding:6px 8px !important;
}
html[data-comp="on"] body .stat-card{ border-left:3px solid var(--wb-accent) !important; }
html[data-comp="on"] body .stat-card.profit{ border-left-color:var(--wb-up) !important; }
html[data-comp="on"] body .stat-card.loss{ border-left-color:var(--wb-down) !important; }
html[data-comp="on"] body .stat-card.win{ border-left-color:var(--wb-accent2) !important; }
html[data-comp="on"] body .stat-card.total{ border-left-color:var(--wb-warn) !important; }
/* ---- L2 内层分组区：去掉整圈可见框，只保留「顶部 1px 发丝分隔线 + 4px 内边距」 ----
   原是「框套框」的第二、第三层（各自带底色+圆角+10px 内边距），现在全部透明、
   无边框、无圆角，仅用一条发丝线与上方分组区分——像交易终端的分区，而非一摞盒子。 */
html[data-comp="on"] body .msc-dhead,
html[data-comp="on"] body .msc-rows,
html[data-comp="on"] body .msc-ico,
html[data-comp="on"] body .msc-grid,
html[data-comp="on"] body .msc-sub,
html[data-comp="on"] body .v5-sheet .ds-lock,
html[data-comp="on"] body .astock-cond-list,
html[data-comp="on"] body .astock-add-row,
html[data-comp="on"] body .close-records-table,
html[data-comp="on"] body .a-pool-tabs,
html[data-comp="on"] body .scanner-status,
html[data-comp="on"] body details{
  background:transparent !important; border:0 !important;
  border-top:1px solid var(--wb-line) !important;
  border-radius:0 !important; box-shadow:none !important;
  padding:var(--wb-pad-l2) 0 !important; margin:var(--wb-pad-l2) 0 0 !important;
}
/* 风控卡 / 状态项 / 配置项：原本各自是「框套框」的一层，改为仅 1px 发丝描边的小瓦片，
   与主结构框一样用发丝线，不再叠加底色层；极紧内边距保证密度 */
html[data-comp="on"] body .risk-bot-card,
html[data-comp="on"] body .risk-bot-card-header,
html[data-comp="on"] body .bot-status-item,
html[data-comp="on"] body .bot-panel-config-item,
html[data-comp="on"] body .msc-kv{
  background:transparent !important; border:1px solid var(--wb-line) !important;
  border-radius:var(--wb-r-sm) !important; box-shadow:none !important;
  padding:3px 6px !important; margin:0 0 3px !important;
}
html[data-comp="on"] body .risk-bot-card-header{
  border:0 !important; border-bottom:1px solid var(--wb-line) !important;
  border-radius:0 !important; padding:0 0 3px !important; margin:0 0 3px !important;
}
html[data-comp="on"] body details > summary{
  background:transparent !important; border:0 !important; color:var(--wb-text2) !important;
  padding:0 !important;
}
/* KPI / 状态网格：自动填充列宽，把内容铺满整块宽度（消除「右半空白」），极紧间距 */
html[data-comp="on"] body .msc-grid{
  display:grid !important; grid-template-columns:repeat(auto-fill,minmax(104px,1fr)) !important;
  gap:4px !important; margin-top:4px !important;
}
html[data-comp="on"] body .msc-kv .k{ font-size:9.5px !important; color:var(--wb-text3) !important; }
html[data-comp="on"] body .msc-kv .v{ font-size:13px !important; font-weight:800 !important;
  color:var(--wb-text) !important; }
/* 列表行：去掉整圈框，改为「底部发丝分隔线 + 4px 行高」，读起来是干净的紧凑列表
   而非一摞盒子；左 3px 语义色条保留以标识信号/持仓状态 */
html[data-comp="on"] body .bv-sig,
html[data-comp="on"] body .scanner-pool-item,
html[data-comp="on"] body .log-line{
  background:transparent !important; border:0 !important;
  border-bottom:1px solid var(--wb-line) !important; border-radius:0 !important;
  box-shadow:none !important; padding:var(--wb-row) 6px !important;
  margin:0 !important; line-height:1.4 !important;
}
/* 信号卡状态竖条改用 border-left 统一表达（不再与整圈框叠加成双层描边） */
html[data-comp="on"] body .bv-sig.signal-success{ border-left:3px solid var(--wb-up) !important; }
html[data-comp="on"] body .bv-sig.signal-failed{ border-left:3px solid var(--wb-down) !important; }
html[data-comp="on"] body .bv-sig.signal-filtered{ border-left:3px solid var(--wb-warn) !important; }
html[data-comp="on"] body .bv-sig.signal-pending{ border-left:3px solid var(--wb-text3) !important; }
html[data-comp="on"] body .bv-sig.signal-close{ border-left:3px solid var(--wb-accent2) !important; }
/* ---- 分隔行 / 标题：统一发丝线与文字层级 ---- */
html[data-comp="on"] body .bot-panel-section,
html[data-comp="on"] body .bot-panel-info,
html[data-comp="on"] body .bot-panel-header,
html[data-comp="on"] body .v5-sheet .ds-row{
  border-bottom:1px solid var(--wb-line) !important; box-shadow:none !important;
}
html[data-comp="on"] body h1,
html[data-comp="on"] body h2,
html[data-comp="on"] body h3,
html[data-comp="on"] body h4,
html[data-comp="on"] body h5,
html[data-comp="on"] body .panel-title,
html[data-comp="on"] body .bot-panel-section-title{
  color:var(--wb-text) !important; font-weight:700 !important;
}
html[data-comp="on"] body .scanner-label,
html[data-comp="on"] body .msc-dsub{ color:var(--wb-text3) !important; }
/* ---- 按钮规范 · 默认态（所有页面所有按钮件） ---- */
html[data-comp="on"] body button,
html[data-comp="on"] body .tab-btn,
html[data-comp="on"] body .scanner-tab-btn,
html[data-comp="on"] body .logs-tab-btn,
html[data-comp="on"] body .astock-view-tab,
html[data-comp="on"] body .stats-time-btn,
html[data-comp="on"] body .stats-type-btn,
html[data-comp="on"] body .indicator-btn,
html[data-comp="on"] body .timeframe-btn,
html[data-comp="on"] body .signal-filter-btn,
html[data-comp="on"] body .risk-switch-btn,
html[data-comp="on"] body .risk-type-btn,
html[data-comp="on"] body .bp-btn,
html[data-comp="on"] body .bv-btn,
html[data-comp="on"] body .bv-sub button,
html[data-comp="on"] body .bv-sub5 button,
html[data-comp="on"] body .astock-add-btn,
html[data-comp="on"] body .astock-refresh-btn,
html[data-comp="on"] body .astock-del-btn,
html[data-comp="on"] body .btn-cancel,
html[data-comp="on"] body .btn-primary,
html[data-comp="on"] body .settings-menu-item,
html[data-comp="on"] body .a-pool-more-toggle,
html[data-comp="on"] body .astock-cond-badge,
html[data-comp="on"] body .v5-sheet .ds-seg button,
html[data-comp="on"] body .v5-sheet .ds-btn,
html[data-comp="on"] body .bot-tab-btn-long,
html[data-comp="on"] body .bot-tab-btn-short,
html[data-comp="on"] body .bot-tab-btn-risk,
html[data-comp="on"] body .fixed-nav-btn{
  background:var(--wb-btnBg) !important; color:var(--wb-text2) !important;
  border:1px solid var(--wb-line) !important; border-radius:var(--wb-r-sm) !important;
  font-weight:600 !important; box-shadow:none !important;
}
html[data-comp="on"] body button:hover,
html[data-comp="on"] body .tab-btn:hover,
html[data-comp="on"] body .logs-tab-btn:hover,
html[data-comp="on"] body .astock-view-tab:hover,
html[data-comp="on"] body .stats-time-btn:hover,
html[data-comp="on"] body .stats-type-btn:hover,
html[data-comp="on"] body .indicator-btn:hover,
html[data-comp="on"] body .timeframe-btn:hover,
html[data-comp="on"] body .signal-filter-btn:hover,
html[data-comp="on"] body .risk-switch-btn:hover,
html[data-comp="on"] body .bp-btn:hover,
html[data-comp="on"] body .bv-btn:hover,
html[data-comp="on"] body .btn-cancel:hover,
html[data-comp="on"] body .settings-menu-item:hover,
html[data-comp="on"] body .a-pool-more-toggle:hover,
html[data-comp="on"] body .v5-sheet .ds-btn:hover{
  background:var(--wb-btnHover) !important; color:var(--wb-text) !important;
  border-color:var(--wb-line2) !important; filter:none !important;
}
/* ---- 按钮规范 · 激活 / 主操作：统一实心主色 ---- */
html[data-comp="on"] body .tab-btn.active,
html[data-comp="on"] body .scanner-tab-btn.active,
html[data-comp="on"] body .logs-tab-btn.active,
html[data-comp="on"] body .astock-view-tab.active,
html[data-comp="on"] body .stats-time-btn.active,
html[data-comp="on"] body .stats-type-btn.active,
html[data-comp="on"] body .indicator-btn.active,
html[data-comp="on"] body .timeframe-btn.active,
html[data-comp="on"] body .signal-filter-btn.active,
html[data-comp="on"] body .risk-switch-btn.active,
html[data-comp="on"] body .risk-type-btn.active,
html[data-comp="on"] body .bp-btn.go,
html[data-comp="on"] body .bp-btn.gear,
html[data-comp="on"] body .bv-sub button.on,
html[data-comp="on"] body .bv-sub5 button.on,
html[data-comp="on"] body .v5-sheet .ds-seg button.on,
html[data-comp="on"] body .v5-sheet .ds-btn.save,
html[data-comp="on"] body .btn-save,
html[data-comp="on"] body .btn-primary,
html[data-comp="on"] body .atr-neutral.active,
html[data-comp="on"] body .atr-total.active{
  background:var(--wb-accent) !important; color:var(--wb-onAccent) !important;
  border:1px solid var(--wb-accentHover) !important;
  box-shadow:0 3px 12px rgba(var(--wb-accent-rgb),.26) !important;
}
/* 侧边菜单与竖导航：同一套「淡底 + 主色 + 3px 左色条」 */
html[data-comp="on"] body .fixed-nav-btn.active,
html[data-comp="on"] body .settings-menu-item.active{
  background:var(--wb-accentSoft) !important; color:var(--wb-accent) !important;
  border:1px solid rgba(var(--wb-accent-rgb),.45) !important;
  border-left:3px solid var(--wb-accent) !important;
  box-shadow:none !important; font-weight:700 !important;
}
/* ---- 按钮规范 · 次要 / 危险 / 语义变体（一律淡底，不用实心杂色块） ---- */
html[data-comp="on"] body .bp-btn.intro,
html[data-comp="on"] body .ec-pill{
  background:var(--wb-accent2Soft) !important; color:var(--wb-accent2) !important;
  border:1px solid rgba(var(--wb-accent2-rgb),.42) !important;
}
html[data-comp="on"] body .bp-btn.danger,
html[data-comp="on"] body .bv-btn.danger,
html[data-comp="on"] body .astock-del-btn,
html[data-comp="on"] body .signal-filter-btn.close-btn,
html[data-comp="on"] body .signal-filter-btn.failed.active{
  background:var(--wb-downSoft) !important; color:var(--wb-down) !important;
  border:1px solid rgba(var(--wb-down-rgb),.45) !important; box-shadow:none !important;
}
html[data-comp="on"] body .signal-filter-btn.record.active{
  background:var(--wb-purpleSoft) !important; color:var(--wb-purple) !important;
  border:1px solid rgba(var(--wb-purple-rgb),.45) !important;
}
html[data-comp="on"] body .btn-save.btn-changed{
  background:var(--wb-warn) !important; color:var(--wb-onAccent) !important;
  border-color:var(--wb-warn) !important;
}
/* 多 / 空 / 风控筛选：淡底语义色，替代原来的三块实心蓝红黄 */
html[data-comp="on"] body .bot-tab-btn-long{
  background:var(--wb-infoSoft) !important; color:var(--wb-info) !important;
  border:1px solid rgba(var(--wb-info-rgb),.45) !important; }
html[data-comp="on"] body .bot-tab-btn-short{
  background:var(--wb-downSoft) !important; color:var(--wb-down) !important;
  border:1px solid rgba(var(--wb-down-rgb),.45) !important; }
html[data-comp="on"] body .bot-tab-btn-risk{
  background:var(--wb-warnSoft) !important; color:var(--wb-warn) !important;
  border:1px solid rgba(var(--wb-warn-rgb),.45) !important; }
/* ---- 表单 / 表格 ---- */
html[data-comp="on"] body input:not([type=checkbox]):not([type=radio]):not([type=range]),
html[data-comp="on"] body select,
html[data-comp="on"] body textarea,
html[data-comp="on"] body .astock-input,
html[data-comp="on"] body .v5-sheet .ds-num,
html[data-comp="on"] body .v5-sheet .ds-text{
  background:var(--wb-surface2) !important; color:var(--wb-text) !important;
  border:1px solid var(--wb-line2) !important; border-radius:var(--wb-r-sm) !important;
}
html[data-comp="on"] body input:focus,
html[data-comp="on"] body select:focus,
html[data-comp="on"] body textarea:focus{
  border-color:var(--wb-accent) !important; outline:none !important;
  box-shadow:0 0 0 3px rgba(var(--wb-accent-rgb),.18) !important;
}
html[data-comp="on"] body th{
  background:var(--wb-surface2) !important; color:var(--wb-text3) !important;
  border-bottom:1px solid var(--wb-line) !important; padding:5px 7px !important;
  font-size:10.5px !important; }
/* [2616] 风控状态六态徽章 —— overlay 的全局 button/td 规则会压掉徽章颜色，这里显式兜底 */
/* [2616] 持仓表「平仓」按钮：红色描边（危险操作语义），不被 overlay 全局按钮规则压成灰色 */
html[data-comp="on"] body .manual-close-btn,
html[data-comp="on"] body .paper-close-btn{
  background:transparent !important; color:#f85149 !important;
  border:1px solid #f85149 !important; border-radius:var(--wb-r-sm) !important;
  font-weight:700 !important; box-shadow:none !important;
}
html[data-comp="on"] body .wb-rbadge{ background:transparent !important; box-shadow:none !important; }
html[data-comp="on"] body .wb-rbadge-normal{ color:#2ea043 !important; border-color:#2ea043 !important; }
html[data-comp="on"] body .wb-rbadge-waiting{ color:#d29922 !important; border-color:#d29922 !important; }
html[data-comp="on"] body .wb-rbadge-near{ color:#e3b341 !important; border-color:#e3b341 !important; }
html[data-comp="on"] body .wb-rbadge-soon{ color:#f85149 !important; border-color:#f85149 !important; }
html[data-comp="on"] body .wb-rbadge-error{ color:#f85149 !important; border-color:#f85149 !important; border-style:dashed !important; }
html[data-comp="on"] body .wb-rbadge-nodata{ color:#6e7681 !important; border-color:#6e7681 !important; }
html[data-comp="on"] body .bv-pfoot .wb-rbadge-note{ color:var(--m-text2); }
html[data-comp="on"] body td{
  border-bottom:1px solid var(--wb-line) !important; color:var(--wb-text2) !important;
  padding:5px 7px !important; font-size:11px !important; }
/* ---- 徽章 / 状态 chip ---- */
html[data-comp="on"] body .count-badge,
html[data-comp="on"] body .tab-count,
html[data-comp="on"] body .ec-pill,
html[data-comp="on"] body .astock-cond-badge,
html[data-comp="on"] body .v5-sheet .ds-tag,
html[data-comp="on"] body .bot-panel-scanning,
html[data-comp="on"] body .bot-panel-stopped,
html[data-comp="on"] body .risk-bot-card-no,
html[data-comp="on"] body .risk-bot-card-no-2{
  border-radius:999px !important; border:1px solid var(--wb-line) !important;
  background:var(--wb-surface3) !important; color:var(--wb-text) !important;
  box-shadow:none !important;
}
html[data-comp="on"] body .bot-panel-scanning{
  background:var(--wb-upSoft) !important; color:var(--wb-up) !important;
  border-color:rgba(var(--wb-up-rgb),.42) !important; }
html[data-comp="on"] body .bot-panel-stopped{ color:var(--wb-text3) !important; }
html[data-comp="on"] body .ec-pill{
  background:var(--wb-accent2Soft) !important; color:var(--wb-accent2) !important;
  border-color:rgba(var(--wb-accent2-rgb),.42) !important; }
html[data-comp="on"] body .v5-sheet{
  background:var(--wb-surface) !important; border:1px solid var(--wb-line2) !important;
  border-radius:var(--wb-r-lg) !important;
}
html[data-comp="on"] body .v5-sheet .v5-sheet{
  background:transparent !important; border:none !important; border-radius:0 !important; }
/* ============================================================
   修改「原有的」右侧三大板块：信号(bv-sig) / 持仓·实盘(#trend-following-bot-positions .bv-pos)
   / 平仓·实盘(#trend-following-bot-closes .bv-pos) —— 沿用真实组件，对齐用户参考图，不新增平行组件。
   左侧 #center-positions 的 positions-table 保持原状（上一轮已还原）。
   注：持仓 / 平仓 两个 tab 共用 .bv-pos 组件，这里用容器前缀区分两套布局。
   ============================================================ */
/* —— 信号卡 bv-sig（参考图1）：蓝粗币对 + 绿/红开多开空(纯文字无底) +
   信号发生时间 / 信号价格 标签 + ✓ 实盘/模拟 双执行行 —— */
html[data-comp="on"] body .bv-sig{
  background:var(--wb-surface2) !important; border:1px solid var(--wb-line) !important;
  border-radius:var(--wb-r-md) !important; padding:9px 11px !important; margin-bottom:7px !important;
  color:var(--wb-text) !important; }
html[data-comp="on"] body .bv-sig .bv-sym{ color:var(--wb-accent2) !important; font-size:15px !important; font-weight:800 !important; }
html[data-comp="on"] body .bv-sig-top{
  gap:8px !important; align-items:center !important; flex-wrap:wrap !important; }
/* [2610] 固定换行：.bv-sig-top 的唯一子 div（内层 wrapper，内联 display:flex）
   装的是「信号发生时间 + 徽章 + 方向」这一组。
   原先它的宽度随币对名长度变化 → 这一组时而与币对同行、时而整体掉行，
   表现为「信号发生时间」有的换行、有的不换行。
   现在给它 flex:0 0 100% → 这一组永远独占第二行，所有信号记录完全一致。 */
html[data-comp="on"] body .bv-sig-top > div{
  flex:0 0 100% !important; min-width:0 !important; }
/* 信号方向：纯文字无底色（参考图1） */
html[data-comp="on"] body .bv-sig .bv-pill{ background:transparent !important; border:0 !important; padding:0 !important;
  font-size:12px !important; font-weight:800 !important; }
html[data-comp="on"] body .bv-sig .bv-pill.long{ color:var(--wb-up) !important; }
html[data-comp="on"] body .bv-sig .bv-pill.short{ color:var(--wb-down) !important; }
html[data-comp="on"] body .bv-sig-time{
  color:var(--wb-text2) !important; font-size:11px !important; display:block !important;
  margin-top:5px !important;
  /* [2610] 标签「信号发生时间 」与时间戳之间不再断开（原先空格是断行点） */
  white-space:nowrap !important; }
html[data-comp="on"] body .bv-sig-time::before{ content:"信号发生时间 " !important; color:var(--wb-text3) !important; font-size:9.5px !important; }
html[data-comp="on"] body .bv-sig-price{ font-size:12px !important; margin-top:3px !important; }
/* [2610] 删除：原来这里给 .bv-sig-price 加了 ::before("信号价格 ")，
   而 bundle 本身已输出「信号价格: 」→ 页面显示成「信号价格 信号价格: 0.179...」重复两遍。
   现与基线统一，只保留 bundle 自带的那一份。 */
html[data-comp="on"] body .bv-sig-price b{ color:var(--wb-text) !important; }
/* 状态行里重复写的机器人名字（标题已有）去掉，避免冗余 */
html[data-comp="on"] body .bot-status-label{ display:none !important; }
   这里隐藏各面板内的重复副本，避免每屏都写一遍同一句话 */
/* 全局机器人说明（仅在组件规范层显示），样式对齐原 msc-dsub。
   默认隐藏；只在「改版视图 + 当前停留在某个机器人面板」时通过 .show 显示，
   做到全局一条、不每屏重复。未加 .show 或原版视图下一律隐藏，避免误导。 */
html[data-comp="on"] body .signal-failed{ border-left:3px solid var(--wb-down) !important; }
html[data-comp="on"] body .signal-success{ border-left:3px solid var(--wb-up) !important; }
/* 平仓表 close-records-table（弹窗内 13 列旧表）：黑灰密集，保留作次级视图 */
html[data-comp="on"] body .close-records-table th{ background:var(--wb-surface) !important;
  color:var(--wb-text3) !important; padding:6px 7px !important; border-bottom:1px solid var(--wb-line2) !important; }
html[data-comp="on"] body .close-records-table td{ padding:5px 7px !important;
  color:var(--wb-text2) !important; border-bottom:1px solid var(--wb-line) !important; }
/* 原有筛选胶囊 signal-filter-btn：黑灰底 + 透明淡绿选中（选中态在下方统一块） */
html[data-comp="on"] body .signal-filter-bar{ gap:5px !important; padding:5px 6px !important;
  border-bottom:1px solid var(--wb-line) !important; background:transparent !important; }
html[data-comp="on"] body .signal-filter-btn{ background:var(--wb-btnBg) !important;
  border:1px solid var(--wb-line) !important; color:var(--wb-text2) !important;
  border-radius:999px !important; padding:4px 11px !important; font-size:11px !important; }
html[data-comp="on"] body .signal-filter-btn:hover{ border-color:var(--wb-line2) !important; color:var(--wb-text) !important; }
/* ---- 选中态统一：透明淡绿（用户指定，压过上面的实心主色 / 各主题原色） ---- */
html[data-comp="on"] body .tab-btn.active,
html[data-comp="on"] body .scanner-tab-btn.active,
html[data-comp="on"] body .logs-tab-btn.active,
html[data-comp="on"] body .astock-view-tab.active,
html[data-comp="on"] body .stats-time-btn.active,
html[data-comp="on"] body .stats-type-btn.active,
html[data-comp="on"] body .indicator-btn.active,
html[data-comp="on"] body .timeframe-btn.active,
html[data-comp="on"] body .signal-filter-btn.active,
html[data-comp="on"] body .risk-switch-btn.active,
html[data-comp="on"] body .risk-type-btn.active,
html[data-comp="on"] body .bp-btn.go,
html[data-comp="on"] body .bp-btn.gear,
html[data-comp="on"] body .bv-sub button.on,
html[data-comp="on"] body .bv-sub5 button.on,
html[data-comp="on"] body .v5-sheet .ds-seg button.on,
html[data-comp="on"] body .v5-sheet .ds-btn.save,
html[data-comp="on"] body .btn-save,
html[data-comp="on"] body .atr-neutral.active,
html[data-comp="on"] body .atr-total.active{
  background:rgba(46,204,113,.16) !important; border:1px solid rgba(46,204,113,.55) !important;
  color:#4ade80 !important; box-shadow:inset 0 0 0 1px rgba(46,204,113,.16) !important; }
/* 侧边菜单 / 竖导航 / 中心/右侧导航：同淡绿 + 3px 左色条 */
html[data-comp="on"] body .fixed-nav-btn.active,
html[data-comp="on"] body .settings-menu-item.active,
html[data-comp="on"] body .center-btn.active,
html[data-comp="on"] body .scanner-btn.active{
  background:rgba(46,204,113,.16) !important; border:1px solid rgba(46,204,113,.55) !important;
  color:#4ade80 !important; border-left:3px solid #2ecc71 !important;
  box-shadow:none !important; font-weight:700 !important; }
/* 失败 / 记录 等语义筛选，选中时也并入统一淡绿（不再用红/紫实心） */
html[data-comp="on"] body .signal-filter-btn.failed.active,
html[data-comp="on"] body .signal-filter-btn.record.active{
  background:rgba(46,204,113,.16) !important; border:1px solid rgba(46,204,113,.55) !important;
  color:#4ade80 !important; box-shadow:inset 0 0 0 1px rgba(46,204,113,.16) !important; }

/* =============================================================================
   机器人面板层 —— 针对 web_panel_app_bundle.js 真实生成的 DOM
   -----------------------------------------------------------------------------
   真实结构（生产，勿凭预览臆测）：
     持仓卡 .bv-pos > .bv-hd(标题行) / .bv-ppnl(盈亏行) / .bv-pgrid(3×3 网格)
                        / .bv-pfoot(状态行) / .bv-pdet(加仓明细)
     平仓卡 .bv-pos > .bv-hd(标题行) / .bv-pgrid(3×3 网格) / .bv-pfoot(原因行)
     信号卡 .bv-sig > .bv-sig-top(.bv-sym 币对 + .bv-sig-time 时间 + .bv-pill 方向)
                        / .bv-sig-price / .bot-signal-reason
   三个机器人（趋势 / DCA / 预约）用的是同一套 bv-* 类名，故此层一次性对齐，
   不再出现「趋势是新样式、DCA/预约是旧样式」的割裂。
   —— 只重绘外观：不改 DOM、不注入任何数据、不新增任何状态文字。
   —— 注意：signal-success/signal-failed 在【信号】页签表示 多/空 方向，
      在【记录】页签才表示 开仓成功/失败；此处一律不加 ✓/✗ 文案，避免误导。
   ========================================================================== */

/* —— 卡片底板（持仓 / 平仓 共用 .bv-pos）—— */
html[data-comp="on"] body .panel-left .bot-panel .bv-pos{
  background:var(--wb-surface2) !important; border:1px solid var(--wb-line) !important;
  border-radius:var(--wb-r-md) !important; padding:0 !important; margin-bottom:8px !important;
  overflow:hidden !important; box-shadow:none !important; }

/* —— 标题行：币对 + 方向 + 实盘/模拟 + 来源 + 杠杆 + 平仓按钮 —— */
html[data-comp="on"] body .panel-left .bot-panel .bv-pos .bv-hd{
  display:flex !important; align-items:center !important; gap:6px !important;
  flex-wrap:wrap !important; padding:8px 10px 7px !important;
  border-bottom:1px solid var(--wb-line) !important; }
html[data-comp="on"] body .panel-left .bot-panel .bv-pos .bv-syml .n{
  color:var(--wb-accent2) !important; font-size:15px !important; font-weight:800 !important; }
html[data-comp="on"] body .panel-left .bot-panel .bv-pos .bv-pill{
  font-size:10.5px !important; font-weight:800 !important; padding:1px 7px !important;
  border-radius:5px !important; }
html[data-comp="on"] body .panel-left .bot-panel .bv-pos .bv-pill.bv-up,
html[data-comp="on"] body .panel-left .bot-panel .bv-pos .bv-pill.long{
  color:var(--wb-up) !important; background:rgba(46,204,113,.16) !important; }
html[data-comp="on"] body .panel-left .bot-panel .bv-pos .bv-pill.bv-down,
html[data-comp="on"] body .panel-left .bot-panel .bv-pos .bv-pill.short{
  color:var(--wb-down) !important; background:rgba(239,68,68,.16) !important; }
html[data-comp="on"] body .panel-left .bot-panel .bv-pos .bv-pill.bv-mut{
  color:var(--wb-text2) !important; background:var(--wb-surface3) !important; }
html[data-comp="on"] body .panel-left .bot-panel .bv-pos .bv-pill.warn{
  color:#f0b90b !important; background:rgba(240,185,11,.14) !important; }
html[data-comp="on"] body .panel-left .bot-panel .bv-pos .bv-pill.lev{
  color:var(--wb-accent2) !important; background:rgba(76,201,240,.14) !important; }
html[data-comp="on"] body .panel-left .bot-panel .bv-pos .bv-close{
  font-size:10.5px !important; font-weight:700 !important; color:var(--wb-accent) !important;
  background:var(--wb-btnBg) !important; border:1px solid var(--wb-line2) !important;
  padding:3px 10px !important; border-radius:6px !important; }

/* —— 盈亏行（仅持仓卡有）—— */
html[data-comp="on"] body .panel-left .bot-panel .bv-pos .bv-ppnl{
  display:flex !important; align-items:center !important; gap:8px !important;
  padding:6px 10px !important; background:var(--wb-surface3) !important;
  border-bottom:1px solid var(--wb-line) !important; font-size:11px !important; }
html[data-comp="on"] body .panel-left .bot-panel .bv-pos .bv-ppnl .l{
  color:var(--wb-text2) !important; }
html[data-comp="on"] body .panel-left .bot-panel .bv-pos .bv-ppnl .pv{
  font-size:13px !important; font-weight:800 !important; font-variant-numeric:tabular-nums !important; }
html[data-comp="on"] body .panel-left .bot-panel .bv-pos .bv-ppnl .amt{
  font-size:12px !important; font-weight:700 !important; margin-left:auto !important;
  background:transparent !important; padding:0 !important; border-radius:0 !important;
  font-variant-numeric:tabular-nums !important; }
html[data-comp="on"] body .panel-left .bot-panel .bv-pos .bv-ppnl .pv.bv-up,
html[data-comp="on"] body .panel-left .bot-panel .bv-pos .bv-ppnl .amt.bv-up{
  color:var(--wb-up) !important; }
html[data-comp="on"] body .panel-left .bot-panel .bv-pos .bv-ppnl .pv.bv-down,
html[data-comp="on"] body .panel-left .bot-panel .bv-pos .bv-ppnl .amt.bv-down{
  color:var(--wb-down) !important; }

/* —— 3×3 字段网格（持仓 / 平仓 共用 .bv-pgrid）—— */
html[data-comp="on"] body .panel-left .bot-panel .bv-pos .bv-pgrid{
  display:grid !important; grid-template-columns:repeat(3,1fr) !important; }
html[data-comp="on"] body .panel-left .bot-panel .bv-pos .bv-pgrid .c{
  padding:6px 10px !important; border-bottom:1px solid var(--wb-line) !important;
  border-right:1px solid var(--wb-line) !important; }
html[data-comp="on"] body .panel-left .bot-panel .bv-pos .bv-pgrid .c:nth-child(3n){
  border-right:0 !important; }
html[data-comp="on"] body .panel-left .bot-panel .bv-pos .bv-pgrid .k{
  display:block !important; font-size:9.5px !important; color:var(--wb-text3) !important; }
html[data-comp="on"] body .panel-left .bot-panel .bv-pos .bv-pgrid .v{
  display:block !important; font-size:12px !important; font-weight:700 !important;
  color:var(--wb-text) !important; margin-top:1px !important;
  font-variant-numeric:tabular-nums !important; }
html[data-comp="on"] body .panel-left .bot-panel .bv-pos .bv-pgrid .v.bv-up{
  color:var(--wb-up) !important; }
html[data-comp="on"] body .panel-left .bot-panel .bv-pos .bv-pgrid .v.bv-down{
  color:var(--wb-down) !important; }

/* —— 状态行（持仓）/ 原因行（平仓）：同用 .bv-pfoot —— */
/* [2613] 平仓「原因」行：原来被覆盖成灰(var(--wb-text2))，与信号卡「📍 平仓原因」的红色
   也不一致 → 用户要求「平仓原因统一用黄色提示」。这里统一 #d29922。 */
html[data-comp="on"] body .panel-left .bot-panel .bv-pos .bv-pfoot{
  padding:6px 10px !important; font-size:10.5px !important; color:#d29922 !important;
  line-height:1.5 !important; }
html[data-comp="on"] body .panel-left .bot-panel .bv-pos .bv-pfoot .lb{
  color:#d29922 !important; margin-right:6px !important; font-weight:700 !important; opacity:.85 !important; }
html[data-comp="on"] body .panel-left .bot-panel .bv-pos .bv-pfoot.warn{
  color:var(--wb-down) !important; }

/* —— 加仓明细 —— */
html[data-comp="on"] body .panel-left .bot-panel .bv-pos .bv-pdet{
  padding:5px 10px !important; font-size:10px !important; color:var(--wb-text3) !important;
  border-top:1px solid var(--wb-line) !important; }

/* —— 信号卡（真实结构，不加任何执行结果文案）—— */
html[data-comp="on"] body .panel-left .bot-panel .bv-sig{
  background:var(--wb-surface2) !important; border:1px solid var(--wb-line) !important;
  border-radius:var(--wb-r-md) !important; padding:9px 11px !important;
  margin-bottom:8px !important; box-shadow:none !important; }
html[data-comp="on"] body .panel-left .bot-panel .bv-sig .bv-sym{
  color:var(--wb-accent2) !important; font-weight:800 !important; font-size:14px !important; }
html[data-comp="on"] body .panel-left .bot-panel .bv-sig .bv-sig-time{
  color:var(--wb-text3) !important; font-size:10.5px !important; }
html[data-comp="on"] body .panel-left .bot-panel .bv-sig .bv-sig-price{
  color:var(--wb-text2) !important; font-size:11.5px !important; }
html[data-comp="on"] body .panel-left .bot-panel .bv-sig .bot-signal-reason{
  color:var(--wb-text3) !important; font-size:10.5px !important; }
/* [2613] 「平仓原因」统一用黄色提示。
   上面那条通用规则带 !important，会把内联的黄色压成灰 —— 同一处「平仓原因」在
   overlay 开/关两种状态下显示两种颜色，用户看到的是灰的那版。这里用专属 class
   再压一层，保证任何状态下都是黄的（与平仓卡 .bv-pfoot / 交易历史 .close-rec-reason 同色）。 */
html[data-comp="on"] body .panel-left .bot-panel .bv-sig .bot-signal-reason.wb-close-reason{
  color:#d29922 !important; }
html[data-comp="on"] body .panel-left .bot-panel .bv-sig .bv-pill{
  font-size:10.5px !important; font-weight:800 !important; padding:1px 7px !important;
  border-radius:5px !important; }
html[data-comp="on"] body .panel-left .bot-panel .bv-sig .bv-pill.long{
  color:var(--wb-up) !important; background:rgba(46,204,113,.16) !important; }
html[data-comp="on"] body .panel-left .bot-panel .bv-sig .bv-pill.short{
  color:var(--wb-down) !important; background:rgba(239,68,68,.16) !important; }
html[data-comp="on"] body .panel-left .bot-panel .bv-sig .bv-pill.warn{
  color:#f0b90b !important; background:rgba(240,185,11,.14) !important; }

/* —— 空态 —— */
html[data-comp="on"] body .panel-left .bot-panel .bv-empty{
  color:var(--wb-text3) !important; font-size:11.5px !important; }

/* —— 合并重复说明行：三个机器人面板里一模一样的「机器人详情…」只保留一条全局 ——
   全局那一条由 wb_overlay.js 注入到右侧板块顶部，且只在【趋势/DCA/预约】任一
   机器人面板可见时显示；切到币种池 / A股 / 风控面板时自动隐藏，不误导。 */

/* —— 状态行里重复的机器人名（标题已有）隐藏，避免同一屏出现两次同一个名字 —— */
html[data-comp="on"] body .bot-status-label{ display:none !important; }

/* ===================================================================
   机器人面板头部重排（wbp-* 前缀）
   作用域：html[data-comp="on"] body .bot-panel
   =================================================================== */
html[data-comp="on"] body .panel-left .bot-panel{
  --wbp-bd:var(--bp-line,#262d40);
  --wbp-bd2:var(--bp-line2,#333c54);
  --wbp-t2:var(--bp-txt2,#c6cede);
  --wbp-t3:var(--bp-txt3,#8a95aa);
  --wbp-up:var(--bp-up,#26d07f);
  --wbp-acc:var(--bp-acc,#f0b429);
  --wbp-acc2:var(--bp-acc2,#6a9bff);
  --wbp-down:var(--bp-down,#ff5b6f);
  background:var(--bp-card,#1a2030) !important;
  border:1px solid var(--wbp-bd) !important;
  border-radius:14px !important;
  padding:0 !important;
  overflow:hidden !important;
  display:flex !important;
  flex-direction:column !important;
}

/* ── [2610] 顶部说明行（.msc-dsub）：已从 DOM 删除，相关隐藏规则一并移除 ── */

/* ── F. 标题行：压扁 + 徽章靠右 ──────────────────────────────── */
html[data-comp="on"] body .bot-panel .msc-dhead{
  background:transparent !important;
  border:none !important;
  border-bottom:1px solid var(--wbp-bd) !important;
  border-radius:0 !important;
  box-shadow:none !important;
  padding:10px 11px !important;
  gap:9px !important;
  margin:0 !important;
  display:flex !important;
  align-items:center !important;
  flex-wrap:nowrap !important;
}
html[data-comp="on"] body .bot-panel .msc-ico{
  width:32px !important; height:32px !important; border-radius:10px !important;
  font-size:16px !important;
  background:rgba(106,155,255,.13) !important;
  border:1px solid rgba(106,155,255,.22) !important;
}
html[data-comp="on"] body .bot-panel .msc-dhead .nm{
  font-size:14.5px !important; font-weight:800 !important; line-height:1.15 !important;
  white-space:nowrap !important;
}
html[data-comp="on"] body .bot-panel .msc-dhead .code{
  font-size:9.5px !important; color:var(--wbp-t3) !important; margin-top:2px !important;
}

/* 徽章组：扫描中 / 道闸 / 运行状态 */
html[data-comp="on"] body .bot-panel .bot-panel-scanning,
html[data-comp="on"] body .bot-panel .ec-pill,
html[data-comp="on"] body .bot-panel .bot-panel-stopped,
html[data-comp="on"] body .bot-panel .bot-panel-running,
html[data-comp="on"] body .bot-panel .bot-panel-warning{
  font-size:10px !important; font-weight:800 !important;
  padding:3px 8px !important; border-radius:20px !important; white-space:nowrap !important;
  flex:0 0 auto !important;
}
html[data-comp="on"] body .bot-panel .bot-panel-scanning{
  background:rgba(38,208,127,.14) !important; color:var(--wbp-up) !important;
}
html[data-comp="on"] body .bot-panel .ec-pill{
  background:rgba(106,155,255,.14) !important; color:var(--wbp-acc2) !important;
  border:1px solid rgba(106,155,255,.3) !important;
}
/* 标题行的运行状态徽章：正常=绿，异常=黄/红 */
html[data-comp="on"] body .bot-panel .bot-panel-running{
  background:rgba(38,208,127,.14) !important; color:var(--wbp-up) !important;
}
html[data-comp="on"] body .bot-panel .bot-panel-warning{
  background:rgba(240,180,41,.13) !important; color:var(--wbp-acc) !important;
}
html[data-comp="on"] body .bot-panel .bot-panel-stopped{
  background:rgba(240,180,41,.13) !important; color:var(--wbp-acc) !important;
}

/* ── B. 介绍/设置：收成标题行右侧小图标 ──────────────────────── */
html[data-comp="on"] body .bot-panel .bp-ctrl{
  display:flex !important; gap:4px !important; margin:0 !important;
  flex:0 0 auto !important; align-items:center !important;
}
html[data-comp="on"] body .bot-panel .bp-btn{
  width:26px !important; height:26px !important;
  padding:0 !important; border-radius:8px !important;
  display:flex !important; align-items:center !important; justify-content:center !important;
  background:rgba(255,255,255,.03) !important;
  border:1px solid var(--wbp-bd2) !important; color:var(--wbp-t2) !important;
  font-size:0 !important;              /* 隐藏文字，只留图标 */
  transform:none !important; box-shadow:none !important;
  transition:border-color .15s,color .15s,background .15s !important;
}
/* 图标沿用真源 CSS 图形（.bp-ic.info 是边框画的 i，.bp-ic.gear 是虚线圆），
   只做尺寸/居中微调，不注入字符（避免与真源 :after 打架） */
html[data-comp="on"] body .bot-panel .bp-btn .bp-ic{
  margin:0 !important; position:relative !important;
  display:inline-block !important; vertical-align:middle !important;
}
/* 介绍：圆圈 i —— 放大到 13px */
html[data-comp="on"] body .bot-panel .bp-btn.intro .bp-ic.info{
  width:13px !important; height:13px !important;
  border:1.5px solid currentColor !important;
  border-radius:50% !important; font-size:0 !important;
}
html[data-comp="on"] body .bot-panel .bp-btn.intro .bp-ic.info:after{
  content:'i' !important; position:absolute !important;
  left:50% !important; top:50% !important; transform:translate(-50%,-52%) !important;
  font-size:9px !important; font-weight:800 !important; line-height:1 !important;
  font-style:normal !important;
}
/* 设置：齿轮虚线圆 —— 13px */
html[data-comp="on"] body .bot-panel .bp-btn.gear .bp-ic.gear{
  width:13px !important; height:13px !important;
  border:2px dashed currentColor !important; border-radius:50% !important;
}
html[data-comp="on"] body .bot-panel .bp-btn.intro:hover{
  color:var(--wbp-acc) !important; border-color:var(--wbp-acc) !important;
  background:rgba(240,180,41,.1) !important;
}
html[data-comp="on"] body .bot-panel .bp-btn.gear:hover{
  color:var(--wbp-acc2) !important; border-color:var(--wbp-acc2) !important;
  background:rgba(106,155,255,.1) !important;
}

/* ── C/D. 「运行详情」抽屉（包裹 msc-grid + bp-cfg）────────────── */
html[data-comp="on"] body .bot-panel .wbp-drw{
  background:rgba(0,0,0,.14) !important;
  border-bottom:1px solid var(--wbp-bd) !important;
  padding:0 11px !important;
  max-width:100% !important; overflow:hidden !important;
}
html[data-comp="on"] body .bot-panel .wbp-drw-btn{
  display:flex !important; align-items:center !important; gap:5px !important;
  width:100% !important; text-align:left !important;
  font-size:10.5px !important; color:var(--wbp-t3) !important;
  background:none !important; border:none !important; cursor:pointer !important;
  padding:6px 0 !important;
}
html[data-comp="on"] body .bot-panel .wbp-drw-btn:hover{ color:var(--wbp-t2) !important; }
html[data-comp="on"] body .bot-panel .wbp-drw-hint{
  margin-left:auto !important; font-size:9.5px !important; color:var(--wbp-t3) !important;
  opacity:.7 !important; white-space:nowrap !important; overflow:hidden !important;
  text-overflow:ellipsis !important; max-width:60% !important;
}
html[data-comp="on"] body .bot-panel .wbp-drw-btn::after{
  content:"▾" !important; font-size:9px !important; margin-left:2px !important;
  flex:0 0 auto !important; transition:transform .2s !important;
}
html[data-comp="on"] body .bot-panel .wbp-drw.open .wbp-drw-btn::after{ transform:rotate(180deg) !important; }
html[data-comp="on"] body .bot-panel .wbp-drw-body{
  display:none !important; padding:0 0 9px !important;
  max-width:100% !important; overflow:hidden !important;
}
html[data-comp="on"] body .bot-panel .wbp-drw.open .wbp-drw-body{ display:block !important; }

/* 抽屉里的数据格：4 列一行，「下次扫描」独占整行（时间戳需要宽度，否则被截） */
html[data-comp="on"] body .bot-panel .wbp-drw .msc-grid{
  display:grid !important; grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:5px !important; margin:0 0 7px !important; width:100% !important;
}
html[data-comp="on"] body .bot-panel .wbp-drw .msc-kv{
  background:rgba(255,255,255,.028) !important;
  border:1px solid var(--wbp-bd) !important;
  border-radius:8px !important; padding:6px 7px !important;
  min-width:0 !important; max-width:100% !important; overflow:hidden !important;
}
html[data-comp="on"] body .bot-panel .wbp-drw .msc-kv .k{
  font-size:9px !important; color:var(--wbp-t3) !important;
}
html[data-comp="on"] body .bot-panel .wbp-drw .msc-kv .v{
  font-size:11.5px !important; font-weight:800 !important; margin-top:2px !important;
  font-variant-numeric:tabular-nums !important;
  /* 不截断：宁可换行也不省略号（截断会让用户看不到完整时间，属于误导） */
  white-space:normal !important; overflow:hidden !important; text-overflow:clip !important;
  word-break:break-all !important; overflow-wrap:anywhere !important; line-height:1.3 !important;
}
/* 「下次扫描」保留整行（.full），确保完整时间戳可见 */
html[data-comp="on"] body .bot-panel .wbp-drw .msc-kv.full{ grid-column:1/-1 !important; }

/* 抽屉里的配置 chip */
html[data-comp="on"] body .bot-panel .wbp-drw .bp-cfg{
  display:flex !important; flex-wrap:wrap !important; gap:5px !important; padding:0 !important;
}
html[data-comp="on"] body .bot-panel .wbp-drw .bot-panel-config-item{
  font-size:10px !important; color:var(--wbp-t3) !important;
  background:transparent !important;
  border:1px dashed var(--wbp-bd) !important;
  border-radius:6px !important; padding:2px 7px !important;
  max-width:100% !important; overflow:hidden !important; text-overflow:ellipsis !important;
  white-space:nowrap !important;
}
html[data-comp="on"] body .bot-panel .wbp-drw .bot-panel-config-item span{ color:var(--wbp-t2) !important; }

/* ── E. 状态条：正常隐藏，异常才显示 ──────────────────────────── */
/* 默认（running）隐藏；warning / stopped / disabled 才显示 */
html[data-comp="on"] body .bot-panel .msc-rows:has(.bot-status-value.running){ display:none !important; }
html[data-comp="on"] body .bot-panel .msc-rows:has(.bot-status-value.warning),
html[data-comp="on"] body .bot-panel .msc-rows:has(.bot-status-value.stopped),
html[data-comp="on"] body .bot-panel .msc-rows:has(.bot-status-value.disabled){
  display:block !important;
  background:transparent !important; border:none !important; border-radius:0 !important;
  margin:0 !important; padding:6px 11px !important; overflow:visible !important;
}
html[data-comp="on"] body .bot-panel .msc-rows:has(.bot-status-value.warning) .bot-status-value{
  color:var(--wbp-acc) !important; font-weight:800 !important;
}
html[data-comp="on"] body .bot-panel .msc-rows:has(.bot-status-value.stopped) .bot-status-value,
html[data-comp="on"] body .bot-panel .msc-rows:has(.bot-status-value.disabled) .bot-status-value{
  color:var(--wbp-down) !important; font-weight:800 !important;
}
/* 机器人名标签（重复）已在上轮隐藏，这里兜底 */
html[data-comp="on"] body .bot-panel .bot-status-label{ display:none !important; }

/* ── F. 页签：上移 + 绿色淡底选中态（加实边框区分）─────────────── */
html[data-comp="on"] body .bot-panel .bv-sub.bv-sub5{
  order:3 !important;
  display:flex !important; gap:3px !important;
  background:rgba(0,0,0,.16) !important;
  border:none !important; border-bottom:1px solid var(--wbp-bd) !important;
  border-radius:0 !important; padding:5px 7px !important; margin:0 !important;
}
html[data-comp="on"] body .bot-panel .bv-sub.bv-sub5 button{
  flex:1 1 0 !important; min-width:0 !important;
  font-size:11.5px !important; font-weight:800 !important; padding:7px 1px !important;
  border:none !important; border-radius:8px !important;
  background:transparent !important; color:var(--wbp-t2) !important;
  box-shadow:none !important;
}
/* [2613] 页签数字徽章：原来 opacity:.75 + font-size:10px，数字又小又灰看不清。
   改为不透明、11px 粗体、等宽数字 + 亮色描边。 */
html[data-comp="on"] body .bot-panel .bv-sub.bv-sub5 button .n{
  opacity:1 !important; font-weight:800 !important; font-size:11px !important;
  margin-left:3px !important; background:rgba(138,149,170,.22) !important; padding:0 5px !important;
  min-width:16px !important; display:inline-block !important; text-align:center !important;
  font-variant-numeric:tabular-nums !important; line-height:16px !important;
  border:1px solid rgba(138,149,170,.38) !important;
  border-radius:7px !important; color:inherit !important;
}
html[data-comp="on"] body .bot-panel .bv-sub.bv-sub5 button.on{
  background:rgba(46,204,113,.16) !important; color:#4ade80 !important;
  box-shadow:inset 0 0 0 1px rgba(46,204,113,.75) !important;
  font-weight:900 !important;
}
html[data-comp="on"] body .bot-panel .bv-sub.bv-sub5 button.on .n{
  background:rgba(74,222,128,.24) !important; color:#4ade80 !important; opacity:1 !important;
  border-color:rgba(74,222,128,.45) !important;
}

/* ── 顺序：标题(1) → 抽屉(2) → 页签(3) → 内容(4) ──────────────── */
html[data-comp="on"] body .bot-panel > .msc-dhead{ order:1 !important; }
html[data-comp="on"] body .bot-panel > .wbp-drw{ order:2 !important; }
html[data-comp="on"] body .bot-panel > .bv-sub.bv-sub5{ order:3 !important; }

/* 列表容器在页签之后 */
html[data-comp="on"] body .bot-panel > .bot-signals-list,
html[data-comp="on"] body .bot-panel > [id$="-positions"],
html[data-comp="on"] body .bot-panel > [id$="-closes"]{ order:4 !important; }

/* [2597] 信号卡「执行失败原因」不再被裁字。
   现象：失败文案（如「同币种方向冲突: 已持有 long，禁止开 short（双向开仓防护）」）
   比容器宽 3px，.bot-signal-result 是 flex 且不换行，末尾文字被 overflow 裁掉
   ——用户看不到完整失败原因，属于信息被藏起来。
   修复：允许该行换行显示（flex-wrap + 子项可断行），不裁字。 */
html[data-comp="on"] body .bot-panel .bv-sig .bot-signal-result{
  flex-wrap:wrap !important; align-items:flex-start !important;
  overflow:visible !important; min-width:0 !important; max-width:100% !important;
}
html[data-comp="on"] body .bot-panel .bv-sig .bot-signal-result > *{
  min-width:0 !important; max-width:100% !important; overflow-wrap:anywhere !important;
  word-break:break-word !important; white-space:normal !important;
}
