:root{
/* =========================================================================
   Keepot 팔레트는 무채색 한 램프 + 액센트 한 색입니다.
   액센트는 LED 표시등 녹색 --lime-400 #5BF52C 하나뿐입니다.
   로고 심볼의 네이비 #0D2F4C·티일 #01B1AF는 SVG 파일 안에만 존재하며
   UI 토큰으로 쓰지 않습니다(--brand-* 로 참조용 보존).
   상태 4색은 브랜드색이 아니라 기능색입니다 — 설비 상태 표시에만 씁니다.
   ========================================================================= */

/* ---- Ink: 순수 무채색 램프 ---- */
--ink-0:#FFFFFF;--ink-25:#FAFAFA;--ink-50:#F5F5F5;--ink-100:#E8E8E8;
--ink-200:#D4D4D4;--ink-300:#ADADAD;--ink-400:#6E6E6E;--ink-500:#585858;
--ink-600:#434343;--ink-700:#2E2E2E;--ink-800:#1C1C1C;--ink-900:#111111;
--ink-950:#0A0A0A;--ink-1000:#000000;

/* ---- Accent: Signal Lime — LED 표시등 녹색. 이 시스템의 유일한 유채 브랜드색 ---- */
--lime-50:#F2FEE7;--lime-100:#E0FDC4;--lime-200:#C4FA8D;--lime-300:#9CF84F;
--lime-400:#5BF52C;--lime-500:#46CE1C;--lime-600:#37A316;--lime-700:#2A7A12;
--lime-800:#1C520C;--lime-900:#0F2F07;

/* ---- 로고 전용 (UI에 사용 금지) ----
   심볼 SVG 안에만 존재하는 색입니다. 액센트는 --lime-400 입니다. */
--brand-navy:#0D2F4C;
--brand-teal:#01B1AF;

/* ---- 기능색: 설비 상태 전용 ---- */
--red-100:#FAD1CC;--red-400:#DC4433;--red-500:#C22B1B;--red-600:#9C2114;
--amber-100:#FFE8B8;--amber-300:#FCBB3C;--amber-400:#E9A213;--amber-700:#7A4F00;
/* 정상 상태는 액센트와 같은 라임 계열입니다 — "표시등이 켜져 있다 = 정상". */

/* =========== Semantic aliases =========== */
--color-primary:var(--ink-1000);
--color-primary-hover:var(--ink-800);
--color-primary-active:var(--ink-700);
--color-primary-subtle:var(--ink-50);
--color-primary-border:var(--ink-200);
--color-on-primary:#FFFFFF;

/* 라임은 밝기 대비가 극단적입니다: 검정 위 14.4:1, 흰색 위 1.46:1.
   그래서 표면 밝기별로 토큰이 나뉩니다. 절대 --color-accent 를 밝은 표면의
   전경(텍스트·아이콘·작은 면)으로 쓰지 마세요. */
--color-accent:var(--lime-400);        /* 어두운 표면 위의 면·마크 (14.4:1) */
--color-accent-hover:var(--lime-300);
--color-accent-on-light:var(--lime-600); /* 밝은 표면 위의 면·마크 (3.3:1) — 체크박스·스위치·라디오 */
--color-accent-ink:var(--lime-700);    /* 밝은 표면 위의 라임 텍스트·아이콘 (5.4:1) */
/* 인터랙티브 컨트롤(체크박스·라디오·스위치)의 선택 상태.
   형광 라임은 작은 면에서 오히려 눈에 덜 띄고 피로하므로, 컨트롤에는
   채도를 낮춘 진한 녹색을 씁니다. 흰 글리프와 5.4:1로 편안하게 읽힙니다. */
--color-accent-control:var(--lime-700);
--on-accent-control:var(--ink-0);
--color-accent-subtle:var(--lime-50);
--color-accent-border:var(--lime-600);
--on-accent:var(--ink-1000);           /* 라임 면 위에 그리는 모든 것 — 항상 검정 */

/* 별칭 (signal = accent) */
--color-signal:var(--lime-400);
--color-signal-hover:var(--lime-300);
--color-signal-on-light:var(--lime-600);
--color-signal-control:var(--lime-700);
--color-signal-ink:var(--lime-700);
--color-signal-subtle:var(--lime-50);
--color-signal-border:var(--lime-600);

/* surfaces — light */
--surface-page:var(--ink-25);
--surface-card:var(--ink-0);
--surface-raised:var(--ink-0);
--surface-sunken:var(--ink-50);
--surface-inverse:var(--ink-1000);
--surface-hover:var(--ink-50);
--surface-selected:var(--ink-50);

/* surfaces — dark */
--surface-console:var(--ink-1000);
--surface-console-panel:var(--ink-950);
--surface-console-raised:var(--ink-900);
--surface-console-hover:#151515;
--border-console:#262626;

/* text */
--text-strong:var(--ink-1000);
--text-body:var(--ink-700);
--text-muted:var(--ink-500);
--text-faint:var(--ink-400);
--text-on-dark:var(--ink-0);
--text-on-dark-muted:rgba(255,255,255,.78);
--text-on-dark-faint:rgba(255,255,255,.62);
/* 장식용 저알파는 아이콘·구분선에만. 텍스트에는 위 두 토큰만 씁니다. */
--on-dark-decorative:rgba(255,255,255,.3);
--text-link:var(--ink-1000);
--text-link-hover:var(--lime-700);
--text-brand:var(--lime-700);

/* borders — 하드 라인이 1차 구조 수단 */
--border-subtle:var(--ink-100);
--border-default:var(--ink-200);
--border-strong:var(--ink-1000);
--border-focus:var(--lime-600);
--border-hairline-dark:#262626;

/* status — 기능색 */
--status-normal:var(--lime-600);
--status-normal-bg:var(--lime-50);
--status-normal-text:var(--lime-700);
--status-warning:var(--amber-400);
--status-warning-bg:#FDF6E7;
--status-warning-text:var(--amber-700);
--status-critical:var(--red-400);
--status-critical-bg:#FBEEEC;
--status-critical-text:var(--red-600);
--status-offline:var(--ink-400);
--status-offline-bg:var(--ink-100);
--status-offline-text:var(--ink-600);
--status-info:var(--lime-400);
--status-info-bg:var(--lime-50);
--status-info-text:var(--lime-700);

/* module accents */
--module-sense:var(--ink-300);
--module-view:var(--ink-600);
--module-insight:var(--ink-1000);
--module-care:var(--lime-400);

--focus-ring:0 0 0 2px var(--ink-0),0 0 0 4px var(--lime-600);
}
