/* dosik-design-kit — 도식 패턴 CSS
   모든 치수는 em 기준입니다. 프레임(.frame)이나 웹 래퍼(.dk-web)의 font-size만 바꾸면
   같은 패턴이 PPT·카드뉴스·브로셔·배너·웹에서 같은 비율로 커지고 작아집니다. */
@import url("https://cdn.jsdelivr.net/npm/pretendard@1.3.9/dist/web/static/pretendard.min.css");

/* ---------- 테마 ---------- */
:root,[data-theme="coral"]{--bg:#FFFAF5;--surface:#FFFFFF;--ink:#1B1F3B;--sub:#4A4F63;--mute:#8B8FA0;--line:#E6E1DA;--fill:#F4F1EC;--accent:#F2564B;--accent2:#F7C873;--accent-soft:#FDE9E6;--on-accent:#FFFFFF}
[data-theme="blue"]{--bg:#FFFFFF;--surface:#FFFFFF;--ink:#1F2430;--sub:#4B5263;--mute:#8A90A0;--line:#D9DDE5;--fill:#F4F5F7;--accent:#3451D1;--accent2:#0A93F5;--accent-soft:#EEF3FF;--on-accent:#FFFFFF}
[data-theme="sky"]{--bg:#FFFFFF;--surface:#FFFFFF;--ink:#16181D;--sub:#5B616E;--mute:#9AA0AC;--line:#DCE1E8;--fill:#F3F5F8;--accent:#0A93F5;--accent2:#3451D1;--accent-soft:#EAF5FF;--on-accent:#FFFFFF}
[data-theme="kh-red"]{--bg:#FFFFFF;--surface:#FFFFFF;--ink:#1A1A1A;--sub:#4B4B4B;--mute:#8A8A8A;--line:#D6D6D6;--fill:#F3F3F3;--accent:#B3141C;--accent2:#1E1E1E;--accent-soft:#FBEBEC;--on-accent:#FFFFFF}
[data-theme="kh-red-dark"]{--bg:#111111;--surface:#2A2A2A;--ink:#FFFFFF;--sub:#D6D6D6;--mute:#8A8A8A;--line:#4A4A4A;--fill:#1E1E1E;--accent:#B3141C;--accent2:#FFFFFF;--accent-soft:#2A2A2A;--on-accent:#FFFFFF}
[data-theme="kh-navy"]{--bg:#FFFFFF;--surface:#FFFFFF;--ink:#00074E;--sub:#3A4170;--mute:#8088A8;--line:#D5E5FF;--fill:#F3F7FF;--accent:#00074E;--accent2:#D4AF37;--accent-soft:#D5E5FF;--on-accent:#FFFFFF}

/* ---------- 프레임(고정 캔버스) ---------- */
*{box-sizing:border-box}
body{margin:0;font-family:Pretendard,-apple-system,"Malgun Gothic",sans-serif;word-break:keep-all;overflow-wrap:anywhere}
/* 줄바꿈: 제목은 줄 길이를 고르게, 본문은 마지막 줄에 한 단어만 남지 않게 */
h1,h2,h3,.dk-title,.dk-headline,.dk-stat .lab,.dk-case h3{text-wrap:balance}
p,li,dd,figcaption{text-wrap:pretty}
.frame{--px:72px;--py:72px;padding:var(--py) var(--px);position:relative;overflow:hidden;background:var(--bg);color:var(--ink);font-weight:500;line-height:1.5;display:flex;flex-direction:column;margin:0 auto 40px}
.frame>*{flex-shrink:0}
.frame .grow{flex:1 1 auto;min-height:0}
.f-ppt{width:1920px;height:1080px;font-size:38px;--px:104px;--py:72px}
.f-card{width:1080px;height:1080px;font-size:34px;--px:72px;--py:84px}
.f-card45{width:1080px;height:1350px;font-size:34px;--px:72px;--py:96px}
.f-story{width:1080px;height:1920px;font-size:36px;--px:72px;--py:150px}
.f-a4{width:1240px;height:1754px;font-size:28px;--px:88px;--py:100px}
.f-a4w{width:1754px;height:1240px;font-size:30px;--px:96px;--py:84px}
.f-banner{width:1200px;height:628px;font-size:27px;--px:56px;--py:44px}
.frame.center{justify-content:center}
/* .body: 머리말 아래 남는 공간의 가운데에 본문 도식을 둡니다. 꼬리말(.dk-foot)은 프레임 바닥에 고정되어 정렬에 영향을 주지 않습니다 */
.frame>.body{margin-top:auto;margin-bottom:auto}
.frame[style*="--fs"]{font-size:var(--fs)}

/* ---------- 웹(반응형) ---------- */
.dk-web{background:var(--bg);color:var(--ink);font-size:clamp(20px,1.55vw,23px);font-weight:500;line-height:1.6}
.dk-web .dk-title{font-size:1.65em}
.dk-web .dk-step p,.dk-web .dk-cols span,.dk-web .dk-legend small{font-size:.66em}
/* 웹 본문은 휴대폰에서도 14px 아래로 내려가지 않게 작은 글자 단계를 한 단계 올립니다 */
.dk-web .dk-checks,.dk-web .dk-table>div>*,.dk-web .dk-kv b,.dk-web .dk-kv span,.dk-web .dk-milestones span,.dk-web .dk-milestones i,.dk-web .dk-panel p,.dk-web .dk-legend,.dk-web .dk-bignums p,.dk-web .dk-step .when,.dk-web .dk-step p,.dk-web .dk-case .k,.dk-web .dk-quad .k,.dk-web .dk-quad p,.dk-web .dk-issues p,.dk-web .dk-rail .side p{font-size:.72em}
.dk-web .dk-stat p,.dk-web .dk-vcard ul,.dk-web .dk-bar,.dk-web .dk-bullets{font-size:.76em}
.dk-web .dk-section{width:min(1120px,calc(100% - 40px));margin:0 auto;padding:4.4em 0}
.dk-web .dk-section+.dk-section{border-top:1px solid var(--line)}

/* ---------- 머리말 ---------- */
.dk-eyebrow{font-size:.72em;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-weight:600;margin:0 0 .5em}
.dk-title{font-size:2em;line-height:1.2;font-weight:800;letter-spacing:-.02em;margin:0 0 .9em}
.dk-title b,.dk-headline b{color:var(--accent);font-weight:800}
.dk-lead{font-size:.86em;color:var(--sub);margin:-.4em 0 1.4em;max-width:38em}
.dk-headline{font-size:1.7em;line-height:1.3;font-weight:800;text-align:center;letter-spacing:-.02em;margin:0 0 1em}
.dk-pillhead{display:inline-flex;align-items:center;gap:.6em;background:var(--fill);border-radius:99em;padding:.3em 1.2em .3em .3em;font-size:.86em;font-weight:700;margin:0 0 1.4em;align-self:flex-start}
.dk-pillhead i{font-style:normal;display:inline-grid;place-items:center;width:1.9em;height:1.9em;border-radius:50%;background:var(--accent);color:var(--on-accent)}
.dk-foot{font-size:.56em;color:var(--mute);display:flex;justify-content:space-between;gap:1em}
.frame>.dk-foot{position:absolute;left:var(--px);right:var(--px);bottom:calc(var(--py)*.42);margin:0}
.f-card>.dk-foot,.f-card45>.dk-foot,.f-story>.dk-foot{font-size:.66em}
/* .stack: 가로로 나열되는 패턴을 세로로 쌓습니다(카드뉴스·세로 매체) */
.stack{grid-auto-flow:row!important;grid-template-columns:minmax(0,1fr)!important}
.dk-rule{height:1px;background:var(--line);border:0;margin:1.2em 0}
.dk-rule.short{width:2.4em;height:.14em;background:var(--accent);margin:.2em 0 1.2em}

/* ---------- 레이아웃: 왼쪽 제목 레일 ---------- */
.dk-rail{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,2.4fr);gap:0 2.6em;align-items:stretch}
.dk-rail>.side{border-right:1px solid var(--mute);padding-right:1.6em}
.dk-rail>:not(.side){align-self:center}
.dk-rail>.dk-quad{align-self:stretch}
.dk-rail .no{font-size:1.1em;font-weight:800;color:var(--accent2)}
.dk-rail .side .dk-title{font-size:1.7em;margin-bottom:.5em}
.dk-rail .side p{font-size:.72em;color:var(--sub);margin:0}
.dk-split{display:grid;grid-template-columns:1fr 1fr;gap:2.4em;align-items:start}

/* ---------- 1. 숫자 카드 ---------- */
.dk-stats{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:1.4em}
.dk-stat{background:var(--surface);border-top:.2em solid var(--accent);border-radius:.6em;padding:1em 1.1em 1.3em;box-shadow:0 .1em .6em rgba(0,0,0,.05)}
.dk-stat .num{font-size:1.9em;font-weight:800;color:var(--accent);line-height:1.15;letter-spacing:-.02em;white-space:nowrap}
.dk-stat .lab{font-size:.86em;font-weight:800;margin-top:.3em}
.dk-stat p{font-size:.72em;color:var(--sub);margin:.4em 0 0}

/* ---------- 2. 가로 막대 ---------- */
.dk-bars{display:grid;gap:.7em}
.dk-bar{display:grid;grid-template-columns:8em minmax(0,1fr);align-items:center;gap:1em;font-size:.72em;color:var(--sub)}
.dk-bar .track{display:flex;align-items:center;gap:.7em}
.dk-bar .track:before{content:"";flex:0 0 auto;height:.9em;border-radius:99em;background:var(--accent);width:calc((100% - var(--lab,6em)) * var(--v,50) / 100);min-width:.9em}
.dk-bar.alt .track:before{background:var(--mute)}
.dk-bar .track span{white-space:nowrap;font-weight:700;color:var(--ink)}

/* ---------- 3. 대비 카드 ---------- */
.dk-versus{display:grid;grid-template-columns:1fr 1fr;gap:1.6em}
.dk-vcard{background:var(--surface);border-top:.2em solid var(--accent);border-radius:.6em;padding:1em 1.2em 1.4em;box-shadow:0 .1em .6em rgba(0,0,0,.05)}
.dk-vcard.dim{border-top-color:var(--mute)}.dk-vcard.dim h3{color:var(--sub)}
.dk-vcard h3{font-size:1.15em;font-weight:800;color:var(--accent);margin:0 0 .6em}
.dk-vcard ul{margin:0;padding:0;list-style:none;font-size:.76em;color:var(--sub)}
.dk-vcard li{padding:.18em 0 .18em 1em;position:relative}
.dk-vcard li:before{content:"·";position:absolute;left:.2em;font-weight:800;color:var(--ink)}

/* ---------- 4. 2×2 매트릭스 ---------- */
.dk-quad{display:grid;grid-template-columns:1fr 1fr}
.dk-quad>div{padding:1.4em 1.6em;display:grid;align-content:center}
.dk-quad>div:nth-child(odd){border-right:1px solid var(--mute)}
.dk-quad>div:nth-child(-n+2){border-bottom:1px solid var(--mute)}
.dk-quad .k{font-size:.72em;font-weight:700;color:var(--accent)}
.dk-quad h3{font-size:1.1em;font-weight:800;color:var(--accent);margin:.2em 0 .5em}
.dk-quad p{font-size:.72em;color:var(--sub);margin:0}

/* ---------- 5. 큰 숫자 ---------- */
.dk-bignums{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:1.6em;text-align:center}
.dk-bignums .num{font-size:2.9em;font-weight:800;color:var(--accent);line-height:1.1;letter-spacing:-.03em;white-space:nowrap}
.dk-bignums b{display:block;font-size:.72em;font-weight:800;margin-top:.6em}
.dk-bignums p{font-size:.66em;color:var(--sub);margin:.3em 0 0}

/* ---------- 6. 쟁점 3단 ---------- */
.dk-issues{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:1.6em}
.dk-issues .k{font-size:.8em;font-weight:700;color:var(--accent2)}
.dk-issues h3{font-size:.8em;font-weight:800;margin:.7em 0 .3em}
.dk-issues p{font-size:.72em;color:var(--sub);margin:0}
.dk-bullets{margin:0;padding:0;list-style:none;font-size:.76em}
.dk-bullets li{padding:.2em 0 .2em 1.1em;position:relative}
.dk-bullets li:before{content:"";position:absolute;left:.1em;top:.75em;width:.32em;height:.32em;border-radius:50%;background:var(--ink)}

/* ---------- 7. 라벨→값 행 ---------- */
.dk-kv{display:grid;gap:.5em;width:min(100%,34em);margin:0 auto}
.dk-kv>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:.5em}
.dk-kv b{background:var(--accent);color:var(--on-accent);font-size:.66em;font-weight:700;padding:.9em 1em;text-align:center;display:grid;place-items:center}
.dk-kv span{background:var(--fill);font-size:.66em;padding:.9em 1em;text-align:center;display:grid;place-items:center;color:var(--ink)}
.dk-iconcircle{width:3.6em;height:3.6em;border-radius:50%;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;margin:0 auto 1.2em}
.dk-iconcircle svg{width:1.8em;height:1.8em}

/* ---------- 8. 표 ---------- */
.dk-table{display:grid;gap:.45em}
.dk-table>div{display:grid;grid-template-columns:var(--cols,minmax(0,1fr) minmax(0,2.1fr));gap:.45em}
.dk-table>div>*{background:var(--fill);font-size:.66em;padding:.85em 1em;text-align:center;display:grid;place-items:center}
.dk-table>div>:first-child{color:var(--accent);font-weight:700}
.dk-table>.head>*{background:var(--accent);color:var(--on-accent);font-weight:700}
.dk-table>.head>:first-child{color:var(--on-accent)}

/* ---------- 9. 세로 막대 + 강조 박스 ---------- */
.dk-cols{display:flex;align-items:flex-end;gap:1.6em;height:12em;border-bottom:1px solid var(--line);padding:0 .6em}
.dk-cols>div{flex:1;background:var(--mute);height:calc(var(--v,50)*1%);position:relative;opacity:.55}
.dk-cols>div:nth-last-child(2){opacity:.8}
.dk-cols>div.on,.dk-cols>div:last-child{background:var(--accent);opacity:1}
.dk-cols span{position:absolute;left:0;right:0;bottom:-1.9em;text-align:center;font-size:.56em;color:var(--sub)}
.dk-cols em{position:absolute;left:0;right:0;top:-1.7em;text-align:center;font-size:.6em;font-style:normal;font-weight:700;color:var(--ink)}
.dk-callout{background:var(--accent-soft);border-radius:.5em;padding:1em 1.2em}
.dk-callout small{display:block;font-size:.66em;font-weight:700;color:var(--sub)}
.dk-callout b{font-size:1.6em;font-weight:800;color:var(--accent);letter-spacing:-.02em}

/* ---------- 10. 계단형 로드맵 ---------- */
.dk-stairs{position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:1em;align-items:start}
.dk-stairs>svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.dk-stairs>svg line{stroke:var(--accent);stroke-width:2}
.dk-step{position:relative;text-align:center;margin-top:calc((var(--n) - var(--i)) * var(--rise,2.6em))}
.dk-step .dot{width:2em;height:2em;border-radius:50%;background:var(--accent);color:var(--on-accent);font-size:.72em;font-weight:800;display:grid;place-items:center;margin:0 auto .7em;position:relative;z-index:1}
.dk-step h3{font-size:.86em;font-weight:800;color:var(--accent);margin:0}
.dk-step .when{font-size:.66em;font-weight:700;margin:.3em 0 .5em}
.dk-step p{font-size:.56em;color:var(--sub);margin:0;line-height:1.7}

/* ---------- 11. 아이콘 + 체크 행 ---------- */
.dk-checkrows{display:grid;gap:.5em}
.dk-checkrows>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.2fr);align-items:center;border:1px solid var(--line);background:var(--surface);padding:1.2em 0}
.dk-checkrows .who{text-align:center;border-right:1px solid var(--line);padding:.4em 1em}
.dk-checkrows .who svg{width:2.6em;height:2.6em;color:var(--accent)}
.dk-checkrows .who b{display:block;font-size:.76em;font-weight:800;margin-top:.4em}
.dk-checks{margin:0;padding:0 1.6em;list-style:none;font-size:.66em;color:var(--sub)}
.dk-checks li{padding:.28em 0 .28em 1.5em;position:relative}
.dk-checks li:before{content:"";position:absolute;left:.1em;top:.62em;width:.6em;height:.32em;border-left:.14em solid var(--accent);border-bottom:.14em solid var(--accent);transform:rotate(-45deg)}

/* ---------- 12. 번호 목록 + 요약 패널 ---------- */
.dk-milestones{display:grid;gap:0}
.dk-milestones>div{display:grid;grid-template-columns:3.6em minmax(0,1fr);gap:.8em;align-items:center;padding:.9em 0;border-bottom:1px dashed var(--line)}
.dk-milestones>div:last-child{border-bottom:0}
.dk-milestones i{font-style:normal;font-size:.66em;color:var(--sub);background:var(--fill);border:1px solid var(--line);display:grid;place-items:center;height:2.6em}
.dk-milestones b{display:block;font-size:.86em;font-weight:800}
.dk-milestones span{display:block;font-size:.66em;color:var(--sub)}
.dk-panel{background:var(--accent-soft);border:1px solid var(--line);padding:1.4em 1.6em;text-align:center}
.dk-panel h3{font-size:1.05em;font-weight:800;margin:0 0 .8em;padding-bottom:.8em;border-bottom:1px solid var(--line)}
.dk-panel p{font-size:.66em;color:var(--sub);margin:0;line-height:1.8}

/* ---------- 13. 도넛 + 범례 / 흐름 ---------- */
.dk-donut{--a:100;--b:0;--c:0;--d:0;width:10em;aspect-ratio:1;border-radius:50%;position:relative;margin:0 auto;
 background:conic-gradient(var(--accent) 0 calc(var(--a)*1%),var(--accent2) 0 calc((var(--a) + var(--b))*1%),var(--mute) 0 calc((var(--a) + var(--b) + var(--c))*1%),var(--line) 0 calc((var(--a) + var(--b) + var(--c) + var(--d))*1%),var(--fill) 0)}
.dk-donut:after{content:"";position:absolute;inset:26%;border-radius:50%;background:var(--bg)}
.dk-donut>div{position:absolute;inset:0;display:grid;place-items:center;align-content:center;z-index:1;text-align:center}
.dk-donut small{font-size:.5em;color:var(--accent);font-weight:700}
.dk-donut b{font-size:1.4em;font-weight:800;color:var(--accent);line-height:1}
.dk-legend{display:grid;gap:.5em;margin:0;padding:0;list-style:none;font-size:.66em}
.dk-legend li{padding-left:1.2em;position:relative}
.dk-legend li:before{content:"";position:absolute;left:0;top:.2em;width:.5em;height:1.1em;background:var(--accent)}
.dk-legend li:nth-child(2):before{background:var(--accent2)}.dk-legend li:nth-child(3):before{background:var(--mute)}.dk-legend li:nth-child(4):before{background:var(--line)}
.dk-legend small{display:block;color:var(--mute);font-size:.8em}
.dk-flow{display:grid;gap:1.5em}
.dk-flow>div{border:1px solid var(--accent);background:var(--surface);text-align:center;padding:.8em 1em;font-size:.72em;color:var(--sub);position:relative}
.dk-flow>div b{display:block;color:var(--ink);font-weight:800}
.dk-flow>div:not(:last-child):after{content:"";position:absolute;left:50%;bottom:-1.25em;width:.5em;height:.5em;border-right:.12em solid var(--accent);border-bottom:.12em solid var(--accent);transform:translateX(-50%) rotate(45deg)}
.dk-flow.h{grid-auto-flow:column;grid-auto-columns:1fr;gap:1.8em}
.dk-flow.h>div:not(:last-child):after{left:auto;right:-1.25em;bottom:auto;top:50%;transform:translateY(-50%) rotate(-45deg)}
.dk-subhead{display:flex;align-items:center;gap:.4em;font-size:.86em;font-weight:800;margin:0 0 1em;justify-content:center}
.dk-subhead:before{content:"✓";display:inline-grid;place-items:center;width:1.3em;height:1.3em;border-radius:50%;background:var(--accent);color:var(--on-accent);font-size:.7em}

/* ---------- 14. 사례 카드 ---------- */
.dk-cases{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:1em}
.dk-case{background:var(--accent-soft);padding:1.6em 1.6em 1.8em}
.dk-case.dim{background:var(--fill)}
.dk-case .k{font-size:.66em;font-weight:600;color:var(--accent)}
.dk-case.dim .k{color:var(--sub)}
.dk-case h3{font-size:.9em;font-weight:800;margin:.2em 0 0;padding-bottom:1em;border-bottom:1px solid var(--line)}
.dk-case .dk-checks{padding:0;margin-top:1em;font-size:.68em}
.dk-case.dim .dk-checks li:before{border-color:var(--sub)}

/* ---------- 15. 색 띠 머리 패널 + 선 그래프 ---------- */
.dk-boxed{background:var(--surface);border-radius:.4em;overflow:hidden;box-shadow:0 .1em .6em rgba(0,0,0,.05)}
.dk-boxed>h3{margin:0;background:linear-gradient(90deg,var(--accent),var(--accent2));color:var(--on-accent);font-size:.8em;font-weight:700;text-align:center;padding:.7em 1em}
.dk-boxed>div{padding:1.2em 1.4em}
.dk-boxed .cap{font-size:.72em;font-weight:700;margin:0 0 .8em}
.dk-line{width:100%;height:9em;display:block}
.dk-line polyline{fill:none;stroke:var(--accent);stroke-width:1.5;vector-effect:non-scaling-stroke}
.dk-line circle{fill:var(--accent)}
.dk-line line{stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke}
.dk-line text{font-size:.5em;fill:var(--mute)}

/* ---------- 표지 · 맺음 ---------- */
.dk-cover{justify-content:center}
.dk-cover .dk-title{font-size:2.6em;margin:0 0 .4em}
.dk-cover .dk-lead{font-size:1em;margin:0}
.dk-cta{background:var(--accent);color:var(--on-accent);padding:1em 1.4em;border-radius:.4em;font-weight:800;text-align:center}
.dk-cta small{display:block;font-size:.66em;font-weight:500;opacity:.9;margin-top:.2em}
.dk-cta.alt{background:var(--ink);color:var(--bg)}
.dk-cta+.dk-cta{margin-top:.5em}
/* 전→후 방향 표시: 세로로 쌓은 대비 카드 사이 등에 둡니다 */
.dk-arrow{display:grid;place-items:center;height:1.2em}
.dk-arrow:before{content:"";width:.7em;height:.7em;border-right:.16em solid var(--accent);border-bottom:.16em solid var(--accent);transform:translateY(-25%) rotate(45deg)}
.dk-versus.stack{gap:.5em}
/* .nb: 금액·짧은 구절이 줄 사이에서 갈라지지 않게 묶습니다 */
.nb{white-space:nowrap}
.dk-tag{display:inline-block;background:var(--accent);color:var(--on-accent);font-size:.6em;font-weight:700;padding:.3em .8em;border-radius:99em}

/* ---------- 웹에서 접힘 ---------- */
@media(max-width:760px){
 .dk-web .dk-rail,.dk-web .dk-split,.dk-web .dk-versus{grid-template-columns:1fr;gap:1.6em}
 .dk-web .dk-rail>.side{border-right:0;border-bottom:1px solid var(--mute);padding:0 0 1.2em}
 .dk-web .dk-stats,.dk-web .dk-bignums,.dk-web .dk-issues,.dk-web .dk-cases,.dk-web .dk-flow.h{grid-auto-flow:row;grid-template-columns:minmax(0,1fr)}
 .dk-web .dk-quad{grid-template-columns:1fr}.dk-web .dk-quad>div{border-right:0!important;border-bottom:1px solid var(--mute)}
 .dk-web .dk-stairs{grid-auto-flow:row}.dk-web .dk-step{margin-top:0;text-align:left;display:grid;grid-template-columns:2.4em 1fr;gap:0 .8em}.dk-web .dk-step .dot{grid-row:span 3;margin:0}.dk-web .dk-stairs>svg{display:none}
 .dk-web .dk-flow.h>div:not(:last-child):after{left:50%;right:auto;top:auto;bottom:-1.25em;transform:translateX(-50%) rotate(45deg)}
 .dk-web .dk-checkrows>div{grid-template-columns:1fr}.dk-web .dk-checkrows .who{border-right:0;border-bottom:1px solid var(--line);padding-bottom:1em;margin-bottom:.8em}
 .dk-web .dk-bar{grid-template-columns:6em minmax(0,1fr)}
 /* 표는 휴대폰에서 행마다 카드로 풉니다: 첫 칸이 제목 줄이 됩니다 */
 .dk-web .dk-table>.head{display:none}
 .dk-web .dk-table>div{grid-template-columns:1fr!important;gap:0;border:1px solid var(--line)}
 .dk-web .dk-table>div>*{text-align:left;place-items:start;padding:.7em 1em;background:var(--surface)}
 .dk-web .dk-table>div>:first-child{background:var(--fill);font-weight:800}
 .dk-web .dk-table>div>:last-child:not(:first-child){color:var(--mute);padding-top:0}
 .dk-web .dk-kv>div{grid-template-columns:1fr;gap:0}.dk-web .dk-kv b,.dk-web .dk-kv span{text-align:left;place-items:start}
}
/* 내보내기: ?only=N 이면 해당 프레임만 남깁니다(kit.js) */
html.dk-export,html.dk-export body{margin:0;background:transparent}
html.dk-export .frame{margin:0}
@media print{.frame{margin:0;page-break-after:always;break-after:page}}
