/*
 * tokens.css — 안전이지 인라인 색 토큰 사전 (자동생성: tools/tokenize/extract.js)
 * ─────────────────────────────────────────────────────────────
 * 체계:
 *  - hex별 고유 토큰. 이름 = 의미군 접두어 + 빈도순 번호.
 *    tx=본문/잉크텍스트  ink=진한 잉크  bg=배경/종이  bd=테두리
 *    c=청록(primary)  g=초록(ok)  r=빨강(danger)  y=주황/노랑(warn)
 *    b=파랑(info)  v=보라  pk=핑크/로즈  x=기타
 *  - 인라인 치환 형태: background:var(--g1,#10b981)  ← 폴백=원값이라 기본 렌더 불변.
 *  - 이 파일의 :root 블록은 "문서화 겸용" 원값 정의(폴백과 동일값이라 없어도 기본 렌더 동일).
 *  - body.dark-mode 블록 = 기존 styles.css 다크 [style*=] 오버라이드의 값 사전.
 *  - html[data-skin="ind"] 블록 = 기존 스킨 [style*=] 오버라이드의 값 사전.
 *    (스킨 값이 var(--ok) 등 참조형이면 skin-industrial.css의 스킨/다크 정의를 그대로 따라감)
 *  - 주의: 치환 후에는 원 [style*=] 셀렉터가 더 이상 매치되지 않으므로,
 *    이 파일이 반드시 styles.css/skin-industrial.css와 함께 로드되어야 다크/스킨 유지됨.
 */

