/* ============================================================
   theme.css — 캐노니컬 컬러 시스템 · 정적 CSS 폴백 (컬러 시스템 담당 소유)
   ------------------------------------------------------------
   이 파일은 js/theme.js(window.AllCurriTheme)가 계산하는 것과 "완전히 동일한" 값을
   :root 폴백으로 박아둔다. JS가 아직 실행되기 전(첫 페인트) 또는 어떤 이유로든
   applyCssVars() 호출이 이뤄지지 않아도 --subj-*, --lvl-* 변수가 항상 존재하도록
   보장하기 위함이다. js/theme.js의 buildColorSet() 파생 규칙이 바뀌면 이 파일도
   함께 재생성해야 한다(동일 알고리즘으로 산출된 표 — 손으로 색을 바꾸지 말 것).

   네이밍 규칙:
     --subj-<slug>              원색(가장 채도 높은 "브랜드" 톤 — 아이콘·큰 강조 요소용)
     --subj-<slug>-light        화이트 배경 위 AA(4.5:1) 보장 강조색(텍스트/보더/아이콘)
     --subj-<slug>-dark         다크 우주 캔버스용 채도 보강 변형
     --subj-<slug>-tint         카드 배경 등 아주 옅은 워시
     --subj-<slug>-tint-strong  칩/배지 배경 등 한 단계 진한 파스텔
     --subj-<slug>-on           강조색(-light) 위에 얹는 텍스트색(대비 계산됨)
     --subj-<slug>-on-dark      다크 변형(-dark) 위에 얹는 텍스트색(대비 계산됨)
     --subj-<slug>-border       옅은 유색 보더
     --lvl-elem / --lvl-middle / --lvl-high 도 동일한 하위 접미사 세트를 갖는다(학교급 강조색).

   이 파일은 tokens.css의 어떤 변수도 재정의하지 않는다("절대 새 토큰을 추가하지 말 것"
   규칙은 tokens.css 소유이므로 이 파일에서 새 토큰을 --subj- / --lvl- / --thm- 네임스페이스
   아래에만 추가한다). --thm-* 는 콘텐츠 화면(카드·헤더 밑줄·포커스 링 등)이 공통으로 쓸 수
   있는 "콘텐츠 컬러 퀄리티" 공유 토큰이며, tokens.css 값과 색조는 맞추되 이름은 겹치지 않는다.
   ============================================================ */

