/* WNL 公共样式：CSS 变量（浅色/深色）与全局基础（盒模型、正文、版心 .container）；组件按页见 css/style-*.css（wnl_head_styles.html 按需 <link>） */
:root {
    --wnl-theme-fg: #666666;
    --wnl-theme-link: #38709f;
    --wnl-theme-emphasis: #ab372f;
    --wnl-theme-surface: #ffffff;
    --wnl-theme-surface-soft: #f7eccc;
    --wnl-theme-surface-muted: #eeeeee;
    --wnl-theme-accent: #cc6600;
    --wnl-theme-border: #dddddd;

    --font-family-stack: "微软雅黑", "苹方", "黑体", "Simsun", sans-serif;
    --font-size-base: 14px;
    --line-height-base: 1.6;

    --space-1: 1px;
    --space-2: 4px;
    --space-3: 7px;
    --space-4: 8px;
    --space-5: 9px;
    --space-6: 25px;
    --space-7: 30px;
    /* 全宽布局下左右安全留白（不写在 .container 上） */
    --page-gutter-x: clamp(12px, 2.5vw, 40px);

    /* 明暗主题语义色（见 html[data-theme="dark"] 覆盖） */
    --wnl-bg-parchment: #fffef9;
    --wnl-bg-header-solid: #ffffff;
    --wnl-border-warm: #e8dcc8;
    --wnl-text-brown: #5c4a3a;
    --wnl-tone-mid: #faf4e8;
    --wnl-tone-low: #f2e4c6;
    --wnl-tone-peach: #faf4e6;
    --wnl-breadcrumb-from: #fffcf3;
    --wnl-breadcrumb-to: #f2e6d0;
    --wnl-breadcrumb-edge: #e0d0b8;
    --wnl-footer-from: #fffcf5;
    --wnl-footer-to: #f3e9d2;

    /* 控件与分项（月明/导航/表格格子等，暗色在 html[data-theme="dark"] 覆盖） */
    --wnl-pegs-top: #d4b896;
    --wnl-pegs-bot: #c4a07a;
    --wnl-rule-hair: #efe4d0;
    --wnl-rule-hair-2: #f0e6d4;
    --wnl-text-lunar-line: #4a3d30;
    --wnl-text-sep-soft: #a89880;
    --wnl-col-inset-highlight: rgba(255, 255, 255, 0.35);
    --wnl-inset-chip: rgba(255, 255, 255, 0.8);
    --wnl-yi-fg: #0d3d0f;
    --wnl-yi-bg: #e3f0e3;
    --wnl-yi-border: #9ccc9c;
    --wnl-ji-fg: #5a1212;
    --wnl-ji-bg: #fce8e8;
    --wnl-ji-border: #e8a0a0;
    --wnl-yi-ji-body: #3d3528;
    --wnl-nav-cream: #fffaf0;
    --wnl-nav-accent: #b2581c;
    --wnl-nav-accent-hover: #9a4a18;
    --wnl-nav-shell-edge: rgba(178, 88, 28, 0.18);
    --wnl-nav-flip-hover: #fff5e6;
    --wnl-nav-flip-active: #ffecd4;
    --wnl-nav-pill-off: #fffef8;
    --wnl-nav-pill-hover: #fff5e8;
    --wnl-nav-on-fg: #ffffff;
    --wnl-scroll-track: #f5ead8;
    --wnl-scroll-thumb: #c9a06e;
    --wnl-scroll-bar-mix: #d4b08c;
    --wnl-th-text: #8c6b45;
    --wnl-th-rule: #ebd8b7;
    --wnl-cell-border: #f0e6d6;
    --wnl-cell-hover: #fff9f0;
    --wnl-cell-today-hover: #fff3e6;
    --wnl-date-num: #333333;
    --wnl-lunar-sub: #9a7b56;
    --wnl-date-muted: #c5c0b8;
    --wnl-date-today: #cc5f10;
    --wnl-zodiac-watermark: #6b1414;
    --wnl-crumb-lead: #4a3428;
    --wnl-crumb-link-fg: #6b3d18;
    --wnl-crumb-pill-top: #ffffff;
    --wnl-crumb-pill-bot: #faf0dc;
    --wnl-crumb-pill-border: #d9c4a0;
    --wnl-crumb-pill-hover: #fff8eb;
    --wnl-crumb-pill-active: #f3ead4;
    --wnl-crumb-sep: #b8a48c;
    --wnl-crumb-title-bg: #fff7e6;
    --wnl-crumb-title-border: #c9a86c;
    --wnl-crumb-title-fg: #3d2618;
    --wnl-crumb-current-top: #ffefd4;
    --wnl-crumb-current-bot: #f4dcc0;
    --wnl-crumb-current-border: #b88a4a;
    --wnl-crumb-current-fg: #2c1a0e;
    --wnl-hero-lead: #6b4420;
    --wnl-hero-name: #b2581c;
    --wnl-hero-num: #3d2618;
    --wnl-hero-strong: #8b2500;
    --wnl-hero-empty: #7a6a58;
    --wnl-card-shadow: rgba(90, 60, 30, 0.06);
    --wnl-td-xiu-hover: #e8f5e9;
    --wnl-td-ban-hover: #ffebee;
    --wnl-td-oxiu-hover: #e3f0e5;
    --wnl-td-oban-hover: #f3e3e3;
    --wnl-on-gradient-fg: #fefdfb;
    --wnl-beijing-chip-bg: #faf8f2;
    --wnl-beijing-chip-border: var(--wnl-border-warm);

    --wnl-hairline-border: #eeeeee;
    --wnl-table-th-bg: #f9f9f9;
    --wnl-detail-th-bg: #fcfcfc;
    --wnl-detail-yi-head: #f9fff9;
    --wnl-detail-ji-head: #fff9f9;
    --wnl-rule-warm-pale: #eee4d3;
    --wnl-text-muted: #666666;
    --wnl-text-muted-2: #777777;
    --wnl-text-muted-3: #888888;
    --wnl-text-hint: #999999;
    --wnl-chip-holiday-bg: #ffeaea;
    --wnl-chip-holiday-fg: #d32f2f;
    --wnl-chip-solar-bg: #e8f5e9;
    --wnl-chip-solar-fg: #2e7d32;
    --wnl-chip-solar-warn-fg: #b71c1c;
    --wnl-chip-solar-warn-bg: #ffebee;
    --wnl-chip-history-bg: #e3f2fd;
    --wnl-chip-history-fg: #1565c0;
    --wnl-hour-lucky-bg: #f0faf0;
    --wnl-hour-lucky-border: #d8eed8;
    --wnl-hour-unlucky-bg: #fff8f6;
    --wnl-hour-unlucky-border: #f0e0dc;
    --wnl-jishi-bg: #fffdfd;
    --wnl-jishi-dash: #ffeded;
    --wnl-jishi-h4: #e4393c;
    --wnl-shen-cai-bg: #fff8f4;
    --wnl-shen-cai-br: #e8c9c0;
    --wnl-shen-cai-top: #a53a28;
    --wnl-shen-xi-bg: #f4f8fb;
    --wnl-shen-xi-br: #c8d8e0;
    --wnl-shen-xi-top: #2a6a8a;
    --wnl-shen-fu-bg: #f3faf4;
    --wnl-shen-fu-br: #c8e0c8;
    --wnl-shen-fu-top: #2d6a3a;
    --wnl-shen-val-fg: #2c2015;
    --wnl-shen-lbl-cai: #7a1f18;
    --wnl-shen-lbl-xi: #1a4a5c;
    --wnl-shen-lbl-fu: #1b4d24;
    --wnl-shen-hover-br: #d4b896;
    --wnl-tip-warn-bg: #fdf6ec;
    --wnl-tip-warn-accent: #e6a23c;
    /* 月历：休/班水印、选中描边、导航焦点环（随主题） */
    --wnl-watermark-rest-fg: #ff0000;
    --wnl-watermark-work-fg: #333333;
    --wnl-nav-focus-ring: rgba(178, 88, 28, 0.45);
    --wnl-nav-ring-soft: rgba(178, 88, 28, 0.35);
    --wnl-month-picked-ring: rgba(178, 88, 28, 0.55);
    /* 首页分栏月历：吉日筛选命中格 */
    --wnl-month-split-jiri-match-bg: #ffffe0;
    --wnl-month-split-jiri-match-ring: rgb(125 46 46 / 13%);
    /* 首页分栏月历：选中格（粗框 + 浅粉底，与吉日浅黄区分） */
    --wnl-month-split-picked-bg: #faf7f5;
    --wnl-month-split-picked-border: #8f2d2b;
    --wnl-month-split-picked-border-w: 3px;
    --wnl-month-split-picked-num: #9e4a3a;
    --wnl-month-split-picked-lunar: #8b7268;
    --wnl-month-split-today-watermark-color: rgb(139 60 48 / 22%);
    --wnl-month-split-today-watermark-size: 4rem;
    /* 吉日筛选芯片 */
    --wnl-jiri-chip-bg: #f7efe8;
    --wnl-jiri-chip-br: #e5d5c5;
    --wnl-jiri-chip-fg: #3d2f24;
    --wnl-jiri-group-bg: #fdfaf6;
    --wnl-jiri-group-br: rgba(90, 60, 30, 0.09);
    /* 节日时间轴 */
    --wnl-fest-today-fg: #8b1538;
    --wnl-fest-today-dot-bg: #fff5f2;
    --wnl-fest-today-glow: rgba(193, 30, 58, 0.15);
    --wnl-fest-tag-bg: #faf6ee;
    --wnl-fest-tag-br: #d8cdb8;
    --wnl-fest-tag-hover-bg: #f3ebe0;
    --wnl-fest-tag-hover-br: #c4a57a;
    --wnl-fest-jieqi-bg: #fff9f0;
    --wnl-fest-jieqi-br: #c9a86c;
    --wnl-fest-today-row-tag-bg: #fff8f6;
    --wnl-fest-today-row-tag-br: #c9a6a0;
    --wnl-fest-today-jieqi-br: #a04558;
    --wnl-fest-today-jieqi-fg: #6b1020;
    /* 文章/列表：衬线区与代码块 */
    --wnl-entry-body-fg: #444444;
    --wnl-article-card-shadow: rgba(90, 60, 30, 0.07);
    --wnl-list-row-hover: #fff6e8;
    --wnl-list-title-fg: #3d2a1a;
    --wnl-list-title-hover-fg: #7a3a12;
    --wnl-list-muted: #6a5c4d;
    --wnl-list-meta: #8a7a6a;
    --wnl-cal-nav-border: #e0c9a0;
    --wnl-cal-nav-hover-fg: #a65300;
    --wnl-cal-nav-hover-bg: #fff8eb;
    /* 表单控件、放假安排「补班」徽标 */
    --wnl-input-border: #d8c4be;
    --wnl-holiday-work-bg: #fff3e0;
    --wnl-holiday-work-fg: #bf360c;
    --wnl-holiday-work-br: #ffcc80;

    /* 全站补：交互金边、倒计时下划线、吉/凶、月历休假格、时辰琥珀、按钮反色（暗色在同名变量上覆盖） */
    --wnl-border-accent: #d4a574;
    --wnl-accent-press-bg: #f3ead4;
    --wnl-btn-on-solid: #ffffff;
    --wnl-link-underline-accent: rgba(178, 88, 28, 0.35);
    --wnl-semantic-lucky: #00b06b;
    --wnl-semantic-lucky-deep: #008a56;
    --wnl-semantic-danger: #f53f3f;
    --wnl-semantic-danger-deep: #c41e2a;
    --wnl-shichen-amber: #c17d41;
    --wnl-cal-today-g1: #c9893a;
    --wnl-cal-today-g2: #a35a1e;
    --wnl-cal-today-g3: #8f4a12;
    --wnl-cal-today-ring: #b87a2e;
    --wnl-cal-today-soft: #fffef8;
    --wnl-cal-pad-muted: rgba(122, 111, 100, 0.95);
    --wnl-cal-pad-strong: rgba(181, 104, 104, 0.95);
    --wnl-cal-rotor-hist: rgba(74, 44, 24, 0.51);
    --wnl-cal-xiu-cell-bg: #e8f5e9;
    --wnl-cal-xiu-cell-br: #c5e1c0;
    --wnl-cal-xiu-hover-bg: #dcedc8;
    --wnl-cal-xiu-hover-br: #aed581;
    --wnl-cal-ban-cell-bg: #ffebee;
    --wnl-cal-ban-cell-br: #f0c4c4;
    --wnl-cal-ban-hover-bg: #ffe0e6;
    --wnl-cal-ban-hover-br: #ef9a9a;
    --wnl-cal-pad-xiu-bg: #e3f0e5;
    --wnl-cal-pad-xiu-br: #c5d9c7;
    --wnl-cal-pad-ban-bg: #f3e3e3;
    --wnl-cal-pad-ban-br: #e0c4c4;
    --wnl-cal-pad-xiu-hover-bg: #d8e8db;
    --wnl-cal-pad-ban-hover-bg: #f0d8d8;
    --wnl-cal-today-xiu-g1: #3d7a4d;
    --wnl-cal-today-xiu-g2: #2a5a36;
    --wnl-cal-today-xiu-g3: #1e4a2a;
    --wnl-cal-today-xiu-br: #2d6a3a;
    --wnl-cal-today-ban-g1: #b55c3a;
    --wnl-cal-today-ban-g2: #8f4028;
    --wnl-cal-today-ban-g3: #7a351e;
    --wnl-cal-today-ban-br: #a64d28;
    --wnl-year-month-hi1: #f3e2c4;
    --wnl-year-month-hi2: #e6cf9e;
    --wnl-year-month-hi3: #d9b67e;
    --wnl-year-month-hi-br: #b87a2e;
    --wnl-year-month-hi-fg: #4a3020;
    --wnl-year-month-hi-hover1: #edd8b4;
    --wnl-year-month-hi-hover2: #ddc28e;
    --wnl-year-month-hi-hover3: #cfaa6e;
    --wnl-year-month-hi-hover-br: #a35a1e;
    --wnl-year-month-mark: #7a3d18;
    --wnl-fest-ency-border: #e0d6c4;
    --wnl-elevator-bg1: #fffaf3;
    --wnl-elevator-bg2: #f5ecda;
    --wnl-elevator-br: #e0d0b8;
    --wnl-elevator-label: #6b4423;
    --wnl-elevator-link-fg: #4a3828;
    --wnl-elevator-link-br: #d4c4a8;
    --wnl-elevator-link-hover: #fff5e6;
    --wnl-masonry-key-bg: #faf7f0;
    --wnl-masonry-key-br: #c9a86c;
    --wnl-back-top-br: #c9a06e;
    --wnl-back-top-bg1: #fffaf2;
    --wnl-back-top-bg2: #f0e4d2;
    --wnl-nav-menu-active: #f0e3c8;
    --wnl-nav-menu-hover-fg: #a65300;
    --wnl-nav-menu-hover-bg: #fff8eb;
    --wnl-shichen-title: #7a4a28;
    --wnl-shichen-body: #4a3a2e;
    --wnl-shichen-nowline-fg: #3d3028;
    --wnl-shichen-nowline-bg1: #fff7eb;
    --wnl-shichen-nowline-bg2: #ffefd6;
    --wnl-shichen-nowline-br: #e8c9a0;
    --wnl-shichen-branch-bg: #fff8f0;
    --wnl-shichen-row-border: #e8e0d4;
    --wnl-shichen-row-lucky-bg: #fbfffd;
    --wnl-shichen-row-xiong-bg: #fffcfc;
    --wnl-shichen-line-time: #9a5a2d;
    --wnl-shichen-line-name: #6b2c0a;
    --wnl-home-masonry-a: #a0522d;
    --wnl-home-masonry-a-hover: #8b0000;
    --wnl-footer-rule: rgba(92, 74, 58, 0.22);

    /* 规则区零散的十六进制占位（同名变量暗色在下面覆写） */
    --wnl-patch-jieqi: #1f7a3a;
    --wnl-patch-mobile-foot: #2f2a24;
    --wnl-patch-masonry-ink-a: #3d2c2c;
    --wnl-patch-masonry-ink-b: #3d2f22;
    --wnl-patch-masonry-accent: #3d342c;
    --wnl-patch-rotor-hist-8: #4a2c1882;
    --wnl-patch-cell-muted-bg: #4a3a3a;
    --wnl-patch-jí-br-strong: #4caf7a;
    --wnl-patch-pad-hover-fg: #5a5046;
    --wnl-patch-hist-brown: #5c3d24;
    --wnl-patch-legend-muted: #5c5346;
    --wnl-patch-cal-lunar: #6a523d;
    --wnl-patch-pad-muted: #7a6f64;
    --wnl-patch-pad-soft: #8a7f6e;
    --wnl-patch-hero-bar: #8b4510;
    --wnl-patch-pad-tag: #8f8478;
    --wnl-patch-fest: #b23331;
    --wnl-patch-pad-warn-soft: #b36868;
    --wnl-patch-line-warn: #b42318;
    --wnl-patch-orange-strong: #c06020;
    --wnl-patch-traditional: #c42b1f;
    --wnl-patch-soft-border-a: #c9a37a;
    --wnl-patch-soft-border-b: #e0d4c4;
    --wnl-patch-mobile-bd: #e2d8c8;
    --wnl-patch-lunar-bd: #e2dcd2;
    --wnl-patch-danger-soft-br: #e57373;
    --wnl-patch-masonry-hair-a: #e5ddd0;
    --wnl-patch-xiong-br-soft: #e85a5a;
    --wnl-patch-pegs-warm-from: #e8a45c;
    --wnl-patch-cal-outer-bd: #ede5d8;
    --wnl-patch-masonry-hair-b: #ede6da;
    --wnl-patch-home-key-bd: #efe6d6;
    --wnl-patch-row-jí-bg-soft: #f0faf5;
    --wnl-patch-row-jí-bg-strong: #f3fcf7;
    --wnl-patch-pad-tone: #f4efe6;
    --wnl-patch-orange-tint: #ffd9a6;
    --wnl-patch-orange-tint-strong: #ffe8cc;
    --wnl-patch-masonry-grad-soft: #fff8ee;
    --wnl-patch-masonry-card-grad-from: #fffbf5;
    --wnl-patch-sheet-bg: #fffdf9;
    --wnl-patch-sheet-sheet: #fffef7;
    --wnl-patch-brown-a: #4a4034;
    --wnl-patch-brown-b: #4a4038;
    --wnl-patch-brown-c: #5c3d1e;
    /* 规则区内 rgba 字面量收口（与 --wnl-footer-rule 等配对使用） */
    --wnl-rule-argb0_0_0-040: rgba(0, 0, 0, 0.04);
    --wnl-rule-argb0_0_0-060: rgba(0, 0, 0, 0.06);
    --wnl-rule-argb0_0_0-220: rgba(0, 0, 0, 0.22);
    --wnl-rule-argb0_0_0-350: rgba(0, 0, 0, 0.35);
    --wnl-rule-argb0_0_0-400: rgba(0, 0, 0, 0.4);
    --wnl-rule-argb0_100_60-060: rgba(0, 100, 60, 0.06);
    --wnl-rule-argb0_176_107-400: rgba(0, 176, 107, 0.4);
    --wnl-rule-argb100_40_40-100: rgba(100, 40, 40, 0.1);
    --wnl-rule-argb100_60_0-250: rgba(100, 60, 0, 0.25);
    --wnl-rule-argb100_60_20-080: rgba(100, 60, 20, 0.08);
    --wnl-rule-argb102_51_0-080: rgba(102, 51, 0, 0.08);
    --wnl-rule-argb102_51_0-100: rgba(102, 51, 0, 0.1);
    --wnl-rule-argb102_51_0-120: rgba(102, 51, 0, 0.12);
    --wnl-rule-argb120_30_20-060: rgba(120, 30, 20, 0.06);
    --wnl-rule-argb139_90_43-050: rgba(139, 90, 43, 0.05);
    --wnl-rule-argb139_90_43-060: rgba(139, 90, 43, 0.06);
    --wnl-rule-argb139_90_43-080: rgba(139, 90, 43, 0.08);
    --wnl-rule-argb160_90_30-450: rgba(160, 90, 30, 0.45);
    --wnl-rule-argb180_255_200-120: rgba(180, 255, 200, 0.12);
    --wnl-rule-argb183_28_28-040: rgba(183, 28, 28, 0.04);
    --wnl-rule-argb193_125_65-180: rgba(193, 125, 65, 0.18);
    --wnl-rule-argb196_60_60-100: rgba(196, 60, 60, 0.1);
    --wnl-rule-argb198_40_40-100: rgba(198, 40, 40, 0.1);
    --wnl-rule-argb200_150_80-450: rgba(200, 150, 80, 0.45);
    --wnl-rule-argb200_150_90-450: rgba(200, 150, 90, 0.45);
    --wnl-rule-argb245_63_63-350: rgba(245, 63, 63, 0.35);
    --wnl-rule-argb255_200_120-250: rgba(255, 200, 120, 0.25);
    --wnl-rule-argb255_200_180-200: rgba(255, 200, 180, 0.2);
    --wnl-rule-argb255_255_255-040: rgba(255, 255, 255, 0.04);
    --wnl-rule-argb255_255_255-060: rgba(255, 255, 255, 0.06);
    --wnl-rule-argb255_255_255-120: rgba(255, 255, 255, 0.12);
    --wnl-rule-argb255_255_255-200: rgba(255, 255, 255, 0.2);
    --wnl-rule-argb255_255_255-350: rgba(255, 255, 255, 0.35);
    --wnl-rule-argb255_255_255-500: rgba(255, 255, 255, 0.5);
    --wnl-rule-argb255_255_255-550: rgba(255, 255, 255, 0.55);
    --wnl-rule-argb255_255_255-600: rgba(255, 255, 255, 0.6);
    --wnl-rule-argb255_255_255-650: rgba(255, 255, 255, 0.65);
    --wnl-rule-argb255_255_255-700: rgba(255, 255, 255, 0.7);
    --wnl-rule-argb255_255_255-750: rgba(255, 255, 255, 0.75);
    --wnl-rule-argb255_255_255-800: rgba(255, 255, 255, 0.8);
    --wnl-rule-argb255_255_255-850: rgba(255, 255, 255, 0.85);
    --wnl-rule-argb27_94_32-110: rgba(27, 94, 32, 0.11);
    --wnl-rule-argb34_139_34-090: rgba(34, 139, 34, 0.09);
    --wnl-rule-argb46_125_50-040: rgba(46, 125, 50, 0.04);
    --wnl-rule-argb46_80_48-100: rgba(46, 80, 48, 0.1);
    --wnl-rule-argb60_40_0-050: rgba(60, 40, 0, 0.05);
    --wnl-rule-argb60_40_20-040: rgba(60, 40, 20, 0.04);
    --wnl-rule-argb80_40_0-060: rgba(80, 40, 0, 0.06);
    --wnl-rule-argb80_40_0-070: rgba(80, 40, 0, 0.07);
    --wnl-rule-argb90_50_20-080: rgba(90, 50, 20, 0.08);
    --wnl-rule-argb90_60_30-050: rgba(90, 60, 30, 0.05);
    --wnl-rule-argb90_60_30-060: rgba(90, 60, 30, 0.06);
    --wnl-rule-argb90_60_30-070: rgba(90, 60, 30, 0.07);
    --wnl-rule-argb90_60_30-080: rgba(90, 60, 30, 0.08);
    --wnl-rule-argb90_60_30-120: rgba(90, 60, 30, 0.12);
    --wnl-rule-argb90_60_30-140: rgba(90, 60, 30, 0.14);
    --wnl-rule-argb90_60_30-160: rgba(90, 60, 30, 0.16);
    --wnl-rule-argb90_60_30-180: rgba(90, 60, 30, 0.18);
}

