/* ============================================================
 * 造神计划 · Q121 换皮 · 废土风（Wasteland Console）覆盖样式
 * 性格：控制台 / 设备感 / 高密度 / 终端表单 / 日志 Toast / 卡帧盖章
 * 覆盖机制：body[data-theme="wasteland"] 命中时覆盖 style.css（不删旧样式）
 * 参考：DESIGN-SPEC-Q121 §2.1 token 表（STALKER2 / Metro / Fallout 终端美学）
 * 纪律（3.46）：所有 hover 必须包 @media (hover: hover)；触控反馈走 :active
 * ============================================================ */

/* ---------- 1. 变量覆盖层（语义色位保持，换色相不换语义） ---------- */
body[data-theme="wasteland"] {
  /* 页面基底 */
  --paper: #1C1512;        /* 焦土黑棕 body 背景 */
  --panel: #2A211C;        /* 金属板 卡片/弹窗底 */
  --panel-h: #33281F;      /* 面板顶部高光位 */
  --bg-2: #241C18;         /* 进度槽底/输入底 */

  /* 文字 */
  --bone: #E8DCC8;         /* 骨白 主文字 */
  --bone-dim: #A8987E;     /* 暗骨色 次级文字 */
  --text-muted: #A8987E;
  --text-faint: #8B8578;
  --text-placeholder: #8B8578;
  --text-sub: #A8987E;

  /* 语义色（与 style.css 变量名对齐 → var() 引用自动换皮） */
  --yellow: #D97A2B;       /* 主操作：锈橙 */
  --yellow2: #C9A227;      /* 警示黄：衰败黄 */
  --black: #0B0B0B;        /* 墨黑 全局描边 */
  --white: #2A211C;        /* 卡片底：金属板（注意 --white 用于 .card 背景） */
  --blue: #5A7A6A;         /* 数据/链接：铜绿（终端色） */
  --red: #D6452A;          /* 警戒红：删除/错误（语义不动） */
  --green: #8FBF7F;        /* 成功完成：苔藓绿 */
  --orange: #C9A227;       /* 警示：衰败黄 */
  --purple: #7A6A8A;       /* 点缀：尘紫 */
  --gray: #3A3128;         /* 浅灰位：深铁锈灰 */

  /* 派生深色 */
  --blue-dark: #4A6A5A;
  --green-dark: #6E9F5F;

  /* rgb 分量（阴影/遮罩派生） */
  --black-rgb: 11, 11, 11;
  --white-rgb: 232, 220, 200;
  --yellow-rgb: 217, 122, 43;
  --blue-rgb: 90, 122, 106;
  --red-rgb: 214, 69, 42;
  --green-rgb: 143, 191, 127;

  /* 结构变量（覆盖 style.css :root 定义，换皮时边框/阴影走本主题值） */
  --border: 2px solid var(--black);
  --border-thick: 3px solid var(--black);
  --shadow: 4px 4px 0 rgba(0, 0, 0, .65);
  --shadow-sm: 3px 3px 0 rgba(0, 0, 0, .65);
  --shadow-lg: 6px 6px 0 rgba(0, 0, 0, .65);

  /* 图内装饰色（空态小人/云/门） */
  --art-sky: #2A211C;
  --art-cloud: #3A3128;
  --art-line: #8B8578;
  --art-line-dark: #6B6355;
  --art-fill: #4A4035;
  --art-body: #6B6355;

  /* 图表扩展色 */
  --chart-violet: #7A6A8A;
  --chart-orange-deep: #B7410E;
  --chart-cyan: #5A7A6A;
  /* Q133 V1.29：作息双曲线色（废土深底：晨光锈橙 + 暗夜亮蓝） */
  --chart-sleep-wake: #D97A2B;
  --chart-sleep-in: #7FB3FF;

  /* Q121-2：JS 图表/雷达色（app.js PALETTE 读这些变量；新野风不定义走默认值） */
  --chart-grid: #8B8578;            /* 图表网格：钢铁灰 */
  --chart-trend: #D97A2B;           /* 趋势线：锈橙 */
  --chart-trend-ink: #B7410E;       /* 趋势线内线：深铁锈 */
  --radar-bg: #1C1512;              /* 雷达底：焦土黑 */
  --radar-fill: rgba(217, 122, 43, .25);  /* 雷达数据面：半透明锈橙 */
  --radar-ring: rgba(232, 220, 200, .07); /* 雷达环：骨白微亮 */
  --radar-ink: #E8DCC8;             /* 雷达标签文字：骨白 */
  --radar-axis: #A8987E;            /* 雷达网格/轴线：暗骨 */

  /* 锁定成就灰阶 */
  --ach-locked-bg: #3A3128;
  --ach-locked-border: #6B6355;
  --ach-locked-text: #8B8578;

  /* 遮罩 */
  --mask-modal: rgba(0, 0, 0, .72);
  --mask-lock: rgba(0, 0, 0, .88);
  --mask-celebration: rgba(0, 0, 0, .85);
  --mask-demo: rgba(0, 0, 0, .9);

  /* 字体（西文/数字标题：Oswald/VT323 本地优先；中文/韩文走系统字体） */
  --font-title: "Oswald", "Segoe UI", "Microsoft YaHei", sans-serif;
  --font-mono: "VT323", "Consolas", monospace;

  color: var(--bone);
  background: var(--paper);
  overscroll-behavior: none;
}

/* ---------- 2. 页面骨架 ---------- */
body[data-theme="wasteland"] {
  font-family: "Segoe UI", "Microsoft YaHei", "PingFang SC", sans-serif;
  letter-spacing: .02em;
}
body[data-theme="wasteland"] h1,
body[data-theme="wasteland"] h2,
body[data-theme="wasteland"] h3 {
  font-family: var(--font-title);
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
}

/* 数字/时间/经验值走终端数字 */
body[data-theme="wasteland"] .lock-time,
body[data-theme="wasteland"] .lock-tip,
body[data-theme="wasteland"] .exp-sum-num,
body[data-theme="wasteland"] .stage-level,
body[data-theme="wasteland"] .mbar-nums b,
body[data-theme="wasteland"] .combo-chip b {
  font-family: var(--font-mono);
  letter-spacing: .06em;
}

