/* ==========================================================================
   BiNodes 全站暗色主题（Deep Space Blue-Purple Glass）
   --------------------------------------------------------------------------
   设计目标：与亮色毛玻璃层 glass-theme.css 对称的暗色版本——深蓝黑底 + 蓝紫极光
            光斑 + 半透明深色玻璃面，品牌蓝 #3461ff 提亮为强调色，整体通透一致。

   生效条件：<html data-theme="dark">，由以下两处共同维护：
     1) templates/base_index.html <head> 最前的内联脚本（首屏无闪烁地写入该属性）；
     2) statics/js/index.js 的 BinodesTheme 模块（切换、持久化、系统跟随）。

   加载顺序：必须放在 templates/base_index.html 的 {%block head%} **之后**。
             dashboard/backtest/knowledge 等页面 CSS 都写在 head block 内，
             暗色层排在其后才能真正覆盖它们。

   维护约定：
     - 所有选择器一律以 html[data-theme="dark"] 前缀限定，亮色模式零影响；
     - 优先“重定义变量”（--glass-*、--bs-*、--gh-*），只有写死颜色才逐条覆盖；
     - 原亮色层 glass-theme.css 与各页面 CSS 一律不改，暗色风格只在本文件维护；
     - 被覆盖的原值若带 !important，此处必须同样带 !important 才能生效；
     - M2-b 与 O 两段是“镜像段”：分别对应 backtest.css 与各模板内联样式里
       写死的颜色，按语义分档自动生成（顺序与来源一致，保证层叠结果不变）。
       若源文件新增了写死的亮色样式，这两段需要同步补充；
       其余段落为手写，新增页面模块时在此追加对应小节。
   ========================================================================== */

/* ==========================================================================
   A. 变量层
   ========================================================================== */

