/* Cally — generated from tokens.json */
:root, [data-theme="light"] {
  --bg: #f8fafc;
  --surface: #ffffff;
  --line: #e2e8f0;
  --line-strong: #7c8aa0;
  --text: #0f172a;
  --muted: #64748b;
  --primary: #4f46e5;
  --on-primary: #ffffff;
  --best: #eef2ff;
  --yes: #16a34a;
  --on-yes: #ffffff;
  --yes-soft: #dcfce7;
  --yes-ink: #15803d;
  --ifneedbe: #f59e0b;
  --on-ifneedbe: #0f172a;
  --ifneedbe-soft: #fef3c7;
  --ifneedbe-ink: #b45309;
  --no: #9ca3af;
  --on-no: #0f172a;
  --no-soft: #f1f5f9;
  --no-ink: #4b5563;
  --danger: #dc2626;
  --danger-soft: #fee2e2;
  --holiday: var(--danger);
  --shadow-dialog: 0 2px 6px #0f172a14, 0 12px 32px #0f172a1f;
  --shadow-sticky: 0 -1px 0 #e2e8f0, 0 -4px 12px #0f172a0f;
  --focus-ring: 0 0 0 2px #ffffff, 0 0 0 4px #4f46e5;
}
[data-theme="dark"] {
  --bg: #0f172a;
  --surface: #1e293b;
  --line: #334155;
  --line-strong: #71819a;
  --text: #f1f5f9;
  --muted: #94a3b8;
  --primary: #818cf8;
  --on-primary: #0f172a;
  --best: #1e1b4b;
  --yes: #22c55e;
  --on-yes: #0f172a;
  --yes-soft: #052e16;
  --yes-ink: #4ade80;
  --ifneedbe: #fbbf24;
  --on-ifneedbe: #0f172a;
  --ifneedbe-soft: #451a03;
  --ifneedbe-ink: #fcd34d;
  --no: #6b7280;
  --on-no: #ffffff;
  --no-soft: #1f2937;
  --no-ink: #d1d5db;
  --danger: #f87171;
  --danger-soft: #450a0a;
  --holiday: var(--danger);
  --shadow-dialog: 0 12px 32px #000000a6;
  --shadow-sticky: 0 -1px 0 #334155, 0 -4px 12px #00000059;
  --focus-ring: 0 0 0 2px #1e293b, 0 0 0 4px #818cf8;
}
:root {
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-6: 24px;
  --space-8: 32px;
  --radius: 8px;
  --radius-chip: 999px;
  --touch-target: 44px;
  --control-height: 44px;
  --font-sans: "IBM Plex Sans Thai", "Noto Sans Thai", system-ui, sans-serif;
}
@font-face { font-family: "IBM Plex Sans Thai"; src: url("fonts/IBMPlexSansThai-Regular.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "IBM Plex Sans Thai"; src: url("fonts/IBMPlexSansThai-Medium.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "IBM Plex Sans Thai"; src: url("fonts/IBMPlexSansThai-SemiBold.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "IBM Plex Sans Thai"; src: url("fonts/IBMPlexSansThai-Bold.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
