/* ═══════════════════════════════════════════════════════════════════
   黑白云 (heibaiyun) — 统计查询页（卡密进粉统计）皮肤   heibaiyun-stat-query.css
   版本: 20261008 · v6「功能性控件彩底 + 淡底用量收敛」修复轮（桌面端，≥1024px）
   设计契约: docs/HEIBAIYUN_UI_DESIGN_SYSTEM.md
             （§1.3 功能性控件必须有彩底 / §1.4 按动作后果着色 / §1.5 淡底 ≤12 /
               §3.4 统计页 / §3.7 常驻底禁 color-mix / §6.2 四态可点击性）
   令牌来源: /assets/css/heibaiyun/theme.css（v6，55 个 --bw-c-*，只读消费）。
   本文件不写任何颜色字面量：颜色 / 圆角 / 阴影 / 缓动全部消费 var(--bw-*)，
   不引用 --pp-*，不使用 700+ 字重，不使用彩色渐变 / 玻璃模糊 / 彩色柔光阴影。
   挂载: 本页属 view_override=heibaiyun 的品牌子站请求 /stat-query*，
         由通用皮肤机制注入 /assets/css/brand/heibaiyun-stat-query.css?v=<mtime>
         （SubStationService::buildPageSkinLinks，带文件 mtime 版本号，改文件即破缓存），
         位置在本页内联 <style> 之后（注入晚于内联样式），故「更高特异性 + 更晚加载」
         即可覆盖内联；仅少数必须压过「元素级内联样式」处使用 !important，逐处注明理由。

   本页 DOM 只读（app/Views/public/stat_query.php，禁止修改的共享文件），可用钩子:
     .top-bar / .back-btn / .top-title
     .layout（纵向两行 fr 栅格）/ .panel / .panel-head / .panel-head-left / .panel-label / .badge
     .input-scroll / .codes-input / .input-footer / .submit-btn / .export-btn / .error-msg
     .result-scroll / .result-table / th(.th-num/.th-code/.th-total/.th-day)
       / td(.td-num/.td-code/.td-total/.td-day) / .tbody-total
     .pagination-bar / .page-info / .page-btns / .page-btn / .page-size-wrap / .page-size-select
     注：v6 已删除 .state-row 规则——本模板线上 DOM 无该节点（空态/占位由 .row-empty
         与 JS 生成的 td[colspan=10] 承担，见 §8），保留规则属死选择器。

   安全约束（不得违反，逐条保持）:
     · 不写根元素（html/body）选择器与通配选择器：原页内联的
       html,body{height:100%;overflow:hidden} 等关键约束保持原样；
       （本文件仅在 .layout 规则上用 html body 作「特异性前缀」，不声明任何 html/body 属性）
     · .layout 保持「纵向栅格 + 两行 fr 之和恒等于容器高」，不改横向分栏；
     · .layout 与原 .panel 的 overflow 一律不覆写（面板滚动与横向滚动依赖它）；
     · .result-scroll 保持横向滚动（仅把滚动条品牌化，不改 overflow）；
     · .panel 不加 transform / filter（内部 thead 为 position:sticky，避免改变包含块）；
     · 不改 DOM / JS，不隐藏任何功能元素（输入框、查询、导出、分页、表格列全部保留）。

   覆盖策略（本页属禁止修改的共享视图，页面内联样式无法删除）:
     内联 <style> 全部为「类级/元素级」选择器；本文件以「更高特异性 + 更晚加载」覆盖，
     不删除也不修改内联声明。必须清除的原页内联蓝值（共 20 处，逐条命中）:
       #0071e3 ×10
         1 .back-btn color              → .top-bar .back-btn
         2 .badge color                 → .layout .badge
         3 .submit-btn background       → .layout .submit-btn
         4 th.th-total color            → .layout .result-table th.th-total
         5 .td-total color              → .layout .result-table td.td-total
         6 .tbody-total .td-total color → .layout .result-table .tbody-total .td-total
         7 .page-info strong color      → .layout .page-info strong
         8 .page-btn:hover color        → .layout .page-btn:hover:not(:disabled)
         9 .page-btn.active background  → .layout .page-btn.active
        10 .page-btn.active border-color→ .layout .page-btn.active
       rgba(0,113,227,…) ×10
        11 .badge background (.1)               → .layout .badge
        12 .submit-btn box-shadow (.25)         → .layout .submit-btn
        13 .submit-btn:hover box-shadow (.35)   → .layout .submit-btn:hover:not(:disabled)
        14 tbody tr:hover td background (.04)   → .layout .result-table tbody tr:hover td
        15 .tbody-total background (.05)        → .layout .result-table .tbody-total
        16 .tbody-total td border (.18)         → .layout .result-table .tbody-total td
        17 .page-btn:hover background (.1)      → .layout .page-btn:hover:not(:disabled)
        18 .page-btn:hover border-color (.3)    → .layout .page-btn:hover:not(:disabled)
        19 .page-size-select:focus border (.42) → .layout .page-size-select:focus
        20 .page-size-select:focus shadow (.08) → .layout .page-size-select:focus
     另需清除的原页内联冷灰旧值（全部命中，见各节注释）:
       #f5f5f7（body 底 / .export-btn hover 底）、#d2d2d7（.export-btn 边）、
       #1d1d1f（.export-btn 字）、#1a2433（body 字 / .codes-input 字 / .td-code 字）、
       rgba(246,244,240,.96)（表头冷米灰底）、rgba(26,36,51,…) ×25（线 / 字 / 底 / 滚动条 / 占位）、
       #ca5b47（.error-msg 字 + JS 元素级内联错误字，砖红 → 品牌危险色）。
       body 自身的 #f5f5f7 / #1a2433 无需单独覆写：body 内容恰为 [.top-bar + .layout]，
       二者均被本文件换成暖纸/暖米灰底与墨字，冷灰底不产生任何可见像素（故不动 html/body）。

   桌面端设计要点（契约 §3.4 / §6.2）:
     · 布局: 沿用纵向两行（内联 grid-template-rows:1fr 1fr 为安全约束）；gap:0 使两面板
       拼合成一整张连续纸面，仅以 1px --bw-hairline 分段；取消卡片间隙。
     · 去卡框: .panel 无边框 / 无圆角 / 无阴影 / 无玻璃模糊；顶栏与面板同为暖纸底，
       顶栏底线 1px --bw-hairline。
     · 功能性控件（v6 修复 §1.3 裸控件）: 返回 / 数据导出 / 分页 / 每页条数 四项一律
       「静态 --bw-c-*-bg 底（22% 档，禁用 color-mix）+ 同族 1px 描边 + 同族 -ink 字」，
       并补齐 hover（-bg-h + 上浮 1px）/ :active（品牌按压位移）/ :focus-visible（紫檀焦点环）/
       禁用（虚线描边 + 灰字 + not-allowed）四态。分页当前页仍为紫檀实底档。
     · 色彩: 紫檀只出现在「可点的东西」——查询主按钮（唯一硬印，契约 §1.3）、
       分页激活项、焦点环；数据强调用黛青 --bw-c-blue 族（表头 + 总计行）；
       错误态用朱砂 --bw-c-red 族。每屏紫檀着墨面积远低于 3%。
     · 淡底用量（v6 修复 §1.5 ≤12）: 黛青 tint 只保留**两处**——表头 th.th-total 与总计行
       .tbody-total；数据行 td.td-total 不再逐行铺 tint（保留 -ink 数值 + 600 字重），
       故 100 行不会变成 100 个淡底单元（原为一条贯底竖带，超 §1.5 上限）。
       3px 黛青 base 竖条同步收为「表头 + 总计行」两处。
     · 表格: 表头 1px --bw-hairline 底线（不透明暖纸底衬，供 sticky 表头）；
       行 hover 暖灰底 + 左侧 3px --bw-accent-border 淡条；总计行 --bw-c-blue-tint。
     · 字重: 正文/表格数据 400，仅标题、按钮、KPI 数值（共计进粉 / 总进粉）600，无 700+。
   ═══════════════════════════════════════════════════════════════════ */