html[data-theme="dark"] {
    color-scheme: dark;
    scrollbar-color: #3a4a6b #0b1120;

    /* A1. 暗色设计令牌（本文件内部复用） */
    --dt-base: #070b16;
    --dt-base-2: #0a1120;
    --dt-base-3: #0b1224;
    --dt-surface: rgba(19, 26, 46, .72);
    --dt-surface-2: rgba(23, 32, 56, .82);
    --dt-surface-solid: #131a2e;
    --dt-raised: #1a2440;
    --dt-line: rgba(139, 158, 205, .16);
    --dt-line-2: rgba(139, 158, 205, .30);
    --dt-text: #d8e0f2;
    --dt-text-2: #c2cce2;
    --dt-text-3: #8b97b3;
    --dt-text-dim: #6c7a99;
    --dt-ink-strong: #eef3ff;
    --dt-accent: #5b8cff;
    --dt-accent-2: #8b7dff;
    --dt-teal: #4fd1b5;
    --dt-green: #34d399;
    --dt-red: #fb7185;
    --dt-amber: #fbbf24;
    --dt-accent-soft: #8bb0ff;
    --dt-red-soft: #ff9aa6;
    --dt-amber-soft: #fcd34d;
    --dt-cyan: #38bdf8;
    /* 语义浅底（暗色补偿）：用于状态/涨跌/警示类底色 */
    --dt-tint-accent: rgba(91, 140, 255, .14);
    --dt-tint-teal: rgba(79, 209, 181, .12);
    --dt-tint-green: rgba(52, 211, 153, .14);
    --dt-tint-red: rgba(251, 113, 133, .14);
    --dt-tint-amber: rgba(251, 191, 36, .14);
    --dt-tint-neutral: rgba(255, 255, 255, .05);

    /* A2. 重定义毛玻璃变量 —— .card / .metrics-card / .chart-container /
       .modal-content / .table / .pagination / .data-dashboard 等自动跟随 */
    --glass-bg: var(--dt-surface);
    --glass-bg-strong: rgba(22, 31, 54, .92);
    --glass-border: var(--dt-line);
    --glass-shadow: 0 10px 34px rgba(0, 0, 0, .45), 0 2px 8px rgba(0, 0, 0, .35);
    --glass-shadow-hover: 0 16px 44px rgba(0, 0, 0, .55), 0 4px 14px rgba(0, 0, 0, .40);
    --glass-text: var(--dt-text);
    --glass-text-muted: var(--dt-text-3);
    --glass-primary: #6a9bff;
    --glass-primary-soft: #8bb0ff;
    --glass-gradient: linear-gradient(135deg, #5b8cff 0%, #3461ff 100%);
    /* 注意：不重定义 --glass-radius / --glass-blur —— 亮色层在移动端媒体查询里
       用 :root 收紧过二者，此处若重定义会盖掉移动端取值。 */

    /* A3. Bootstrap 5.2 根变量 —— 带起 .bg-light / .text-dark / .border /
       .dropdown-menu / .table / .progress / .toast / .popover 等原生组件 */
    --bs-body-bg: var(--dt-base-2);
    --bs-body-bg-rgb: 10, 17, 32;
    --bs-body-color: var(--dt-text);
    --bs-body-color-rgb: 216, 224, 242;
    --bs-emphasis-color: #ffffff;
    --bs-emphasis-color-rgb: 255, 255, 255;
    --bs-secondary-color: var(--dt-text-3);
    --bs-secondary-color-rgb: 139, 151, 179;
    --bs-secondary-bg: var(--dt-surface-solid);
    --bs-tertiary-bg: #18213a;
    --bs-tertiary-color: var(--dt-text-2);
    --bs-heading-color: var(--dt-ink-strong);
    --bs-border-color: var(--dt-line);
    --bs-border-color-translucent: var(--dt-line);
    --bs-link-color: #6a9bff;
    --bs-link-color-rgb: 106, 155, 255;
    --bs-link-hover-color: #8fb4ff;
    --bs-light-rgb: 26, 36, 64;
    --bs-dark-rgb: 216, 224, 242;
    --bs-white-rgb: 19, 26, 46;
    --bs-code-color: #ffb4c6;
    --bs-highlight-bg: #3b3418;
    --bs-table-color: var(--dt-text);
    --bs-table-bg: transparent;
    --bs-table-border-color: var(--dt-line);
    --bs-table-striped-bg: rgba(255, 255, 255, .03);
    --bs-table-striped-color: var(--dt-text);
    --bs-table-active-bg: rgba(91, 140, 255, .12);
    --bs-table-active-color: #ffffff;
    --bs-table-hover-bg: rgba(91, 140, 255, .10);
    --bs-table-hover-color: #ffffff;
    --bs-dropdown-bg: #151d33;
    --bs-dropdown-color: var(--dt-text);
    --bs-dropdown-link-color: var(--dt-text);
    --bs-dropdown-link-hover-bg: var(--dt-tint-accent);
    --bs-dropdown-link-hover-color: #ffffff;
    --bs-dropdown-link-active-bg: var(--dt-accent);
    --bs-dropdown-link-active-color: #ffffff;
    --bs-dropdown-border-color: var(--dt-line);
    --bs-modal-bg: #151d33;
    --bs-modal-color: var(--dt-text);
    --bs-modal-header-border-color: var(--dt-line);
    --bs-modal-footer-border-color: var(--dt-line);
    --bs-offcanvas-bg: #131a2e;
    --bs-offcanvas-color: var(--dt-text);
    --bs-offcanvas-border-color: var(--dt-line);
    --bs-progress-bg: rgba(255, 255, 255, .08);
    --bs-list-group-color: var(--dt-text);
    --bs-list-group-bg: transparent;
    --bs-list-group-border-color: var(--dt-line);
    --bs-popover-bg: #18213a;
    --bs-popover-border-color: var(--dt-line);
    --bs-popover-header-bg: #1a2440;
    --bs-popover-body-color: var(--dt-text);
    --bs-toast-bg: rgba(21, 29, 51, .94);
    --bs-toast-color: var(--dt-text);
    --bs-toast-border-color: var(--dt-line);
    --bs-accordion-color: var(--dt-text);
    --bs-accordion-bg: transparent;
    --bs-accordion-border-color: var(--dt-line);
    --bs-accordion-btn-color: var(--dt-text);
    --bs-accordion-btn-bg: transparent;
    --bs-accordion-active-color: var(--dt-ink-strong);
    --bs-accordion-active-bg: var(--dt-tint-accent);
    --bs-nav-tabs-link-active-bg: transparent;
    --bs-nav-tabs-link-active-color: var(--dt-ink-strong);
    --bs-nav-tabs-border-color: var(--dt-line);
    --bs-nav-pills-link-active-bg: var(--dt-accent);
    --bs-form-valid-color: var(--dt-green);
    --bs-form-invalid-color: var(--dt-red);

    /* A4. 重定义 style.css 的 API Key 页专用变量（--gh-*） */
    --gh-bg: var(--dt-base-2);
    --gh-bg-subtle: var(--dt-surface-solid);
    --gh-border: #2a3350;
    --gh-text-primary: var(--dt-text);
    --gh-text-secondary: var(--dt-text-3);
    --gh-link: #6a9bff;
    --gh-btn-bg: #1a2340;
    --gh-btn-hover: #222d4d;
}

/* ==========================================================================
   B. 全局背景与基础排版
   ========================================================================== */

html[data-theme="dark"] body {
    color: var(--dt-text);
    background-color: var(--dt-base-2);
}

/* 深色极光：沿用亮色层的 fixed 伪元素方案（滚动时不重绘，性能与亮色一致） */
html[data-theme="dark"] body::before {
    background:
        radial-gradient(40rem 40rem at 10% -8%, rgba(91, 140, 255, .20), transparent 62%),
        radial-gradient(34rem 34rem at 98% 14%, rgba(139, 125, 255, .16), transparent 62%),
        radial-gradient(36rem 36rem at 78% 98%, rgba(56, 189, 248, .10), transparent 62%),
        linear-gradient(165deg, #070b16 0%, #0a1120 46%, #0b1224 100%);
}

html[data-theme="dark"] h1,
html[data-theme="dark"] h2,
html[data-theme="dark"] h3,
html[data-theme="dark"] h4,
html[data-theme="dark"] h5,
html[data-theme="dark"] h6 {
    color: var(--dt-ink-strong);
}

html[data-theme="dark"] ::selection {
    background: rgba(91, 140, 255, .34);
    color: #ffffff;
}

html[data-theme="dark"] ::-webkit-scrollbar-thumb {
    background: rgba(139, 158, 205, .30);
}

html[data-theme="dark"] ::-webkit-scrollbar-thumb:hover {
    background: rgba(139, 158, 205, .48);
}

html[data-theme="dark"] a {
    color: #6a9bff;
}

html[data-theme="dark"] a:hover {
    color: #8fb4ff;
}

html[data-theme="dark"] hr {
    border-color: var(--dt-line);
    opacity: 1;
}

html[data-theme="dark"] .text-muted {
    /* BS 5.2 把 .text-muted 写死为 #6c757d，只能显式覆盖 */
    color: var(--dt-text-3) !important;
}

/* ==========================================================================
   C. 顶栏 / 搜索框 / 侧边栏
   ========================================================================== */

html[data-theme="dark"] .top-header .navbar {
    background: rgba(11, 17, 32, .82);
    border-bottom: 1px solid var(--dt-line);
    box-shadow: 0 4px 24px rgba(0, 0, 0, .45);
}

html[data-theme="dark"] .top-header .navbar .searchbar .form-control {
    background: rgba(255, 255, 255, .06);
    border: 1px solid var(--dt-line);
    color: var(--dt-text);
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, .35);
}

html[data-theme="dark"] .top-header .navbar .searchbar .form-control::placeholder {
    color: var(--dt-text-dim);
}

html[data-theme="dark"] .top-header .navbar .searchbar .form-control:focus {
    background: rgba(255, 255, 255, .09);
    border-color: rgba(91, 140, 255, .60);
    color: var(--dt-ink-strong);
    box-shadow: 0 0 0 .25rem rgba(91, 140, 255, .18);
}

/* 顶栏下方下拉的小三角由 style.css 用白底 + #ddd 边框绘制 */
html[data-theme="dark"] .top-header .navbar .dropdown-menu::after {
    background: #151d33;
    border-color: var(--dt-line);
}

html[data-theme="dark"] .sidebar-wrapper {
    background: linear-gradient(180deg, rgba(14, 20, 38, .97) 0%, rgba(11, 17, 33, .95) 100%);
    border-right: 1px solid var(--dt-line);
    box-shadow: 4px 0 24px rgba(0, 0, 0, .40);
}

html[data-theme="dark"] .sidebar-wrapper .sidebar-header {
    border-bottom: 1px solid var(--dt-line);
}

html[data-theme="dark"] .sidebar-wrapper .metismenu a {
    color: var(--dt-text-3);
}

html[data-theme="dark"] .sidebar-wrapper .metismenu a:hover {
    color: #ffffff;
    background: rgba(91, 140, 255, .14);
    box-shadow: 0 4px 14px rgba(0, 0, 0, .28);
}

html[data-theme="dark"] .sidebar-wrapper .metismenu ul .mm-active > a,
html[data-theme="dark"] .sidebar-wrapper .metismenu ul a:hover,
html[data-theme="dark"] .sidebar-wrapper .metismenu ul a:focus {
    color: #9dbcff;
    background: rgba(91, 140, 255, .16);
}

/* metisMenu 的折叠箭头用 border 绘制，暗底需要浅色 */
html[data-theme="dark"] .sidebar-wrapper .metismenu .has-arrow:after {
    border-color: currentColor transparent transparent;
}

html[data-theme="dark"] .menu-label,
html[data-theme="dark"] .sidebar-wrapper .menu-title {
    color: var(--dt-text-3);
}

html[data-theme="dark"] .mobile-toggle-icon {
    color: var(--dt-text);
}

/* ==========================================================================
   D. 卡片 / 面板 / 区块标题
   ========================================================================== */

html[data-theme="dark"] .card-header {
    /* bootstrap-extended.css 写死 rgb(255 255 255) */
    background: transparent;
    border-bottom: 1px solid var(--dt-line);
    color: var(--dt-ink-strong);
}

html[data-theme="dark"] .card-footer {
    border-top: 1px solid var(--dt-line);
}

html[data-theme="dark"] .metrics-card hr,
html[data-theme="dark"] .card hr {
    border-color: var(--dt-line);
}

html[data-theme="dark"] .metrics-card:hover {
    box-shadow: var(--glass-shadow-hover);
}

html[data-theme="dark"] .data-section-title {
    color: var(--dt-ink-strong);
    border-bottom-color: var(--dt-line);
}

html[data-theme="dark"] .section-title,
html[data-theme="dark"] .chart-title {
    color: var(--dt-ink-strong);
}

html[data-theme="dark"] .section-subtitle,
html[data-theme="dark"] .stats-info,
html[data-theme="dark"] .stats-info span {
    color: var(--dt-text-3);
}

html[data-theme="dark"] .data-dashboard,
html[data-theme="dark"] .chart-container,
html[data-theme="dark"] .metrics-card {
    /* index.css 里三者写死 #fff，变量层覆盖不到时以本规则兜底 */
    background: var(--dt-surface);
    border-color: var(--glass-border);
}

html[data-theme="dark"] .font-bule-content {
    color: var(--dt-text-2) !important;
}

html[data-theme="dark"] .bg-light-blue {
    background: var(--dt-tint-accent) !important;
}

/* ==========================================================================
   E. 表格（含 bootstrap-table）
   ========================================================================== */

html[data-theme="dark"] .table thead th,
html[data-theme="dark"] .fixed-table-container .table thead th {
    color: var(--dt-text-3);
    background: rgba(255, 255, 255, .04);
    border-bottom-color: var(--dt-line);
}

html[data-theme="dark"] .table > :not(caption) > * > * {
    border-bottom-color: var(--dt-line);
}

html[data-theme="dark"] .table-hover tbody tr:hover,
html[data-theme="dark"] .fixed-table-container .table-hover tbody tr:hover {
    background: rgba(91, 140, 255, .10);
    color: #ffffff;
}

html[data-theme="dark"] .table th {
    background: rgba(255, 255, 255, .04);
    color: var(--dt-text-3);
    border-color: var(--dt-line);
}

html[data-theme="dark"] .table td {
    border-color: var(--dt-line);
}

html[data-theme="dark"] .table-striped > tbody > tr:nth-of-type(odd) > * {
    color: var(--dt-text);
}

html[data-theme="dark"] .table-light {
    --bs-table-color: var(--dt-text);
    --bs-table-bg: var(--dt-surface-solid);
    --bs-table-border-color: var(--dt-line);
    --bs-table-striped-bg: rgba(255, 255, 255, .04);
    --bs-table-striped-color: var(--dt-text);
    --bs-table-hover-bg: rgba(91, 140, 255, .12);
    --bs-table-hover-color: #ffffff;
}

html[data-theme="dark"] .fixed-table-container,
html[data-theme="dark"] .bootstrap-table .fixed-table-container {
    background: transparent;
}

html[data-theme="dark"] .fixed-table-loading {
    background: var(--dt-surface-solid);
    color: var(--dt-text-3);
}

html[data-theme="dark"] .fixed-table-pagination,
html[data-theme="dark"] .fixed-table-pagination .page-list .btn,
html[data-theme="dark"] .bootstrap-table .fixed-table-pagination .dropdown-toggle {
    color: var(--dt-text-3);
}

html[data-theme="dark"] .bootstrap-table .fixed-table-pagination .pagination-detail {
    color: var(--dt-text-3);
}

html[data-theme="dark"] .no-records-found td {
    color: var(--dt-text-3);
}

/* 移动端卡片式表格（index.css 的 .card-view 系列） */
html[data-theme="dark"] .card-views,
html[data-theme="dark"] .card-view {
    background: var(--dt-surface);
    border-color: var(--glass-border);
}

html[data-theme="dark"] .card-view td {
    border-color: var(--dt-line);
}

html[data-theme="dark"] .card-view td::before {
    color: var(--dt-text-3);
}

/* 新写入行高亮（index.css 写死浅绿 + !important） */
html[data-theme="dark"] .newly-added-row,
html[data-theme="dark"] .newly-added-row:hover {
    background-color: var(--dt-tint-green) !important;
}

html[data-theme="dark"] .json-formatted {
    background: rgba(0, 0, 0, .28);
    color: var(--dt-text-2);
    border-color: var(--dt-line);
}

/* JSON 语法高亮：原浅底配色在暗色下对比不足，统一提亮 */
html[data-theme="dark"] .json-formatted .string {
    color: #7ee2a8;
}

html[data-theme="dark"] .json-formatted .number {
    color: #fcd34d;
}

html[data-theme="dark"] .json-formatted .boolean {
    color: #79c0ff;
}

html[data-theme="dark"] .json-formatted .null {
    color: var(--dt-text-dim);
}

html[data-theme="dark"] .json-formatted .key {
    color: #ff9aa6;
}

html[data-theme="dark"] .font-red-content {
    color: #ff9aa6 !important;
}

/* ==========================================================================
   F. 按钮 / 表单 / 原生控件
   ========================================================================== */

html[data-theme="dark"] .btn-light,
html[data-theme="dark"] .btn-white {
    background: rgba(255, 255, 255, .08);
    border: 1px solid var(--dt-line);
    color: var(--dt-text);
}

html[data-theme="dark"] .btn-light:hover,
html[data-theme="dark"] .btn-white:hover {
    background: rgba(255, 255, 255, .14);
    border-color: var(--dt-line-2);
    color: #ffffff;
}

html[data-theme="dark"] .btn-outline-primary {
    border-color: rgba(91, 140, 255, .55);
    color: #8bb0ff;
    background: rgba(91, 140, 255, .10);
}

html[data-theme="dark"] .btn-outline-primary:hover,
html[data-theme="dark"] .btn-outline-primary:focus {
    background: var(--glass-gradient);
    border-color: transparent;
    color: #ffffff;
}

html[data-theme="dark"] .btn-outline-secondary {
    border-color: var(--dt-line-2);
    color: var(--dt-text-3);
}

html[data-theme="dark"] .btn-outline-secondary:hover,
html[data-theme="dark"] .btn-outline-secondary:focus {
    background: rgba(255, 255, 255, .10);
    border-color: var(--dt-line-2);
    color: #ffffff;
}

html[data-theme="dark"] .btn-close {
    filter: invert(1) grayscale(1) brightness(1.8);
}

html[data-theme="dark"] .form-control,
html[data-theme="dark"] .form-select {
    /* BS 5.2 把 .form-control 的 color/background 写死，需显式覆盖 */
    background-color: rgba(255, 255, 255, .06);
    border: 1px solid var(--dt-line);
    color: var(--dt-text);
}

html[data-theme="dark"] .form-control::placeholder {
    color: var(--dt-text-dim);
}

html[data-theme="dark"] .form-control:focus,
html[data-theme="dark"] .form-select:focus {
    background-color: rgba(255, 255, 255, .09);
    border-color: rgba(91, 140, 255, .60);
    color: var(--dt-ink-strong);
    box-shadow: 0 0 0 .25rem rgba(91, 140, 255, .18);
}

html[data-theme="dark"] .form-select {
    /* 原生箭头是深色 SVG，换成浅色描边版本 */
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%238b97b3' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
}

html[data-theme="dark"] .form-control:disabled,
html[data-theme="dark"] .form-select:disabled,
html[data-theme="dark"] .form-control[readonly] {
    background-color: rgba(255, 255, 255, .03);
    color: var(--dt-text-dim);
}

html[data-theme="dark"] .input-group-text {
    background: rgba(255, 255, 255, .06);
    border: 1px solid var(--dt-line);
    color: var(--dt-text-3);
}

html[data-theme="dark"] .form-label,
html[data-theme="dark"] label {
    color: var(--dt-text-2);
}

html[data-theme="dark"] .form-check-input {
    background-color: rgba(255, 255, 255, .10);
    border-color: var(--dt-line-2);
}

html[data-theme="dark"] .form-check-input:checked {
    background-color: var(--dt-accent);
    border-color: var(--dt-accent);
}

html[data-theme="dark"] .form-range::-webkit-slider-runnable-track {
    background-color: rgba(255, 255, 255, .10);
}

/* 原生控件：日期/时间选择器图标、下拉选项、自动填充 */
html[data-theme="dark"] ::-webkit-calendar-picker-indicator {
    filter: invert(.85);
    cursor: pointer;
}

html[data-theme="dark"] select option,
html[data-theme="dark"] optgroup {
    background: var(--dt-surface-solid);
    color: var(--dt-text);
}

html[data-theme="dark"] input:-webkit-autofill,
html[data-theme="dark"] input:-webkit-autofill:hover,
html[data-theme="dark"] input:-webkit-autofill:focus,
html[data-theme="dark"] textarea:-webkit-autofill,
html[data-theme="dark"] select:-webkit-autofill {
    -webkit-text-fill-color: var(--dt-text);
    -webkit-box-shadow: 0 0 0 1000px #18213a inset;
    caret-color: var(--dt-text);
}

/* ==========================================================================
   G. 下拉 / 弹窗 / 浮层
   ========================================================================== */

html[data-theme="dark"] .dropdown-menu {
    background: rgba(21, 29, 51, .97);
    border: 1px solid var(--dt-line);
    box-shadow: 0 18px 44px rgba(0, 0, 0, .60), 0 4px 12px rgba(0, 0, 0, .35);
    color: var(--dt-text);
}

html[data-theme="dark"] .dropdown-menu .dropdown-item {
    color: var(--dt-text-2);
}

html[data-theme="dark"] .dropdown-item:hover,
html[data-theme="dark"] .dropdown-item:focus {
    background: rgba(91, 140, 255, .18);
    color: #ffffff;
}

html[data-theme="dark"] .dropdown-menu .text-muted,
html[data-theme="dark"] .dropdown-menu small {
    /* 原亮色层用 !important 固定为 #64748b，此处需同权重覆盖 */
    color: var(--dt-text-3) !important;
}

html[data-theme="dark"] .dropdown-menu .dropdown-divider {
    border-top-color: var(--dt-line);
}

html[data-theme="dark"] .modal-content {
    background: var(--glass-bg-strong);
    border: 1px solid var(--dt-line);
    box-shadow: 0 24px 60px rgba(0, 0, 0, .62);
    color: var(--dt-text);
}

html[data-theme="dark"] .modal-header,
html[data-theme="dark"] .modal-footer {
    border-color: var(--dt-line);
}

html[data-theme="dark"] .offcanvas {
    background: var(--dt-surface-solid);
    color: var(--dt-text);
}

html[data-theme="dark"] .popover {
    color: var(--dt-text);
}

html[data-theme="dark"] .toast {
    color: var(--dt-text);
}

/* ==========================================================================
   H. 通用组件：徽章 / 分页 / 面包屑 / 提示 / Tab / 筛选器 / 链接 / 加载态
   ========================================================================== */

html[data-theme="dark"] .badge {
    color: #ffffff;
}

html[data-theme="dark"] .badge_gray {
    /* index.css 与 glass-theme.css 都用 !important 固定了亮色，需同权重覆盖 */
    color: #9dbcff !important;
    background-color: rgba(91, 140, 255, .16) !important;
    border: 1px solid rgba(91, 140, 255, .26);
}

html[data-theme="dark"] .pagination .page-link {
    background: rgba(255, 255, 255, .06);
    border-color: var(--dt-line);
    color: #8bb0ff;
}

html[data-theme="dark"] .pagination .page-link:hover {
    background: rgba(91, 140, 255, .18);
    color: #ffffff;
}

html[data-theme="dark"] .pagination .page-item.active .page-link {
    background: var(--glass-gradient);
    border-color: transparent;
    color: #ffffff;
}

html[data-theme="dark"] .pagination .page-item.disabled .page-link {
    background: rgba(255, 255, 255, .03);
    color: var(--dt-text-dim);
}

html[data-theme="dark"] .breadcrumb,
html[data-theme="dark"] .breadcrumb-title {
    color: var(--dt-text-3);
    background: transparent;
}

html[data-theme="dark"] .alert-primary {
    --bs-alert-color: #c7d8ff;
    --bs-alert-bg: rgba(91, 140, 255, .16);
    --bs-alert-border-color: rgba(91, 140, 255, .34);
}

html[data-theme="dark"] .alert-success {
    --bs-alert-color: #b8f3dd;
    --bs-alert-bg: var(--dt-tint-green);
    --bs-alert-border-color: rgba(52, 211, 153, .34);
}

html[data-theme="dark"] .alert-warning {
    --bs-alert-color: #ffe3a8;
    --bs-alert-bg: var(--dt-tint-amber);
    --bs-alert-border-color: rgba(251, 191, 36, .34);
}

html[data-theme="dark"] .alert-danger {
    --bs-alert-color: #ffc4cd;
    --bs-alert-bg: var(--dt-tint-red);
    --bs-alert-border-color: rgba(251, 113, 133, .34);
}

html[data-theme="dark"] .alert-secondary,
html[data-theme="dark"] .alert-light {
    --bs-alert-color: var(--dt-text);
    --bs-alert-bg: rgba(255, 255, 255, .06);
    --bs-alert-border-color: var(--dt-line);
}

html[data-theme="dark"] .nav-tabs .nav-link,
html[data-theme="dark"] .nav-pills .nav-link {
    color: var(--dt-text-3);
}

html[data-theme="dark"] .nav-tabs .nav-link:hover,
html[data-theme="dark"] .nav-pills .nav-link:hover {
    color: #ffffff;
}

html[data-theme="dark"] .tab-btn {
    color: var(--dt-text-3);
}

html[data-theme="dark"] .tab-btn:hover {
    color: #ffffff;
    background: rgba(255, 255, 255, .08);
}

html[data-theme="dark"] .tab-container {
    border-bottom-color: var(--dt-line);
}

html[data-theme="dark"] .square-filter,
html[data-theme="dark"] .btn-modern {
    border: 1px solid var(--dt-line);
    background: rgba(255, 255, 255, .06);
    color: var(--dt-text-3);
}

html[data-theme="dark"] .square-filter:hover:not(.active),
html[data-theme="dark"] .btn-modern:hover:not(.active) {
    background: rgba(255, 255, 255, .12);
    border-color: rgba(91, 140, 255, .45);
    color: #ffffff;
}

html[data-theme="dark"] .link-sm {
    color: #8bb0ff !important;
}

html[data-theme="dark"] .link-sm:hover {
    color: #b7cdff !important;
}

html[data-theme="dark"] .link-gray {
    color: var(--dt-text-2) !important;
}

html[data-theme="dark"] .link-gray:hover {
    color: #ffffff !important;
}

html[data-theme="dark"] .font-content {
    color: var(--dt-text) !important;
}

html[data-theme="dark"] .copy-btn {
    color: var(--dt-text-3);
}

html[data-theme="dark"] .copy-btn:hover {
    color: #8bb0ff;
}

html[data-theme="dark"] .nav-link .bi-globe {
    color: var(--dt-text-3);
}

html[data-theme="dark"] .nav-link .bi-globe:hover {
    color: #8bb0ff;
}

html[data-theme="dark"] .spinner-label,
html[data-theme="dark"] .spinner-logo .logo-icon {
    color: var(--dt-text-3);
}

html[data-theme="dark"] .progress {
    background-color: rgba(255, 255, 255, .08);
}

html[data-theme="dark"] .list-group-item {
    color: var(--dt-text);
}

html[data-theme="dark"] .accordion-button {
    color: var(--dt-text);
}

html[data-theme="dark"] .accordion-button::after {
    filter: invert(1) grayscale(1) brightness(1.8);
}

html[data-theme="dark"] .btn-group-sm > .btn.active,
html[data-theme="dark"] .btn-group-sm > .btn:active {
    background-color: rgba(91, 140, 255, .70) !important;
    border-color: transparent !important;
    color: #ffffff !important;
}

/* ==========================================================================
   I. Bootstrap 工具类（模板里大量使用的亮色类）
   ========================================================================== */

html[data-theme="dark"] .bg-white {
    background-color: var(--dt-surface-solid) !important;
}

html[data-theme="dark"] .bg-surface {
    background-color: var(--dt-surface-solid) !important;
}

html[data-theme="dark"] .bg-white-1 {
    background-color: rgba(255, 255, 255, .08) !important;
}

html[data-theme="dark"] .text-option {
    color: var(--dt-text-3) !important;
}

html[data-theme="dark"] .metrics-section .bg-white.rounded-xl {
    /* 原亮色层三处 !important，暗色需同权重 */
    background: var(--dt-surface) !important;
    border: 1px solid var(--glass-border) !important;
    box-shadow: var(--glass-shadow) !important;
}

html[data-theme="dark"] .border,
html[data-theme="dark"] .border-top,
html[data-theme="dark"] .border-bottom,
html[data-theme="dark"] .border-start,
html[data-theme="dark"] .border-end {
    border-color: var(--dt-line) !important;
}

/* ==========================================================================
   J. 顶栏币价趋势浮层（index.css 写死亮色；移动端会以 fixed 挂到 body）
   ========================================================================== */

html[data-theme="dark"] .coin-dropdown-content {
    background: #151d33;
    border-color: var(--dt-line);
}

html[data-theme="dark"] .coin-dropdown-content .coin-price-trigger:hover,
html[data-theme="dark"] .coin-dropdown-content .coin-price-trigger:focus-visible {
    background: rgba(255, 255, 255, .07);
}

html[data-theme="dark"] .coin-price-trend {
    color: var(--dt-text-2);
    background: linear-gradient(180deg, #18213a 0%, #131a2e 100%);
    border-color: var(--dt-line);
    box-shadow: 0 20px 44px rgba(0, 0, 0, .60);
}

html[data-theme="dark"] .coin-price-trend-symbol,
html[data-theme="dark"] .coin-price-trend-price {
    color: var(--dt-ink-strong);
}

html[data-theme="dark"] .coin-price-trend-quote,
html[data-theme="dark"] .coin-price-trend-close,
html[data-theme="dark"] .coin-price-trend-axis {
    color: var(--dt-text-3);
}

html[data-theme="dark"] .coin-price-trend-close:hover,
html[data-theme="dark"] .coin-price-trend-close:focus-visible {
    color: #8bb0ff;
}

html[data-theme="dark"] .coin-price-trend-tooltip {
    background: rgba(24, 33, 58, .97);
    border-color: var(--dt-line);
    color: var(--dt-text-2);
    box-shadow: 0 10px 26px rgba(0, 0, 0, .55);
}

html[data-theme="dark"] .coin-price-trend-tooltip span {
    color: var(--dt-text-3);
}

html[data-theme="dark"] .coin-price-trend-tooltip strong {
    color: #8bb0ff;
}

html[data-theme="dark"] .coin-price-trend-grid {
    stroke: rgba(139, 158, 205, .18);
}

html[data-theme="dark"] .coin-price-trend-y-label {
    fill: var(--dt-text-3);
}

html[data-theme="dark"] .coin-price-trend-stat {
    background: rgba(255, 255, 255, .06);
}

html[data-theme="dark"] .coin-price-trend-stat span {
    color: var(--dt-text-3);
}

html[data-theme="dark"] .coin-price-trend-stat strong {
    color: var(--dt-ink-strong);
}

html[data-theme="dark"] .coin-price-trend-state,
html[data-theme="dark"] .coin-price-trend-state i {
    color: var(--dt-text-3);
}

html[data-theme="dark"] .coin-price-trend-point {
    fill: #131a2e;
    stroke: var(--dt-accent);
}

/* ==========================================================================
   K. 钱包弹窗 / PWA 安装条
   ========================================================================== */

html[data-theme="dark"] .wallet-option {
    background: rgba(255, 255, 255, .05);
    border-color: var(--dt-line);
}

html[data-theme="dark"] .wallet-option:hover {
    border-color: rgba(91, 140, 255, .55);
    background: rgba(91, 140, 255, .12);
}

html[data-theme="dark"] .wallet-option-preferred {
    border-color: rgba(91, 140, 255, .42);
    background: linear-gradient(135deg, rgba(91, 140, 255, .16) 0%, rgba(255, 255, 255, .04) 100%);
}

html[data-theme="dark"] .wallet-section-title {
    color: var(--dt-text-3);
}

html[data-theme="dark"] .walletconnect-icon {
    background: rgba(91, 140, 255, .16);
    color: #8bb0ff;
}

html[data-theme="dark"] #wallet-btn-container .dropdown-menu {
    border-color: var(--dt-line);
}

html[data-theme="dark"] #wallet-btn-container .dropdown-menu code {
    background: rgba(0, 0, 0, .35);
    color: #b7cdff;
}