html[data-theme="dark"] {
    color-scheme: dark;
    --wnl-theme-fg: #cbc6bc;
    --wnl-theme-link: #7eb8db;
    --wnl-theme-emphasis: #ab372f;
    --wnl-theme-surface: #13110f;
    --wnl-theme-surface-soft: #252018;
    --wnl-theme-surface-muted: #2e2820;
    --wnl-theme-accent: #d9a34a;
    --wnl-theme-border: #4a4138;
    --wnl-bg-parchment: #1a1714;
    --wnl-bg-header-solid: #13110f;
    --wnl-border-warm: #3d352c;
    --wnl-text-brown: #b8aa95;
    --wnl-tone-mid: #2a2420;
    --wnl-tone-low: #3a332c;
    --wnl-tone-peach: #2f2a23;
    --wnl-breadcrumb-from: #1e1b17;
    --wnl-breadcrumb-to: #151210;
    --wnl-breadcrumb-edge: #302a22;
    --wnl-footer-from: #1e1b17;
    --wnl-footer-to: #13110f;

    --wnl-pegs-top: #5a4d3d;
    --wnl-pegs-bot: #3d352c;
    --wnl-rule-hair: #353028;
    --wnl-rule-hair-2: #322c26;
    --wnl-text-lunar-line: #c4b8a8;
    --wnl-text-sep-soft: #8a7d6e;
    --wnl-col-inset-highlight: rgba(255, 255, 255, 0.08);
    --wnl-inset-chip: rgba(255, 255, 255, 0.06);
    --wnl-yi-fg: #a5d6a7;
    --wnl-yi-bg: #1e2a1f;
    --wnl-yi-border: #4a6b4c;
    --wnl-ji-fg: #ef9a9a;
    --wnl-ji-bg: #2a1c1c;
    --wnl-ji-border: #8a4e4e;
    --wnl-yi-ji-body: #d8d0c4;
    --wnl-nav-cream: #1f1b17;
    --wnl-nav-accent: #e8b86a;
    --wnl-nav-accent-hover: #f0c982;
    --wnl-nav-shell-edge: rgba(232, 184, 106, 0.22);
    --wnl-nav-flip-hover: #2a2620;
    --wnl-nav-flip-active: #332c24;
    --wnl-nav-pill-off: #252018;
    --wnl-nav-pill-hover: #2e2820;
    --wnl-nav-on-fg: #141210;
    --wnl-scroll-track: #1e1a15;
    --wnl-scroll-thumb: #6b5840;
    --wnl-scroll-bar-mix: #5c4f3d;
    --wnl-th-text: #b89a74;
    --wnl-th-rule: #453c32;
    --wnl-cell-border: #3a332c;
    --wnl-cell-hover: #2a261f;
    --wnl-cell-today-hover: #3a2e1a;
    --wnl-date-num: #e8e2d8;
    --wnl-lunar-sub: #b89a74;
    --wnl-date-muted: #6b6458;
    --wnl-date-today: #f0a84a;
    --wnl-zodiac-watermark: #c45c5c;
    --wnl-crumb-lead: #c9b89a;
    --wnl-crumb-link-fg: #e0c9a8;
    --wnl-crumb-pill-top: #2a261f;
    --wnl-crumb-pill-bot: #221e1a;
    --wnl-crumb-pill-border: #5c4f42;
    --wnl-crumb-pill-hover: #332e28;
    --wnl-crumb-pill-active: #2a241c;
    --wnl-crumb-sep: #887a68;
    --wnl-crumb-title-bg: #2a261c;
    --wnl-crumb-title-border: #8b7348;
    --wnl-crumb-title-fg: #eaddc8;
    --wnl-crumb-current-top: #3d3324;
    --wnl-crumb-current-bot: #2e261c;
    --wnl-crumb-current-border: #a8834a;
    --wnl-crumb-current-fg: #f2e6d6;
    --wnl-hero-lead: #c9a882;
    --wnl-hero-name: #e8b86a;
    --wnl-hero-num: #e4ddd0;
    --wnl-hero-strong: #f0a060;
    --wnl-hero-empty: #9a9084;
    --wnl-card-shadow: rgba(0, 0, 0, 0.45);
    --wnl-beijing-chip-bg: #252018;
    --wnl-td-xiu-hover: #1a2620;
    --wnl-td-ban-hover: #2a181a;
    --wnl-td-oxiu-hover: #172219;
    --wnl-td-oban-hover: #241c1c;

    --wnl-hairline-border: #3a342c;
    --wnl-table-th-bg: #222018;
    --wnl-detail-th-bg: #1a1815;
    --wnl-detail-yi-head: #152218;
    --wnl-detail-ji-head: #231a1a;
    --wnl-rule-warm-pale: #3a3328;
    --wnl-text-muted: #9a9488;
    --wnl-text-muted-2: #8a8378;
    --wnl-text-muted-3: #7a7468;
    --wnl-text-hint: #6a655c;
    --wnl-chip-holiday-bg: #3a2224;
    --wnl-chip-holiday-fg: #ff8a80;
    --wnl-chip-solar-bg: #1a2820;
    --wnl-chip-solar-fg: #81c784;
    --wnl-chip-solar-warn-fg: #ef9a9a;
    --wnl-chip-solar-warn-bg: #3a2226;
    --wnl-chip-history-bg: #1a2430;
    --wnl-chip-history-fg: #90caf9;
    --wnl-hour-lucky-bg: #152018;
    --wnl-hour-lucky-border: #2f4a38;
    --wnl-hour-unlucky-bg: #251a18;
    --wnl-hour-unlucky-border: #4a3530;
    --wnl-jishi-bg: #221a1a;
    --wnl-jishi-dash: #5a3838;
    --wnl-jishi-h4: #ff8a80;
    --wnl-shen-cai-bg: #281c1a;
    --wnl-shen-cai-br: #6a4038;
    --wnl-shen-cai-top: #d67a6a;
    --wnl-shen-xi-bg: #182228;
    --wnl-shen-xi-br: #405a68;
    --wnl-shen-xi-top: #5a9ab8;
    --wnl-shen-fu-bg: #18221a;
    --wnl-shen-fu-br: #44604a;
    --wnl-shen-fu-top: #5aaf6a;
    --wnl-shen-val-fg: #dcd4c8;
    --wnl-shen-lbl-cai: #ffb0a8;
    --wnl-shen-lbl-xi: #9ecbde;
    --wnl-shen-lbl-fu: #a8d4b0;
    --wnl-shen-hover-br: #7a6848;
    --wnl-tip-warn-bg: #2a2418;
    --wnl-tip-warn-accent: #d4a036;
    --wnl-watermark-rest-fg: #ff8a80;
    --wnl-watermark-work-fg: #8a8278;
    --wnl-nav-focus-ring: rgba(232, 184, 106, 0.5);
    --wnl-nav-ring-soft: rgba(232, 184, 106, 0.38);
    --wnl-month-picked-ring: rgba(217, 163, 74, 0.65);
    --wnl-month-split-jiri-match-bg: #342e18;
    --wnl-month-split-jiri-match-ring: rgb(232 196 160 / 22%);
    --wnl-month-split-picked-bg: #2a2520;
    --wnl-month-split-picked-border: #b8a898;
    --wnl-month-split-picked-border-w: 3px;
    --wnl-month-split-picked-num: #e8a090;
    --wnl-month-split-picked-lunar: #c4b0a0;
    --wnl-month-split-today-watermark-color: rgb(232 160 140 / 26%);
    --wnl-month-split-today-watermark-size: 4rem;
    --wnl-jiri-chip-bg: #2c2420;
    --wnl-jiri-chip-br: #453c34;
    --wnl-jiri-chip-fg: #e8dfd6;
    --wnl-jiri-group-bg: #252018;
    --wnl-jiri-group-br: rgba(232, 200, 160, 0.12);
    --wnl-fest-today-fg: #ff8a98;
    --wnl-fest-today-dot-bg: #281c1c;
    --wnl-fest-today-glow: rgba(255, 138, 128, 0.22);
    --wnl-fest-tag-bg: #252018;
    --wnl-fest-tag-br: #4a4138;
    --wnl-fest-tag-hover-bg: #2e2820;
    --wnl-fest-tag-hover-br: #7a6848;
    --wnl-fest-jieqi-bg: #2a261c;
    --wnl-fest-jieqi-br: #8b7348;
    --wnl-fest-today-row-tag-bg: #2a1e1c;
    --wnl-fest-today-row-tag-br: #6a5048;
    --wnl-fest-today-jieqi-br: #b85a6a;
    --wnl-fest-today-jieqi-fg: #ffb0c0;
    --wnl-entry-body-fg: #bcb6ac;
    --wnl-article-card-shadow: rgba(0, 0, 0, 0.35);
    --wnl-list-row-hover: #2a2618;
    --wnl-list-title-fg: #eaddc8;
    --wnl-list-title-hover-fg: #f0c982;
    --wnl-list-muted: #9a9184;
    --wnl-list-meta: #887c70;
    --wnl-cal-nav-border: #5c4f42;
    --wnl-cal-nav-hover-fg: #f0c982;
    --wnl-cal-nav-hover-bg: #332c24;
    --wnl-input-border: #4f453a;
    --wnl-holiday-work-bg: #2a2318;
    --wnl-holiday-work-fg: #ffb74d;
    --wnl-holiday-work-br: #7a6840;

    --wnl-border-accent: #b8925a;
    --wnl-accent-press-bg: #2e2820;
    --wnl-btn-on-solid: #ffffff;
    --wnl-link-underline-accent: rgba(232, 184, 106, 0.45);
    --wnl-semantic-lucky: #52eba0;
    --wnl-semantic-lucky-deep: #2eb87a;
    --wnl-semantic-danger: #ff8a82;
    --wnl-semantic-danger-deep: #e85252;
    --wnl-shichen-amber: #d4a068;
    --wnl-cal-today-g1: #9a7838;
    --wnl-cal-today-g2: #784a28;
    --wnl-cal-today-g3: #583820;
    --wnl-cal-today-ring: #a88248;
    --wnl-cal-today-soft: #fefaf2;
    --wnl-cal-pad-muted: rgba(154, 144, 128, 0.95);
    --wnl-cal-pad-strong: rgba(208, 120, 120, 0.95);
    --wnl-cal-rotor-hist: rgba(200, 190, 170, 0.45);
    --wnl-cal-xiu-cell-bg: #172219;
    --wnl-cal-xiu-cell-br: #374a38;
    --wnl-cal-xiu-hover-bg: #1f2e22;
    --wnl-cal-xiu-hover-br: #486248;
    --wnl-cal-ban-cell-bg: #2c181c;
    --wnl-cal-ban-cell-br: #684040;
    --wnl-cal-ban-hover-bg: #3c2228;
    --wnl-cal-ban-hover-br: #885858;
    --wnl-cal-pad-xiu-bg: #1a2820;
    --wnl-cal-pad-xiu-br: #3a5540;
    --wnl-cal-pad-ban-bg: #281818;
    --wnl-cal-pad-ban-br: #504040;
    --wnl-cal-pad-xiu-hover-bg: #223028;
    --wnl-cal-pad-ban-hover-bg: #302020;
    --wnl-cal-today-xiu-g1: #2d6840;
    --wnl-cal-today-xiu-g2: #1e5830;
    --wnl-cal-today-xiu-g3: #164828;
    --wnl-cal-today-xiu-br: #3a8050;
    --wnl-cal-today-ban-g1: #9a6040;
    --wnl-cal-today-ban-g2: #784830;
    --wnl-cal-today-ban-g3: #583820;
    --wnl-cal-today-ban-br: #b07048;
    --wnl-year-month-hi1: #3a3224;
    --wnl-year-month-hi2: #2e281c;
    --wnl-year-month-hi3: #262018;
    --wnl-year-month-hi-br: #887040;
    --wnl-year-month-hi-fg: #dcd0b8;
    --wnl-year-month-hi-hover1: #454030;
    --wnl-year-month-hi-hover2: #3a3628;
    --wnl-year-month-hi-hover3: #322c22;
    --wnl-year-month-hi-hover-br: #a8834a;
    --wnl-year-month-mark: #e8c880;
    --wnl-fest-ency-border: #3a342c;
    --wnl-elevator-bg1: #252018;
    --wnl-elevator-bg2: #181510;
    --wnl-elevator-br: #4a4038;
    --wnl-elevator-label: #c4a878;
    --wnl-elevator-link-fg: #d8cfc0;
    --wnl-elevator-link-br: #554c42;
    --wnl-elevator-link-hover: #322c26;
    --wnl-masonry-key-bg: #252018;
    --wnl-masonry-key-br: #8b7348;
    --wnl-back-top-br: #7a6848;
    --wnl-back-top-bg1: #2e2820;
    --wnl-back-top-bg2: #1e1a17;
    --wnl-nav-menu-active: #3a3428;
    --wnl-nav-menu-hover-fg: #f0c982;
    --wnl-nav-menu-hover-bg: #332c26;
    --wnl-shichen-title: #d4b896;
    --wnl-shichen-body: #c4b8a8;
    --wnl-shichen-nowline-fg: #e4dcd0;
    --wnl-shichen-nowline-bg1: #2a261c;
    --wnl-shichen-nowline-bg2: #1e1a14;
    --wnl-shichen-nowline-br: #6a5838;
    --wnl-shichen-branch-bg: #2a2618;
    --wnl-shichen-row-border: #4a4034;
    --wnl-shichen-row-lucky-bg: #18221a;
    --wnl-shichen-row-xiong-bg: #221818;
    --wnl-shichen-line-time: #daa060;
    --wnl-shichen-line-name: #e8c8a8;
    --wnl-home-masonry-a: #e8b070;
    --wnl-home-masonry-a-hover: #ff9580;
    --wnl-footer-rule: rgba(200, 180, 150, 0.12);

    /* wnl-patch-* 暗色配对 */
    --wnl-patch-jieqi: #6abe7a;
    --wnl-patch-mobile-foot: #dcd4c8;
    --wnl-patch-masonry-ink-a: #d0c8bc;
    --wnl-patch-masonry-ink-b: #c9c0b4;
    --wnl-patch-masonry-accent: #b8aea0;
    --wnl-patch-rotor-hist-8: #b8a89480;
    --wnl-patch-cell-muted-bg: #8a8078;
    --wnl-patch-jí-br-strong: #52b882;
    --wnl-patch-pad-hover-fg: #dcd4c8;
    --wnl-patch-hist-brown: #c4b8a8;
    --wnl-patch-legend-muted: #9a9284;
    --wnl-patch-cal-lunar: #b89a74;
    --wnl-patch-pad-muted: #8a8076;
    --wnl-patch-pad-soft: #9a9284;
    --wnl-patch-hero-bar: #d4a060;
    --wnl-patch-pad-tag: #9a9080;
    --wnl-patch-fest: #ff8a82;
    --wnl-patch-pad-warn-soft: #d08080;
    --wnl-patch-line-warn: #ff9580;
    --wnl-patch-orange-strong: #e8a048;
    --wnl-patch-traditional: #ff9580;
    --wnl-patch-soft-border-a: #7a6848;
    --wnl-patch-soft-border-b: #4a4138;
    --wnl-patch-mobile-bd: #453c34;
    --wnl-patch-lunar-bd: #453c34;
    --wnl-patch-danger-soft-br: #c06868;
    --wnl-patch-masonry-hair-a: #3a342c;
    --wnl-patch-xiong-br-soft: #b06060;
    --wnl-patch-pegs-warm-from: #d4a068;
    --wnl-patch-cal-outer-bd: #4a4038;
    --wnl-patch-masonry-hair-b: #3d352c;
    --wnl-patch-home-key-bd: #453c32;
    --wnl-patch-row-jí-bg-soft: #152220;
    --wnl-patch-row-jí-bg-strong: #182628;
    --wnl-patch-pad-tone: #2a2820;
    --wnl-patch-orange-tint: #4a3820;
    --wnl-patch-orange-tint-strong: #5c4020;
    --wnl-patch-masonry-grad-soft: #2a2620;
    --wnl-patch-masonry-card-grad-from: #2a2620;
    --wnl-patch-sheet-bg: #1e1b18;
    --wnl-patch-sheet-sheet: #1a1815;
    --wnl-patch-brown-a: #6b6058;
    --wnl-patch-brown-b: #6f645c;
    --wnl-patch-brown-c: #b8a080;

    /* 省电纸感：哑光暖灰边界、压低顶光白边、柔和褐灰影与 muted 语义叠加（勿与亮色逐字段对齐数值） */
    --wnl-rule-argb0_0_0-040: rgba(6, 6, 8, 0.03);
    --wnl-rule-argb0_0_0-060: rgba(4, 4, 6, 0.045);
    --wnl-rule-argb0_0_0-220: rgba(0, 0, 0, 0.11);
    --wnl-rule-argb0_0_0-350: rgba(6, 6, 8, 0.16);
    --wnl-rule-argb0_0_0-400: rgba(10, 10, 12, 0.2);
    --wnl-rule-argb0_100_60-060: rgba(68, 105, 88, 0.045);
    --wnl-rule-argb0_176_107-400: rgba(82, 145, 118, 0.24);
    --wnl-rule-argb100_40_40-100: rgba(130, 88, 88, 0.055);
    --wnl-rule-argb100_60_0-250: rgba(105, 82, 58, 0.1);
    --wnl-rule-argb100_60_20-080: rgba(95, 72, 58, 0.055);
    --wnl-rule-argb102_51_0-080: rgba(108, 82, 58, 0.055);
    --wnl-rule-argb102_51_0-100: rgba(108, 82, 58, 0.065);
    --wnl-rule-argb102_51_0-120: rgba(108, 82, 58, 0.075);
    --wnl-rule-argb120_30_20-060: rgba(105, 72, 68, 0.045);
    --wnl-rule-argb139_90_43-050: rgba(78, 66, 54, 0.04);
    --wnl-rule-argb139_90_43-060: rgba(78, 66, 54, 0.048);
    --wnl-rule-argb139_90_43-080: rgba(78, 66, 54, 0.06);
    --wnl-rule-argb160_90_30-450: rgba(165, 128, 88, 0.2);
    --wnl-rule-argb180_255_200-120: rgba(108, 128, 115, 0.09);
    --wnl-rule-argb183_28_28-040: rgba(145, 88, 86, 0.03);
    --wnl-rule-argb193_125_65-180: rgba(148, 118, 82, 0.12);
    --wnl-rule-argb196_60_60-100: rgba(150, 95, 95, 0.055);
    --wnl-rule-argb198_40_40-100: rgba(145, 90, 90, 0.055);
    --wnl-rule-argb200_150_80-450: rgba(155, 128, 95, 0.22);
    --wnl-rule-argb200_150_90-450: rgba(155, 128, 95, 0.22);
    --wnl-rule-argb245_63_63-350: rgba(195, 108, 102, 0.2);
    --wnl-rule-argb255_200_120-250: rgba(195, 165, 125, 0.12);
    --wnl-rule-argb255_200_180-200: rgba(188, 155, 142, 0.1);
    --wnl-rule-argb255_255_255-040: rgba(232, 228, 220, 0.035);
    --wnl-rule-argb255_255_255-060: rgba(232, 228, 220, 0.048);
    --wnl-rule-argb255_255_255-120: rgba(232, 228, 220, 0.06);
    --wnl-rule-argb255_255_255-200: rgba(232, 228, 220, 0.07);
    --wnl-rule-argb255_255_255-350: rgba(232, 228, 220, 0.08);
    --wnl-rule-argb255_255_255-500: rgba(232, 228, 220, 0.085);
    --wnl-rule-argb255_255_255-550: rgba(232, 228, 220, 0.085);
    --wnl-rule-argb255_255_255-600: rgba(232, 228, 220, 0.09);
    --wnl-rule-argb255_255_255-650: rgba(232, 228, 220, 0.09);
    --wnl-rule-argb255_255_255-700: rgba(232, 228, 220, 0.095);
    --wnl-rule-argb255_255_255-750: rgba(232, 228, 220, 0.095);
    --wnl-rule-argb255_255_255-800: rgba(232, 228, 220, 0.1);
    --wnl-rule-argb255_255_255-850: rgba(232, 228, 220, 0.1);
    --wnl-rule-argb27_94_32-110: rgba(88, 118, 95, 0.055);
    --wnl-rule-argb34_139_34-090: rgba(88, 122, 95, 0.045);
    --wnl-rule-argb46_125_50-040: rgba(88, 118, 95, 0.032);
    --wnl-rule-argb46_80_48-100: rgba(88, 108, 95, 0.055);
    --wnl-rule-argb60_40_0-050: rgba(88, 75, 58, 0.035);
    --wnl-rule-argb60_40_20-040: rgba(82, 70, 58, 0.032);
    --wnl-rule-argb80_40_0-060: rgba(98, 75, 55, 0.045);
    --wnl-rule-argb80_40_0-070: rgba(98, 75, 55, 0.052);
    --wnl-rule-argb90_50_20-080: rgba(88, 68, 55, 0.055);
    --wnl-rule-argb90_60_30-050: rgba(58, 50, 42, 0.04);
    --wnl-rule-argb90_60_30-060: rgba(58, 50, 42, 0.045);
    --wnl-rule-argb90_60_30-070: rgba(58, 50, 42, 0.05);
    --wnl-rule-argb90_60_30-080: rgba(58, 50, 42, 0.058);
    --wnl-rule-argb90_60_30-120: rgba(54, 48, 42, 0.08);
    --wnl-rule-argb90_60_30-140: rgba(54, 48, 42, 0.09);
    --wnl-rule-argb90_60_30-160: rgba(54, 48, 42, 0.1);
    --wnl-rule-argb90_60_30-180: rgba(52, 46, 40, 0.11);
}