@import url('/assets/css/heibaiyun/theme.css?v=20261008hb8');   /* [v8修复] 必须带版本号：nginx 对 /assets/ 缓存 12h，否则浏览器用旧 theme.css → 令牌缺失 → 颜色全失效 */

/* ═══ 1. 顶栏（墨脊）：暖纸底 + 1px --bw-hairline 底线 ═══════════════════ */
.top-bar {
    height: var(--bw-header-h);                   /* 56px，与 v4 横脊高度一致（原 54px） */
    padding: 0 24px;
    gap: 14px;
    background: var(--bw-paper);                  /* 原半透明白 + 12px 玻璃模糊 → 不透明暖纸 */
    -webkit-backdrop-filter: none;                /* 契约 §1.3：修饰性 backdrop-filter 归零 */
    backdrop-filter: none;                        /* 同上 */
    border-bottom: 1px solid var(--bw-hairline);  /* 原 1px rgba(26,36,51,.1) 冷灰线 → 模块线 */
    box-shadow: none;
    font-family: var(--bw-font);
    color: var(--bw-text-primary);                /* 原内联冷墨 #1a2433（经 body 继承而来） */
}

/* 返回键（次要导航 → slate 族，契约 §1.4 / §2.1 .qt-back-btn）：
   v6 修复：原为「纸底 + 近黑字」裸控件（§1.3 违规）→ 暖灰 22% 彩底 + 同族描边 + 同族 ink 字。 */
.top-bar .back-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 32px;
    padding: 0 12px;
    margin-left: -12px;                /* 抵消内边距，文字仍与顶栏左边距对齐 */
    border: 1px solid var(--bw-c-slate);          /* §1.3② 同族 1px 描边（对彩底 ≥3.18:1） */
    border-radius: var(--bw-radius-sm);
    background: var(--bw-c-slate-bg);             /* §1.3① 常驻彩底（静态 22% 档，非 color-mix） */
    color: var(--bw-c-slate-ink);                 /* §1.3③ 覆盖内联 #0071e3（蓝值 1/20）→ 同族 ink */
    font-weight: 600;                             /* 原内联 700 → 600（契约 §4.6 / §3.6） */
    cursor: pointer;
    transition: background var(--bw-transition), color var(--bw-transition),
                border-color var(--bw-transition), transform var(--bw-transition);
}
.top-bar .back-btn:hover {
    opacity: 1;                        /* 覆盖内联 hover 的 .68 半透明，改用形态反馈 */
    background: var(--bw-c-slate-bg-h);           /* §6.2 hover：底色加深一档 */
    transform: translateY(-1px);                  /* §6.2 hover：上浮 1px（可点击性反馈） */
}
.top-bar .back-btn:active {
    background: var(--bw-c-slate-bg-h);
    transform: translate(2px, 2px);               /* §6.2 :active 品牌按压签名 */
}
.top-bar .back-btn:focus-visible {
    outline: none;
    box-shadow: var(--bw-focus-ring);             /* §6.2 焦点环 = 紫檀（§1.1 允许） */
}