html[data-theme="dark"] .pwa-install-card {
    background: #151d33;
    border-color: var(--dt-line);
    box-shadow: 0 14px 40px rgba(0, 0, 0, .60);
}

html[data-theme="dark"] .pwa-install-title {
    color: var(--dt-ink-strong);
}

html[data-theme="dark"] .pwa-install-desc {
    color: var(--dt-text-3);
}

/* ==========================================================================
   L. Markdown 正文与代码高亮
   --------------------------------------------------------------------------
   github-markdown.min.css 的暗色 token 写在 @media (prefers-color-scheme: dark)
   里（只跟随系统，不跟随本站主题），因此两个方向都要显式锁定。
   ========================================================================== */

/* github-markdown.min.css 是纯粹变量驱动的，且自身带了一套暗色 token（写在
   @media (prefers-color-scheme: dark) 里，只跟随系统）。这里直接把它的暗色
   token 提到本站暗色主题下，正文/代码块/表格/引用一次性全部跟随。 */
html[data-theme="dark"] .markdown-body {
    color-scheme: dark;
    color: var(--dt-text);
    background: transparent;
    --color-fg-default: #c9d1d9;
    --color-fg-muted: #8b949e;
    --color-fg-subtle: #6e7781;
    --color-canvas-default: transparent;
    --color-canvas-subtle: #161b22;
    --color-border-default: #30363d;
    --color-border-muted: #21262d;
    --color-neutral-muted: rgba(110, 118, 129, .40);
    --color-accent-fg: #58a6ff;
    --color-accent-emphasis: #1f6feb;
    --color-attention-fg: #d29922;
    --color-attention-subtle: rgba(187, 128, 9, .15);
    --color-danger-fg: #f85149;
    --color-done-fg: #a371f7;
    --color-success-fg: #3fb950;
    --color-sponsors-fg: #db61a2;
    /* API Key 页沿用 style.css 的 --gh-* 变量，同步为暗色 */
    --gh-bg: var(--dt-base-2);
    --gh-bg-subtle: var(--dt-surface-solid);
    --gh-border: #2a3350;
    --gh-text-primary: var(--dt-text);
    --gh-text-secondary: var(--dt-text-3);
    --gh-link: #6a9bff;
}

html[data-theme="light"] .markdown-body {
    /* 用户显式选择亮色时，纠正“系统暗色导致 markdown 自行变暗” */
    color-scheme: light;
}

html[data-theme="dark"] .markdown-body h1,
html[data-theme="dark"] .markdown-body h2,
html[data-theme="dark"] .markdown-body h3,
html[data-theme="dark"] .markdown-body h4,
html[data-theme="dark"] .markdown-body h5,
html[data-theme="dark"] .markdown-body h6 {
    color: var(--dt-ink-strong);
    border-bottom-color: var(--dt-line);
}

html[data-theme="dark"] .markdown-body hr {
    background-color: var(--dt-line);
}

html[data-theme="dark"] .markdown-body blockquote {
    color: var(--dt-text-3);
    border-left-color: var(--dt-line-2);
}

html[data-theme="dark"] .markdown-body table tr {
    background-color: transparent;
    border-top-color: var(--dt-line);
}

html[data-theme="dark"] .markdown-body table tr:nth-child(2n) {
    background-color: rgba(255, 255, 255, .03);
}

html[data-theme="dark"] .markdown-body table th,
html[data-theme="dark"] .markdown-body table td {
    border-color: var(--dt-line);
}

html[data-theme="dark"] .markdown-body img {
    background-color: transparent;
}

/* highlight.js 的 default 主题是完全写死的浅色，这里给出暗色补偿 */
html[data-theme="dark"] .hljs {
    background: rgba(0, 0, 0, .32);
    color: #e2e8f5;
}

html[data-theme="dark"] .hljs-comment,
html[data-theme="dark"] .hljs-quote {
    color: #7c8aa5;
}

html[data-theme="dark"] .hljs-keyword,
html[data-theme="dark"] .hljs-selector-tag,
html[data-theme="dark"] .hljs-literal,
html[data-theme="dark"] .hljs-section,
html[data-theme="dark"] .hljs-doctag,
html[data-theme="dark"] .hljs-name {
    color: #c792ea;
}

html[data-theme="dark"] .hljs-string,
html[data-theme="dark"] .hljs-regexp,
html[data-theme="dark"] .hljs-addition,
html[data-theme="dark"] .hljs-attribute,
html[data-theme="dark"] .hljs-meta .hljs-string {
    color: #a5e8b7;
}

html[data-theme="dark"] .hljs-number,
html[data-theme="dark"] .hljs-variable,
html[data-theme="dark"] .hljs-template-variable,
html[data-theme="dark"] .hljs-type,
html[data-theme="dark"] .hljs-selector-attr,
html[data-theme="dark"] .hljs-selector-pseudo {
    color: #f5a97f;
}

html[data-theme="dark"] .hljs-title,
html[data-theme="dark"] .hljs-title.class_,
html[data-theme="dark"] .hljs-title.function_ {
    color: #82aaff;
}

html[data-theme="dark"] .hljs-built_in,
html[data-theme="dark"] .hljs-symbol,
html[data-theme="dark"] .hljs-bullet,
html[data-theme="dark"] .hljs-link {
    color: #7fdbca;
}

html[data-theme="dark"] .hljs-emphasis {
    color: var(--dt-text);
}

/* ==========================================================================
   M. 页面模块
   --------------------------------------------------------------------------
   dashboard_network / dashboard_asset / backtest / terra-knowledge 的页面 CSS
   写在各页 {%block head%} 内，先于本文件加载；这里以更高的选择器权重重写它们
   的亮色表面，保持与全局暗色风格一致。原值若带 !important，此处同权重覆盖。
   ========================================================================== */

/* ---------- M1. 网络 / 资产仪表盘（dashboard_network.css、dashboard_asset.css） ---------- */

html[data-theme="dark"] .network-dashboard-page {
    /* 页面底色交给全局 body 极光背景，避免再叠一层亮色渐变 */
    background: none;
}

html[data-theme="dark"] .network-hero,
html[data-theme="dark"] .network-status-strip,
html[data-theme="dark"] .network-panel,
html[data-theme="dark"] .network-metric-card {
    border: 1px solid var(--dt-line);
    box-shadow: 0 12px 32px rgba(0, 0, 0, .40);
}

html[data-theme="dark"] .network-hero {
    background: var(--dt-surface-2);
}

html[data-theme="dark"] .network-hero::before {
    background:
        linear-gradient(120deg, rgba(255, 255, 255, .06), transparent 56%),
        radial-gradient(circle at 88% 18%, rgba(79, 209, 181, .10), transparent 24%);
}

html[data-theme="dark"] .network-kicker {
    color: #8bb0ff;
}

html[data-theme="dark"] .network-title {
    color: var(--dt-ink-strong);
}

html[data-theme="dark"] .network-desc,
html[data-theme="dark"] .network-control-label {
    color: var(--dt-text-3);
}

html[data-theme="dark"] .network-source-link {
    color: #7fe3cd;
    background: var(--dt-tint-teal);
    border-color: rgba(79, 209, 181, .34);
}

html[data-theme="dark"] .network-source-link:hover {
    color: #a7f3e0;
    background: rgba(79, 209, 181, .20);
    box-shadow: 0 8px 18px rgba(0, 0, 0, .40);
}

html[data-theme="dark"] .network-status-inline {
    background: rgba(255, 255, 255, .05);
    border-color: var(--dt-line);
}

html[data-theme="dark"] .network-status-inline strong {
    color: var(--dt-text-2);
}