/* ---------- 3. 卡片 / 面板（金属板质感：顶部高光 + 四角铆钉） ---------- */
body[data-theme="wasteland"] .card {
  background: var(--panel);
  border: var(--border);
  box-shadow: var(--shadow);
  color: var(--bone);
  background-image: linear-gradient(180deg, var(--panel-h), var(--panel) 55%, #221A15);
  border-radius: 0;
}
body[data-theme="wasteland"] .card-yellow {
  background: var(--yellow);
  color: var(--black);
  background-image: linear-gradient(180deg, #E08A3A, var(--yellow) 60%, #B7410E);
}
body[data-theme="wasteland"] .card-blue {
  background: var(--blue);
  color: var(--bone);
  border-color: var(--black);
}
body[data-theme="wasteland"] .card-head h3 {
  color: var(--bone);
  font-size: 15px;
  letter-spacing: .12em;
}

/* 标签 */
body[data-theme="wasteland"] .tag-light {
  background: var(--black);
  color: var(--bone);
  border: 1px solid #4A4035;
  letter-spacing: .12em;
}
body[data-theme="wasteland"] .tag-dark {
  background: transparent;
  color: var(--bone);
  border: 1px solid var(--bone-dim);
  letter-spacing: .1em;
}

/* ---------- 4. 按钮（终端面板键：2px 下沉 + 阴影收缩） ---------- */
body[data-theme="wasteland"] .btn {
  background: var(--yellow);
  color: #1A0E06;
  border: var(--border);
  box-shadow: var(--shadow-sm);
  font-weight: 700;
  border-radius: 0;
  letter-spacing: .03em;
  transition: transform .04s linear, box-shadow .04s linear;
}
body[data-theme="wasteland"] .btn:active,
body[data-theme="wasteland"] .btn.pressing {
  transform: translate(2px, 2px);
  box-shadow: 1px 1px 0 rgba(0, 0, 0, .65);
}
body[data-theme="wasteland"] .btn-blue {
  background: var(--blue);
  color: var(--bone);
}
body[data-theme="wasteland"] .btn-danger {
  background: var(--red);
  color: var(--bone);
}
body[data-theme="wasteland"] .btn-green {
  background: var(--green);
  color: var(--black);
}
body[data-theme="wasteland"] .btn-warn {
  background: var(--orange);
  color: var(--black);
}
body[data-theme="wasteland"] .btn-gray {
  background: #3A3128;
  color: var(--bone);
  border-color: #6B6355;
}
body[data-theme="wasteland"] .btn-big.done {
  background: var(--gray);
  color: var(--bone);
}

/* ---------- 5. 页头（终端条） ---------- */
body[data-theme="wasteland"] .masthead {
  background: var(--black);
  color: var(--bone);
  border-left: 8px solid var(--yellow);
  box-shadow: var(--shadow);
  font-family: var(--font-title);
  letter-spacing: .1em;
}
body[data-theme="wasteland"] .masthead h2::after { content: ' ▸'; color: var(--yellow); }
body[data-theme="wasteland"] .mh-tag {
  background: var(--black);
  color: var(--yellow);
  border: 1px solid var(--yellow);
  font-family: var(--font-mono);
  letter-spacing: .2em;
}

/* ---------- 6. 底部导航（设备面板 + 顶部锈橙边） ---------- */
body[data-theme="wasteland"] .nav-bar {
  background: var(--black);
  border-top: 2px solid #B7410E;
}
body[data-theme="wasteland"] .nav-item { color: #8B8578; }
body[data-theme="wasteland"] .nav-item.active {
  color: var(--yellow);
  background: transparent;
  box-shadow: none;
}
body[data-theme="wasteland"] .nav-item.active::before {
  content: '';
  position: absolute; top: 0; left: 20%; right: 20%;
  height: 2px; background: var(--yellow);
}

/* PC 侧边栏：金属板 + 左侧锈橙镶边 */
body[data-theme="wasteland"] #sidebar {
  background: var(--panel);
  border-right: 2px solid var(--black);
}
body[data-theme="wasteland"] .side-item {
  color: var(--bone-dim);
  border-left: 6px solid transparent;
}
body[data-theme="wasteland"] .side-item.active {
  background: var(--yellow);
  color: #1A0E06;
  border-left-color: #B7410E;
  box-shadow: 3px 3px 0 rgba(0, 0, 0, .65);
}

/* ---------- 7. 锁屏（金属板九宫格 + 骨白品牌字） ---------- */
body[data-theme="wasteland"] #lockscreen {
  background: #16110D;
}
body[data-theme="wasteland"] .lock-ticket {
  background: var(--black);
  color: var(--yellow);
  border-bottom: 2px solid #B7410E;
  font-family: var(--font-mono);
  letter-spacing: .22em;
}
body[data-theme="wasteland"] .lock-brand {
  color: var(--bone);
  font-family: var(--font-title);
  letter-spacing: .18em;
}
/* Q121-2：锁屏品牌逐字（.lb-char 有自己的 color 规则，须显式覆盖为骨白，否则 --white=金属板 字不可见） */
body[data-theme="wasteland"] .lb-char {
  color: var(--bone);
  text-shadow: 3px 3px 0 var(--black), 6px 6px 0 rgba(214, 69, 42, .45);
}
body[data-theme="wasteland"] .lb-char.first {
  color: #1A0E06;
  background: #D97A2B;
  border: 3px solid var(--black);
  box-shadow: 4px 4px 0 rgba(214, 69, 42, .6);
  text-shadow: none;
}
body[data-theme="wasteland"] .lock-rule {
  background: repeating-linear-gradient(90deg, var(--yellow) 0 10px, transparent 10px 20px);
}
body[data-theme="wasteland"] .lock-sub {
  color: var(--yellow);
  background: var(--black);
  border: 2px solid var(--black);
  box-shadow: 3px 3px 0 rgba(0, 0, 0, .65);
  font-family: var(--font-mono);
  letter-spacing: .18em;
}
body[data-theme="wasteland"] .lt-h,
body[data-theme="wasteland"] .lt-m {
  background: var(--black);
  color: var(--bone);
  border: 2px solid #4A4035;
  box-shadow: 4px 4px 0 rgba(0, 0, 0, .65);
  font-family: var(--font-mono);
}
body[data-theme="wasteland"] .ld-date {
  background: var(--blue);
  color: var(--bone);
  box-shadow: 3px 3px 0 rgba(0, 0, 0, .65);
  font-family: var(--font-mono);
}
body[data-theme="wasteland"] .ld-week {
  background: var(--yellow);
  color: var(--black);
}
body[data-theme="wasteland"] .lock-pattern-hint {
  background: var(--black);
  color: var(--yellow);
  border: 2px solid #4A4035;
  font-family: var(--font-mono);
  letter-spacing: .12em;
}
body[data-theme="wasteland"] .lock-dot {
  fill: #4A4035;
}
body[data-theme="wasteland"] .lock-dot-g {
  fill: var(--yellow);
}
body[data-theme="wasteland"] .lock-mark {
  stroke: var(--yellow);
}
body[data-theme="wasteland"] .lock-tip {
  background: var(--black);
  color: var(--yellow);
  border: 2px solid #4A4035;
  font-family: var(--font-mono);
}

/* 锁屏设置图案弹层（终端风说明行） */
body[data-theme="wasteland"] .pat-hint {
  color: var(--yellow);
  font-family: var(--font-mono);
  letter-spacing: .08em;
}

/* ---------- 8. 弹窗 / 表单（终端表单：深底 + 骨白 + 2px 描边） ---------- */
body[data-theme="wasteland"] .modal {
  background: var(--panel);
  border: var(--border);
  box-shadow: 3px 4px 0 rgba(0, 0, 0, .65);
  border-radius: 0;
  background-image: linear-gradient(180deg, var(--panel-h), var(--panel) 55%, #221A15);
}
body[data-theme="wasteland"] .modal-title {
  color: var(--bone);
  font-family: var(--font-title);
  font-size: 14px;
  letter-spacing: .14em;
  border-bottom: 1px dashed rgba(168, 152, 126, .35);
  padding-bottom: 8px;
  text-transform: uppercase;
}
body[data-theme="wasteland"] .modal-body label {
  color: var(--bone-dim);
  letter-spacing: .05em;
}
body[data-theme="wasteland"] .modal-body input,
body[data-theme="wasteland"] .modal-body select,
body[data-theme="wasteland"] .modal-body textarea {
  background: var(--bg-2);
  color: var(--bone);
  border: 2px solid #4A4035;
  border-radius: 0;
}
body[data-theme="wasteland"] .form-note {
  color: var(--bone-dim);
  font-size: 12px;
  letter-spacing: .03em;
}
body[data-theme="wasteland"] .modal-actions .btn-gray {
  background: #3A3128;
  color: var(--bone);
  border-color: #6B6355;
}

/* 删除确认（警戒红描边 + 终端 DELETE 角标） */
body[data-theme="wasteland"] .modal-title {
  color: var(--bone);
}

/* ---------- 9. Toast（终端日志行） ---------- */
body[data-theme="wasteland"] #toast {
  background: var(--black);
  color: var(--bone);
  border: 1px solid #4A4035;
  box-shadow: 3px 3px 0 rgba(0, 0, 0, .65);
  border-radius: 0;
  font-family: var(--font-mono);
  font-size: 14px;
  letter-spacing: .04em;
  text-align: left;
}
body[data-theme="wasteland"] #toast::before {
  content: '> ';
  color: var(--yellow);
}

