/* tokens.css: design tokens. Colours follow the brief's token table exactly; light and dark switch
   on prefers-color-scheme only (no toggle, no storage). Contrast ratios are listed in DESIGN.md. */

:root {
  color-scheme: light dark;

  /* Colour: light (paper and ledger ink) */
  --paper: #F6F8F5;        /* page background, cool green-grey, never cream */
  --sheet: #FFFFFF;        /* raised paper: documents, tables, plan cards */
  --ink: #15201B;          /* text */
  --ink-2: #3A4842;        /* secondary text */
  --muted: #5C6B64;        /* captions; 5.25:1 on paper, 5.61:1 on sheet */
  --rule: #D3DFD7;         /* ledger ruling: hairlines, table rules (decorative) */
  --rule-strong: #7A9284;  /* added: rules that carry meaning (결재란 grid, table head); 3.1:1+ */
  --green: #1E5B47;        /* actions, links, live status, focus */
  --green-wash: #E4EFE9;   /* subtle fills */
  --seal: #C3322A;         /* 인주 red: approval semantics ONLY */
  --seal-wash: #FBEAE8;    /* approval-required tags */
  --on-green: #FFFFFF;     /* text on a green button */
  --on-seal: #FFFFFF;
  --shadow-doc: 0 1px 0 rgb(21 32 27 / 0.04), 0 18px 40px -24px rgb(21 32 27 / 0.32);

  /* Type */
  --font-sans: "IBM Plex Sans", "Plex Sans Fallback", "IBM Plex Sans KR", "Apple SD Gothic Neo",
    "Pretendard", "Malgun Gothic", "Noto Sans KR", system-ui, sans-serif;
  --step--1: 0.875rem;     /* 14  captions, table notes */
  --step-0: 1rem;          /* 16  body, UI */
  --step-1: 1.125rem;      /* 18  lead, long-form prose */
  --step-2: 1.375rem;      /* 22  h3 */
  --step-3: clamp(1.75rem, 1.45rem + 1vw, 2.25rem);      /* 28 to 36  h2 */
  --step-4: clamp(2.25rem, 1.8rem + 1.6vw, 3rem);        /* 36 to 48  page title (h1) */
  --step-5: clamp(2.5rem, 1.75rem + 2.9vw, 3.75rem);     /* 40 to 60  home display */
  --leading: 1.6;
  --leading-ko: 1.75;
  --leading-tight: 1.15;
  --measure: 68ch;

  /* Space: 4px base */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4rem;
  --space-9: 6rem;
  --section-pad: clamp(3rem, 2rem + 4vw, 6rem);

  /* Layout */
  --max: 70rem;            /* 1120px content measure */
  --gutter: 1.5rem;        /* column gap */
  --side: 1rem;            /* page side gutter on phones; grows on wider screens */
  --header-h: 4.25rem;

  /* Shape and motion */
  --radius: 3px;           /* paper has corners */
  --radius-btn: 4px;
  --rule-w: 1px;
  --focus: 3px solid var(--green);
  --ease-stamp: cubic-bezier(0.2, 0.9, 0.25, 1.15);
}

@media (min-width: 48em) {
  :root { --side: 1.5rem; }
}

@media (prefers-color-scheme: dark) {
  :root {
    --paper: #0E1512;
    --sheet: #141D19;
    --ink: #E5ECE8;
    --ink-2: #B9C6BF;
    --muted: #8FA098;
    --rule: #25332C;
    --rule-strong: #5A7064;
    --green: #6CC09E;
    --green-wash: #16261F;
    --seal: #F0675C;
    --seal-wash: #2A1513;
    --on-green: #0E1512;
    --on-seal: #0E1512;
    --shadow-doc: 0 1px 0 rgb(0 0 0 / 0.3), 0 18px 40px -24px rgb(0 0 0 / 0.7);
  }
}
