/* 화면 설계서 v0.3 의 컴포넌트 CSS (자동 추출, 직접 수정 금지 — 덮어쓰기는 app.css) */

:root{
  --bg:#edf0f6; --surface:#ffffff; --surface2:#f5f7fb; --fg:#15203a; --muted:#57647f; --line:#d5dce9;
  --pm:#6a50d3; --po:#bf2f79; --si:#14855a; --sv:#0f8590; --op:#c76a12; --hq:#1f3a7a; --ext:#6d7788;
  --need:#c98200; --alert:#cf3434; --ok:#1d8a52; --call:#e0457b; --plan:#b7791f;
  --bill:#1f3a7a; --intl:#0f8590;
  --shadow:0 1px 2px rgba(20,30,60,.06),0 6px 18px rgba(20,30,60,.07);
  --font:"IBM Plex Sans KR","Apple SD Gothic Neo","Malgun Gothic","Noto Sans KR",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0c1222; --surface:#151d33; --surface2:#1a2440; --fg:#e7ebf7; --muted:#9ba7c3; --line:#2a3556;
    --pm:#a898f5; --po:#ee72ae; --si:#43c68f; --sv:#3ec3cf; --op:#f2a453; --hq:#86a6f5; --ext:#9aa4b8;
    --need:#f0b545; --alert:#ff6b6b; --ok:#4cd08b; --call:#ff6fa0; --plan:#f0b545;
    --bill:#86a6f5; --intl:#3ec3cf;
    --shadow:0 1px 2px rgba(0,0,0,.4),0 6px 18px rgba(0,0,0,.35); color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#0c1222; --surface:#151d33; --surface2:#1a2440; --fg:#e7ebf7; --muted:#9ba7c3; --line:#2a3556;
  --pm:#a898f5; --po:#ee72ae; --si:#43c68f; --sv:#3ec3cf; --op:#f2a453; --hq:#86a6f5; --ext:#9aa4b8;
  --need:#f0b545; --alert:#ff6b6b; --ok:#4cd08b; --call:#ff6fa0; --plan:#f0b545;
  --bill:#86a6f5; --intl:#3ec3cf;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 6px 18px rgba(0,0,0,.35); color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:16px}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font);font-size:14px;line-height:1.55}
button{font:inherit;color:inherit}
a{color:inherit}
.doc{display:grid;grid-template-columns:232px minmax(0,1fr);max-width:1560px;margin:0 auto;gap:28px;padding:0 16px}
.toc{position:sticky;top:0;align-self:start;height:100vh;overflow:auto;padding:24px 0 40px;font-size:13px}
.toc b{display:block;font-size:11px;letter-spacing:.06em;color:var(--muted);margin:16px 0 6px;font-weight:600}
.toc a{display:flex;gap:8px;text-decoration:none;padding:4px 8px;border-radius:6px;color:var(--fg)}
.toc a:hover,.toc a.on{background:var(--surface)}
.toc a code{font-family:var(--mono);font-size:10.5px;color:var(--muted);min-width:46px;padding-top:2px}
.toc .tbtn{margin-top:18px;border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:6px 10px;cursor:pointer;font-size:12px}
main{padding:28px 0 80px;min-width:0}
@media (max-width:900px){.doc{grid-template-columns:1fr}.toc{position:static;height:auto;border-bottom:1px solid var(--line)}}

/* 문서 */
.cover{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:28px 30px;box-shadow:var(--shadow)}
.cover small{font-family:var(--mono);color:var(--muted);letter-spacing:.06em}
.cover h1{margin:6px 0 4px;font-size:clamp(24px,3vw,32px);letter-spacing:-.01em}
.cover p{margin:0;color:var(--muted);max-width:80ch}
.meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-top:18px}
.meta div{background:var(--surface2);border-radius:8px;padding:8px 12px}
.meta span{display:block;font-size:11px;color:var(--muted)}
h2.sec{font-size:21px;margin:56px 0 6px;letter-spacing:-.01em}
.lead{color:var(--muted);margin:0 0 16px;max-width:90ch}
.box{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px 20px}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}
table.dt{width:100%;border-collapse:collapse;font-size:13px}
table.dt th,table.dt td{text-align:left;padding:7px 10px;border-bottom:1px solid var(--line);vertical-align:top}
table.dt th{font-size:11.5px;color:var(--muted);font-weight:600;background:var(--surface2)}
table.dt code,.mono{font-family:var(--mono);font-size:12px}
.ms{display:inline-block;font-family:var(--mono);font-size:10.5px;font-weight:600;padding:1px 7px;border-radius:999px;border:1px solid currentColor}
.ms.m1{color:var(--hq)}.ms.m2{color:var(--si)}.ms.m3{color:var(--plan)}.ms.pl{color:var(--po)}
.ia{columns:3 220px;column-gap:24px;font-size:13px}
.ia ul{margin:0 0 12px;padding-left:16px;break-inside:avoid}
.ia>ul>li{font-weight:600}
.ia li li{font-weight:400;color:var(--muted)}

