/* ==========================================================================
   flat-industrial.css · 扁平工业风覆盖层（第十五轮）
   --------------------------------------------------------------------------
   加载顺序：必须紧跟在 win2000.css **之后**（模板 head 里 <link> 已按此顺序排队）。
   作用范围：全站（桌面 + 移动）。只改「颜色 / 边框 / 阴影 / 按压反馈 / 少数尺寸」，
             不动任何网格、间距基准与 DOM 结构 —— 第 35–40 节的基准线体系不受影响。
   回退：删掉模板里那一行 <link rel="stylesheet" href="/static/css/flat-industrial.css">
         即可完全恢复拟物外观，零残留、无需改 Go 与 JS。

   两项"工业线色"是整套风格的总闸，想微调只改这四个变量：
     --flat-line-out  凸起面 / 卡片外框       浅色 #b4b0a8   暗色 #3a3a3a
     --flat-line-in   内凹工作区 / 表格 / 输入 浅色 #c0bcb4   暗色 #333333
     --flat-line-soft 次级分割线               浅色 #d8d4cd   暗色 #383838
     --flat-head-bg   ListView 表头底色        浅色 #dcd8cf   暗色 #2c2c2c
   ========================================================================== */

/* ==========================================================================
   1. 色令牌：高反差拟物灰 → 哑光工业中性色
   ========================================================================== */
:root {
  /* 表面 */
  --face: #d4d0c8;          /* 窗口表面：经典 Win2000 灰（原 #c0c0c0 偏冷偏硬） */
  --window: #ffffff;        /* 工作 / 阅读区：清爽纯白（原 #f2f2f2） */
  --window-alt: #f4f2ef;    /* 次级面（封面兜底、交替行） */
  --code-surface: #fafaf8;  /* 代码面：近白纸 */
  --field: #ffffff;         /* 输入区内底 */

  /* 文字 */
  --text: #1c1a17;
  --text-muted: #5c5850;
  --gray-text: #8a8680;
  --tree-count: #7a766e;

  /* 线 / 分隔（这是扁平化的关键：不再有纯黑与纯白） */
  --row-line: #e8e6e1;      /* 数据行底线 */
  --grid-line: #e8e6e1;
  --trough: #e2dfd9;
  --select-blur-bg: #cfcbc3;
  --select-blur-text: #33312d;
  --dither-a: #e2dfd9;
  --dither-b: #d4d0c8;

  /* 立体边令牌降级为"柔和近白 / 哑光中灰"，让所有没被逐一覆盖的斜角也自然变平。
     注意 --hilight 同时被 41 处当作"凸起面刻字"的亮字色（配 --dkshadow 投影），
     所以这里保留暖近白，而不是灰。 */
  --hilight: #f2f0ec;
  --light: #e2dfd9;
  --dkshadow: #b4b0a8;
  --w2k-shadow: #c0bcb4;
  --shadow: #c0bcb4;

  /* 工业线色（本层总闸） */
  --flat-line-out: #b4b0a8;
  --flat-line-in: #c0bcb4;
  --flat-line-soft: #d8d4cd;
  --flat-head-bg: #dcd8cf;
  --flat-row: #e8e6e1;      /* 行 / 单元格底线 */
  --flat-hover: rgba(255, 255, 255, .62);
}

html.dark {
  --face: #2c2c2c;          /* 外框 */
  --window: #181818;        /* 内部工作区 */
  --window-alt: #202020;
  --code-surface: #141414;
  --field: #1b1b1b;

  --text: #e4e2df;
  --text-muted: #a8a49c;
  --gray-text: #8a8680;
  --tree-count: #9a968e;

  --row-line: #383838;
  --grid-line: #2f2f2f;
  --trough: #202020;
  --select-blur-bg: #3a3a3a;
  --select-blur-text: #d8d6d3;
  --dither-a: #333333;
  --dither-b: #2c2c2c;

  --hilight: #3a3a3a;
  --light: #333333;
  --dkshadow: #262626;
  --w2k-shadow: #383838;
  --shadow: #383838;

  --flat-line-out: #3a3a3a;
  --flat-line-in: #333333;
  --flat-line-soft: #383838;
  --flat-head-bg: #2c2c2c;
  --flat-row: #383838;
  --flat-hover: rgba(255, 255, 255, .06);
}

/* ==========================================================================
   2. 去浮雕：清空全站复合黑白阴影（数据驱动清单，来自实际页面盘点）
   ========================================================================== */

/* 2.1 凸起面 / 卡片 / 按钮 / 键帽 / 药丸 —— 统一 1px 哑光外框线
       （选择器带 html:not(.dark) / html.dark 前缀：必须压过第 40 节
         `html:not(.dark) body.w2k#top .win-inset` 那条同等重要的柔和化规则） */