/* 顶栏标题：墨色 600（原内联 700） */
.top-bar .top-title {
    font-size: 16px;
    font-weight: 600;
    letter-spacing: -.01em;
    color: var(--bw-text-primary);
}

/* ═══ 2. 主布局：纵向两行 + gap:0（一整张连续纸面） ══════════════════════
   内联 .layout{display:grid;grid-template-rows:1fr 1fr;overflow:hidden} 是本页安全约束
   （两行 fr 之和恒等于容器高，overflow:hidden 下不撑破），此处原样沿用，不改横向分栏。
   使用 html body 前缀提高特异性（契约 §3.4 明确许可），以免为 gap / 底色动用 !important。 */
html body .layout {
    grid-template-rows: 1fr 1fr;       /* 与内联一致：纵向两行，不多不少 */
    padding: 14px 20px;
    gap: 0;                            /* 原内联 14px 卡片间隙 → 0，两面板拼合成连续纸面 */
    background: var(--bw-bg-page);     /* 原 body 冷灰底 #f5f5f7 + 水彩氛围 → 纯暖米灰 */
    font-family: var(--bw-font);
    color: var(--bw-text-primary);     /* 原内联冷墨 #1a2433 */
}

/* 面板：原半透明玻璃卡（1px 冷灰边 + 14px 圆角 + 彩色柔光阴影）→ 去卡框（契约 §3.4） */
.layout .panel {
    background: var(--bw-paper);       /* 暖纸底（原 rgba(255,255,255,.72)） */
    -webkit-backdrop-filter: none;     /* 原 8px 玻璃模糊 → 禁用 */
    backdrop-filter: none;
    border: 0;                         /* 去卡框：无描边 */
    border-radius: 0;                  /* 去卡框：直角，构成墨脊长卷的连续纸面 */
    box-shadow: none;                  /* 去卡框：无影（硬印只保留主按钮） */
}
/* 两面板之间仅以 1px 模块线分段（原为两条独立浮卡） */
.layout > .panel + .panel { border-top: 1px solid var(--bw-hairline); }

/* ═══ 3. 面板头 / 小标题 / 计数徽标 ═════════════════════════════════════ */
.layout .panel-head {
    padding: 12px 20px;
    gap: 12px;
    border-bottom: 1px solid var(--bw-divider);  /* 原 rgba(26,36,51,.08) → 中性分隔线 */
    background: transparent;                     /* 原品牌渐变底带 → 去掉渐变，透出暖纸 */
}
.layout .panel-head-left { gap: 10px; }

/* 面板小标题：原 11px/700 冷灰字 → 600 次级墨字（标题允许 600） */
.layout .panel-label {
    font-size: 11px;
    font-weight: 600;                  /* 原内联 700 → 600 */
    letter-spacing: .14em;
    color: var(--bw-text-secondary);   /* 原内联 rgba(26,36,51,.48) */
}

/* 计数徽标（#inputCountBadge / #resultCountBadge）：「数据量」标签（契约 §1.2 → 黛青）。
   要点：非交互元素，**不用紫檀**（紫檀只属「可交互」，避免与按钮混淆）；
   三形态 = 黛青 tint 底 + 黛青 ink 字（tint 只铺纸面 §1.3；ink-on-tint 对比 ≥4.5）。
   原内联 blue10 淡底 + 蓝字 → 黛青族同形态（非降级为灰）。 */
.layout .badge {
    height: 22px;
    padding: 0 10px;
    background: var(--bw-c-blue-tint);     /* 覆盖内联 rgba(0,113,227,.1)（蓝值 11/20）：黛青 8% 淡底 */
    color: var(--bw-c-blue-ink);           /* 覆盖内联 #0071e3（蓝值 2/20）：黛青 ink（非 base，§3.7①） */
    font-weight: 600;                      /* 原内联 700 → 600 */
    font-variant-numeric: tabular-nums;
}

/* ═══ 4. 卡密输入区 ══════════════════════════════════════════════════ */
.layout .input-scroll {
    padding: 14px 20px;
    scrollbar-width: thin;
    scrollbar-color: var(--bw-border-strong) transparent;
}
/* 输入域：原无边框透明文本块 → 暖纸底 + 可交互边界（border-strong 对纸 3.72:1，契约 §4.7③）；
   保留等宽字体便于逐行核对卡密。输入域底面保持纸白（§1.3 唯一例外：输入框底面）。 */
.layout .codes-input {
    padding: 12px 14px;
    border: 1px solid var(--bw-border-strong);
    border-radius: var(--bw-radius-sm);
    background: var(--bw-paper);       /* 原 transparent */
    color: var(--bw-text-primary);     /* 原内联冷墨 #1a2433 */
    box-shadow: none;
    font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
    line-height: 1.7;
    transition: border-color var(--bw-transition), box-shadow var(--bw-transition);
}
.layout .codes-input::placeholder {
    color: var(--bw-text-muted-on-tint);   /* 原内联 rgba(26,36,51,.3)：纸面占位提示，5.6:1 */
}
.layout .codes-input:focus {
    border-color: var(--bw-accent);        /* 焦点边界用紫檀 */
    box-shadow: var(--bw-focus-ring);
}

