/*
 * 달쉼 디자인 토큰 — 단일 정의처 (이슈 #11: 토큰 단일소스화 / 이슈 #12: 팔레트 전환 적용).
 *
 * 규약: CSS 커스텀 프로퍼티(디자인 토큰)는 이 파일에서만 정의한다. dalshim.css를 비롯한 다른
 * CSS 파일에서는 새 토큰을 선언하지 않고 var(--토큰)으로만 참조한다.
 *
 * 팔레트: "미드나잇 바이올렛 강조 + 노출 콘크리트 연회색 배경" (이슈 #12).
 * 원본은 cwlim 확정 팔레트 프리뷰(아티팩트 970ba7f6, 이슈 #12 댓글의 확정 hex 표)이며, 프리뷰가
 * 정의한 토큰은 값 그대로 옮겼다. 프리뷰에 없는 달쉼 전용 토큰(--navbg, --priv, --cream,
 * --oil-edge, --oil-muted, --plate-deep)은 프리뷰의 등가 하드코딩 색에서 파생했고 각 항목에
 * "파생"으로 표시했다 — 미세조정은 이 파일에서만 하면 전 화면에 일괄 반영된다.
 * 레드(--rust)는 브랜드 강조에서 빠지고 위험·마감 같은 기능 상태 전용으로만 남는다(--action은
 * 이제 --violet). 舊 코션 오커(--amber)는 더스티 바이올렛으로 감쇠.
 *
 * 토큰 분류:
 *  - 전환 토큰(theme-dependent): 라이트/다크에 따라 값이 바뀐다. 4갈래로 선언한다.
 *      1) :root                              — 기본값(시스템 라이트 취급)
 *      2) @media (prefers-color-scheme:dark) — 시스템이 다크일 때
 *      3) :root[data-theme="light"]          — 사용자가 라이트로 수동 토글
 *      4) :root[data-theme="dark"]           — 사용자가 다크로 수동 토글
 *    data-theme 속성 선택자가 미디어쿼리보다 특이도가 높아 수동 토글이 시스템 설정을 이긴다.
 *    ※ 팔레트 전환으로 --oil·--kraft·--rust·--amber-deep도 전환 토큰이 됐다(프리뷰 설계).
 *  - 상수 토큰(theme-agnostic): 어디서나 같은 값이라 :root에 한 번만 선언한다.
 *    예: --kraft-2, --petrol, --warmgrey, --priv, --cream, --oil-edge, --oil-muted, --plate-deep.
 *
 * 로드 순서: functions.php가 tokens.css를 dalshim.css의 의존성(deps)으로 등록해 항상 먼저 로드된다.
 */
:root{
  --oil:#22212A; --kraft:#D6D5D0; --kraft-2:#B6B5B0;
  --violet:#3A2A63;                 /* 미드나잇 바이올렛 — 브랜드 강조 원색 */
  --amber:#6B5C8A;                  /* 舊 코션 오커 → 더스티 바이올렛 보조 */
  --rust:#A63A32;                   /* 레드 = 위험·마감 기능색 전용 */
  --petrol:#33534E; --warmgrey:#8B8A85;
  --bg:var(--kraft); --bg-2:var(--kraft-2); --surface:#D4D3CF;
  --ink:var(--oil); --muted:#5E5D66; --line:#A2A19C;
  --action:var(--violet);
  --tape-a:var(--amber); --tape-b:var(--oil);
  --plate-bg:#D8D7D2; --plate-ink:#22212A;
  --card:#CFCEC9; --card-line:#AEACA6; --shadow:rgba(20,19,26,.18); --grain:.06;
  --navbg:rgba(212,211,207,.92); /* 파생: 舊 값이 라이트 surface의 반투명이었던 관계를 새 surface(#D4D3CF)로 유지 */
}
@media (prefers-color-scheme:dark){
  :root{
    --oil:#1A1A1F; --kraft:#DEDDD8;
    --violet:#9B7BD4; --amber:#A594C8; --rust:#C7594E;
    --bg:var(--oil); --bg-2:#26252C; --surface:#24232A;
    --ink:var(--kraft); --muted:#9A99A2; --line:#3A3942; --action:var(--violet);
    --tape-b:#141318; --plate-bg:#16151A; --plate-ink:var(--amber);
    --card:#24232A; --card-line:#3A3942; --shadow:rgba(0,0,0,.5); --grain:.08;
    --navbg:rgba(26,26,31,.9); /* 파생: 다크 --oil(#1A1A1F) 반투명 */
  }
}
:root[data-theme="light"]{
  --oil:#22212A; --kraft:#D6D5D0; --kraft-2:#B6B5B0;
  --violet:#3A2A63; --amber:#6B5C8A; --rust:#A63A32;
  --bg:var(--kraft); --bg-2:var(--kraft-2); --surface:#D4D3CF;
  --ink:var(--oil); --muted:#5E5D66; --line:#A2A19C; --action:var(--violet);
  --tape-b:var(--oil); --plate-bg:#D8D7D2; --plate-ink:#22212A;
  --card:#CFCEC9; --card-line:#AEACA6; --shadow:rgba(20,19,26,.18); --grain:.06;
  --navbg:rgba(212,211,207,.92);
}
:root[data-theme="dark"]{
  --oil:#1A1A1F; --kraft:#DEDDD8;
  --violet:#9B7BD4; --amber:#A594C8; --rust:#C7594E;
  --bg:var(--oil); --bg-2:#26252C; --surface:#24232A;
  --ink:var(--kraft); --muted:#9A99A2; --line:#3A3942; --action:var(--violet);
  --tape-b:#141318; --plate-bg:#16151A; --plate-ink:var(--amber);
  --card:#24232A; --card-line:#3A3942; --shadow:rgba(0,0,0,.5); --grain:.08;
  --navbg:rgba(26,26,31,.9);
}