html:not(.dark) body.w2k#top :is(.win-outset, .win-window, .win-raised, .w2k-raised,
    .w2k-thin-raised, .w2k-card, .w2k-dialog, .w2k-author, .w2k-tbtn, .w2k-view-btn,
    .w2k-btn, .w2k-toc-toggle, .copy-code, .collapse-code, .paper-gallery-more,
    .paper-gallery-loadmore, .paper-gallery-switcher button, .paper-audio-icon,
    .paper-audio-cover, .paper-download-card, .paper-hide-lock, .paper-audio-player,
    .w2k-metabadge, .reading-action, .reading-actions-single, .compact-pill,
    .filter-trigger, .front-page-btn, .archive-pages a, .tag-chip, .w2k-tag-chip,
    .download-main, .download-filetype, .w2k-lb-close, .w2k-lb-tool) {
  box-shadow: none !important;
  border-width: 1px !important;
  border-style: solid !important;
  border-color: var(--flat-line-out) !important;
}

html.dark body.w2k#top :is(.win-outset, .win-window, .win-raised, .w2k-raised,
    .w2k-thin-raised, .w2k-card, .w2k-dialog, .w2k-author, .w2k-tbtn, .w2k-view-btn,
    .w2k-btn, .w2k-toc-toggle, .copy-code, .collapse-code, .paper-gallery-more,
    .paper-gallery-loadmore, .paper-gallery-switcher button, .paper-audio-icon,
    .paper-audio-cover, .paper-download-card, .paper-hide-lock, .paper-audio-player,
    .w2k-metabadge, .reading-action, .reading-actions-single, .compact-pill,
    .filter-trigger, .front-page-btn, .archive-pages a, .tag-chip, .w2k-tag-chip,
    .download-main, .download-filetype, .w2k-lb-close, .w2k-lb-tool) {
  box-shadow: none !important;
  border-width: 1px !important;
  border-style: solid !important;
  border-color: var(--flat-line-out) !important;
}

/* 2.2 内凹工作区 / 表格 / 列表 / 输入 / 进度槽 —— 统一 1px 内凹线，颜色略浅一档 */
html:not(.dark) body.w2k#top :is(.win-inset, .win-sunken, .w2k-sunken, .w2k-main,
    .w2k-sidebar, .w2k-dt, .w2k-details, .w2k-metalist, .table-scroll,
    .table-container-inset, .code-block-wrapper, .prose-paper, .reading-content,
    .paper-audio-playlist, .download-code, .w2k-statusbar, .w2k-toc, .w2k-pane,
    .w2k-pane-body, .filter-popover, .w2k-search, input, textarea, select, .w2k-input) {
  box-shadow: none !important;
  border-width: 1px !important;
  border-style: solid !important;
  border-color: var(--flat-line-in) !important;
}

html.dark body.w2k#top :is(.win-inset, .win-sunken, .w2k-sunken, .w2k-main,
    .w2k-sidebar, .w2k-dt, .w2k-details, .w2k-metalist, .table-scroll,
    .table-container-inset, .code-block-wrapper, .prose-paper, .reading-content,
    .paper-audio-playlist, .download-code, .w2k-statusbar, .w2k-toc, .w2k-pane,
    .w2k-pane-body, .filter-popover, .w2k-search, input, textarea, select, .w2k-input) {
  box-shadow: none !important;
  border-width: 1px !important;
  border-style: solid !important;
  border-color: var(--flat-line-in) !important;
}

/* 2.3 表格自身与表头：不再重复描边（包裹层已经是一条 1px 线），
       单元格的内阴影高光也一并清零 */
body.w2k#top .prose-paper table,
body.w2k#top .table-scroll > table,
body.w2k#top .code-block-wrapper > pre,
body.w2k#top .code-block-wrapper > pre.code-body {
  box-shadow: none !important;
  border: 0 !important;
}
html:not(.dark) body.w2k#top .prose-paper th,
html:not(.dark) body.w2k#top .prose-paper td,
html:not(.dark) body.w2k#top .table-scroll th,
html:not(.dark) body.w2k#top .table-scroll td,
html.dark body.w2k#top .prose-paper th,
html.dark body.w2k#top .prose-paper td,
html.dark body.w2k#top .table-scroll th,
html.dark body.w2k#top .table-scroll td {
  box-shadow: none !important;
}

/* 2.4 保留"悬浮层"的柔和投影：灯箱 / 对话框 / 提示气泡 / Toast ——
     扁平化不等于没有层次，这里用低对比软投影代替原来的硬黑斜投影 */
body.w2k#top :is(.w2k-lb-window, .w2k-dialog, .filter-popover, .paper-toast, .w2k-tip) {
  box-shadow: 0 6px 18px rgba(0, 0, 0, .22), 0 1px 3px rgba(0, 0, 0, .16) !important;
  border: 1px solid var(--flat-line-out) !important;
}

/* ==========================================================================
   3. ListView（详细信息列表）：哑光平坦标尺 + 24px 紧凑行
   ========================================================================== */
