
:root{
  --navy:#213C6D; --navy-deep:#182C50; --navy-050:#EDF1F8;
  --green:#4F9A10; --green-deep:#3F7C0C; --green-050:#EAF4DC;
  --ground:#EEF1F6; --surface:#FFFFFF; --surface-2:#F6F8FC;
  --border:#E4E9F1; --text:#1E2532; --muted:#6B7484; --faint:#9AA3B2;
  --amber:#C98A00; --blue:#2F6DB5; --red:#D63B40;
  --shadow:0 1px 3px rgba(30,48,84,.08),0 1px 2px rgba(30,48,84,.04);
  --shadow-lg:0 10px 30px rgba(30,48,84,.10);
  --r:12px; --r-sm:8px;
  --nav-w:250px; --top-h:70px;
  --ease-out:cubic-bezier(.2,.7,.3,1); --ease-in:cubic-bezier(.5,0,.9,.4);
  --ease-in-out:cubic-bezier(.5,0,.3,1);
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;max-width:100%;}
body{
  font-family:"Pretendard","Malgun Gothic","Apple SD Gothic Neo","Segoe UI",system-ui,sans-serif;

  word-break:keep-all; overflow-wrap:break-word;
  background:var(--ground); color:var(--text);
  font-size:15px; line-height:1.6; -webkit-font-smoothing:antialiased;
}
a{color:var(--navy); text-decoration:none;}
a:hover{color:var(--green);}
table td,table th{font-variant-numeric:tabular-nums;}

