/* 글 가독성 공용 토큰·긴 글 블록(.kread)·폭별 배치(.klayout·목차·고정 패널) — 공개면·홈페이지·대시보드 공통(2026-11-02 설계서 3-1~3-3, kang.css가 불러옴) */
:root{
  --t-body:16px;--t-body-lh:1.7;      /* 긴 글 본문 */
  --t-ui:14px;--t-ui-lh:1.5;          /* 관리툴 표·목록·폼 라벨(밀도 유지) */
  --t-sub:14px;--t-sub-lh:1.6;        /* 보조 설명·괄호 설명·출처(13px 이하 금지, 법적 고지만 13px) */
  --t-h3:18px;--t-h3-lh:1.45;
  --t-h2:22px;--t-h2-lh:1.4;
  --t-lead:18px;--t-lead-lh:1.6;      /* 요약 한 줄 */
  --t-para:.9em;--t-li:.35em;         /* 문단 사이 · 목록 줄 사이(0 금지) */
  --t-h-gap-top:2em;--t-h-gap-bottom:.5em;
  --measure:720px;--measure-wide:1200px;--measure-3:1320px;--admin-max:1440px;
}
h1,h2,h3{text-wrap:balance}
p,li,dd{text-wrap:pretty}
.num,.won,[data-num],[data-total]{font-variant-numeric:tabular-nums;letter-spacing:0}
td.num,th.num{text-align:right}

/* ---- 긴 글 블록: 요약 한 줄 → 소제목 → 문단 → 단계·목록 → 알아두기/주의 → 접기 ---- */
.kread{max-width:var(--measure);font-size:var(--t-body);line-height:var(--t-body-lh);color:var(--ink,#16223D)}
.kread>*{margin-top:0;margin-bottom:0}
.kread>*+*{margin-top:var(--t-para)}
.kread p{margin:0}
.kread p+p{margin-top:var(--t-para)}
.kread-lead{font-size:var(--t-lead);line-height:var(--t-lead-lh);font-weight:600;color:var(--ink,#16223D)}
.kread h2{font-size:var(--t-h2);line-height:var(--t-h2-lh);margin:var(--t-h-gap-top) 0 var(--t-h-gap-bottom)}
.kread h3{font-size:var(--t-h3);line-height:var(--t-h3-lh);margin:1.4em 0 var(--t-h-gap-bottom)}
.kread>h2:first-child,.kread>h3:first-child{margin-top:0}
.kread ul,.kread ol{margin:0;padding-left:1.3em}
.kread li+li{margin-top:var(--t-li)}
.kread-note{display:block;font-size:var(--t-sub);line-height:var(--t-sub-lh);color:var(--muted,#5A6473)}
.kread-steps{list-style:none;padding:0;counter-reset:ks}
.kread-steps>li{counter-increment:ks;position:relative;padding-left:2.1em}
.kread-steps>li::before{content:counter(ks);position:absolute;left:0;top:.2em;width:1.5em;height:1.5em;border-radius:50%;background:var(--tint,#E1EAFF);color:var(--accent,#1D4ED8);font-size:.8em;font-weight:700;display:flex;align-items:center;justify-content:center}
.kread-box{padding:12px 16px;border-radius:var(--radius-in,8px);font-size:15px;line-height:1.7}
.kread-box.is-info{border:1px solid var(--hair,#D4DBE8);background:var(--card,#EEF3FB)}
.kread-box.is-warn{border-left:3px solid var(--warn,#B45309);background:var(--warn-bg,#FEF3C7)}
.kread-more>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600;color:var(--accent,#1D4ED8)}
.kread-more[open]>summary{margin-bottom:6px}
.kread.is-compact{font-size:15px}

/* ---- 폭별 배치: 390=1단 / 1200~1679=본문+오른쪽 패널 / 1680~=목차+본문+패널 ---- */
.klayout{display:grid;grid-template-columns:minmax(0,1fr);gap:28px;align-items:start}
.klayout>*{min-width:0}
.ktoc{display:none}
.kside{display:grid;gap:16px;align-content:start}
.kpanel{border:1px solid var(--hair,#D4DBE8);border-radius:12px;background:#fff;padding:16px 18px}
.kpanel h2,.kpanel h3{font-size:15px;line-height:1.45;margin:0 0 8px;color:var(--ink,#16223D)}
.kpanel p{margin:0;font-size:15px;line-height:1.7;color:var(--ink-2,#3D4552)}
.kpanel p+p{margin-top:8px}
@media (min-width:1200px){
  .klayout{grid-template-columns:minmax(0,var(--measure)) minmax(280px,320px);column-gap:48px;justify-content:center}
  .klayout>.kside{position:sticky;top:20px;max-height:calc(100vh - 40px);overflow:auto}
}
@media (min-width:1680px){
  .klayout.has-toc{grid-template-columns:200px minmax(0,var(--measure)) 320px}
  .klayout.has-toc>.ktoc{display:block;position:sticky;top:20px;align-self:start}
}
.ktoc b{display:block;font-size:13px;color:var(--muted,#5A6473);font-weight:600;margin:0 0 8px}
.ktoc a{display:block;padding:6px 10px;border-left:2px solid var(--hair,#D4DBE8);font-size:14px;line-height:1.45;color:var(--ink-2,#3D4552);text-decoration:none}
.ktoc a:hover{color:var(--accent,#1D4ED8)}
.ktoc a[aria-current="true"]{border-left-color:var(--accent,#1D4ED8);color:var(--accent,#1D4ED8);font-weight:600}
@media print{.ktoc,.kside{position:static!important;max-height:none!important}}

/* ---- 공개 폼 화면 '이용 안내·처리 순서' 패널(kguide.js) — 1200 이상 = 폼 오른쪽 고정 300px, 그보다 좁으면 폼 아래 ---- */
.kform-side{display:grid;gap:14px;max-width:720px;margin:0 auto;padding:8px 16px 48px}
.kform-side .kpanel h2{font-size:16px}
.kform-steps{list-style:none;margin:6px 0 0;padding:0;counter-reset:kfs}
.kform-steps li{counter-increment:kfs;position:relative;padding:0 0 0 30px;font-size:15px;line-height:1.6;color:var(--ink-2,#3D4552)}
.kform-steps li+li{margin-top:10px}
.kform-steps li::before{content:counter(kfs);position:absolute;left:0;top:1px;width:22px;height:22px;border-radius:50%;background:var(--tint,#E1EAFF);color:var(--accent,#1D4ED8);font-size:13px;font-weight:700;line-height:22px;text-align:center;font-variant-numeric:tabular-nums}
.kform-steps b{display:block;color:var(--ink,#16223D);font-weight:600}
main>.kform-side{max-width:none;padding:24px 0 0}
@media (max-width:640px){.kform-lay>.kform-side{padding-bottom:96px}}
@media (min-width:1200px){
  .kform-lay{display:flex;justify-content:center;align-items:flex-start;gap:40px;max-width:1360px;margin:0 auto;padding:0 24px}
  .kform-lay>main{flex:0 1 auto;width:100%;margin-left:0;margin-right:0}
  .kform-lay>.kform-side{flex:0 0 300px;max-width:300px;margin:0;padding:24px 0 48px;position:sticky;top:0;max-height:100vh;overflow:auto}
}