:root {
  --tx1: #94a3b8; /* #94a3b8 130회 · color */
  --tx2: #1e293b; /* #1e293b 108회 · color */
  --tx3: #64748b; /* #64748b 76회 · color */
  --tx4: #334155; /* #334155 63회 · color */
  --tx5: #475569; /* #475569 42회 · color */
  --tx6: #4b5563; /* #4b5563 8회 · color */
  --tx7: #666666; /* #666666 2회 · color */
  --tx8: #263238; /* #263238 1회 · color */
  --tx9: #888888; /* #888888 1회 · color */
  --tx10: #94a3b8; /* #94a3b8 1회 · border */
  --tx11: #94a3b8; /* #94a3b8 1회 · background */
  --tx12: #999999; /* #999999 1회 · color */
  --tx13: #a0aec0; /* #a0aec0 1회 · color */
  --ink1: rgba(0,0,0,0.3); /* rgba(0,0,0,0.3) 27회 · box-shadow */
  --ink2: rgba(0,0,0,0.05); /* rgba(0,0,0,0.05) 25회 · box-shadow */
  --ink3: rgba(0,0,0,0.02); /* rgba(0,0,0,0.02) 17회 · box-shadow */
  --ink4: rgba(0,0,0,0.5); /* rgba(0,0,0,0.5) 11회 · background */
  --ink5: #000000; /* #000000 9회 · border */
  --ink6: #334155; /* #334155 9회 · border */
  --ink13: #334155; /* #334155 2회 · background */
  --ink16: #334155; /* #334155 1회 · gradient */
  --bg1: #ffffff; /* #ffffff 62회 · color */
  --bg2: #ffffff; /* #ffffff 56회 · background */
  --bg3: #f8fafc; /* #f8fafc 37회 · background */
  --bg4: #fef2f2; /* #fef2f2 30회 · background */
  --bg5: #fee2e2; /* #fee2e2 29회 · background */
  --bg6: #f0fdf4; /* #f0fdf4 26회 · background */
  --bg7: #f1f5f9; /* #f1f5f9 25회 · background */
  --bg8: #eff6ff; /* #eff6ff 19회 · background */
  --bg9: #dcfce7; /* #dcfce7 15회 · background */
  --bg10: #f0fdfa; /* #f0fdfa 15회 · background */
  --bg11: #fff7ed; /* #fff7ed 14회 · background */
  --bg12: #fffbeb; /* #fffbeb 11회 · background */
  --bg13: #eef2ff; /* #eef2ff 10회 · background */
  --bg14: #fef3c7; /* #fef3c7 10회 · background */
  --bg15: #fafafa; /* #fafafa 9회 · background */
  --bg16: #f0f9ff; /* #f0f9ff 8회 · background */
  --bg17: #e0e7ff; /* #e0e7ff 7회 · background */
  --bg18: #f5f3ff; /* #f5f3ff 5회 · background */
  --bg20: #ccfbf1; /* #ccfbf1 4회 · background */
  --bg21: #dbeafe; /* #dbeafe 4회 · background */
  --bg22: #e0f2fe; /* #e0f2fe 4회 · background */
  --bg23: #fff1f2; /* #fff1f2 4회 · background */
  --bg24: #fff5f5; /* #fff5f5 4회 · background */
  --bg25: #ecfdf5; /* #ecfdf5 3회 · background */
  --bg26: #ecfeff; /* #ecfeff 3회 · background */
  --bg27: #faf5ff; /* #faf5ff 3회 · background */
  --bg28: #fefce8; /* #fefce8 3회 · background */
  --bg29: #ffedd5; /* #ffedd5 3회 · background */
  --bg30: #fff8f8; /* #fff8f8 3회 · background */
  --bg33: #f8faff; /* #f8faff 2회 · background */
  --bg35: #dddddd; /* #dddddd 1회 · border */
  --bg36: #ede9fe; /* #ede9fe 1회 · background */
  --bg37: #f3e8ff; /* #f3e8ff 1회 · background */
  --bg38: #fef08a; /* #fef08a 1회 · background */
  --bg39: #fef9ee; /* #fef9ee 1회 · background */
  --bg40: #ffffff; /* #ffffff 1회 · gradient */
  --bg41: #ffffff; /* #ffffff 1회 · border */
  --bd1: #cbd5e1; /* #cbd5e1 36회 · border */
  --bd2: #e2e8f0; /* #e2e8f0 23회 · border */
  --c1: #0e7490; /* #0e7490 3회 · color */
  --c2: #0891b2; /* #0891b2 2회 · background,color */
  --c3: #a5f3fc; /* #a5f3fc 2회 · border */
  --c5: #00796b; /* #00796b 1회 · color */
  --c6: #7dd3fc; /* #7dd3fc 1회 · border */
  --c7: #e0f2f1; /* #e0f2f1 1회 · background */
  --g1: #10b981; /* #10b981 21회 · color */
  --g2: #166534; /* #166534 19회 · color */
  --g3: #16a34a; /* #16a34a 17회 · color */
  --g4: #bbf7d0; /* #bbf7d0 12회 · border */
  --g5: #99f6e4; /* #99f6e4 9회 · border */
  --g6: #10b981; /* #10b981 8회 · background */
  --g7: #86efac; /* #86efac 7회 · border */
  --g8: #ccfbf1; /* #ccfbf1 7회 · border */
  --g9: #0d9488; /* #0d9488 6회 · background,color */
  --g10: #15803d; /* #15803d 6회 · color,background */
  --g11: #22c55e; /* #22c55e 6회 · border */
  --g12: #16a34a; /* #16a34a 5회 · background */
  --g13: #4ade80; /* #4ade80 5회 · color */
  --g14: #10b981; /* #10b981 4회 · border */
  --g15: #0f766e; /* #0f766e 2회 · color,background */
  --g16: #22c55e; /* #22c55e 2회 · background */
  --g17: #ccfbf1; /* #ccfbf1 2회 · color */
  --g18: #d1fae5; /* #d1fae5 2회 · border */
  --g19: #059669; /* #059669 1회 · color,background */
  --g20: #059669; /* #059669 1회 · gradient */
  --g21: #0d2010; /* #0d2010 1회 · background */
  --g22: #10b981; /* #10b981 1회 · gradient */
  --g23: #14532d; /* #14532d 1회 · color */
  --g24: #166534; /* #166534 1회 · border */
  --g25: #16a34a; /* #16a34a 1회 · border */
  --g26: #22c55e; /* #22c55e 1회 · color */
  --g27: #ccfbf1; /* #ccfbf1 1회 · gradient */
  --g28: #f0fdfa; /* #f0fdfa 1회 · border */
  --r1: #dc2626; /* #dc2626 81회 · color */
  --r2: #ef4444; /* #ef4444 60회 · color */
  --r3: #fecaca; /* #fecaca 35회 · border */
  --r4: #dc2626; /* #dc2626 21회 · background */
  --r5: #ef4444; /* #ef4444 20회 · background */
  --r6: #b91c1c; /* #b91c1c 10회 · color,background */
  --r7: #e11d48; /* #e11d48 10회 · background,color */
  --r8: #fca5a5; /* #fca5a5 9회 · border,color */
  --r9: #fee2e2; /* #fee2e2 7회 · border */
  --r10: #a5372a; /* #a5372a 4회 · color,border */
  --r11: #ef4444; /* #ef4444 4회 · border */
  --r12: #dc2626; /* #dc2626 3회 · border */
  --r13: #2d1010; /* #2d1010 2회 · background */
  --r14: #b91c1c; /* #b91c1c 2회 · gradient */
  --r15: #be123c; /* #be123c 2회 · background */
  --r16: #7f1d1d; /* #7f1d1d 1회 · gradient */
  --r17: #7f1d1d; /* #7f1d1d 1회 · border */
  --r18: #b30000; /* #b30000 1회 · color */
  --r19: #be123c; /* #be123c 1회 · color */
  --r20: #dc2626; /* #dc2626 1회 · gradient */
  --y1: #fde68a; /* #fde68a 21회 · border,color */
  --y2: #92400e; /* #92400e 16회 · color */
  --y3: #d97706; /* #d97706 12회 · color */
  --y4: #b45309; /* #b45309 10회 · color,background */
  --y5: #c2410c; /* #c2410c 8회 · color */
  --y6: #f7f5ef; /* #f7f5ef 8회 · background */
  --y7: #fed7aa; /* #fed7aa 8회 · border */
  --y8: #d97706; /* #d97706 7회 · background */
  --y9: #d97706; /* #d97706 6회 · gradient */
  --y10: #ea580c; /* #ea580c 6회 · color,background */
  --y11: #f59e0b; /* #f59e0b 6회 · gradient */
  --y12: #f59e0b; /* #f59e0b 5회 · color */
  --y13: #2d2208; /* #2d2208 3회 · background */
  --y14: #854d0e; /* #854d0e 3회 · color */
  --y15: #b06f16; /* #b06f16 3회 · color */
  --y16: #d97706; /* #d97706 3회 · border */
  --y17: #f59e0b; /* #f59e0b 3회 · background */
  --y18: #f59e0b; /* #f59e0b 3회 · border */
  --y19: #fbbf24; /* #fbbf24 3회 · gradient */
  --y20: #ffedd5; /* #ffedd5 3회 · border */
  --y21: #fbbf24; /* #fbbf24 2회 · color */
  --y22: #fffbeb; /* #fffbeb 2회 · gradient */
  --y23: #713f12; /* #713f12 1회 · border */
  --y24: #78350f; /* #78350f 1회 · color */
  --y25: #78350f; /* #78350f 1회 · gradient */
  --y26: #9a3412; /* #9a3412 1회 · color */
  --y27: #eab308; /* #eab308 1회 · background */
  --y28: #eab308; /* #eab308 1회 · gradient */
  --y29: #f97316; /* #f97316 1회 · border */
  --y30: #fcd34d; /* #fcd34d 1회 · border */
  --y31: #fde8cd; /* #fde8cd 1회 · border */
  --y32: #fef9c3; /* #fef9c3 1회 · background */
  --y33: #fff7ed; /* #fff7ed 1회 · gradient */
  --y34: #fffbf5; /* #fffbf5 1회 · background */
  --b1: #f1f5f9; /* #f1f5f9 25회 · border */
  --b2: #cbd5e1; /* #cbd5e1 14회 · color */
  --b3: #edf2f7; /* #edf2f7 14회 · border */
  --b4: #1e293b; /* #1e293b 12회 · background */
  --b5: #3b82f6; /* #3b82f6 10회 · border */
  --b6: #2563eb; /* #2563eb 9회 · color */
  --b7: #4338ca; /* #4338ca 9회 · color */
  --b8: #7c3aed; /* #7c3aed 9회 · background,color */
  --b9: #0369a1; /* #0369a1 8회 · background */
  --b10: #1e40af; /* #1e40af 8회 · color */
  --b11: #0369a1; /* #0369a1 7회 · color */
  --b12: #4f46e5; /* #4f46e5 7회 · color */
  --b13: #3b82f6; /* #3b82f6 6회 · color */
  --b14: #4f46e5; /* #4f46e5 6회 · background */
  --b15: #2563eb; /* #2563eb 5회 · background */
  --b16: #6d28d9; /* #6d28d9 5회 · color */
  --b17: #c7d2fe; /* #c7d2fe 5회 · border */
  --b18: #0284c7; /* #0284c7 4회 · color */
  --b19: #8b5cf6; /* #8b5cf6 3회 · color */
  --b20: #bfdbfe; /* #bfdbfe 3회 · border */
  --b21: #0369a1; /* #0369a1 2회 · border */
  --b22: #0f172a; /* #0f172a 2회 · gradient */
  --b23: #1e1b4b; /* #1e1b4b 2회 · gradient */
  --b24: #1e3a5f; /* #1e3a5f 2회 · gradient */
  --b25: #312e81; /* #312e81 2회 · gradient */
  --b26: #4f46e5; /* #4f46e5 2회 · border */
  --b27: #6366f1; /* #6366f1 2회 · background */
  --b29: #0d1a2d; /* #0d1a2d 1회 · background */
  --b30: #0ea5e9; /* #0ea5e9 1회 · background */
  --b31: #0f2744; /* #0f2744 1회 · gradient */
  --b32: #162032; /* #162032 1회 · background */
  --b33: #1d4ed8; /* #1d4ed8 1회 · color */
  --b34: #1e1b4b; /* #1e1b4b 1회 · background */
  --b35: #1e293b; /* #1e293b 1회 · gradient */
  --b36: #1e3a8a; /* #1e3a8a 1회 · color */
  --b37: #1e40af; /* #1e40af 1회 · border */
  --b39: #2563eb; /* #2563eb 1회 · border */
  --b40: #3b82f6; /* #3b82f6 1회 · background */
  --b41: #6366f1; /* #6366f1 1회 · gradient */
  --b42: #6366f1; /* #6366f1 1회 · border */
  --b43: #6366f1; /* #6366f1 1회 · color */
  --b44: #8b5cf6; /* #8b5cf6 1회 · background */
  --b45: #93c5fd; /* #93c5fd 1회 · color */
  --b46: #a5b4fc; /* #a5b4fc 1회 · color */
  --b47: #bae6fd; /* #bae6fd 1회 · border */
  --b48: #f8fafc; /* #f8fafc 1회 · border */
  --v1: #8b5cf6; /* #8b5cf6 6회 · border */
  --v2: #ddd6fe; /* #ddd6fe 4회 · border */
  --v3: #7e22ce; /* #7e22ce 2회 · color */
  --v4: #a78bfa; /* #a78bfa 2회 · color */
  --v5: #1a102d; /* #1a102d 1회 · background */
  --v6: #6d28d9; /* #6d28d9 1회 · border */
  --v7: #8b5cf6; /* #8b5cf6 1회 · gradient */
  --v8: #c4b5fd; /* #c4b5fd 1회 · border */
  --pk1: #fce7f3; /* #fce7f3 2회 · background */
  --pk2: #be185d; /* #be185d 1회 · color */
  --pk3: #db2777; /* #db2777 1회 · color */
}