/* 화면 섹션 */
.scr{margin-top:44px;scroll-margin-top:16px}
.scr-h{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:12px}
.scr-h code{font-family:var(--mono);font-size:12px;background:var(--fg);color:var(--bg);padding:2px 8px;border-radius:6px}
.scr-h h3{margin:0;font-size:18px}
.scr-h p{flex-basis:100%;margin:0;color:var(--muted)}
.scr-b{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}
@media (max-width:1280px){.scr-b{grid-template-columns:1fr}}
.spec{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;font-size:13px}
.spec h4{margin:12px 0 6px;font-size:12px;color:var(--muted);letter-spacing:.04em}
.spec h4:first-child{margin-top:0}
.spec ol{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.spec ol li{display:grid;grid-template-columns:22px 1fr;gap:6px}
.spec ul{margin:0;padding-left:16px;display:grid;gap:4px}
.spec .note{background:color-mix(in srgb,var(--need) 12%,transparent);border-left:3px solid var(--need);padding:8px 10px;border-radius:0 6px 6px 0;margin-top:10px}

/* 콜아웃 */
.cn{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--call);color:#fff;font:700 10.5px/1 var(--mono);flex:0 0 auto;vertical-align:middle}
.mock .cn{box-shadow:0 0 0 2px var(--surface)}
.cn.a{position:absolute;z-index:3}

/* 목업 프레임 */
.mock{background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);overflow:auto;font-size:12.5px}
.chrome{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--surface2);border-bottom:1px solid var(--line);min-width:980px}
.chrome i{width:9px;height:9px;border-radius:50%;background:var(--line);display:inline-block;margin-right:4px}
.chrome .url{flex:1;font-family:var(--mono);font-size:11px;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:3px 10px}
.app{display:grid;grid-template-columns:172px minmax(0,1fr);min-width:980px;min-height:420px}
.app.full{grid-template-columns:1fr}
.side{background:var(--hq);color:#fff;padding:12px 8px;display:flex;flex-direction:column;gap:2px}
:root[data-theme="dark"] .side{background:#0a1530}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .side{background:#0a1530}}
.side .brand{font-weight:700;font-size:13px;padding:4px 8px 10px;display:flex;gap:6px;align-items:center}
.side .brand small{display:block;font-weight:400;font-size:10.5px;opacity:.7}
.side a{display:flex;justify-content:space-between;align-items:center;text-decoration:none;color:rgba(255,255,255,.82);padding:6px 9px;border-radius:6px;font-size:12px}
.side a.on{background:rgba(255,255,255,.16);color:#fff;font-weight:600}
.side a em{font-style:normal;background:var(--alert);color:#fff;font-size:10px;padding:0 6px;border-radius:9px}
.side .grp{font-size:10px;opacity:.55;padding:10px 9px 2px;letter-spacing:.06em}
.main{padding:14px 18px 18px;background:var(--bg);min-width:0;position:relative}
.top{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.top h5{margin:0;font-size:16px;margin-right:auto}
.planbar{background:color-mix(in srgb,var(--plan) 18%,var(--surface));border:1px solid var(--plan);color:var(--fg);padding:6px 12px;border-radius:8px;margin-bottom:10px;display:flex;gap:10px;align-items:center;font-size:12px}

/* 컴포넌트 */
.btn{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);background:var(--surface);border-radius:7px;padding:5px 11px;font-size:12px;white-space:nowrap}
.btn.pri{background:var(--hq);color:#fff;border-color:var(--hq)}
:root[data-theme="dark"] .btn.pri{color:#0c1222}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .btn.pri{color:#0c1222}}
.btn.dan{color:var(--alert);border-color:color-mix(in srgb,var(--alert) 50%,var(--line))}
.btn.sm{padding:2px 8px;font-size:11px}
.inp{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);border-radius:7px;padding:5px 10px;color:var(--muted);font-size:12px;min-width:120px}
.inp.sel::after{content:"▾";margin-left:auto;font-size:10px}
.inp.wide{min-width:220px}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:7px;overflow:hidden;background:var(--surface)}
.seg span{padding:4px 10px;font-size:11.5px;border-right:1px solid var(--line)}
.seg span:last-child{border-right:0}
.seg span.on{background:var(--fg);color:var(--bg)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px 14px;position:relative}
.card h6{margin:0 0 8px;font-size:12.5px;display:flex;align-items:center;gap:6px}
.card h6 .r{margin-left:auto;font-weight:400;color:var(--muted);font-size:11px}
.kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:10px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px;position:relative}
.kpi span{font-size:11px;color:var(--muted)}
.kpi b{display:block;font-size:21px;font-variant-numeric:tabular-nums;letter-spacing:-.01em;margin-top:2px}
.kpi small{font-size:10.5px;color:var(--muted)}
.kpi.warn b{color:var(--alert)}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.cols{display:grid;gap:10px}
.tag{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;padding:1px 7px;border-radius:999px;background:color-mix(in srgb,var(--c,var(--muted)) 14%,transparent);color:var(--c,var(--muted));font-weight:600;white-space:nowrap}
.tag.out{background:transparent;border:1px solid var(--c,var(--line))}
.av{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:color-mix(in srgb,var(--c) 18%,var(--surface));color:var(--c);font-size:9.5px;font-weight:700;border:1.5px solid var(--c);flex:0 0 auto;letter-spacing:-.04em}
.av.lg{width:46px;height:46px;font-size:14px}
.av.need{border-style:dashed;border-color:var(--need);color:var(--need);background:transparent}
.avs{display:flex}
.avs .av{margin-right:-5px}
table.t{width:100%;border-collapse:collapse;background:var(--surface);font-size:12px}
table.t th,table.t td{padding:7px 9px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
table.t th{font-size:11px;color:var(--muted);font-weight:600;background:var(--surface2)}
table.t td.n,table.t th.n{text-align:right;font-variant-numeric:tabular-nums}
table.t tr.hl td{background:color-mix(in srgb,var(--hq) 7%,transparent)}
.who{display:flex;align-items:center;gap:7px}
.meter{display:inline-flex;align-items:center;gap:6px;font-variant-numeric:tabular-nums}
.meter i{display:block;width:70px;height:6px;border-radius:3px;background:var(--surface2);border:1px solid var(--line);overflow:hidden;position:relative}
.meter i::before{content:"";position:absolute;inset:0 auto 0 0;width:min(var(--v),100%);background:var(--c,var(--hq))}
.meter.over{color:var(--alert);font-weight:700}
.meter.over i::before{background:var(--alert)}
.muted{color:var(--muted)}
.ok{color:var(--ok)}.bad{color:var(--alert)}.warnc{color:var(--need)}
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:10px}
.tabs span{padding:6px 12px;font-size:12px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}
.tabs span.on{color:var(--fg);border-color:var(--hq);font-weight:600}
.field{display:grid;gap:4px;font-size:11.5px}
.field label{color:var(--muted)}
.field label b{color:var(--alert)}
.field .inp{width:100%}
.form{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}
.modal-bg{background:rgba(10,16,32,.45);padding:24px;display:grid;place-items:center}
.modal{background:var(--surface);border-radius:12px;box-shadow:0 20px 50px rgba(0,0,0,.3);width:100%;max-width:760px;padding:16px 18px;position:relative}
.modal h5{margin:0 0 10px;font-size:15px}
.drawer{position:absolute;top:0;right:0;bottom:0;width:430px;background:var(--surface);border-left:1px solid var(--line);box-shadow:-10px 0 30px rgba(10,20,40,.15);padding:14px 16px;overflow:hidden}
.alert-l{border-left:3px solid var(--c);padding:6px 10px;background:var(--surface2);border-radius:0 6px 6px 0;font-size:11.5px;display:flex;gap:8px;align-items:center}
.alert-l b{font-weight:600}
.need{border:1.5px dashed var(--need);color:var(--need);border-radius:6px;padding:1px 7px;font-size:10.5px;font-weight:600;white-space:nowrap}
.tree{font-size:12px;display:grid;gap:1px}
.tree div{padding:4px 8px;border-radius:6px;display:flex;align-items:center;gap:6px}
.tree div.on{background:color-mix(in srgb,var(--hq) 12%,transparent);font-weight:600}
.tree div i{width:8px;height:8px;border-radius:2px;background:var(--c)}
.tree div small{margin-left:auto;color:var(--muted)}

/* 차트 */
.vbars{display:flex;align-items:flex-end;gap:10px;height:150px;padding:8px 4px 0;border-bottom:1px solid var(--line);position:relative}
.vbars .b{flex:1;display:flex;flex-direction:column-reverse;height:100%;position:relative}
.vbars .b s{display:block;text-decoration:none}
.vbars .b .bl{background:var(--bill)}
.vbars .b .in{background:var(--intl)}
.vbars .b.fut .bl,.vbars .b.fut .in{opacity:.4;background-image:repeating-linear-gradient(45deg,transparent 0 3px,rgba(255,255,255,.55) 3px 5px)}
.vbars .b em{position:absolute;top:-16px;left:0;right:0;text-align:center;font-style:normal;font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}
.vbars .tgt{position:absolute;left:0;right:0;border-top:1px dashed var(--alert);font-size:9.5px;color:var(--alert)}
.xl{display:flex;gap:10px;padding:4px 4px 0;font-size:10px;color:var(--muted)}
.xl span{flex:1;text-align:center}
.legend{display:flex;gap:12px;font-size:10.5px;color:var(--muted);flex-wrap:wrap}
.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;background:var(--c);margin-right:4px;vertical-align:-1px}
.hbar{display:grid;grid-template-columns:86px 1fr 44px;gap:8px;align-items:center;font-size:11.5px;margin:5px 0}
.hbar i{height:10px;border-radius:3px;background:var(--surface2);position:relative;overflow:hidden}
.hbar i::before{content:"";position:absolute;inset:0 auto 0 0;width:var(--v);background:var(--c)}
.hbar b{text-align:right;font-variant-numeric:tabular-nums}

/* 간트 */
.gantt{display:grid;grid-template-columns:150px repeat(9,1fr);background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden;font-size:11px}
.gantt .gh{background:var(--surface2);color:var(--muted);font-size:10.5px;padding:6px 6px;border-bottom:1px solid var(--line);text-align:center}
.gantt .gh.now{color:var(--fg);font-weight:700;background:color-mix(in srgb,var(--hq) 14%,var(--surface2))}
.gantt .gg{grid-column:1/-1;background:var(--surface2);padding:4px 10px;font-weight:700;font-size:11px;border-bottom:1px solid var(--line);display:flex;gap:8px;align-items:center}
.gantt .gn{padding:5px 8px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:6px;white-space:nowrap}
.gantt .gn small{color:var(--muted)}
.gantt .gl{grid-column:2/-1;position:relative;border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(9,1fr);min-height:34px}
.gantt .gl>span{border-right:1px dashed var(--line)}
.gantt .gl>span.now{background:color-mix(in srgb,var(--hq) 6%,transparent)}
.seg-b{position:absolute;height:13px;border-radius:4px;background:var(--c);color:#fff;font-size:9.5px;line-height:13px;padding:0 5px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.seg-b.ov{outline:2px solid var(--alert);outline-offset:1px}
.seg-b.pool{background:transparent;border:1.5px dashed var(--muted);color:var(--muted)}
.seg-b.add{background:repeating-linear-gradient(45deg,var(--c) 0 6px,color-mix(in srgb,var(--c) 70%,#fff) 6px 9px);outline:2px solid var(--plan)}
.ovt{position:absolute;right:4px;top:2px;font-size:9.5px;font-weight:700;color:var(--alert)}

/* 히트맵 */
.heat td.h{text-align:center;font-variant-numeric:tabular-nums;font-size:11.5px;color:var(--fg)}
.heat td.h.hi{color:#fff}

/* Squad 보드 */
.board{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.lane{background:color-mix(in srgb,var(--c) 6%,var(--surface2));border:1px solid color-mix(in srgb,var(--c) 30%,var(--line));border-radius:10px;padding:10px;display:grid;gap:8px;align-content:start}
.lane>header{display:flex;align-items:center;gap:6px;font-weight:700;font-size:12.5px;color:var(--c)}
.lane>header small{color:var(--muted);font-weight:400}
.sq{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--c);border-radius:8px;padding:8px 10px;display:grid;gap:6px;position:relative}
.sq .t1{display:flex;align-items:center;gap:6px;font-weight:600;font-size:12px}
.sq .t1 .r{margin-left:auto}
.sq .t2{color:var(--muted);font-size:11px}
.sq .slots{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.prog{height:4px;border-radius:2px;background:var(--surface2);overflow:hidden}
.prog i{display:block;height:100%;width:var(--v);background:var(--c)}
.diff{font-size:11.5px;display:grid;gap:5px}
.diff div{display:flex;gap:6px;align-items:flex-start;padding:5px 8px;border-radius:6px;background:var(--surface2)}
.diff .k{font-family:var(--mono);font-size:10px;font-weight:700;padding:0 5px;border-radius:4px;color:#fff;flex:0 0 auto;margin-top:1px}
.k.add{background:var(--ok)}.k.mod{background:var(--plan)}.k.del{background:var(--alert)}
.cmp td.up{color:var(--alert);font-weight:600}.cmp td.dn{color:var(--ok);font-weight:600}
.steps{display:flex;gap:6px;margin-bottom:12px}
.steps span{flex:1;padding:6px 10px;border-radius:6px;background:var(--surface2);font-size:11.5px;color:var(--muted)}
.steps span.on{background:var(--hq);color:#fff;font-weight:600}
.chk{display:inline-block;width:13px;height:13px;border:1.5px solid var(--muted);border-radius:3px;vertical-align:-2px;margin-right:4px}
.chk.on{background:var(--hq);border-color:var(--hq);box-shadow:inset 0 0 0 2px var(--surface)}
.sw{display:inline-block;width:26px;height:14px;border-radius:7px;background:var(--line);position:relative;vertical-align:-3px}
.sw::after{content:"";position:absolute;top:2px;left:2px;width:10px;height:10px;border-radius:50%;background:#fff}
.sw.on{background:var(--ok)}.sw.on::after{left:14px}
.foot{margin-top:60px;color:var(--muted);font-size:12px}
.state{display:flex;gap:8px;align-items:center;font-size:13px;margin:0 0 8px;padding:6px 12px;border-radius:8px;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--hq)}
.quad{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.quad .card{padding:10px 12px}
.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;text-align:center}
.flow div{background:var(--surface2);border-radius:6px;padding:4px 2px}
.flow span{display:block;font-size:10px;color:var(--muted)}
.flow b{font-size:17px;font-variant-numeric:tabular-nums}
.stk{display:flex;height:16px;border-radius:4px;overflow:hidden;margin-top:2px;min-width:90px}
.stk i{width:var(--w);background:var(--c);color:#fff;font-style:normal;font-size:9.5px;line-height:16px;text-align:center;overflow:hidden;white-space:nowrap}
.stk.sm{height:10px}.stk.sm i{font-size:0}
.state{display:flex;gap:8px;align-items:center;font-size:13px;margin:0 0 8px;padding:6px 12px;border-radius:8px;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--hq);flex-wrap:wrap}
.stk{display:flex;height:16px;border-radius:4px;overflow:hidden;margin-top:2px;min-width:90px;background:var(--surface2)}
.stk i{width:var(--w);background:var(--c);color:#fff;font-style:normal;font-size:9.5px;line-height:16px;text-align:center;overflow:hidden;white-space:nowrap}
.stk.sm{height:10px}.stk.sm i{font-size:0}
/* 트리 그리드 */
table.tg td{vertical-align:middle}
table.tg tr.r1 td{background:var(--surface2);font-size:12px}
table.tg tr.r2 td{background:color-mix(in srgb,var(--surface2) 45%,var(--surface))}
table.tg tr.r2.open td{border-bottom-color:transparent}
table.tg .lnk{text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:2px}
table.tg td.hc{padding:3px 2px;min-width:38px;text-align:center}
.hc i{display:block;height:22px;line-height:22px;border-radius:4px;background:var(--b);font-style:normal;font-size:10.5px;font-variant-numeric:tabular-nums;color:var(--fg);position:relative}
.hc.hi i{color:#fff}
.hc.z i{background:transparent;border:1px dashed var(--line);color:var(--muted)}
.hc.fut i{opacity:.72}
.hc.now i{box-shadow:0 0 0 2px var(--fg)}
.hc.tn i,.tn{background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--plan) 55%,var(--surface)) 0 4px,color-mix(in srgb,var(--plan) 22%,var(--surface)) 4px 8px)!important;border:1px solid var(--plan)!important;color:var(--fg)!important;opacity:1!important;border-radius:4px}
.hc.tu i::after{content:"";position:absolute;left:3px;right:3px;bottom:-1px;height:3px;border-radius:2px;background:var(--plan)}
.hc-l{display:inline-block;width:14px;height:10px;border-radius:2px;background:var(--b);vertical-align:-1px}
.hc-l.tnl{background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--plan) 55%,var(--surface)) 0 3px,color-mix(in srgb,var(--plan) 22%,var(--surface)) 3px 6px);border:1px solid var(--plan)}
.st{display:inline-flex;align-items:center;gap:3px;font-size:10.5px;font-weight:600;padding:1px 7px;border-radius:999px;white-space:nowrap;background:color-mix(in srgb,var(--c) 14%,transparent);color:var(--c)}
.st::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--c)}
.st.ok{--c:var(--ok)}.st.warn{--c:var(--need)}.st.late{--c:var(--alert)}.st.idle{--c:var(--muted)}.st.over{--c:var(--need)}.st.issue{--c:var(--alert)}
.st.none{--c:var(--muted);background:transparent;border:1px dashed var(--muted)}
.sqc{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;padding:1px 7px;border-radius:5px;border:1px solid color-mix(in srgb,var(--c) 45%,var(--line));background:color-mix(in srgb,var(--c) 10%,var(--surface));margin:1px 3px 1px 0;white-space:nowrap}
.sqc::before{content:"";width:3px;height:12px;border-radius:2px;background:var(--c)}
.sqc small{color:var(--muted)}
.sqc.tnc{border-style:dashed;border-color:var(--plan);background:color-mix(in srgb,var(--plan) 10%,var(--surface))}
.cmt{font-size:10.5px;color:var(--muted);margin-top:3px;white-space:normal;max-width:210px;line-height:1.35}
td.pc{white-space:normal!important}
.rd{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--alert);margin-right:5px;vertical-align:1px}
.qf{font-size:11.5px;padding:3px 10px;border-radius:999px;border:1px solid var(--line);background:var(--surface);white-space:nowrap}
.qf b{font-variant-numeric:tabular-nums;margin-left:3px}
.qf.on{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.tgt{font-size:10.5px;color:var(--muted);margin-top:3px;white-space:nowrap}
.tgt b{color:var(--fg)}
.lv{font-size:10px;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:0 4px;margin-left:3px;white-space:nowrap}
/* 문서 */
.sysflow{display:grid;gap:8px}
.sf{background:var(--surface);border:1px solid var(--line);border-left:5px solid var(--c);border-radius:10px;padding:10px 14px;position:relative}
.sf>b{font-size:14px}
.sf p{margin:4px 0 0;font-size:13px}
.sf+.sf::before{content:"▼";position:absolute;top:-13px;left:22px;font-size:10px;color:var(--muted)}
.sf4{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:6px;margin-top:6px}
.sf4 span{border:1px solid var(--line);border-top:3px solid var(--c);border-radius:8px;padding:6px 10px;font-size:12.5px;font-weight:600;background:var(--surface2)}
.sf4 small{display:block;font-weight:400;color:var(--muted);font-size:11.5px}
.flowline{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12.5px;margin-bottom:8px}
.flowline>b{min-width:44px}
.flowline>span{border:1px solid var(--line);background:var(--surface2);border-radius:6px;padding:1px 8px}
table.mx td,table.mx th{text-align:center}
table.mx td:first-child,table.mx th:first-child{text-align:left}
table.mx .us{background:color-mix(in srgb,var(--hq) 10%,transparent);font-weight:700}
.kpi small b,.kpi small strong{display:inline;font-size:inherit;margin:0;font-weight:700}
.scr-b.wide{grid-template-columns:1fr}
.scr-b.wide .spec ol{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));column-gap:20px}
tr.mhr th{background:var(--surface);border-bottom:0;padding:6px 4px 0}
th.mh{text-align:center!important;font-size:10.5px!important;color:var(--fg)!important;background:var(--surface2)!important;border-bottom:2px solid var(--hq)!important;border-radius:6px 6px 0 0}
th.mh.fut{color:var(--muted)!important;border-bottom:2px dashed var(--muted)!important}
th.sep,td.sep{border-left:2px dashed var(--line)!important}
.hc.nt i{height:10px;margin:6px 0}
.tipdemo{position:absolute;z-index:6;background:var(--fg);color:var(--bg);font-size:11px;line-height:1.55;padding:9px 12px;border-radius:8px;box-shadow:0 10px 26px rgba(10,20,40,.3);width:250px;pointer-events:none}
.tipdemo::before{content:"";position:absolute;top:-6px;left:24px;border:6px solid transparent;border-top:0;border-bottom-color:var(--fg)}
.tipdemo .tsep{display:block;border-top:1px solid color-mix(in srgb,var(--bg) 30%,transparent);margin:4px 0}
.subh{font-size:11px;font-weight:700;color:var(--muted);display:flex;align-items:center;gap:6px;padding:2px 2px 0;letter-spacing:.02em}
.sqm{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;font-size:11px}
.pp{display:grid;gap:3px}.pp small{font-size:10.5px;color:var(--muted)}
.sq.tnq{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--plan) 8%,var(--surface)) 0 8px,var(--surface) 8px 16px);border-color:var(--plan)}
.av.tnav{border-style:dashed;background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--plan) 35%,var(--surface)) 0 3px,var(--surface) 3px 6px)}
.typesel{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.typesel span{border:1px solid var(--line);border-top:3px solid var(--c);border-radius:8px;padding:8px 10px;display:grid;gap:2px;font-size:12px}
.typesel span.on{outline:2px solid var(--hq);background:color-mix(in srgb,var(--hq) 6%,var(--surface))}
.typesel small{color:var(--muted);font-size:11px}
.sgt{display:grid;grid-template-columns:190px repeat(12,1fr);background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden;font-size:11px;position:relative}
.sgt .h{background:var(--surface2);color:var(--muted);font-size:10.5px;padding:6px 4px;text-align:center;border-bottom:1px solid var(--line)}
.sgt .h.now{color:var(--fg);font-weight:700}
.sgt .g{grid-column:1/-1;background:var(--surface2);padding:4px 10px;font-weight:700;font-size:11px;border-bottom:1px solid var(--line);color:var(--c)}
.sgt .n{padding:7px 10px;border-bottom:1px solid var(--line);white-space:nowrap;display:flex;gap:6px;align-items:center}
.sgt .n small{color:var(--muted)}
.sgt .tr{grid-column:2/-1;position:relative;border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(12,1fr)}
.sgt .tr>span{border-right:1px dashed var(--line)}
.sgt .bar{position:absolute;top:7px;height:18px;border-radius:5px;background:var(--c);color:#fff;font-size:10px;line-height:18px;padding:0 8px;white-space:nowrap;overflow:hidden}
.sgt .bar.open{border-radius:5px 0 0 5px}
.sgt .bar.open::after{content:"▶";position:absolute;right:3px}
.sgt .bar.fm{background:transparent;border:1.5px dashed var(--c);color:var(--fg)}
.sgt .bar.tn{background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--plan) 60%,var(--surface)) 0 5px,color-mix(in srgb,var(--plan) 25%,var(--surface)) 5px 10px);border:1px solid var(--plan);color:var(--fg)}
.sgt .ev{position:absolute;top:2px;width:9px;height:9px;border-radius:50%;background:var(--alert);border:2px solid var(--surface);transform:translateX(-50%);z-index:2}
.sgt .ev.p{background:var(--plan)}.sgt .ev.ok{background:var(--ok)}
.sgt .today{position:absolute;top:0;bottom:0;width:0;border-left:2px solid var(--alert);z-index:3;pointer-events:none}
.sgt .today b{position:absolute;top:2px;left:3px;font-size:9.5px;color:var(--alert);white-space:nowrap}
.sgt .dm{grid-column:2/-1;display:grid;grid-template-columns:repeat(12,1fr);align-items:end;height:64px;padding:4px 0 2px}
.sgt .dm div{display:flex;justify-content:center;align-items:flex-end;gap:2px;height:100%}
.sgt .dm i{display:block;width:9px;border-radius:2px 2px 0 0}
.sgt .dm em{position:absolute;font-style:normal}
.sq .avs{flex-wrap:wrap;gap:3px}
.sq .avs .av{margin-right:0}
.sgt .today b{top:auto;bottom:4px}
/* ---------- DEM-02 ---------- */
.sqh{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px;position:relative}
.sqh .crumb{flex-basis:100%;font-size:11px;color:var(--muted)}
.sqh h5{margin:0;font-size:16px}
.sqh .desc{font-size:11.5px;color:var(--muted);margin-right:auto}
.slg{display:grid;grid-template-columns:150px 150px repeat(7,minmax(0,1fr)) 92px 132px;background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden;font-size:11px;position:relative}
.slg>div{border-bottom:1px solid var(--line);padding:6px 8px;display:flex;align-items:center;gap:6px;min-width:0}
.slg .h{background:var(--surface2);color:var(--muted);font-size:10.5px;justify-content:center;padding:6px 4px;font-weight:600}
.slg .h.l{justify-content:flex-start;padding-left:8px}
.slg .h.now{color:var(--fg)}
.slg .h.post{background:repeating-linear-gradient(135deg,var(--surface2) 0 6px,var(--surface) 6px 12px)}
.slg .sl{display:grid!important;gap:1px;align-content:center}
.slg .sl small{color:var(--muted);font-size:10px}
.slg .tr{grid-column:span 7;position:relative;padding:0!important;display:grid!important;grid-template-columns:repeat(7,1fr);min-height:38px}
.slg .tr>span{border-right:1px dashed var(--line)}
.slg .tr>span.post{background:repeating-linear-gradient(135deg,var(--surface2) 0 6px,var(--surface) 6px 12px)}
.slg .bar{position:absolute;top:50%;transform:translateY(-50%);height:20px;background:var(--c);color:#fff;font-size:10px;line-height:20px;padding:0 8px;white-space:nowrap;overflow:hidden;font-weight:600;border-radius:5px}
.slg .bar.sl0{border-radius:5px 0 0 5px}.slg .bar.sl1{border-radius:0 5px 5px 0;border-left:2px solid var(--surface)}
.slg .bar.tn{background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--plan) 55%,var(--surface)) 0 5px,color-mix(in srgb,var(--plan) 22%,var(--surface)) 5px 10px);border:1px solid var(--plan);color:var(--fg)}
.slg .bar.sp{background:repeating-linear-gradient(45deg,var(--c) 0 5px,color-mix(in srgb,var(--c) 65%,var(--surface)) 5px 10px)}
.slg .bar.need{background:transparent;border:1.5px dashed var(--need);color:var(--need)}
.slg .ld{justify-content:flex-end;font-variant-numeric:tabular-nums;display:grid!important;text-align:right;gap:0}
.slg .ld b{font-size:12px}
.slg .ld small{font-size:9.5px;color:var(--muted);white-space:nowrap}
.slg .ld.over b{color:var(--alert)}
.slg .nx{display:grid!important;gap:1px;font-size:10.5px}
.slg .nx small{color:var(--muted)}
.slg .full{grid-column:1/-1;background:color-mix(in srgb,var(--alert) 6%,var(--surface));font-size:11px}
.slg .sel{background:color-mix(in srgb,var(--hq) 9%,var(--surface))}
.slg .tr.sel{box-shadow:inset 0 0 0 2px var(--hq)}
.slg .mm{justify-content:center;font-variant-numeric:tabular-nums;font-size:10.5px;background:var(--surface2);border-bottom:0!important}
.slg .mm.short{color:var(--alert);font-weight:700}
.slg .mmh{grid-column:span 2;background:var(--surface2);border-bottom:0!important;font-weight:600}
.slg .mmt{grid-column:span 2;background:var(--surface2);border-bottom:0!important}
.slg .today{position:absolute;top:0;bottom:0;width:0;border-left:2px solid var(--alert);z-index:3;pointer-events:none;padding:0!important;border-bottom:0!important}
.slg .today b{position:absolute;top:22px;left:3px;background:var(--surface);padding:0 3px;border-radius:3px;font-size:9.5px;color:var(--alert);white-space:nowrap}
.cand{position:relative;border:1px solid var(--line);border-radius:8px;padding:8px 10px;display:grid;gap:5px;font-size:11.5px;background:var(--surface)}
.cand.best{border-color:var(--hq);box-shadow:0 0 0 1px var(--hq)}
.cand .ch{display:flex;align-items:center;gap:7px}
.cand .fit{margin-left:auto;font:700 13px/1 var(--mono);color:var(--hq)}
.cand .fit small{font:400 10px var(--font);color:var(--muted);margin-left:2px}
.cand .cm{display:flex;flex-wrap:wrap;gap:3px 10px;font-size:10.5px;color:var(--muted)}
.cand .cm b{color:var(--fg)}
.rule{font-size:10.5px;display:flex;gap:5px;align-items:flex-start;line-height:1.4}
.rule.ok{color:var(--ok)}.rule.w{color:var(--need)}.rule.x{color:var(--alert)}
.sk{display:flex;flex-wrap:wrap;gap:3px}
.wks{display:grid;grid-template-columns:repeat(8,1fr);gap:4px}
.wks div{text-align:center;font-size:10px;color:var(--muted)}
.wks i{display:block;height:24px;border-radius:4px;background:color-mix(in srgb,var(--c) 22%,var(--surface));border:1px solid var(--c);margin-bottom:3px;color:var(--fg);font-style:normal;font-size:10px;line-height:22px;font-variant-numeric:tabular-nums}
.wks div.now i{box-shadow:0 0 0 2px var(--fg)}
.iss{display:grid;grid-template-columns:auto 1fr auto;gap:6px;align-items:center;font-size:11.5px;padding:5px 0;border-bottom:1px dashed var(--line)}
.iss:last-child{border-bottom:0}
table.flowt td{font-size:12.5px}
table.flowt tr.ph td{background:var(--surface2);font-size:11.5px;font-weight:700;color:var(--muted);letter-spacing:.03em}
.sref{display:inline-flex;align-items:center;gap:4px;font-size:11px;padding:1px 7px;margin:1px 3px 1px 0;border-radius:999px;border:1px solid var(--line);color:var(--muted);text-decoration:none;white-space:nowrap}
.sref code{font-family:var(--mono);font-size:10.5px}
a.sref{border-color:color-mix(in srgb,var(--ok) 50%,var(--line));background:color-mix(in srgb,var(--ok) 12%,transparent);color:var(--fg)}
.sref.new{border-style:dashed;border-color:var(--alert);color:var(--alert)}
.scr-h p code{background:none;color:inherit;padding:0;font-size:12.5px}
.mcap{min-width:980px;padding:8px 14px;border-top:1px solid var(--line);background:var(--surface2);font-size:12px;color:var(--muted)}
.mcap::before{content:"설명 · ";font-weight:600;color:var(--fg)}
/* ---------- PLT-01 ---------- */
.plt-side a{cursor:default}
.plt-sum{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:11.5px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface2)}
.plt-sum .mono{font-size:11px}
.plt-pv{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.plt-pv .card{padding:9px 11px;font-size:11.5px}
.plt-pv .card h6{margin-bottom:6px;font-size:12px}
.plt-pv .tree div{padding:2px 6px}
.plt-kv{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;margin:0;font-size:11.5px}
.plt-kv dt{color:var(--muted)}
.plt-kv dd{margin:0;min-width:0}
.plt-ty{border-left:3px solid var(--c);padding:3px 8px;margin-bottom:5px;border-radius:0 5px 5px 0;background:var(--surface2);display:grid}
.plt-ty small{color:var(--muted);font-size:10.5px}
.plt-cmp table.t th,.plt-cmp table.t td{padding:3px 6px;font-size:11px}
.plt-ob{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:10px;align-items:start}
.plt-bar{height:8px;border-radius:4px;background:var(--surface2);border:1px solid var(--line);overflow:hidden;min-width:120px}
.plt-bar i{display:block;height:100%;width:var(--v);background:var(--ok)}
.plt-stg{display:flex;gap:4px;margin-top:10px}
.plt-stg span{flex:1;text-align:center;font-size:11px;padding:4px 6px;border-radius:6px;background:var(--surface2);color:var(--muted);position:relative}
.plt-stg span.done{background:color-mix(in srgb,var(--ok) 14%,var(--surface));color:var(--ok);font-weight:600}
.plt-stg span.cur{background:var(--hq);color:var(--surface);font-weight:600}
.plt-gh{display:flex;align-items:center;gap:8px;padding:7px 12px;background:var(--surface2);border-bottom:1px solid var(--line);font-size:12px}
.plt-gh small{color:var(--muted);font-size:11px}
.plt-gh.done{background:color-mix(in srgb,var(--ok) 8%,var(--surface2))}
.plt-it{display:grid;grid-template-columns:22px minmax(0,1fr) 250px 82px;gap:10px;align-items:center;padding:8px 12px 8px 14px;border-bottom:1px solid var(--line);font-size:12px}
.plt-it:last-child{border-bottom:0}
.plt-it>div{min-width:0}
.plt-it>div small{color:var(--muted);font-size:11px;margin-top:2px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.plt-it .btn{justify-self:end}
.plt-id{font-family:var(--mono);font-size:10px;font-weight:400;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:0 4px;margin-left:4px}
.plt-cond{font-size:11px;color:var(--muted);display:flex;gap:5px;align-items:center}
.plt-ic{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;border:1.5px dashed var(--muted);color:var(--muted);font:700 10.5px/1 var(--mono)}
.plt-ic.ok{border:0;background:var(--ok);color:var(--surface)}
.plt-ic.tp{border:1.5px solid var(--plan);background:color-mix(in srgb,var(--plan) 16%,var(--surface));color:var(--plan)}
.plt-tb table.t th,.plt-tb table.t td{padding:7px 7px}

/* ADM-01 기준정보 */
.adm01-tabs{display:flex;align-items:center;gap:10px;margin-bottom:12px;position:relative}
.adm01-tabs .tabs{margin:0;flex:1}
.adm01-tabs .tabs span em{font-style:normal;background:var(--need);color:#fff;font-size:10px;padding:0 6px;border-radius:9px;margin-left:4px}
.adm01-prog{display:flex;gap:4px;font-size:10.5px;color:var(--muted);align-items:center;white-space:nowrap}
.adm01-prog i{font-style:normal;padding:1px 6px;border-radius:999px;background:var(--surface2);border:1px solid var(--line)}
.adm01-prog i.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,var(--line))}
.adm01-grid{display:grid;grid-template-columns:270px minmax(0,1fr);gap:12px;align-items:start}
.adm01-grid3{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.adm01-tree{font-size:12px;display:grid;gap:1px}
.adm01-tree div{display:flex;align-items:center;gap:6px;padding:4px 8px;border-radius:6px;padding-left:calc(8px + var(--d,0) * 16px)}
.adm01-tree div.on{background:color-mix(in srgb,var(--hq) 12%,transparent);font-weight:600}
.adm01-tree div.grp{font-weight:600;color:var(--fg)}
.adm01-tree div.off{color:var(--muted);text-decoration:line-through}
.adm01-tree div.rsv{border:1px dashed var(--plan);color:var(--plan)}
.adm01-tree div i{width:8px;height:8px;border-radius:2px;background:var(--c,var(--muted));flex:none}
.adm01-tree div small{margin-left:auto;color:var(--muted);font-weight:400}
.adm01-tree div code{font-family:var(--mono);font-size:10px;color:var(--muted);font-weight:400}
.adm01-kv{display:grid;grid-template-columns:96px 1fr;gap:7px 10px;font-size:12px;align-items:center}
.adm01-kv>span:nth-child(odd){color:var(--muted);font-size:11.5px}
.adm01-sw{display:inline-block;width:14px;height:14px;border-radius:4px;background:var(--c);vertical-align:-3px;margin-right:4px}
.adm01-chips{display:flex;flex-wrap:wrap;gap:5px}
.adm01-chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--line);background:var(--surface2)}
.adm01-chip small{color:var(--muted);font-size:10px}
.adm01-chip.add{border-style:dashed;color:var(--muted);background:transparent}
.adm01-tl{display:grid;gap:6px;font-size:11.5px}
.adm01-tl div{display:grid;grid-template-columns:82px 1fr;gap:8px}
.adm01-tl div b{font-weight:600;font-variant-numeric:tabular-nums}
.adm01-tl div.rsv b{color:var(--plan)}
.adm01-types{position:relative;display:grid;grid-template-columns:repeat(3,1fr) 120px;gap:8px;margin-bottom:12px}
.adm01-type{background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--c);border-radius:10px;padding:9px 11px;display:grid;gap:3px;font-size:11.5px;position:relative}
.adm01-type b{font-size:12.5px}
.adm01-type small{color:var(--muted)}
.adm01-type.on{outline:2px solid var(--hq);background:color-mix(in srgb,var(--hq) 5%,var(--surface))}
.adm01-type.add{border:1.5px dashed var(--line);border-top-width:1.5px;display:flex;align-items:center;justify-content:center;color:var(--muted)}
.adm01-props{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 14px}
.adm01-props .field .seg{width:max-content}
.adm01-rules{display:grid;gap:5px;font-size:11.5px}
.adm01-rules div{display:flex;align-items:center;gap:8px}
.adm01-rules div span:last-child{margin-left:auto}