body.w2k#top .w2k-dt,
body.w2k#top .w2k-details {
  --dt-row: 24px !important;     /* 表头与数据行统一 24px 节距（原 28 / 32） */
  --dt-head: 22px !important;    /* 表头再压 2px */
  --dt-line: var(--flat-row) !important;
  --dt-hover: var(--flat-hover) !important;
  background-image: repeating-linear-gradient(to bottom,
      transparent 0, transparent calc(var(--dt-row) - 1px),
      var(--flat-row) calc(var(--dt-row) - 1px), var(--flat-row) var(--dt-row)) !important;
  background-size: 100% var(--dt-row) !important;
}

/* 表头：无上下浮雕，仅右侧 + 底部各一条 1px 浅灰分割线 */
body.w2k#top .w2k-dt-head th,
body.w2k#top .win-listview th,
body.w2k#top .w2k-details-head th {
  height: 22px !important;
  padding: 0 6px !important;
  background: var(--flat-head-bg) !important;
  background-image: none !important;
  color: var(--text) !important;
  font-weight: 400 !important;
  font-size: 11.5px !important;
  line-height: 20px !important;
  text-align: left !important;
  border: 0 !important;
  border-bottom: 1px solid #a8a49c !important;
  border-right: 1px solid #c4c0b8 !important;
  box-shadow: none !important;
}
html.dark body.w2k#top .w2k-dt-head th,
html.dark body.w2k#top .win-listview th {
  background: var(--flat-head-bg) !important;
  color: var(--text) !important;
  border-bottom-color: #383838 !important;
  border-right-color: #333333 !important;
}
/* 最后一列表头不需要右线 */
body.w2k#top .w2k-dt-head th:last-child { border-right: 0 !important; }

/* 数据行：24px 行高、只有极弱底线、悬浮轻微亮灰 */
body.w2k#top .w2k-dt-row,
body.w2k#top .w2k-details-row { height: var(--dt-row) !important; }
body.w2k#top .w2k-dt-row > td,
body.w2k#top .w2k-details-row > td {
  height: var(--dt-row) !important;
  line-height: calc(var(--dt-row) - 2px) !important;
  border-bottom: 0 !important;
}
body.w2k#top .w2k-dt-row:hover,
body.w2k#top .w2k-details-row:hover { background: var(--flat-hover) !important; }

/* 选中：保留经典深蓝（扁平化不排斥系统蓝），只去掉高光斜角 */
body.w2k#top .w2k-dt-row.is-selected,
body.w2k#top .w2k-dt-row:focus-within,
body.w2k#top .w2k-details-row.is-selected {
  background: #0a3a8c !important;
  box-shadow: none !important;
}

/* ==========================================================================
   4. 正文：配图 / 代码块 / 下载卡 / 便签
   ========================================================================== */

/* 4.1 正文配图：彻底无框（保留视口高度与不变形保护） */
body.w2k#top :is(.reading-content, .prose-paper, .prose, article.reading-article) img {
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  background: none !important;
}
body.w2k#top :is(.reading-content, .prose-paper) img:not(.paper-photo-image):not(.gallery-img) {
  max-height: 70vh !important;
  object-fit: contain !important;
}

/* 4.2 代码块：1px 哑光工控细线 + 墨黑字迹 + 等宽硬朗 */
body.w2k#top .code-block-wrapper,
body.w2k#top pre.code-body,
body.w2k#top .system-report-block {
  border: 1px solid var(--flat-line-in) !important;
  box-shadow: none !important;
  background: var(--code-surface) !important;
}
body.w2k#top .code-block-wrapper { background: var(--face) !important; }
body.w2k#top .code-block-wrapper > pre.code-body,
body.w2k#top .code-block-wrapper > pre { border: 0 !important; }
html:not(.dark) body.w2k#top pre.code-body,
html:not(.dark) body.w2k#top .code-block-wrapper pre.code-body { color: #111111 !important; }
body.w2k#top .code-block-header,
body.w2k#top .code-block-wrapper > .code-block-header {
  border-bottom: 1px solid var(--flat-line-soft) !important;
  box-shadow: none !important;
}

/* 4.3 下载卡与受保护便签：去掉重叠内凹槽，改 1px 中性灰工业面板。
       （移动端与正文外框的 6px 水平间距由第 39 节负责，本层不碰间距） */
body.w2k#top :is(.paper-download-card, .paper-hide-lock, .download-box, .file-download-card,
    .protected-content-box, .protected-box, .password-note) {
  border: 1px solid var(--flat-line-out) !important;
  box-shadow: none !important;
  background: var(--face) !important;
}
body.w2k#top .download-code,
body.w2k#top .hide-lock-form input {
  border: 1px solid var(--flat-line-in) !important;
  box-shadow: none !important;
  background: var(--field) !important;
}
body.w2k#top .download-main {
  border: 1px solid var(--flat-line-out) !important;
  box-shadow: none !important;
}

/* ==========================================================================
   5. 按钮 / 工具栏 / 输入：默认纯平，hover 才出现 1px 线框 + 微白底，按下 1px 位移
   ========================================================================== */
