/* HoedokLoop semantic token SSOT. UI code consumes roles, never raw palette values. */
:root {
  color-scheme: light;

  --color-paper: #f4f4f2;
  --color-paper-muted: #e9eae8;
  --color-paper-raised: #ffffff;
  --color-ink: #2b2f2d;
  --color-ink-soft: #5d6460;
  --color-line: #748775;
  --color-line-strong: #5b6d5c;
  --color-marker: #d5b84c;
  --color-marker-soft: #f6edb8;
  --color-sprout: #4a504c;
  --color-sprout-soft: #e3e6e3;
  --color-primary: #344d3a;
  --color-action-ink: #344d3a;
  --color-on-primary: #ffffff;
  --color-primary-border: #344d3a;
  --color-primary-hover: #2b4131;
  --color-primary-pressed: #223329;
  --color-primary-soft: #d9e9d5;
  --color-focus: #1f5b34;

  --color-success: #4a504c;
  --color-success-soft: #e3e6e3;
  --color-warning: #8a5200;
  --color-warning-soft: #fff0d5;
  --color-danger: #a52f36;
  --color-danger-soft: #fde8e8;
  --color-info: #245f9e;
  --color-info-soft: #e5f0fb;
  --color-overlay: rgb(38 50 41 / 48%);

  --font-sans:
    'Pretendard Variable', Pretendard, -apple-system, BlinkMacSystemFont, 'Apple SD Gothic Neo',
    'Noto Sans KR', sans-serif;
  --font-weight-regular: 400;
  --font-weight-medium: 550;
  --font-weight-semibold: 650;
  --font-weight-bold: 750;
  --text-xs: 0.75rem;
  --text-sm: 0.875rem;
  --text-base: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.375rem;
  --text-2xl: 1.75rem;
  --text-3xl: clamp(2rem, 7vw, 2.75rem);
  --leading-tight: 1.25;
  --leading-body: 1.55;
  --leading-number: 1.15;

  --space-0-5: 0.125rem;
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;

  --radius-sm: 0.5rem;
  --radius-md: 0.75rem;
  --radius-lg: 1rem;
  --radius-xl: 1.5rem;
  --radius-pill: 999px;
  --shadow-card: 0 1px 3px rgb(38 50 41 / 8%), 0 8px 24px rgb(38 50 41 / 4%);
  --shadow-floating: 0 16px 48px rgb(38 50 41 / 16%);

  --touch-min: 2.75rem;
  --content-max: 43rem;
  --duration-fast: 120ms;
  --duration-emphasis: 200ms;
  --ease-standard: cubic-bezier(0.2, 0, 0, 1);
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-right: env(safe-area-inset-right, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --safe-left: env(safe-area-inset-left, 0px);
}

[data-theme='dark'] {
  color-scheme: dark;
  --color-paper: #161817;
  --color-paper-muted: #202322;
  --color-paper-raised: #272a29;
  --color-ink: #ecefed;
  --color-ink-soft: #b9c0bc;
  --color-line: #4b5c4a;
  --color-line-strong: #82957e;
  --color-marker: #c9ae43;
  --color-marker-soft: #4d4420;
  --color-sprout: #c9cecb;
  --color-sprout-soft: #303532;
  --color-primary: #2f4b37;
  --color-action-ink: #b8d2be;
  --color-on-primary: #f2f5f3;
  --color-primary-border: #7d9c82;
  --color-primary-hover: #385841;
  --color-primary-pressed: #3d6047;
  --color-primary-soft: #26392c;
  --color-focus: #d0edc1;
  --color-success: #c9cecb;
  --color-success-soft: #303532;
  --color-warning: #ffc36f;
  --color-warning-soft: #49351c;
  --color-danger: #ff9ba0;
  --color-danger-soft: #4d252a;
  --color-info: #9bc9f6;
  --color-info-soft: #213851;
  --color-overlay: rgb(8 17 9 / 68%);
  --shadow-card: 0 1px 3px rgb(0 0 0 / 35%), 0 8px 24px rgb(0 0 0 / 18%);
  --shadow-floating: 0 16px 48px rgb(0 0 0 / 44%);
}

@media (prefers-contrast: more) {
  :root {
    --color-line: #646a74;
    --color-line-strong: #343a46;
    --color-focus: #0047b3;
  }

  [data-theme='dark'] {
    --color-line: #aab2c2;
    --color-line-strong: #d9deea;
    --color-focus: #c5d4ff;
  }
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --duration-fast: 0ms;
    --duration-emphasis: 0ms;
  }
}

body{margin:0;background:#dde5da;color:#233829;font:16px/1.7 "Pretendard Variable",Pretendard,system-ui,sans-serif}main{max-width:800px;margin:auto;padding:24px 20px 100px}h1{font-size:clamp(1.7rem,5vw,2.5rem);line-height:1.35}a{color:#344d3a}a.primary{display:block;background:#344d3a;color:white;padding:14px;text-align:center;border-radius:12px;margin:20px 0;font-weight:700}table{width:100%;border-collapse:collapse;background:#edf2e9}td,th{text-align:left;padding:10px;border-bottom:1px solid #bbc8b7}select{width:100%;min-height:48px;font:inherit;padding:8px}section{padding:18px 0}small{display:block}p,td{overflow-wrap:anywhere}.notice{border-left:5px solid #d5b84c;padding:12px}footer{margin-top:36px;display:flex;gap:16px}.table-scroll{overflow:auto}strong[data-dday]{font-size:2rem;font-variant-numeric:tabular-nums}