/* --amber-deep(게이지·진행도 빗금의 진한 단계) — 프리뷰가 라이트/다크로 나눠 확정한 전환 토큰.
 * (#11 때는 舊 하드코딩 #A87526을 상수로 승격했었으나, #12 확정 표가 두 값을 지정해 전환형이 됐다.) */
:root{--amber-deep:#52456B}
@media(prefers-color-scheme:dark){:root{--amber-deep:#7E6BA8}}
:root[data-theme="light"]{--amber-deep:#52456B}
:root[data-theme="dark"]{--amber-deep:#7E6BA8}

/* 상수 토큰(테마 무관). 값은 프리뷰의 등가 하드코딩 색에서 파생 — 프리뷰가 토큰으로 정의하지 않은
 * 달쉼 전용 자리들이라, 프리뷰 컴포넌트에서 같은 역할을 하는 색을 가져왔다. */
:root{
  /* 파생: 개러지 비공개 기록 표시색. 舊 브라운(#8A5A2B)의 "잠금·경계" 역할을 더스티 플럼으로 이전.
   * 라이트 카드(#CFCEC9)와 다크 카드(#24232A) 모두에서 읽히도록 중간 명도로 선택. 미세조정 후보. */
  --priv:#7A5C84;

  /* 파생: 바이올렛 버튼 글자·배지 등 "다크에서도 밝게 고정" 텍스트. 프리뷰의 .btn.solid 글자색. */
  --cream:#F2F0F7;

  /* 파생: 차콜(오일)·번호판 심연 같은 "어두운 바탕 위 강조 글자" 전용. 舊 오커는 어두운 배경에서
   * 빛나는 글자 역할이었는데, 감쇠된 --amber(#6B5C8A)는 라이트 테마에서 차콜 위 대비가 약 2.5:1로
   * 기준 미달(2026-07-18 사용자 QA — 개러지 기록 칩 가독성). 다크 테마의 --amber와 같은 밝은
   * 라벤더를 상수로 두어 양 테마 모두 약 7:1을 확보한다. 배경·밝은 바탕 테두리 용도는 --amber 유지. */
  --amber-ink:#A594C8;

  --oil-edge:#4A4756;  /* 파생: 차콜(오일) 배경 위 테두리. 프리뷰 컨트롤 바 버튼 테두리색. */
  --oil-muted:#A9A7B2; /* 파생: 차콜 배경 위 보조 텍스트. 프리뷰 컨트롤 바 보조 텍스트색. */
  --plate-deep:#16151A;/* 파생: 번호판류 심연 배경. 프리뷰 다크 plate-bg와 동일값. */
}

/* --petrol-ink(태그 칩 등 페트롤 계열 "글자" 전용) — 다크 모드 잠복 결함 수정(2026-07-18 자동
 * 대비 감사에서 발견, 팔레트 전환 이전부터 존재): --petrol(#33534E)은 어두운 카드 위 텍스트로
 * 쓰면 대비 약 1.8:1로 사실상 안 보인다. 라이트는 기존값 그대로(시각 변화 0), 다크만 밝은 틸. */
:root{--petrol-ink:#33534E}
@media(prefers-color-scheme:dark){:root{--petrol-ink:#7FA69E}}
:root[data-theme="light"]{--petrol-ink:#33534E}
:root[data-theme="dark"]{--petrol-ink:#7FA69E}

/* 반전 배경 위 글자 토큰 2종 — 다크 모드 자동 대비 감사(2026-07-18)에서 발견된 결함 수정.
 * 배경 자체가 테마에 따라 명암이 뒤집히는 자리(활성 탭의 --ink, 앰버 칩)는 글자도 반대로
 * 뒤집혀야 양 테마에서 읽힌다:
 *  - --on-ink-accent: 활성 탭 카운트용. --ink 배경이 라이트=차콜/다크=밝은 회백으로 반전되므로
 *    글자는 라이트=밝은 라벤더/다크=진한 바이올렛. (!76의 --amber-ink 적용은 라이트만 고려한
 *    실수였음 — 다크에서 밝은색 위 밝은색 2.0:1로 재발, 이 토큰으로 교정.)
 *  - --on-amber-ink: 앰버 칩(.st-beong, 협력업체 .pick·.nrow .tag) 글자용. --amber가 라이트=
 *    더스티(어두움)/다크=라벤더(밝음)로 반전되므로 글자는 라이트=크림/다크=차콜. */
:root{--on-ink-accent:#A594C8; --on-amber-ink:#F2F0F7}
@media(prefers-color-scheme:dark){:root{--on-ink-accent:#52456B; --on-amber-ink:#1A1A1F}}
:root[data-theme="light"]{--on-ink-accent:#A594C8; --on-amber-ink:#F2F0F7}
:root[data-theme="dark"]{--on-ink-accent:#52456B; --on-amber-ink:#1A1A1F}

/* --ok(출석 완료 등 긍정 상태) — 프리뷰 확정값으로 교체(라이트가 舊 #2F6B4F에서 #3E7D63로).
 * 캐스케이드 구조는 #11 때 통합한 그대로 유지. */
:root{--ok:#3E7D63}
@media(prefers-color-scheme:dark){:root{--ok:#6FB58C}}
:root[data-theme="light"]{--ok:#3E7D63}
:root[data-theme="dark"]{--ok:#6FB58C}