html[data-theme="light"] {
    color-scheme: light;
}

html[data-theme="dark"] .breadcrumb-container,
html[data-theme="dark"] .breadcrumb-container--festivals {
    box-shadow: none;
}

html[data-theme="dark"] .site-footer {
    box-shadow: none;
}

* {
    box-sizing: border-box;
    /* 全站隐藏滚动条，仍可正常滚动 */
    scrollbar-width: none; /* Firefox */
    -ms-overflow-style: none; /* IE、旧版 Edge */
}

*::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
    background: transparent;
}

html {
    height: 100%;
}

/* 键盘 / 读屏：跳到正文（与 theme/default、theme/SKILL.md 无障碍一致） */
.skip-link {
    position: absolute;
    left: -9999px;
    top: 0;
    z-index: 9999;
    padding: 0.5rem 1rem;
    background: var(--wnl-theme-link);
    color: var(--wnl-theme-surface);
    text-decoration: none;
    border-radius: 0 0 6px 0;
}

.skip-link:focus {
    left: var(--page-gutter-x);
    outline: 2px solid var(--wnl-theme-emphasis);
    outline-offset: 2px;
}

body {
    font-family: var(--font-family-stack);
    font-size: var(--font-size-base);
    color: var(--wnl-theme-fg);
    background-color: var(--wnl-theme-surface);
    line-height: var(--line-height-base);
    margin: 0;
    min-height: 100%;
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
}

/* 主内容区伸展填满视口剩余高度，页脚始终在底部 */
.main-content {
    flex: 1 0 auto;
    padding-left: var(--page-gutter-x);
    padding-right: var(--page-gutter-x);
}

a { color: var(--wnl-theme-link); text-decoration: none; }
a:hover { text-decoration: none; }

/* 全站主宽：宽屏铺满视口，不限制 max-width；左右留白用 --page-gutter-x 写在 header/main/footer 等外层 */
.container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0;
}