/* ── 다크모드 값 (기존 body.dark-mode [style*=] 규칙 사전) ── */
body.dark-mode {
  --tx1: #94a3b8; /* 원규칙은 div 한정이었음 */
  --tx2: var(--text-main);
  --tx3: #94a3b8; /* 원규칙은 th 한정이었음 */
  --tx4: var(--text-main);
  --tx5: #cbd5e1; /* 원규칙은 th 한정이었음 */
  --bg2: #1e293b; /* 원규칙은 button 한정이었음 */
  --bg3: #162032; /* 원규칙은 td 한정이었음 */
  --bg4: var(--bg-danger-soft);
  --bg5: var(--bg-danger-soft);
  --bg6: var(--bg-success-soft);
  --bg7: #1e293b; /* 원규칙은 button 한정이었음 */
  --bg8: var(--bg-info-soft);
  --bg9: var(--bg-success-soft);
  --bg10: #0d2420; /* 원규칙은 td 한정이었음 */
  --bg11: #2d1a08; /* 원규칙은 th 한정이었음 */
  --bg12: var(--bg-warn-soft);
  --bg14: var(--bg-warn-soft);
  --bg15: #1e293b; /* 원규칙은 button 한정이었음 */
  --bg16: var(--bg-info-soft);
  --bg18: #1a102d; /* 원규칙은 div 한정이었음 */
  --bg20: #0d2420; /* 원규칙은 div 한정이었음 */
  --bg21: var(--bg-info-soft);
  --bg23: #2d1010; /* 원규칙은 td 한정이었음 */
  --bg27: #1a102d; /* 원규칙은 td 한정이었음 */
  --bg29: #2d1a08; /* 원규칙은 div 한정이었음 */
  --bd2: #334155; /* 원규칙은 tr 한정이었음 */
  --g2: #4ade80; /* 원규칙은 td 한정이었음 */
  --y14: #fbbf24; /* 원규칙은 td 한정이었음 */
  --y26: #fb923c; /* 원규칙은 p 한정이었음 */
  --y32: #2d2208; /* 원규칙은 td 한정이었음 */
  --b11: #38bdf8; /* 원규칙은 h3 한정이었음 */
}