:root {
  /* ------------------------------------------------------------ *
   * 공유 "콘텐츠 컬러 퀄리티" 토큰(--thm-*, 신규 네임스페이스 — 추가 전용)
   * ------------------------------------------------------------ */
  /* 표면: 중립 --surface(#F7F8FA)보다 은은하게 색감이 도는 옅은 표면(카드/섹션 배경용) */
  --thm-surface-tint: #F6F7FB;
  --thm-surface-tint-2: #EFF2F9;

  /* 포커스 링(키보드 접근성) — tokens.css --brand-link(#2E5FD0)와 같은 색조를 사용하되
     이 파일이 tokens.css보다 먼저 로드돼도 깨지지 않도록 값을 직접 명시한다. */
  --thm-focus-ring: 0 0 0 3px rgba(46, 95, 208, .35);
  --thm-focus-ring-offset: 2px;

  /* 입체감 있는 카드 그림자(브랜드 톤을 섞은 그림자 — tokens.css --shadow-2보다 "색이 도는"
     엘리베이션. 콘텐츠 카드가 밋밋해 보이지 않도록 하는 핵심 토큰). */
  --thm-shadow-card: 0 1px 3px rgba(20, 58, 107, .07), 0 1px 2px rgba(20, 58, 107, .05);
  --thm-shadow-elevated: 0 10px 28px rgba(20, 58, 107, .14), 0 2px 8px rgba(20, 58, 107, .06);
  --thm-shadow-hover: 0 14px 34px rgba(20, 58, 107, .18), 0 4px 12px rgba(20, 58, 107, .08);

  /* 헤더 밑줄·히어로 강조용 그라디언트 헬퍼(콘텐츠 CSS 담당이 --subj-* 와 조합해도 됨) */
  --thm-gradient-brand: linear-gradient(135deg, #1E4B8F, #2E5FD0);
  --thm-gradient-warm: linear-gradient(135deg, #F0863C, #E8A81C);
  --thm-gradient-cool: linear-gradient(135deg, #2C6BEA, #13BE84);

  /* ------------------------------------------------------------ *
   * 교과 계열 컬러(37종) — js/theme.js SUBJECT_FAMILY와 1:1 대응
   * ------------------------------------------------------------ */
  --subj-kor:#5468E0; --subj-kor-light:#344CE0; --subj-kor-dark:#556BEE;
  --subj-kor-tint:#F2F3F8; --subj-kor-tint-strong:#D8DCF3;
  --subj-kor-on:#FFFFFF; --subj-kor-on-dark:#FFFFFF; --subj-kor-border:#C0C5E3;
  /* 국어 */
  --subj-eng:#15B8B0; --subj-eng-light:#087D78; --subj-eng-dark:#08D5CB;
  --subj-eng-tint:#F1F8F8; --subj-eng-tint-strong:#D6F5F3;
  --subj-eng-on:#FFFFFF; --subj-eng-on-dark:#10131A; --subj-eng-border:#BDE5E3;
  /* 영어 */
  --subj-flang:#3BA9E6; --subj-flang-light:#0D79B4; --subj-flang-dark:#3BB3F5;
  --subj-flang-tint:#F1F6F8; --subj-flang-tint-strong:#D7EAF4;
  --subj-flang-on:#FFFFFF; --subj-flang-on-dark:#10131A; --subj-flang-border:#BED7E5;
  /* 외국어(제2외국어·생활외국어) */
  --subj-hanmun:#C6A24A; --subj-hanmun-light:#927123; --subj-hanmun-dark:#D5AD4A;
  --subj-hanmun-tint:#F7F6F3; --subj-hanmun-tint-strong:#F0EADB;
  --subj-hanmun-on:#FFFFFF; --subj-hanmun-on-dark:#10131A; --subj-hanmun-border:#DED7C4;
  /* 한문 */
  --subj-math:#2C6BEA; --subj-math-light:#2568EE; --subj-math-dark:#2B70FA;
  --subj-math-tint:#F1F4F8; --subj-math-tint-strong:#D6E0F5;
  --subj-math-on:#FFFFFF; --subj-math-on-dark:#FFFFFF; --subj-math-border:#BCCAE6;
  /* 수학 */
  --subj-sci:#13BE84; --subj-sci-light:#078359; --subj-sci-dark:#05DB93;
  --subj-sci-tint:#F1F8F6; --subj-sci-tint-strong:#D6F5EB;
  --subj-sci-on:#FFFFFF; --subj-sci-on-dark:#10131A; --subj-sci-border:#BCE6D8;
  /* 과학 */
  --subj-info:#20C4A8; --subj-info-light:#0E8470; --subj-info-dark:#13E1BD;
  --subj-info-tint:#F2F8F7; --subj-info-tint-strong:#D8F3EF;
  --subj-info-on:#FFFFFF; --subj-info-on-dark:#10131A; --subj-info-border:#BFE3DD;
  /* 정보 */
  --subj-tech:#8CC63F; --subj-tech-light:#517B1A; --subj-tech-dark:#95D63F;
  --subj-tech-tint:#F5F7F2; --subj-tech-tint-strong:#E7F0DB;
  --subj-tech-on:#FFFFFF; --subj-tech-on-dark:#10131A; --subj-tech-border:#D3DFC3;
  /* 기술·가정/실과 */
  --subj-env:#4CAF6E; --subj-env-light:#2F854C; --subj-env-dark:#4AC073;
  --subj-env-tint:#F3F6F4; --subj-env-tint-strong:#DBF0E2;
  --subj-env-on:#FFFFFF; --subj-env-on-dark:#10131A; --subj-env-border:#C4DECD;
  /* 환경 */
  --subj-soc:#E8A81C; --subj-soc-light:#976A07; --subj-soc-dark:#FAB31A;
  --subj-soc-tint:#F8F6F1; --subj-soc-tint-strong:#F5EBD6;
  --subj-soc-on:#FFFFFF; --subj-soc-on-dark:#10131A; --subj-soc-border:#E6D9BD;
  /* 사회 */
  --subj-hist:#E0851E; --subj-hist-light:#A9600E; --subj-hist-dark:#F28D1B;
  --subj-hist-tint:#F8F5F2; --subj-hist-tint-strong:#F4E6D7;
  --subj-hist-on:#FFFFFF; --subj-hist-on-dark:#10131A; --subj-hist-border:#E4D2BE;
  /* 역사 */
  --subj-eth:#D0913E; --subj-eth-light:#A0671D; --subj-eth-dark:#E09A3E;
  --subj-eth-tint:#F7F5F2; --subj-eth-tint-strong:#F1E7DA;
  --subj-eth-on:#FFFFFF; --subj-eth-on-dark:#10131A; --subj-eth-border:#E0D3C2;
  /* 도덕 */
  --subj-career:#4FB0A0; --subj-career-light:#2E7F72; --subj-career-dark:#4FBFAD;
  --subj-career-tint:#F3F6F6; --subj-career-tint-strong:#DBF0EC;
  --subj-career-on:#FFFFFF; --subj-career-on-dark:#10131A; --subj-career-border:#C4DEDA;
  /* 진로와 직업 */
  --subj-liberal:#7E8CB0; --subj-liberal-light:#6275A8; --subj-liberal-dark:#8192BC;
  --subj-liberal-tint:#F3F4F6; --subj-liberal-tint-strong:#DBE1F0;
  --subj-liberal-on:#FFFFFF; --subj-liberal-on-dark:#10131A; --subj-liberal-border:#C4CBDE;
  /* 교양 */
  --subj-integ:#F0863C; --subj-integ-light:#C45508; --subj-integ-dark:#FF8C3C;
  --subj-integ-tint:#F8F4F1; --subj-integ-tint-strong:#F6E3D5;
  --subj-integ-on:#FFFFFF; --subj-integ-on-dark:#10131A; --subj-integ-border:#E7CDBB;
  /* 통합교과 */
  --subj-music:#8B5CF6; --subj-music-light:#5F1CF7; --subj-music-dark:#8752FF;
  --subj-music-tint:#F3F1F9; --subj-music-tint-strong:#DFD4F7;
  --subj-music-on:#FFFFFF; --subj-music-on-dark:#FFFFFF; --subj-music-border:#C8BAE8;
  /* 음악 */
  --subj-art:#D64BA0; --subj-art-light:#D62993; --subj-art-dark:#E54CA9;
  --subj-art-tint:#F7F2F5; --subj-art-tint-strong:#F2D9E8;
  --subj-art-on:#FFFFFF; --subj-art-on-dark:#10131A; --subj-art-border:#E1C1D5;
  /* 미술 */
  --subj-artsx:#B15CD8; --subj-artsx-light:#A63DD6; --subj-artsx-dark:#BB5EE6;
  --subj-artsx-tint:#F6F2F7; --subj-artsx-tint-strong:#EADAF1;
  --subj-artsx-on:#FFFFFF; --subj-artsx-on-dark:#10131A; --subj-artsx-border:#D7C2E1;
  /* 예술 계열·문화예술·디자인·방송 */
  --subj-pe:#EF4444; --subj-pe-light:#E90C0C; --subj-pe-dark:#FD4545;
  --subj-pe-tint:#F8F1F1; --subj-pe-tint-strong:#F6D5D5;
  --subj-pe-on:#FFFFFF; --subj-pe-on-dark:#10131A; --subj-pe-border:#E6BCBC;
  /* 체육 */
  --subj-health:#F26B8A; --subj-health-light:#E80D3F; --subj-health-dark:#FD537A;
  --subj-health-tint:#F8F1F3; --subj-health-tint-strong:#F6D5DD;
  --subj-health-on:#FFFFFF; --subj-health-on-dark:#10131A; --subj-health-border:#E6BCC6;
  /* 보건 */
  --subj-machine:#4E86C9; --subj-machine-light:#3274C3; --subj-machine-dark:#4F8DD8;
  --subj-machine-tint:#F3F5F7; --subj-machine-tint-strong:#DBE5F0;
  --subj-machine-on:#FFFFFF; --subj-machine-on-dark:#10131A; --subj-machine-border:#C4D0DF;
  /* 기계 */
  --subj-elec:#2AB8D6; --subj-elec-light:#137B91; --subj-elec-dark:#28C6E7;
  --subj-elec-tint:#F2F7F8; --subj-elec-tint-strong:#D9EEF2;
  --subj-elec-on:#FFFFFF; --subj-elec-on-dark:#10131A; --subj-elec-border:#C0DCE2;
  /* 전기·전자 */
  --subj-itcomm:#3B7DE0; --subj-itcomm-light:#2672E3; --subj-itcomm-dark:#3B83F0;
  --subj-itcomm-tint:#F2F4F8; --subj-itcomm-tint-strong:#D8E3F3;
  --subj-itcomm-on:#FFFFFF; --subj-itcomm-on-dark:#10131A; --subj-itcomm-border:#BFCDE3;
  /* 정보·통신 */
  --subj-archi:#C97B4E; --subj-archi-light:#B45E2D; --subj-archi-dark:#D8814F;
  --subj-archi-tint:#F7F4F3; --subj-archi-tint-strong:#F0E3DB;
  --subj-archi-on:#FFFFFF; --subj-archi-on-dark:#10131A; --subj-archi-border:#DFCDC4;
  /* 건축·토목 */
  --subj-material:#B08D57; --subj-material-light:#916E39; --subj-material-dark:#BF9658;
  --subj-material-tint:#F6F5F3; --subj-material-tint-strong:#F0E8DB;
  --subj-material-on:#FFFFFF; --subj-material-on-dark:#10131A; --subj-material-border:#DED4C4;
  /* 재료 */
  --subj-chem:#B057C4; --subj-chem-light:#AD44C5; --subj-chem-dark:#BC58D2;
  --subj-chem-tint:#F6F3F7; --subj-chem-tint-strong:#ECDBF0;
  --subj-chem-on:#FFFFFF; --subj-chem-on-dark:#10131A; --subj-chem-border:#D9C4DE;
  /* 화학공업 */
  --subj-textile:#E86FA8; --subj-textile-light:#DA1B75; --subj-textile-dark:#F25EA4;
  --subj-textile-tint:#F8F2F5; --subj-textile-tint-strong:#F3D8E5;
  --subj-textile-on:#FFFFFF; --subj-textile-on-dark:#10131A; --subj-textile-border:#E3BFD0;
  /* 섬유·의류 */
  --subj-beauty:#F075B0; --subj-beauty-light:#E41176; --subj-beauty-dark:#FA57A5;
  --subj-beauty-tint:#F8F1F5; --subj-beauty-tint-strong:#F5D6E5;
  --subj-beauty-on:#FFFFFF; --subj-beauty-on-dark:#10131A; --subj-beauty-border:#E5BDD0;
  /* 미용 */
  --subj-food:#F09A3C; --subj-food-light:#B06007; --subj-food-dark:#FFA23C;
  --subj-food-tint:#F8F5F1; --subj-food-tint-strong:#F6E6D5;
  --subj-food-on:#FFFFFF; --subj-food-on-dark:#10131A; --subj-food-border:#E7D2BB;
  /* 식품·조리 */
  --subj-agri:#6FB74E; --subj-agri-light:#448029; --subj-agri-dark:#74C64E;
  --subj-agri-tint:#F4F7F3; --subj-agri-tint-strong:#E2F0DB;
  --subj-agri-on:#FFFFFF; --subj-agri-on-dark:#10131A; --subj-agri-border:#CCDEC4;
  /* 농림·축산 */
  --subj-fishery:#1FA8B0; --subj-fishery-light:#12838A; --subj-fishery-dark:#14C1CB;
  --subj-fishery-tint:#F2F7F8; --subj-fishery-tint-strong:#D8F1F3;
  --subj-fishery-on:#FFFFFF; --subj-fishery-on-dark:#10131A; --subj-fishery-border:#BFE1E3;
  /* 수산·해운 */
  --subj-safety:#E8663C; --subj-safety-light:#D13F10; --subj-safety-dark:#F76A3C;
  --subj-safety-tint:#F8F3F1; --subj-safety-tint-strong:#F5DED6;
  --subj-safety-on:#FFFFFF; --subj-safety-on-dark:#10131A; --subj-safety-border:#E5C7BD;
  /* 환경·안전·소방 */
  --subj-welfare:#EE6C86; --subj-welfare-light:#E3123C; --subj-welfare-dark:#F95878;
  --subj-welfare-tint:#F8F1F3; --subj-welfare-tint-strong:#F5D6DC;
  --subj-welfare-on:#FFFFFF; --subj-welfare-on-dark:#10131A; --subj-welfare-border:#E5BDC5;
  /* 보건·복지 */
  --subj-biz:#D6A82E; --subj-biz-light:#957114; --subj-biz-dark:#E7B42D;
  --subj-biz-tint:#F8F6F2; --subj-biz-tint-strong:#F2EBD9;
  --subj-biz-on:#FFFFFF; --subj-biz-on-dark:#10131A; --subj-biz-border:#E2D9C0;
  /* 경영·금융 */
  --subj-tour:#2CC4B0; --subj-tour-light:#148072; --subj-tour-dark:#20DFC6;
  --subj-tour-tint:#F2F8F7; --subj-tour-tint-strong:#D9F2EE;
  --subj-tour-on:#FFFFFF; --subj-tour-on-dark:#10131A; --subj-tour-border:#C1E1DD;
  /* 관광·레저 */
  --subj-converge:#7C6CE0; --subj-converge-light:#4F39DB; --subj-converge-dark:#7866EB;
  --subj-converge-tint:#F3F2F8; --subj-converge-tint-strong:#DCD9F2;
  --subj-converge-on:#FFFFFF; --subj-converge-on-dark:#10131A; --subj-converge-border:#C5C1E2;
  /* 융복합·지식재산 */
  --subj-pro-common:#8391AD; --subj-pro-common-light:#5F75A0; --subj-pro-common-dark:#8697B9;
  --subj-pro-common-tint:#F3F4F6; --subj-pro-common-tint-strong:#DBE2F0;
  --subj-pro-common-on:#FFFFFF; --subj-pro-common-on-dark:#10131A; --subj-pro-common-border:#C4CDDE;
  /* 전문 공통 */

  /* ------------------------------------------------------------ *
   * 학교급 강조색(초/중/고) — js/theme.js LEVEL_BASE와 1:1 대응
   * ------------------------------------------------------------ */
  --lvl-elem:#6C8EBF; --lvl-elem-light:#4775B8; --lvl-elem-dark:#6E95CC;
  --lvl-elem-tint:#F3F4F6; --lvl-elem-tint-strong:#DBE4F0;
  --lvl-elem-on:#FFFFFF; --lvl-elem-on-dark:#10131A; --lvl-elem-border:#C4CFDE;
  /* 초등학교 */
  --lvl-middle:#8B6CC1; --lvl-middle-light:#7C55BE; --lvl-middle-dark:#916ECE;
  --lvl-middle-tint:#F4F3F7; --lvl-middle-tint-strong:#E3DBF0;
  --lvl-middle-on:#FFFFFF; --lvl-middle-on-dark:#10131A; --lvl-middle-border:#CEC4DE;
  /* 중학교 */
  --lvl-high:#C16C8E; --lvl-high-light:#BC4D7A; --lvl-high-dark:#CE6E95;
  --lvl-high-tint:#F7F3F4; --lvl-high-tint-strong:#F0DBE3;
  --lvl-high-on:#FFFFFF; --lvl-high-on-dark:#10131A; --lvl-high-border:#DEC4CF;
  /* 고등학교 */
}