.layout .input-footer {
    padding: 12px 20px;
    gap: 12px;
    border-top: 1px solid var(--bw-divider);  /* 原 rgba(26,36,51,.07) */
    background: transparent;
}

/* ═══ 5. 按钮：主按钮紫檀 + 品牌硬印；次级（导出）黛青彩底 ═══════════════ */
/* 查询（主按钮）：原蓝色实心 + 蓝调发光 → 紫檀实心 + 硬印（契约 §1.3：硬印仅 logo 与主按钮） */
.layout .submit-btn {
    height: 38px;
    padding: 0 20px;
    border: 1px solid var(--bw-accent);
    border-radius: var(--bw-radius-sm);
    background: var(--bw-accent);           /* 覆盖内联 #0071e3（蓝值 3/20） */
    color: var(--bw-text-inverse);
    font-weight: 600;                       /* 原内联 700 → 600 */
    box-shadow: var(--bw-shadow-stamp);     /* 原 rgba(0,113,227,.25) 蓝调发光（蓝值 12/20）→ 墨色硬印 */
    cursor: pointer;
    transition: transform var(--bw-transition), box-shadow var(--bw-transition),
                background var(--bw-transition), border-color var(--bw-transition);
}
.layout .submit-btn:hover:not(:disabled) {
    transform: none;                        /* 覆盖内联 hover 的 translateY(-1px)：硬印不靠位移表达 */
    background: var(--bw-accent-hover);     /* §6.2 hover：底色加深一档 */
    border-color: var(--bw-accent-hover);
    box-shadow: var(--bw-shadow-stamp);     /* 必须保留：覆盖内联 hover 蓝调 rgba(0,113,227,.35)（蓝值 13/20），
                                              值同基础规则但用于压过内联蓝光，非冗余 */
}
.layout .submit-btn:active:not(:disabled) {
    transform: translate(2px, 2px);         /* 按压：位移 2px，硬印消失（品牌签名） */
    box-shadow: none;
}
.layout .submit-btn:disabled {
    opacity: 1;                             /* 覆盖内联 .4 半透明，改用虚线描边表意（§6.2 禁用态） */
    transform: none;
    background: var(--bw-bg-sunken);
    border-color: var(--bw-text-disabled);
    border-style: dashed;
    color: var(--bw-text-disabled);         /* 禁用标签=装饰性，允许 text-disabled */
    box-shadow: none;
    cursor: not-allowed;
}

/* 数据导出（次级动作 → 黛青族，契约 §1.4「导出/生成文件 = blue 族」/ §1.3）：
   v6 修复：原为「纸底 #fff + 近黑字 #1d1d1f + 冷灰边」裸控件 → 黛青 22% 彩底 + 同族描边 + 同族 ink。 */
.layout .export-btn {
    height: 38px;
    padding: 0 20px;
    border: 1px solid var(--bw-c-blue);      /* 原 1px #d2d2d7（冷灰旧值）→ 同族描边 */
    border-radius: var(--bw-radius-sm);
    background: var(--bw-c-blue-bg);         /* §1.3① 常驻彩底（静态档，禁用 color-mix） */
    color: var(--bw-c-blue-ink);             /* §1.3③ 原 #1d1d1f 近黑字 → 同族 ink（对彩底 ≥4.69:1） */
    font-weight: 600;
    box-shadow: none;                        /* 原 0 2px 8px rgba(0,0,0,.06) → 无影 */
    cursor: pointer;
    transition: background var(--bw-transition), border-color var(--bw-transition),
                color var(--bw-transition), transform var(--bw-transition);
}
.layout .export-btn:hover:not(:disabled) {
    transform: translateY(-1px);             /* 覆盖内联 hover 同值的 translateY(-1px)，明确 §6.2 hover 反馈 */
    background: var(--bw-c-blue-bg-h);       /* 原 #f5f5f7（冷灰旧值）→ 同族加深一档 */
    /* [v9修复] 原页内联 `.export-btn:hover:not(:disabled)`(0,3,0) 声明 box-shadow:0 4px 16px rgba(0,0,0,.1)，
       本规则(0,4,0) 原先未声明该属性 → 悬浮时浮出非品牌黑投影；此处显式归零（§3.7 去卡框无影）。 */
    box-shadow: none;
}
.layout .export-btn:active:not(:disabled) { transform: translate(2px, 2px); } /* §6.2 :active 品牌按压 */
.layout .export-btn:disabled {
    opacity: 1;                              /* 覆盖内联 .38 半透明（§6.2 禁用态不靠透明度） */
    background: transparent;
    border-color: var(--bw-text-disabled);
    border-style: dashed;                    /* §6.2 禁用 = 虚线描边 + 灰字 + 无投影 */
    color: var(--bw-text-disabled);
    cursor: not-allowed;
}

.layout .submit-btn:focus-visible,
.layout .export-btn:focus-visible {
    outline: none;
    box-shadow: var(--bw-focus-ring);
}