/* ── 산업 스킨 값 (기존 html[data-skin="ind"] [style*=] 규칙 사전) ── */
html[data-skin="ind"] {
  --tx1: var(--text-faint);
  --tx2: var(--text-main);
  --tx3: var(--text-tertiary);
  --tx4: var(--text-secondary);
  --tx5: var(--text-secondary);
  --tx6: var(--text-secondary);
  --tx8: var(--text-main);
  --bg2: var(--bg-card);
  --bg3: var(--bg-subtle);
  --bg4: var(--bg-danger-soft);
  --bg5: var(--bg-danger-soft);
  --bg6: var(--bg-success-soft);
  --bg7: var(--bg-muted);
  --bg8: var(--bg-info-soft);
  --bg9: var(--bg-success-soft);
  --bg10: var(--bg-success-soft);
  --bg11: var(--bg-warn-soft);
  --bg12: var(--bg-warn-soft);
  --bg13: var(--bg-info-soft);
  --bg14: var(--bg-warn-soft);
  --bg15: var(--bg-subtle);
  --bg16: var(--bg-info-soft);
  --bg17: var(--bg-info-soft);
  --bg18: var(--bg-info-soft);
  --bg20: var(--bg-success-soft);
  --bg21: var(--bg-info-soft);
  --bg22: var(--bg-info-soft);
  --bg23: var(--bg-danger-soft);
  --bg24: var(--bg-danger-soft);
  --bg25: var(--bg-success-soft);
  --bg26: var(--bg-success-soft);
  --bg27: var(--bg-info-soft);
  --bg28: var(--bg-warn-soft);
  --bg29: var(--bg-warn-soft);
  --bg30: var(--bg-danger-soft);
  --bg33: var(--bg-info-soft);
  --bg36: var(--bg-info-soft);
  --bg37: var(--bg-info-soft);
  --bg38: var(--bg-warn-soft);
  --bg39: var(--bg-warn-soft);
  --bd1: var(--border-strong);
  --bd2: var(--border-color);
  --g1: var(--ok);
  --g3: var(--ok);
  --g6: var(--ok); /* 원규칙: 뒤 세미콜론 있는 솔리드만 매치했음 */
  --g9: var(--ok); /* 원규칙: 뒤 세미콜론 있는 솔리드만 매치했음 */
  --g10: var(--ok);
  --g12: var(--ok); /* 원규칙: 뒤 세미콜론 있는 솔리드만 매치했음 */
  --g13: var(--ok);
  --g15: var(--ok);
  --g16: var(--ok); /* 원규칙: 뒤 세미콜론 있는 솔리드만 매치했음 */
  --g19: var(--ok);
  --g26: var(--ok);
  --r1: var(--danger);
  --r2: var(--danger);
  --r4: var(--danger); /* 원규칙: 뒤 세미콜론 있는 솔리드만 매치했음 */
  --r5: var(--danger); /* 원규칙: 뒤 세미콜론 있는 솔리드만 매치했음 */
  --r6: var(--danger);
  --r7: var(--danger); /* 원규칙: 뒤 세미콜론 있는 솔리드만 매치했음 */
  --r15: var(--danger); /* 원규칙: 뒤 세미콜론 있는 솔리드만 매치했음 */
  --y2: var(--warn);
  --y3: var(--warn);
  --y4: var(--warn);
  --y8: var(--warn); /* 원규칙: 뒤 세미콜론 있는 솔리드만 매치했음 */
  --y10: var(--warn);
  --y12: var(--warn);
  --y17: var(--warn); /* 원규칙: 뒤 세미콜론 있는 솔리드만 매치했음 */
  --b6: var(--info);
  --b8: var(--info); /* 원규칙: 뒤 세미콜론 있는 솔리드만 매치했음 */
  --b9: var(--info); /* 원규칙: 뒤 세미콜론 있는 솔리드만 매치했음 */
  --b13: var(--info);
  --b14: var(--info); /* 원규칙: 뒤 세미콜론 있는 솔리드만 매치했음 */
  --b15: var(--info); /* 원규칙: 뒤 세미콜론 있는 솔리드만 매치했음 */
  --b16: var(--info);
  --b19: var(--info);
  --b27: var(--info); /* 원규칙: 뒤 세미콜론 있는 솔리드만 매치했음 */
  --b30: var(--info); /* 원규칙: 뒤 세미콜론 있는 솔리드만 매치했음 */
  --b34: var(--info); /* 원규칙: 뒤 세미콜론 있는 솔리드만 매치했음 */
  --b40: var(--info); /* 원규칙: 뒤 세미콜론 있는 솔리드만 매치했음 */
  --b44: var(--info); /* 원규칙: 뒤 세미콜론 있는 솔리드만 매치했음 */
}

/* ── 스킨+다크 동시 값 ── */
html[data-skin="ind"] body.dark-mode {
  --bg7: var(--bg-subtle);
  --bg21: var(--bg-info-soft);
  --b4: var(--bg-card);
  --b32: var(--bg-subtle);
}