html[data-theme="dark"] .network-period-pills {
    background: rgba(255, 255, 255, .06);
    border-color: var(--dt-line);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .05);
}

html[data-theme="dark"] .network-period-pills button {
    color: var(--dt-text-3);
}

html[data-theme="dark"] .network-ghost-btn {
    color: var(--dt-text-3);
    background: rgba(255, 255, 255, .07);
}

html[data-theme="dark"] .network-ghost-btn:hover {
    color: #ffffff;
    background: rgba(255, 255, 255, .14);
}

html[data-theme="dark"] .network-status-strip {
    background: var(--dt-surface-2);
}

html[data-theme="dark"] .network-status-label {
    color: var(--dt-text-dim);
}

html[data-theme="dark"] .network-status-strip strong {
    color: var(--dt-ink-strong);
}

html[data-theme="dark"] .network-tabs {
    border-bottom-color: var(--dt-line);
}

html[data-theme="dark"] .network-tabs button {
    color: var(--dt-text-3);
}

html[data-theme="dark"] .network-tabs button:hover {
    color: #ffffff;
    background: rgba(255, 255, 255, .06);
}

html[data-theme="dark"] .network-tabs button.active {
    color: var(--dt-teal);
    border-bottom-color: var(--dt-teal);
    background: var(--dt-tint-teal);
}

html[data-theme="dark"] .network-alert,
html[data-theme="dark"] .network-chart-error {
    color: #ffc4cd;
    background: var(--dt-tint-red);
    border-color: rgba(251, 113, 133, .34);
}

html[data-theme="dark"] .network-metric-card {
    background: linear-gradient(180deg, rgba(23, 32, 56, .94), rgba(19, 26, 46, .90));
}

html[data-theme="dark"] .network-metric-card::before {
    background: linear-gradient(135deg, rgba(255, 255, 255, .05), transparent 54%);
}

html[data-theme="dark"] .network-metric-card::after {
    opacity: .22;
}

html[data-theme="dark"] .metric-title,
html[data-theme="dark"] .metric-value,
html[data-theme="dark"] .metric-sub strong {
    color: var(--dt-ink-strong);
}

html[data-theme="dark"] .metric-label,
html[data-theme="dark"] .metric-sub,
html[data-theme="dark"] .metric-sub strong.metric-name {
    color: var(--dt-text-3);
}

html[data-theme="dark"] .metric-sub {
    border-top-color: var(--dt-line);
}

html[data-theme="dark"] .metric-trend {
    background: rgba(255, 255, 255, .06);
    color: var(--dt-text-3);
}

html[data-theme="dark"] .metric-trend.up {
    color: #6ee7b7;
    background: var(--dt-tint-green);
}

html[data-theme="dark"] .metric-trend.down {
    color: #fda4af;
    background: var(--dt-tint-red);
}

html[data-theme="dark"] .network-panel {
    background: linear-gradient(180deg, rgba(23, 32, 56, .94), rgba(19, 26, 46, .92));
}

html[data-theme="dark"] .network-panel h2 {
    color: var(--dt-ink-strong);
}

html[data-theme="dark"] .network-panel p {
    color: var(--dt-text-3);
}

html[data-theme="dark"] .network-info-btn {
    border-color: var(--dt-line);
    color: var(--dt-text-3);
    background: rgba(255, 255, 255, .05);
}

html[data-theme="dark"] .network-info-btn:hover,
html[data-theme="dark"] .network-info-btn:focus-visible {
    color: var(--dt-teal);
    border-color: rgba(79, 209, 181, .45);
    background: var(--dt-tint-teal);
}

html[data-theme="dark"] .network-panel-badge {
    color: #9dbcff;
    background: var(--dt-tint-accent);
    border-color: rgba(91, 140, 255, .30);
}

html[data-theme="dark"] .network-panel-badge {
    /* 后置覆盖：页面第 662 行把背景改成了亮色渐变 */
    background: linear-gradient(135deg, rgba(91, 140, 255, .20), rgba(79, 209, 181, .16));
}

html[data-theme="dark"] .network-table thead th {
    color: var(--dt-text-3);
    background: rgba(255, 255, 255, .04) !important;
}

html[data-theme="dark"] .network-table tbody td {
    border-top-color: var(--dt-line) !important;
    border-bottom-color: var(--dt-line) !important;
}

html[data-theme="dark"] .network-table tbody td:first-child {
    border-left-color: var(--dt-line) !important;
}

html[data-theme="dark"] .network-table tbody td:last-child {
    border-right-color: var(--dt-line) !important;
}

html[data-theme="dark"] .network-mini-stat {
    background: rgba(255, 255, 255, .05);
    border-color: var(--dt-line);
}

html[data-theme="dark"] .network-mini-stat span {
    color: var(--dt-text-3);
}

html[data-theme="dark"] .network-mini-stat strong {
    color: var(--dt-ink-strong);
}

html[data-theme="dark"] .network-security-summary div {
    background: var(--dt-surface);
    border-color: var(--dt-line);
}

html[data-theme="dark"] .network-security-summary span {
    color: var(--dt-text-3);
}

html[data-theme="dark"] .network-security-summary strong {
    color: var(--dt-ink-strong);
}

/* 资产仪表盘 */
html[data-theme="dark"] .asset-dashboard-page .network-hero,
html[data-theme="dark"] .asset-dashboard-page .network-panel,
html[data-theme="dark"] .asset-dashboard-page .network-metric-card {
    border-color: var(--dt-line);
    background: var(--dt-surface);
    box-shadow: 0 8px 32px rgba(0, 0, 0, .40), 0 2px 8px rgba(0, 0, 0, .28);
}

html[data-theme="dark"] .asset-hero {
    border-top-color: var(--dt-teal) !important;
}

html[data-theme="dark"] .asset-source-link {
    color: #7fe3cd;
    border-color: rgba(79, 209, 181, .34);
    background: var(--dt-tint-teal);
}

html[data-theme="dark"] .asset-selector {
    border-color: var(--dt-line);
    background: rgba(255, 255, 255, .06);
}

html[data-theme="dark"] .asset-selector button {
    color: var(--dt-text-3);
}

html[data-theme="dark"] .asset-selector button[data-asset-more] {
    color: #8bb0ff;
}

html[data-theme="dark"] .asset-empty-state {
    border-color: var(--dt-line);
    background: var(--dt-surface);
}

html[data-theme="dark"] .asset-empty-state > i {
    color: var(--dt-text-3);
    background: rgba(255, 255, 255, .07);
}

html[data-theme="dark"] .asset-empty-state h2 {
    color: var(--dt-ink-strong);
}

html[data-theme="dark"] .asset-empty-state p {
    color: var(--dt-text-3);
}

html[data-theme="dark"] .asset-dashboard-page .network-panel-badge {
    color: #9dbcff;
    background: var(--dt-tint-accent);
}

html[data-theme="dark"] .asset-icon-btn {
    border-color: var(--dt-line-2);
    color: var(--dt-text-3);
    background: rgba(255, 255, 255, .05);
}

html[data-theme="dark"] .asset-icon-btn:hover {
    color: var(--dt-teal);
    border-color: rgba(79, 209, 181, .45);
}

html[data-theme="dark"] .asset-dashboard-page .network-table-wrap,
html[data-theme="dark"] .asset-dashboard-page .network-table-wrap .fixed-table-body {
    scrollbar-color: #3a4a6b #0b1120;
}

/* ---------- M2. 策略回测（backtest.css，页面样式体量最大，按三层处理） ---------- */

/* M2-a. 页面底色与成片白卡 */
html[data-theme="dark"] .backtest-page {
    background: none;
}

html[data-theme="dark"] .backtest-hero {
    background: var(--dt-surface-2);
    border-color: var(--dt-line);
}

html[data-theme="dark"] .backtest-workflow,
html[data-theme="dark"] .backtest-wallet-gate,
html[data-theme="dark"] .backtest-sidebar,
html[data-theme="dark"] .backtest-panel,
html[data-theme="dark"] .backtest-mode-tab.is-active,
html[data-theme="dark"] .backtest-sidebar-rail-toggle,
html[data-theme="dark"] .backtest-theme-group-toggle,
html[data-theme="dark"] .backtest-strategy-item,
html[data-theme="dark"] .backtest-help-popover,
html[data-theme="dark"] .backtest-rule-row .input-group-text,
html[data-theme="dark"] .backtest-view-tabs button.active,
html[data-theme="dark"] .backtest-snapshot-condition-group.is-nested,
html[data-theme="dark"] .backtest-snapshot-rule,
html[data-theme="dark"] .backtest-report-meta,
html[data-theme="dark"] .backtest-kpi-card,
html[data-theme="dark"] .backtest-pagination button,
html[data-theme="dark"] .backtest-report-index,
html[data-theme="dark"] .backtest-analysis-panel,
html[data-theme="dark"] .backtest-report-scope-panel,
html[data-theme="dark"] .backtest-report-rank,
html[data-theme="dark"] .backtest-report-index-metric,
html[data-theme="dark"] .backtest-sidebar-theme .form-select,
html[data-theme="dark"] .backtest-condition-group.is-nested,
html[data-theme="dark"] .backtest-condition-group .backtest-rule-row {
    background: var(--dt-surface);
}

html[data-theme="dark"] .backtest-wallet-gate {
    border-color: var(--dt-line);
}

html[data-theme="dark"] .backtest-gate-icon {
    background: var(--dt-tint-amber);
}

html[data-theme="dark"] .backtest-workflow-step > span {
    background: rgba(255, 255, 255, .08);
}

html[data-theme="dark"] .backtest-sidebar-theme,
html[data-theme="dark"] .backtest-futures-settings,
html[data-theme="dark"] .backtest-sidebar-theme-head > i,
html[data-theme="dark"] .backtest-sidebar-theme-note,
html[data-theme="dark"] .backtest-futures-badge,
html[data-theme="dark"] .backtest-condition-group-mark {
    background: var(--dt-tint-teal);
}

html[data-theme="dark"] .backtest-strategy-item:hover,
html[data-theme="dark"] .backtest-strategy-item.active,
html[data-theme="dark"] .backtest-sidebar-rail-toggle:hover,
html[data-theme="dark"] .backtest-sidebar-rail-toggle:focus-visible,
html[data-theme="dark"] .backtest-workbench-layout.is-sidebar-collapsed .backtest-sidebar-rail-toggle,
html[data-theme="dark"] .backtest-icon-btn,
html[data-theme="dark"] .backtest-icon-only,
html[data-theme="dark"] .backtest-new-strategy-btn,
html[data-theme="dark"] .backtest-help-btn:hover,
html[data-theme="dark"] .backtest-help-btn:focus-visible,
html[data-theme="dark"] .backtest-help-btn[aria-expanded="true"],
html[data-theme="dark"] .backtest-symbol-option:has(input:checked),
html[data-theme="dark"] .backtest-report-sort-btn:hover,
html[data-theme="dark"] .backtest-report-sort-btn.active,
html[data-theme="dark"] .backtest-condition-add,
html[data-theme="dark"] .backtest-condition-remove,
html[data-theme="dark"] .backtest-report-index-item:hover,
html[data-theme="dark"] .backtest-report-index-icon,
html[data-theme="dark"] .backtest-condition-group.is-drop-target > .backtest-drop-slot {
    background: rgba(79, 209, 181, .14);
}

html[data-theme="dark"] .backtest-wallet-state,
html[data-theme="dark"] .backtest-alert.is-success,
html[data-theme="dark"] .backtest-status-completed {
    background: var(--dt-tint-green);
}

html[data-theme="dark"] .backtest-simple-cost-note,
html[data-theme="dark"] .backtest-theme-group-toggle:hover,
html[data-theme="dark"] .backtest-theme-group-toggle:focus-visible,
html[data-theme="dark"] .backtest-condition-explanation,
html[data-theme="dark"] .backtest-condition-group.is-root {
    background: rgba(255, 255, 255, .04);
}

html[data-theme="dark"] .backtest-field .input-group-text,
html[data-theme="dark"] .backtest-symbol-option,
html[data-theme="dark"] .backtest-table thead th,
html[data-theme="dark"] .backtest-snapshot-meta-item,
html[data-theme="dark"] .backtest-snapshot-setting,
html[data-theme="dark"] .backtest-snapshot-condition-group,
html[data-theme="dark"] .backtest-snapshot-empty,
html[data-theme="dark"] .backtest-trade-toolbar,
html[data-theme="dark"] .backtest-report-sort-btn,
html[data-theme="dark"] .backtest-sidebar-foot,
html[data-theme="dark"] .backtest-rule-empty,
html[data-theme="dark"] .backtest-analysis-item,
html[data-theme="dark"] .backtest-rule-row,
html[data-theme="dark"] .backtest-report-index-item,
html[data-theme="dark"] .backtest-theme-group-strategies,
html[data-theme="dark"] .backtest-condition-group,
html[data-theme="dark"] .backtest-mode-switch,
html[data-theme="dark"] .backtest-blind-summary,
html[data-theme="dark"] .backtest-scope-btn,
html[data-theme="dark"] .backtest-drop-slot {
    background: rgba(255, 255, 255, .05);
}

html[data-theme="dark"] .backtest-mode-tabs,
html[data-theme="dark"] .backtest-view-tabs,
html[data-theme="dark"] .backtest-progress {
    background: rgba(255, 255, 255, .08);
}

html[data-theme="dark"] .backtest-strategy-copy,
html[data-theme="dark"] .backtest-strategy-delete,
html[data-theme="dark"] .backtest-task-id-copy {
    background: rgba(79, 209, 181, .14);
}

html[data-theme="dark"] .backtest-rule-remove,
html[data-theme="dark"] .backtest-condition-remove,
html[data-theme="dark"] .backtest-strategy-delete:hover,
html[data-theme="dark"] .backtest-strategy-delete:focus-visible {
    background: var(--dt-tint-red);
}

html[data-theme="dark"] .backtest-panel-index {
    color: #9dbcff;
    background: var(--dt-tint-accent);
}