/* ---------- 10. 进度条（条纹终端填充） ---------- */
body[data-theme="wasteland"] .exp-bar,
body[data-theme="wasteland"] .mini-bar,
body[data-theme="wasteland"] .mbar-prog {
  background: var(--bg-2);
  border: 2px solid #4A4035;
  border-radius: 0;
}
body[data-theme="wasteland"] .exp-fill {
  background: repeating-linear-gradient(-45deg, var(--yellow) 0 10px, #B7410E 10px 20px);
  background-size: 200% 100%;
}
body[data-theme="wasteland"] .exp-fill.blue {
  background: repeating-linear-gradient(-45deg, var(--blue) 0 10px, var(--blue-dark) 10px 20px);
  background-size: 200% 100%;
}
body[data-theme="wasteland"] .mini-fill {
  background: var(--yellow);
}
body[data-theme="wasteland"] .stage-card.done .exp-fill {
  background: repeating-linear-gradient(-45deg, var(--green) 0 10px, var(--green-dark) 10px 20px);
  background-size: 200% 100%;
}

/* ---------- 11. 图表（SVG 描边走墨黑/骨白） ---------- */
body[data-theme="wasteland"] .rv-tag rect {
  fill: var(--yellow);
}
body[data-theme="wasteland"] .legend-sq {
  border: 1px solid var(--black);
}

/* ---------- 12. 动效语言（卡帧 / 盖章 / 故障感；3.46：hover 全包 media） ---------- */
@media (hover: hover) {
  body[data-theme="wasteland"] .card:hover {
    border-color: var(--yellow);
    transition: border-color .05s linear;
  }
  body[data-theme="wasteland"] .btn:hover {
    box-shadow: 3px 3px 0 rgba(0, 0, 0, .65);
  }
}

/* 页面入场：卡帧淡入（浅做，主体换皮优先） */
body[data-theme="wasteland"] .page.active {
  animation: wtPageIn .22s steps(4) both;
}
@keyframes wtPageIn {
  from { opacity: 0; transform: translateY(4px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ---------- 13. 触达区（3.46：小按钮热区 ≥44px） ---------- */
body[data-theme="wasteland"] .btn-sm {
  position: relative;
}
body[data-theme="wasteland"] .btn-sm::after {
  content: '';
  position: absolute; inset: -4px;
}

/* ---------- 14. 滚动条 App 化（3.46） ---------- */
body[data-theme="wasteland"] ::-webkit-scrollbar { width: 6px; height: 6px; }
body[data-theme="wasteland"] ::-webkit-scrollbar-thumb {
  background: #6B6355;
  border-radius: 0;
}
body[data-theme="wasteland"] ::-webkit-scrollbar-track { background: var(--bg-2); }

/* ============================================================
 * Q121-2 全套落地（33 单元）：废土 · 控制台
 * 性格：高密度 / 设备感（铆钉·金属板·噪点·刮痕）/ 卡帧盖章 / 终端表单 / 日志 Toast
 * 参考：DESIGN-SPEC-Q121 §2.1 / §3 / §4 / §5 废土列
 * 纪律（3.46）：hover 全包 @media (hover: hover)；触控反馈走 :active；DOM 物理顺序不动
 * ============================================================ */

/* ---------- 15. 设备感质感层：全局噪点 + 锈蚀暗角 + 卡片铆钉/刮痕 ---------- */
/* 噪点颗粒（固定覆盖全屏，pointer-events 穿透；锁屏/弹层 z 更高不受影响） */
body[data-theme="wasteland"]::before {
  content: '';
  position: fixed; inset: 0; z-index: 998;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.06'/%3E%3C/svg%3E");
  mix-blend-mode: overlay;
}
/* 锈蚀暗角 */
body[data-theme="wasteland"]::after {
  content: '';
  position: fixed; inset: 0; z-index: 997;
  pointer-events: none;
  background:
    radial-gradient(ellipse at 20% 0%, rgba(217,122,43,.10), transparent 55%),
    radial-gradient(ellipse at 100% 100%, rgba(0,0,0,.55), transparent 60%),
    radial-gradient(ellipse at 0% 100%, rgba(182,65,14,.08), transparent 45%);
}

/* 金属板卡：四角铆钉 + 内圈细线（.plate::before 手法）——覆盖 .card 已有渐变背景，追加铆钉层 */
body[data-theme="wasteland"] .card::before {
  content: '';
  position: absolute; inset: 5px; pointer-events: none; z-index: 0;
  border: 1px solid rgba(139,133,120,.22);
  background:
    radial-gradient(circle at 0 0,    rgba(232,220,200,.30) 0 2px, rgba(0,0,0,.5) 2.6px 3px, transparent 3.6px),
    radial-gradient(circle at 100% 0, rgba(232,220,200,.30) 0 2px, rgba(0,0,0,.5) 2.6px 3px, transparent 3.6px),
    radial-gradient(circle at 0 100%, rgba(232,220,200,.30) 0 2px, rgba(0,0,0,.5) 2.6px 3px, transparent 3.6px),
    radial-gradient(circle at 100% 100%, rgba(232,220,200,.30) 0 2px, rgba(0,0,0,.5) 2.6px 3px, transparent 3.6px);
}
/* 卡片内容必须高于铆钉层 */
body[data-theme="wasteland"] .card > * { position: relative; z-index: 1; }

/* 弹窗同样四角铆钉 */
body[data-theme="wasteland"] .modal::before {
  content: '';
  position: absolute; inset: 5px; pointer-events: none; z-index: 0;
  border: 1px solid rgba(139,133,120,.22);
  background:
    radial-gradient(circle at 0 0,    rgba(232,220,200,.30) 0 2px, rgba(0,0,0,.5) 2.6px 3px, transparent 3.6px),
    radial-gradient(circle at 100% 0, rgba(232,220,200,.30) 0 2px, rgba(0,0,0,.5) 2.6px 3px, transparent 3.6px),
    radial-gradient(circle at 0 100%, rgba(232,220,200,.30) 0 2px, rgba(0,0,0,.5) 2.6px 3px, transparent 3.6px),
    radial-gradient(circle at 100% 100%, rgba(232,220,200,.30) 0 2px, rgba(0,0,0,.5) 2.6px 3px, transparent 3.6px);
}
body[data-theme="wasteland"] .modal > * { position: relative; z-index: 1; }

/* 顶栏/侧边栏焊点 */
body[data-theme="wasteland"] .masthead::after {
  content: '';
  position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(circle at 6px 6px,    rgba(232,220,200,.25) 0 2px, transparent 3px),
    radial-gradient(circle at calc(100% - 6px) 6px, rgba(232,220,200,.25) 0 2px, transparent 3px);
}

/* ---------- 16. 高密度（3.45 ⑥ 性格：控制台高密度；字号层级 375px 对齐规格 2.1.2） ---------- */
body[data-theme="wasteland"] .card { padding: 13px 14px; }
body[data-theme="wasteland"] .card-head h3 { font-size: 14px; letter-spacing: .12em; }
body[data-theme="wasteland"] .card-head { margin-bottom: 9px; }
body[data-theme="wasteland"] .task-name { font-size: 14.5px; }
body[data-theme="wasteland"] .task-meta { font-size: 11px; }
body[data-theme="wasteland"] .stage-title { font-size: 26px; }
body[data-theme="wasteland"] .stage-exp { font-size: 14px; }
body[data-theme="wasteland"] .sleep-goal { font-size: 14px; }
body[data-theme="wasteland"] .set-info b { font-size: 15px; }
body[data-theme="wasteland"] .set-desc { font-size: 12px; }
body[data-theme="wasteland"] .quit-today-name { font-size: 15px; }
body[data-theme="wasteland"] .quit-today-meta { font-size: 11px; }
body[data-theme="wasteland"] .r-title { font-size: 15px; }
body[data-theme="wasteland"] .r-text { font-size: 12px; }
body[data-theme="wasteland"] .reminder-item.custom .r-title { font-size: 16px; }
body[data-theme="wasteland"] .mod-name { font-size: 17px; }
body[data-theme="wasteland"] .mod-meta { font-size: 11px; }
body[data-theme="wasteland"] .mood { font-size: 12px; min-height: 44px; }
body[data-theme="wasteland"] .exp-sum-num { font-size: 18px; }
body[data-theme="wasteland"] .exp-sum-label { font-size: 11px; }
body[data-theme="wasteland"] .bmi-num b { font-size: 17px; }
body[data-theme="wasteland"] .diary-text { font-size: 14px; }
body[data-theme="wasteland"] .weight-item { font-size: 13px; padding: 8px 10px; }

/* ---------- 17. 锁屏完整化（L1 · 4.10：锈蚀金属节点 + 焊点 + 骨白连线 + 盖章解锁） ---------- */
body[data-theme="wasteland"] .lock-pattern-wrap { margin-top: 22px; }
/* 节点：金属渐变圆角方块（SVG 用 fill 渐变不可行，用深锈 + 双描边模拟） */
body[data-theme="wasteland"] .lock-dot {
  fill: #4A3A2C;
  stroke: #8B8578;
  stroke-width: 3;
}
body[data-theme="wasteland"] .lock-dot-g.visited .lock-dot {
  fill: #B7410E;
  stroke: #E8DCC8;
}
body[data-theme="wasteland"] .lock-mark {
  fill: #D97A2B;
  stroke: #E8DCC8;
}
/* 连线：骨白块状分段（保持可辨识，规格 4.10） */
body[data-theme="wasteland"] .lock-line {
  stroke: #E8DCC8;
  stroke-width: 8;
  stroke-dasharray: 14 10;
}
body[data-theme="wasteland"] .lock-live {
  stroke: #D97A2B;
  stroke-width: 8;
  stroke-dasharray: 10 8;
}
/* 解锁成功：锈橙印章 + OPEN 条 */
body[data-theme="wasteland"] .lock-stamp {
  background: #B7410E;
  border-color: #E8DCC8;
  box-shadow: 12px 12px 0 rgba(0, 0, 0, .6);
}
body[data-theme="wasteland"] .lock-stamp-char { color: #E8DCC8; }
body[data-theme="wasteland"] .lock-open {
  background: #0B0B0B;
  color: #E8DCC8;
  border-color: #D97A2B;
}
body[data-theme="wasteland"] .lock-pattern-err {
  background: #D6452A;
  color: #E8DCC8;
  border-color: #E8DCC8;
}
body[data-theme="wasteland"] .lock-flash {
  background: rgba(0, 0, 0, .9);
}
/* 锁屏设置图案（两步）提示 */
body[data-theme="wasteland"] .lock-set-btn {
  background: #D97A2B;
  color: #1A0E06;
  border: 2px solid #0B0B0B;
  box-shadow: 3px 3px 0 rgba(0, 0, 0, .65);
}

/* ---------- 18. 删除确认弹窗（L6-02 · 3.3：警戒红描边 + ⚠ DELETE 角标） ---------- */
body[data-theme="wasteland"] .modal-mask.del-mode .modal {
  border-color: #D6452A;
  box-shadow: 3px 4px 0 rgba(0, 0, 0, .65), 0 0 0 2px rgba(214, 69, 42, .35);
}
body[data-theme="wasteland"] .modal-mask.del-mode .modal-title {
  background: #D6452A;
  color: #FFF3E8;
}
body[data-theme="wasteland"] .modal-mask.del-mode .modal-title::before {
  content: '⚠ DELETE — ';
  font-family: var(--font-mono);
  letter-spacing: .1em;
  color: #FFF3E8;
}
/* 删除确认确定按钮 = 警戒红 */
body[data-theme="wasteland"] .modal-mask.del-mode .modal-actions .btn-primary {
  background: #D6452A;
  color: #FFF3E8;
}
body[data-theme="wasteland"] .modal-mask.del-mode .modal-actions .btn-primary:active {
  transform: translate(2px, 2px);
  box-shadow: 1px 1px 0 rgba(0, 0, 0, .65);
}

/* ---------- 19. Toast 日志行状态色（L6-16 · 3.4：> 提示符 + [OK]/[ERR]） ---------- */
body[data-theme="wasteland"] #toast { text-align: left; }
body[data-theme="wasteland"] #toast[data-status="ok"]::before {
  content: '[OK] ';
  color: #8FBF7F;
}
body[data-theme="wasteland"] #toast[data-status="err"]::before {
  content: '[ERR] ';
  color: #D6452A;
}
body[data-theme="wasteland"] #toast[data-status=""]::before,
body[data-theme="wasteland"] #toast:not([data-status])::before {
  content: '> ';
  color: #D97A2B;
}

/* ---------- 20. 图表体系（L6-19 · 3.7：柱=锈橙渐变/0值=灰；雷达锈橙；趋势=锈橙 2px） ---------- */
/* 柱状：今日=锈橙斜纹 + 顶旗；0 值=钢铁灰矮柱（弱化） */
body[data-theme="wasteland"] .bar-fill {
  border: 2px solid #0B0B0B;
  box-shadow: 2px 2px 0 rgba(0, 0, 0, .6);
}
body[data-theme="wasteland"] .bar-fill.today {
  background: repeating-linear-gradient(-45deg, #D97A2B 0 6px, #B7410E 6px 12px) !important;
}
body[data-theme="wasteland"] .bar-fill.zero {
  background: rgba(139, 133, 120, .35) !important;
  border-color: #6B6355;
}
body[data-theme="wasteland"] .chart-body { border-bottom: 2px solid #0B0B0B; }
body[data-theme="wasteland"] .chart-x span { font-size: 9px; color: var(--bone-dim); }
body[data-theme="wasteland"] .legend-sq { border: 1px solid #0B0B0B; }
body[data-theme="wasteland"] .legend-line { border-top: 2px solid #D97A2B; border-bottom: 0; }
body[data-theme="wasteland"] .chart-summary {
  background: #1C1512;
  color: var(--bone);
  border: 2px solid #6B6355;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: .03em;
}
body[data-theme="wasteland"] .chart-summary b { color: #D97A2B; }
body[data-theme="wasteland"] .chart-today { border: 2px solid #6B6355; }
body[data-theme="wasteland"] .ct-head {
  background: #0B0B0B;
  color: #E8DCC8;
  font-family: var(--font-mono);
  letter-spacing: .12em;
}
body[data-theme="wasteland"] .ct-head b { color: #D97A2B; }
body[data-theme="wasteland"] .ct-item {
  background: #2A211C;
  color: #E8DCC8;
  border: 1px solid #6B6355;
}
body[data-theme="wasteland"] .chart-empty {
  color: var(--bone-dim);
  font-family: var(--font-mono);
  letter-spacing: .1em;
}
body[data-theme="wasteland"] .chart-lock {
  color: var(--bone-dim);
  font-family: var(--font-mono);
}
/* 体重趋势：端点骨白圆点 + 数值 VT323 */
body[data-theme="wasteland"] .wt-dot {
  background: #E8DCC8;
  border: 2px solid #0B0B0B;
  box-shadow: 2px 2px 0 rgba(0, 0, 0, .6);
}
body[data-theme="wasteland"] .wt-val {
  color: #E8DCC8;
  font-family: var(--font-mono);
  font-size: 15px;
}
body[data-theme="wasteland"] .legend-dot {
  background: #E8DCC8;
  border: 2px solid #0B0B0B;
}
/* 雷达（Q84 红点对齐不动）：多边形锈橙填充 + 骨白标签 */
body[data-theme="wasteland"] #radar-wrap svg { background: #1C1512 !important; border: 2px solid #0B0B0B !important; box-shadow: 4px 4px 0 rgba(0,0,0,.65) !important; }
/* 雷达内文字/网格由 JS PALETTE 渲染（骨白 = cssVar('--white') 已是金属板色，需在 app.js 用 --bone）——见 app.js PALETTE.bone */
/* 最近 7 天柱 */
body[data-theme="wasteland"] .wbar-wrap {
  background: #1C1512;
  border: 2px solid #6B6355;
  padding: 3px;
}
body[data-theme="wasteland"] .wbar {
  border: 2px solid #0B0B0B;
  box-shadow: 2px 2px 0 rgba(0, 0, 0, .5);
}
body[data-theme="wasteland"] .wbar.today { background: #D97A2B; }
body[data-theme="wasteland"] .wval {
  background: #0B0B0B;
  color: #E8DCC8;
  font-family: var(--font-mono);
  font-size: 12px;
}
body[data-theme="wasteland"] .wlabel { color: var(--bone-dim); font-size: 10px; }

/* 进度条刻度线（25/50/75）——在 exp-bar 上叠加 */
body[data-theme="wasteland"] .exp-bar.big::after {
  background:
    linear-gradient(90deg, transparent 0 calc(25% - 2px), rgba(0,0,0,.55) calc(25% - 2px) 25%),
    linear-gradient(90deg, transparent 0 calc(50% - 2px), rgba(0,0,0,.55) calc(50% - 2px) 50%),
    linear-gradient(90deg, transparent 0 calc(75% - 2px), rgba(0,0,0,.55) calc(75% - 2px) 75%);
}

/* ---------- 21. 空态（L6-18：NO DATA 终端提示 + 骨白虚线框） ---------- */
body[data-theme="wasteland"] .diary-empty {
  border: 2px dashed #8B8578;
  color: var(--bone-dim);
  font-family: var(--font-mono);
  letter-spacing: .08em;
  background: rgba(11, 11, 11, .3);
}
body[data-theme="wasteland"] .rem-empty {
  background: #2A211C;
  border: 2px solid #6B6355;
}
body[data-theme="wasteland"] .rem-empty-title { color: var(--bone); }
body[data-theme="wasteland"] .rem-empty-tip { color: var(--bone-dim); }
body[data-theme="wasteland"] .rem-empty-art { filter: grayscale(1) brightness(.8); opacity: .75; }

/* ---------- 22. 终端表单聚焦（3.10.5：禁蓝框 + 锈橙描边 + 光标块） ---------- */
body[data-theme="wasteland"] input:focus,
body[data-theme="wasteland"] textarea:focus,
body[data-theme="wasteland"] select:focus {
  outline: none;
  border: 2px solid #B7410E;
  box-shadow: 0 0 0 2px rgba(217, 122, 43, .35), inset 0 0 0 2px #140F0C;
  caret-color: #B7410E;
}
body[data-theme="wasteland"] textarea:focus { border-width: 2px; }
body[data-theme="wasteland"] .diary-search input[type="text"]:focus,
body[data-theme="wasteland"] .profile-grid input:focus,
body[data-theme="wasteland"] .profile-grid select:focus,
body[data-theme="wasteland"] .title-row input:focus {
  border: 2px solid #B7410E;
  box-shadow: 0 0 0 2px rgba(217, 122, 43, .35);
}
/* 终端 select 箭头 */
body[data-theme="wasteland"] select {
  -webkit-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1 L6 6.5 L11 1' stroke='%23D97A2B' stroke-width='2' fill='none'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 34px;
}

/* ---------- 23. 开关（3.8：椭圆轨道墨黑 + 圆钮金属渐变；开=锈橙） ---------- */
body[data-theme="wasteland"] .slider {
  background: #1C1512;
  border: 2px solid #0B0B0B;
  box-shadow: inset 0 2px 3px rgba(0, 0, 0, .6);
}
body[data-theme="wasteland"] .slider::after {
  background: linear-gradient(180deg, #4A3A2C, #2A211C);
  border: 2px solid #0B0B0B;
  box-shadow: 1px 1px 0 rgba(0, 0, 0, .6);
  width: 22px; height: 22px;
}
body[data-theme="wasteland"] .switch input:checked + .slider { background: #B7410E; }
body[data-theme="wasteland"] .switch input:checked + .slider::after {
  background: linear-gradient(180deg, #E08A3A, #B7410E);
}

/* ---------- 24. 难度标签（6.2 对比度红线：小号标签深底浅字） ---------- */
body[data-theme="wasteland"] .diff {
  background: #140F0C;
  border: 1px solid #6B6355;
  font-family: var(--font-mono);
  letter-spacing: .1em;
}
body[data-theme="wasteland"] .diff-easy   { color: #8FBF7F; }
body[data-theme="wasteland"] .diff-normal { color: #C9A227; }
body[data-theme="wasteland"] .diff-hard   { color: #D6452A; }
body[data-theme="wasteland"] .diff-达标   { color: #5A7A6A; }
body[data-theme="wasteland"] .diff-记录   { color: #7A6A8A; }
body[data-theme="wasteland"] .diff-豁免   { color: #D97A2B; }

/* ---------- 25. 任务列表（高密度终端行：图标骨白描边 + 完成勾=苔藓绿块） ---------- */
body[data-theme="wasteland"] .task-item {
  background: #2A211C;
  border: 2px solid #4A4035;
  box-shadow: 3px 3px 0 rgba(0, 0, 0, .6);
  padding: 9px;
}
body[data-theme="wasteland"] .task-item.done { opacity: .55; }
body[data-theme="wasteland"] .task-icon {
  background: #1C1512;
  border: 2px solid #8B8578;
  box-shadow: 2px 2px 0 rgba(0, 0, 0, .6);
  color: #E8DCC8;
}
body[data-theme="wasteland"] .task-item.done .task-icon { background: #241C18; }
body[data-theme="wasteland"] .task-del {
  background: #140F0C;
  border: 2px solid #6B6355;
  color: #D6452A;
  box-shadow: 2px 2px 0 rgba(0, 0, 0, .6);
}
body[data-theme="wasteland"] .btn-check {
  background: #D97A2B;
  border: 2px solid #0B0B0B;
  box-shadow: 3px 3px 0 rgba(0, 0, 0, .65);
  color: #1A0E06;
  min-height: 44px;
}
body[data-theme="wasteland"] .btn-check.done {
  background: #6B6B4B;
  color: #101407;
  border-color: #0B0B0B;
}
/* 迷你进度条 */
body[data-theme="wasteland"] .mini-bar {
  background: #140F0C;
  border: 2px solid #4A4035;
  height: 10px;
}
body[data-theme="wasteland"] .mini-fill { background: #8FBF7F; }

/* ---------- 26. 首页布局换皮（L2 · 5.1.2 视觉权重表达，DOM 顺序不动） ---------- */
/* 阶段卡：金属板 + RANK PROGRESS 标签条 */
body[data-theme="wasteland"] .stage-card { background: linear-gradient(180deg, var(--panel-h), var(--panel) 55%, #221A15); }
body[data-theme="wasteland"] .stage-head { margin-bottom: 10px; }
body[data-theme="wasteland"] .stage-level {
  background: #0B0B0B;
  color: #D97A2B;
  border: 2px solid #0B0B0B;
  font-family: var(--font-mono);
  font-size: 34px;
  padding: 6px 10px;
}
body[data-theme="wasteland"] .stage-title { color: var(--bone); }
body[data-theme="wasteland"] .stage-sub { color: var(--bone-dim); letter-spacing: .14em; }
body[data-theme="wasteland"] .stage-exp {
  background: #140F0C;
  border: 2px solid #4A4035;
  color: #E8DCC8;
  font-family: var(--font-mono);
  font-size: 14px;
}
body[data-theme="wasteland"] .stage-next {
  background: #0B0B0B;
  border: 2px solid #0B0B0B;
  color: #A8987E;
  font-size: 12px;
  letter-spacing: .04em;
  padding: 7px 11px;
}
body[data-theme="wasteland"] .stage-next b { color: #D97A2B; font-family: var(--font-mono); }
/* 小雪卡：金属板 + 圆徽锈橙 + 旋转方章 */
body[data-theme="wasteland"] .xiaoyue-card {
  background: linear-gradient(180deg, var(--panel-h), var(--panel) 55%, #221A15);
  border: 2px solid #0B0B0B;
  box-shadow: 3px 4px 0 rgba(0, 0, 0, .65);
  padding: 11px;
}
body[data-theme="wasteland"] .xiaoyue-card::before { content: ''; display: none; }
body[data-theme="wasteland"] .xiaoyue-card::after {
  content: 'SURVIVOR LOG';
  position: absolute; top: 6px; right: -30px;
  transform: rotate(38deg);
  color: #B7410E;
  font-family: var(--font-mono);
  font-size: 8px;
  letter-spacing: .18em;
  border: 1px solid #B7410E;
  padding: 1px 8px;
  opacity: .8;
  animation: none;
}
body[data-theme="wasteland"] .xy-avatar {
  background: radial-gradient(circle at 35% 30%, #4A3826, #B7410E 65%, #5E260C);
  border: 2px solid #0B0B0B;
  color: #F5E7D0;
  font-family: var(--font-title);
  box-shadow: 2px 2px 0 rgba(0, 0, 0, .6), inset 0 0 0 3px rgba(0, 0, 0, .25);
}
body[data-theme="wasteland"] .xy-bubble {
  background: #1C1512;
  border: 2px solid #4A4035;
  box-shadow: 2px 2px 0 rgba(0, 0, 0, .6);
  color: var(--bone);
}
body[data-theme="wasteland"] .xy-bubble::before { border-right-color: #4A4035; }
body[data-theme="wasteland"] .xy-name { color: #D97A2B; letter-spacing: .12em; }
/* 记账入口：补给台账 */
body[data-theme="wasteland"] .exp-entry-item {
  background: linear-gradient(180deg, #3A2E22, #2A211C);
  border: 2px solid #0B0B0B;
  box-shadow: 2px 2px 0 rgba(0, 0, 0, .6);
  color: var(--bone);
}
body[data-theme="wasteland"] .exp-entry-ic {
  background: #6B6B4B;
  border: 2px solid #0B0B0B;
  color: #EDE6D2;
}
body[data-theme="wasteland"] .exp-entry-today { color: var(--bone-dim); }
body[data-theme="wasteland"] .exp-entry-days {
  background: #140F0C;
  border: 2px dashed rgba(217, 122, 43, .6);
  color: #D97A2B;
  font-family: var(--font-mono);
}
body[data-theme="wasteland"] .exp-entry-quick {
  background: #D97A2B;
  border: 2px solid #0B0B0B;
  color: #1A0E06;
  box-shadow: 2px 2px 0 rgba(0, 0, 0, .6);
  font-family: var(--font-title);
}
/* 今日戒断：警戒红描边卡 + WARNING 角标 */
body[data-theme="wasteland"] #quit-today-card {
  border: 2px solid #D6452A;
  box-shadow: 3px 4px 0 rgba(0, 0, 0, .65), 0 0 0 2px rgba(214, 69, 42, .22);
}
body[data-theme="wasteland"] #quit-today-card .card-head h3 { color: #D6452A; }
body[data-theme="wasteland"] #quit-today-card .card-head h3::before {
  content: '⚠ ';
  font-size: 13px;
}
body[data-theme="wasteland"] .quit-today-item {
  background: #1C1512;
  border: 2px solid #4A4035;
  box-shadow: 2px 2px 0 rgba(0, 0, 0, .5);
  padding: 9px;
}
body[data-theme="wasteland"] .quit-today-icon {
  background: #241C18;
  border: 2px solid #8B8578;
  color: #E8DCC8;
}
body[data-theme="wasteland"] .quit-today-status {
  border: 1px solid #6B6355;
  font-family: var(--font-mono);
  letter-spacing: .08em;
}
body[data-theme="wasteland"] .qs-done { background: #6B6B4B; color: #101407; border-color: #6B6B4B; }
body[data-theme="wasteland"] .qs-todo { background: #3A3128; color: var(--bone-dim); }
body[data-theme="wasteland"] .quit-today-btn { background: #D97A2B; color: #1A0E06; border: 2px solid #0B0B0B; box-shadow: 3px 3px 0 rgba(0,0,0,.6); min-height: 44px; }
body[data-theme="wasteland"] .quit-today-btn.done { background: #6B6B4B; color: #101407; }

/* ---------- 27. 模块聚合页（L3-1 · 5.1.3：masthead 黑底 + 锈橙镶边；模块卡金属板 2 列网格） ---------- */
body[data-theme="wasteland"] .note-banner {
  background: #0B0B0B;
  border: 2px solid #0B0B0B;
  color: #C9A227;
  font-family: var(--font-mono);
  letter-spacing: .1em;
  font-size: 12px;
}
body[data-theme="wasteland"] .mod-card {
  background: linear-gradient(180deg, var(--panel-h), var(--panel) 55%, #221A15);
  border: 2px solid #0B0B0B;
  box-shadow: 3px 4px 0 rgba(0, 0, 0, .65);
}
body[data-theme="wasteland"] .mod-top { border-bottom: 2px solid #0B0B0B; padding: 10px 12px; }
body[data-theme="wasteland"] .mod-ic {
  background: #1C1512;
  border: 2px solid #0B0B0B;
  box-shadow: 2px 2px 0 rgba(0, 0, 0, .6);
  color: #E8DCC8;
}
body[data-theme="wasteland"] .mod-name { color: var(--bone); }
body[data-theme="wasteland"] .mod-en { color: var(--bone-dim); }
body[data-theme="wasteland"] .mod-card.dark .mod-name, body[data-theme="wasteland"] .mod-card.dark .mod-en { color: #E8DCC8; }
body[data-theme="wasteland"] .mod-combo {
  background: #0B0B0B;
  border: 2px solid #0B0B0B;
  color: #D97A2B;
  font-family: var(--font-mono);
  box-shadow: 2px 2px 0 rgba(0, 0, 0, .6);
}
body[data-theme="wasteland"] .mod-combo b { color: #E8DCC8; }
body[data-theme="wasteland"] .mod-done {
  background: #140F0C;
  border: 2px solid #6B6355;
  color: #8FBF7F;
  font-family: var(--font-mono);
}
body[data-theme="wasteland"] .mod-meta { color: var(--bone-dim); }
body[data-theme="wasteland"] .mod-arrow { color: #D97A2B; }
/* 模块摘要 chips */
body[data-theme="wasteland"] .ms-chip {
  background: #2A211C;
  border: 2px solid #4A4035;
  color: var(--bone);
  font-family: var(--font-mono);
  font-size: 12px;
  box-shadow: 2px 2px 0 rgba(0, 0, 0, .5);
}
body[data-theme="wasteland"] .ms-chip b { color: #D97A2B; }
body[data-theme="wasteland"] .ms-chip.ms-name { background: #33281F; }
body[data-theme="wasteland"] .ms-chip.ms-need { background: #3A5A4A; color: #E8DCC8; border-color: #3A5A4A; }
body[data-theme="wasteland"] .ms-chip.ms-need b { color: #E8DCC8; }

/* ---------- 28. 功能页通用（L3-2~L3-8：统计卡/区间按钮/汇总行） ---------- */
body[data-theme="wasteland"] .range-btn {
  background: #2A211C;
  border: 2px solid #4A4035;
  color: var(--bone-dim);
  box-shadow: 2px 2px 0 rgba(0, 0, 0, .5);
  min-height: 34px;
  font-family: var(--font-mono);
  font-size: 12px;
}
body[data-theme="wasteland"] .range-btn.active {
  background: #D97A2B;
  color: #1A0E06;
  border-color: #0B0B0B;
}
body[data-theme="wasteland"] .chart-box {
  background: #241C18;
  border: 2px solid #4A4035;
  box-shadow: 3px 3px 0 rgba(0, 0, 0, .5);
}
body[data-theme="wasteland"] .mod-summary { gap: 6px; }
/* 作息：睡眠目标卡 + 周达标 */
body[data-theme="wasteland"] .sleep-goal b { color: #D97A2B; font-family: var(--font-mono); }
body[data-theme="wasteland"] .sleep-meta { color: var(--bone-dim); }
body[data-theme="wasteland"] .sleep-meta b { color: var(--bone); font-family: var(--font-mono); }
body[data-theme="wasteland"] .wdot {
  background: #1C1512;
  border: 2px solid #4A4035;
  font-family: var(--font-mono);
  color: var(--bone-dim);
}
body[data-theme="wasteland"] .wdot.on { background: #6B6B4B; color: #101407; border-color: #6B6B4B; }
/* 戒断卡（L3-5）：警戒红 + WARNING 角标 */
body[data-theme="wasteland"] .quit-card {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #221712;
  border: 2px solid #D6452A;
  box-shadow: 3px 4px 0 rgba(0, 0, 0, .65);
}
body[data-theme="wasteland"] .quit-card.done { opacity: .6; }
body[data-theme="wasteland"] .quit-icon { background: #241C18; border: 2px solid #D6452A; color: #E8DCC8; }
body[data-theme="wasteland"] .quit-body { flex: 1; min-width: 0; }
body[data-theme="wasteland"] .quit-name { color: var(--bone); font-family: var(--font-mono); font-size: 16px; font-weight: 700; }
body[data-theme="wasteland"] .quit-meta { color: var(--bone-dim); font-family: var(--font-mono); font-size: 12px; margin-top: 4px; line-height: 1.5; }
body[data-theme="wasteland"] .quit-check { font-family: var(--font-mono); }

/* ---------- 29. 日记（L3-6 · 5.1.5：心情色块保留语义、日期 VT323） ---------- */
body[data-theme="wasteland"] .card-yellow {
  background: linear-gradient(180deg, #E08A3A, var(--yellow) 60%, #B7410E);
}
body[data-theme="wasteland"] .mood {
  background: #2A211C;
  border: 2px solid #4A4035;
  color: var(--bone);
  box-shadow: 2px 2px 0 rgba(0, 0, 0, .5);
}
body[data-theme="wasteland"] .mood.active { background: #D6452A; border-color: #D6452A; color: #FFF3E8; }
/* Q121-2：心情色块语义位换色（index.html 内联新野风色 → 废土锈色系，!important 覆盖内联） */
body[data-theme="wasteland"] .mood[data-mood="开心"] .mood-sq { background: #8FBF7F !important; }  /* 苔藓绿 */
body[data-theme="wasteland"] .mood[data-mood="一般"] .mood-sq { background: #8B8578 !important; }  /* 钢铁灰 */
body[data-theme="wasteland"] .mood[data-mood="低落"] .mood-sq { background: #5A7A6A !important; }  /* 铜绿 */
body[data-theme="wasteland"] .mood[data-mood="烦躁"] .mood-sq { background: #D6452A !important; }  /* 警戒红 */
body[data-theme="wasteland"] .mood[data-mood="疲惫"] .mood-sq { background: #C9A227 !important; }  /* 衰败黄 */
body[data-theme="wasteland"] textarea,
body[data-theme="wasteland"] .diary-search input[type="text"],
body[data-theme="wasteland"] .search-row input[type="date"] {
  background: #140F0C;
  border: 2px solid #4A4035;
  color: var(--bone);
  box-shadow: inset 2px 2px 0 rgba(0, 0, 0, .5);
}
body[data-theme="wasteland"] textarea { min-height: 96px; }
body[data-theme="wasteland"] .diary-item {
  background: #2A211C;
  border: 2px solid #4A4035;
  box-shadow: 3px 3px 0 rgba(0, 0, 0, .5);
  padding: 11px;
}
body[data-theme="wasteland"] .diary-date { background: #0B0B0B; color: #E8DCC8; font-family: var(--font-mono); letter-spacing: .06em; }
body[data-theme="wasteland"] .diary-mood { background: #33281F; border: 1px solid #6B6355; color: var(--bone); font-family: var(--font-mono); }
body[data-theme="wasteland"] .diary-text { color: var(--bone); }
body[data-theme="wasteland"] .d-sum { color: var(--bone); }
body[data-theme="wasteland"] .d-arrow { color: var(--bone-dim); }
body[data-theme="wasteland"] .diary-date-bar {
  background: #140F0C;
  border: 2px solid #4A4035;
  color: var(--bone);
  box-shadow: inset 2px 2px 0 rgba(0, 0, 0, .5);
}
body[data-theme="wasteland"] .diary-date-bar.placeholder { color: var(--text-placeholder); }
body[data-theme="wasteland"] .date-picker-pop {
  background: #241C18;
  border: 2px solid #0B0B0B;
  box-shadow: 3px 4px 0 rgba(0, 0, 0, .65);
}
body[data-theme="wasteland"] .dp-item { background: #2A211C; border: 2px solid #4A4035; color: var(--bone); }
body[data-theme="wasteland"] .dp-item.sel { background: #D97A2B; color: #1A0E06; border-color: #D97A2B; }
body[data-theme="wasteland"] .dp-item.clear { background: #3A3128; color: var(--bone-dim); }
/* 日记详情页 */
body[data-theme="wasteland"] .diary-detail {
  background: linear-gradient(180deg, var(--panel-h), var(--panel) 55%, #221A15);
  border: 2px solid #0B0B0B;
}
body[data-theme="wasteland"] .diary-detail .dd-date { background: #0B0B0B; color: #D97A2B; font-family: var(--font-mono); }
body[data-theme="wasteland"] .diary-detail .dd-mood { background: #33281F; color: var(--bone); border: 1px solid #6B6355; }
body[data-theme="wasteland"] .diary-detail .dd-title { color: var(--bone); }
body[data-theme="wasteland"] .diary-detail .dd-text { background: #1C1512; border: 2px solid #4A4035; color: var(--bone); box-shadow: inset 2px 2px 0 rgba(0,0,0,.4); }
body[data-theme="wasteland"] #page-diary-detail .diary-detail { background: linear-gradient(180deg, var(--panel-h), var(--panel) 55%, #221A15); }
body[data-theme="wasteland"] #page-diary-detail .dd-text { background: #1C1512; border: 2px solid #4A4035; }
body[data-theme="wasteland"] .dd-actions .dd-back { background: #D97A2B; color: #1A0E06; border: 2px solid #0B0B0B; box-shadow: 3px 3px 0 rgba(0,0,0,.6); }
body[data-theme="wasteland"] .dd-actions .dd-del-sm {
  background: #140F0C;
  color: #D6452A;
  border: 2px solid #6B6355;
  box-shadow: 2px 2px 0 rgba(0, 0, 0, .5);
  opacity: .8;
}

/* ---------- 30. 健康（L3-7 · 5.1.6：BMI 锈橙卡 + 体重行） ---------- */
body[data-theme="wasteland"] .bmi-num {
  background: #33281F;
  border: 2px solid #4A4035;
  color: var(--bone);
  box-shadow: 2px 2px 0 rgba(0, 0, 0, .5);
}
body[data-theme="wasteland"] .bmi-num span { color: var(--bone-dim); }
body[data-theme="wasteland"] .weight-item {
  background: #2A211C;
  border: 2px solid #4A4035;
  color: var(--bone);
}
body[data-theme="wasteland"] .weight-item .wi-date { background: #0B0B0B; color: #D97A2B; font-family: var(--font-mono); }

/* ---------- 31. 记账（L3-8 · 5.1.7：汇总 VT323 大数字 + Top5 横条 + 预算） ---------- */
body[data-theme="wasteland"] .exp-sum-card {
  background: linear-gradient(180deg, var(--panel-h), var(--panel) 55%, #221A15);
  border: 2px solid #0B0B0B;
  box-shadow: 3px 4px 0 rgba(0, 0, 0, .65);
}
body[data-theme="wasteland"] .exp-sum-item {
  background: #1C1512;
  border: 2px solid #4A4035;
  box-shadow: 2px 2px 0 rgba(0, 0, 0, .5);
  color: var(--bone);
}
body[data-theme="wasteland"] .exp-sum-label { color: var(--bone-dim); font-family: var(--font-mono); letter-spacing: .1em; }
body[data-theme="wasteland"] .exp-sum-num { color: #E8DCC8; font-family: var(--font-mono); font-size: 20px; letter-spacing: .04em; }
body[data-theme="wasteland"] .exp-budget-bar { background: #140F0C; border: 2px solid #4A4035; box-shadow: inset 2px 2px 0 rgba(0,0,0,.5); }
body[data-theme="wasteland"] .exp-budget-fill { background: repeating-linear-gradient(-45deg, #D97A2B 0 8px, #B7410E 8px 16px); background-size: 200% 100%; }
body[data-theme="wasteland"] .exp-budget-fill.over { background: #D6452A; }
body[data-theme="wasteland"] .exp-budget-fill.warn { background: #C9A227; }
body[data-theme="wasteland"] .exp-budget-text { color: var(--bone); }
body[data-theme="wasteland"] .exp-budget-text.over { color: #D6452A; }
body[data-theme="wasteland"] .exp-budget-text.warn { color: #C9A227; }
body[data-theme="wasteland"] .exp-save-card { background: #2A211C; border: 2px solid #6B6B4B; }
body[data-theme="wasteland"] .exp-save-ic { background: #1C1512; border: 2px solid #6B6B4B; color: #EDE6D2; }
body[data-theme="wasteland"] .exp-save-info b { color: var(--bone); }
body[data-theme="wasteland"] .exp-save-sub { color: var(--bone-dim); }
/* Top5 横向条 */
body[data-theme="wasteland"] .exp-top-bar { background: #140F0C; border: 2px solid #4A4035; box-shadow: inset 2px 2px 0 rgba(0,0,0,.4); }
body[data-theme="wasteland"] .exp-top-name { color: var(--bone); font-size: 12px; }
body[data-theme="wasteland"] .exp-top-val { color: var(--bone); font-family: var(--font-mono); font-size: 11px; }
body[data-theme="wasteland"] .exp-top-val span { color: var(--bone-dim); }
body[data-theme="wasteland"] .exp-review-sum { background: #1C1512; border: 2px solid #4A4035; color: var(--bone); }
body[data-theme="wasteland"] .exp-review-val { color: var(--bone); font-family: var(--font-mono); }
/* 明细 */
body[data-theme="wasteland"] .exp-group-head { background: #0B0B0B; color: #D97A2B; font-family: var(--font-mono); letter-spacing: .08em; }
body[data-theme="wasteland"] .exp-group-sum { color: #E8DCC8; }
body[data-theme="wasteland"] .exp-item { background: #2A211C; border: 2px solid #4A4035; border-top: none; color: var(--bone); }
body[data-theme="wasteland"] .exp-item-ic { border: 2px solid #6B6355; background: #1C1512; }
body[data-theme="wasteland"] .exp-item-note { color: var(--bone-dim); }
body[data-theme="wasteland"] .exp-item-amt { color: #E8DCC8; font-family: var(--font-mono); }
body[data-theme="wasteland"] .exp-item-del { background: #241C18; border: 2px solid #D6452A; color: #D6452A; box-shadow: 2px 2px 0 rgba(0,0,0,.5); }
body[data-theme="wasteland"] .exp-item-time { color: var(--bone-dim); }
/* 记账弹层 chips / 日期 */
body[data-theme="wasteland"] .exp-chip {
  background: #2A211C;
  border: 2px solid #4A4035;
  color: var(--bone);
  box-shadow: 2px 2px 0 rgba(0, 0, 0, .5);
  min-height: 40px;
  font-size: 13px;
}
body[data-theme="wasteland"] .exp-chip.active {
  background: #D97A2B;
  color: #1A0E06;
  border-color: #0B0B0B;
  box-shadow: 3px 3px 0 rgba(0, 0, 0, .65);
}
body[data-theme="wasteland"] .exp-date-chip {
  background: #2A211C;
  border: 2px solid #4A4035;
  color: var(--bone);
  box-shadow: 2px 2px 0 rgba(0, 0, 0, .4);
  min-height: 36px;
}
body[data-theme="wasteland"] .exp-date-chip.active { background: #5A7A6A; color: #E8DCC8; border-color: #5A7A6A; }
body[data-theme="wasteland"] .exp-detail-picker input {
  background: #140F0C;
  border: 2px solid #4A4035;
  color: var(--bone);
}
/* 消费明细筛选 tabs 复用 range-btn ✓ */
/* 类别管理 */
body[data-theme="wasteland"] .exp-cat-edit-list { border: 2px solid #4A4035; }
body[data-theme="wasteland"] .exp-cat-edit-row { border-bottom: 2px solid #4A4035; }
body[data-theme="wasteland"] .exp-cat-edit-name { color: var(--bone); }

/* ---------- 32. 统计页 + 提醒中心（L4 · 5.1.8：雷达大卡金属板 + 连击行 + 空态 CTA 锈橙） ---------- */
body[data-theme="wasteland"] .cst-card { padding-top: 0; }
body[data-theme="wasteland"] .cst-banner { border-bottom: 2px solid #0B0B0B; margin: 0 -14px 14px; padding: 10px 14px; }
body[data-theme="wasteland"] .cst-blue { background: #3A5A4A; }
body[data-theme="wasteland"] .cst-blue h3 { color: #E8DCC8; }
body[data-theme="wasteland"] .cst-yellow { background: #B7410E; }
body[data-theme="wasteland"] .cst-yellow h3 { color: #F5E7D0; }
body[data-theme="wasteland"] .cst-green { background: #4A5A3A; }
body[data-theme="wasteland"] .cst-green h3 { color: #E8DCC8; }
/* 能力标签（Q131-5：云词全显示） */
body[data-theme="wasteland"] .abil-card {
  background: #0B0B0B;
  border: 2px solid #0B0B0B;
  box-shadow: 3px 3px 0 rgba(0, 0, 0, .6);
  padding: 9px 11px;
}
body[data-theme="wasteland"] .abil-label { color: #D97A2B; border: 1px solid #D97A2B; font-family: var(--font-mono); letter-spacing: .16em; font-size: 10px; }
body[data-theme="wasteland"] .abil-tag {
  background: #2A211C;
  color: #E8DCC8;
  border: 2px solid #4A4035;
  font-family: var(--font-mono);
  box-shadow: 2px 2px 0 rgba(0, 0, 0, .5);
}
body[data-theme="wasteland"] .abil-tag-b { background: #1C4E6B; color: #E8DCC8; }
body[data-theme="wasteland"] .abil-tag-w { background: #E8DCC8; color: #191204; }
body[data-theme="wasteland"] .abil-tag-p { background: #6B2A3F; color: #E8DCC8; }
body[data-theme="wasteland"] .abil-empty { color: #D97A2B; font-family: var(--font-mono); }
/* 连击行 */
body[data-theme="wasteland"] .combo-chip {
  background: #2A211C;
  border: 2px solid #4A4035;
  color: var(--bone);
  box-shadow: 2px 2px 0 rgba(0, 0, 0, .5);
  font-size: 12px;
}
body[data-theme="wasteland"] .combo-chip b { color: #D97A2B; font-family: var(--font-mono); }
body[data-theme="wasteland"] .combo-chip.dim { background: #241C18; opacity: .6; }
body[data-theme="wasteland"] .combo-chip.gold, body[data-theme="wasteland"] .combo-chip.gold-crown {
  background: #C9A227;
  border-color: #C9A227;
  color: #191204;
}
body[data-theme="wasteland"] .combo-chip.gold b, body[data-theme="wasteland"] .combo-chip.gold-crown b { color: #191204; }
/* Q131-4：连击数卡片（废土配色，2 列网格继承基样式） */
body[data-theme="wasteland"] .combo-card {
  background: #241C18;
  border: 2px solid #4A4035;
  box-shadow: 2px 2px 0 rgba(0, 0, 0, .5);
}
body[data-theme="wasteland"] .combo-card.dim { background: #1C1512; opacity: .6; }
body[data-theme="wasteland"] .combo-card.gold-crown { background: #C9A227; border-color: #C9A227; color: #191204; }
body[data-theme="wasteland"] .combo-card-ic { background: #1C1512; border: 2px solid #6B6355; color: #E8DCC8; box-shadow: 2px 2px 0 rgba(0,0,0,.5); }
body[data-theme="wasteland"] .combo-card-name { color: var(--bone); font-family: var(--font-mono); }
body[data-theme="wasteland"] .combo-card-combo { color: var(--bone-dim); font-family: var(--font-mono); }
body[data-theme="wasteland"] .combo-card-combo b { color: #D97A2B; font-family: var(--font-mono); }
/* 提醒中心 */
body[data-theme="wasteland"] .reminder-item {
  background: #2A211C;
  border: 2px solid #4A4035;
  box-shadow: 3px 3px 0 rgba(0, 0, 0, .5);
  padding: 11px;
}
body[data-theme="wasteland"] .reminder-item.custom {
  background: #33281F;
  border-color: #C9A227;
}
body[data-theme="wasteland"] .r-icon { background: #3A5A4A; border: 2px solid #0B0B0B; }
body[data-theme="wasteland"] .r-icon.sys-red { background: #5A2A22; }
body[data-theme="wasteland"] .r-icon.sys-blue { background: #3A5A4A; }
body[data-theme="wasteland"] .r-icon.sys-blue svg, body[data-theme="wasteland"] .r-icon.sys-red svg { stroke: #E8DCC8; }
body[data-theme="wasteland"] .r-icon.sys-red svg path:last-child { stroke: #E8DCC8; }
body[data-theme="wasteland"] .reminder-item.custom .r-icon { background: #1C1512; border-color: #C9A227; }
body[data-theme="wasteland"] .reminder-item.custom .r-icon svg { stroke: #C9A227; }
body[data-theme="wasteland"] .r-title { color: var(--bone); }
body[data-theme="wasteland"] .r-text { color: var(--bone-dim); }
body[data-theme="wasteland"] .r-type { background: #0B0B0B; color: #D97A2B; font-family: var(--font-mono); letter-spacing: .1em; }
body[data-theme="wasteland"] .r-time { background: #0B0B0B; color: #E8DCC8; font-family: var(--font-mono); }
body[data-theme="wasteland"] .rem-del { background: #140F0C; border: 2px solid #6B6355; color: #D6452A; min-height: 40px; min-width: 44px; }
body[data-theme="wasteland"] .rem-fired { background: #3A3128; border: 1px solid #6B6355; color: var(--bone-dim); }

/* ---------- 33. 设置页（L5 · 5.1.9：分组终端列表 + 分隔线 + 成就进度锈橙细条） ---------- */
body[data-theme="wasteland"] .set-ic {
  background: #1C1512;
  border: 2px solid #8B8578;
  color: #E8DCC8;
  box-shadow: 2px 2px 0 rgba(0, 0, 0, .5);
}
body[data-theme="wasteland"] .set-info b { color: var(--bone); }
body[data-theme="wasteland"] .set-desc { color: var(--bone-dim); }
body[data-theme="wasteland"] .set-chev { color: #D97A2B; }
body[data-theme="wasteland"] .set-collapse { border-top: 2px dashed #4A4035; }
body[data-theme="wasteland"] .ach-entry-count { background: #0B0B0B; color: #D97A2B; font-family: var(--font-mono); }
/* 语言/货币按钮 */
body[data-theme="wasteland"] .lang-btn {
  background: #2A211C;
  border: 2px solid #4A4035;
  color: var(--bone);
  box-shadow: 2px 2px 0 rgba(0, 0, 0, .5);
  min-height: 44px;
}
body[data-theme="wasteland"] .lang-btn.active { background: #D97A2B; color: #1A0E06; border-color: #0B0B0B; box-shadow: 3px 3px 0 rgba(0,0,0,.65); }
body[data-theme="wasteland"] .lang-btn .lb-tag { background: #0B0B0B; color: #D97A2B; border: 1px solid #0B0B0B; }
body[data-theme="wasteland"] .lang-btn.active .lb-tag { background: #1A0E06; color: #E8DCC8; }
/* 个人信息表单 */
body[data-theme="wasteland"] .profile-grid input,
body[data-theme="wasteland"] .profile-grid select {
  background: #140F0C;
  border: 2px solid #4A4035;
  color: var(--bone);
  box-shadow: inset 2px 2px 0 rgba(0, 0, 0, .5);
}
/* 称谓管理 */
body[data-theme="wasteland"] .title-idx { background: #0B0B0B; color: #D97A2B; border: 2px solid #0B0B0B; font-family: var(--font-mono); }
body[data-theme="wasteland"] .title-row input { background: #140F0C; border: 2px solid #4A4035; color: var(--bone); box-shadow: inset 2px 2px 0 rgba(0,0,0,.5); }
body[data-theme="wasteland"] .title-group-row select { background: #140F0C; border: 2px solid #4A4035; color: var(--bone); }
body[data-theme="wasteland"] .title-note { color: var(--bone-dim); }
/* 成就网格 */
body[data-theme="wasteland"] .ach-item { border: 2px solid #4A4035; box-shadow: 2px 2px 0 rgba(0, 0, 0, .5); padding: 9px 5px 7px; }
body[data-theme="wasteland"] .ach-item.unlocked { background: #33281F; }
body[data-theme="wasteland"] .ach-item.locked { background: #241C18; }
body[data-theme="wasteland"] .ach-icon { background: #0B0B0B; border: 2px solid #0B0B0B; }
body[data-theme="wasteland"] .ach-name { color: var(--bone); font-size: 12px; }
body[data-theme="wasteland"] .ach-stamp { background: #D6452A; color: #FFF3E8; border: 1px solid #0B0B0B; font-family: var(--font-mono); }
body[data-theme="wasteland"] .ach-progress { background: #0B0B0B; color: #D97A2B; font-family: var(--font-mono); }
/* Q111 成就锁定进度条：锈橙细条 */
body[data-theme="wasteland"] .ach-prog-bar { border: 1px solid #6B6355; }
body[data-theme="wasteland"] .ach-prog-bar i {
  background: repeating-linear-gradient(-45deg, #D97A2B 0 6px, #B7410E 6px 12px);
  background-size: 200% 100%;
}
body[data-theme="wasteland"] .ach-prog-num { color: var(--bone-dim); font-family: var(--font-mono); }

/* ---------- 34. 弹窗通用终端表单（L6-01~L6-15 · 3.2/3.8） ---------- */
body[data-theme="wasteland"] .modal-body p { color: var(--bone); }
body[data-theme="wasteland"] .modal-body input,
body[data-theme="wasteland"] .modal-body select,
body[data-theme="wasteland"] .modal-body textarea {
  background: #140F0C;
  border: 2px solid #4A4035;
  color: var(--bone);
  box-shadow: inset 2px 2px 0 rgba(0, 0, 0, .5);
  font-family: var(--font-mono);
  font-size: 15px;
  padding: 10px;
}
body[data-theme="wasteland"] .modal-body label { color: #D97A2B; font-family: var(--font-title); font-size: 10px; letter-spacing: .18em; text-transform: uppercase; }
body[data-theme="wasteland"] .modal-actions .btn-gray { background: #3A3128; color: var(--bone); border-color: #6B6355; box-shadow: 2px 2px 0 rgba(0,0,0,.5); }
body[data-theme="wasteland"] .form-note { color: var(--bone-dim); font-style: italic; }
/* 体重输入：VT323 大数字 */
body[data-theme="wasteland"] .modal-body #f-weight,
body[data-theme="wasteland"] .modal-body #exp-quick-amt,
body[data-theme="wasteland"] .modal-body #exp-new-amt {
  font-size: 32px;
  font-family: var(--font-mono);
  font-weight: 600;
  letter-spacing: .04em;
  text-align: center;
}
/* 删除确认（4.9）：正文一字不缩，只换皮肤 ✓ 已由 del-mode 覆盖 */

/* ---------- 35. 庆祝层（L6-17 · 3.5：方形印章 + OPEN 条 + 锈橙描边 + glitch） ---------- */
body[data-theme="wasteland"] .stamp {
  background: #2A211C;
  border: 2px solid #D97A2B;
  box-shadow: 0 0 0 4px #0B0B0B, 12px 12px 0 rgba(0, 0, 0, .6);
  padding: 18px 34px;
}
body[data-theme="wasteland"] .stamp-flag {
  background: #0B0B0B;
  color: #D97A2B;
  border: 2px solid #D97A2B;
  font-family: var(--font-mono);
  letter-spacing: .2em;
}
body[data-theme="wasteland"] .stamp-lv { color: #D97A2B; font-family: var(--font-mono); letter-spacing: .1em; }
body[data-theme="wasteland"] .stamp-title { color: #E8DCC8; font-family: var(--font-title); font-size: 44px; }
body[data-theme="wasteland"] .stamp-seal {
  background: #D6452A;
  border: 2px solid #E8DCC8;
  color: #FFF3E8;
}
body[data-theme="wasteland"] .stamp-seal svg { fill: #FFF3E8; }
/* 故障广播 2 帧 glitch（升级/里程碑动效限频 ≤1s 由 JS 侧保证：防连点 300ms + 庆祝单例 1.9s） */
body[data-theme="wasteland"] .stamp.show-glitch { animation: wtGlitch .3s steps(2); }
@keyframes wtGlitch {
  0%   { clip-path: inset(0 0 0 0); transform: translateX(0) rotate(-8deg); }
  40%  { clip-path: inset(12% 0 8% 0); transform: translateX(-4px) rotate(-8deg); }
  70%  { clip-path: inset(6% 0 14% 0); transform: translateX(4px) rotate(-8deg); }
  100% { clip-path: inset(0 0 0 0); transform: translateX(0) rotate(-8deg); }
}
/* 彩纸：骨白/锈橙/军绿方形碎片（PALETTE.confetti 已随主题色板自动换；方形保持） */
body[data-theme="wasteland"] .cf { border: 2px solid #0B0B0B; }

/* ---------- 36. 顶栏 sticky（3.10.4：金属条 + 焊点；App 感最大来源） ---------- */
body[data-theme="wasteland"] .masthead {
  position: sticky; top: 0; z-index: 900;
  background: linear-gradient(180deg, #33281F, #2A211C);
  border: 0; border-bottom: 2px solid #0B0B0B;
  box-shadow: 0 3px 0 rgba(0, 0, 0, .55);
  padding: 9px 12px;
  margin-bottom: 14px;
}
body[data-theme="wasteland"] .masthead h2 { font-size: 15px; letter-spacing: .14em; }
body[data-theme="wasteland"] .masthead h2::after { content: ' ▸'; color: #D97A2B; }
body[data-theme="wasteland"] .mh-tag {
  background: #0B0B0B;
  color: #D97A2B;
  border: 1px solid #D97A2B;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: .2em;
  transform: rotate(0);
}
/* 首页 masthead 的 TODAY 标签 → 日期章感 */
body[data-theme="wasteland"] #page-home .mh-tag { background: #B7410E; color: #F5E7D0; border-color: #0B0B0B; }

/* ---------- 37. 页面过渡（3.10.3：扫描线刷入 steps 卡帧；返回=淡出） ---------- */
body[data-theme="wasteland"] .page.active {
  animation: wtPageSlide .22s steps(5) both;
}
@keyframes wtPageSlide {
  from { transform: translateX(24px); opacity: 0; }
  to   { transform: translateX(0); opacity: 1; }
}
body[data-theme="wasteland"] .page.back {
  animation: wtPageFade .35s linear both;
}
@keyframes wtPageFade {
  to { opacity: 0; }
}

/* ---------- 38. 触达区补齐（3.10.2 清单：任务删除/记账✕/称谓/类别/提醒/日记删除热区 ≥44px） ---------- */
body[data-theme="wasteland"] .task-del,
body[data-theme="wasteland"] .exp-item-del,
body[data-theme="wasteland"] .exp-cat-del,
body[data-theme="wasteland"] .dd-del-sm,
body[data-theme="wasteland"] .title-row .btn,
body[data-theme="wasteland"] .abil-edit-row .btn {
  position: relative;
}
body[data-theme="wasteland"] .task-del::after,
body[data-theme="wasteland"] .exp-item-del::after,
body[data-theme="wasteland"] .exp-cat-del::after,
body[data-theme="wasteland"] .dd-del-sm::after,
body[data-theme="wasteland"] .title-row .btn::after,
body[data-theme="wasteland"] .abil-edit-row .btn::after {
  content: '';
  position: absolute; inset: -10px;
}

/* ---------- 39. 动效演示（L6-15 · 4.13：终端按钮 + demo_desc 跟随动效语言微调已由 i18n 精简落地） ---------- */
body[data-theme="wasteland"] .demo-item { border-bottom: 2px solid #4A4035; }
body[data-theme="wasteland"] .demo-name { color: var(--bone); font-size: 15px; }
body[data-theme="wasteland"] .demo-desc { color: var(--bone-dim); font-size: 11px; }
body[data-theme="wasteland"] .demo-count {
  background: #0B0B0B;
  color: #D97A2B;
  border: 2px solid #0B0B0B;
  font-family: var(--font-mono);
  font-size: 30px;
  box-shadow: 3px 3px 0 rgba(0, 0, 0, .6);
}
body[data-theme="wasteland"] .demo-chip { background: #2A211C; border: 2px solid #6B6355; color: var(--bone); box-shadow: 2px 2px 0 rgba(0,0,0,.5); }
body[data-theme="wasteland"] .demo-bubble { background: #1C1512; border: 2px solid #4A4035; color: var(--bone); }
body[data-theme="wasteland"] .demo-stage { margin-top: 8px; }

/* ---------- 40. 通用提示条 / 补充元素 ---------- */
body[data-theme="wasteland"] .note-box {
  background: rgba(11, 11, 11, .35);
  border: 2px dashed #8B8578;
  color: var(--bone-dim);
  font-size: 12px;
}
body[data-theme="wasteland"] .nb-tag { background: #D97A2B; color: #1A0E06; border: 1px solid #0B0B0B; font-family: var(--font-mono); }
body[data-theme="wasteland"] .set-note { background: #241C18; border: 1px solid #4A4035; color: var(--bone-dim); }
body[data-theme="wasteland"] .notif-status { background: #0B0B0B; color: #D97A2B; border: 2px solid #0B0B0B; font-family: var(--font-mono); }
body[data-theme="wasteland"] .notif-grid input { background: #140F0C; border: 2px solid #4A4035; color: var(--bone); }
body[data-theme="wasteland"] .backup-meta { background: #1C1512; border: 2px solid #4A4035; color: var(--bone); }
body[data-theme="wasteland"] .backup-meta b { color: #D97A2B; }

/* ---------- 41. 报表/页面内其他：p 标签 / 强调 ---------- */
body[data-theme="wasteland"] .exp-review-body p,
body[data-theme="wasteland"] .modal-body p b { color: var(--bone); }

/* ---------- 42. PC 侧边栏（3.1：金属板 + 左侧锈橙镶边） ---------- */
body[data-theme="wasteland"] #sidebar {
  border-right: 2px solid #0B0B0B;
  border-left: 10px solid #B7410E;
}
body[data-theme="wasteland"] .side-brand { margin-bottom: 16px; }
body[data-theme="wasteland"] .side-logo {
  background: radial-gradient(circle at 30% 25%, #4A3826, #B7410E 70%, #5E260C);
  border: 2px solid #0B0B0B;
  color: #F5E7D0;
}
body[data-theme="wasteland"] .side-name { color: var(--bone); }
body[data-theme="wasteland"] .side-sub { color: #D97A2B; letter-spacing: .22em; }
body[data-theme="wasteland"] .side-item {
  background: #2A211C;
  border: 2px solid #4A4035;
  color: var(--bone-dim);
  box-shadow: 2px 2px 0 rgba(0, 0, 0, .5);
  padding: 10px 11px;
}
body[data-theme="wasteland"] .side-item.active {
  background: #D97A2B;
  border-color: #0B0B0B;
  color: #1A0E06;
  box-shadow: 3px 3px 0 rgba(0, 0, 0, .65);
}
body[data-theme="wasteland"] .side-foot {
  background: #0B0B0B;
  border: 2px solid #0B0B0B;
  color: #D97A2B;
  font-family: var(--font-mono);
  letter-spacing: .08em;
}

/* ---------- 43. hover 纪律（3.46：全部 hover 收进 @media (hover: hover)） ---------- */
@media (hover: hover) {
  body[data-theme="wasteland"] .task-item:not(.done):hover {
    box-shadow: 0 0 0 2px rgba(217, 122, 43, .35), 3px 3px 0 rgba(0, 0, 0, .6);
    transform: none;
  }
  body[data-theme="wasteland"] .mod-card:hover {
    box-shadow: 0 0 0 2px rgba(217, 122, 43, .35), 4px 4px 0 rgba(0, 0, 0, .6);
    transform: translate(-1px, -1px);
  }
  body[data-theme="wasteland"] .diary-item:hover {
    background: #33281F;
    box-shadow: 0 0 0 2px rgba(217, 122, 43, .3);
  }
  body[data-theme="wasteland"] .btn:hover {
    filter: brightness(1.1);
    box-shadow: 3px 3px 0 rgba(0, 0, 0, .65);
  }
  body[data-theme="wasteland"] .side-item:hover {
    box-shadow: 0 0 0 2px rgba(217, 122, 43, .3);
    color: var(--bone);
  }
}

/* ---------- 44. 补充覆盖（Q121-2 收尾） ---------- */
/* mood 选中时色块描边骨白（style.css 是 var(--white)=金属板 → 覆盖） */
body[data-theme="wasteland"] .mood.active .mood-sq { border-color: #FFF3E8; }
/* 记账模块卡（mod-exp-card）：锈橙头 + 骨白名（style.css 用 var(--white)=金属板 → 覆盖） */
body[data-theme="wasteland"] .mod-exp-card .mod-top { background: #B7410E; }
body[data-theme="wasteland"] .mod-exp-card .mod-name,
body[data-theme="wasteland"] .mod-exp-card .mod-en { color: #E8DCC8; }
body[data-theme="wasteland"] .mod-exp-card .mod-combo { background: #0B0B0B; color: #D97A2B; border-color: #0B0B0B; }
/* Q150 V1.41：记账卡右上角改「已记账 X 日」长文案——收窄字号/留白防溢出，仍单行不换行 */
body[data-theme="wasteland"] .mod-exp-card .mod-combo {
  font-size: 10px; padding: 4px 6px; max-width: 46%; white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis;
}
body[data-theme="wasteland"] .mod-exp-card .exp-quick-btn { background: #D97A2B; color: #1A0E06; border: 2px solid #0B0B0B; box-shadow: 2px 2px 0 rgba(0, 0, 0, .6); }
/* 锁屏时间牌：金属块 + 骨白字（style.css .lt-block 继承 --white 文字 → 覆盖） */
body[data-theme="wasteland"] .lt-block { color: #E8DCC8; }
/* 提醒中心自定义卡内 title 颜色（style.css .reminder-item.custom .r-title 继承黑色文字 → 覆盖） */
body[data-theme="wasteland"] .reminder-item.custom .r-title { color: #E8DCC8; }
body[data-theme="wasteland"] .reminder-item.custom .r-text { color: #A8987E; }
body[data-theme="wasteland"] .reminder-item.custom .r-type { background: #C9A227; color: #191204; }
/* 首页 today 标签（tag-light 已覆盖，但 #today-progress 是 tag-light → 确认骨白底文字） */
body[data-theme="wasteland"] #today-progress { color: #D97A2B; }
/* 统计页 tag-light 数值（radar-total / week-total） */
body[data-theme="wasteland"] #radar-total,
body[data-theme="wasteland"] #week-total { color: #D97A2B; }
/* 记账汇总入口 today（exp-entry-today 用 text-sub → 骨白-dim） */
body[data-theme="wasteland"] .exp-entry-today { color: #A8987E; }
/* 记账明细年月选择器 input（chrome 内建控件保留） */
body[data-theme="wasteland"] .exp-detail-picker input[type="date"],
body[data-theme="wasteland"] .exp-detail-picker input[type="month"],
body[data-theme="wasteland"] .exp-detail-picker input[type="number"] { color-scheme: dark; }
/* 输入框 placeholder */
body[data-theme="wasteland"] input::placeholder,
body[data-theme="wasteland"] textarea::placeholder { color: #6B6355; opacity: 1; }
/* 戒断模块页 mh-tag（SLEEP/DIARY 等）沿用废土 mh-tag */
body[data-theme="wasteland"] .masthead .mh-tag { background: #0B0B0B; color: #D97A2B; border: 1px solid #D97A2B; font-family: var(--font-mono); font-size: 10px; letter-spacing: .2em; transform: rotate(0); }
/* 打卡完成大按钮（作息 sleep-in/wake 用 .btn-big） */
body[data-theme="wasteland"] .btn-big { min-height: 84px; }
body[data-theme="wasteland"] .btn-big.done { background: var(--gray); color: var(--bone); border-color: #0B0B0B; opacity: .85; }
/* 空态小人（rem-empty-art）保留灰度剪影（art-* 变量已暗化） */
/* 成就解锁状态 icon */
body[data-theme="wasteland"] .ach-item.unlocked .ach-icon { background: #0B0B0B; }
/* 锁屏票根 NO.2026 编号块 */
body[data-theme="wasteland"] .lock-ticket-no { background: #B7410E; color: #F5E7D0; }
/* 备忘条（note-banner 已在模块页覆盖；学习/健康页 note-box 已覆盖） */
/* 模式：prefers-reduced-motion 尊重（3.46 验收点） */
@media (prefers-reduced-motion: reduce) {
  body[data-theme="wasteland"] *,
  body[data-theme="wasteland"] *::before,
  body[data-theme="wasteland"] *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
