/* ==============================================================
   暗黑主题（body[data-theme=dark]）：变量覆盖 + 硬编码组件修正
   切换由侧栏底部按钮控制，localStorage 记忆；浅色默认 = 方案 C 蓝白
   ============================================================== */
[data-theme="dark"] {
  color-scheme: dark;
  --ink: #e6eaf2;
  --ink-2: #b3bac8;
  --ink-3: #8b93a6;
  --line: #262e3d;
  --line-2: #2f3848;
  --bg: #0e121a;
  --bg-2: #161c28;
  --card-bg: #161c28;
  --surface: rgba(18, 22, 31, .96);
  --shadow: 0 8px 26px rgba(0, 0, 0, .5);
  --ok: #43d98a;
  --ok-bg: #12301f;
  --warn: #e8b45a;
  --warn-bg: #33280f;
  --danger: #ff7b72;
  --danger-bg: #3a1a18;
  --info: #5ec1f0;
  --info-bg: #0f2a3d;
  --accent: #38b6e8;
  --accent-soft: #0f2a3d;
  /* 侧栏（shell.css 变量在 body 作用域覆盖） */
  --side-bg: #12161f;
  --side-bg-2: #1d2432;
  --side-line: #262e3d;
  --side-ink: #e6eaf2;
  --side-ink-2: #8b93a6;
}