html[data-theme="dark"] .backtest-panel-index-green {
    color: #6ee7b7;
    background: var(--dt-tint-green);
}

html[data-theme="dark"] .backtest-panel-index-coral {
    color: #ffb4a2;
    background: var(--dt-tint-red);
}

html[data-theme="dark"] .backtest-panel-index-amber,
html[data-theme="dark"] .backtest-analysis-mark,
html[data-theme="dark"] .backtest-symbol-note.is-warning {
    color: #fcd34d;
    background: var(--dt-tint-amber);
}

html[data-theme="dark"] .backtest-status-running {
    color: #9dbcff;
    background: var(--dt-tint-accent);
    border-color: rgba(91, 140, 255, .34);
}

html[data-theme="dark"] .backtest-status-queued {
    color: #fcd34d;
    background: var(--dt-tint-amber);
    border-color: rgba(251, 191, 36, .34);
}

html[data-theme="dark"] .backtest-status-completed {
    color: #6ee7b7;
    border-color: rgba(52, 211, 153, .34);
}

html[data-theme="dark"] .backtest-status-failed,
html[data-theme="dark"] .backtest-status-canceled {
    color: #fda4af;
    background: var(--dt-tint-red);
    border-color: rgba(251, 113, 133, .34);
}

html[data-theme="dark"] .backtest-alert {
    color: #ffb4a2;
    background: var(--dt-tint-red);
    border-color: rgba(251, 113, 133, .34);
}

html[data-theme="dark"] .backtest-alert.is-success {
    color: #6ee7b7;
}

html[data-theme="dark"] .backtest-report-rank.is-champion {
    background: var(--dt-tint-amber);
    border-color: rgba(251, 191, 36, .38);
}

html[data-theme="dark"] .backtest-report-rank.is-runner-up,
html[data-theme="dark"] .backtest-analysis-summary {
    background: rgba(255, 255, 255, .06);
}

html[data-theme="dark"] .backtest-report-rank.is-third {
    background: var(--dt-tint-red);
    border-color: rgba(251, 113, 133, .30);
}

/* M2-b. 文字颜色：backtest.css 里写死的“亮色墨色”共 40 余种，按语义分三档
   （近黑正文 → 亮色正文、中间灰 → 次级文字、浅灰 → 弱化文字）映射到暗色，
   青绿/红/黄/蓝强调色统一提亮；规则顺序与原文件声明顺序一致，
   保证同一选择器多处声明时的层叠结果不变。 */

