/**
 * 디자인 토큰 + reset.
 *
 * 기존 클라(index.html 9880줄)의 톤을 따름:
 * - 배경 hue: 연한 푸른 회색 (#f5f7fb)
 * - 카드: 흰색 + 둥근 모서리 16px + 옅은 그림자
 * - 일/공휴일: 빨강 #dc2626
 * - 토: 파랑 #2563eb
 * - 폰트: Arial / Apple SD Gothic Neo / Malgun Gothic (기존과 동일)
 */

:root {
  /* 색 */
  --color-bg: #f5f7fb;
  --color-surface: #ffffff;
  --color-line: #d9e0ea;
  --color-line-strong: #d1d5db;
  --color-text: #1f2937;
  --color-text-sub: #6b7280;
  --color-text-muted: #9ca3af;

  --color-primary: #2563eb;
  --color-primary-hover: #1d4ed8;
  --color-primary-soft: #dbeafe;

  --color-success: #16a34a;
  --color-warn: #d97706;
  --color-danger: #dc2626;
  --color-danger-soft: #fee2e2;
  --color-danger-text: #991b1b;
  --color-danger-border: #fecaca;

  --color-sun: #dc2626;
  --color-sat: #2563eb;
  --color-holiday-bg: #fee2e2;
  --color-week-header-bg: #eef2ff;

  --color-env-dev-bg: #fff3e0;
  --color-env-dev-text: #e65100;
  --color-env-prod-bg: #ffebee;
  --color-env-prod-text: #c62828;

  /* 간격 */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;

  /* 폰트 */
  --font-sans: Arial, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, "Menlo", "Consolas", monospace;
  --font-size-xs: 11px;
  --font-size-sm: 12px;
  --font-size-md: 13px;
  --font-size-lg: 14px;
  --font-size-xl: 16px;
  --font-size-2xl: 20px;
  --font-size-3xl: 24px;

  /* 라운드 */
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --radius-pill: 999px;

  /* 그림자 */
  --shadow-card: 0 8px 24px rgba(0, 0, 0, 0.08);
  --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.05);

  /* 트랜지션 */
  --transition-fast: 0.12s ease;
  --transition: 0.18s ease;
}

/* reset */
*, *::before, *::after { box-sizing: border-box; }
html, body {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  background: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-sans);
  font-size: var(--font-size-lg);
  overflow: hidden; /* 캘린더가 100vh 가득 차지하도록 */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body.scroll-allow { overflow: auto; } /* 일부 페이지(허브/검증)에서만 활성화 */

button {
  font-family: inherit;
  font-size: inherit;
  color: inherit;
  cursor: pointer;
}
button:disabled { cursor: not-allowed; opacity: 0.5; }

input, select, textarea {
  font-family: inherit;
  font-size: inherit;
  color: inherit;
}

a { color: var(--color-primary); text-decoration: none; }
a:hover { text-decoration: underline; }

code {
  font-family: var(--font-mono);
  font-size: var(--font-size-md);
  background: var(--color-bg);
  padding: 1px 6px;
  border-radius: var(--radius-sm);
}

.is-hidden { display: none !important; }
.sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