/* 错误提示（契约 §1.2 → 朱砂）：三形态 = 朱砂 tint 底 + 朱砂边 + 朱砂 ink 字，600 做形态编码。
   修正：原文字用 --bw-danger（= 朱砂 base #A82A1E），违反 §3.7①「base 不得当文字色」；
   改为朱砂 **ink 档** --bw-c-red-ink（tint 底上 ≥4.5）。底/边沿用品牌危险族令牌（值同朱砂族）。 */
.layout .error-msg {
    padding: 7px 12px;
    border: 1px solid var(--bw-danger-border);  /* 原 rgba(202,91,71,.2) 砖红 → 朱砂族描边 */
    border-radius: var(--bw-radius-sm);
    background: var(--bw-c-red-tint);            /* 原 rgba(202,91,71,.08) 砖红 → 朱砂 tint */
    color: var(--bw-c-red-ink);                  /* 原 #ca5b47 砖红 + 原 base 档 → 朱砂 ink（§3.7① 合规） */
    font-weight: 600;
}

/* ═══ 6. 结果表格 ════════════════════════════════════════════════════ */
.layout .result-scroll {
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: var(--bw-border-strong) transparent;
    /* 注意：不声明 overflow —— 横向滚动由内联 overflow:auto 提供（契约 §4.9） */
}

/* sticky 表头（内联 position:sticky 保持不动）：表头给**不透明**暖纸底衬，
   滚动时行文本不会穿透表头（契约 §4.9「sticky 表头若透明需给不透明底衬」）。
   注：原内联与 theme.css 均未给 thead 设 backdrop-filter，故此处不再重复 none（去冗余）。 */
.layout .result-table thead { background: var(--bw-paper); }

/* 表头单元格：原 rgba(246,244,240,.96) 冷米灰底 + 冷灰字 + 冷灰线
   → 不透明暖纸底 + 次级墨字 + 1px --bw-hairline 模块底线 */
.layout .result-table th {
    padding: 10px 14px;
    background: var(--bw-paper);                /* 不透明底衬（sticky 依赖，与 thead 同值属必要冗余） */
    color: var(--bw-text-secondary);            /* 原 rgba(26,36,51,.46) */
    font-weight: 600;                           /* 原内联 700 → 600 */
    border-bottom: 1px solid var(--bw-hairline);/* 原 1px rgba(26,36,51,.1) */
    box-shadow: none;
    letter-spacing: .1em;
}
/* "共计进粉"列头（契约 §1.2：核心数据列头 → 黛青；原墨色丢失强调）:
   三形态 = 黛青 tint 底 + 黛青 ink 字 + 左端 3px 黛青 base 条。
   tint 为**不透明**色，兼作 sticky 表头底衬（§4.9）。淡底用量：本处为 2 处之一（§1.5）。 */
.layout .result-table th.th-total {
    background: var(--bw-c-blue-tint);       /* 不透明，供 sticky 底衬（§4.9） */
    color: var(--bw-c-blue-ink);             /* 覆盖 #0071e3（蓝值 4/20）：墨色 → 黛青 ink */
    box-shadow: inset 3px 0 0 var(--bw-c-blue);  /* 3px 黛青 base 条（base 只作条/描边 §1.3②） */
}
.layout .result-table th.th-num,
.layout .result-table th.th-day { color: var(--bw-text-secondary); }

/* 数据行：原 rgba(26,36,51,.05) 冷灰线 → 中性分隔线 */
.layout .result-table td {
    padding: 10px 14px;
    border-bottom: 1px solid var(--bw-divider);
    color: var(--bw-text-primary);
}
/* 行悬停：原蓝调 rgba(0,113,227,.04)（蓝值 14/20）→ 暖灰悬停底 + 左侧 3px 紫檀淡条 */
.layout .result-table tbody tr:hover td { background: var(--bw-bg-hover); }
.layout .result-table tbody:not(.tbody-total) tr:hover > td:first-child {
    box-shadow: inset 3px 0 0 var(--bw-accent-border);  /* 行 hover 定位条（装饰级，仅悬停态） */
}

.layout .td-num { color: var(--bw-text-muted-on-tint); }  /* 原 rgba(26,36,51,.32)：序号弱化（纸面 5.6:1） */
.layout .td-code { color: var(--bw-text-primary); }       /* 原内联冷墨 #1a2433：卡密墨色正文 */
.layout .td-day { color: var(--bw-text-secondary); }      /* 原 rgba(26,36,51,.7) */
.layout .td-day.zero { color: var(--bw-text-muted-on-tint); } /* 原 rgba(26,36,51,.22)：0 值弱化 */

/* 「共计进粉」数据列（契约 §1.2：核心数据 → 黛青 ink 数值）：
   v6 修复（§1.5 淡底 ≤12）：**数据行不再铺 tint**，只保留 -ink 数值与 600 字重；
   原逐行 tint + 逐行 3px base 条在 100 行下会拼成整条贯底蓝色竖带（100 个淡底单元），
   超 §1.5 上限 → 现仅表头 th.th-total 与总计行 .tbody-total 保留 tint 与 base 条。
   数据行 hover 走通用暖灰底（`.result-table tbody tr:hover td`），无需特异规则。 */
.layout .result-table td.td-total {
    color: var(--bw-c-blue-ink);               /* 覆盖 #0071e3（蓝值 5/20）；墨色 → 黛青 ink 数值 */
    font-weight: 600;                          /* KPI 数值 600（禁止 700+） */
    font-variant-numeric: tabular-nums;
}