/* ---------- ADM-06 근무 기준 ---------- */
.adm06-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:10px;align-items:start}
.adm06-kv{display:grid;grid-template-columns:96px 1fr;gap:7px 10px;align-items:center;font-size:11.5px}
.adm06-kv>label{color:var(--muted)}
.adm06-kv .inp{min-width:0}
.adm06-kv small{color:var(--muted);font-size:10.5px}
.adm06-dow{display:inline-flex;gap:3px}
.adm06-dow span{width:22px;height:22px;border-radius:5px;display:inline-grid;place-items:center;font-size:10.5px;border:1px solid var(--line);color:var(--muted);background:var(--surface)}
.adm06-dow span.on{background:var(--hq);border-color:var(--hq);color:var(--surface);font-weight:700}
.adm06-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;font-size:10.5px}
.adm06-cal>b{text-align:center;color:var(--muted);font-weight:600;font-size:10px;padding:2px 0}
.adm06-cal>i{font-style:normal;height:38px;border-radius:5px;border:1px solid var(--line);background:var(--surface);padding:2px 4px;display:flex;flex-direction:column;justify-content:space-between;font-variant-numeric:tabular-nums;overflow:hidden}
.adm06-cal>i small{font-size:9px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.adm06-cal>i.x{visibility:hidden}
.adm06-cal>i.we{background:var(--surface2);color:var(--muted)}
.adm06-cal>i.hol{background:color-mix(in srgb,var(--alert) 10%,var(--surface));border-color:color-mix(in srgb,var(--alert) 45%,var(--line));color:var(--alert)}
.adm06-cal>i.sub{background:transparent;border:1.5px dashed var(--need);color:var(--need)}
.adm06-cal>i.tdy{box-shadow:0 0 0 2px var(--fg)}
.adm06-cal>i.toff::after{content:"";display:block;height:3px;border-radius:2px;background:var(--plan)}
.adm06-fx{font-size:11px;color:var(--muted);background:var(--surface2);border-radius:6px;padding:6px 9px;margin-top:6px}
.adm06-fx b{color:var(--fg)}
.adm06-cv{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:6px}
.adm06-cv>div{border:1px solid var(--line);border-radius:8px;padding:7px 9px;font-size:11px;background:var(--surface2)}
.adm06-cv>div.on{border-color:var(--hq);background:color-mix(in srgb,var(--hq) 7%,var(--surface))}
.adm06-cv b{display:block;font-size:17px;font-variant-numeric:tabular-nums;margin:2px 0}
.adm06-cv small{color:var(--muted);font-size:10.5px}
/* ---------- ADM-03 목표 가동률 ---------- */
.adm03-chain{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11.5px}
.adm03-chain span{border:1px solid var(--line);border-radius:6px;padding:2px 9px;background:var(--surface);position:relative}
.adm03-chain span.hi{border-color:var(--hq);background:color-mix(in srgb,var(--hq) 10%,var(--surface));font-weight:700}
.adm03-chain em{font-style:normal;color:var(--muted);font-size:10px}
.adm03-pv{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:14px}
.adm03-pvbox{background:var(--surface2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:grid;gap:8px;align-content:start;position:relative}
.adm03-pvbox h6{margin:0;font-size:12px;display:flex;gap:6px;align-items:center}
.adm03-cnt{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.adm03-cnt div{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:6px 8px;font-size:10.5px;color:var(--muted)}
.adm03-cnt b{display:block;font-size:17px;color:var(--fg);font-variant-numeric:tabular-nums}
.adm03-was{text-decoration:line-through;color:var(--muted);font-size:10.5px;margin-left:4px}
.adm06-dr .field>.seg,.adm06-dr .field>.adm06-dow,.adm03-pv .field>.seg{justify-self:start}

/* ---------- SUP-04 ---------- */
.sup04-g2{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:10px;align-items:start}
.sup04-gb{display:grid;grid-template-columns:360px minmax(0,1fr);gap:10px;align-items:start}
.sup04-drop{border:2px dashed color-mix(in srgb,var(--hq) 45%,var(--line));background:color-mix(in srgb,var(--hq) 4%,var(--surface));border-radius:10px;padding:22px 14px;text-align:center;display:grid;gap:6px;justify-items:center;position:relative}
.sup04-drop b{font-size:13px}
.sup04-drop .ic{font-size:22px;line-height:1;color:var(--hq)}
.sup04-sheets{display:grid;gap:6px}
.sup04-sheets>div{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;border:1px solid var(--line);border-left:3px solid var(--c);border-radius:7px;padding:6px 9px;background:var(--surface2);font-size:11.5px}
.sup04-sheets small{display:block;color:var(--muted);font-size:10.5px}
.sup04-x{font:700 10px/1 var(--mono);color:#fff;background:var(--c);border-radius:4px;padding:3px 5px}
.sup04-mode{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.sup04-mode span{border:1px solid var(--line);border-radius:8px;padding:8px 10px;display:grid;gap:2px;font-size:12px}
.sup04-mode span.on{outline:2px solid var(--hq);background:color-mix(in srgb,var(--hq) 6%,var(--surface))}
.sup04-mode small{color:var(--muted);font-size:10.5px;line-height:1.4}
.sup04-map{display:grid;grid-template-columns:minmax(0,1fr) 14px minmax(0,1fr) auto;gap:4px 6px;align-items:center;font-size:11.5px}
.sup04-map>.h{font-size:10.5px;color:var(--muted);font-weight:600;padding-bottom:2px;border-bottom:1px solid var(--line)}
.sup04-map .xc{font-family:var(--mono);font-size:11px;background:var(--surface2);border:1px solid var(--line);border-radius:5px;padding:2px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sup04-map .ar{color:var(--muted);text-align:center}
.sup04-map .inp{min-width:0;padding:2px 8px;font-size:11px;color:var(--fg)}
.sup04-map .inp.off{color:var(--muted);border-style:dashed}
.sup04-vm{display:flex;flex-wrap:wrap;gap:4px 6px;font-size:11px}
.sup04-vm span{border:1px solid var(--line);border-radius:5px;padding:1px 6px;background:var(--surface2);white-space:nowrap}
.sup04-vm span.man{border-color:var(--plan);background:color-mix(in srgb,var(--plan) 10%,var(--surface))}
.sup04-msg{white-space:normal!important;font-size:11px;line-height:1.4;min-width:190px}
table.t tr.sup04-err td{background:color-mix(in srgb,var(--alert) 7%,var(--surface))}
table.t tr.sup04-wrn td{background:color-mix(in srgb,var(--need) 7%,var(--surface))}
.sup04-done{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;background:var(--surface);border:1px solid color-mix(in srgb,var(--ok) 45%,var(--line));border-radius:10px;padding:12px 14px;margin-bottom:10px}
.sup04-done .ic{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--ok) 16%,transparent);color:var(--ok);font-weight:700;font-size:16px}
.sup04-next{display:grid;gap:6px}
.sup04-next>div{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:var(--surface);font-size:11.5px}
.sup04-next>div.pri{border-color:var(--hq);box-shadow:0 0 0 1px var(--hq)}
.sup04-next small{display:block;color:var(--muted);font-size:10.5px}
.sup04-kv{display:grid;grid-template-columns:96px 1fr;gap:5px 8px;font-size:11.5px}
.sup04-kv dt{color:var(--muted)}
.sup04-kv dd{margin:0}

/* ---------- SUP-03 인력 등록·편집 ---------- */
.sup03-lk{font-size:10px;color:var(--muted);margin-left:4px;font-weight:400;white-space:nowrap}
.sup03-enc{font-size:10px;color:var(--hq);margin-left:4px;font-weight:600;white-space:nowrap}
.sup03-ok{font-size:10.5px;color:var(--ok)}
.sup03-hint{font-size:10.5px;color:var(--muted);line-height:1.4}
.sup03-sec{font-size:11px;font-weight:700;color:var(--muted);margin:12px 0 6px;padding-top:10px;border-top:1px dashed var(--line);display:flex;align-items:center;gap:6px}
.sup03-sec:first-of-type{border-top:0;padding-top:0;margin-top:0}
.sup03-ac{position:relative}
.sup03-dd{position:absolute;left:0;right:0;top:calc(100% + 3px);z-index:4;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:4px;display:grid;gap:1px;font-size:11.5px}
.sup03-dd div{display:flex;align-items:center;gap:6px;padding:5px 8px;border-radius:6px}
.sup03-dd div.on{background:color-mix(in srgb,var(--hq) 10%,transparent)}
.sup03-dd small{color:var(--muted);margin-left:auto}
.sup03-dd .add{border-top:1px dashed var(--line);border-radius:0 0 6px 6px;color:var(--need);font-weight:600}
.sup03-lv,.sup02-lv{display:inline-flex;gap:2px;vertical-align:-1px}
.sup03-lv i,.sup02-lv i{display:block;width:10px;height:10px;border-radius:2px;background:var(--surface2);border:1px solid var(--line)}
.sup03-lv i.on,.sup02-lv i.on{background:var(--hq);border-color:var(--hq)}
.sup03-band{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;margin:22px 0 4px;position:relative}
.sup03-band span{text-align:center;font-size:10.5px;padding:4px 0;border-radius:4px;background:var(--surface2);color:var(--muted)}
.sup03-band span.on{background:var(--hq);color:var(--surface);font-weight:700}
.sup03-band small{display:block;font-size:9.5px;opacity:.8;font-weight:400}
.sup03-mk{position:absolute;top:-19px;transform:translateX(-50%);font-size:9.5px;font-weight:700;color:var(--hq);white-space:nowrap}
.sup03-mk::after{content:"";position:absolute;left:50%;top:15px;height:6px;border-left:2px solid var(--hq)}
.sup03-calc{display:grid;grid-template-columns:1fr auto;gap:3px 10px;font-size:11px;font-variant-numeric:tabular-nums}
.sup03-calc .tt{border-top:1px solid var(--line);padding-top:3px;font-weight:700}
/* ---------- SUP-02 인력 프로필 ---------- */
.sup02-hd{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-bottom:10px;position:relative}
.sup02-hd h5{margin:0;font-size:16px;display:flex;align-items:center;gap:6px}
.sup02-hd .meta2{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:11.5px;color:var(--muted);margin-top:3px}
.sup02-hd .meta2 b{color:var(--fg);font-weight:600}
.sup02-hd .act{margin-left:auto;display:flex;gap:6px;align-self:flex-start}
.sup02-tabs small{font-size:10px;color:var(--muted);margin-left:3px}
.sup02-mc{display:flex;align-items:flex-end;gap:6px;height:92px;padding:14px 14px 0 2px;border-bottom:1px solid var(--line);position:relative}
.sup02-mc div{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;position:relative}
.sup02-mc div i{display:block;border-radius:3px 3px 0 0;background:var(--hq)}
.sup02-mc div.fut i{opacity:.55}
.sup02-mc div.now i{box-shadow:0 0 0 2px var(--fg)}
.sup02-mc div i.tn{border-radius:3px 3px 0 0}
.sup02-mc em{position:absolute;top:-14px;left:0;right:0;text-align:center;font-style:normal;font-size:9.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.sup02-mc .tg{position:absolute;left:0;right:0;border-top:1px dashed var(--alert);font-size:9px;color:var(--alert);text-align:right;z-index:1;margin-right:-14px}
.sup02-ml{display:flex;gap:6px;padding:3px 2px 0;font-size:9.5px;color:var(--muted)}
.sup02-ml span{flex:1;text-align:center}
.sup02-kv{display:grid;grid-template-columns:76px 1fr;gap:4px 8px;font-size:11.5px}
.sup02-kv span{color:var(--muted)}
.sup02-ck{display:flex;gap:4px;margin-top:6px}
.sup02-ck span{flex:1;text-align:center;font-size:9.5px;color:var(--muted)}
.sup02-ck i{display:block;height:8px;border-radius:2px;background:var(--c);margin-bottom:2px}
.sup02-big{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.sup02-src{--c:var(--muted)}
.sup02-old td{color:var(--muted)}
.sup02-doc{border:1px solid var(--line);border-radius:6px;background:var(--surface2);padding:10px;display:grid;gap:5px;font-size:9.5px}
.sup02-doc i{display:block;height:5px;border-radius:2px;background:var(--line)}
.sup02-doc b{font-size:10.5px}
.sup03-f .field,.sup02-f .field{align-content:start}
.sup03-f .field .row .inp{width:auto}

/* ---------- SUP-07 조직 매칭 ---------- */
.sup07-board{display:grid;grid-template-columns:232px minmax(0,1fr) 248px;gap:10px;align-items:start}
.sup07-board>.card:nth-child(2){overflow-x:auto;overflow-y:visible}
.sup07-tree{display:grid;gap:2px;font-size:11.5px}
.sup07-org{display:grid;grid-template-columns:9px minmax(0,1fr) auto;gap:1px 7px;align-items:center;padding:6px 8px;border-radius:7px;position:relative}
.sup07-org>i{width:9px;height:9px;border-radius:2px;background:var(--c)}
.sup07-org>b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sup07-org>em{font-style:normal;font-variant-numeric:tabular-nums;font-weight:700;text-align:right}
.sup07-org>small{grid-column:2/-1;color:var(--muted);font-size:10.5px;display:flex;gap:6px;flex-wrap:wrap}
.sup07-org.l2{margin-left:14px}
.sup07-org.on{background:color-mix(in srgb,var(--hq) 12%,transparent);box-shadow:inset 3px 0 0 var(--hq)}
.sup07-org.drop{outline:2px dashed var(--hq);outline-offset:-2px;background:color-mix(in srgb,var(--hq) 6%,transparent)}
.sup07-org.un{border:1.5px dashed var(--need);margin-top:6px}
.sup07-org.un>b{color:var(--need)}
.sup07-ghost{position:absolute;right:-34px;top:30px;z-index:4;display:flex;align-items:center;gap:6px;padding:5px 9px;border-radius:8px;background:var(--surface);border:1px solid var(--hq);box-shadow:0 8px 22px rgba(10,20,40,.25);transform:rotate(-3deg);font-size:11px;white-space:nowrap}
.sup07-lead{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;margin-bottom:8px;border-radius:8px;background:var(--surface2);font-size:11.5px}
.sup07-lead b.nm{font-size:12px}
table.t.sup07-mt th,table.t.sup07-mt td{padding:6px 7px}
table.t.sup07-mt td small{color:var(--muted);font-size:10.5px}
.sup07-unl{display:grid;gap:6px}
.sup07-p{border:1px solid var(--line);border-radius:8px;padding:7px 9px;display:grid;gap:4px;background:var(--surface);font-size:11px}
.sup07-p.sel{border-color:var(--hq);box-shadow:0 0 0 1px var(--hq)}
.sup07-p.lift{opacity:.45;border-style:dashed}
.sup07-p .h{display:flex;align-items:center;gap:6px}
.sup07-p .h .r{margin-left:auto}
.sup07-p .m{color:var(--muted);font-size:10.5px;display:flex;flex-wrap:wrap;gap:2px 8px}
.sup07-chg{display:grid;grid-template-columns:auto minmax(0,1fr) 14px minmax(0,1fr) auto;gap:6px;align-items:center}
.sup07-arrow{color:var(--muted);text-align:center}
.sup07-cl{display:grid;gap:6px}
.sup07-cl>div{display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:8px;align-items:center;padding:7px 10px;border-radius:8px;background:var(--surface2);font-size:11.5px}
.sup07-cl>div>i{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:10px;font-weight:700;color:#fff;background:var(--c,var(--muted))}
.sup07-cl small{color:var(--muted);font-size:10.5px;display:block}
.sup07-lv{display:inline-flex;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--surface)}
.sup07-lv span{width:20px;text-align:center;font-size:10.5px;line-height:18px;border-right:1px solid var(--line);font-variant-numeric:tabular-nums}
.sup07-lv span:last-child{border-right:0}
.sup07-lv span.me{box-shadow:inset 0 -2px 0 var(--muted)}
.sup07-lv span.on{background:var(--fg);color:var(--bg);font-weight:700}
.sup07-off{opacity:.5;pointer-events:none}

/* ---------- RES-02 후보 검색 ---------- */
.res02-cond{display:flex;flex-wrap:wrap;align-items:center;gap:5px 12px;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--si);border-radius:8px;padding:7px 12px;margin-bottom:10px;position:relative;font-size:11.5px}
.res02-cond .src{flex-basis:100%;font-size:10.5px;color:var(--muted)}
.res02-cond .src b{color:var(--fg)}
.res02-lay{display:grid;grid-template-columns:196px minmax(0,1fr);gap:10px;align-items:start}
.res02-f{display:grid;gap:11px;font-size:11.5px}
.res02-f .fg{display:grid;gap:4px}
.res02-f .fg>label{font-size:10.5px;color:var(--muted);font-weight:600}
.res02-f .inp{width:100%;min-width:0}
.res02-f .seg span{padding:3px 8px;font-size:11px}
.res02-f .ck{display:flex;align-items:center;gap:2px;font-size:11px}
.res02-f .ck small{margin-left:auto;color:var(--muted);font-size:10px}
.res02-t td{vertical-align:middle}
.res02-t td.sc,.res02-t th.sc{text-align:center;font-variant-numeric:tabular-nums;color:var(--muted);padding-left:4px;padding-right:4px}
.res02-t td.sc b{color:var(--fg);font-weight:600}
.res02-t td.lo{color:var(--need)!important}
.res02-t tr.on td{background:color-mix(in srgb,var(--hq) 6%,transparent)}
.res02-t small{color:var(--muted);font-size:10px}
.res02-fit{display:grid;gap:3px;min-width:80px}
.res02-fit b{font:700 13px/1 var(--mono);color:var(--hq)}
.res02-fit .stk{min-width:80px}
.res02-ri{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:600;padding:0 6px;border-radius:999px;background:color-mix(in srgb,var(--c) 14%,transparent);color:var(--c);margin:1px 3px 1px 0;white-space:nowrap}
.res02-ri.ok{--c:var(--ok)}.res02-ri.w{--c:var(--need)}.res02-ri.x{--c:var(--alert)}
.res02-wl{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:10.5px;color:var(--muted);align-items:center}
.res02-wl i{display:inline-block;width:9px;height:9px;border-radius:2px;background:var(--c);margin-right:3px;vertical-align:-1px}
.res02-cmpbar{display:flex;align-items:center;gap:10px;margin-top:10px;padding:7px 12px;border-radius:8px;background:var(--fg);color:var(--bg);font-size:12px;position:relative}
.res02-cmpbar .btn:not(.pri){color:var(--fg)}
.res02-cmpbar .btn.pri{background:var(--surface);color:var(--fg);border-color:var(--surface);font-weight:700}
.res02-cmp{display:grid;grid-template-columns:128px repeat(3,minmax(0,1fr));background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden;font-size:11.5px;position:relative}
.res02-cmp>div{padding:7px 10px;border-bottom:1px solid var(--line);border-left:1px solid var(--line);min-width:0;position:relative}
.res02-cmp>div.k{border-left:0;color:var(--muted);font-size:11px;background:var(--surface2)}
.res02-cmp>div.k small{display:block;font-size:10px}
.res02-cmp>div.sec{grid-column:1/-1;border-left:0;background:var(--surface2);font-weight:700;font-size:10.5px;color:var(--muted);padding:4px 10px;letter-spacing:.02em}
.res02-cmp>div.sel{background:color-mix(in srgb,var(--hq) 6%,var(--surface))}
.res02-cmp>div.hd.sel{box-shadow:inset 0 3px 0 var(--hq)}
.res02-cmp .big{font:700 20px/1 var(--mono);color:var(--hq)}
.res02-cmp .big small{font:400 10.5px var(--font);color:var(--muted);margin-left:3px}
.res02-mb{display:flex;gap:6px;align-items:flex-end;height:46px;position:relative;border-bottom:1px solid var(--line)}
.res02-mb>span{flex:1;height:100%;display:flex;align-items:flex-end;border-radius:3px 3px 0 0}
.res02-mb>span.in{background:color-mix(in srgb,var(--hq) 9%,transparent)}
.res02-mb>span i{display:block;width:100%;height:var(--v);min-height:2px;background:var(--c,var(--ok));border-radius:3px 3px 0 0;font-style:normal;font-size:9.5px;color:#fff;text-align:center;line-height:14px;font-variant-numeric:tabular-nums}
.res02-mb>span i.z{background:transparent;color:var(--alert);line-height:1;height:auto;margin-bottom:2px}
.res02-mb .nl{position:absolute;left:0;right:0;bottom:50%;border-top:1.5px dashed var(--alert);pointer-events:none}
.res02-mbl{display:flex;gap:6px;font-size:9.5px;color:var(--muted);margin-top:2px}
.res02-mbl span{flex:1;text-align:center}
.res02-mbl span.in{color:var(--fg);font-weight:600}
.res02-lv{display:inline-flex;gap:2px;vertical-align:middle;margin-right:5px}
.res02-lv i{width:7px;height:7px;border-radius:50%;border:1px solid var(--hq)}
.res02-lv i.on{background:var(--hq)}
.res02-lv.lo i{border-color:var(--need)}.res02-lv.lo i.on{background:var(--need)}
.res02-ok{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px;padding:9px 12px;border:1px solid var(--hq);border-radius:8px;background:color-mix(in srgb,var(--hq) 6%,var(--surface));font-size:11.5px;position:relative}

/* ---------- RES-01 배치 스케줄러 ---------- */
.res01-g{display:grid;grid-template-columns:196px minmax(0,1fr) 116px;background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden;font-size:11px;position:relative}
.res01-g.res01-vis{overflow:visible}
.res01-g>div{border-bottom:1px solid var(--line);min-width:0}
.res01-g .hd{background:var(--surface2);color:var(--muted);font-size:10.5px;font-weight:600;padding:5px 8px;display:flex;align-items:flex-end;gap:5px;position:relative}
.res01-g .hd.tlh{padding:0;display:block}
.res01-g .mo,.res01-g .wk{display:grid;grid-template-columns:repeat(14,minmax(0,1fr))}
.res01-g .mo span{text-align:center;padding:4px 0 2px;color:var(--fg);border-left:1px solid var(--line);font-weight:700}
.res01-g .mo span:first-child{border-left:0}
.res01-g .wk span{text-align:center;padding:1px 0 4px;font-size:9.5px;line-height:1.25;font-weight:400}
.res01-g .wk span b{display:block;font-size:10px;color:var(--fg);font-weight:600}
.res01-g .wk span.now b{color:var(--alert)}
.res01-g .wk span.hol small{color:var(--alert)}
.res01-g .nm{padding:5px 8px;display:flex;gap:6px;align-items:flex-start}
.res01-g .nm>div{min-width:0;line-height:1.3}
.res01-g .nm small{display:block;color:var(--muted);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.res01-g .nm .st,.res01-g .nm .lv{font-size:9.5px;padding:0 5px;margin-left:2px}
.res01-g .tl{position:relative;padding:4px 0;background:linear-gradient(to right,var(--line) 1px,transparent 1px) 0 0/calc(100% / 14) 100%}
.res01-g .hm{display:grid;grid-template-columns:repeat(14,minmax(0,1fr))}
.res01-g .hm .hc{padding:0 2px}
.res01-g .hm .hc i{height:18px;line-height:18px;font-size:10px}
.res01-g .hm .hc.res01-v i::before{content:"";position:absolute;right:0;top:0;border:4px solid transparent;border-top-color:var(--fg);border-right-color:var(--fg);border-radius:0 4px 0 0}
.res01-g .ln{position:relative;margin-top:3px}
.res01-g .nx{padding:5px 8px;font-size:10.5px;display:grid;align-content:start;gap:1px;line-height:1.35}
.res01-g .nx small{color:var(--muted);font-size:10px}
.res01-g .nx.over b{color:var(--alert)}
.res01-g .gr{grid-column:1/-1;background:color-mix(in srgb,var(--c) 7%,var(--surface2));padding:4px 10px 4px 22px;font-weight:700;display:flex;gap:10px;align-items:center;color:var(--c);position:relative}
.res01-g .gr small{color:var(--muted);font-weight:400}
.res01-g .more{grid-column:1/-1;padding:3px 10px 3px 38px;color:var(--muted);font-size:10.5px;background:var(--surface)}
.res01-g>.sqr{background:color-mix(in srgb,var(--surface2) 55%,var(--surface))}
.res01-bar{position:absolute;height:13px;border-radius:4px;background:var(--c);color:#fff;font-size:9.5px;line-height:13px;padding:0 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600;box-sizing:border-box}
.res01-bar.ol{border-top-left-radius:0;border-bottom-left-radius:0}
.res01-bar.or{border-top-right-radius:0;border-bottom-right-radius:0}
.res01-bar.tn{background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--plan) 55%,var(--surface)) 0 4px,color-mix(in srgb,var(--plan) 22%,var(--surface)) 4px 8px);border:1px solid var(--plan);color:var(--fg);line-height:11px}
.res01-bar.sp{background:repeating-linear-gradient(45deg,var(--c) 0 4px,color-mix(in srgb,var(--c) 60%,var(--surface)) 4px 8px)}
.res01-bar.pool{background:transparent;border:1px dashed var(--muted);color:var(--muted);font-weight:400;line-height:11px}
.res01-bar.need{background:transparent;border:1.5px dashed var(--need);color:var(--need);line-height:10px}
.res01-bar.lt{background:color-mix(in srgb,var(--c) 22%,var(--surface));color:var(--fg);border:1px solid color-mix(in srgb,var(--c) 50%,var(--line));line-height:11px;font-weight:400}
.res01-bar.ov{box-shadow:0 0 0 1.5px var(--alert)}
.res01-off{position:absolute;top:-1px;height:15px;z-index:2;border-radius:3px;background:repeating-linear-gradient(135deg,var(--surface) 0 3px,color-mix(in srgb,var(--muted) 60%,var(--surface)) 3px 5px);border:1px solid var(--muted)}
.res01-g .fte{text-align:center;font-variant-numeric:tabular-nums;font-size:10px;line-height:18px;color:var(--fg);position:relative}
.res01-g .fte.short{color:var(--alert);font-weight:700}
.res01-g .fte.tu::after{content:"";position:absolute;left:5px;right:5px;bottom:0;height:2px;border-radius:2px;background:var(--plan)}
.res01-today{position:absolute;top:0;bottom:0;width:0;border-left:2px solid var(--alert);z-index:3;pointer-events:none}
.res01-today b{position:absolute;top:3px;left:3px;font-size:9.5px;color:var(--alert);white-space:nowrap;background:var(--surface2);padding:0 3px;border-radius:3px}
.res01-drag{position:absolute;top:1px;bottom:1px;border:2px dashed var(--hq);background:color-mix(in srgb,var(--hq) 12%,transparent);border-radius:5px;z-index:4;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:var(--hq)}
.res01-pop{position:absolute;z-index:6;width:470px;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 40px rgba(10,20,40,.28);padding:12px 14px;font-size:11.5px;display:grid;gap:9px;text-align:left;font-weight:400;color:var(--fg)}
.res01-pop::before{content:"";position:absolute;bottom:-7px;left:40px;border:7px solid transparent;border-bottom:0;border-top-color:var(--line)}
.res01-pop .form{gap:8px 12px}
.res01-pop .pc{display:flex;align-items:center;gap:6px}
.res01-pop .pc .inp{min-width:0;width:72px;color:var(--fg);font-variant-numeric:tabular-nums}
.res01-pop .rk{display:grid;gap:3px;padding:7px 9px;border-radius:7px;background:var(--surface2)}
.res01-pop .ft{display:flex;gap:6px;align-items:center;border-top:1px solid var(--line);padding-top:8px}
.res01-pop .ft small{margin-right:auto;color:var(--muted);font-size:10px;line-height:1.35}
.res01-g .tipdemo{top:30px;width:262px}

/* ---------- RES-03 배치 변경 ---------- */
.res03-who{position:relative;display:grid;grid-template-columns:220px minmax(0,1fr);gap:12px;align-items:start;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface2);margin-bottom:10px}
.res03-asg{display:grid;gap:4px}
.res03-asg>div{display:flex;align-items:center;gap:6px;font-size:11.5px;padding:4px 8px;border:1px solid var(--line);border-radius:7px;background:var(--surface);white-space:nowrap}
.res03-asg>div.on{border-color:var(--hq);box-shadow:0 0 0 1px var(--hq)}
.res03-rd{display:inline-block;width:12px;height:12px;border-radius:50%;border:1.5px solid var(--muted);flex:0 0 auto}
.res03-rd.on{border-color:var(--hq);background:radial-gradient(circle,var(--hq) 0 3px,transparent 3.5px)}
.res03-mid{display:grid;grid-template-columns:minmax(0,1fr) 170px;gap:10px;margin-top:12px;align-items:stretch}
.res03-cmp{position:relative;display:grid;grid-template-columns:110px minmax(0,1fr) 58px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:11px}
.res03-cmp>div{border-bottom:1px solid var(--line);padding:3px 8px;display:flex;align-items:center;min-height:28px;min-width:0}
.res03-cmp>div:nth-last-child(-n+3){border-bottom:0}
.res03-cmp>.h{background:var(--surface2);color:var(--muted);font-size:10.5px;font-weight:600;min-height:24px}
.res03-cmp>.h:first-of-type{border-radius:8px 0 0 0;padding-left:18px}
.res03-cmp>.mh{display:grid;grid-template-columns:var(--cols);padding:0}
.res03-cmp>.mh span{text-align:center;border-right:1px dashed var(--line);padding:4px 0}
.res03-cmp>.mh span:last-child{border-right:0}
.res03-cmp>.g{grid-column:1/-1;background:var(--surface2);font-weight:700;font-size:10.5px;color:var(--muted);min-height:0;padding:3px 8px}
.res03-cmp>.tk{position:relative;padding:0;display:grid;grid-template-columns:var(--cols);align-items:stretch}
.res03-cmp>.tk>span{border-right:1px dashed var(--line)}
.res03-cmp>.tk>span:last-of-type{border-right:0}
.res03-cmp>.v{justify-content:flex-end;font-variant-numeric:tabular-nums;font-weight:700}
.res03-bar{position:absolute;top:50%;transform:translateY(-50%);height:18px;border-radius:4px;background:var(--c);color:#fff;font-size:10px;line-height:18px;padding:0 6px;white-space:nowrap;overflow:hidden;font-weight:600;font-style:normal;box-sizing:border-box}
.res03-bar.sp{background:repeating-linear-gradient(45deg,var(--c) 0 5px,color-mix(in srgb,var(--c) 65%,var(--surface)) 5px 10px)}
.res03-bar.chg{outline:2px solid var(--plan);outline-offset:1px}
.res03-bar.sum{background:color-mix(in srgb,var(--ok) 16%,var(--surface));color:var(--ok);border:1px solid var(--ok);line-height:16px}
.res03-bar.sum.ov{background:color-mix(in srgb,var(--alert) 16%,var(--surface));color:var(--alert);border-color:var(--alert)}
.res03-bar.off{background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--muted) 45%,var(--surface)) 0 3px,var(--surface) 3px 6px);color:var(--fg);border:1px dashed var(--muted);line-height:16px;z-index:1;text-align:center;padding:0 2px}
.res03-ld{position:relative;display:grid;align-content:center;justify-items:center;gap:6px;text-align:center;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:10px 8px}
.res03-ld>div>b{font-size:22px;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.res03-ld small{font-size:10.5px;line-height:1.35}
.res03-ldn{display:grid;gap:2px;font-size:10.5px;color:var(--muted);width:100%;border-top:1px dashed var(--line);padding-top:6px}
.res03-ldn b{color:var(--fg);font-variant-numeric:tabular-nums}
.res03-imp{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.res03-imp .card{padding:10px 12px;display:grid;gap:4px;align-content:start}
.res03-imp .card h6{margin-bottom:2px}
.res03-x{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 64px minmax(0,1fr);gap:8px;align-items:stretch}
.res03-xc{border:1px solid var(--line);border-top:3px solid var(--c);border-radius:8px;padding:8px 10px;display:grid;gap:5px;font-size:11.5px;background:var(--surface)}
.res03-xc>div{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.res03-xm{display:grid;place-items:center;align-content:center;text-align:center;font-size:22px;color:var(--po);font-weight:700}
.res03-xm small{font-size:10.5px;color:var(--muted);font-weight:600}
.res03-rules{display:grid;grid-template-columns:1fr 1fr;gap:5px 14px}
table.res03-kv th{width:96px;background:var(--surface2)}
table.res03-kv td{white-space:normal}
.res03-log{display:grid}
.res03-log>div{display:grid;grid-template-columns:76px 1fr;gap:8px;padding:6px 0;border-bottom:1px dashed var(--line);font-size:11.5px;line-height:1.4}
.res03-log>div:last-child{border-bottom:0}
.res03-log>div>small{color:var(--muted);font-variant-numeric:tabular-nums;padding-top:1px}
/* ---------- DEM-06 종료·인계 ---------- */
.dem06-wz{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:10px;align-items:start}
.dem06-side{position:relative}
.dem06-ck{display:grid;gap:8px}
.dem06-ck>div{display:grid;grid-template-columns:20px 1fr;gap:6px;font-size:11.5px;align-items:start}
.dem06-ck>div>span{display:grid;line-height:1.35}
.dem06-ck small{font-size:10.5px;color:var(--muted)}
.dem06-ck small.bad{color:var(--alert)}
.dem06-ck i{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:10px;font-weight:700;border:1.5px solid var(--line);color:var(--muted);background:var(--surface)}
.dem06-ck i.ok{background:var(--ok);border-color:var(--ok);color:#fff}
.dem06-ck i.p{border-color:var(--hq);color:var(--hq);box-shadow:0 0 0 2px color-mix(in srgb,var(--hq) 20%,transparent)}
.dem06-sc{display:grid;grid-template-columns:1fr 1fr;gap:5px 14px;font-size:11.5px}
.dem06-sc>span{display:flex;align-items:center;gap:2px}
.dem06-hp{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.4fr) auto;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface2);font-size:11.5px}
.dem06-flow{display:flex;align-items:center;gap:4px;flex-wrap:wrap;color:var(--muted)}
table.dem06-tb td{vertical-align:middle}
table.dem06-tb .inp{min-width:126px;padding:3px 8px}
.dem06-pl{display:grid;gap:6px}
.dem06-pl>div{display:grid;grid-template-columns:26px 1fr auto;gap:8px;align-items:center;font-size:11.5px;line-height:1.35;padding:4px 0;border-bottom:1px dashed var(--line)}
.dem06-pl>div:last-child{border-bottom:0}
.dem06-pl>div>b{font-variant-numeric:tabular-nums;font-size:13px}
.dem06-rs{display:grid}
.dem06-rs>div{display:grid;grid-template-columns:62px 1fr auto;gap:8px;align-items:center;font-size:11.5px;padding:6px 0;border-bottom:1px dashed var(--line);line-height:1.4}
.dem06-rs>div:last-child{border-bottom:0}
.dem06-rs code{font-size:10.5px;color:var(--muted)}

/* ---------- ANL-01 ---------- */
.anl01-svg{display:block;width:100%;height:auto;overflow:visible}
.anl01-svg text{font-family:var(--font);font-variant-numeric:tabular-nums}
.anl01-chart .tipdemo{width:290px;padding:7px 11px;line-height:1.45}
.anl01-sw{display:inline-block;width:8px;height:8px;border-radius:2px;background:var(--c);margin-right:6px;vertical-align:0}
.anl01-org td{vertical-align:middle}
.anl01-org td small{font-size:10.5px}
.anl01-org .stk.sm{margin:0 0 2px}
.anl01-org tr.anl01-sum td{background:var(--surface2);border-top:2px solid var(--line)}
.anl01-lnk{text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:2px}
.anl01-spark{display:block;width:150px;height:30px;overflow:visible}
.anl01-heat td.hc{min-width:40px}
.anl01-heat tr.anl01-ex td{background:var(--surface2);opacity:.6}
.anl01-cb{display:grid;grid-template-columns:86px 1fr 40px;gap:8px;align-items:center;font-size:11.5px;margin:5px 0}
.anl01-cb i{height:12px;position:relative;background:linear-gradient(var(--line),var(--line)) center/1px 100% no-repeat}
.anl01-cb s{position:absolute;top:1px;bottom:1px;background:var(--c);border-radius:2px}
.anl01-cb b{text-align:right;font-variant-numeric:tabular-nums}
.anl01-cb.anl01-cbt{border-top:1px solid var(--line);padding-top:5px}
.anl01-cb.anl01-cbt i{background:none}
.anl01-chart .tipdemo.anl01-tipl::before{left:auto;right:-6px;top:var(--ay,10px);border:6px solid transparent;border-right:0;border-left-color:var(--fg)}