body.w2k#top :is(.w2k-btn, .w2k-tbtn, .w2k-view-btn, .paper-audio-icon, .copy-code,
    .w2k-toc-toggle, .compact-pill, .filter-trigger, .paper-gallery-switcher button,
    .paper-gallery-loadmore, .front-page-btn) {
  background: var(--face) !important;
  background-image: none !important;
  border: 1px solid transparent !important;
  box-shadow: none !important;
  transition: background-color .08s linear, border-color .08s linear !important;
}
body.w2k#top :is(.w2k-btn, .w2k-tbtn, .w2k-view-btn, .paper-audio-icon, .copy-code,
    .w2k-toc-toggle, .compact-pill, .filter-trigger, .paper-gallery-switcher button,
    .paper-gallery-loadmore, .front-page-btn):hover {
  background: #e3e0da !important;
  border-color: var(--flat-line-out) !important;
  color: var(--text) !important;
}
html.dark body.w2k#top :is(.w2k-btn, .w2k-tbtn, .w2k-view-btn, .paper-audio-icon,
    .copy-code, .w2k-toc-toggle, .compact-pill, .filter-trigger):hover {
  background: #3a3a3a !important;
  border-color: #4a4a4a !important;
}
/* 按下：只做 1px 位移 + 稍暗底色，不再反转黑白斜角 */
body.w2k#top :is(.w2k-btn, .w2k-tbtn, .w2k-view-btn, .paper-audio-icon, .copy-code,
    .compact-pill, .paper-gallery-loadmore):active,
body.w2k#top .w2k-btn.is-pressed,
body.w2k#top .reading-action.is-pressed {
  background: #c9c5bd !important;
  border-color: var(--flat-line-out) !important;
  box-shadow: none !important;
  transform: translate(1px, 1px) !important;
}
/* 当前态（视图切换 / 药丸选中）：只做底色下沉，不要浮雕 */
body.w2k#top :is(.w2k-view-btn.is-active, .compact-pill.is-active, .filter-trigger.is-selected) {
  background: #c9c5bd !important;
  box-shadow: none !important;
  border-color: var(--flat-line-out) !important;
}
html.dark body.w2k#top :is(.w2k-view-btn.is-active, .compact-pill.is-active, .filter-trigger.is-selected) {
  background: #3f3f3f !important;
}

/* 工具栏 / 菜单栏 / 面包屑 / 标题栏：去掉条状高光与描边，只留 1px 分界 */
body.w2k#top :is(.w2k-menubar, .w2k-toolbar, .w2k-breadcrumb, .compact-filter, .unified-filter) {
  box-shadow: none !important;
  border: 0 !important;
  border-bottom: 1px solid var(--flat-line-soft) !important;
  background: var(--face) !important;
}
body.w2k#top .w2k-titlebar {
  border: 0 !important;
  box-shadow: none !important;
}
body.w2k#top .w2k-statusbar {
  box-shadow: none !important;
  border: 1px solid var(--flat-line-soft) !important;
  background: var(--face) !important;
}
body.w2k#top .w2k-status-field { box-shadow: none !important; }

/* 输入框：凹 → 只留 1px 线 */
body.w2k#top :is(input[type="text"], input[type="search"], input[type="password"],
    input[type="number"], input[type="url"], input[type="email"], textarea, select) {
  background: var(--field) !important;
  border: 1px solid var(--flat-line-in) !important;
  box-shadow: none !important;
  color: var(--text) !important;
}
body.w2k#top :is(input, textarea, select):focus {
  outline: 1px solid #0a3a8c !important;
  outline-offset: 0 !important;
}

/* ==========================================================================
   6. 灯箱 与 音乐播放器
   ========================================================================== */
/* 6.1 灯箱：去掉硬外框，只留 1px 线 + 软投影；箭头维持半透明浮动（第 3 节成果） */
body.w2k#top .w2k-lb-window {
  border: 1px solid var(--flat-line-out) !important;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .28) !important;
}
body.w2k#top .w2k-lb-titlebar { border: 0 !important; box-shadow: none !important; }
body.w2k#top .w2k-lb-frame { border: 1px solid var(--flat-line-in) !important; box-shadow: none !important; }
body.w2k#top .w2k-lb-arrow {
  box-shadow: 0 1px 4px rgba(0, 0, 0, .25) !important;
  border: 1px solid rgba(255, 255, 255, .28) !important;
}

/* 6.2 音乐播放器：控制台压到 48px（内部同步收紧，保证按键不被裁）、封面 40px、
       去掉四周粗刻槽，控制台与歌单之间只留那条 1px 刻线 */