.pas-nav{
  position:fixed; inset:0 auto 0 0; width:var(--nav-w); z-index:20;
  background:linear-gradient(180deg,var(--navy) 0%,var(--navy-deep) 100%);
  display:flex; flex-direction:column; overflow-y:auto;
}
.pas-brand{
  height:var(--top-h); display:flex; align-items:center; gap:10px;
  padding:0 18px; color:#fff; flex:0 0 auto;
}
.pas-brand .mark{
  width:28px; height:28px; border-radius:8px; flex:0 0 auto;
  background:var(--green); display:grid; place-items:center;
  font-weight:800; font-size:13px; letter-spacing:.02em;
}
.pas-brand .txt{font-weight:800; font-size:18px; letter-spacing:.04em;}
.pas-brand .sub{font-size:11.5px; color:#9db4dc; font-weight:600; letter-spacing:.02em;}

.pas-nav .sec{
  padding:16px 20px 6px; font-size:12.5px; font-weight:800; letter-spacing:.10em;
  color:#8496b5; text-transform:uppercase;
  border-top:1px solid rgba(255,255,255,.08); margin-top:10px;
}
.pas-nav .sec:first-of-type{border-top:0; margin-top:4px;}
.pas-nav a.item{
  display:flex; align-items:center; gap:10px;
  padding:10px 20px; color:#c3cee0; font-size:14.5px; font-weight:600;
  border-left:3px solid transparent; transition:background .15s,color .15s;
}
.pas-nav a.item:hover{background:rgba(255,255,255,.06); color:#fff;}
.pas-nav a.item.on{background:rgba(79,154,16,.16); color:#fff; border-left-color:var(--green);}

.pas-nav a.item .ic{width:17px; height:17px; flex:0 0 auto; opacity:.72;}
.pas-nav a.item:hover .ic,.pas-nav a.item.on .ic{opacity:1;}
.pas-user .btn .ic{width:14px; height:14px; flex:0 0 auto;}
.pas-nav .foot{margin-top:auto; padding:16px 20px; font-size:12px; color:#6d80a3;}

.pas-top{
  position:fixed; top:0; left:var(--nav-w); right:0; height:var(--top-h); z-index:15;
  background:var(--surface); border-bottom:1px solid var(--border);
  display:flex; align-items:center; justify-content:space-between; padding:0 24px;
  box-shadow:0 2px 8px rgba(30,48,84,.03);
}
.pas-top h1{margin:0; font-size:18.5px; font-weight:800; letter-spacing:-.01em;}
.pas-user{display:flex; align-items:center; gap:12px; font-size:14px; color:var(--muted);}
.pas-user b{color:var(--text); font-weight:700;}

.pas-main{margin-left:var(--nav-w); padding:calc(var(--top-h) + 24px) 24px 48px;}

@media(min-width:1900px){
  .pas-main{padding-inline:calc((100vw - var(--nav-w) - 1620px) / 2);}
}
@media(max-width:900px){
  :root{--nav-w:0px;}
  .pas-nav{
    transform:translateX(-100%); width:250px;
    transition:transform .2s var(--ease-out); box-shadow:var(--shadow-lg);
  }
  body.nav-open .pas-nav{transform:translateX(0);}
  body.nav-open::after{
    content:""; position:fixed; inset:0; z-index:19; background:rgba(24,44,80,.42);
  }
  .pas-top{left:0;}
  .nav-toggle{display:inline-grid;}
  .pas-main{padding-inline:16px;}
}

.work{display:grid; grid-template-columns:minmax(0,1fr) 360px; gap:0 20px; align-items:start;}
.work > .side{position:sticky; top:calc(var(--top-h) + 24px);}
.work > .side .card > .body{font-size:14px;}
@media(max-width:1180px){
  .work{grid-template-columns:minmax(0,1fr);}
  .work > .side{position:static;}
}
.narrow{max-width:760px; margin-inline:auto;}

.card{
  background:var(--surface); border:1px solid var(--border);
  border-radius:var(--r); box-shadow:var(--shadow); margin-bottom:20px;
}
.card > .head{
  padding:16px 20px; border-bottom:1px solid var(--border);
  display:flex; align-items:center; justify-content:space-between; gap:12px;
}
.card > .head h2{margin:0; font-size:16px; font-weight:800;}
.card > .head .desc{font-size:13px; color:var(--muted); font-weight:500; margin-top:2px;}
.card > .body{padding:20px;}
.card > .body.tight{padding:0;}

.btn{
  display:inline-flex; align-items:center; gap:6px; justify-content:center;
  height:38px; padding:0 16px; border-radius:var(--r-sm);
  border:1px solid var(--border); background:var(--surface); color:var(--text);
  font-size:14px; font-weight:700; cursor:pointer; white-space:nowrap;
  transition:background .15s,border-color .15s,color .15s,box-shadow .15s;
}
.btn:hover{background:var(--surface-2); border-color:#d2dae7; color:var(--text);}
.btn.primary{background:var(--green); border-color:var(--green); color:#fff; box-shadow:0 4px 12px rgba(79,154,16,.22);}
.btn.primary:hover{background:var(--green-deep); border-color:var(--green-deep); color:#fff;}
.btn.navy{background:var(--navy); border-color:var(--navy); color:#fff;}
.btn.navy:hover{background:var(--navy-deep); color:#fff;}
.btn.danger{color:var(--red); border-color:#f0d3d4;}
.btn.danger:hover{background:#FBEAEA; color:var(--red);}
.btn.sm{height:32px; padding:0 12px; font-size:13px;}

.btn{line-height:1;}

.form-row{margin-bottom:16px;}
.form-row > label{display:block; font-size:13.5px; font-weight:700; color:#5B6470; margin-bottom:6px;}
.form-row .hint{font-size:12.5px; color:var(--muted); margin-top:5px; line-height:1.5;}
.form-row .err{font-size:12.5px; color:var(--red); font-weight:600; margin-top:5px;}
input[type=text],input[type=search],input[type=email],input[type=password],input[type=number],input[type=date],select,textarea{
  width:100%; height:44px; padding:0 14px;
  border:1px solid var(--border); border-radius:var(--r-sm);
  background:#F8FAFD; color:var(--text); font-size:15px; font-family:inherit;
  transition:border-color .15s,box-shadow .15s,background .15s;
}
textarea{height:auto; padding:12px 14px; resize:vertical;}

input[type=file]{width:100%; font-size:14px; color:var(--muted); font-family:inherit;}
input[type=file]::file-selector-button{
  height:36px; padding:0 15px; margin-right:10px; border-radius:var(--r-sm);
  border:1px solid var(--border); background:var(--surface); color:var(--text);
  font-family:inherit; font-size:13.5px; font-weight:700; line-height:1; cursor:pointer;
  transition:background .15s,border-color .15s;
}
input[type=file]::file-selector-button:hover{background:var(--surface-2); border-color:#d2dae7;}

.filters{display:flex; gap:8px; align-items:center; flex-wrap:wrap;}
.filters input[type=text],.filters input[type=search]{width:auto; min-width:220px; height:38px;}
.filters select{width:auto; min-width:130px; height:38px;}
.nowrap{white-space:nowrap;}
input:focus,select:focus,textarea:focus{
  outline:none; border-color:var(--green); background:#fff;
  box-shadow:0 0 0 3.5px rgba(79,154,16,.15);
}
.grid2{display:grid; grid-template-columns:1fr 1fr; gap:0 18px;}
@media(max-width:640px){.grid2{grid-template-columns:1fr;}}
.chkline{display:inline-flex; align-items:center; gap:8px; cursor:pointer; user-select:none;}
.chkline input{width:17px; height:17px; accent-color:var(--green); cursor:pointer;}

dl.kv{display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:14px 20px; margin:0;}
dl.kv dt{font-size:12.5px; color:var(--muted); font-weight:700;}
dl.kv dd{margin:2px 0 0; font-size:14px; font-weight:600;}

table.tbl{width:100%; border-collapse:collapse;}
table.tbl th{
  background:var(--navy-050); color:#44506B; font-size:13px; font-weight:800;
  letter-spacing:.02em; padding:11px 14px; text-align:center;
  border-bottom:1px solid var(--border); white-space:nowrap;
}
table.tbl td{
  padding:12px 14px; border-bottom:1px solid #EFF2F7; text-align:center; font-size:14px;
}

table.tbl th.l,table.tbl td.l{text-align:left;}
table.tbl th.r,table.tbl td.r{text-align:right;}
table.tbl th.won,table.tbl td.won{text-align:right; white-space:nowrap; min-width:104px;}

table.tbl th:first-child,table.tbl td:first-child{padding-left:20px;}

table.tbl thead th.l:first-child{width:100%;}

table.tbl tbody th{width:1%;}

table.tbl:has(th.grow) thead th.l:first-child{width:auto;}
table.tbl th.grow{width:100%;}
table.tbl thead th:first-child:has(input[type=checkbox]) + th.l{width:100%;}

table.tbl td{white-space:nowrap;}

table.tbl:has(thead th:nth-child(1).grow) tbody td:nth-child(1),
table.tbl:has(thead th:nth-child(2).grow) tbody td:nth-child(2),
table.tbl:has(thead th:nth-child(3).grow) tbody td:nth-child(3),
table.tbl:has(thead th:nth-child(4).grow) tbody td:nth-child(4),
table.tbl:has(thead th:nth-child(5).grow) tbody td:nth-child(5),
table.tbl:has(thead th:nth-child(6).grow) tbody td:nth-child(6),
table.tbl:not(:has(thead th.grow)) tbody td:first-child,
table.tbl:has(thead th:first-child input[type=checkbox]) tbody td:nth-child(2),
table.tbl tbody th + td,
table.tbl td.wrap{white-space:normal;}
table.tbl th:last-child,table.tbl td:last-child{padding-right:20px;}
table.tbl tbody tr:hover{background:#FAFBFE;}
table.tbl tbody tr:last-child td{border-bottom:0;}
.mono{font-family:"Consolas","D2Coding",ui-monospace,monospace; letter-spacing:.02em;}

.badge{
  display:inline-block; padding:3px 10px; border-radius:999px;
  font-size:12.5px; font-weight:800; letter-spacing:.01em; white-space:nowrap;
}
.badge.ok{background:var(--green-050); color:#2C6F1F;}
.badge.warn{background:#FDF3DC; color:#8A6100;}
.badge.err{background:#FBEAEA; color:#A32A2E;}
.badge.mute{background:#EEF1F6; color:#6C7686;}
.badge.info{background:#E7F0FA; color:#255A97;}
.badge.navy{background:#E9EDF5; color:var(--navy);}

.gauge{width:100%; height:8px; border-radius:999px; background:#E9EDF4; overflow:hidden;}
.gauge > span{display:block; height:100%; border-radius:999px; background:var(--green);}
.gauge.warn > span{background:var(--amber);}
.gauge.full > span{background:var(--red);}
.gauge-meta{display:flex; justify-content:space-between; font-size:12.5px; color:var(--muted); margin-top:5px;}
.gauge-meta b{color:var(--text); font-weight:800;}

.alert{
  padding:12px 16px; border-radius:var(--r-sm); font-size:14px; font-weight:600;
  margin-bottom:14px; border:1px solid transparent;
}
.alert.ok{background:var(--green-050); color:#2C6F1F; border-color:#CBE3B0;}
.alert.warn{background:#FDF3DC; color:#8A6100; border-color:#F0DCA8;}
.alert.err{background:#FBEAEA; color:#A32A2E; border-color:#F0CFD0;}
.alert.info{background:#E7F0FA; color:#255A97; border-color:#CBDDF1;}

.empty{padding:30px 20px; text-align:center; color:var(--muted); font-size:14.5px;}
.empty .big{font-size:16px; font-weight:700; color:#5B6470; margin-bottom:6px;}
.row-actions{display:flex; gap:6px; justify-content:center; flex-wrap:wrap;}
.inline{display:inline;}
.muted{color:var(--muted);}
.small{font-size:13px;}
.mt0{margin-top:0;} .mb0{margin-bottom:0;}

.hint{font-size:12.5px; color:var(--muted); line-height:1.5;}
table.tbl input[type=checkbox]{width:16px; height:16px; accent-color:var(--green); cursor:pointer;}
.kpi{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,230px));
  justify-content:start; gap:12px;}

.work > div:nth-child(2) .kpi{grid-template-columns:repeat(3,minmax(0,1fr));}
.kpi > div{
  background:var(--surface-2); border:1px solid var(--border); border-radius:var(--r-sm);
  padding:13px 15px; display:flex; flex-direction:column; gap:2px;
}
.kpi span{font-size:12.5px; color:var(--muted); font-weight:600;}
.kpi b{font-size:24px; line-height:1.25; font-weight:800; font-variant-numeric:tabular-nums;}
.step{
  display:inline-block; min-width:42px; margin-right:9px; padding:2px 8px; border-radius:999px;
  font-size:12px; font-weight:800; text-align:center; background:#EEF1F6; color:#8C95A4;
}
.step.ok{background:var(--green-050); color:#2C6F1F;}
.step.now{background:var(--navy); color:#fff;}

.ctxbar{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:0 0 16px; margin-bottom:18px; border-bottom:1px solid var(--border);
}
.ctxbar .back{font-size:14px; font-weight:800; color:var(--navy);}
.ctxbar .back:hover{color:var(--green);}
.ctxbar .figures{display:flex; flex-wrap:wrap; gap:6px 18px; margin-top:6px;}
.ctxbar .figures span{font-size:13px; color:var(--muted); font-weight:600;}
.ctxbar .figures b{color:var(--text); font-weight:800; font-variant-numeric:tabular-nums;}
.ctxbar .figures .warn b{color:var(--amber);}

.matrix-wrap{
  overflow:auto; max-height:min(68vh,620px); background:var(--surface);
  border:1px solid var(--border); border-radius:var(--r); box-shadow:var(--shadow);
}
table.matrix{border-collapse:separate; border-spacing:0; width:max-content; min-width:100%;}
table.matrix th, table.matrix td{border-bottom:1px solid var(--border); background:var(--surface);}
table.matrix thead th{

  position:sticky; top:var(--top-h); z-index:3; vertical-align:bottom; text-align:left;
  padding:12px 14px; min-width:158px; background:var(--surface-2);
  border-bottom:1px solid var(--border);
}
table.matrix thead th .mono{display:block; font-size:13.5px; font-weight:800;}
table.matrix thead th .ttl{display:block; font-size:12px; color:var(--muted); margin-top:2px; font-weight:600;}
table.matrix thead th .flag{
  display:inline-block; margin-top:5px; padding:1px 7px; border-radius:999px;
  background:#FDF3DC; color:#8A6100; font-size:11.5px; font-weight:800;
}
table.matrix th.corner{
  position:sticky; left:0; top:var(--top-h); z-index:5; min-width:216px;
  font-size:12.5px; color:var(--muted); font-weight:700;
}
table.matrix th.rail{
  position:sticky; left:0; z-index:2; text-align:left; padding:12px 14px;
  min-width:216px; max-width:216px; border-right:1px solid var(--border);
}
table.matrix th.rail .code{font-weight:800; font-size:14px; margin-right:6px;}
table.matrix th.rail .lab{font-size:13.5px; font-weight:600; color:#5B6470;}
table.matrix th.rail .req{
  display:inline-block; margin-left:6px; padding:1px 6px; border-radius:999px;
  background:var(--green-050); color:#2C6F1F; font-size:11.5px; font-weight:800;
}
table.matrix td{text-align:center; padding:8px;}
table.matrix tbody tr:hover th.rail, table.matrix tbody tr:hover td{background:#FAFBFE;}

.cell{
  display:inline-grid; place-items:center; width:34px; height:34px; padding:0;
  border-radius:var(--r-sm); border:1px solid transparent;
  font-family:inherit; font-size:14.5px; font-weight:800; letter-spacing:.02em;
  background:#EEF1F6; color:#6C7686; cursor:default;
}
button.cell{cursor:pointer; transition:transform .12s var(--ease-out), box-shadow .12s var(--ease-out);}
button.cell:hover{transform:translateY(-1px); box-shadow:var(--shadow);}
button.cell:active{transform:translateY(0);}
button.cell:focus-visible{outline:none; box-shadow:0 0 0 3px rgba(33,60,109,.35);}
.cell.d-E{background:#FBEAEA; color:#A32A2E; border-color:#F0CFD0;}
.cell.d-I{background:#FDF3DC; color:#8A6100; border-color:#F0DCA8;}
.cell.d-P{background:#E7F0FA; color:#255A97; border-color:#CBDDF1;}
.cell.d-A{background:var(--green-050); color:#2C6F1F; border-color:#CBE3B0;}
.cell.none{background:transparent; color:var(--faint); font-weight:600;}
.cell.unverified{position:relative;}
.cell.unverified::after{
  content:""; position:absolute; right:2px; bottom:2px; width:6px; height:6px;
  border-radius:50%; background:var(--amber);
}
.cell.on{box-shadow:0 0 0 2px var(--navy);}

.cell.edited{position:relative;}
.cell.edited::before{
  content:"✎"; position:absolute; left:1px; top:-2px;
  font-size:10px; font-weight:600; color:var(--navy); opacity:.75;
}
.cell.edited-key{background:transparent; color:var(--navy); font-size:13px;}
a.cell.none{text-decoration:none; cursor:pointer;}
a.cell.none:hover{background:#EEF1F6; color:var(--navy);}

.evidence{
  margin-top:18px; background:var(--surface); border:1px solid var(--border);
  border-radius:var(--r); box-shadow:var(--shadow); padding:20px 22px;
}
.evidence-empty{font-size:14px; color:var(--muted); line-height:1.7;}
.evidence-body > header{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  flex-wrap:wrap; margin-bottom:14px;
}
.evidence-body .disc{
  display:inline-block; margin-right:8px; padding:2px 9px; border-radius:999px;
  background:var(--navy); color:#fff; font-size:12.5px; font-weight:800;
}
.evidence blockquote{
  margin:0 0 16px; padding:14px 18px; background:var(--surface-2);
  border-left:3px solid var(--green); border-radius:0 var(--r-sm) var(--r-sm) 0;
  font-size:15px; line-height:1.75;
}
.evidence dl{display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px 20px; margin:0;}
.evidence dt{font-size:12.5px; color:var(--muted); font-weight:700; margin-bottom:2px;}
.evidence dd{margin:0; font-size:14px; font-weight:600;}
.evidence .reason{margin:16px 0 0; font-size:13.5px; color:#5B6470; line-height:1.7;}

.legend{display:flex; flex-wrap:wrap; gap:10px 22px; margin:18px 0; }
.legend > div{display:flex; align-items:center; gap:8px; font-size:13px; color:var(--muted);}
.legend b{color:var(--text); font-weight:800;}

.docmast{margin-bottom:18px;}
.docmast .no{font-size:24px; font-weight:800; letter-spacing:.01em; color:var(--navy);}
.docmast h2{margin:4px 0 14px; font-size:20.5px; font-weight:800; line-height:1.45;}
.docmast .meta{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px 20px; margin:0;}
.docmast dt{font-size:12.5px; color:var(--muted); font-weight:700;}
.docmast dd{margin:2px 0 0; font-size:14px; font-weight:600;}
.split{display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:0 18px; align-items:start;}
.split .col{min-width:0;}
ol.claims{margin:0; padding:0; list-style:none; counter-reset:claim;}
ol.claims li{padding:14px 0; border-bottom:1px solid var(--border);}
ol.claims li:last-child{border-bottom:0; padding-bottom:0;}
ol.claims .n{display:block; font-size:12.5px; font-weight:800; color:var(--green-deep); margin-bottom:5px;}
ol.claims p{margin:0; font-size:14.5px; line-height:1.85; overflow-wrap:anywhere;}
.prose{margin:0; font-size:14.5px; line-height:1.85;}
ol.timeline{margin:0; padding:0; list-style:none;}
ol.timeline li{
  display:grid; grid-template-columns:96px minmax(0,1fr) auto; gap:10px; align-items:baseline;
  padding:9px 0; border-bottom:1px solid var(--border);
}
ol.timeline li:last-child{border-bottom:0; padding-bottom:0;}
ol.timeline .when{font-size:13px; color:var(--muted); font-weight:700;}
ol.timeline .what{font-size:14px;}
ol.timeline .what .muted{margin-left:6px; font-size:12.5px;}
ol.timeline .code{font-size:12px;}
.axis{display:grid; grid-template-columns:88px minmax(0,1fr); gap:12px; padding:11px 0; border-bottom:1px solid var(--border);}
.axis:last-child{border-bottom:0; padding-bottom:0;}
.axis .k{font-size:12.5px; color:var(--muted); font-weight:700; padding-top:2px;}
.quote{color:#5B6470;}

@media(max-width:900px){
  .split{grid-template-columns:1fr;}
  table.matrix th.corner, table.matrix th.rail{min-width:150px; max-width:150px;}
  table.matrix thead th{min-width:126px;}
  ol.timeline li{grid-template-columns:82px minmax(0,1fr); }
  ol.timeline .code{grid-column:2; }
}
@media(max-width:640px){
  .ctxbar{flex-direction:column; align-items:flex-start;}
  .evidence-body > header{align-items:flex-start;}
}

@media(prefers-reduced-motion:reduce){
  button.cell{transition:none;}
  button.cell:hover{transform:none;}
}

.journey{display:flex; flex-wrap:wrap; gap:6px 10px; margin-bottom:18px;}
.jstep{
  display:inline-flex; align-items:center; gap:7px; padding:7px 13px;
  border:1px solid var(--border); border-radius:999px;
  background:var(--surface-2); color:var(--muted); font-size:13px; font-weight:700;
}
.jstep .dot{width:8px; height:8px; border-radius:50%; background:var(--faint);}
.jstep.done{color:#2C6F1F; border-color:#CBE3B0; background:var(--green-050);}
.jstep.done .dot{background:var(--green);}
.jstep.now{color:#fff; background:var(--navy); border-color:var(--navy);}
.jstep.now .dot{background:#fff;}
.jstep.skip{color:var(--muted); border-style:dashed; background:transparent;}
.jstep.skip .dot{background:var(--faint);}

.shareform{display:flex; gap:8px; margin-bottom:14px;}
.shareform input{max-width:280px;}
.sharelist{list-style:none; margin:0; padding:0;}
.sharelist li{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:9px 0; border-bottom:1px solid var(--border); font-size:14px;
}
.sharelist li:last-child{border-bottom:0; padding-bottom:0;}

.doc{
  background:var(--surface); border:1px solid var(--border); border-radius:var(--r);
  box-shadow:var(--shadow); padding:44px 48px; max-width:960px;
}
.doc-cover{padding-bottom:26px; margin-bottom:30px; border-bottom:2px solid var(--navy);}
.doc-cover .kicker{
  font-size:12.5px; font-weight:800; letter-spacing:.14em; text-transform:uppercase;
  color:var(--green-deep);
}
.doc-cover h1{margin:8px 0 20px; font-size:29px; font-weight:800; line-height:1.35; letter-spacing:-.01em;}
.doc-cover dl, .doc .kv{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:12px 22px; margin:0;
}
.doc dt{font-size:12.5px; color:var(--muted); font-weight:700;}
.doc dd{margin:2px 0 0; font-size:14px; font-weight:600;}
.doc .disclaimer{
  margin:22px 0 0; padding:13px 16px; background:var(--navy-050);
  border-left:3px solid var(--navy); border-radius:0 var(--r-sm) var(--r-sm) 0;
  font-size:13.5px; line-height:1.7; color:#3A4761; font-weight:600;
}
.doc section{margin-bottom:34px;}
.doc h2{
  margin:0 0 14px; padding-bottom:8px; font-size:17.5px; font-weight:800;
  border-bottom:1px solid var(--border);
}
.doc h3{margin:24px 0 12px; font-size:14.5px; font-weight:800; color:#44506B;}
.doc p{margin:0 0 12px; font-size:14.5px; line-height:1.8;}
.doc .none{color:var(--muted);}
.doc .flagline{
  padding:11px 15px; background:#FDF3DC; border-radius:var(--r-sm);
  font-size:13.5px; color:#7A5600; font-weight:600; line-height:1.7;
}
.doc .legend-line{font-size:13.5px; color:#5B6470;}
.doc ul.limits{margin:0 0 12px; padding-left:18px; font-size:13.5px; line-height:1.9; color:#5B6470;}

.doc h3.limit-h{margin:14px 0 6px; font-size:14px; font-weight:800; color:var(--text);}
.doc .limit-n{font-weight:600; color:var(--muted); font-size:13px;}
.doc details.limit-fold{margin:8px 0 12px; border:1px solid var(--border);
  border-radius:var(--r-sm); background:var(--surface-2); padding:10px 12px;}
.doc details.limit-fold > summary{cursor:pointer; font-size:13.5px; color:var(--muted);
  list-style:none;}
.doc details.limit-fold > summary::-webkit-details-marker{display:none;}
.doc details.limit-fold > summary::before{content:"▸ "; color:var(--navy); font-weight:800;}
.doc details.limit-fold[open] > summary::before{content:"▾ ";}
.doc details.limit-fold > summary b{color:var(--text);}
.doc details.limit-fold ul.limits{margin-top:10px;}

.doc section.conclusion{
  padding:18px 20px 8px; background:var(--surface-2);
  border:1px solid var(--border); border-radius:var(--r-sm);
}
.doc .headline{margin:0 0 16px; padding-left:18px; font-size:14.5px; line-height:1.9;}
.doc .headline li{margin-bottom:6px; font-weight:600;}
.doc .headline li.risk{color:#8A3B12;}
.doc .conclusion tr.hl td{background:#FDF3DC;}
.doc .conclusion .sub{font-size:13px; color:var(--muted); font-weight:400; margin-top:3px;}
.doc .basis{font-size:13px; color:var(--muted); line-height:1.7;}

@media print{

  .doc details.limit-fold{border:none; background:none; padding:0;}
  .doc details.limit-fold > summary{list-style:none;}
  .doc details.limit-fold > *{display:block !important;}
}
table.doc-tbl{width:100%; border-collapse:collapse; margin:0 0 12px; font-size:13.5px;}
table.doc-tbl th{
  background:var(--surface-2); text-align:left; padding:9px 11px; font-weight:800;
  color:#44506B; border:1px solid var(--border); white-space:nowrap;
}
table.doc-tbl td{padding:9px 11px; border:1px solid var(--border); vertical-align:top; line-height:1.65;}
table.doc-tbl td.q{color:#5B6470;}
table.doc-tbl td .sub{margin-top:3px; font-size:12.5px; color:var(--muted);}
table.doc-tbl.chart td.sym{text-align:center; font-weight:800; width:96px;}
ol.evidence-list{margin:0; padding:0; list-style:none;}
ol.evidence-list li{padding:14px 0; border-bottom:1px solid var(--border);}
ol.evidence-list li:last-child{border-bottom:0;}
ol.evidence-list .head{display:flex; flex-wrap:wrap; align-items:center; gap:10px; font-size:13.5px;}
ol.evidence-list .sym{
  display:inline-grid; place-items:center; width:22px; height:22px; border-radius:6px;
  background:var(--navy); color:#fff; font-size:12.5px; font-weight:800;
}
ol.evidence-list .where{color:var(--muted);}
ol.evidence-list blockquote{
  margin:9px 0 0; padding:11px 15px; background:var(--surface-2);
  border-left:3px solid var(--green); border-radius:0 var(--r-sm) var(--r-sm) 0;
  font-size:14px; line-height:1.75;
}
ol.evidence-list .why{margin:8px 0 0; font-size:13px; color:#5B6470;}
.doc-foot{padding-top:22px; border-top:1px solid var(--border);}
.doc-foot .meta{font-size:12.5px; color:var(--muted); margin:0;}

@media(max-width:640px){
  .doc{padding:26px 20px;}
  .doc-cover h1{font-size:24px;}
  .shareform{flex-wrap:wrap;}
}

@media print{
  @page{size:A4; margin:16mm 14mm;}
  html,body{background:#fff;}
  .pas-nav,.pas-top,.no-print{display:none !important;}
  .pas-main{margin:0; padding:0;}
  .doc{border:0; box-shadow:none; border-radius:0; padding:0; max-width:none;}
  .doc section{break-inside:auto;}
  .doc h2,.doc h3{break-after:avoid;}
  table.doc-tbl{break-inside:auto;}
  table.doc-tbl tr{break-inside:avoid;}
  ol.evidence-list li{break-inside:avoid;}
  .doc .disclaimer,.doc .flagline{
    background:#fff; border:1px solid #999; border-left-width:3px; color:#000;
  }
  a{color:#000; text-decoration:none;}
}

.add{color:#2C6F1F;}
.del{color:#A32A2E;}
table.tbl td.add, table.tbl td.del{font-weight:700;}
table.tbl td[rowspan]{vertical-align:top; border-right:1px solid #EFF2F7;}

.preset-pick{display:grid; gap:10px;}
.preset-opt{display:block; padding:12px 14px; border:1px solid var(--border); border-radius:10px;
  cursor:pointer; transition:border-color .15s var(--ease-out), background .15s var(--ease-out);}
.preset-opt:hover{border-color:var(--faint);}
.preset-opt:has(input:checked){border-color:var(--navy); background:var(--navy-050);}
.preset-opt input{margin-right:8px;}
.preset-opt .hint{display:block; font-weight:400; margin-top:4px;}

.chart-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(360px,1fr)); gap:14px;}
.chart-panel{border:1px solid var(--border); border-radius:var(--r-sm); padding:14px 16px; background:var(--surface);}
.chart-panel h3{margin:0 0 2px; font-size:14.5px;}
.chart-panel .note{font-size:12.5px; color:var(--muted); margin-bottom:10px;}
.bars{display:flex; flex-direction:column; gap:7px;}
.bar-row{display:grid; grid-template-columns:minmax(120px,46%) 1fr auto; gap:8px; align-items:center; font-size:13px;}
.bar-row .lbl{color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.bar-row .track{height:14px; background:var(--surface-2); border-radius:4px; overflow:hidden;}
.bar-row .fill{display:block; height:100%; border-radius:0 4px 4px 0; background:var(--navy);}
.bar-row .fill.nonzero{min-width:2px;}
.bar-row .val{font-variant-numeric:tabular-nums; font-weight:700; color:var(--text);}

.spec-note{
  display:flex; flex-wrap:wrap; align-items:center; gap:10px;
  background:var(--surface-2); border:1px solid var(--border);
  border-radius:var(--r-sm); padding:10px 14px; margin-bottom:14px;
  font-size:13.5px;
}
.spec-note select{
  font:inherit; padding:4px 8px; border:1px solid var(--border);
  border-radius:var(--r-sm); background:var(--surface); color:var(--text);
}
.spec-findings{
  border:1px solid #EAD9A8; background:#FDF8EA; border-radius:var(--r-sm);
  padding:8px 12px; margin:10px 0 14px;
}
.spec-findings summary{cursor:pointer; font-weight:700; font-size:13.5px; color:#8A6100;}
.spec-findings ul{margin:8px 0 2px; padding-left:18px; font-size:13px; line-height:1.6;}
.spec-text{
  white-space:pre-wrap; word-break:break-word; overflow-x:clip;
  background:var(--surface-2); border:1px solid var(--border);
  border-radius:var(--r-sm); padding:14px 16px; margin:6px 0 16px;
  font-family:inherit; font-size:13.5px; line-height:1.75; color:var(--text);
  max-height:520px; overflow-y:auto;
}
.spec-drawings{display:flex; flex-direction:column; gap:14px; margin:6px 0 16px;}
.spec-drawing{
  margin:0; border:1px solid var(--border); border-radius:var(--r-sm);
  background:#fff; padding:14px 16px;
}
.spec-drawing img{max-width:100%; height:auto; display:block; margin:0 auto 10px;}
.spec-drawing figcaption{font-size:13.5px; display:flex; flex-wrap:wrap; gap:8px; align-items:center;}
.spec-drawing.missing{
  display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:space-between;
  background:var(--surface-2); font-size:13.5px;
}

.list-toolbar{
  display:flex; flex-wrap:wrap; gap:8px 10px; align-items:flex-start;
  padding:12px 14px; border-bottom:1px solid var(--border);
}
.list-toolbar form.filters{display:flex; flex-wrap:wrap; gap:8px; flex:1 1 auto; min-width:0;}
.list-toolbar form.filters input[type=text]{width:230px; height:38px;}
.list-toolbar form.filters select{height:38px; width:auto;}
.chips{display:flex; flex-wrap:wrap; align-items:center; gap:6px; padding:10px 14px;
  border-bottom:1px solid var(--border);}
.chips .chip{
  display:inline-flex; align-items:center; gap:2px; padding:3px 5px 3px 11px;
  border:1px solid var(--border); border-radius:999px; background:var(--surface-2);
  font-size:13px; font-weight:700;
}
.chips .chip a{color:var(--navy);}
.chips .chip a:hover{color:var(--green);}
.chips .chip form{display:inline;}
.chips .chip button{border:0; background:none; color:var(--faint); cursor:pointer;
  font-size:14px; line-height:1; padding:0 5px;}
.chips .chip button:hover{color:var(--red);}
.colcfg{position:relative; margin-left:auto;}
.colcfg > summary{list-style:none; cursor:pointer;}
.colcfg > summary::-webkit-details-marker{display:none;}
.colcfg-panel{
  position:absolute; right:0; z-index:10; margin-top:6px; width:256px;
  background:var(--surface); border:1px solid var(--border); border-radius:var(--r-sm);
  box-shadow:var(--shadow-lg); padding:12px 14px;
}
.colcfg-panel ol{list-style:none; margin:0 0 10px; padding:0;}
.colcfg-panel li{display:flex; align-items:center; gap:5px; padding:3px 2px; font-size:13.5px;}
.colcfg-panel li .mv{
  border:1px solid var(--border); background:var(--surface); border-radius:5px;
  width:21px; height:21px; line-height:1; font-size:10px; cursor:pointer;
  color:var(--muted); padding:0; flex:0 0 auto;
}
.colcfg-panel li .mv:hover{color:var(--navy); border-color:#d2dae7;}
.colcfg-panel li label{flex:1; display:flex; gap:7px; align-items:center; cursor:pointer;}
.colcfg-panel li label input{width:15px; height:15px; accent-color:var(--green); cursor:pointer;}
.list-actions{
  display:flex; flex-wrap:wrap; gap:8px; align-items:center;
  padding:10px 14px; border-bottom:1px solid var(--border);
}
.savebar{display:flex; flex-wrap:wrap; gap:8px; align-items:center; padding:12px 14px;}
.savebar input[type=text]{width:320px; height:38px;}

:root{
  --glass-bg:rgba(255,255,255,.72);
  --glass-bg-strong:rgba(255,255,255,.86);
  --glass-brd:rgba(255,255,255,.55);
  --glass-brd-soft:rgba(226,232,242,.75);
  --glass-blur:blur(14px) saturate(1.15);
  --glass-shadow:0 1px 2px rgba(30,48,84,.05),0 8px 24px rgba(30,48,84,.06);
  --glass-shadow-lg:0 2px 6px rgba(30,48,84,.07),0 20px 48px rgba(30,48,84,.12);
}

body{
  background-image:
    radial-gradient(1100px 620px at 10% -10%, rgba(33,60,109,.08), transparent 60%),
    radial-gradient(900px 540px at 100% 2%, rgba(79,154,16,.06), transparent 62%);
  background-attachment:fixed;
  background-repeat:no-repeat;
}

@supports (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px)){
  .pas-top{
    background:rgba(255,255,255,.72);
    -webkit-backdrop-filter:var(--glass-blur); backdrop-filter:var(--glass-blur);
    border-bottom-color:transparent;
    box-shadow:0 1px 0 rgba(228,233,241,.9),0 4px 18px rgba(30,48,84,.05);
  }
  .pas-nav{
    background:linear-gradient(180deg, rgba(33,60,109,.92) 0%, rgba(24,44,80,.94) 100%);
    -webkit-backdrop-filter:blur(18px) saturate(1.2); backdrop-filter:blur(18px) saturate(1.2);
    box-shadow:1px 0 0 rgba(255,255,255,.06),2px 0 18px rgba(30,48,84,.10);
  }
}

.card,.evidence,.doc{
  position:relative;
  background:var(--glass-bg-strong); border-color:var(--glass-brd-soft);
  box-shadow:var(--glass-shadow);
}
@supports (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px)){
  .card,.evidence{
    background:var(--glass-bg);
    -webkit-backdrop-filter:var(--glass-blur); backdrop-filter:var(--glass-blur);
    border-color:var(--glass-brd);
  }
  .doc{
    -webkit-backdrop-filter:var(--glass-blur); backdrop-filter:var(--glass-blur);
  }

  .card::before,.evidence::before,.doc::before{
    content:""; position:absolute; inset:0 0 auto 0; height:1px; pointer-events:none;
    border-radius:var(--r) var(--r) 0 0;
    background:linear-gradient(90deg, transparent, rgba(255,255,255,.9) 22%, rgba(255,255,255,.9) 78%, transparent);
  }
  .kpi > div{
    background:var(--glass-bg);
    -webkit-backdrop-filter:var(--glass-blur); backdrop-filter:var(--glass-blur);
    border-color:var(--glass-brd);
  }
}

table.tbl tbody{background:rgba(255,255,255,.95);}
table.tbl th{background:rgba(237,241,248,.93);}

input[type=text],input[type=password],input[type=number],input[type=date],select,textarea{
  background:rgba(255,255,255,.75);
}
input:focus,select:focus,textarea:focus{background:rgba(255,255,255,.98);}

@media print{
  body{background-image:none;}
  .card,.evidence,.doc,.kpi > div,table.tbl th,table.tbl tbody{
    background-color:#fff !important; box-shadow:none !important;
    -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
  }
  .card::before,.evidence::before,.doc::before{display:none;}
}

@media (prefers-reduced-transparency: reduce){
  .pas-top,.pas-nav,.card,.evidence,.doc,.kpi > div{
    -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
  }
  .pas-top,.card,.evidence,.doc,.kpi > div{background:#fff !important;}
  .pas-nav{background:linear-gradient(180deg,var(--navy) 0%,var(--navy-deep) 100%) !important;}
  body{background-image:none;}
}

.tabs{
  display:flex; gap:2px; margin:0 0 18px; padding:4px;
  background:var(--surface-2); border:1px solid var(--border); border-radius:var(--r-sm);
}
.tabs .tab{
  padding:9px 16px; border-radius:6px; font-size:15px; font-weight:500;
  color:var(--muted); text-decoration:none; white-space:nowrap;
  transition:background .15s var(--ease-out), color .15s var(--ease-out);
}
.tabs .tab:hover{ background:var(--surface); color:var(--text); }
.tabs .tab.on{ background:var(--surface); color:var(--navy); box-shadow:var(--shadow); }
.tabs .tab:focus-visible{ outline:2px solid var(--navy); outline-offset:1px; }

/* ── 사이드바 대제목(아코디언) ───────────────────────────── */
.pas-nav .grp{border-top:1px solid rgba(255,255,255,.08); margin-top:8px;}
.pas-nav .grp > summary{
  display:flex; align-items:center; gap:8px; cursor:pointer; list-style:none;
  padding:13px 20px 9px; font-size:12.5px; font-weight:800; letter-spacing:.10em;
  color:#8496b5; text-transform:uppercase; user-select:none;
}
.pas-nav .grp > summary::-webkit-details-marker{display:none;}
.pas-nav .grp > summary:hover{color:#c3cee0;}
.pas-nav .grp > summary .caret{
  width:15px; height:15px; margin-left:auto; flex:0 0 auto;
  transition:transform .18s var(--ease-out);
}
.pas-nav .grp[open] > summary .caret{transform:rotate(180deg);}
.pas-nav .grp-body{padding-bottom:4px;}
.pas-nav .soon{
  margin-left:auto; padding:1px 7px; border-radius:999px; flex:0 0 auto;
  background:rgba(255,255,255,.10); color:#9db4dc;
  font-size:10.5px; font-weight:700; letter-spacing:.02em;
}

/* ── 좁은 화면 메뉴 단추 ─────────────────────────────────── */
.nav-toggle{
  display:none; place-items:center; width:36px; height:36px; margin-right:12px;
  border:1px solid var(--border); border-radius:var(--r-sm);
  background:var(--surface); color:var(--text); cursor:pointer; flex:0 0 auto;
}
.nav-toggle .ic{width:18px; height:18px;}
.pas-top h1{min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.pas-top{gap:12px;}
.pas-user{flex:0 0 auto;}

/* ── 넓은 표는 잘리지 않고 그 칸 안에서 가로로 스크롤된다 ── */
.tbl-scroll{overflow-x:auto; max-width:100%; -webkit-overflow-scrolling:touch;}
.card > .body,.card,.work,.work > div{min-width:0;}
/* 표는 먼저 줄어들 수 있는 데까지 줄어들고(글이 접히고), 그래도 안 되면 그때 스크롤한다.
   예전에는 카드 밖으로 삐져나가 옆 칸과 겹치거나 잘렸다. */
/* 표에 상한이 없으면 긴 문장 칸이 접히지 않고 그대로 늘어난다
   (키 사용량의 「상품 확인」 2,247px · 조사 상세의 「사유」 3,506px 이 그랬다).
   상한을 주면 접을 수 있는 칸은 접히고, 그래도 안 되는 표만 스크롤한다. */
.tbl-scroll > table.tbl{width:100%; max-width:100%; table-layout:auto;}
table.tbl td,table.tbl td .small,table.tbl td .muted{overflow-wrap:anywhere; word-break:break-word;}
table.tbl td{overflow-wrap:anywhere;}
table.tbl th.nowrap,table.tbl td.nowrap{white-space:nowrap;}

/* ── 줄바꿈 없는 가로 줄이 카드를 밀어내던 것 ─────────────
   템플릿 곳곳에 style="display:flex; gap:8px" 로 박힌 줄이 38곳 있는데
   flex-wrap 이 없어 단추가 많으면 카드 밖으로 나가고 페이지가 가로로 밀렸다
   (조사 상세에서 447px). 자리가 모자랄 때만 접히므로 넉넉한 화면에서는 그대로다. */
.pas-main [style*="display:flex"]{flex-wrap:wrap;}
.card > .head{flex-wrap:wrap;}

/* 표 머리글도 자리가 없으면 접힌다 — 안 접혀서 표가 칸보다 넓어지던 원인 하나.
   접히면 안 되는 칸은 .nowrap 을 준다(금액·날짜 칸은 이미 그렇다). */
/* ★표가 3,000px 로 늘어나던 진짜 원인 — 196행의 `table.tbl td{white-space:nowrap}` 이라
   모든 칸이 기본으로 줄바꿈 금지였고, 접히려면 템플릿마다 class="wrap" 을 붙여야 했다.
   안 붙은 긴 문장 칸(상품 확인·사유·내용)이 표를 통째로 밀어내 잘려 보였다.
   기본을 「접힘」으로 뒤집고, 접히면 안 되는 칸만 .nowrap 으로 막는다.
   단추·배지·금액칸은 저희끼리 이미 nowrap 이라 영향받지 않는다. */
table.tbl th,table.tbl td{white-space:normal;}
table.tbl th.nowrap,table.tbl td.nowrap,table.tbl th.won,table.tbl td.won{white-space:nowrap;}
table.tbl td .btn,table.tbl td .badge,table.tbl td .step{white-space:nowrap;}

/* ── 표가 제 칸에 들어가도록 좁은 화면에서 여백·글자를 조인다 ──
   1100~1400px 에서 표가 30~150px 넘쳐 잘려 보이던 것을 이걸로 흡수한다. */
@media(max-width:1500px){
  table.tbl th,table.tbl td{padding-left:9px; padding-right:9px;}
  table.tbl th:first-child,table.tbl td:first-child{padding-left:14px;}
  table.tbl th:last-child,table.tbl td:last-child{padding-right:14px;}
  table.tbl td{font-size:13.5px;}
  table.tbl th{font-size:12.5px;}
}
@media(max-width:1200px){
  table.tbl th,table.tbl td{padding-left:7px; padding-right:7px; padding-top:9px; padding-bottom:9px;}
  table.tbl td{font-size:13px;}
}

/* 그래도 넓은 표(키 사용량·검색 축처럼 칸이 많은 것)는 스크롤한다 —
   스크롤할 수 있다는 것이 보이도록 양 끝에 그림자를 둔다(스크롤하면 사라진다). */
.tbl-scroll{
  background:
    linear-gradient(to right, var(--surface) 30%, rgba(255,255,255,0)),
    linear-gradient(to right, rgba(255,255,255,0), var(--surface) 70%) 100% 0,
    radial-gradient(farthest-side at 0 50%, rgba(30,48,84,.16), rgba(30,48,84,0)),
    radial-gradient(farthest-side at 100% 50%, rgba(30,48,84,.16), rgba(30,48,84,0)) 100% 0;
  background-repeat:no-repeat;
  background-size:34px 100%, 34px 100%, 13px 100%, 13px 100%;
  background-attachment:local, local, scroll, scroll;
}
