/* ============================================================
   FNA Smart HACCP Design Tokens v1.2.0 — 생성 파일. 직접 수정 금지.
   원본: tokens.json  ·  재생성: node build.js
   테마: 3상태 — 속성 없음(OS 설정 따름) / data-theme="light" / data-theme="dark"  ·  큰글씨: data-scale="large"
   ============================================================ */
:root{
  color-scheme:light;
  --fna-scale:1;
  /* 색 (light) — chart-* / table-* 포함 */
  --fna-brand-navy:#1b284f;
  --fna-brand-ink:var(--fna-brand-navy);
  --fna-brand-accent:#dc2626;
  --fna-primary:#003d9b;
  --fna-primary-dark:#002b70;
  --fna-primary-container:#dae2ff;
  --fna-primary-on:#ffffff;
  --fna-primary-on-container:#003d9b;
  --fna-primary-inverse:#b2c5ff;
  --fna-secondary:#335e9e;
  --fna-bg:#f4f6fb;
  --fna-surface:#ffffff;
  --fna-surface-low:#f7f9fe;
  --fna-surface-container:#eef1f9;
  --fna-surface-high:#e2e8f7;
  --fna-surface-highest:#d7e2ff;
  --fna-surface-variant:#e8edff;
  --fna-text:#1a2340;
  --fna-text-secondary:#434c66;
  --fna-text-muted:#5f6a86;
  --fna-text-inverse:#ffffff;
  --fna-text-placeholder:#8b94ad;
  --fna-border:#dde3ef;
  --fna-border-strong:#c3c6d6;
  --fna-border-outline:#737685;
  --fna-success:#059669;
  --fna-success-text:#166534;
  --fna-success-container:#d1fae5;
  --fna-success-on-container:#166534;
  --fna-warning:#d97706;
  --fna-warning-text:#b45309;
  --fna-warning-container:#fef3c7;
  --fna-warning-on-container:#92400e;
  --fna-danger:#dc2626;
  --fna-danger-text:#b91c1c;
  --fna-danger-container:#fee2e2;
  --fna-danger-on-container:#991b1b;
  --fna-error:#ba1a1a;
  --fna-error-text:#ba1a1a;
  --fna-error-container:#ffdad6;
  --fna-error-on-container:#93000a;
  --fna-review:#7c3aed;
  --fna-review-text:#6d28d9;
  --fna-review-container:#ede9fe;
  --fna-review-on-container:#5b21b6;
  --fna-info:#003d9b;
  --fna-info-text:#003d9b;
  --fna-info-container:#dae2ff;
  --fna-info-on-container:#003d9b;
  --fna-neutral:#8791a9;
  --fna-neutral-text:#5f6a86;
  --fna-neutral-container:#f2f3f7;
  --fna-neutral-on-container:#434c66;
  --fna-side-bg:#1b284f;
  --fna-side-surface:#16213f;
  --fna-side-line:#33457a;
  --fna-side-hover:#263660;
  --fna-side-text:#dbe2f7;
  --fna-side-muted:#b4c0e4;
  --fna-side-active:#003d9b;
  --fna-side-active-text:#ffffff;
  --fna-side-alarm:#ff8a80;
  --fna-side-caution:#ffd54f;
  --fna-side-info:#8ab4ff;
  --fna-side-review:#c4b5fd;
  --fna-side-ok:#6ee7b7;
  --fna-side-strong:#ffffff;
  --fna-overlay:rgba(10,16,40,.55);
  --fna-focus:#003d9b;
  --fna-chart-series-1:#2a78d6;
  --fna-chart-series-2:#eb6834;
  --fna-chart-series-3:#1baf7a;
  --fna-chart-series-4:#eda100;
  --fna-chart-series-5:#e87ba4;
  --fna-chart-series-6:#008300;
  --fna-chart-series-7:#4a3aa7;
  --fna-chart-series-8:#e34948;
  --fna-chart-seq-100:#cde2fb;
  --fna-chart-seq-200:#9ec5f4;
  --fna-chart-seq-300:#6da7ec;
  --fna-chart-seq-400:#3987e5;
  --fna-chart-seq-500:#256abf;
  --fna-chart-seq-600:#184f95;
  --fna-chart-seq-700:#0d366b;
  --fna-chart-div-neg-4:#1c5cab;
  --fna-chart-div-neg-3:#2a78d6;
  --fna-chart-div-neg-2:#6da7ec;
  --fna-chart-div-neg-1:#b7d3f6;
  --fna-chart-div-mid:#e9ecf2;
  --fna-chart-div-pos-1:#f7c5c4;
  --fna-chart-div-pos-2:#ee8f8e;
  --fna-chart-div-pos-3:#e34948;
  --fna-chart-div-pos-4:#b8302f;
  --fna-chart-status-ok:var(--fna-success);
  --fna-chart-status-caution:var(--fna-warning);
  --fna-chart-status-alarm:var(--fna-danger-text);
  --fna-chart-status-nonconform:var(--fna-error);
  --fna-chart-status-review:var(--fna-review);
  --fna-chart-status-info:var(--fna-primary);
  --fna-chart-status-off:var(--fna-neutral);
  --fna-chart-approval-none:var(--fna-border-strong);
  --fna-chart-approval-draft:var(--fna-neutral);
  --fna-chart-approval-review-requested:var(--fna-warning);
  --fna-chart-approval-reviewed:var(--fna-review);
  --fna-chart-approval-approved:var(--fna-success);
  --fna-chart-approval-rejected:var(--fna-error);
  --fna-chart-grid:#e6e9f1;
  --fna-chart-axis:var(--fna-border-strong);
  --fna-chart-tick:var(--fna-text-muted);
  --fna-chart-label:var(--fna-text-secondary);
  --fna-chart-legend:var(--fna-text-secondary);
  --fna-chart-tooltip-bg:var(--fna-text);
  --fna-chart-tooltip-text:var(--fna-text-inverse);
  --fna-chart-crosshair:var(--fna-border-outline);
  --fna-chart-band:rgba(217,119,6,.14);
  --fna-chart-band-line:var(--fna-warning);
  --fna-chart-deviation:rgba(220,38,38,.14);
  --fna-chart-deviation-line:var(--fna-danger);
  --fna-chart-muted:#b8bfd0;
  --fna-chart-empty:var(--fna-text-muted);
  --fna-table-header:var(--fna-surface-low);
  --fna-table-stripe:var(--fna-surface-low);
  --fna-table-hover:var(--fna-surface-container);
  --fna-table-selected:var(--fna-primary-container);
  --fna-table-nonconform:var(--fna-error-container);
  --fna-table-caution:color-mix(in srgb, var(--fna-warning) 14%, var(--fna-surface));
  --fna-table-off:var(--fna-neutral-container);
  --fna-table-border:var(--fna-border);
  --fna-table-sort:var(--fna-text-muted);
  --fna-table-sort-active:var(--fna-primary);
  --fna-table-unit:var(--fna-text-muted);
  --fna-toast-bg:var(--fna-text);
  --fna-toast-text:var(--fna-text-inverse);
  --fna-toast-success-bg:var(--fna-success-text);
  --fna-toast-success-text:var(--fna-text-inverse);
  --fna-toast-error-bg:var(--fna-error);
  --fna-toast-error-text:var(--fna-text-inverse);
  --fna-toast-info-bg:var(--fna-primary);
  --fna-toast-info-text:var(--fna-primary-on);
  --fna-print-paper:#ffffff;
  --fna-print-ink:#111827;
  --fna-print-secondary:#374151;
  --fna-print-muted:#6b7280;
  --fna-print-line:#9ca3af;
  --fna-print-line-soft:#d1d5db;
  --fna-print-head-bg:#eef1f9;
  --fna-print-dev:#ffdad6;
  --fna-print-navy:#1b284f;
  --fna-print-accent:#003d9b;
  /* 차트 마크 상수 */
  --fna-chart-area-opacity:0.1;--fna-chart-line-width:2px;--fna-chart-marker-r:4px;--fna-chart-bar-max:24px;--fna-chart-gap:2px;
  /* 글꼴 */
  --fna-font-family:'Pretendard Variable', Pretendard, 'Noto Sans KR', 'Malgun Gothic', 'Apple SD Gothic Neo', -apple-system, BlinkMacSystemFont, sans-serif;
  --fna-font-family-mono:ui-monospace, Consolas, 'D2Coding', monospace;
  --fna-font-size-xs:calc(11px * var(--fna-scale));
  --fna-font-size-sm:calc(12px * var(--fna-scale));
  --fna-font-size-md:calc(13px * var(--fna-scale));
  --fna-font-size-base:calc(14px * var(--fna-scale));
  --fna-font-size-lg:calc(15px * var(--fna-scale));
  --fna-font-size-xl:calc(17px * var(--fna-scale));
  --fna-font-size-2xl:calc(20px * var(--fna-scale));
  --fna-font-size-3xl:calc(24px * var(--fna-scale));
  --fna-font-size-4xl:calc(28px * var(--fna-scale));
  --fna-font-size-metric:calc(36px * var(--fna-scale));
  --fna-font-weight-regular:400;
  --fna-font-weight-medium:500;
  --fna-font-weight-semibold:600;
  --fna-font-weight-bold:700;
  --fna-font-weight-extrabold:800;
  --fna-font-weight-black:900;
  --fna-line-height-tight:1.2;
  --fna-line-height-normal:1.45;
  --fna-line-height-relaxed:1.7;
  /* 간격 · 라운드 · 그림자 · 크기 · z-index */
  --fna-space-xs:4px;
  --fna-space-sm:8px;
  --fna-space-md:12px;
  --fna-space-lg:16px;
  --fna-space-xl:20px;
  --fna-space-xxl:24px;
  --fna-space-xxxl:32px;
  --fna-radius-xs:4px;
  --fna-radius-sm:8px;
  --fna-radius-md:12px;
  --fna-radius-lg:16px;
  --fna-radius-xl:20px;
  --fna-radius-xxl:24px;
  --fna-radius-pill:999px;
  --fna-shadow-card:0 4px 14px rgba(13,63,165,.05);
  --fna-shadow-raised:0 8px 20px rgba(13,63,165,.08);
  --fna-shadow-popover:0 8px 24px rgba(16,28,64,.14);
  --fna-shadow-modal:0 14px 40px rgba(0,0,0,.25);
  --fna-shadow-toast:0 8px 24px rgba(0,0,0,.2);
  --fna-size-control-sm:32px;
  --fna-size-control-md:40px;
  --fna-size-control-lg:48px;
  --fna-size-touch-min:44px;
  --fna-size-touch-senior:64px;
  --fna-size-sidebar-width:244px;
  --fna-size-sidebar-rail:66px;
  --fna-size-topbar-height:56px;
  --fna-size-modal-width:520px;
  --fna-size-modal-radius:16px;
  --fna-size-modal-title:17px;
  --fna-size-modal-body:13px;
  --fna-size-modal-button:40px;
  --fna-size-modal-large-title:24px;
  --fna-size-modal-large-body:20px;
  --fna-size-modal-large-button:64px;
  --fna-size-modal-large-pad:24px;
  --fna-size-modal-large-choice:72px;
  --fna-size-appbar-height:56px;
  --fna-size-appbar-large-height:64px;
  --fna-size-appbar-icon:24px;
  --fna-size-appbar-touch:44px;
  --fna-size-drawer-width:300px;
  --fna-z-sidebar:30;
  --fna-z-topbar:10;
  --fna-z-popover:40;
  --fna-z-modal:70;
  --fna-z-toast:99;
  /* 브레이크포인트 — @media 안에서는 var() 를 못 쓰므로 참고용 값. 실제 쿼리는 아래 주석 참조 */
  --fna-bp-phone:600px;
  --fna-bp-tablet:600px;
  --fna-bp-tablet-large:840px;
  --fna-bp-split-view:900px;
  --fna-bp-desktop:1024px;
  --fna-bp-content-max-width:720px;
  --fna-bp-wide-max-width:1100px;
  --fna-bp-master-pane-width:380px;
}
/* @media (max-width:599px)  → 폰 */
/* @media (min-width:600px) and (max-width:1023px) → 태블릿 */
/* @media (min-width:1024px) → 데스크톱 */