/* ---- 硬编码表面色修正 ---- */
[data-theme="dark"] .topbar { background: rgba(14, 18, 26, .92); }
[data-theme="dark"] .input,
[data-theme="dark"] textarea.input { background: #10151f; }
[data-theme="dark"] .btn-primary { background: #e6eaf2; color: #0e121a; }
[data-theme="dark"] .btn-primary:hover { background: #f2f5fa; }
[data-theme="dark"] .tab.active { background: #e6eaf2; color: #0e121a; }
[data-theme="dark"] .badge-muted { background: #1e2530; color: #aeb6c6; }
[data-theme="dark"] .msg-error { border-color: #57302d; }
[data-theme="dark"] .msg-success { border-color: #1f4433; }
[data-theme="dark"] .msg-info { border-color: #1c3a52; }
[data-theme="dark"] .tomorrow-chip { background: linear-gradient(90deg, #241d0d 0%, #1a1710 100%); border-color: #4d3f1a; }
[data-theme="dark"] .tomorrow-chip:hover { background: #2d2410; border-color: #6b5722; color: #e8cf8a; }
[data-theme="dark"] .tomorrow-item { background: var(--card-bg); border-color: var(--line); }
[data-theme="dark"] .tomorrow-item:hover { background: #1a2130; }
[data-theme="dark"] .row-monitored { background: #0f1c17; }
[data-theme="dark"] .row-monitored:hover { background: #12241b; }
[data-theme="dark"] .row-live { background: #0f1a16; }
[data-theme="dark"] .row-live:hover { background: #122019; }
[data-theme="dark"] .portal-card { background: var(--bg); box-shadow: none; }
[data-theme="dark"] .portal-live { border-color: #1d4a63; background: linear-gradient(160deg, #10151f 30%, #0d1e2b 100%); }
[data-theme="dark"] .portal-live:hover { border-color: #2d6a8f; }
[data-theme="dark"] .portal-glow { background: radial-gradient(circle, rgba(56, 182, 232, .12), transparent 68%); }
[data-theme="dark"] .portal-soon { background: linear-gradient(160deg, #12161f 40%, #161b24 100%); }
[data-theme="dark"] .soon-art .lane { background: #232b3a; }
[data-theme="dark"] .dot-muted { background: #3a4353; }
[data-theme="dark"] .soon-cone { color: #4a5468; }
[data-theme="dark"] .mobilebar { background: rgba(18, 22, 31, .92); border-bottom-color: var(--line); }
[data-theme="dark"] .anon-wrap, [data-theme="dark"] .shell-anon { background: #0e121a; }
[data-theme="dark"] .config-tab.active { background: #161c28; }
[data-theme="dark"] .switch-track { background: #2a3342; }
[data-theme="dark"] .size-chip.active, [data-theme="dark"] .day-chip.active { background: #e6eaf2; color: #0e121a; border-color: #e6eaf2; }
[data-theme="dark"] .detail-row > td { background: #12161f; }
[data-theme="dark"] .link-pill { background: #1a2130; border-color: var(--line-2); }
[data-theme="dark"] .link-pill:hover { background: #1d2942; border-color: #2d5f8f; color: #7fc8ef; }
[data-theme="dark"] .mini-link { background: #1a2130; border-color: var(--line-2); }
[data-theme="dark"] .mini-link:hover { background: #1d2942; border-color: #2d5f8f; }
[data-theme="dark"] .ending-danger { border-color: #57302d; }
[data-theme="dark"] .ending-warn { border-color: #4d3f1a; }
[data-theme="dark"] .draw-hit { background: var(--ok-bg); border-color: #1f4433; }
[data-theme="dark"] .draw-dry { background: var(--warn-bg); border-color: #4d3f1a; }
[data-theme="dark"] .module-item.module-on { border-color: #1f4433; background: linear-gradient(180deg, var(--ok-bg), var(--bg) 65%); }
[data-theme="dark"] .gh-ok { background: var(--ok-bg); color: var(--ok); border-color: #1f4433; }
[data-theme="dark"] .gh-bad { background: var(--danger-bg); color: var(--danger); border-color: #57302d; }
[data-theme="dark"] .error-row td { background: var(--danger-bg); border-bottom-color: #57302d; }
[data-theme="dark"] .preset-col-admin { border-color: #4a2b34; background: #1c1418; }
[data-theme="dark"] .line-del:hover { border-color: #5c3330; background: #241514; color: var(--danger); }
[data-theme="dark"] .admin-tab:hover { background: rgba(255, 255, 255, .05); }
[data-theme="dark"] .role-pill-owner { background: #3a1a20; color: #ff8d96; box-shadow: inset 0 0 0 1px #57302d; }
[data-theme="dark"] .role-pill-admin { background: #33260e; color: #e8b45a; }
[data-theme="dark"] .role-pill-user { background: #0f2a3d; color: #5ec1f0; }
[data-theme="dark"] .role-btn-admin:hover { background: #33260e; border-color: #5a4517; color: #e8b45a; }
[data-theme="dark"] .role-btn-user:hover { background: #0f2a3d; border-color: #1c4a68; color: #5ec1f0; }
[data-theme="dark"] .sched-mode.active { background: var(--bg-2); color: var(--ink); box-shadow: 0 1px 3px rgba(0,0,0,.4); }
[data-theme="dark"] .bulk-wrap tr:has(.bulk-check:checked) { background: #14243a; }
[data-theme="dark"] .table-stack tr.row-active { background: #241514; border-color: #57302d; }
[data-theme="dark"] .table-stack tr.row-live { background: #0f1c17; border-color: #1f4433; }
[data-theme="dark"] .expand-btn.open { background: var(--bg-2); border-color: var(--ink-2); color: var(--ink); }
[data-theme="dark"] .pager-btn:hover { background: var(--bg-2); }
[data-theme="dark"] .side-nav::-webkit-scrollbar-thumb { background: #2a3342; }

/* ---- 主题切换按钮（侧栏底部，退出按钮左侧；圆形填充 vs 退出的透明方块）---- */
.side-theme {
  width: 32px; height: 32px;
  flex: 0 0 32px;
  margin-right: 2px;
  border-radius: 50%;
  border: none;
  cursor: pointer;
  display: grid;
  place-items: center;
  font-size: 14px;
  line-height: 1;
  background: var(--accent-soft, #e8f4fd);
  color: var(--info, #0b7fb4);
  transition: transform .25s ease, box-shadow .25s ease;
}
.side-theme:hover {
  transform: rotate(28deg) scale(1.08);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--info, #0b7fb4) 16%, transparent);
}
.side-theme-form { display: flex; flex-shrink: 0; }