/* 总计行（契约 §1.2：`.tbody-total` = 核心数据行 → 黛青）:
   原蓝调淡底 + 蓝边 + 蓝字 → **黛青 tint 底**（§1.3 淡底只铺纸面）+ 黛青 ink 数值 + 左端 base 条。 */
.layout .result-table .tbody-total { background: var(--bw-c-blue-tint); }  /* 覆盖 rgba(0,113,227,.05)（蓝值 15/20） */
.layout .result-table .tbody-total td {
    background: transparent;                   /* 让 tbody 那层黛青 tint 整行贯通，避免逐格遮盖 */
    border-bottom: 1px solid color-mix(in srgb, var(--bw-c-blue) 35%, var(--bw-paper));  /* 覆盖 rgba(0,113,227,.18)（蓝值 16/20）：
                                              令牌派生**描边**混色，§3.7 允许（老内核降级为通用分隔线，无害） */
    font-weight: 600;                          /* 原内联 700 → 600 */
}
/* 总计行左端 3px 黛青 base 条（§1.3 三形态铁律①：常驻态 = tint 底 + base 条 + ink 数值） */
.layout .result-table .tbody-total tr > td:first-child {
    box-shadow: inset 3px 0 0 var(--bw-c-blue);
}
.layout .result-table .tbody-total .td-total {
    color: var(--bw-c-blue-ink);               /* 覆盖 #0071e3（蓝值 6/20）：墨色 → 黛青 ink */
    font-size: 15px;
    font-weight: 600;
}
.layout .result-table .tbody-total .td-day { color: var(--bw-text-secondary); } /* 原 rgba(26,36,51,.6)：日期列保持灰阶 */
/* §5 对比度修正：--bw-text-muted-on-tint 在 --bw-bg-sunken / 深一档暖底上仅 4.56（贴线）。
   总计行落在黛青 tint 底上（亮度接近 bg-sunken），行内序号属承载信息的弱化字 →
   升档为 --bw-text-secondary（对黛青 tint 底 ≥7:1）。纸面上的 .td-num / 占位提示仍为
   弱化装饰（纸面 5.6:1，充裕），保留 muted-on-tint；本页无其它 muted-on-tint 落在 sunken 底的用法。 */
.layout .result-table .tbody-total .td-num { color: var(--bw-text-secondary); }
/* 总计行悬停不许上灰，保持黛青 tint（特异性 (0,4,3) > 通用行 hover，无需 !important） */
.layout .result-table .tbody-total tr:hover > td { background: transparent; }

/* ═══ 7. 分页条（功能性控件 → slate 族；契约 §1.3 / §6.2） ═══════════ */
.layout .pagination-bar {
    padding: 10px 20px;
    gap: 12px;
    border-top: 1px solid var(--bw-divider);   /* 原 rgba(26,36,51,.07) */
    background: transparent;
}
.layout .page-info { color: var(--bw-text-muted-on-tint); }  /* 原 rgba(26,36,51,.42)：纸面 5.6:1，承载页码信息 */
/* 页码说明里的强调数字：原内联蓝 → 主墨色 */
.layout .page-info strong { color: var(--bw-text-primary); } /* 覆盖 #0071e3（蓝值 7/20） */
.layout .page-btns { gap: 6px; flex-wrap: wrap; }            /* §1.5：芯片之间必须有 6px 间隙 */

/* 页码按钮（v6 修复 §1.3 裸控件）：原「纸底 + 冷灰边 + 近黑字 + 蓝 hover」→
   slate 22% 彩底 + 同族描边 + 同族 ink 字；四态齐备（常驻/hover/active/禁用/焦点）。 */
.layout .page-btn {
    height: 30px;
    min-width: 30px;
    padding: 0 10px;
    border: 1px solid var(--bw-c-slate);        /* 原 rgba(26,36,51,.12) → 同族描边（≥3.18:1） */
    border-radius: var(--bw-radius-sm);
    background: var(--bw-c-slate-bg);           /* 原 rgba(255,255,255,.7) 纸底 → 常驻彩底 */
    color: var(--bw-c-slate-ink);               /* 原 rgba(26,36,51,.6) → 同族 ink */
    font-weight: 600;
    box-shadow: none;
    cursor: pointer;
    transition: background var(--bw-transition), color var(--bw-transition),
                border-color var(--bw-transition), transform var(--bw-transition);
}
.layout .page-btn:hover:not(:disabled) {
    background: var(--bw-c-slate-bg-h);         /* 覆盖 rgba(0,113,227,.1)（蓝值 17/20）→ 同族加深一档 */
    color: var(--bw-c-slate-ink);               /* 覆盖 #0071e3（蓝值 8/20） */
    border-color: var(--bw-c-slate);            /* 覆盖 rgba(0,113,227,.3)（蓝值 18/20）：保持同族描边不变蓝 */
    transform: translateY(-1px);                /* §6.2 hover 上浮 1px */
}
.layout .page-btn:active:not(:disabled) {
    background: var(--bw-c-slate-bg-h);
    transform: translate(2px, 2px);             /* §6.2 :active 品牌按压 */
}
/* 当前页（激活项）：紫檀实底 + 反白字（契约 §3.4 指定「分页激活项用紫檀」） */
.layout .page-btn.active {
    background: var(--bw-accent);               /* 覆盖 #0071e3（蓝值 9/20） */
    border-color: var(--bw-accent);             /* 覆盖 #0071e3（蓝值 10/20） */
    color: var(--bw-text-inverse);
}
.layout .page-btn:disabled {
    opacity: 1;                                 /* 覆盖内联 .3，改用虚线描边 + 灰字表意（§6.2） */
    background: transparent;
    border-color: var(--bw-text-disabled);
    border-style: dashed;
    color: var(--bw-text-disabled);
    box-shadow: none;
    cursor: not-allowed;
}
.layout .page-btn:focus-visible {
    outline: none;
    box-shadow: var(--bw-focus-ring);
}
/* JS 生成的省略号按钮：<button class="page-btn" disabled style="border:none;background:none;">…</button>
   它是本页唯一带**元素级内联**底/边的分页项（内联优先级高于任何无 !important 的类选择器），
   且它同时命中 .page-btn:disabled，故三处声明需 !important（逐条理由见 §8 汇总）。
   处理口径：与禁用态 prev/next 同形态（透明底 + 虚线灰边 + 灰字 + not-allowed），
   避免出现「无底无边」的裸控件，也不与可点页码混淆；颜色用 muted-on-tint 保留「页码省略」可读性。 */
