/* 필수서류 매트릭스 — console.css 셸 + transfer/templates/faq 공용 클래스 재사용, 도메인 전용만 정의 */

/* 거버넌스 reference 배너 (상단) */
.dm-banner{display:flex;gap:11px;align-items:flex-start;background:var(--sky-bg,#E0F2FE);border:1px solid #BAE2FD;border-radius:13px;padding:12px 15px;margin-bottom:16px;}
.dm-banner__ic{flex:0 0 auto;width:32px;height:32px;border-radius:9px;background:var(--sky,#0369A1);color:#fff;display:grid;place-items:center;font-size:14px;}
.dm-banner__b{flex:1;font-size:12.5px;line-height:1.55;color:#0C4A6E;}
.dm-banner__b b{font-weight:800;}
.dm-banner__b code{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11px;background:rgba(3,105,161,.12);border-radius:4px;padding:1px 6px;}

/* 툴바 */
.dm-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:14px;flex-wrap:wrap;}
.dm-fchips{display:flex;gap:6px;flex-wrap:wrap;}
.dm-fchip{font-family:inherit;font-size:12.5px;font-weight:700;border:1px solid var(--color-border,#E0D5CC);background:var(--color-surface,#fff);color:var(--color-text-muted,#6B5F57);border-radius:999px;padding:6px 13px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;}
.dm-fchip:hover{border-color:var(--color-border-strong,#D8CCC2);}
.dm-fchip.is-on{background:var(--op-ink,#0F172A);border-color:var(--op-ink,#0F172A);color:#fff;}
.dm-fchip .n{font-size:11px;font-weight:800;opacity:.75;}
.dm-fchip.is-on .n{opacity:.95;}
.dm-search{flex:1;min-width:180px;max-width:300px;display:flex;align-items:center;gap:8px;background:var(--color-surface,#fff);border:1px solid var(--color-border,#E0D5CC);border-radius:10px;padding:8px 12px;}
.dm-search i{color:var(--color-text-subtle,#9A8C82);font-size:13px;}
.dm-search input{border:none;outline:none;background:none;font-family:inherit;font-size:13px;color:var(--color-text-strong,#15110E);width:100%;}
.dm-sel{font-family:inherit;font-size:12.5px;font-weight:600;border:1px solid var(--color-border,#E0D5CC);background:var(--color-surface,#fff);color:var(--color-text,#3D342E);border-radius:10px;padding:8px 12px;cursor:pointer;}

/* 키 그룹 카드 (업종 × 이행타입) */
.dm-groups{display:flex;flex-direction:column;gap:14px;}
.dm-group{background:var(--color-surface,#fff);border:1px solid var(--color-border,#E0D5CC);border-radius:16px;overflow:hidden;}
.dm-group__h{display:flex;align-items:center;gap:11px;padding:15px 18px;border-bottom:1px solid var(--color-divider,#EDE4DD);background:var(--color-bg-subtle,#FBF7F3);flex-wrap:wrap;}
.dm-group__biz{font-size:15.5px;font-weight:800;color:var(--color-text-strong,#15110E);letter-spacing:-.01em;}
.dm-fbadge{font-size:11px;font-weight:800;padding:3px 10px;border-radius:999px;display:inline-flex;align-items:center;gap:5px;}
.dm-fbadge i{font-size:10px;}
.dmf-deliver{background:var(--indigo-bg,#E0E7FF);color:var(--indigo,#4338CA);}
.dmf-visit{background:var(--teal-bg,#CCFBF1);color:var(--teal,#0F766E);}
.dmf-digital{background:#EDE9FE;color:#6D28D9;}
.dmf-service{background:var(--amber-bg,#FEF3C7);color:var(--amber,#92660C);}
.dmf-pass{background:var(--accent-soft,#FFE9E0);color:#B23A12;}
.dm-group__sum{margin-left:auto;display:flex;align-items:center;gap:6px;}
.dm-vmini{font-size:10.5px;font-weight:800;padding:2px 9px;border-radius:999px;display:inline-flex;align-items:center;gap:4px;}
.dm-vmini.is-active{background:var(--ok-bg,#E5F4EC);color:var(--ok,#1F8A5B);}
.dm-vmini.is-advisory{background:var(--amber-bg,#FEF3C7);color:var(--amber,#92660C);}
.dm-vmini.is-draft{background:#E2E8F0;color:#475569;}
.dm-vmini.is-retired{background:#EDEAE7;color:#8A8073;}

/* 버전 행 */
.dm-ver{display:flex;gap:0;padding:0;border-bottom:1px solid var(--color-divider,#EDE4DD);}
.dm-ver:last-child{border-bottom:none;}
.dm-ver__rail{flex:0 0 96px;padding:16px 12px 16px 18px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;border-right:1px solid var(--color-divider,#EDE4DD);background:var(--color-surface,#fff);}
.dm-vno{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:18px;font-weight:800;color:var(--color-text-strong,#15110E);letter-spacing:-.02em;}
.dm-vbadge{font-size:10px;font-weight:800;padding:3px 8px;border-radius:7px;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;}
.dm-vbadge i{font-size:9px;}
.dm-vbadge.is-active{background:var(--ok-bg,#E5F4EC);color:var(--ok,#1F8A5B);}
.dm-vbadge.is-advisory{background:var(--amber-bg,#FEF3C7);color:var(--amber,#92660C);}
.dm-vbadge.is-draft{background:#E2E8F0;color:#475569;}
.dm-vbadge.is-retired{background:#EDEAE7;color:#8A8073;}
.dm-ver--active .dm-ver__rail{box-shadow:inset 3px 0 0 var(--ok,#1F8A5B);}
.dm-ver--advisory .dm-ver__rail{box-shadow:inset 3px 0 0 var(--amber,#92660C);}
.dm-ver--draft .dm-ver__rail{box-shadow:inset 3px 0 0 #94A3B8;}
.dm-ver--retired .dm-ver__rail{box-shadow:inset 3px 0 0 #B8AE9E;}
.dm-ver--retired .dm-ver__body{opacity:.72;}

.dm-ver__body{flex:1;min-width:0;padding:15px 18px;}
.dm-immut{font-size:10.5px;font-weight:700;color:var(--ok,#1F8A5B);display:inline-flex;align-items:center;gap:4px;margin-top:2px;}

/* 서류 칩 */
.dm-docs{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:11px;}
.dm-doc{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--color-border,#E0D5CC);border-radius:10px;padding:6px 10px 6px 11px;background:var(--color-surface,#fff);}
.dm-doc--opt{border-style:dashed;opacity:.92;}
.dm-doc__nm{font-size:12.5px;font-weight:700;color:var(--color-text-strong,#15110E);}
.dm-doc__var{font-size:10px;font-weight:600;color:var(--color-text-subtle,#9A8C82);margin-left:4px;}
.dm-doc__req{font-size:9.5px;font-weight:800;padding:1px 6px;border-radius:5px;}
.dm-doc__req.req{background:var(--accent-soft,#FFE9E0);color:#B23A12;}
.dm-doc__req.opt{background:var(--color-surface-2,#F0E9E3);color:var(--color-text-subtle,#9A8C82);}
.dm-doc__v{font-size:10px;font-weight:700;display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:6px;}
.dm-doc__v i{font-size:9px;}
.dmv-api{background:var(--sky-bg,#E0F2FE);color:var(--sky,#0369A1);}
.dmv-gov{background:var(--indigo-bg,#E0E7FF);color:var(--indigo,#4338CA);}
.dmv-doc{background:var(--teal-bg,#CCFBF1);color:var(--teal,#0F766E);}
.dmv-manual{background:var(--amber-bg,#FEF3C7);color:var(--amber,#92660C);}

.dm-ver__law{font-size:12px;color:var(--color-text-muted,#6B5F57);line-height:1.5;margin-bottom:6px;display:flex;gap:7px;}
.dm-ver__law i{color:var(--color-text-subtle,#9A8C82);margin-top:2px;font-size:11px;flex:0 0 auto;}
.dm-ver__law b{color:var(--color-text-strong,#15110E);font-weight:700;}
.dm-ver__note{font-size:11.5px;color:var(--color-text-subtle,#9A8C82);line-height:1.55;margin-bottom:11px;}
.dm-ver__foot{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.dm-ver__meta{font-size:11px;color:var(--color-text-subtle,#9A8C82);display:inline;}
.dm-ver__meta>i:first-child{margin-right:6px;}
.dm-ver__meta b{color:var(--color-text-muted,#6B5F57);font-weight:700;}
.dm-ver__meta code{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:10.5px;}
.dm-ver__act{margin-left:auto;display:flex;align-items:center;gap:7px;}
.dm-ver__act .tmbtn{padding:7px 12px;font-size:12.5px;}

/* 빈 상태 */
.dm-empty{padding:52px;text-align:center;color:var(--color-text-muted,#6B5F57);background:var(--color-surface,#fff);border:1px dashed var(--color-border-strong,#D8CCC2);border-radius:16px;}
.dm-empty i{font-size:30px;opacity:.3;display:block;margin-bottom:12px;}

/* ── 편집 드로어: 서류 리피터 ── */
.dm-form{display:flex;flex-direction:column;gap:14px;}
.dm-sec{font-size:11px;font-weight:800;letter-spacing:.04em;color:var(--color-text-subtle,#9A8C82);text-transform:uppercase;margin:6px 0 -2px;}
.dm-row2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.dm-docedit{display:flex;flex-direction:column;gap:8px;}
.dm-de-row{display:flex;align-items:center;gap:8px;background:var(--color-surface,#fff);border:1px solid var(--color-border,#E0D5CC);border-radius:11px;padding:9px 10px;}
.dm-de-row input.tpl-in{flex:1;min-width:0;padding:7px 10px;}
.dm-de-sel{font-family:inherit;font-size:12px;font-weight:600;border:1px solid var(--color-border,#E0D5CC);background:var(--color-bg-subtle,#FBF7F3);color:var(--color-text,#3D342E);border-radius:8px;padding:7px 9px;cursor:pointer;flex:0 0 auto;}
.dm-de-req{font-family:inherit;font-size:11.5px;font-weight:800;border:1px solid var(--color-border,#E0D5CC);background:var(--color-surface,#fff);border-radius:8px;padding:7px 10px;cursor:pointer;flex:0 0 auto;color:var(--color-text-subtle,#9A8C82);white-space:nowrap;}
.dm-de-req.is-req{background:var(--accent-soft,#FFE9E0);border-color:#F0C3B2;color:#B23A12;}
.dm-de-x{width:30px;height:30px;flex:0 0 auto;border:none;background:none;border-radius:8px;color:var(--color-text-subtle,#9A8C82);cursor:pointer;}
.dm-de-x:hover{background:#FBEAE6;color:#C0392B;}
.dm-de-add{align-self:flex-start;}
.dm-de-add.tmbtn{font-size:12.5px;padding:7px 12px;border-style:dashed;}

/* 변경 사유 가드 */
.dm-guard{display:flex;gap:9px;font-size:11.5px;line-height:1.5;color:#0F7B57;background:#DEF5EC;border:1px solid #B6E6D5;border-radius:11px;padding:10px 13px;}
.dm-guard i{color:#0F7B57;margin-top:2px;flex:0 0 auto;}
.dm-guard code{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:10.5px;background:rgba(15,123,87,.12);border-radius:4px;padding:1px 5px;}

/* ── 승격(PROMOTE) 확인 모달 — 전제조건 체크리스트 ── */
.dm-promote{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:75;width:460px;max-width:calc(100vw - 32px);background:var(--color-surface,#fff);border-radius:18px;padding:24px 24px 20px;box-shadow:0 24px 60px rgba(15,23,42,.3);}
.dm-promote__ic{width:46px;height:46px;border-radius:13px;background:var(--ok-bg,#E5F4EC);color:var(--ok,#1F8A5B);display:grid;place-items:center;font-size:19px;margin-bottom:13px;}
.dm-promote__t{font-size:18px;font-weight:800;color:var(--color-text-strong,#15110E);margin:0 0 6px;letter-spacing:-.01em;}
.dm-promote__d{font-size:12.5px;color:var(--color-text-muted,#6B5F57);line-height:1.55;margin:0 0 16px;}
.dm-promote__d b{color:var(--color-text-strong,#15110E);font-weight:800;}
.dm-precond{display:flex;flex-direction:column;gap:8px;margin-bottom:16px;}
.dm-pc{display:flex;align-items:flex-start;gap:9px;font-size:12.5px;color:var(--color-text,#3D342E);line-height:1.45;}
.dm-pc__ic{flex:0 0 auto;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-size:9px;color:#fff;margin-top:1px;}
.dm-pc__ic.ok{background:var(--ok,#1F8A5B);}
.dm-pc__ic.no{background:var(--rose,#E11D48);}
.dm-pc b{font-weight:700;color:var(--color-text-strong,#15110E);}
.dm-pc small{display:block;color:var(--color-text-subtle,#9A8C82);font-size:11px;margin-top:1px;}
.dm-promote__warn{font-size:11.5px;color:var(--amber,#92660C);background:var(--amber-bg,#FEF3C7);border-radius:9px;padding:9px 12px;line-height:1.5;margin-bottom:16px;display:flex;gap:8px;}
.dm-promote__warn i{margin-top:1px;flex:0 0 auto;}
.dm-promote__act{display:flex;gap:9px;justify-content:flex-end;}
.dm-promote__act .tmbtn{padding:9px 16px;}

/* ── E4 ④ 변경 이력(read-only) 드로어 — 종류·주체·시각·결과 타임라인 ── */
.dm-hist-btn.tmbtn{color:var(--color-text-muted,#6B5F57);}
.dm-hist-btn.tmbtn:hover{border-color:var(--accent,#F4521E);color:var(--accent,#F4521E);}
.dm-hist-drawer .tpl-dr__h code{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11px;background:var(--accent-soft,#FFE9E0);color:#B23A12;border-radius:4px;padding:1px 6px;}

/* 사유 미기록 정직 고지 */
.dm-hist-note{display:flex;gap:9px;font-size:11.5px;line-height:1.5;color:var(--color-text-muted,#6B5F57);background:var(--color-surface,#fff);border:1px solid var(--color-border,#E0D5CC);border-radius:11px;padding:10px 13px;margin-bottom:14px;}
.dm-hist-note i{color:var(--color-text-subtle,#9A8C82);margin-top:2px;flex:0 0 auto;}
.dm-hist-note b{color:var(--color-text-strong,#15110E);font-weight:700;}

/* 타임라인 */
.dm-hist-tl{list-style:none;margin:0;padding:0;position:relative;}
.dm-hist-tl::before{content:'';position:absolute;left:13px;top:6px;bottom:6px;width:2px;background:var(--color-divider,#EDE4DD);}
.dm-hist-item{position:relative;display:flex;gap:13px;padding-bottom:14px;}
.dm-hist-item:last-child{padding-bottom:0;}
.dm-hist-dot{flex:0 0 auto;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:11px;color:#fff;z-index:1;box-shadow:0 0 0 3px var(--color-bg-subtle,#F5EEE9);}
.dm-hd-create{background:var(--ok,#1F8A5B);}
.dm-hd-edit{background:var(--sky,#0369A1);}
.dm-hd-promote{background:var(--accent,#F4521E);}
.dm-hd-delete{background:var(--rose,#E11D48);}
.dm-hd-submit{background:var(--indigo,#4338CA);}
.dm-hd-revise{background:var(--amber,#92660C);}

.dm-hist-card{flex:1;min-width:0;background:var(--color-surface,#fff);border:1px solid var(--color-border,#E0D5CC);border-radius:12px;padding:11px 13px;}
.dm-hist-head{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:8px;}
.dm-hist-badge{font-size:11px;font-weight:800;padding:3px 10px;border-radius:999px;}
.dm-hb-create{background:var(--ok-bg,#E5F4EC);color:var(--ok,#1F8A5B);}
.dm-hb-edit{background:var(--sky-bg,#E0F2FE);color:var(--sky,#0369A1);}
.dm-hb-promote{background:var(--accent-soft,#FFE9E0);color:#B23A12;}
.dm-hb-delete{background:#FDECEA;color:#C0392B;}
.dm-hb-submit{background:var(--indigo-bg,#E0E7FF);color:var(--indigo,#4338CA);}
.dm-hb-revise{background:var(--amber-bg,#FEF3C7);color:var(--amber,#92660C);}
.dm-hist-at{margin-left:auto;font-size:11px;color:var(--color-text-subtle,#9A8C82);display:inline-flex;align-items:center;gap:5px;}

.dm-hist-meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:11.5px;color:var(--color-text-muted,#6B5F57);}
.dm-hist-meta i{font-size:11px;}
.dm-hist-actor,.dm-hist-res{display:inline-flex;align-items:center;gap:6px;}
.dm-hist-tr code{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:10px;color:var(--color-text-subtle,#9A8C82);background:var(--color-surface-2,#F0E9E3);border-radius:4px;padding:1px 6px;}

/* 사유 미기록 행(정직 — 가짜 데이터 없음) */
.dm-hist-reason{display:flex;align-items:center;gap:7px;margin-top:9px;padding-top:9px;border-top:1px dashed var(--color-divider,#EDE4DD);font-size:11.5px;color:var(--color-text-subtle,#9A8C82);}
.dm-hist-reason i{font-size:11px;opacity:.7;}
.dm-hist-reason small{color:var(--color-text-subtle,#9A8C82);}

.dm-hist-src{font-size:11px;color:var(--color-text-subtle,#9A8C82);display:inline-flex;align-items:center;gap:6px;}

@media(max-width:1100px){.op{grid-template-columns:var(--op-rail) 1fr;}.side{display:none;}.tm__kpis{grid-template-columns:repeat(2,1fr);}}
@media(max-width:760px){.dm-ver{flex-direction:column;}.dm-ver__rail{flex-direction:row;align-items:center;border-right:none;border-bottom:1px solid var(--color-divider,#EDE4DD);flex-basis:auto;}.dm-row2{grid-template-columns:1fr;}.dm-ver__act{margin-left:0;width:100%;}}
/* 서류 자산 만들기(CREATE · 2026-08-19) — 칩 선택·API 선택·승격 준비 접기 */
.dm-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.dm-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--color-border,#d0d5dd);border-radius:999px;font-size:12px;cursor:pointer;background:#fff;user-select:none}
.dm-chip.is-on{border-color:#2748a5;background:#eef2ff;color:#1e3a8a;font-weight:700}
.dm-chip input{margin:0}
.dm-apipick{margin-top:8px;display:flex;flex-direction:column;gap:6px}
.dm-apirow{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border:1px solid var(--color-border,#d0d5dd);border-radius:8px;cursor:pointer;background:#fff}
.dm-apirow.is-on{border-color:#2748a5;background:#eef2ff}
.dm-apirow input{margin-top:3px}
.dm-apirow span{display:flex;flex-direction:column;font-size:12.5px}
.dm-apirow small{color:#667085;font-size:11px}
.dm-adv{border:1px dashed var(--color-border,#d0d5dd);border-radius:8px;padding:8px 12px}
.dm-adv summary{cursor:pointer;font-size:12.5px;font-weight:700}
.dm-adv summary small{font-weight:500;color:#667085;margin-left:6px}

/* 레지스트리 표·폼 (2026-08-27) — 이 세 이름은 razor 만 쓰고 CSS 가 없어 브라우저 기본값으로
   렌더되고 있었다. 그래서 표 첫 칸의 긴 경로(1130000/MllBs_2Service/…)가 끊길 자리가 없어
   최소너비를 통째로 가져가고, 한글 "데이터명" 칸이 한 글자 폭으로 눌려 세로쓰기가 됐다.
   ⛔ .dm-table code 의 word-break 를 되돌리지 말 것 — 그게 열 배분을 정상으로 돌려놓는 지점이다. */
.dm-table{width:100%;border-collapse:collapse;font-size:13px;}
.dm-table th,.dm-table td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--color-divider,#EDE4DD);vertical-align:top;}
.dm-table th{font-size:11px;font-weight:700;color:var(--color-text-muted,#6B5F57);white-space:nowrap;}
.dm-table tr:last-child td{border-bottom:none;}
.dm-table code{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11px;word-break:break-all;}
.dm-table td:last-child{white-space:nowrap;text-align:right;}

.dm-input{font-family:inherit;font-size:13px;color:var(--color-text-strong,#15110E);background:var(--color-surface,#fff);border:1px solid var(--color-border-strong,#D8CCC2);border-radius:9px;padding:8px 11px;width:100%;}
.dm-input:focus{outline:none;border-color:var(--accent,#F4521E);box-shadow:0 0 0 3px var(--accent-soft,rgba(244,82,30,.14));}
/* 라벨이 인라인이면 글자와 입력칸이 한 줄에 붙어 칸이 다시 눌린다 — 세로 스택으로 고정한다. */
.dm-banner label:has(> .dm-input){display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:600;color:var(--color-text,#3D342E);}
.dm-banner label > .dm-input{margin-top:2px;}

.dm-pick{padding-bottom:11px;border-bottom:1px dashed var(--color-border,#E0D5CC);}
.dm-pick small{display:block;margin-top:5px;}
/* 레지스트리 표는 경로(1열)와 데이터명(2열)이 서로 폭을 빼앗는다 — 둘 다 최소폭을 못 박는다. */
.dm-table--api td:nth-child(1),.dm-table--api th:nth-child(1){min-width:11em;}
.dm-table--api td:nth-child(2),.dm-table--api th:nth-child(2){min-width:9em;}
/* 매트릭스 거버넌스 딥링크 하이라이트 — 2026-08-27 razor <style> 블록에서 회수. */
.dm-ver--focus{outline:2px solid #6366F1;outline-offset:2px;scroll-margin-top:96px;}