body.w2k#top .paper-audio-player {
  border: 1px solid var(--flat-line-out) !important;
  box-shadow: none !important;
  background: var(--face) !important;
}
body.w2k#top .paper-audio-main {
  min-height: 48px !important;
  max-height: 48px !important;
  border: 0 !important;
  box-shadow: none !important;
}
body.w2k#top .paper-audio-control {
  padding-top: 2px !important;
  padding-bottom: 2px !important;
  gap: 3px !important;
}
body.w2k#top .paper-audio-cover {
  width: 40px !important; height: 40px !important;
  max-width: 44px !important; max-height: 44px !important;
  border: 1px solid var(--flat-line-in) !important;
  box-shadow: none !important;
}
body.w2k#top .paper-audio-playlist {
  border: 1px solid var(--flat-line-in) !important;
  box-shadow: none !important;
  background: var(--window) !important;
}
body.w2k#top .paper-audio-track { border: 0 !important; border-bottom: 1px solid var(--flat-row) !important; box-shadow: none !important; background: none !important; }
body.w2k#top .paper-audio-track.is-active,
body.w2k#top .paper-audio-track:hover { background: var(--flat-hover) !important; }
body.w2k#top .paper-audio-time,
body.w2k#top .paper-audio-progress { border: 1px solid var(--flat-line-in) !important; box-shadow: none !important; }

/* ==========================================================================
   7. 表格 / 引用 / 提示框 / 相册：线一致、面一致
   ========================================================================== */
body.w2k#top .prose-paper th,
body.w2k#top .prose-paper td {
  border-left: 0 !important;
  border-right: 0 !important;
  border-bottom: 1px solid var(--flat-row) !important;
}
body.w2k#top .prose-paper thead th { border-bottom: 1px solid #a8a49c !important; background: var(--flat-head-bg) !important; }
body.w2k#top :is(.prose-paper blockquote, .paper-callout, .callout-box, .alert-box) {
  border: 1px solid var(--flat-line-in) !important;
  border-left: 1px solid #a8a49c !important;
  box-shadow: none !important;
}
html:not(.dark) body.w2k#top .paper-photo-link,
html:not(.dark) body.w2k#top .paper-gallery .paper-photo-link,
html:not(.dark) body.w2k#top .paper-gallery-grid .paper-photo-link {
  border: 1px solid var(--flat-line-soft) !important;
  background: var(--window-alt) !important;
  box-shadow: none !important;
}
html.dark body.w2k#top .paper-photo-link,
html.dark body.w2k#top .paper-gallery .paper-photo-link,
html.dark body.w2k#top .paper-gallery-grid .paper-photo-link {
  border: 1px solid var(--flat-line-soft) !important;
  background: var(--window-alt) !important;
  box-shadow: none !important;
}

/* 全站任意表格单元格 / 无类按钮：一并去浮雕（属性表、隐藏便签里的裸按钮等） */
html:not(.dark) body.w2k#top :is(th, td),
html:not(.dark) body.w2k#top button,
html:not(.dark) body.w2k#top .win-propsheet th,
html:not(.dark) body.w2k#top .win-propsheet td,
html.dark body.w2k#top :is(th, td),
html.dark body.w2k#top button,
html.dark body.w2k#top .win-propsheet th,
html.dark body.w2k#top .win-propsheet td {
  box-shadow: none !important;
}
body.w2k#top .paper-gallery-more,
body.w2k#top .paper-gallery-loadmore { background: var(--face) !important; }

/* ==========================================================================
   8. 别名兼容：外部片段里惯用的 .win-* 命名（若模板中存在同名类同样生效）
   ========================================================================== */
body.w2k#top .win-window,
body.w2k#top .win-listview,
body.w2k#top .win-panel { border: 1px solid var(--flat-line-out) !important; box-shadow: none !important; }
body.w2k#top .win-workspace,
body.w2k#top .win-content { border: 1px solid var(--flat-line-in) !important; box-shadow: none !important; }
body.w2k#top .win-btn { background: var(--face) !important; border: 1px solid transparent !important; box-shadow: none !important; }
body.w2k#top .win-btn:hover { background: #e3e0da !important; border-color: var(--flat-line-out) !important; }
body.w2k#top .win-btn:active { transform: translate(1px, 1px) !important; }
body.w2k#top .win-listview th {
  height: 22px !important; font-weight: 400 !important;
  border: 0 !important; border-bottom: 1px solid #a8a49c !important; border-right: 1px solid #c4c0b8 !important;
  box-shadow: none !important; background: var(--flat-head-bg) !important;
}

/* ==========================================================================
   9. 三级工业灰阶分层（第十六轮）
   --------------------------------------------------------------------------
   第 15 轮把所有表面统一到了 #d4d0c8，结果是"工具栏、背景、卡片混作一坨"。
   本节重新定标三级：
     第 1 层 系统窗口基底  --flat-base      #dcd8cf
     第 2 层 工具栏 / 过滤条 --flat-toolbar   #e5e2da + 下沿 1px #b2aea5
     第 3 层 卡片 / 内容窗格 --flat-pane      #f2f0eb + 1px #b8b4ac（hover #faf9f6）
   注意：**正文阅读卡（.prose-paper / .reading-content）保持纯白**（第 15 轮约定），
   只有"界面窗格"降到乳灰；否则阅读区会跟着变灰。
   ========================================================================== */