.layout .page-btn[style*="background:none"] {
    background: transparent !important;                  /* 压过元素级内联 background:none（理由：§8） */
    border: 1px dashed var(--bw-text-disabled) !important; /* 压过内联 border:none；§6.2 禁用态虚线描边 */
    /* 颜色与 .page-btn:disabled 的灰字**特异性相同（均 (0,3,0)）**，仅靠源序不稳 →
       显式 !important 使结果与规则块顺序无关（契约 §6.6「不依赖源序」）；省略号承载「页码省略」信息 */
    color: var(--bw-text-muted-on-tint) !important;
    box-shadow: none;
    cursor: not-allowed;
}

/* 每页条数（功能性下拉，v6 修复 §1.3：原「纸底 + 近黑字」裸控件 → slate 彩底 + 同族描边 + ink 字）。
   与本页其它下拉一致：焦点环仍用紫檀（§1.1 允许）。 */
.layout .page-size-wrap { color: var(--bw-text-muted-on-tint); } /* 原 rgba(26,36,51,.46)：纸面 5.6:1 */
.layout .page-size-select {
    height: 30px;
    padding: 0 24px 0 10px;                     /* 右侧留出原生下拉箭头位 */
    border: 1px solid var(--bw-c-slate);        /* 原 rgba(26,36,51,.12) → 同族描边 */
    border-radius: var(--bw-radius-sm);
    background: var(--bw-c-slate-bg);           /* 原 rgba(255,255,255,.78) 纸底 → 常驻彩底（不用 color-mix） */
    color: var(--bw-c-slate-ink);               /* 原 rgba(26,36,51,.68) → 同族 ink */
    font-weight: 600;
    outline: none;
    cursor: pointer;
    transition: background var(--bw-transition), border-color var(--bw-transition),
                box-shadow var(--bw-transition);
}
.layout .page-size-select:hover { background: var(--bw-c-slate-bg-h); }  /* §6.2 hover 加深一档 */
.layout .page-size-select:focus {
    border-color: var(--bw-accent);             /* 覆盖 rgba(0,113,227,.42)（蓝值 19/20） */
    box-shadow: var(--bw-focus-ring);           /* 覆盖 rgba(0,113,227,.08)（蓝值 20/20） */
}
.layout .page-size-select:focus-visible { outline: none; box-shadow: var(--bw-focus-ring); }

/* ═══ 8. 元素级内联色覆盖（本文件 !important 的集中说明） ══════════════════
   理由：下列说法中的配色写在**元素级 style=""** 上（无 class 的提示 <span>，以及 JS 动态
   生成的 <td colspan="10"> 占位/错误单元格、省略号分页按钮）。元素级内联声明优先级高于
   任何「不带 !important」的类选择器，因此必须用 !important 才能换成品牌令牌
   （契约 §4.10 允许并要求逐处注明理由）。共 6 处，均不影响任何功能钩子
   （只改颜色/描边，不动 display / disabled / JS 变量）：下面 3 处 + 上文 §7 省略号 3 处。 */

/* 面板头右侧提示文案「一行一个，数量不限」：模板中该 <span> 无 class 属性。
   !important 理由：压过其元素级内联 color:rgba(26,36,51,.36)。
   用 :not([class]) 精确命中，不会波及同级 .badge / .page-info（二者均有 class）。 */
.layout .panel-head > span:not([class]) {
    color: var(--bw-text-muted-on-tint) !important;
}
/* 空态 / 加载 / 暂无数据占位行：模板初始 .row-empty 与 JS 占位均带元素级内联冷灰字色；
   !important 理由：压过元素级内联 color（.32 / .36 两档冷灰）。
   用 :not([style*="ca5b47"]) 把中性灰占位与下面 JS 生成的错误红字区分开。 */
.layout .result-table #resultBody > tr.row-empty > td,
.layout .result-table #resultBody > tr > td[colspan="10"]:not([style*="ca5b47"]) {
    color: var(--bw-text-muted-on-tint) !important;
}
/* JS 错误态单元格（查询失败 / 网络请求失败）亦用元素级内联砖红；
   !important 理由：压过元素级内联 color:#ca5b47。
   统一为朱砂族 ink 字（§1.2 错误态 → 朱砂；§3.7① base 不得作文字色，故用 ink 档）。 */
