/* 且坐设计 token v2。不写 data-theme 时跟随系统；写 data-theme="dark" 或 "light" 时以它为准。light = 晨光，dark = 黄昏。 */
@font-face { font-family: "QZ Rounded"; font-style: normal; font-weight: 300; font-display: swap; src: url("/fonts/QZRounded-Light.woff2") format("woff2"); }
@font-face { font-family: "QZ Rounded"; font-style: normal; font-weight: 400; font-display: swap; src: url("/fonts/QZRounded-Regular.woff2") format("woff2"); }
:root {
  --font-sans: "QZ Rounded", -apple-system, BlinkMacSystemFont, "PingFang SC", "HarmonyOS Sans SC", "MiSans", "Noto Sans CJK SC", "Source Han Sans SC", "Microsoft YaHei", sans-serif;
  --font-numeric: "QZ Rounded", -apple-system, BlinkMacSystemFont, "PingFang SC", "HarmonyOS Sans SC", "MiSans", "Noto Sans CJK SC", "Source Han Sans SC", "Microsoft YaHei", sans-serif;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-14: 56px;
  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 22px;
  --radius-xl: 28px;
  --radius-full: 999px;
  --font-size-100: 12px;
  --font-size-200: 13px;
  --font-size-300: 16px;
  --font-size-input: 16px;
  --font-size-400: 18px;
  --font-size-500: 20px;
  --font-size-600: 24px;
  --font-size-700: 32px;
  --font-size-800: 40px;
  --line-height-tight: 1.35;
  --line-height-normal: 1.65;
  --line-height-relaxed: 1.9;
  --font-weight-light: 300;
  --font-weight-regular: 400;
  --letter-spacing-text: 0.01em;
  --letter-spacing-wide: 0.04em;
  --duration-fast: 120ms;
  --duration-base: 200ms;
  --duration-slow: 320ms;
  --ease-standard: cubic-bezier(0.2, 0, 0, 1);
  --ease-exit: cubic-bezier(0.4, 0, 1, 1);
  --size-tap: 44px;
  --size-control: 52px;
  --size-control-sm: 44px;
  --size-topbar: 64px;
  --size-bottomnav: 60px;
  --size-content-max: 640px;
  --size-sidenav: 220px;
  --z-sticky: 10;
  --z-overlay: 30;
  --z-toast: 40;
  --color-bg-page: #f8f3ea;
  --color-bg-surface: #fdfaf3;
  --color-bg-sunken: #efe9dc;
  --color-bg-raised: #fffdf8;
  --color-bg-pressed: #e8e0d0;
  --color-veil: rgba(248, 243, 234, 0.84);
  --color-veil-end: rgba(248, 243, 234, 0);
  --color-glow: rgba(240, 180, 104, 0.24);
  --color-glow-mid: rgba(240, 180, 104, 0.1);
  --color-glow-end: rgba(240, 180, 104, 0);
  --color-text-primary: #2a2820;
  --color-text-secondary: #575346;
  --color-text-tertiary: #696455;
  --color-text-disabled: #8f8a7a;
  --color-border: #e2dac9;
  --color-border-strong: #807a67;
  --color-focus: #1f5c8a;
  --color-brand: #2D5A50;
  --color-brand-pressed: #234a43;
  --color-on-brand: #fdfaf3;
  --color-brand-soft: #e0e9df;
  --color-on-brand-soft: #1f403a;
  --color-tea: #7c5926;
  --color-mark: #2D5A50;
  --mark-green: #2D5A50;
  --mark-rice: #F6F0E6;
  --mark-night: #1C1C1A;
  --color-danger: #a23b2c;
  --color-danger-pressed: #83301f;
  --color-on-danger: #fdfaf3;
  --color-danger-soft: #f8e5df;
  --color-on-danger-soft: #7f2c1e;
  --color-success: #1f6a4f;
  --color-success-soft: #e0eee3;
  --color-on-success-soft: #17523d;
  --color-info-soft: #e6eaea;
  --color-on-info-soft: #2f4452;
  --color-alert: #8a4f0e;
  --color-alert-soft: #fbe6bf;
  --color-on-alert-soft: #57320a;
  --color-scrim: rgba(42, 40, 32, 0.42);
  --color-toast: #2f2d25;
  --color-on-toast: #f8f3ea;
  --preset-1-brand: #2D5A50;
  --preset-1-brand-pressed: #234a43;
  --preset-1-on-brand: #fdfaf3;
  --preset-1-brand-soft: #e0e9df;
  --preset-1-on-brand-soft: #1f403a;
  --preset-2-brand: #36587a;
  --preset-2-brand-pressed: #2a4663;
  --preset-2-on-brand: #fdfaf3;
  --preset-2-brand-soft: #e2e8ea;
  --preset-2-on-brand-soft: #26405a;
  --preset-3-brand: #635478;
  --preset-3-brand-pressed: #4f4262;
  --preset-3-on-brand: #fdfaf3;
  --preset-3-brand-soft: #eae4ea;
  --preset-3-on-brand-soft: #483c59;
  --preset-4-brand: #77562b;
  --preset-4-brand-pressed: #5f4420;
  --preset-4-on-brand: #fdfaf3;
  --preset-4-brand-soft: #f0e6d2;
  --preset-4-on-brand-soft: #573f1f;
  --preset-5-brand: #8f472f;
  --preset-5-brand-pressed: #733724;
  --preset-5-on-brand: #fdfaf3;
  --preset-5-brand-soft: #f5e2d7;
  --preset-5-on-brand-soft: #6b3323;
  --preset-6-brand: #4c6430;
  --preset-6-brand-pressed: #3b4f25;
  --preset-6-on-brand: #fdfaf3;
  --preset-6-brand-soft: #e7ecd6;
  --preset-6-on-brand-soft: #384b23;
  --shadow-sm: 0 1px 2px rgba(27, 34, 32, 0.06);
  --shadow-md: 0 -4px 24px rgba(27, 34, 32, 0.1);
  --shadow-lg: 0 12px 40px rgba(27, 34, 32, 0.16);
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --color-bg-page: #191a16;
    --color-bg-surface: #22231d;
    --color-bg-sunken: #131410;
    --color-bg-raised: #2a2b24;
    --color-bg-pressed: #34352c;
    --color-veil: rgba(25, 26, 22, 0.84);
    --color-veil-end: rgba(25, 26, 22, 0);
    --color-glow: rgba(198, 134, 62, 0.24);
    --color-glow-mid: rgba(198, 134, 62, 0.1);
    --color-glow-end: rgba(198, 134, 62, 0);
    --color-text-primary: #ece6d8;
    --color-text-secondary: #bab4a4;
    --color-text-tertiary: #aaa494;
    --color-text-disabled: #736e62;
    --color-border: #35362d;
    --color-border-strong: #8c8876;
    --color-focus: #93c5e8;
    --color-brand: #9cc8b8;
    --color-brand-pressed: #b6dacb;
    --color-on-brand: #16211c;
    --color-brand-soft: #2a3a33;
    --color-on-brand-soft: #c9e3d8;
    --color-tea: #d8b27c;
    --color-mark: #F6F0E6;
    --color-danger: #eea392;
    --color-danger-pressed: #f5bfb2;
    --color-on-danger: #3a130c;
    --color-danger-soft: #3d2420;
    --color-on-danger-soft: #f6c9be;
    --color-success: #8fcfae;
    --color-success-soft: #24352a;
    --color-on-success-soft: #bce5cf;
    --color-info-soft: #2a3035;
    --color-on-info-soft: #c8d7e2;
    --color-alert: #f0b862;
    --color-alert-soft: #3e2c10;
    --color-on-alert-soft: #fae0b4;
    --color-scrim: rgba(10, 10, 6, 0.62);
    --color-toast: #ece6d8;
    --color-on-toast: #23241d;
    --preset-1-brand: #9cc8b8;
    --preset-1-brand-pressed: #b6dacb;
    --preset-1-on-brand: #16211c;
    --preset-1-brand-soft: #2a3a33;
    --preset-1-on-brand-soft: #c9e3d8;
    --preset-2-brand: #a3c1dc;
    --preset-2-brand-pressed: #bdd4e8;
    --preset-2-on-brand: #141e28;
    --preset-2-brand-soft: #2b3339;
    --preset-2-on-brand-soft: #cddde9;
    --preset-3-brand: #c3b5d4;
    --preset-3-brand-pressed: #d6cbe2;
    --preset-3-on-brand: #1f1a27;
    --preset-3-brand-soft: #322d38;
    --preset-3-on-brand-soft: #dcd3e6;
    --preset-4-brand: #dab98a;
    --preset-4-brand-pressed: #e8cfa9;
    --preset-4-on-brand: #261c0d;
    --preset-4-brand-soft: #3a3021;
    --preset-4-on-brand-soft: #ecdabb;
    --preset-5-brand: #ecab90;
    --preset-5-brand-pressed: #f4c5b1;
    --preset-5-on-brand: #2f140b;
    --preset-5-brand-soft: #40291f;
    --preset-5-on-brand-soft: #f5cfc0;
    --preset-6-brand: #bad095;
    --preset-6-brand-pressed: #cfe0b2;
    --preset-6-on-brand: #1b2411;
    --preset-6-brand-soft: #2f3622;
    --preset-6-on-brand-soft: #d8e6c0;
    --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
    --shadow-md: 0 -4px 24px rgba(0, 0, 0, 0.5);
    --shadow-lg: 0 12px 40px rgba(0, 0, 0, 0.6);
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --color-bg-page: #191a16;
  --color-bg-surface: #22231d;
  --color-bg-sunken: #131410;
  --color-bg-raised: #2a2b24;
  --color-bg-pressed: #34352c;
  --color-veil: rgba(25, 26, 22, 0.84);
  --color-veil-end: rgba(25, 26, 22, 0);
  --color-glow: rgba(198, 134, 62, 0.24);
  --color-glow-mid: rgba(198, 134, 62, 0.1);
  --color-glow-end: rgba(198, 134, 62, 0);
  --color-text-primary: #ece6d8;
  --color-text-secondary: #bab4a4;
  --color-text-tertiary: #aaa494;
  --color-text-disabled: #736e62;
  --color-border: #35362d;
  --color-border-strong: #8c8876;
  --color-focus: #93c5e8;
  --color-brand: #9cc8b8;
  --color-brand-pressed: #b6dacb;
  --color-on-brand: #16211c;
  --color-brand-soft: #2a3a33;
  --color-on-brand-soft: #c9e3d8;
  --color-tea: #d8b27c;
  --color-mark: #F6F0E6;
  --color-danger: #eea392;
  --color-danger-pressed: #f5bfb2;
  --color-on-danger: #3a130c;
  --color-danger-soft: #3d2420;
  --color-on-danger-soft: #f6c9be;
  --color-success: #8fcfae;
  --color-success-soft: #24352a;
  --color-on-success-soft: #bce5cf;
  --color-info-soft: #2a3035;
  --color-on-info-soft: #c8d7e2;
  --color-alert: #f0b862;
  --color-alert-soft: #3e2c10;
  --color-on-alert-soft: #fae0b4;
  --color-scrim: rgba(10, 10, 6, 0.62);
  --color-toast: #ece6d8;
  --color-on-toast: #23241d;
  --preset-1-brand: #9cc8b8;
  --preset-1-brand-pressed: #b6dacb;
  --preset-1-on-brand: #16211c;
  --preset-1-brand-soft: #2a3a33;
  --preset-1-on-brand-soft: #c9e3d8;
  --preset-2-brand: #a3c1dc;
  --preset-2-brand-pressed: #bdd4e8;
  --preset-2-on-brand: #141e28;
  --preset-2-brand-soft: #2b3339;
  --preset-2-on-brand-soft: #cddde9;
  --preset-3-brand: #c3b5d4;
  --preset-3-brand-pressed: #d6cbe2;
  --preset-3-on-brand: #1f1a27;
  --preset-3-brand-soft: #322d38;
  --preset-3-on-brand-soft: #dcd3e6;
  --preset-4-brand: #dab98a;
  --preset-4-brand-pressed: #e8cfa9;
  --preset-4-on-brand: #261c0d;
  --preset-4-brand-soft: #3a3021;
  --preset-4-on-brand-soft: #ecdabb;
  --preset-5-brand: #ecab90;
  --preset-5-brand-pressed: #f4c5b1;
  --preset-5-on-brand: #2f140b;
  --preset-5-brand-soft: #40291f;
  --preset-5-on-brand-soft: #f5cfc0;
  --preset-6-brand: #bad095;
  --preset-6-brand-pressed: #cfe0b2;
  --preset-6-on-brand: #1b2411;
  --preset-6-brand-soft: #2f3622;
  --preset-6-on-brand-soft: #d8e6c0;
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
  --shadow-md: 0 -4px 24px rgba(0, 0, 0, 0.5);
  --shadow-lg: 0 12px 40px rgba(0, 0, 0, 0.6);
  color-scheme: dark;
}