:root {
  --flat-base: #dcd8cf;         /* 第 1 层：系统窗口基底 */
  --flat-toolbar: #e5e2da;      /* 第 2 层：工具栏 / 过滤条 */
  --flat-toolbar-line: #b2aea5; /* 下沿分割线 */
  --flat-pane: #f2f0eb;         /* 第 3 层：卡片 / 内容窗格 */
  --flat-pane-line: #b8b4ac;
  --flat-pane-hover: #faf9f6;
}
html.dark {
  --flat-base: #2c2c2c;
  --flat-toolbar: #333333;
  --flat-toolbar-line: #3f3f3f;
  --flat-pane: #222222;
  --flat-pane-line: #3a3a3a;
  --flat-pane-hover: #2a2a2a;
}

/* 第 1 层：窗口基底（窗体外壳 / 客户区 / 主面板 / 侧栏 / 状态栏）
   注意：**不要把 .w2k-desktop 放进来** —— 它是窗口之外的桌面，必须留给
   --flat-desktop 的经典青蓝，否则整屏背景会和窗口同色、层级全糊在一起
   （第 16 轮就是把它并进来才导致"泛黄发浊"）。 */
html:not(.dark) body.w2k#top :is(.w2k-window, #w2k-client, .w2k-main,
    .w2k-sidebar, .w2k-pane, .w2k-rail, .w2k-statusbar) {
  background-color: var(--flat-base) !important;
}
html.dark body.w2k#top :is(.w2k-window, #w2k-client, .w2k-main,
    .w2k-sidebar, .w2k-pane, .w2k-rail, .w2k-statusbar) {
  background-color: var(--flat-base) !important;
}

/* 第 2 层：工具栏条 —— 微亮一级 + 1px 下沿分割，彻底从背景里站出来 */
html:not(.dark) body.w2k#top :is(.w2k-menubar, .w2k-toolbar, .w2k-breadcrumb,
    .compact-filter, .unified-filter, .filter-bar, .front-filter, .filter-toolbar) {
  background-color: var(--flat-toolbar) !important;
  background-image: none !important;
  border: 0 !important;
  border-bottom: 1px solid var(--flat-toolbar-line) !important;
  box-shadow: none !important;
}
html.dark body.w2k#top :is(.w2k-menubar, .w2k-toolbar, .w2k-breadcrumb,
    .compact-filter, .unified-filter, .filter-bar, .front-filter, .filter-toolbar) {
  background-color: var(--flat-toolbar) !important;
  background-image: none !important;
  border: 0 !important;
  border-bottom: 1px solid var(--flat-toolbar-line) !important;
  box-shadow: none !important;
}

/* 第 3 层：卡片 / 内容窗格 —— 乳灰底 + 1px 规整单线，不再有纯白补丁 */
html:not(.dark) body.w2k#top :is(.w2k-card, .magazine-section, .magazine-post-card,
    .magazine-poster, .magazine-post-media, .magazine-poster-media, .magazine-placeholder,
    .poster-placeholder, .taxonomy-tile, .taxonomy-grid, .article-card, .post-card,
    .text-card, .w2k-dt, .w2k-details, .w2k-metalist, .paper-photo-link) {
  background-color: var(--flat-pane) !important;
  border: 1px solid var(--flat-pane-line) !important;
  box-shadow: none !important;
}
html.dark body.w2k#top :is(.w2k-card, .magazine-section, .magazine-post-card,
    .magazine-poster, .magazine-post-media, .magazine-poster-media, .magazine-placeholder,
    .poster-placeholder, .taxonomy-tile, .taxonomy-grid, .article-card, .post-card,
    .text-card, .w2k-dt, .w2k-details, .w2k-metalist, .paper-photo-link) {
  background-color: var(--flat-pane) !important;
  border: 1px solid var(--flat-pane-line) !important;
  box-shadow: none !important;
}
/* 卡片悬浮：轻微亮起，文字保持墨黑 */
html:not(.dark) body.w2k#top :is(.w2k-card, .magazine-post-card, .magazine-poster,
    .taxonomy-tile, .post-card, .text-card):hover {
  background-color: var(--flat-pane-hover) !important;
}
html.dark body.w2k#top :is(.w2k-card, .magazine-post-card, .magazine-poster,
    .taxonomy-tile, .post-card, .text-card):hover {
  background-color: var(--flat-pane-hover) !important;
}
/* 卡片里的媒体占位/封面底：原来是纯白，改成窗格同色，消除"白补丁" */
html:not(.dark) body.w2k#top :is(.magazine-post-media, .magazine-poster-media,
    .magazine-placeholder, .poster-placeholder) {
  background-color: var(--flat-pane) !important;
  color: #6f6b64 !important;
}

/* ==========================================================================
   10. 音乐播放器：选中态 / 按键截断 / 与面包屑的微间距（第十六轮）
   ========================================================================== */

/* 10.1 选中 / 正在播放：工业深蓝底 + 反白
       （第 15 轮误用 --flat-hover 的白色微高亮覆盖了选中态，配上主题的白字
        出现"白底白字、序号与歌名隐身"——这里彻底改回深蓝高亮） */