.layout .result-table #resultBody > tr > td[style*="ca5b47"] {
    color: var(--bw-c-red-ink) !important;
}

/* ═══ 9. 滚动条品牌化（不改变 overflow / 滚动行为） ══════════════════════ */
.layout .input-scroll::-webkit-scrollbar { width: 8px; }
.layout .input-scroll::-webkit-scrollbar-track { background: transparent; }
.layout .input-scroll::-webkit-scrollbar-thumb {
    background: var(--bw-border-strong);       /* 原 rgba(26,36,51,.14) */
    border-radius: var(--bw-radius-pill);
}
.layout .input-scroll::-webkit-scrollbar-thumb:hover { background: var(--bw-ink); }

.layout .result-scroll::-webkit-scrollbar { width: 8px; height: 8px; }
.layout .result-scroll::-webkit-scrollbar-track { background: transparent; }
.layout .result-scroll::-webkit-scrollbar-thumb {
    background: var(--bw-border-strong);       /* 原 rgba(26,36,51,.14)，保留横向滚动能力 */
    border-radius: var(--bw-radius-pill);
}
.layout .result-scroll::-webkit-scrollbar-thumb:hover { background: var(--bw-ink); }

/* ═══ 10. 移动端：≤600px（保留既有断点；触控目标一律 ≥36px，契约 §3.4） ═════ */
@media (max-width: 600px) {
    .top-bar {
        height: 50px;
        padding: 0 14px;
        gap: 10px;
    }
    .top-bar .back-btn {
        height: auto;
        min-height: 36px;              /* §3.4：≤768 触控目标 ≥36px（原 30px 偏小） */
        padding: 0 10px;
        margin-left: -10px;
        font-size: 12.5px;
    }
    .top-bar .top-title { font-size: 15px; }
    html body .layout {
        padding: 10px;
        /* gap 保持 0：已在基础规则声明（两面板仍需拼成连续纸面），此处不再重复声明 */
    }
    .layout .panel-head { padding: 10px 12px; }
    .layout .input-scroll { padding: 10px 12px; }
    .layout .codes-input { padding: 10px 12px; }
    .layout .input-footer { padding: 10px 12px; }
    .layout .submit-btn,
    .layout .export-btn {
        height: auto;
        min-height: 36px;              /* §3.4：触控目标 ≥36px（原 34px 偏小） */
        padding: 0 16px;
        font-size: 12.5px;
    }
    /* 结果表格保持横向滚动（容器 overflow:auto 由原页内联样式提供），仅收窄内边距 */
    .layout .result-table { min-width: 760px; }
    .layout .result-table th,
    .layout .result-table td { padding: 7px 10px; }
    .layout .result-scroll { -webkit-overflow-scrolling: touch; }
    /* 分页条：允许换行，页码按钮不足时折到下一行 */
    .layout .pagination-bar {
        flex-wrap: wrap;
        row-gap: 8px;
        padding: 8px 12px;
    }
    .layout .page-info { flex: 1 1 auto; }
    .layout .page-size-wrap { flex: 0 0 auto; margin-left: auto; }
    /* §3.4 触控目标：页码按钮与每页条数 ≥36px（原 28px 偏小） */
    .layout .page-btn {
        height: auto;
        min-height: 36px;
        min-width: 36px;
        padding: 0 12px;
    }
    .layout .page-size-select {
        height: auto;
        min-height: 36px;
    }
}

/* ═══ 11. 移动端：≤480px ═════════════════════════════════════════════ */
@media (max-width: 480px) {
    .top-bar { height: 48px; padding: 0 12px; }
    .top-bar .back-btn { padding: 0 8px; margin-left: -8px; }  /* 触控高度沿用 ≤600 的 min-height:36px */
    .top-bar .top-title { font-size: 14.5px; }
    html body .layout { padding: 8px; }
    .layout .panel-head { padding: 8px 10px; }
    .layout .panel-label { font-size: 10.5px; letter-spacing: .1em; }
    .layout .input-scroll { padding: 8px 10px; }
    .layout .codes-input {
        padding: 9px 10px;
        font-size: 13px;
    }
    .layout .input-footer {
        flex-wrap: wrap;  /* 窄屏下按钮与错误提示分行，避免互相挤压 */
        padding: 8px 10px;
        gap: 8px;
    }
    .layout .submit-btn,
    .layout .export-btn {
        flex: 1 1 auto;
        min-width: 0;
        padding: 0 12px;   /* 触控高度沿用 ≤600 的 min-height:36px */
    }
    .layout .error-msg { flex: 1 1 100%; } /* 与按钮分行时占满整行，不挤占按钮宽度 */
    .layout .result-table { min-width: 700px; }
    .layout .result-table th,
    .layout .result-table td { padding: 6px 9px; }
    .layout .pagination-bar {
        flex-wrap: wrap;
        justify-content: center;
        row-gap: 8px;
        padding: 8px 10px;
    }
    .layout .page-info { flex: 1 1 100%; text-align: center; }
    .layout .page-btns { justify-content: center; }
    .layout .page-size-wrap { margin: 0 auto; }
}
