/* =====================================================================
   한올 (Hanall) — Design Tokens  · SSOT for color, type, spacing, radii
   가이드 §5.0 기반: Primary=딥 인디고(신뢰), 상태색 중심, Pretendard
   토큰만 고치면 3개 서비스(Buyer/Seller/Admin) 전체에 반영됩니다.
   ===================================================================== */

/*
 * [CHINA-CLEAN: 프로덕션 전환 필수]
 * 아래 @font-face 블록은 자리표시자다(현재 주석 처리 → 브라우저 기본 폰트 폴백, 렌더 차단 없음).
 * GFW는 차단 도메인(fonts.googleapis.com·cdn.jsdelivr.net)으로의 동기 @import를 타임아웃 블로킹한다.
 * 프로덕션 빌드 시:
 *   1. Pretendard woff2 subset → /fonts/pretendard/ 셀프호스팅 (SIL OFL · github.com/orioncactus/pretendard)
 *   2. Noto Sans SC woff2 subset(unicode-range CJK + font-display:swap) → /fonts/noto-sans-sc/ (OFL)
 * 스택 확정 후 → scripts/china-clean-check 린트 게이트로 @import cdn 도메인 자동 차단.
 */
/* TODO-PROD: 아래 @font-face 주석 해제 + 실제 woff2 경로 교체
@font-face { font-family:"Pretendard"; font-weight:400; font-display:swap; src:url("/fonts/pretendard/Pretendard-Regular.subset.woff2") format("woff2"); }
@font-face { font-family:"Pretendard"; font-weight:500; font-display:swap; src:url("/fonts/pretendard/Pretendard-Medium.subset.woff2") format("woff2"); }
@font-face { font-family:"Pretendard"; font-weight:700; font-display:swap; src:url("/fonts/pretendard/Pretendard-Bold.subset.woff2") format("woff2"); }
@font-face { font-family:"Pretendard"; font-weight:800; font-display:swap; src:url("/fonts/pretendard/Pretendard-ExtraBold.subset.woff2") format("woff2"); }
@font-face { font-family:"Noto Sans SC"; font-weight:400; font-display:swap; unicode-range:U+4E00-9FFF,U+3400-4DBF,U+F900-FAFF; src:url("/fonts/noto-sans-sc/NotoSansSC-Regular.subset.woff2") format("woff2"); }
@font-face { font-family:"Noto Sans SC"; font-weight:700; font-display:swap; unicode-range:U+4E00-9FFF,U+3400-4DBF,U+F900-FAFF; src:url("/fonts/noto-sans-sc/NotoSansSC-Bold.subset.woff2") format("woff2"); }
*/

:root {
  /* ---- Brand / Primary : 딥 인디고 (신뢰) ---- */
  --primary-50:  #eef0fb;
  --primary-100: #dfe2f8;
  --primary-200: #c2c7f1;
  --primary-300: #9aa1e6;
  --primary-400: #6f76d6;
  --primary-500: #4f53c4;   /* accent */
  --primary-600: #3f3fae;   /* main action */
  --primary-700: #343291;   /* deep indigo */
  --primary-800: #2b2975;
  --primary-900: #21205a;
  --primary: var(--primary-700);
  --primary-ink: #ffffff;

  /* ---- Neutral / Slate scale ---- */
  --n-0:  #ffffff;
  --n-25: #fbfcfe;
  --n-50: #f6f8fb;
  --n-100:#eef1f6;
  --n-150:#e4e8ef;
  --n-200:#d6dce6;
  --n-300:#bcc5d4;
  --n-400:#94a0b4;
  --n-500:#6b7689;
  --n-600:#515c6e;
  --n-700:#3c4658;
  --n-800:#27303f;
  --n-900:#161c28;

  /* ---- Surfaces & text ---- */
  --bg:        var(--n-50);
  --surface:   var(--n-0);
  --surface-2: var(--n-50);
  --surface-3: var(--n-100);
  --border:    var(--n-200);
  --border-strong: var(--n-300);
  --text:      var(--n-900);
  --text-2:    var(--n-600);
  --text-3:    var(--n-500);
  --text-on-primary: #ffffff;

  /* ---- Status colors (이 앱은 상태 중심) ----
     완료/성공=green · 진행중=blue · 대기=amber · 위험/경고=red · 중립=gray  */
  --ok-fg:   #15803d;  --ok-bg:   #e7f6ed;  --ok-border:#bbe7c9;  --ok-solid:#16a34a;
  --info-fg: #1d4ed8;  --info-bg: #e6effd;  --info-border:#bcd4f7; --info-solid:#2563eb;
  --warn-fg: #b45309;  --warn-bg: #fcf2dd;  --warn-border:#f3dca3; --warn-solid:#f59e0b;
  --danger-fg:#c0322b; --danger-bg:#fdeae8; --danger-border:#f6c4bf;--danger-solid:#dc2626;
  --neutral-fg:#475569;--neutral-bg:#eef1f6;--neutral-border:#dbe1ea;--neutral-solid:#64748b;
  --verified-fg:#0f766e; --verified-bg:#dff5f2; --verified-border:#9fe0d8; /* teal = Verified 공장 */

  /* ---- Typography ---- */
  /* Pretendard = 한글/라틴, "Noto Sans SC" = 간체 한자 글리프 폴백(글자단위 자동 적용) */
  --font-sans: "Pretendard Variable", Pretendard, "Noto Sans SC", -apple-system, BlinkMacSystemFont,
               system-ui, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
  --font-num:  "Pretendard Variable", Pretendard, ui-monospace, "SF Mono", sans-serif;

  --fs-display: 30px;
  --fs-h1: 24px;
  --fs-h2: 20px;
  --fs-h3: 17px;
  --fs-body: 15px;
  --fs-sm: 13px;
  --fs-xs: 11.5px;

  /* ---- Radii ---- */
  --r-xs: 6px;
  --r-sm: 9px;
  --r-md: 13px;
  --r-lg: 18px;
  --r-xl: 26px;
  --r-pill: 999px;

  /* ---- Shadow ---- */
  --shadow-xs: 0 1px 2px rgba(22,28,40,.06);
  --shadow-sm: 0 1px 3px rgba(22,28,40,.08), 0 1px 2px rgba(22,28,40,.04);
  --shadow-md: 0 4px 14px rgba(22,28,40,.10), 0 2px 6px rgba(22,28,40,.05);
  --shadow-lg: 0 14px 40px rgba(22,28,40,.16);

  /* ---- Spacing scale ---- */
  --s-1: 4px;  --s-2: 8px;  --s-3: 12px; --s-4: 16px;
  --s-5: 20px; --s-6: 24px; --s-8: 32px; --s-10: 40px; --s-12: 48px;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--font-sans);
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.num { font-family: var(--font-num); font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