body.w2k#top :is(.paper-audio-track.is-active, .paper-audio-track.is-playing,
    .paper-audio-track[aria-current="true"], .music-playlist-box li.active,
    .music-playlist-box li.playing) {
  background-color: #0a246a !important;
  color: #ffffff !important;
  font-weight: 500 !important;
  box-shadow: none !important;
}
body.w2k#top :is(.paper-audio-track.is-active, .paper-audio-track.is-playing,
    .music-playlist-box li.active, .music-playlist-box li.playing) * {
  color: #ffffff !important;
}
html.dark body.w2k#top :is(.paper-audio-track.is-active, .paper-audio-track.is-playing,
    .music-playlist-box li.active, .music-playlist-box li.playing) {
  background-color: #3a506b !important;   /* 暗色：低饱和工业蓝 */
}
/* 只有"非选中"的条目才用白色微高亮 */
body.w2k#top .paper-audio-track:not(.is-active):not(.is-playing):hover {
  background-color: var(--flat-hover) !important;
}

/* 10.2 右侧功能键组：保底宽度 + 右内衬，且外层不再裁剪 */
body.w2k#top .paper-audio-actions {
  flex: 0 0 auto !important;
  flex-shrink: 0 !important;
  min-width: 95px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  padding-right: 8px !important;
}
/* 控制列的右内衬从 10px 收到 4px：避免与按键组自己的 8px 叠加成双层留白
   （右侧总留白 = 4 + 8 + 控制台 4 = 16px，与第 9 节的 17.67px 基本一致） */
body.w2k#top .paper-audio-control { padding-right: 4px !important; }
/* 去掉强制裁剪：48px 压实后的内容本就装得下，按键不该再被削边 */
body.w2k#top .paper-audio-main,
body.w2k#top .paper-audio-control-row { overflow: visible !important; }
body.w2k#top .paper-audio-progress { min-width: 0 !important; }

/* 10.3 面包屑与播放控制台之间留出微间距（原 5px） */
body.w2k#top .w2k-breadcrumb { margin-bottom: 8px !important; }

/* ==========================================================================
   11. 移动端（<768px）：统一的 1px 手持终端质感（第十六轮）
   ========================================================================== */
@media (max-width: 767px) {
  /* 一切外形收敛为同一条 1px 中性线，且不留任何阴影/浮雕
     （提示框 .paper-callout 有意排除：它的左侧是语义色条） */
  html:not(.dark) body.w2k#top :is(.win-inset, .win-outset, .w2k-card, .w2k-dt, .w2k-details,
      .table-scroll, .code-block-wrapper, .prose-paper, .paper-audio-player,
      .paper-audio-playlist, .paper-audio-main, .paper-download-card, .paper-hide-lock,
      .paper-gallery, .paper-photo-link, .magazine-section, .taxonomy-tile, .compact-filter,
      .w2k-main, .w2k-sidebar, .w2k-statusbar, .filter-popover) {
    border-color: #b8b4ac !important;
    box-shadow: none !important;
  }
  html.dark body.w2k#top :is(.win-inset, .win-outset, .w2k-card, .w2k-dt, .w2k-details,
      .table-scroll, .code-block-wrapper, .prose-paper, .paper-audio-player,
      .paper-audio-playlist, .paper-audio-main, .paper-download-card, .paper-hide-lock,
      .paper-gallery, .paper-photo-link, .magazine-section, .taxonomy-tile, .compact-filter,
      .w2k-main, .w2k-sidebar, .w2k-statusbar, .filter-popover) {
    border-color: #3a3a3a !important;
    box-shadow: none !important;
  }
  /* 输入 / 搜索：微暖白底 + 1px 细线 + 12px 墨黑（手持终端观感） */
  html:not(.dark) body.w2k#top :is(input, textarea, select, .w2k-input) {
    background-color: #fdfdfc !important;
    border: 1px solid #b8b4ac !important;
    box-shadow: none !important;
    color: #111111 !important;
    font-size: 12px !important;
  }
  html.dark body.w2k#top :is(input, textarea, select, .w2k-input) {
    background-color: #1b1b1b !important;
    border: 1px solid #3a3a3a !important;
    box-shadow: none !important;
    color: #e4e2df !important;
    font-size: 12px !important;
  }
}

/* ==========================================================================
   12. 补齐遗漏：分组框 / 系统统计条 / 工具栏内小链接（第十六轮收尾）
   —— 这三类在第 15 轮没进家族清单，移动端"零 box-shadow"目标因此差最后三处
   ========================================================================== */