/* 다크 테마 ① OS 설정이 다크이고 페이지가 명시적으로 light 를 고르지 않았을 때 */
@media (prefers-color-scheme: dark){
:root:not([data-theme="light"]){
  color-scheme:dark;
  --fna-brand-navy:#1b284f;
  --fna-brand-ink:#b2c5ff;
  --fna-brand-accent:#f87171;
  --fna-primary:#b2c5ff;
  --fna-primary-dark:#8fabff;
  --fna-primary-container:#0f2f6e;
  --fna-primary-on:#002b70;
  --fna-primary-on-container:#dae2ff;
  --fna-primary-inverse:#003d9b;
  --fna-secondary:#9db9e8;
  --fna-bg:#0b1220;
  --fna-surface:#131a2c;
  --fna-surface-low:#101727;
  --fna-surface-container:#1a2238;
  --fna-surface-high:#222c46;
  --fna-surface-highest:#2b3654;
  --fna-surface-variant:#1f2a44;
  --fna-text:#e6eaf5;
  --fna-text-secondary:#c3c9da;
  --fna-text-muted:#9aa4bd;
  --fna-text-inverse:#0b1220;
  --fna-text-placeholder:#6f7a95;
  --fna-border:#2b3654;
  --fna-border-strong:#3d4a6c;
  --fna-border-outline:#8d96ab;
  --fna-success:#34d399;
  --fna-success-text:#6ee7b7;
  --fna-success-container:#064e3b;
  --fna-success-on-container:#a7f3d0;
  --fna-warning:#fbbf24;
  --fna-warning-text:#fcd34d;
  --fna-warning-container:#5b3d0c;
  --fna-warning-on-container:#fde68a;
  --fna-danger:#f87171;
  --fna-danger-text:#fca5a5;
  --fna-danger-container:#7f1d1d;
  --fna-danger-on-container:#fecaca;
  --fna-error:#ffb4ab;
  --fna-error-text:#ffb4ab;
  --fna-error-container:#93000a;
  --fna-error-on-container:#ffdad6;
  --fna-review:#a78bfa;
  --fna-review-text:#c4b5fd;
  --fna-review-container:#4c1d95;
  --fna-review-on-container:#ddd6fe;
  --fna-info:#b2c5ff;
  --fna-info-text:#b2c5ff;
  --fna-info-container:#0f2f6e;
  --fna-info-on-container:#dae2ff;
  --fna-neutral:#6b7590;
  --fna-neutral-text:#9aa4bd;
  --fna-neutral-container:#1f2740;
  --fna-neutral-on-container:#c3c9da;
  --fna-side-bg:#111a36;
  --fna-side-surface:#0d1428;
  --fna-side-line:#2a3a66;
  --fna-side-hover:#1c2848;
  --fna-side-text:#dbe2f7;
  --fna-side-muted:#b4c0e4;
  --fna-side-active:#003d9b;
  --fna-side-active-text:#ffffff;
  --fna-side-alarm:#ff8a80;
  --fna-side-caution:#ffd54f;
  --fna-side-info:#8ab4ff;
  --fna-side-review:#c4b5fd;
  --fna-side-ok:#6ee7b7;
  --fna-side-strong:#ffffff;
  --fna-overlay:rgba(0,0,0,.6);
  --fna-focus:#b2c5ff;
  --fna-chart-series-1:#3987e5;
  --fna-chart-series-2:#d95926;
  --fna-chart-series-3:#199e70;
  --fna-chart-series-4:#c98500;
  --fna-chart-series-5:#d55181;
  --fna-chart-series-6:#008300;
  --fna-chart-series-7:#9085e9;
  --fna-chart-series-8:#e66767;
  --fna-chart-seq-100:#14305a;
  --fna-chart-seq-200:#1a4a8c;
  --fna-chart-seq-300:#2a6bc4;
  --fna-chart-seq-400:#3987e5;
  --fna-chart-seq-500:#6da7ec;
  --fna-chart-seq-600:#9ec5f4;
  --fna-chart-seq-700:#cde2fb;
  --fna-chart-div-neg-4:#86b6ef;
  --fna-chart-div-neg-3:#5598e7;
  --fna-chart-div-neg-2:#2a78d6;
  --fna-chart-div-neg-1:#1c5cab;
  --fna-chart-div-mid:#333b52;
  --fna-chart-div-pos-1:#7f1d1d;
  --fna-chart-div-pos-2:#b8302f;
  --fna-chart-div-pos-3:#e34948;
  --fna-chart-div-pos-4:#f09a99;
  --fna-chart-status-ok:var(--fna-success);
  --fna-chart-status-caution:var(--fna-warning);
  --fna-chart-status-alarm:var(--fna-danger);
  --fna-chart-status-nonconform:#ef4444;
  --fna-chart-status-review:var(--fna-review);
  --fna-chart-status-info:var(--fna-primary);
  --fna-chart-status-off:var(--fna-neutral);
  --fna-chart-approval-none:var(--fna-border-strong);
  --fna-chart-approval-draft:var(--fna-neutral);
  --fna-chart-approval-review-requested:var(--fna-warning);
  --fna-chart-approval-reviewed:var(--fna-review);
  --fna-chart-approval-approved:var(--fna-success);
  --fna-chart-approval-rejected:#ef4444;
  --fna-chart-grid:#232c44;
  --fna-chart-axis:var(--fna-border-strong);
  --fna-chart-tick:var(--fna-text-muted);
  --fna-chart-label:var(--fna-text-secondary);
  --fna-chart-legend:var(--fna-text-secondary);
  --fna-chart-tooltip-bg:var(--fna-surface-highest);
  --fna-chart-tooltip-text:var(--fna-text);
  --fna-chart-crosshair:var(--fna-border-outline);
  --fna-chart-band:rgba(251,191,36,.16);
  --fna-chart-band-line:var(--fna-warning);
  --fna-chart-deviation:rgba(248,113,113,.18);
  --fna-chart-deviation-line:var(--fna-danger);
  --fna-chart-muted:#55607e;
  --fna-chart-empty:var(--fna-text-muted);
  --fna-table-header:var(--fna-surface-low);
  --fna-table-stripe:var(--fna-surface-low);
  --fna-table-hover:var(--fna-surface-container);
  --fna-table-selected:var(--fna-primary-container);
  --fna-table-nonconform:var(--fna-error-container);
  --fna-table-caution:color-mix(in srgb, var(--fna-warning) 14%, var(--fna-surface));
  --fna-table-off:var(--fna-neutral-container);
  --fna-table-border:var(--fna-border);
  --fna-table-sort:var(--fna-text-muted);
  --fna-table-sort-active:var(--fna-primary);
  --fna-table-unit:var(--fna-text-muted);
  --fna-toast-bg:var(--fna-surface-highest);
  --fna-toast-text:var(--fna-text);
  --fna-toast-success-bg:var(--fna-success-container);
  --fna-toast-success-text:var(--fna-success-on-container);
  --fna-toast-error-bg:var(--fna-error-container);
  --fna-toast-error-text:var(--fna-error-on-container);
  --fna-toast-info-bg:var(--fna-primary-container);
  --fna-toast-info-text:var(--fna-primary-on-container);
  --fna-print-paper:#ffffff;
  --fna-print-ink:#111827;
  --fna-print-secondary:#374151;
  --fna-print-muted:#6b7280;
  --fna-print-line:#9ca3af;
  --fna-print-line-soft:#d1d5db;
  --fna-print-head-bg:#eef1f9;
  --fna-print-dev:#ffdad6;
  --fna-print-navy:#1b284f;
  --fna-print-accent:#003d9b;
}
}
/* 다크 테마 ② 페이지/호스트가 data-theme="dark" 를 명시했을 때 (OS 설정과 무관) */
:root[data-theme="dark"]{
  color-scheme:dark;
  --fna-brand-navy:#1b284f;
  --fna-brand-ink:#b2c5ff;
  --fna-brand-accent:#f87171;
  --fna-primary:#b2c5ff;
  --fna-primary-dark:#8fabff;
  --fna-primary-container:#0f2f6e;
  --fna-primary-on:#002b70;
  --fna-primary-on-container:#dae2ff;
  --fna-primary-inverse:#003d9b;
  --fna-secondary:#9db9e8;
  --fna-bg:#0b1220;
  --fna-surface:#131a2c;
  --fna-surface-low:#101727;
  --fna-surface-container:#1a2238;
  --fna-surface-high:#222c46;
  --fna-surface-highest:#2b3654;
  --fna-surface-variant:#1f2a44;
  --fna-text:#e6eaf5;
  --fna-text-secondary:#c3c9da;
  --fna-text-muted:#9aa4bd;
  --fna-text-inverse:#0b1220;
  --fna-text-placeholder:#6f7a95;
  --fna-border:#2b3654;
  --fna-border-strong:#3d4a6c;
  --fna-border-outline:#8d96ab;
  --fna-success:#34d399;
  --fna-success-text:#6ee7b7;
  --fna-success-container:#064e3b;
  --fna-success-on-container:#a7f3d0;
  --fna-warning:#fbbf24;
  --fna-warning-text:#fcd34d;
  --fna-warning-container:#5b3d0c;
  --fna-warning-on-container:#fde68a;
  --fna-danger:#f87171;
  --fna-danger-text:#fca5a5;
  --fna-danger-container:#7f1d1d;
  --fna-danger-on-container:#fecaca;
  --fna-error:#ffb4ab;
  --fna-error-text:#ffb4ab;
  --fna-error-container:#93000a;
  --fna-error-on-container:#ffdad6;
  --fna-review:#a78bfa;
  --fna-review-text:#c4b5fd;
  --fna-review-container:#4c1d95;
  --fna-review-on-container:#ddd6fe;
  --fna-info:#b2c5ff;
  --fna-info-text:#b2c5ff;
  --fna-info-container:#0f2f6e;
  --fna-info-on-container:#dae2ff;
  --fna-neutral:#6b7590;
  --fna-neutral-text:#9aa4bd;
  --fna-neutral-container:#1f2740;
  --fna-neutral-on-container:#c3c9da;
  --fna-side-bg:#111a36;
  --fna-side-surface:#0d1428;
  --fna-side-line:#2a3a66;
  --fna-side-hover:#1c2848;
  --fna-side-text:#dbe2f7;
  --fna-side-muted:#b4c0e4;
  --fna-side-active:#003d9b;
  --fna-side-active-text:#ffffff;
  --fna-side-alarm:#ff8a80;
  --fna-side-caution:#ffd54f;
  --fna-side-info:#8ab4ff;
  --fna-side-review:#c4b5fd;
  --fna-side-ok:#6ee7b7;
  --fna-side-strong:#ffffff;
  --fna-overlay:rgba(0,0,0,.6);
  --fna-focus:#b2c5ff;
  --fna-chart-series-1:#3987e5;
  --fna-chart-series-2:#d95926;
  --fna-chart-series-3:#199e70;
  --fna-chart-series-4:#c98500;
  --fna-chart-series-5:#d55181;
  --fna-chart-series-6:#008300;
  --fna-chart-series-7:#9085e9;
  --fna-chart-series-8:#e66767;
  --fna-chart-seq-100:#14305a;
  --fna-chart-seq-200:#1a4a8c;
  --fna-chart-seq-300:#2a6bc4;
  --fna-chart-seq-400:#3987e5;
  --fna-chart-seq-500:#6da7ec;
  --fna-chart-seq-600:#9ec5f4;
  --fna-chart-seq-700:#cde2fb;
  --fna-chart-div-neg-4:#86b6ef;
  --fna-chart-div-neg-3:#5598e7;
  --fna-chart-div-neg-2:#2a78d6;
  --fna-chart-div-neg-1:#1c5cab;
  --fna-chart-div-mid:#333b52;
  --fna-chart-div-pos-1:#7f1d1d;
  --fna-chart-div-pos-2:#b8302f;
  --fna-chart-div-pos-3:#e34948;
  --fna-chart-div-pos-4:#f09a99;
  --fna-chart-status-ok:var(--fna-success);
  --fna-chart-status-caution:var(--fna-warning);
  --fna-chart-status-alarm:var(--fna-danger);
  --fna-chart-status-nonconform:#ef4444;
  --fna-chart-status-review:var(--fna-review);
  --fna-chart-status-info:var(--fna-primary);
  --fna-chart-status-off:var(--fna-neutral);
  --fna-chart-approval-none:var(--fna-border-strong);
  --fna-chart-approval-draft:var(--fna-neutral);
  --fna-chart-approval-review-requested:var(--fna-warning);
  --fna-chart-approval-reviewed:var(--fna-review);
  --fna-chart-approval-approved:var(--fna-success);
  --fna-chart-approval-rejected:#ef4444;
  --fna-chart-grid:#232c44;
  --fna-chart-axis:var(--fna-border-strong);
  --fna-chart-tick:var(--fna-text-muted);
  --fna-chart-label:var(--fna-text-secondary);
  --fna-chart-legend:var(--fna-text-secondary);
  --fna-chart-tooltip-bg:var(--fna-surface-highest);
  --fna-chart-tooltip-text:var(--fna-text);
  --fna-chart-crosshair:var(--fna-border-outline);
  --fna-chart-band:rgba(251,191,36,.16);
  --fna-chart-band-line:var(--fna-warning);
  --fna-chart-deviation:rgba(248,113,113,.18);
  --fna-chart-deviation-line:var(--fna-danger);
  --fna-chart-muted:#55607e;
  --fna-chart-empty:var(--fna-text-muted);
  --fna-table-header:var(--fna-surface-low);
  --fna-table-stripe:var(--fna-surface-low);
  --fna-table-hover:var(--fna-surface-container);
  --fna-table-selected:var(--fna-primary-container);
  --fna-table-nonconform:var(--fna-error-container);
  --fna-table-caution:color-mix(in srgb, var(--fna-warning) 14%, var(--fna-surface));
  --fna-table-off:var(--fna-neutral-container);
  --fna-table-border:var(--fna-border);
  --fna-table-sort:var(--fna-text-muted);
  --fna-table-sort-active:var(--fna-primary);
  --fna-table-unit:var(--fna-text-muted);
  --fna-toast-bg:var(--fna-surface-highest);
  --fna-toast-text:var(--fna-text);
  --fna-toast-success-bg:var(--fna-success-container);
  --fna-toast-success-text:var(--fna-success-on-container);
  --fna-toast-error-bg:var(--fna-error-container);
  --fna-toast-error-text:var(--fna-error-on-container);
  --fna-toast-info-bg:var(--fna-primary-container);
  --fna-toast-info-text:var(--fna-primary-on-container);
  --fna-print-paper:#ffffff;
  --fna-print-ink:#111827;
  --fna-print-secondary:#374151;
  --fna-print-muted:#6b7280;
  --fna-print-line:#9ca3af;
  --fna-print-line-soft:#d1d5db;
  --fna-print-head-bg:#eef1f9;
  --fna-print-dev:#ffdad6;
  --fna-print-navy:#1b284f;
  --fna-print-accent:#003d9b;
}

/* 큰글씨(시니어) — 글꼴 배수만 바뀌고 나머지는 컴포넌트 CSS 가 em/배수로 따라간다 */
:root[data-scale="large"]{--fna-scale:1.25;}

/* 기본 적용 — 토큰만 불러도 문서 배경·글자·서체가 맞춰진다 */
html{font-family:var(--fna-font-family);font-size:var(--fna-font-size-base);line-height:var(--fna-line-height-normal)}
body{background:var(--fna-bg);color:var(--fna-text)}

