:root {
  color-scheme: light;
  --font-sans: Pretendard, "Noto Sans KR", "Malgun Gothic", system-ui, sans-serif;
  --color-primary: #0f5f8f;
  --color-primary-hover: #0b4c73;
  --color-primary-soft: #e8f3f8;
  --color-ink: #17212b;
  --color-muted: #536579;
  --color-canvas: #f4f6f8;
  --color-surface: #fff;
  --color-surface-soft: #eef2f5;
  --color-border: #d5dde5;
  --color-border-strong: #aab8c6;
  --color-success: #147a43;
  --color-success-soft: #e8f6ee;
  --color-warning: #8a5b00;
  --color-warning-soft: #fff4d6;
  --color-danger: #b42318;
  --color-danger-soft: #fff0ee;
  --color-focus: #1478b8;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-6: 24px;
  --space-8: 32px;
  --space-12: 48px;
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --control-height: 44px;
  --shadow-card: 0 2px 8px rgb(23 33 43 / 7%);
  --qty-seven-head: #b9dcef;
  --qty-seven-cell: #edf7fc;
  --qty-eight-head: #f3d48a;
  --qty-eight-cell: #fff8e5;
  --qty-nine-head: #b9dfc4;
  --qty-nine-cell: #eef8f1;
  --qty-ten-head: #e4bfd0;
  --qty-ten-cell: #faeef4;
  --qty-buffet-head: #cfc5e8;
  --qty-buffet-cell: #f3f0fa;
  --qty-rice-head: #f4c89e;
  --qty-rice-cell: #fff2e6;
  --qty-side-head: #c4d3e2;
  --qty-side-cell: #eff4f8;
}

* { box-sizing: border-box; }
html { font-family: var(--font-sans); color: var(--color-ink); background: var(--color-canvas); }
body { margin: 0; line-height: 1.5; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { min-height: var(--control-height); font: inherit; }
button, a, input, select, textarea { transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease, color .18s ease; }
button:disabled { cursor: wait; opacity: .72; }
:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 2px; }
input[aria-invalid="true"], select[aria-invalid="true"], textarea[aria-invalid="true"] {
  border-color: var(--color-danger) !important;
  box-shadow: 0 0 0 2px var(--color-danger-soft);
}
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.skip-link { position: fixed; z-index: 9999; top: var(--space-2); left: var(--space-2); padding: var(--space-3) var(--space-4); background: var(--color-ink); color: white; border-radius: var(--radius-sm); transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }
.required-mark { color: var(--color-danger); }
.field-error { display: block; margin-top: var(--space-1); color: var(--color-danger); font-size: 13px; font-weight: 700; }

@media (max-width: 720px) { :root { --control-height: 48px; } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