html:not(.dark) body.w2k#top :is(.win-groupbox, .w2k-sys-summary, .w2k-sys-bar),
html.dark body.w2k#top :is(.win-groupbox, .w2k-sys-summary, .w2k-sys-bar) {
  box-shadow: none !important;
  border-width: 1px !important;
  border-style: solid !important;
  border-color: var(--flat-line-in) !important;
}
html:not(.dark) body.w2k#top :is(.compact-clear, .w2k-link-btn),
html.dark body.w2k#top :is(.compact-clear, .w2k-link-btn) {
  box-shadow: none !important;
  border: 1px solid transparent !important;
  background: transparent !important;
}
html:not(.dark) body.w2k#top :is(.compact-clear, .w2k-link-btn):hover {
  background: #e3e0da !important;
  border-color: var(--flat-line-out) !important;
}
html.dark body.w2k#top :is(.compact-clear, .w2k-link-btn):hover {
  background: #3a3a3a !important;
  border-color: #4a4a4a !important;
}

/* ==========================================================================
   17. 第十七轮：进度条焦点环 / 桌面底色 / 主窗口厚边
   ========================================================================== */

/* ---------- 17.1 音乐进度条：彻底没有蓝色焦点环 ---------- */
/* 覆盖范围：进度条本体、聚焦态、focus-visible、内部伪元素与滑块本体。
   Firefox 的内环在 ::-moz-focus-outer 上，必须单独清；Safari 会画在
   ::-webkit-slider-thumb 上。轨道 / 滑块一并从拟物斜角收敛为 1px 工控线。 */
body.w2k#top .paper-audio-progress,
body.w2k#top .paper-audio-progress:focus,
body.w2k#top .paper-audio-progress:focus-visible,
body.w2k#top .paper-audio-progress:active,
body.w2k#top .paper-audio-progress *:focus,
body.w2k#top .music-player-progress,
body.w2k#top .music-player-progress:focus,
body.w2k#top .music-player-progress *:focus {
  outline: none !important;
  outline-width: 0 !important;
  outline-style: none !important;
  box-shadow: none !important;
  border-color: #b4b0a8 !important;
}
body.w2k#top .paper-audio-progress::-moz-focus-outer,
body.w2k#top .paper-audio-progress::-moz-focus-inner {
  border: 0 !important;
  outline: none !important;
}
body.w2k#top .paper-audio-progress::-webkit-slider-thumb,
body.w2k#top .paper-audio-progress::-moz-range-thumb {
  outline: none !important;
  box-shadow: none !important;
  background: var(--face) !important;
  border: 1px solid var(--flat-line-out) !important;
}
body.w2k#top .paper-audio-progress::-webkit-slider-runnable-track,
body.w2k#top .paper-audio-progress::-moz-range-track {
  box-shadow: none !important;
  background: var(--flat-pane) !important;
  border: 1px solid var(--flat-line-in) !important;
  border-color: var(--flat-line-in) !important;
}

/* ---------- 17.2 桌面底色：经典 Windows 桌面蓝（第 19 轮重新定标） ---------- */
/* 第 16 轮误把 .w2k-desktop 并进"窗口基底"同色家族，整屏背景因此泛黄发浊；
   第 17 轮曾短暂回到 #008080 工控青，第 19 轮按用户要求定回 Win2000 经典桌面蓝
   #3a6ea5（与主题 win2000.css 里的 --desktop 同值）：冷调纯蓝桌面 + #dcd8cf /
   #d4d0c8 浅灰视窗，层次利落、不留浊气。想换回青色只改这一行即可。 */
:root { --flat-desktop: #3a6ea5; }
html.dark { --flat-desktop: #1b2b40; }

html:not(.dark) body.w2k#top,
html:not(.dark) body.w2k#top :is(.w2k-desktop, #desktop-container) {
  background-color: var(--flat-desktop) !important;
}
html.dark body.w2k#top,
html.dark body.w2k#top :is(.w2k-desktop, #desktop-container) {
  background-color: var(--flat-desktop) !important;
}
/* html 层也一起钉住，避免旧主题的米色兜底从最底层透出来 */
html:not(.dark) { background-color: var(--flat-desktop) !important; }
html.dark { background-color: var(--flat-desktop) !important; }

/* ---------- 17.3 主窗口：清掉 5px 拟物投影与右/下厚边 ---------- */
/* 主题基础规则：.w2k-window { border-color: var(--light) var(--dkshadow) var(--dkshadow) var(--light);
                                 box-shadow: inset 1px 1px …, 5px 5px 0 rgba(0,0,0,.22) }
   —— 那条 5px 硬投影就是右侧/底部"又深又粗"的来源。
   （第 15 轮误写成别名 .win-window，没压住真类 .w2k-window，本轮补上。） */
body.w2k#top :is(.w2k-window, .win-window, .main-window-wrapper, #app-window) {
  box-shadow: none !important;
}
/* 桌面端只保留一条克制的 1px 中性细线；移动端沿用第 37 节的"零边框 + 4px 安全边距"，
   不在这里加边框，否则会把移动端内容基准线整体推 1px。 */
@media (min-width: 768px) {
  body.w2k#top :is(.w2k-window, .win-window, .main-window-wrapper, #app-window) {
    border: 1px solid var(--flat-line-out) !important;
  }
}