html[data-theme="dark"] .backtest-eyebrow,
html[data-theme="dark"] .backtest-section-kicker {
    color: var(--dt-teal);
}
html[data-theme="dark"] .backtest-hero h1 {
    color: var(--dt-ink-strong);
}
html[data-theme="dark"] .backtest-hero p {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-hero .backtest-wallet-state,
html[data-theme="dark"] .backtest-wallet-state {
    color: var(--dt-teal);
}
html[data-theme="dark"] .backtest-workflow-step > span {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-workflow-step strong {
    color: var(--dt-text-2);
}
html[data-theme="dark"] .backtest-workflow-arrow,
html[data-theme="dark"] .backtest-workflow-step small {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-wallet-gate h2 {
    color: var(--dt-text-2);
}
html[data-theme="dark"] .backtest-wallet-gate p {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-gate-icon {
    color: var(--dt-amber-soft);
}
html[data-theme="dark"] .backtest-sidebar-head h2,
html[data-theme="dark"] .backtest-panel-head h2,
html[data-theme="dark"] .backtest-panel-head h3,
html[data-theme="dark"] .backtest-config-head h2 {
    color: var(--dt-ink-strong);
}
html[data-theme="dark"] .backtest-mode-copy strong {
    color: var(--dt-text-2);
}
html[data-theme="dark"] .backtest-mode-copy span,
html[data-theme="dark"] .backtest-mode-tab {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-mode-tab.is-active {
    color: var(--dt-teal);
}
html[data-theme="dark"] .backtest-simple-cost-note {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-simple-cost-note i {
    color: var(--dt-teal);
}
html[data-theme="dark"] .backtest-sidebar-head p,
html[data-theme="dark"] .backtest-panel-head p {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-icon-btn,
html[data-theme="dark"] .backtest-icon-only,
html[data-theme="dark"] .backtest-new-strategy-btn {
    color: var(--dt-teal);
}
html[data-theme="dark"] .backtest-sidebar-rail-toggle {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-sidebar-rail-toggle:hover,
html[data-theme="dark"] .backtest-sidebar-rail-toggle:focus-visible {
    color: var(--dt-teal);
}
html[data-theme="dark"] .backtest-theme-group-toggle {
    color: var(--dt-text-2);
}
html[data-theme="dark"] .backtest-theme-group-toggle:hover,
html[data-theme="dark"] .backtest-theme-group-toggle:focus-visible {
    color: var(--dt-teal);
}
html[data-theme="dark"] .backtest-theme-group-chevron,
html[data-theme="dark"] .backtest-theme-group-main small {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-strategy-copy,
html[data-theme="dark"] .backtest-strategy-delete {
    color: var(--dt-red-soft);
}
html[data-theme="dark"] .backtest-strategy-copy {
    color: var(--dt-teal);
}
html[data-theme="dark"] .backtest-strategy-delete {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-strategy-delete:hover,
html[data-theme="dark"] .backtest-strategy-delete:focus-visible {
    color: var(--dt-red-soft);
}
html[data-theme="dark"] .backtest-strategy-name {
    color: var(--dt-text-2);
}
html[data-theme="dark"] .backtest-sidebar-foot,
html[data-theme="dark"] .backtest-strategy-meta {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-sidebar-count {
    color: var(--dt-teal);
}
html[data-theme="dark"] .backtest-list-empty,
html[data-theme="dark"] .backtest-table-empty {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-alert {
    color: var(--dt-red-soft);
}
html[data-theme="dark"] .backtest-alert.is-success {
    color: var(--dt-teal);
}
html[data-theme="dark"] .backtest-help-btn {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-help-btn:hover,
html[data-theme="dark"] .backtest-help-btn:focus-visible,
html[data-theme="dark"] .backtest-help-btn[aria-expanded="true"] {
    color: var(--dt-teal);
}
html[data-theme="dark"] .backtest-help-popover {
    color: var(--dt-text-2);
}
html[data-theme="dark"] .backtest-panel-index {
    color: var(--dt-accent-soft);
}
html[data-theme="dark"] .backtest-panel-index-green {
    color: var(--dt-teal);
}
html[data-theme="dark"] .backtest-panel-index-coral {
    color: var(--dt-red-soft);
}
html[data-theme="dark"] .backtest-panel-index-amber {
    color: var(--dt-amber-soft);
}
html[data-theme="dark"] .backtest-field label,
html[data-theme="dark"] .backtest-rule-label {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-field .form-control,
html[data-theme="dark"] .backtest-field .form-select,
html[data-theme="dark"] .backtest-rule-row .form-control,
html[data-theme="dark"] .backtest-rule-row .form-select {
    color: var(--dt-text-2);
}
html[data-theme="dark"] .backtest-field .input-group-text {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-check-option {
    color: var(--dt-text-2);
}
html[data-theme="dark"] .backtest-blind-note {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-blind-note i {
    color: var(--dt-accent-soft);
}
html[data-theme="dark"] .backtest-symbol-option {
    color: var(--dt-text-2);
}
html[data-theme="dark"] .backtest-symbol-option:has(input:checked) {
    color: var(--dt-teal);
}
html[data-theme="dark"] .backtest-rule-empty,
html[data-theme="dark"] .backtest-rule-guide,
html[data-theme="dark"] .backtest-rule-remove,
html[data-theme="dark"] .backtest-rule-row .input-group-text,
html[data-theme="dark"] .backtest-rule-unit,
html[data-theme="dark"] .backtest-view-tabs button {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-view-tabs button.active {
    color: var(--dt-text-2);
}
html[data-theme="dark"] .backtest-polling-status {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-table {
    color: var(--dt-text-2);
}
html[data-theme="dark"] .backtest-table thead th {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-task-id,
html[data-theme="dark"] .backtest-task-id-copy,
html[data-theme="dark"] .backtest-task-id:hover {
    color: var(--dt-teal);
}
html[data-theme="dark"] .backtest-status-queued {
    color: var(--dt-amber-soft);
}
html[data-theme="dark"] .backtest-status-running {
    color: var(--dt-accent-soft);
}
html[data-theme="dark"] .backtest-status-completed {
    color: var(--dt-teal);
}
html[data-theme="dark"] .backtest-status-failed,
html[data-theme="dark"] .backtest-status-canceled {
    color: var(--dt-red-soft);
}
html[data-theme="dark"] .backtest-progress-value,
html[data-theme="dark"] .backtest-task-time {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-offcanvas .offcanvas-title,
html[data-theme="dark"] .backtest-offcanvas h2 {
    color: var(--dt-ink-strong);
}
html[data-theme="dark"] .backtest-snapshot-meta-item small {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-snapshot-config,
html[data-theme="dark"] .backtest-snapshot-meta-item strong,
html[data-theme="dark"] .backtest-snapshot-section-title {
    color: var(--dt-text-2);
}
html[data-theme="dark"] .backtest-snapshot-setting span {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-snapshot-condition-head,
html[data-theme="dark"] .backtest-snapshot-setting strong {
    color: var(--dt-text-2);
}
html[data-theme="dark"] .backtest-snapshot-condition-head span,
html[data-theme="dark"] .backtest-snapshot-rule-field {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-snapshot-rule-value {
    color: var(--dt-text-2);
}
html[data-theme="dark"] .backtest-report-meta,
html[data-theme="dark"] .backtest-snapshot-empty {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-report-meta strong {
    color: var(--dt-text-2);
}
html[data-theme="dark"] .backtest-report-meta code,
html[data-theme="dark"] .backtest-report-id code {
    color: var(--dt-teal);
}
html[data-theme="dark"] .backtest-blind-summary .backtest-panel-head i {
    color: var(--dt-accent-soft);
}
html[data-theme="dark"] .backtest-blind-summary-values span {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-blind-summary-values strong {
    color: var(--dt-text-2);
}
html[data-theme="dark"] .backtest-robustness-rating {
    color: var(--dt-teal);
}
html[data-theme="dark"] .backtest-kpi-label {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-kpi-card strong {
    color: var(--dt-text-2);
}
html[data-theme="dark"] .backtest-chart-legend,
html[data-theme="dark"] .backtest-kpi-card small,
html[data-theme="dark"] .backtest-trade-filter-label {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-pnl-positive {
    color: var(--dt-teal);
}
html[data-theme="dark"] .backtest-pnl-negative {
    color: var(--dt-red-soft);
}
html[data-theme="dark"] .backtest-pagination button,
html[data-theme="dark"] .backtest-pagination-ellipsis,
html[data-theme="dark"] .backtest-pagination-status {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-report-index-head h2 {
    color: var(--dt-text-2);
}
html[data-theme="dark"] .backtest-report-index-count,
html[data-theme="dark"] .backtest-report-index-head p {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-report-index-count strong {
    color: var(--dt-teal);
}
html[data-theme="dark"] .backtest-report-sortbar-title strong {
    color: var(--dt-text-2);
}
html[data-theme="dark"] .backtest-report-sort-btn,
html[data-theme="dark"] .backtest-report-sortbar-title span {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-report-sort-btn:hover,
html[data-theme="dark"] .backtest-report-sort-btn.active {
    color: var(--dt-teal);
}
html[data-theme="dark"] .backtest-report-rank {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-report-rank.is-champion {
    color: var(--dt-amber-soft);
}
html[data-theme="dark"] .backtest-report-rank.is-runner-up {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-report-rank.is-third {
    color: var(--dt-red-soft);
}
html[data-theme="dark"] .backtest-report-index-icon {
    color: var(--dt-teal);
}
html[data-theme="dark"] .backtest-report-index-main strong {
    color: var(--dt-text-2);
}
html[data-theme="dark"] .backtest-report-index-main small,
html[data-theme="dark"] .backtest-report-index-meta,
html[data-theme="dark"] .backtest-report-index-metric small {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-report-index-metric strong {
    color: var(--dt-text-2);
}
html[data-theme="dark"] .backtest-report-index-arrow,
html[data-theme="dark"] .backtest-report-index-empty,
html[data-theme="dark"] .backtest-report-index-empty i {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-report-index-empty strong,
html[data-theme="dark"] .backtest-report-scope-panel > div:first-child strong {
    color: var(--dt-text-2);
}
html[data-theme="dark"] .backtest-report-scope-panel > div:first-child span,
html[data-theme="dark"] .backtest-scope-btn {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-analysis-mark {
    color: var(--dt-amber-soft);
}
html[data-theme="dark"] .backtest-analysis-item-head strong,
html[data-theme="dark"] .backtest-analysis-summary {
    color: var(--dt-text-2);
}
html[data-theme="dark"] .backtest-analysis-severity {
    color: var(--dt-accent-soft);
}
html[data-theme="dark"] .is-critical .backtest-analysis-severity {
    color: var(--dt-red-soft);
}
html[data-theme="dark"] .is-warning .backtest-analysis-severity {
    color: var(--dt-amber-soft);
}
html[data-theme="dark"] .backtest-analysis-item p,
html[data-theme="dark"] .backtest-analysis-recommendation {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-analysis-recommendation span,
html[data-theme="dark"] .backtest-symbol-link {
    color: var(--dt-teal);
}
html[data-theme="dark"] .backtest-sidebar-overline {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-sidebar-theme-head strong {
    color: var(--dt-text-2);
}
html[data-theme="dark"] .backtest-sidebar-theme-head > i {
    color: var(--dt-teal);
}
html[data-theme="dark"] .backtest-sidebar-theme .form-select {
    color: var(--dt-text-2);
}
html[data-theme="dark"] .backtest-sidebar-theme p {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-sidebar-theme-note,
html[data-theme="dark"] .backtest-sidebar-theme-note i,
html[data-theme="dark"] .backtest-toolbox-live i {
    color: var(--dt-teal);
}
html[data-theme="dark"] .backtest-drag-hint,
html[data-theme="dark"] .backtest-indicator-copy small,
html[data-theme="dark"] .backtest-indicator-grip,
html[data-theme="dark"] .backtest-saved-strategies .backtest-list-empty,
html[data-theme="dark"] .backtest-saved-strategies .backtest-sidebar-foot,
html[data-theme="dark"] .backtest-saved-strategies .backtest-theme-group-main small,
html[data-theme="dark"] .backtest-saved-strategies .backtest-strategy-meta,
html[data-theme="dark"] .backtest-toolbox-overline {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-saved-strategies .backtest-new-strategy-btn:hover {
    color: var(--dt-ink-strong);
}
html[data-theme="dark"] .backtest-symbol-note,
html[data-theme="dark"] .backtest-workbench-layout.is-sidebar-collapsed .backtest-sidebar-rail-toggle {
    color: var(--dt-teal);
}
html[data-theme="dark"] .backtest-symbol-note.is-warning {
    color: var(--dt-amber-soft);
}
html[data-theme="dark"] .backtest-condition-explanation {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-condition-explanation i {
    color: var(--dt-teal);
}
html[data-theme="dark"] .backtest-futures-head strong {
    color: var(--dt-text-2);
}
html[data-theme="dark"] .backtest-futures-badge {
    color: var(--dt-teal);
}
html[data-theme="dark"] .backtest-futures-foot {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-condition-group-title {
    color: var(--dt-text-2);
}
html[data-theme="dark"] .backtest-condition-group-mark {
    color: var(--dt-teal);
}
html[data-theme="dark"] .backtest-condition-logic-label {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-condition-add,
html[data-theme="dark"] .backtest-condition-remove {
    color: var(--dt-teal);
}
html[data-theme="dark"] .backtest-condition-remove,
html[data-theme="dark"] .backtest-drop-slot {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .backtest-condition-group.is-drop-target > .backtest-drop-slot {
    color: var(--dt-teal);
}
html[data-theme="dark"] .backtest-risk-conditions-head strong {
    color: var(--dt-text-2);
}

/* M2-d. 边框与分隔线 */
html[data-theme="dark"] .backtest-hero,
html[data-theme="dark"] .backtest-offcanvas .offcanvas-header,
html[data-theme="dark"] .backtest-snapshot-meta-item,
html[data-theme="dark"] .backtest-snapshot-section + .backtest-snapshot-section,
html[data-theme="dark"] .backtest-snapshot-setting,
html[data-theme="dark"] .backtest-snapshot-condition-group,
html[data-theme="dark"] .backtest-snapshot-empty,
html[data-theme="dark"] .backtest-trade-toolbar,
html[data-theme="dark"] .backtest-sidebar-head,
html[data-theme="dark"] .backtest-theme-group,
html[data-theme="dark"] .backtest-sidebar-foot,
html[data-theme="dark"] .backtest-report-index-metric,
html[data-theme="dark"] .backtest-strategy-item,
html[data-theme="dark"] .backtest-table tbody td,
html[data-theme="dark"] .backtest-snapshot-rule,
html[data-theme="dark"] .backtest-rule-row,
html[data-theme="dark"] .backtest-table thead th,
html[data-theme="dark"] .backtest-report-sortbar,
html[data-theme="dark"] .backtest-report-sort-btn,
html[data-theme="dark"] .backtest-report-index-item,
html[data-theme="dark"] .backtest-report-rank,
html[data-theme="dark"] .backtest-analysis-item,
html[data-theme="dark"] .backtest-sidebar-theme,
html[data-theme="dark"] .backtest-risk-conditions,
html[data-theme="dark"] .backtest-wallet-gate {
    border-color: var(--dt-line);
}

html[data-theme="dark"] .backtest-strategy-copy,
html[data-theme="dark"] .backtest-strategy-delete,
html[data-theme="dark"] .backtest-rule-remove,
html[data-theme="dark"] .backtest-strategy-delete:hover,
html[data-theme="dark"] .backtest-strategy-delete:focus-visible,
html[data-theme="dark"] .backtest-condition-remove,
html[data-theme="dark"] .backtest-alert {
    border-color: rgba(251, 113, 133, .30);
}

html[data-theme="dark"] .backtest-table tbody td {
    border-top-color: var(--dt-line);
    border-bottom-color: var(--dt-line);
}

/* ---------- M3. Terra 知识页（terra-knowledge.css） ---------- */

html[data-theme="dark"] .terra-knowledge-page {
    color: var(--dt-text);
}

html[data-theme="dark"] .terra-knowledge-hero {
    border-color: var(--dt-line);
    background:
        radial-gradient(circle at 10% 0%, rgba(91, 140, 255, .20), transparent 30%),
        radial-gradient(circle at 88% 8%, rgba(79, 209, 181, .14), transparent 32%),
        linear-gradient(135deg, rgba(23, 32, 56, .96), rgba(16, 23, 43, .92) 54%, rgba(19, 26, 46, .94));
    box-shadow: 0 14px 38px rgba(0, 0, 0, .45);
}

html[data-theme="dark"] .terra-knowledge-hero::before {
    background-image:
        linear-gradient(rgba(139, 158, 205, .07) 1px, transparent 1px),
        linear-gradient(90deg, rgba(139, 158, 205, .07) 1px, transparent 1px);
    opacity: .7;
}

html[data-theme="dark"] .terra-knowledge-eyebrow {
    border-color: rgba(91, 140, 255, .30);
    color: #8bb0ff;
    background: rgba(255, 255, 255, .06);
    box-shadow: 0 8px 22px rgba(0, 0, 0, .30);
}

html[data-theme="dark"] .terra-knowledge-title {
    color: var(--dt-ink-strong);
}

html[data-theme="dark"] .terra-knowledge-lead,
html[data-theme="dark"] .terra-section-desc {
    color: var(--dt-text-3);
}

html[data-theme="dark"] .terra-knowledge-btn-ghost {
    color: #8bb0ff;
    border-color: rgba(91, 140, 255, .30);
    background: rgba(255, 255, 255, .06);
    box-shadow: 0 8px 20px rgba(0, 0, 0, .30);
}

html[data-theme="dark"] .terra-knowledge-btn-ghost:hover {
    color: #b7cdff;
    border-color: rgba(91, 140, 255, .48);
    background: rgba(91, 140, 255, .16);
}

html[data-theme="dark"] .terra-core-nav {
    border-color: var(--dt-line);
    background: rgba(255, 255, 255, .05);
    box-shadow: 0 10px 28px rgba(0, 0, 0, .35);
}

html[data-theme="dark"] .terra-core-nav-item {
    border-color: var(--dt-line);
    color: var(--dt-text-2);
    background: rgba(255, 255, 255, .05);
}

html[data-theme="dark"] .terra-core-nav-item:hover {
    color: #ffffff;
    border-color: rgba(91, 140, 255, .38);
    background: rgba(91, 140, 255, .14);
    box-shadow: 0 10px 24px rgba(0, 0, 0, .40);
}

html[data-theme="dark"] .terra-core-nav-icon {
    color: #8bb0ff;
    background: var(--dt-tint-accent);
}

html[data-theme="dark"] .terra-core-nav-item strong {
    color: var(--dt-ink-strong);
}

html[data-theme="dark"] .terra-core-nav-item small {
    color: var(--dt-text-3);
}

html[data-theme="dark"] .terra-floating-card {
    border-color: var(--dt-line);
    color: var(--dt-text-3);
    background: rgba(21, 29, 51, .82);
    box-shadow: 0 14px 32px rgba(0, 0, 0, .45);
}

html[data-theme="dark"] .terra-floating-card strong {
    color: var(--dt-ink-strong);
}

html[data-theme="dark"] .terra-section-kicker {
    color: #8bb0ff;
}

html[data-theme="dark"] .terra-section-title {
    color: var(--dt-ink-strong);
}

html[data-theme="dark"] .terra-topic-card {
    border-color: var(--dt-line);
    background: var(--dt-surface);
    box-shadow: 0 10px 28px rgba(0, 0, 0, .35);
}

html[data-theme="dark"] .terra-topic-card:hover {
    border-color: rgba(91, 140, 255, .42);
    box-shadow: 0 14px 34px rgba(0, 0, 0, .50);
}

html[data-theme="dark"] .terra-topic-cover {
    background: var(--dt-surface-solid);
}

html[data-theme="dark"] .terra-topic-body h3 {
    color: var(--dt-ink-strong);
}

html[data-theme="dark"] .terra-topic-body p {
    color: var(--dt-text-3);
}

html[data-theme="dark"] .terra-topic-footer {
    color: #8bb0ff;
}

html[data-theme="dark"] .terra-topic-icon {
    color: #8bb0ff;
    background: var(--dt-tint-accent);
}

html[data-theme="dark"] .terra-topic-card:hover .terra-topic-icon {
    background: rgba(91, 140, 255, .24);
}

/* ==========================================================================
   N. 降级与响应式
   ========================================================================== */

/* 不支持 backdrop-filter 的浏览器：用更高不透明度的深色面替代毛玻璃 */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    html[data-theme="dark"] .top-header .navbar,
    html[data-theme="dark"] .dropdown-menu,
    html[data-theme="dark"] .modal-content {
        background: rgba(21, 29, 51, .97);
    }
}

/* 移动端：暗色下同样收紧模糊与圆角（半径沿用亮色层在媒体查询里的取值） */
@media (max-width: 767px) {
    html[data-theme="dark"] body::before {
        background:
            radial-gradient(26rem 26rem at 6% -4%, rgba(91, 140, 255, .18), transparent 62%),
            radial-gradient(24rem 24rem at 100% 92%, rgba(139, 125, 255, .14), transparent 62%),
            linear-gradient(165deg, #070b16 0%, #0a1120 50%, #0b1224 100%);
    }

    /* 移动端卡片成片出现，白底最刺眼，这里再收一次主要面板 */
    html[data-theme="dark"] .network-hero,
    html[data-theme="dark"] .network-panel,
    html[data-theme="dark"] .network-metric-card,
    html[data-theme="dark"] .network-status-strip {
        background: var(--dt-surface-2);
    }
}

/* 用户偏好减少动效时，暗色层不额外引入过渡 */
@media (prefers-reduced-motion: reduce) {
    html[data-theme="dark"] .card,
    html[data-theme="dark"] .metrics-card {
        transition: none;
    }
}

/* ==========================================================================
   O. 模板内联样式
   --------------------------------------------------------------------------
   finder_gov / finder_validator(_list) / user_api_key / finder_gov_dtl /
   inflow_makdown / finder_txhash 等模板在 head block 里写了 <style>，其中同样
   有大量亮色写死值。这里按「浅底 → 暗色面或语义浅底」「深色字 → 暗色字分档」
   统一映射，来源是模板内联样式，顺序与来源一致，原声明带 !important 的同带；
   页面级容器的亮色底改为透明（交给全局极光背景），纯浅色装饰伪元素直接关闭。
   注意：裸元素选择器（body / button / a 等）不属于本段，统一由手写全局段处理。
   ========================================================================== */

/* 来源：284 处模板内联样式 */
html[data-theme="dark"] .theme-switch {
    background: rgba(255, 255, 255, .06);
}
html[data-theme="dark"] .theme-switch-btn:hover {
    background: rgba(255, 255, 255, .06);
}
html[data-theme="dark"] .kpi-metrics-loading {
    background: var(--dt-surface-2);
}
html[data-theme="dark"] .gov-page {
    color: var(--dt-ink-strong);
    background: transparent;
}
html[data-theme="dark"] .gov-status-tabs {
    background: var(--dt-surface);
    box-shadow: 0 6px 20px rgba(0, 0, 0, .35);
}
html[data-theme="dark"] .gov-status-tab {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .gov-status-tab:hover {
    background: var(--dt-surface-2);
    color: var(--dt-accent-soft);
}
html[data-theme="dark"] .gov-status-tab.active .count {
    background: rgba(255, 255, 255, .06);
}
html[data-theme="dark"] .gov-search-wrap .bi {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .gov-search-input {
    background: var(--dt-surface);
    color: var(--dt-ink-strong);
}
html[data-theme="dark"] .gov-search-input:focus {
    background: var(--dt-surface-2);
}
html[data-theme="dark"] .gov-search-input::placeholder {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .gov-table-card {
    background: var(--dt-surface);
}
html[data-theme="dark"] .gov-table {
    color: var(--dt-ink-strong);
}
html[data-theme="dark"] .gov-table thead th {
    background: rgba(255, 255, 255, .06) !important;
    color: var(--dt-text-3);
}
html[data-theme="dark"] .gov-id-badge {
    background: var(--dt-tint-accent);
}
html[data-theme="dark"] .gov-id-badge.passed {
    background: var(--dt-tint-teal);
}
html[data-theme="dark"] .gov-id-badge.rejected {
    background: var(--dt-tint-red);
}
html[data-theme="dark"] .gov-id-badge.failed {
    background: var(--dt-tint-accent);
}
html[data-theme="dark"] .gov-id-badge.deposit {
    background: var(--dt-tint-amber);
}
html[data-theme="dark"] .gov-title-link {
    color: var(--dt-ink-strong);
}
html[data-theme="dark"] .gov-title-link:hover {
    color: var(--dt-accent-soft);
}
html[data-theme="dark"] .gov-proposer-link {
    color: var(--dt-accent-soft);
}
html[data-theme="dark"] .gov-proposer-link:hover {
    color: var(--dt-teal);
}
html[data-theme="dark"] .gov-proposer-flag {
    background: linear-gradient(180deg, rgba(23, 32, 56, .94), rgba(19, 26, 46, .92));
    color: var(--dt-accent-soft);
}
html[data-theme="dark"] .gov-muted {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .gov-status-dot {
    background: var(--dt-tint-accent);
}
html[data-theme="dark"] .gov-status-dot.voting {
    background: var(--dt-tint-accent);
}
html[data-theme="dark"] .gov-status-dot.passed {
    background: var(--dt-tint-teal);
}
html[data-theme="dark"] .gov-status-dot.rejected {
    background: var(--dt-tint-red);
}
html[data-theme="dark"] .gov-status-dot.failed {
    background: var(--dt-tint-accent);
}
html[data-theme="dark"] .gov-status-dot.deposit {
    background: var(--dt-tint-amber);
}
html[data-theme="dark"] .gov-status-text.voting {
    color: var(--dt-accent-soft);
}
html[data-theme="dark"] .gov-status-text.passed {
    color: var(--dt-teal);
}
html[data-theme="dark"] .gov-status-text.rejected {
    color: var(--dt-red-soft);
}
html[data-theme="dark"] .gov-status-text.vetoed {
    color: var(--dt-red-soft);
}
html[data-theme="dark"] .gov-status-text.failed {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .gov-status-text.deposit {
    color: var(--dt-amber-soft);
}
html[data-theme="dark"] .gov-progress {
    background: var(--dt-surface-solid);
}
html[data-theme="dark"] .gov-progress .yes {
    background: var(--dt-tint-teal);
}
html[data-theme="dark"] .gov-progress .no {
    background: var(--dt-tint-red);
}
html[data-theme="dark"] .gov-progress .abstain {
    background: var(--dt-tint-accent);
}
html[data-theme="dark"] .gov-vote-btn {
    background: var(--dt-surface-2);
    color: var(--dt-accent-soft);
}
html[data-theme="dark"] .gov-deposit-btn {
    background: var(--dt-tint-amber);
    color: var(--dt-amber-soft);
}
html[data-theme="dark"] .gov-deposit-btn:hover {
    background: var(--dt-tint-amber);
}
html[data-theme="dark"] .gov-empty {
    background: var(--dt-surface);
    color: var(--dt-text-3);
}
html[data-theme="dark"] .gov-pager {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .gov-page-tip {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .modal-glass .modal-header {
    background: linear-gradient(180deg, rgba(23, 32, 56, .94), rgba(19, 26, 46, .92));
}
html[data-theme="dark"] .modal-glass .modal-title {
    color: var(--dt-ink-strong);
}
html[data-theme="dark"] .gov-vote-choice-chip {
    background: rgba(255, 255, 255, .06);
}
html[data-theme="dark"] .gov-summary-card {
    background: rgba(255, 255, 255, .06);
}
html[data-theme="dark"] .gov-option-card {
    background: var(--dt-surface-2);
}
html[data-theme="dark"] .gov-option-card:before {
    background: none;
}
html[data-theme="dark"] .gov-option-card.active {
    background: linear-gradient(180deg, rgba(23, 32, 56, .94), rgba(19, 26, 46, .92));
}
html[data-theme="dark"] .gov-option-card.active:after {
    background: none;
}
html[data-theme="dark"] .gov-option-name {
    color: var(--dt-ink-strong);
}
html[data-theme="dark"] .gov-option-desc {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .gov-warning-box {
    background: linear-gradient(180deg, rgba(23, 32, 56, .94), rgba(19, 26, 46, .92));
    color: var(--dt-red-soft);
}
html[data-theme="dark"] .gov-warning-box .bi {
    color: var(--dt-red-soft);
}
html[data-theme="dark"] .gov-warning-desc {
    color: var(--dt-amber-soft);
}
html[data-theme="dark"] .gov-mini-panel {
    background: var(--dt-surface-2);
}
html[data-theme="dark"] .gov-mini-label {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .gov-mini-value {
    color: var(--dt-ink-strong);
}
html[data-theme="dark"] .gov-modal-footnote {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .gov-back {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .gov-back:hover {
    color: var(--dt-accent-soft);
}
html[data-theme="dark"] .gov-hero {
    background: var(--dt-surface-2);
}
html[data-theme="dark"] .gov-chip-row {
    background: var(--dt-surface-2);
    color: var(--dt-text-3);
    box-shadow: 0 6px 20px rgba(0, 0, 0, .35);
}
html[data-theme="dark"] .gov-second-filter-row {
    background: var(--dt-tint-accent);
    color: var(--dt-accent-soft);
}
html[data-theme="dark"] .gov-countdown-action {
    background: linear-gradient(180deg, rgba(23, 32, 56, .94), rgba(19, 26, 46, .92));
    color: var(--dt-text-3);
}
html[data-theme="dark"] .result-section {
    background: var(--dt-surface-2);
}
html[data-theme="dark"] .result-header {
    background: var(--dt-tint-accent);
    color: var(--dt-text-2);
}
html[data-theme="dark"] .toggle-btn {
    color: var(--dt-accent-soft);
}
html[data-theme="dark"] .toggle-btn:hover {
    color: var(--dt-accent-soft);
}
html[data-theme="dark"] .json-key {
    color: var(--dt-red-soft);
}
html[data-theme="dark"] .json-type {
    color: var(--dt-text-2);
}
html[data-theme="dark"] .json-value-string {
    color: var(--dt-teal);
}
html[data-theme="dark"] .json-value-number {
    color: var(--dt-amber-soft);
}
html[data-theme="dark"] .json-value-boolean {
    color: var(--dt-accent-soft);
}
html[data-theme="dark"] .detail-section {
    background: var(--dt-surface);
}
html[data-theme="dark"] .tx-amount-chip {
    background: var(--dt-surface-2);
    color: var(--dt-ink-strong);
}
html[data-theme="dark"] .tx-amount-chip--lunc {
    background: var(--dt-tint-accent);
}
html[data-theme="dark"] .tx-amount-chip--zero {
    background: var(--dt-surface-2);
}
html[data-theme="dark"] .tx-amount-chip--lunc .tx-amount-symbol {
    color: var(--dt-teal);
}
html[data-theme="dark"] .tx-amount-value {
    color: var(--dt-ink-strong);
}
html[data-theme="dark"] .validator-detail-page {
    background: transparent;
}
html[data-theme="dark"] .vd-shell {
    background: linear-gradient(180deg, rgba(23, 32, 56, .94), rgba(19, 26, 46, .92));
}
html[data-theme="dark"] .vd-hero {
    background: linear-gradient(180deg, rgba(23, 32, 56, .94), rgba(19, 26, 46, .92));
    color: var(--dt-ink-strong);
}
html[data-theme="dark"] .vd-hero:before {
    background: none;
}
html[data-theme="dark"] .vd-back-link {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .vd-back-link:hover {
    color: var(--dt-accent-soft);
}
html[data-theme="dark"] .vd-period-pills {
    background: var(--dt-surface);
    box-shadow: 0 6px 20px rgba(0, 0, 0, .35);
}
html[data-theme="dark"] .vd-period-pills button {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .vd-avatar {
    background: var(--dt-surface-2);
}
html[data-theme="dark"] .vd-desc {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .vd-chip {
    background: var(--dt-surface-2);
    color: var(--dt-accent-soft);
}
html[data-theme="dark"] .vd-chip:hover {
    background: var(--dt-surface-2);
    color: var(--dt-teal);
}
html[data-theme="dark"] .vd-metric-card {
    background: var(--dt-surface-2);
}
html[data-theme="dark"] .vd-metric-card.rank {
    background: linear-gradient(180deg, rgba(23, 32, 56, .94), rgba(19, 26, 46, .92));
}
html[data-theme="dark"] .vd-metric-card.power {
    background: linear-gradient(180deg, rgba(23, 32, 56, .94), rgba(19, 26, 46, .92));
}
html[data-theme="dark"] .vd-metric-card.active {
    background: linear-gradient(180deg, rgba(23, 32, 56, .94), rgba(19, 26, 46, .92));
}
html[data-theme="dark"] .vd-metric-card.uptime {
    background: linear-gradient(180deg, rgba(23, 32, 56, .94), rgba(19, 26, 46, .92));
}
html[data-theme="dark"] .vd-metric-value {
    color: var(--dt-ink-strong);
}
html[data-theme="dark"] .vd-metric-label {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .vd-panel {
    background: var(--dt-surface-2);
}
html[data-theme="dark"] .vd-panel-title {
    color: var(--dt-accent-soft);
}
html[data-theme="dark"] .vd-bond-bar {
    background: var(--dt-tint-accent);
}
html[data-theme="dark"] .vd-bond-fill {
    background: linear-gradient(180deg, rgba(23, 32, 56, .94), rgba(19, 26, 46, .92));
}
html[data-theme="dark"] .vd-stat-caption {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .vd-stat-number {
    color: var(--dt-ink-strong);
}
html[data-theme="dark"] .vd-label {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .vd-value {
    color: var(--dt-ink-strong);
}
html[data-theme="dark"] .vd-copy-btn {
    background: rgba(255, 255, 255, .06);
    color: var(--dt-text-3);
}
html[data-theme="dark"] .vd-copy-btn:hover {
    color: var(--dt-text-2);
}
html[data-theme="dark"] .vd-tab {
    background: var(--dt-surface);
    color: var(--dt-text-3);
}
html[data-theme="dark"] .vd-tab.active {
    background: var(--dt-surface-2);
    color: var(--dt-ink-strong);
}
html[data-theme="dark"] .stake-section {
    background: linear-gradient(180deg, rgba(23, 32, 56, .94), rgba(19, 26, 46, .92));
    color: var(--dt-ink-strong);
}
html[data-theme="dark"] .stake-card {
    background: linear-gradient(180deg, rgba(23, 32, 56, .94), rgba(19, 26, 46, .92));
}
html[data-theme="dark"] .stake-total {
    color: var(--dt-teal);
}
html[data-theme="dark"] .vd-empty {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .history-section {
    background: var(--dt-surface-2);
}
html[data-theme="dark"] .history-card {
    background: linear-gradient(180deg, rgba(23, 32, 56, .94), rgba(19, 26, 46, .92));
}
html[data-theme="dark"] .history-title {
    color: var(--dt-ink-strong);
}
html[data-theme="dark"] .history-desc {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .history-table thead th {
    background: var(--dt-surface-2) !important;
    color: var(--dt-text-3);
}
html[data-theme="dark"] .history-table tbody tr {
    background: var(--dt-surface-2);
}
html[data-theme="dark"] .history-table tbody tr:hover {
    background: var(--dt-surface-2);
}
html[data-theme="dark"] .history-table-wrap .fixed-table-pagination {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .history-type-badge {
    background: var(--dt-surface-2);
    color: var(--dt-text-2);
}
html[data-theme="dark"] .history-type-delegate {
    background: var(--dt-tint-teal);
    color: var(--dt-teal);
}
html[data-theme="dark"] .history-type-undelegate {
    background: var(--dt-tint-red);
    color: var(--dt-red-soft);
}
html[data-theme="dark"] .history-type-redelegate {
    background: var(--dt-tint-accent);
    color: var(--dt-accent-soft);
}
html[data-theme="dark"] .history-type-reward {
    background: var(--dt-tint-amber);
    color: var(--dt-red-soft);
}
html[data-theme="dark"] .delegators-section,
html[data-theme="dark"] .governance-section,
html[data-theme="dark"] .blocks-section,
html[data-theme="dark"] .oracle-section {
    background: var(--dt-surface-2);
    color: var(--dt-ink-strong);
}
html[data-theme="dark"] .delegators-card,
html[data-theme="dark"] .governance-card,
html[data-theme="dark"] .blocks-card,
html[data-theme="dark"] .oracle-card {
    background: linear-gradient(180deg, rgba(23, 32, 56, .94), rgba(19, 26, 46, .92));
}
html[data-theme="dark"] .delegators-total {
    color: var(--dt-amber-soft);
}
html[data-theme="dark"] .delegators-table thead th {
    background: var(--dt-surface-2) !important;
    color: var(--dt-text-3);
}
html[data-theme="dark"] .delegator-rank {
    color: var(--dt-amber-soft);
}
html[data-theme="dark"] .history-link {
    color: var(--dt-accent-soft);
}
html[data-theme="dark"] .history-link:hover {
    color: var(--dt-teal);
}
html[data-theme="dark"] .blocks-summary-table th {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .sign-ring {
    background: linear-gradient(180deg, rgba(23, 32, 56, .94), rgba(19, 26, 46, .92));
}
html[data-theme="dark"] .sign-ring:after {
    background: var(--dt-surface-2);
    box-shadow: 0 6px 20px rgba(0, 0, 0, .35);
}
html[data-theme="dark"] .blocks-filter {
    background: var(--dt-surface-2);
    color: var(--dt-text-3);
}
html[data-theme="dark"] .blocks-period-select {
    background: var(--dt-surface-2);
    color: var(--dt-text-2);
}
html[data-theme="dark"] .blocks-table thead th,
html[data-theme="dark"] .oracle-table thead th {
    background: var(--dt-surface-2) !important;
    color: var(--dt-text-3);
}
html[data-theme="dark"] .governance-table thead th {
    background: var(--dt-surface-2) !important;
    color: var(--dt-text-3);
}
html[data-theme="dark"] .proposal-badge {
    background: var(--dt-tint-teal);
    color: var(--dt-teal);
}
html[data-theme="dark"] .proposal-badge.rejected {
    background: var(--dt-tint-red);
    color: var(--dt-red-soft);
}
html[data-theme="dark"] .vote-yes,
html[data-theme="dark"] .status-passed {
    background: var(--dt-tint-teal);
    color: var(--dt-teal);
}
html[data-theme="dark"] .vote-no,
html[data-theme="dark"] .vote-veto,
html[data-theme="dark"] .status-rejected {
    background: var(--dt-tint-red);
    color: var(--dt-red-soft);
}
html[data-theme="dark"] .vote-abstain,
html[data-theme="dark"] .status-voting,
html[data-theme="dark"] .status-other {
    background: var(--dt-surface-2);
    color: var(--dt-text-3);
}
html[data-theme="dark"] .stake-info-box {
    background: var(--dt-surface-2);
}
html[data-theme="dark"] .stake-label {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .stake-value {
    color: var(--dt-ink-strong);
}
html[data-theme="dark"] .balance-badge {
    background: var(--dt-tint-accent);
    color: var(--dt-accent-soft);
}
html[data-theme="dark"] .input-group-modern .input-group-text {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .validator-filter-select {
    background: var(--dt-surface-2);
    color: var(--dt-text-2);
}
html[data-theme="dark"] .dashboard-container {
    background: transparent;
}
html[data-theme="dark"] .summary-inline-toggle {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .summary-inline-toggle:hover {
    color: var(--dt-accent-soft);
}
html[data-theme="dark"] .summary-inline-toggle .toggle-icon {
    color: var(--dt-accent-soft);
}
html[data-theme="dark"] .metrics-card {
    background: var(--dt-surface-2);
}
html[data-theme="dark"] .avatar-wrapper {
    background: var(--dt-surface-2);
}
html[data-theme="dark"] .avatar-placeholder {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .progress-power {
    background: var(--dt-surface-2);
}
html[data-theme="dark"] .progress-power-bar {
    background: var(--dt-tint-accent);
}
html[data-theme="dark"] .badge-dynamic {
    background: rgba(255, 255, 255, .06);
    color: var(--dt-accent-soft);
}
html[data-theme="dark"] .change-up {
    color: #4fd1b5 !important;
}
html[data-theme="dark"] .change-down {
    color: #ff9aa6 !important;
}
html[data-theme="dark"] .custom-pills .nav-link {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .table-modern thead th {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .table-modern tbody tr {
    background: var(--dt-surface-2);
}
html[data-theme="dark"] .table-modern tbody td {
    background: var(--dt-surface-2);
}
html[data-theme="dark"] .text-title-dark {
    color: var(--dt-ink-strong);
}
html[data-theme="dark"] .text-muted-custom {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .btn-icon-more {
    background: var(--dt-surface-2);
    color: var(--dt-text-3);
}
html[data-theme="dark"] .balance-badge:hover {
    background: var(--dt-tint-accent);
}
html[data-theme="dark"] .redelegate-target-box {
    background: linear-gradient(180deg, rgba(23, 32, 56, .94), rgba(19, 26, 46, .92));
}
html[data-theme="dark"] .redelegate-target-moniker {
    color: var(--dt-ink-strong);
}
html[data-theme="dark"] .redelegate-target-addr {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .alert-soft-warning {
    background: var(--dt-tint-amber);
    color: var(--dt-amber-soft);
}
html[data-theme="dark"] .alert-soft-info {
    background: var(--dt-tint-accent);
    color: var(--dt-accent-soft);
}
html[data-theme="dark"] .autostake-grant-status {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .autostake-grant-status.is-active {
    color: var(--dt-teal);
}
html[data-theme="dark"] .autostake-grant-status.is-error {
    color: var(--dt-red-soft);
}
html[data-theme="dark"] .formula-tip {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .dropdown-item.disabled-custom {
    color: #8b97b3 !important;
}
html[data-theme="dark"] .compound-badge {
    background: linear-gradient(180deg, rgba(23, 32, 56, .94), rgba(19, 26, 46, .92));
}
html[data-theme="dark"] .state-pill-on {
    background: rgba(255, 255, 255, .06);
    color: var(--dt-teal);
}
html[data-theme="dark"] .state-pill-off {
    background: rgba(255, 255, 255, .06);
    color: var(--dt-text-3);
}
html[data-theme="dark"] .wallet-empty-state {
    background: var(--dt-surface-2);
}
html[data-theme="dark"] .wallet-empty-state .icon {
    background: var(--dt-tint-accent);
    color: var(--dt-accent-soft);
}
html[data-theme="dark"] .my-delegations-toolbar {
    background: linear-gradient(180deg, rgba(23, 32, 56, .94), rgba(19, 26, 46, .92));
}
html[data-theme="dark"] .withdraw-toolbar-title {
    color: var(--dt-ink-strong);
}
html[data-theme="dark"] .withdraw-toolbar-title .icon {
    background: linear-gradient(180deg, rgba(23, 32, 56, .94), rgba(19, 26, 46, .92));
}
html[data-theme="dark"] .withdraw-toolbar-desc {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .btn-withdraw-primary {
    background: linear-gradient(180deg, rgba(23, 32, 56, .94), rgba(19, 26, 46, .92));
}
html[data-theme="dark"] .btn-withdraw-commission {
    background: linear-gradient(180deg, rgba(23, 32, 56, .94), rgba(19, 26, 46, .92));
    color: var(--dt-ink-strong);
}
html[data-theme="dark"] .btn-withdraw-commission:hover {
    color: var(--dt-ink-strong);
}
html[data-theme="dark"] .commission-modal-body {
    background: linear-gradient(180deg, rgba(23, 32, 56, .94), rgba(19, 26, 46, .92));
}
html[data-theme="dark"] .commission-coin-card {
    background: var(--dt-surface-2);
}
html[data-theme="dark"] .commission-coin-card.primary {
    background: linear-gradient(180deg, rgba(23, 32, 56, .94), rgba(19, 26, 46, .92));
}
html[data-theme="dark"] .commission-coin-card .denom {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .commission-coin-card .raw-denom {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .commission-coin-card .amount {
    color: var(--dt-ink-strong);
}
html[data-theme="dark"] .commission-amount-copy {
    background: rgba(255, 255, 255, .06);
    color: var(--dt-amber-soft);
}
html[data-theme="dark"] .commission-amount-copy:hover {
    background: rgba(255, 255, 255, .06);
    color: var(--dt-red-soft);
}
html[data-theme="dark"] .commission-coin-card .coin-icon {
    background: var(--dt-tint-amber);
    color: var(--dt-amber-soft);
}
html[data-theme="dark"] .commission-coin-card.primary .coin-icon {
    background: linear-gradient(180deg, rgba(23, 32, 56, .94), rgba(19, 26, 46, .92));
}
html[data-theme="dark"] .toc-title {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .toc-link {
    color: var(--dt-text-2);
}
html[data-theme="dark"] .toc-link:hover {
    background: var(--dt-surface-2);
    color: var(--dt-accent-soft);
}
html[data-theme="dark"] .toc-h1 {
    color: var(--dt-ink-strong);
}
html[data-theme="dark"] .toc-h2 {
    color: var(--dt-text-2);
}
html[data-theme="dark"] .toc-h2::before {
    background: var(--dt-surface-solid);
}
html[data-theme="dark"] .toc-h3 {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .toc-h4 {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .toc-container::-webkit-scrollbar-thumb {
    background: var(--dt-surface-solid);
}
html[data-theme="dark"] .copy-code-btn {
    background: var(--dt-surface-2);
    color: var(--dt-text-3);
}
html[data-theme="dark"] .copy-code-btn:hover {
    background: var(--dt-surface-2);
    color: var(--dt-accent-soft);
}
html[data-theme="dark"] .timeline {
    background: linear-gradient(180deg, rgba(23, 32, 56, .94), rgba(19, 26, 46, .92));
}
html[data-theme="dark"] .timeline-card {
    background: var(--dt-surface-2);
}
html[data-theme="dark"] .card-body li::before {
    color: var(--dt-accent-soft);
}
html[data-theme="dark"] .btn-autostake {
    background: var(--dt-tint-accent);
}
html[data-theme="dark"] .api-key-page {
    background: transparent;
    color: var(--dt-ink-strong);
}
html[data-theme="dark"] .api-key-shell {
    background: linear-gradient(180deg, rgba(23, 32, 56, .94), rgba(19, 26, 46, .92));
}
html[data-theme="dark"] .api-key-hero {
    background: linear-gradient(180deg, rgba(23, 32, 56, .94), rgba(19, 26, 46, .92));
    color: var(--dt-ink-strong);
}
html[data-theme="dark"] .api-key-hero:before {
    background: none;
}
html[data-theme="dark"] .api-key-hero p {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .api-key-wallet {
    background: var(--dt-surface-2);
    color: var(--dt-accent-soft);
}
html[data-theme="dark"] .api-key-section {
    background: linear-gradient(180deg, rgba(23, 32, 56, .94), rgba(19, 26, 46, .92));
}
html[data-theme="dark"] .api-key-toolbar-title {
    color: var(--dt-ink-strong);
}
html[data-theme="dark"] .api-key-toolbar-desc {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .api-key-card {
    background: linear-gradient(180deg, rgba(23, 32, 56, .94), rgba(19, 26, 46, .92));
}
html[data-theme="dark"] .api-key-table thead th {
    background: var(--dt-surface-2) !important;
    color: var(--dt-text-3);
}
html[data-theme="dark"] .api-key-table tbody td {
    background: var(--dt-surface-2) !important;
}
html[data-theme="dark"] .api-token-text {
    color: var(--dt-ink-strong);
}
html[data-theme="dark"] .api-copy-btn {
    background: rgba(255, 255, 255, .06);
    color: var(--dt-text-3);
}
html[data-theme="dark"] .api-copy-btn:hover {
    color: var(--dt-accent-soft);
}
html[data-theme="dark"] .api-status-on {
    background: var(--dt-tint-teal);
    color: var(--dt-teal);
}
html[data-theme="dark"] .api-status-off {
    background: var(--dt-tint-red);
    color: var(--dt-red-soft);
}
html[data-theme="dark"] .api-key-role-guest {
    background: var(--dt-surface-2);
    color: var(--dt-text-3);
}
html[data-theme="dark"] .api-key-role-vip {
    background: var(--dt-tint-accent);
    color: var(--dt-accent-soft);
}
html[data-theme="dark"] .api-key-role-svip {
    background: var(--dt-tint-amber);
    color: var(--dt-red-soft);
}
html[data-theme="dark"] .api-key-card .fixed-table-pagination {
    color: var(--dt-text-3);
}
html[data-theme="dark"] .api-key-role-panel {
    background: var(--dt-surface-2);
}
html[data-theme="dark"] .api-key-role-panel h5 {
    color: var(--dt-ink-strong);
}
html[data-theme="dark"] .api-key-role-panel p {
    color: var(--dt-text-3);
}

/* ==========================================================================
   P. 补充修正（暗色下可读性审计发现）
   --------------------------------------------------------------------------
   这些点由自动化审计（扫描「亮底元素」与「暗底暗字」）定位：包括顶栏涨跌幅
   徽章、移动端展开后的搜索条、弹窗关闭按钮、语义文字色工具类与分页按钮。
   ========================================================================== */

/* 顶栏 LUNC/USTC 24h 涨跌幅徽章：原亮色是「浅色底 + 深色字」，
   深色底上必须反转成「透明色底 + 提亮文字」才看得清。 */
html[data-theme="dark"] .bg-success-price {
    background-color: var(--dt-tint-green) !important;
    color: #6ee7b7 !important;
}

html[data-theme="dark"] .bg-danger-price {
    background-color: var(--dt-tint-red) !important;
    color: #fda4af !important;
}

/* 弹窗关闭按钮：BS 默认是黑色 SVG 叉。
   注意不能只用 filter: invert()——会把按钮自身的背景一起反相，
   在深色弹窗头上反而变成「白叉 + 浅底」而看不见；这里直接换成浅色 SVG。 */
html[data-theme="dark"] .btn-close {
    filter: none;
    opacity: .7;
    background-color: transparent;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23cbd5e1'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");
    border-radius: 6px;
}

html[data-theme="dark"] .btn-close:hover,
html[data-theme="dark"] .btn-close:focus-visible {
    opacity: 1;
    background-color: rgba(251, 113, 133, .18);
}

/* 移动端点击搜索图标后铺满顶栏的搜索条（style.css 里写死 #ffffff） */
html[data-theme="dark"] .top-header .navbar .full-searchbar {
    background-color: #0d1424;
    border-bottom-color: var(--dt-line);
    box-shadow: 0 8px 24px rgba(0, 0, 0, .55);
}

html[data-theme="dark"] .top-header .navbar .full-searchbar .form-control {
    background-color: rgba(255, 255, 255, .06);
    border-color: var(--dt-line);
    color: var(--dt-text);
}

/* 侧边栏品牌名：原色 #3461ff 在深色侧栏上偏暗 */
html[data-theme="dark"] .sidebar-wrapper .sidebar-header .logo-text {
    color: #9dbcff;
}

/* 语义文字色工具类：原亮色值在深色底上对比不足，统一提亮（原声明多用 !important） */
html[data-theme="dark"] .text-primary {
    color: var(--dt-accent-soft) !important;
}

html[data-theme="dark"] .text-danger {
    color: #ff8a94 !important;
}

html[data-theme="dark"] .text-success {
    color: #4ade80 !important;
}

html[data-theme="dark"] .text-warning {
    color: var(--dt-amber-soft) !important;
}

html[data-theme="dark"] .text-info {
    color: #38bdf8 !important;
}

html[data-theme="dark"] .text-secondary,
html[data-theme="dark"] .text-option {
    color: var(--dt-text-3) !important;
}

/* Finder 列表「加载更多」按钮：index.css 里是透明底 + 深蓝字/边框 */
html[data-theme="dark"] #loadmore,
html[data-theme="dark"] .btn-blue-loadmore {
    color: var(--dt-accent-soft);
    border-color: rgba(91, 140, 255, .55);
    background-color: transparent;
}

html[data-theme="dark"] #loadmore:hover,
html[data-theme="dark"] .btn-blue-loadmore:hover {
    color: #ffffff;
    border-color: transparent;
    background-color: var(--dt-accent);
}

/* 真实 DOM 里以 <br> 结尾的加载态提示等灰字 */
html[data-theme="dark"] .link-gray,
html[data-theme="dark"] .stats-info,
html[data-theme="dark"] .net-list {
    color: var(--dt-text-3);
}

/* 亮色实底徽章（如 roadmap 的「已完成/进行中」）在暗色下依旧保持亮底，
   所以文字必须是深色：.text-dark 在上面已经被整体提亮，这里按组合强制回深色。 */
html[data-theme="dark"] .bg-warning {
    color: #3a2c05;
}

html[data-theme="dark"] .bg-warning.text-dark,
html[data-theme="dark"] .bg-info.text-dark,
html[data-theme="dark"] .bg-success.text-dark,
html[data-theme="dark"] .bg-danger.text-dark,
html[data-theme="dark"] .bg-primary.text-dark,
html[data-theme="dark"] .bg-orange.text-dark,
html[data-theme="dark"] .bg-pink.text-dark {
    color: #1b2436 !important;
}
