/* =====================================================================
   율하시스템즈 BLUEPRINT — 설계도 문법 (Claude Design 시안 기준)
   모눈 격자 위 노드 · 연결선 · 치수선. 프로젝트 = 색 모듈 블록, 금액 = 치수선, 실적 = 실선 · 예상 = 점선
   숫자·코드 = JetBrains Mono, 본문 = Pretendard
   색 세트 변수: --bg --grid --grid2 --panel --panel2 --line --line2 --text --dim --dimc --acc --accInk --head --headInk
                --ok/okT --warn/warnT --risk/riskT --stop/stopT --chartA --chartB --s1..s6 (프로젝트 색)
   ===================================================================== */
:root{--bg:#f6f8fb;--grid:#e6edf4;--grid2:#d3dfeb;--panel:#ffffff;--panel2:#f1f5fa;--line:#cfd9e4;--line2:#0f2740;--text:#0f2740;--dim:#56677c;--dimc:#1f5fd6;--acc:#1f5fd6;--accInk:#ffffff;
  --head:#0f2740;--headInk:#eef4fb;--ok:#1d8a57;--okT:#17734a;--warn:#e08a00;--warnT:#965c00;--risk:#d43a2a;--riskT:#b8301f;--stop:#4b5563;--stopT:#3f4754;--chartA:#dbe5f0;--chartB:#0f2740;
  --s1:#2b59c3;--s2:#0e8a8a;--s3:#b5487a;--s4:#7357d6;--s5:#6b7c22;--s6:#1e7fa8}
html.t-bp,html.t-bp body{--font:'Pretendard BP','Pretendard Variable',Pretendard,system-ui,sans-serif;--mono:'JetBrains Mono BP','JetBrains Mono','Pretendard BP',ui-monospace,monospace;--num:var(--mono);
  --surface:var(--panel);--surface-2:var(--panel2);--border:var(--line);--border-strong:var(--line2);--muted:var(--dim);--primary:var(--acc);--primary-ink:var(--accInk);
  --primary-soft:var(--panel2);--danger:var(--risk);--radius:0;--radius-sm:0;--shadow:none;--th-bg:var(--panel2);--th-color:var(--dim);
  --tone-green:var(--okT);--tone-green-bg:transparent;--tone-red:var(--riskT);--tone-red-bg:transparent;--tone-amber:var(--warnT);--tone-amber-bg:transparent;
  --tone-blue:var(--stopT);--tone-blue-bg:transparent;--tone-gray:var(--dim);--tone-gray-bg:transparent;--tone-violet:var(--s4);--tone-violet-bg:transparent;
  --tone-teal:var(--s2);--tone-teal-bg:transparent;--tone-rose:var(--s3);--tone-rose-bg:transparent}
html.t-bp body{margin:0;line-height:normal;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;-webkit-font-smoothing:antialiased}
.t-bp *{box-sizing:border-box}
.t-bp a{color:var(--acc);text-decoration:none}.t-bp a:hover{color:var(--text)}
.t-bp button,.t-bp input,.t-bp select,.t-bp textarea{font-family:inherit;font-size:inherit;border-radius:0}
.t-bp button{cursor:pointer}.t-bp button:disabled{cursor:not-allowed;opacity:.45}
.t-bp input:focus,.t-bp select:focus,.t-bp textarea:focus{outline:2px solid var(--acc);outline-offset:-1px}
.m{font-family:var(--mono)}.dim{color:var(--dim)}.r{text-align:right}.nw{white-space:nowrap}
.kick{font:700 12px/1 var(--mono);letter-spacing:.12em;color:var(--dimc)}
.sp{flex:1}

/* ---------- 상태 도형 */
.sg{display:inline-block;flex:none;width:var(--z,12px);height:var(--z,12px);font-style:normal}
.sg.ok{background:var(--ok);clip-path:circle(50% at 50% 50%)}.sg.warn{background:var(--warn);clip-path:polygon(50% 2%,100% 98%,0 98%)}
.sg.risk{background:var(--risk);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.sg.stop{background:var(--stop);clip-path:inset(8%)}.sg.none{background:transparent}
.st{display:inline-flex;align-items:center;gap:6px;font-weight:800}
.st.ok{color:var(--okT)}.st.warn{color:var(--warnT)}.st.risk{color:var(--riskT)}.st.stop{color:var(--stopT)}.st.none{color:var(--dim)}

/* ---------- 틀 : 머리띠 · 도면 목록 · 모눈 */
.bp-app{min-height:100vh;display:flex;flex-direction:column;background-color:var(--bg);
  background-image:linear-gradient(var(--grid2) 1px,transparent 1px),linear-gradient(90deg,var(--grid2) 1px,transparent 1px),linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);
  background-size:120px 120px,120px 120px,24px 24px,24px 24px}
.bp-hd{display:flex;align-items:stretch;background:var(--head);color:var(--headInk);min-height:58px;flex-wrap:wrap}
.bp-logo{display:flex;align-items:center;gap:12px;padding:0 18px;border-right:1px solid rgba(255,255,255,.16);color:var(--headInk)!important}
.bp-logo i{width:36px;height:36px;border:1.5px solid var(--headInk);display:grid;place-items:center;font:800 13px/1 var(--mono);font-style:normal;
  background-image:linear-gradient(rgba(255,255,255,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.18) 1px,transparent 1px);background-size:6px 6px}
.bp-logo span{display:flex;flex-direction:column;gap:3px}.bp-logo b{font-size:16px;font-weight:800;letter-spacing:-.02em}
.bp-logo small{font:500 10.5px/1 var(--mono);letter-spacing:.12em;opacity:.72}
.bp-hr{flex:1;display:flex;align-items:center;gap:12px;padding:10px 16px;flex-wrap:wrap;min-width:0}
.bp-hb{height:32px;padding:0 11px;border:1px solid rgba(255,255,255,.4);color:var(--headInk)!important;font-size:12.5px;font-weight:700;display:inline-flex;align-items:center}
.bp-seg{display:flex;flex:none;border:1px solid rgba(255,255,255,.4)}
.bp-seg a{white-space:nowrap;height:30px;padding:0 10px;display:inline-flex;align-items:center;color:var(--headInk)!important;font-size:12.5px;font-weight:700}
.bp-seg a.on{background:var(--acc);color:var(--accInk)!important}
.bp-jump{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700}
.bp-jump select{height:32px;padding:0 8px;border:0;background:var(--panel);color:var(--text);font-size:12.5px;font-weight:700;min-width:140px}
.bp-sp{flex:1}
.bp-q{display:flex;align-items:center;gap:8px;height:32px;padding:0 10px;background:var(--panel);color:var(--text);min-width:220px;margin:0}
.bp-q b{font:700 11px/1 var(--mono);color:var(--dim)}.bp-q input{flex:1;min-width:0;border:0;background:transparent;color:var(--text);font-size:13px;outline:none}
.bp-chips{display:flex;align-items:center;gap:6px}.bp-chips>span{font-size:11.5px;font-weight:700;opacity:.85}
.bp-chips .db-chip{width:28px;height:28px;padding:0;border:2px solid rgba(255,255,255,.35);border-radius:0;display:grid;place-items:center}
.bp-chips .db-chip i{width:12px;height:12px}
.bp-chips .db-chip.on,.bp-chips .db-chip[aria-pressed=true]{border-color:var(--acc);box-shadow:0 0 0 1px var(--acc)}
.bp-user{position:relative;display:flex;align-items:center;padding-left:12px;border-left:1px solid rgba(255,255,255,.22)}
.bp-user>button{display:flex;align-items:center;gap:8px;border:0;background:transparent;color:var(--headInk);padding:0;text-align:left}
.bp-user .av{width:30px;height:30px;border:1.5px solid var(--headInk);display:grid;place-items:center;font-size:12.5px;font-weight:800}
.bp-user .nm{display:flex;flex-direction:column;gap:2px}.bp-user .nm b{font-size:13px}.bp-user .nm small{font-size:11px;opacity:.75}
.a-pop{display:none;position:absolute;right:0;top:40px;background:var(--panel);border:2px solid var(--line2);padding:6px;z-index:40;min-width:150px;color:var(--text)}
.a-pop.open{display:block}.a-pop button{width:100%;height:32px;border:0;background:transparent;color:var(--text);text-align:left;padding:0 10px;font-weight:700}
.bp-body{display:flex;flex-wrap:wrap;flex:1;align-items:stretch}
.bp-side{flex:1 0 210px;max-width:230px;background:var(--panel);border-right:1.5px solid var(--line2);display:flex;flex-direction:column}
.bp-side .cap{padding:12px 14px 6px;font:700 11px/1 var(--mono);letter-spacing:.14em;color:var(--dim)}
.bp-side .cap.sep{margin-top:10px;border-top:1.5px dashed var(--line)}
.bp-nav a{line-height:1.15;display:flex;align-items:center;gap:9px;width:100%;padding:9px 14px;border-left:3px solid transparent;color:var(--text)!important;font-size:13px;font-weight:600}
.bp-nav a .cd{font:600 11px/1 var(--mono);color:var(--dim);width:30px;flex:none}.bp-nav a .lb{flex:1}
.bp-nav a.on{background:var(--panel2);border-left-color:var(--acc);font-weight:800}.bp-nav a:hover{background:var(--panel2)}
.bp-layers a{display:flex;align-items:center;gap:8px;width:100%;padding:7px 14px;color:var(--text)!important;font-size:12px}
.bp-layers a i.sw{width:12px;height:12px;border:2px solid;flex:none}.bp-layers a b{font:700 12px/1 var(--mono)}
.bp-layers a span{flex:1;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bp-layers a:hover{background:var(--panel2)}
.bp-more summary{list-style:none;cursor:pointer;display:block}.bp-more summary::-webkit-details-marker{display:none}
.bp-more b{display:block;padding:8px 14px 2px;font:600 10.5px/1 var(--mono);letter-spacing:.1em;color:var(--dimc)}
.bp-more a{display:block;padding:4px 14px 4px 20px;font-size:12.5px;font-weight:600;color:var(--text)!important}.bp-more a.on,.bp-more a:hover{background:var(--panel2);font-weight:800}
.bp-fill{flex:1}
.bp-legend{margin:14px;padding:10px;border:1.5px solid var(--line2);font:500 10.5px/1.6 var(--mono);color:var(--dim)}
.bp-main{flex:1 1 640px;min-width:0}

/* ---------- 공통 조각 */
.bp-sec{display:flex;flex-direction:column;gap:18px;padding:22px 24px 44px}.bp-sec.e1{gap:20px}
.bp-sec.narrow{max-width:1160px}
.bp-ph{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.bp-ph h1{margin:8px 0 0;font-size:30px;font-weight:800;letter-spacing:-.03em}.bp-ph h1.xl{font-size:38px;letter-spacing:-.035em}
.bp-ph .acts,.acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.tblock{display:grid;grid-template-columns:auto auto auto;border:1.5px solid var(--line2);background:var(--panel);font:500 11px/1.3 var(--mono)}
.tblock>div{padding:6px 10px;border-right:1px solid var(--line);display:flex;flex-direction:column}.tblock>div:last-child{border-right:0}.tblock span{color:var(--dim)}
.box{border:1.5px solid var(--line2);background:var(--panel)}.box.b2{border-width:2px}
.bh{padding:11px 14px;border-bottom:1.5px solid var(--line2);font-size:15px;font-weight:800;display:flex;align-items:baseline;gap:10px}
.bh2{display:flex;align-items:baseline;gap:10px;padding:12px 16px;border-bottom:1.5px solid var(--line2)}.bh2 h2{margin:0;font-size:18px;font-weight:800}.bh2>b{font-size:16px}
.bh2 .big{font:700 20px/1 var(--mono)}.hint{font-size:11.5px;font-weight:600;color:var(--dim)}
.foot{padding:9px 14px;font:500 11px/1.5 var(--mono);color:var(--dim)}
.lnk{border:0;background:transparent;color:var(--acc)!important;font-size:12px;font-weight:800}
.g2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:20px;align-items:start}
.g3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:18px;align-items:start}
.stackc{display:flex;flex-direction:column;gap:20px}
.sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));border:1.5px solid var(--line2);background:var(--panel)}
.sum>div{padding:12px 14px;border-right:1px solid var(--line)}.sum>div:last-child{border-right:0}
.sum .k{font-size:12px;font-weight:700;color:var(--dim)}.sum b{font:700 30px/1.2 var(--mono)}.sum .u{font-size:12px;font-weight:700;color:var(--dim)}
.sum.s28 b{font-size:28px}.sum.s32 b{font-size:32px}.sum.w150{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.sum.w120{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}
.pid{display:inline-block;padding:3px 6px;color:#fff!important;font:700 11px/1 var(--mono);text-align:center}
.scroll{overflow-x:auto}

/* 버튼 */
.bb{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:38px;padding:0 13px;border:1.5px solid var(--line2);background:var(--panel);color:var(--text)!important;font-size:13px;font-weight:800;white-space:nowrap;text-decoration:none}
.bb:hover:not(:disabled){background:var(--panel2)}
.bb.p{background:var(--acc);color:var(--accInk)!important}.bb.p:hover:not(:disabled){filter:brightness(1.08);background:var(--acc)}
.bb.r{border-color:var(--risk);color:var(--riskT)!important}
.bb.on{background:var(--line2);color:var(--panel)!important}
.bb.s{height:30px;padding:0 10px;font-size:12px}.bb.nw{height:34px;padding:0 12px;font-size:12.5px}
.bb.f{width:100%;height:32px;font-size:12px;padding:0 6px}
.bb.l{height:42px;padding:0 20px;font-size:14px}.bb.xl{height:44px;padding:0 24px;font-size:15px}
.bf{display:contents}

/* ---------- E1 오늘 */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));border:1.5px solid var(--line2);background:var(--panel)}
.kpi{display:flex;flex-direction:column;gap:8px;padding:16px 18px 14px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--text)!important}
.kpi:hover{background:var(--panel2)}
.kpi .h{display:flex;align-items:center;gap:7px;width:100%;font-size:13px;font-weight:700;color:var(--dim)}.kpi .h .n{font:700 11px/1 var(--mono);color:var(--dimc)}
.kpi .v{display:flex;align-items:baseline;gap:5px}.kpi .v b{font:700 46px/1 var(--mono);letter-spacing:-.04em}.kpi .v span{font-size:15px;font-weight:700}
.dim-bar{position:relative;width:100%;height:14px;display:block}.dim-bar i{position:absolute;display:block}
.dim-bar .base{left:0;top:6px;height:2px;width:100%;background:var(--chartA)}.dim-bar .fill{left:0;top:4px;height:6px}.dim-bar .tick{top:0;bottom:0;width:1.5px;background:var(--line2)}
.kpi .sub{font:500 11.5px/1.3 var(--mono);color:var(--dim)}
.sect{display:flex;flex-direction:column;gap:12px}
.sect-h{display:flex;align-items:baseline;gap:12px}.sect-h h2{margin:0;font-size:20px;font-weight:800}.sect-h .dash{flex:1;border-bottom:1.5px dashed var(--line)}
.map{padding:20px 18px 22px}
.map .hq{display:flex;justify-content:center}.map .hq>div{display:flex;align-items:center;gap:14px;padding:10px 18px;border:2px solid var(--line2);background:var(--panel2)}
.map .hq>div>b{font:800 13px/1 var(--mono);letter-spacing:.08em}.map .hq span{font-size:13px;font-weight:700;color:var(--dim)}.map .hq span b{color:var(--text)}
.map .vl{width:1.5px;height:22px;margin:0 auto;background:var(--line2)}.map .vl.s{height:18px}
.map .hz{margin:0 16.66%;border-top:1.5px solid var(--line2)}
.map .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:20px}
.map .col{display:flex;flex-direction:column}
.map .dh{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border:1.5px solid var(--line2);background:var(--head);color:var(--headInk)}
.map .dh b{font-size:14px}.map .dh span{font:600 11.5px/1 var(--mono)}
.map .mods{display:flex;flex-direction:column;gap:12px;margin-left:14px;padding:12px 0 0 18px;border-left:1.5px dashed var(--line2)}
.modc{position:relative;display:flex;flex-direction:column;border:2px solid var(--c);background:var(--panel);color:var(--text)!important}
.modc:hover{box-shadow:4px 4px 0 var(--c)}
.modc .lk{position:absolute;left:-20px;top:22px;width:18px;border-top:1.5px dashed var(--line2)}.modc .nd{position:absolute;left:-6px;top:18px;width:9px;height:9px;background:var(--c)}
.modc .mh{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;background:var(--c);color:#fff}
.modc .mh b{font:800 13px/1 var(--mono);letter-spacing:.04em}.modc .mh span{font:600 11px/1 var(--mono)}
.modc .mb{display:flex;flex-direction:column;gap:9px;padding:10px 12px 12px}
.modc .t{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.modc .t b{font-size:15px;line-height:1.3}.modc .t>div>div{font-size:12px;font-weight:600;color:var(--dim)}
.modc .t .st{flex:none;font-size:12.5px;gap:5px}
.modc .row{display:grid;grid-template-columns:52px minmax(0,1fr) 72px;gap:8px;align-items:center;font-size:11.5px}.modc .row>span{font-weight:700;color:var(--dim)}
.modc .row>b{font-family:var(--mono);text-align:right}
.modc .mbar{position:relative;height:8px;background:var(--chartA)}.modc .mbar i{display:block;height:100%}.modc .mbar.ds{background:transparent;border:1px dashed var(--line2)}
.modc .mbar em{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--line2)}.modc .mbar em.t2{top:-4px;bottom:-4px}
.modc .ft{display:flex;flex-wrap:wrap;gap:4px 10px;justify-content:space-between;font:500 11.5px/1.3 var(--mono);color:var(--dim)}
.alr{display:grid;grid-template-columns:38px 76px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line)}
.alr.hot{background:var(--panel2)}.alr .no{font:700 12px/1 var(--mono);color:var(--dim)}.alr .st{font-size:14px}.alr .tx{font-size:13.5px;font-weight:600;line-height:1.45;text-wrap:pretty}
.bill{display:grid;grid-template-columns:72px minmax(0,1fr) 70px 60px;gap:10px;align-items:center;width:100%;padding:9px 16px;border-bottom:1px solid var(--line);color:var(--text)!important;font-size:12.5px}
.bill:hover{background:var(--panel2)}.bill .nm{font-weight:700}.bill .nm span{font-weight:800}
.pm{display:grid;grid-template-columns:86px minmax(0,1fr) 92px;gap:10px;align-items:center;padding:7px 16px;font-size:12.5px}
.pm>div{height:10px;background:var(--chartA)}.pm>div i{display:block;height:100%;background:var(--chartB)}
.ut{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;align-items:end;height:150px;padding:12px 16px}
.ut>div{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;height:100%}.ut b{font-size:13px}.ut i{display:block;width:60%}
.ut span{font-size:11px;color:var(--dim);white-space:nowrap}

/* ---------- 처리 팝업 · 토스트 */
.a-toasts{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;z-index:80;width:max-content;max-width:calc(100vw - 32px)}
.a-toast{display:flex;gap:10px;align-items:center;background:var(--head);color:var(--headInk);border:1.5px solid var(--acc);padding:12px 18px;font-size:13.5px;font-weight:700;transition:opacity .3s,transform .3s}
.a-toast .k{font:700 12px/1 var(--mono);color:var(--acc)}
.a-toast.error{border-color:var(--risk)}.a-toast.error .k{color:var(--risk)}.a-toast.warning{border-color:var(--warn)}.a-toast.warning .k{color:var(--warn)}
.a-toast button{border:0;background:transparent;color:var(--headInk);opacity:.7;font-size:16px}.a-toast.out{opacity:0;transform:translateY(8px);pointer-events:none}
dialog.a-modal,dialog.mb-dlg{border:2px solid var(--line2);background:var(--panel);color:var(--text);padding:0;width:min(540px,calc(100vw - 32px));border-radius:0;box-shadow:none;max-height:90vh}
dialog.a-modal::backdrop{background:rgba(10,24,44,.55)}
.a-modal-h{display:grid;grid-template-columns:minmax(0,1fr) auto;border-bottom:2px solid var(--line2)}
.a-modal-h>div{padding:14px 18px;display:flex;flex-direction:column}
.a-modal-h small{font:700 11px/1 var(--mono);letter-spacing:.14em;color:var(--dimc)}.a-modal.danger .a-modal-h small{color:var(--riskT)}
.a-modal-h b{margin-top:7px;font-size:21px;font-weight:800;letter-spacing:-.02em}.a-modal-h .sub{margin-top:4px;font-size:13px;font-weight:600;color:var(--dim)}
.a-modal-h .rev{padding:14px;border-left:1.5px solid var(--line2);font:500 10.5px/1.6 var(--mono);color:var(--dim)}.a-modal-h .rev b{color:var(--text);font:700 10.5px/1.6 var(--mono);margin:0}
.a-modal-b{padding:16px 18px;display:flex;flex-direction:column;gap:12px;font-size:14px;line-height:1.5}
.a-modal-b.grid,.a-modal .a-modal-b{background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:16px 16px}
.a-modal-b .box{padding:8px 10px;border:1px solid var(--line);background:var(--panel);font-weight:700}
.a-modal-b .lns,.a-modal-b .flds{display:flex;flex-direction:column;gap:12px}.a-modal-b .flds:empty{display:none}
.a-modal-b .ln{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:8px 10px;border:1px solid var(--line);background:var(--panel);font-size:13.5px}
.a-modal-b .ln span{font-weight:700;color:var(--dim)}.a-modal-b .ln b{font-family:var(--mono);text-align:right}.a-modal-b .ln .lead{display:none}
.a-modal-b .fld,.a-modal-b .rsn{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:800}.a-modal-b .rsn em{font-style:normal;font-weight:600;color:var(--riskT)}
.a-modal-b .rsn>span:first-child{display:inline}
.a-modal-b textarea,.a-modal-b input:not([type=hidden]):not([type=checkbox]),.a-modal-b select{width:100%;border:1.5px solid var(--line2);background:var(--panel);color:var(--text);padding:10px;font-size:14px;font-weight:600}
.a-modal-b input:not([type=hidden]),.a-modal-b select{height:38px;padding:0 10px}.a-modal-b textarea{resize:vertical;font-weight:500}
.a-modal-b .err input,.a-modal-b .err select,.a-modal-b .err textarea{border-color:var(--risk)}
.a-lbl{font-size:13px;font-weight:800}
.a-err{display:none;align-items:center;gap:8px;padding:9px 12px;background:var(--panel);border:1.5px solid var(--risk);color:var(--riskT);font-size:13px;font-weight:800}
#a-modal-err{display:none}
.a-chiprow{display:flex;gap:6px;flex-wrap:wrap}.a-chiprow:empty{display:none}
.a-chiprow button{height:28px;padding:0 10px;border:1.5px solid var(--line2);background:var(--panel);color:var(--text);font-size:12px;font-weight:700}
.a-chiprow button:hover{background:var(--acc);color:var(--accInk)}
.a-modal-f{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1.5px dashed var(--line2)}
.a-btn{height:40px;padding:0 18px;border:1.5px solid var(--line2);background:var(--panel);color:var(--text);font-size:14px;font-weight:700}
.a-btn-ac{background:var(--acc);color:var(--accInk);font-weight:800;padding:0 22px}.a-btn-danger{background:var(--risk);color:#fff;font-weight:800;padding:0 22px}
.a-btn:disabled{opacity:.4}

/* ---------- E2 프로젝트 상세 */
.ptabs{display:flex;gap:6px;flex-wrap:wrap}
.ptabs a{display:flex;align-items:center;gap:8px;height:38px;padding:0 12px;border:2px solid;background:var(--panel);color:var(--text)!important;font-size:13px;font-weight:700}
.ptabs a.on{color:#fff!important}.ptabs a b{font:800 12.5px/1 var(--mono)}.ptabs a.sm{height:32px}
.e2-hd{display:grid;grid-template-columns:minmax(200px,260px) minmax(0,1fr)}
.e2-hd .side{display:flex;flex-direction:column;justify-content:space-between;gap:14px;padding:18px;color:#fff;
  background-image:linear-gradient(rgba(255,255,255,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.14) 1px,transparent 1px);background-size:16px 16px}
.e2-hd .side .k{font:700 11px/1 var(--mono);letter-spacing:.14em;opacity:.85}.e2-hd .side b{font:800 40px/1 var(--mono);letter-spacing:-.03em}.e2-hd .side .m{font:600 12px/1.5 var(--mono)}
.e2-hd .main{display:flex;flex-direction:column;gap:14px;padding:18px 20px}
.e2-hd .top{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;align-items:flex-start}
.e2-hd h1{margin:6px 0 0;font-size:30px;font-weight:800;letter-spacing:-.03em}.e2-hd .cu{margin-top:4px;font-size:13.5px;font-weight:600;color:var(--dim)}
.stbox{gap:8px;padding:8px 12px;border:2px solid;font-size:15px}
.sum4{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));border:1.5px solid var(--line2)}
.sum4>div{padding:10px 12px;border-right:1px solid var(--line)}.sum4>div:last-child{border-right:0}
.sum4 span{display:block;font-size:11.5px;font-weight:700;color:var(--dim)}.sum4 b{font:700 22px/1.3 var(--mono)}.sum4 em{font:700 12px/1 var(--mono);font-style:normal}
.box.pad{padding:16px 18px;display:flex;flex-direction:column;gap:12px}
.hrow{display:flex;align-items:baseline;gap:10px}.hrow b{font-size:16px}
.dimrow{display:grid;grid-template-columns:86px minmax(0,1fr);gap:10px;align-items:start}.dimrow>b{font-size:12.5px;padding-top:2px}
.dimrow .dw{position:relative;height:34px}.dimrow .blk{position:absolute;left:0;top:0;height:16px}
.dimrow .dl{position:absolute;left:0;top:22px;height:9px;border-left:1.5px solid var(--dimc);border-right:1.5px solid var(--dimc)}.dimrow .dl i{position:absolute;left:0;right:0;top:4px;border-top:1px solid var(--dimc)}
.dimrow .dw>span{position:absolute;top:0;margin-left:8px;font:700 12.5px/16px var(--mono);color:var(--dimc);white-space:nowrap}
.foot0{font:500 11px/1.4 var(--mono);color:var(--dim)}
.mmc{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:end;height:170px}
.mmc>div{display:flex;flex-direction:column;justify-content:flex-end;gap:5px;height:100%}
.mmc .bars{display:flex;gap:4px;align-items:flex-end;height:120px}.mmc .bars i{flex:1;display:block}.mmc .bars i.pl{border:1.5px dashed var(--line2)}
.mmc>div>span{font:600 11px/1.3 var(--mono);text-align:center}
.mmc.sm{height:130px;gap:12px}.mmc.sm .bars{height:92px;gap:3px}.mmc.sm>div{gap:4px}.mmc.sm>div>span{font-size:10.5px}
.li{display:grid;grid-template-columns:minmax(0,1fr) 54px 96px;gap:8px;align-items:center;padding:9px 14px;border-bottom:1px solid var(--line);font-size:13px;color:var(--text)!important}
.li.col{display:flex;flex-direction:column;align-items:stretch;gap:3px;padding:10px 14px}.li .sb{display:flex;justify-content:space-between;gap:8px}
a.li:hover{background:var(--panel2)}
.emp{padding:14px;font-size:12.5px;color:var(--dim);font-weight:600}

/* ---------- E3 손익 (EAC) */
.e3-dw{padding:18px 20px 14px;display:flex;flex-direction:column;gap:10px}
.e3-dw .cv{position:relative;min-width:380px;height:250px;margin:0 120px 0 76px}
.e3-dw .vg{position:absolute;top:0;bottom:0;border-left:1.5px dashed var(--line2)}.e3-dw .vg.c{border-left-color:var(--dimc)}
.e3-dw .lb{position:absolute;left:-76px;font-size:13px;font-weight:800}
.e3-dw .br{position:absolute;left:0;height:24px}
.e3-dw .hatch{background:repeating-linear-gradient(45deg,var(--risk) 0 3px,transparent 3px 8px);border:1.5px solid var(--risk)}
.e3-dw .vt{position:absolute;margin-left:8px;font:700 13px/1 var(--mono);white-space:nowrap}.e3-dw .vt.c{color:var(--dimc)}
.e3-dw .dm{position:absolute;left:0;height:12px;border-left:1.5px solid var(--line2);border-right:1.5px solid var(--line2)}
.e3-dw .dm i{position:absolute;left:0;right:0;top:5px;border-top:1px solid var(--line2)}
.e3-dw .dm span{position:absolute;left:50%;transform:translateX(-50%);padding:0 6px;background:var(--panel);font:700 12px/1 var(--mono);white-space:nowrap}
.e3-dw .dm.rk{border-color:var(--risk)}.e3-dw .dm.rk i{border-color:var(--risk)}.e3-dw .dm span.below{top:14px;background:transparent;font-size:12.5px;font-weight:800;color:var(--riskT)}
.e3-dw .dm.cc{border-color:var(--dimc)}.e3-dw .dm.cc i{border-color:var(--dimc)}.e3-dw .dm span.aft{left:100%;transform:none;top:0;margin-left:8px;padding:0;background:transparent;color:var(--dimc)}
.e3-low{gap:18px;grid-template-columns:repeat(auto-fit,minmax(min(100%,520px),1fr))}
.ct{display:grid;grid-template-columns:minmax(110px,1.2fr) repeat(5,58px) minmax(70px,1fr);gap:8px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line);font-size:13px}
.ct>span,.ct>b:not(:first-child){font-family:var(--mono);text-align:right}
.ct.h{border-bottom:1.5px solid var(--line2);font:700 11.5px/1 var(--mono);color:var(--dim)}.ct.h span:first-child{text-align:left}
.ct.t{border-top:2px solid var(--line2);border-bottom:0;padding:11px 14px;font:800 13.5px/1 var(--mono)}.ct.t span:first-child{text-align:left}
.ct .cb{position:relative;height:12px}.ct .cb i{position:absolute;display:block}
.ct .cb .b{inset:0 auto 0 0;border:1.5px solid var(--line2)}.ct .cb .s{left:0;top:3px;height:6px;background:var(--chartB)}.ct .cb .e{left:0;top:-2px;bottom:-2px;border-right:2px dashed var(--risk)}
.mg{display:grid;grid-template-columns:70px minmax(0,1fr) 92px;gap:10px;align-items:center;width:100%;padding:8px 14px;border-bottom:1px solid var(--line);color:var(--text)!important}
.mg:hover{background:var(--panel2)}.mg>b{font-size:11.5px;font-weight:800}.mg>div{position:relative;height:10px;background:var(--chartA)}.mg>div i{display:block;height:100%}
.mg>div em{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--line2)}.mg>span{font-size:11.5px;font-weight:600}

/* ---------- E4 인력 */
.seg{display:flex;border:1.5px solid var(--line2)}.seg a{height:34px;padding:0 11px;display:inline-flex;align-items:center;border-right:1px solid var(--line);background:var(--panel);color:var(--text)!important;font-size:12.5px;font-weight:800}
.seg a:last-child{border-right:0}.seg a.on{background:var(--line2);color:var(--panel)!important}
.gt{display:grid;grid-template-columns:150px repeat(3,minmax(0,1fr)) 70px;border-bottom:1px solid var(--line)}
.gt.h{border-bottom:2px solid var(--line2);font:700 12px/1 var(--mono)}.gt.h>div{padding:10px;border-left:1px solid var(--line);text-align:center}.gt.h>div:first-child{padding:10px 14px;border-left:0;text-align:left}
.gt .bb.nm{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;height:auto;padding:8px 14px;border:0;background:transparent;font-weight:400;text-align:left}
.gt .bb.nm b{font-size:13.5px;font-weight:700}.gt .bb.nm span{font-size:11.5px;font-weight:600;color:var(--dim)}
.gt .cell{display:flex;flex-direction:column;gap:2px;height:56px;padding:4px;border-left:1px dashed var(--line);background-image:linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:25% 100%}
.gt .cell>div{min-height:20px;display:flex;align-items:center;padding:0 7px;font:700 11px/1.1 var(--mono);overflow:hidden;white-space:nowrap}
.gt .u{display:grid;place-items:center;border-left:1px solid var(--line);font:800 14px/1 var(--mono)}
.gr{display:grid;grid-template-columns:44px 60px minmax(0,1fr) 48px;gap:10px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line);font-size:13px}
.gr>div{position:relative;height:12px;background:var(--chartA)}.gr>div i{display:block;height:100%}.gr>div em{position:absolute;top:-3px;bottom:-3px;left:85%;width:2px;background:var(--line2)}
.bn{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:9px 14px;border-bottom:1px solid var(--line);font-size:13px}
.bn .bb.s{height:30px}

/* ---------- E5 청구 */
.sq{display:grid;grid-template-columns:190px repeat(5,minmax(0,1fr)) 112px;align-items:center;border-bottom:1px solid var(--line)}
.sq.h{border-bottom:2px solid var(--line2)}.sq.h>div{padding:10px 6px;border-left:1px dashed var(--line);text-align:center;font-size:12.5px;font-weight:800}
.sq.h>div:first-child{padding:10px 14px;border-left:0;text-align:left}.sq.h>div:last-child{border-left:1px solid var(--line);padding:10px}.sq.h .m{font-size:11px}
.sq .who{display:flex;flex-direction:column;gap:3px;padding:10px 14px}.sq .who>span:first-child{display:flex;align-items:center;gap:6px}.sq .who>span:first-child>b:last-child{font-size:13.5px}
.sq .who .c{font-size:12px;font-weight:600;color:var(--dim)}.sq .who .c b{color:var(--text)}
.sq .nd{position:relative;height:52px;border-left:1px dashed var(--line)}
.sq .nd .ln{position:absolute;left:50%;right:-50%;top:50%}
.sq .nd .o{position:absolute;left:50%;top:50%;width:18px;height:18px;transform:translate(-50%,-50%);border-radius:50%;border:2.5px solid}
.sq .pr{display:flex;flex-direction:column;gap:4px;align-items:center;padding:8px;border-left:1px solid var(--line)}.sq .pr>span{font-size:11px;font-weight:600}
.pp{display:grid;grid-template-columns:58px minmax(0,1fr) 70px;gap:10px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line);font-size:13px}.pp span{font-weight:600}
.why{display:flex;flex-direction:column;gap:6px;padding:12px 14px;font-size:13px}.why>span:last-child{font-weight:600;line-height:1.5}

/* ---------- E6 파이프라인 */
.lanes{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));min-width:1080px;border:2px solid var(--line2);background:var(--panel)}
.lane{display:flex;flex-direction:column;border-right:1.5px dashed var(--line);min-height:300px}.lane:last-child{border-right:0}
.lane .lh{position:relative;padding:10px 12px;border-bottom:2px solid var(--line2);background:var(--panel2)}
.lane .lh>.m:first-child{font:700 11px/1 var(--mono);color:var(--dimc)}.lane .lh b{font-size:14px;display:block;margin:2px 0}.lane .lh .dim{font:600 11.5px/1.4 var(--mono)}
.lane .ar{position:absolute;right:-9px;top:50%;transform:translateY(-50%);width:16px;height:16px;background:var(--panel);border:1.5px solid var(--line2);display:grid;place-items:center;font:700 10px/1 var(--mono);z-index:1}
.lane:last-child .ar{display:none}
.lane .lc{display:flex;flex-direction:column;gap:8px;padding:10px}
.bb.oc{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:5px;height:auto;padding:9px 10px;border-width:2px;background:var(--panel);text-align:left;white-space:normal;font-weight:400}
.bb.oc:disabled{opacity:.85}
.oc .t{display:flex;justify-content:space-between;width:100%;font:700 11px/1 var(--mono);color:var(--dim)}.oc .t .st{font-family:var(--font);font-size:11px}
.oc>b{font-size:13px;line-height:1.3;font-weight:800}.oc .cu{font-size:11.5px;font-weight:600;color:var(--dim)}.oc .t.a{font:700 12.5px/1 var(--mono);color:var(--text)}
.oc .du{font-size:11.5px;font-weight:700}
.pg{display:grid;grid-template-columns:minmax(0,1fr) 120px 44px;gap:10px;align-items:center;padding:9px 14px;border-bottom:1px solid var(--line);font-size:13px}.pg>span{font-weight:700}
.pg>div{height:10px;border:1px solid var(--line2)}.pg>div i{display:block;height:100%}
.cal{display:grid;grid-template-columns:62px 28px minmax(0,1fr);gap:10px;align-items:center;padding:11px 14px;border-bottom:1px solid var(--line);font-size:13px}
.cal>b{font:800 15px/1 var(--mono)}.cal>span.dim{font-size:12px;font-weight:700}

/* ---------- E7 CR · 이슈 / 공통 선택 목록 */
.sel{display:flex;flex-direction:column;gap:4px;width:100%;padding:11px 14px;border-bottom:1px solid var(--line);border-left:4px solid transparent;color:var(--text)!important}
.sel.on{background:var(--panel2);border-left-color:var(--acc)}.sel:hover{background:var(--panel2)}
.sel .t{display:flex;justify-content:space-between;width:100%;gap:6px}.sel .t>span:first-child{display:flex;align-items:center;gap:6px}.sel .t .m{font-size:11.5px;font-weight:700}
.sel .pid{font-size:10.5px;padding:2px 5px}.sel>b{font-size:13.5px}
.crd{display:flex;flex-direction:column}
.crd .hd{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:14px 16px;border-bottom:1.5px solid var(--line2)}.crd .hd b{font-size:19px}
.crd .trk{display:flex;border-bottom:1.5px solid var(--line2)}.crd .trk>div{flex:1;padding:9px 6px;border-right:1px solid var(--line2);text-align:center;font-size:12.5px;font-weight:800}.crd .trk>div:last-child{border-right:0}
.crd .dg{padding:18px 16px;background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:16px 16px}
.crd .fl{display:flex;flex-wrap:wrap;align-items:center;row-gap:12px}
.crd .nd1{flex:1 1 120px;border:2px solid;background:var(--panel)}.crd .nd1>div:first-child{padding:6px 10px;color:#fff;font:700 11.5px/1 var(--mono)}.crd .nd1>div:last-child{padding:8px 10px;font-size:12.5px;font-weight:700}
.crd .ar{flex:0 0 28px;border-top:1.5px solid var(--line2);position:relative}.crd .ar.ds{border-top-style:dashed}.crd .ar span{position:absolute;right:-2px;top:-6px;font:700 11px/1 var(--mono)}
.crd .nd2,.crd .nd3{flex:1 1 160px;border:1.5px solid var(--line2);background:var(--panel);font-size:12.5px}.crd .nd3{border:2px dashed var(--line2)}
.crd .h{padding:6px 10px;border-bottom:1.5px solid var(--line2);font:700 11.5px/1 var(--mono);color:var(--dimc)}.crd .nd3 .h{border-bottom-style:dashed}
.crd .ik{display:flex;justify-content:space-between;gap:8px;padding:6px 10px;border-bottom:1px solid var(--line)}.crd .ik:last-child{border-bottom:0}.crd .ik span{color:var(--dim);font-weight:700}.crd .ik b{font-family:var(--mono);text-align:right}
.crd .nd3 .tx{padding:8px 10px;font-weight:700;line-height:1.45}.crd .nd3 .mgt{padding:0 10px 8px;font-size:12.5px;font-weight:700;line-height:1.3;color:var(--dimc)}
.crd .ft{display:flex;gap:8px;flex-wrap:wrap;padding:12px 16px;border-top:1.5px dashed var(--line2)}.crd .ft .bb{height:36px;padding:0 12px;font-size:12.5px}
.isr{display:grid;grid-template-columns:100px 72px minmax(0,1fr) 80px 60px 90px auto;gap:10px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line);font-size:13px}

/* ---------- E8 공수 */
h1.ttl{margin:8px 0 0;font-size:30px;font-weight:800;letter-spacing:-.03em}
.sum.ts4{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.sum.ts4>div{padding:12px 16px}.sum.ts4 b.nm{font:800 16px/1.3 var(--font)}.sum.ts4 b.s22{font-size:22px;line-height:1.3}
.tb{position:relative;height:10px;margin-top:6px;background:var(--chartA)}.tb i{display:block;height:100%}.tb em{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--line2)}
.sum.ts4 .st{display:inline-flex}
.okbar{display:flex;align-items:center;gap:10px;padding:12px 16px;border:1.5px solid var(--ok);background:var(--panel);color:var(--okT);font-weight:800}.okbar i{width:14px;height:14px;border-radius:50%;background:var(--ok)}
.tg{display:grid;grid-template-columns:120px 110px repeat(5,72px) 60px minmax(140px,1fr) 34px;gap:6px;align-items:center;padding:8px 14px;border-bottom:1px solid var(--line)}
.tg.h{padding:10px 14px;border-bottom:2px solid var(--line2);font-size:12px;font-weight:800;color:var(--dim)}.tg .c{text-align:center}
.tg select{height:34px;border:1.5px solid var(--line);background:var(--panel);color:var(--text);font-size:12.5px;font-weight:700}.tg select.m{font:700 12px/1 var(--mono)}
.tg select.err{border-color:var(--risk)}
.tg input[type=number]{height:34px;width:100%;border:1.5px solid var(--line);background:var(--panel);color:var(--text);text-align:center;font:700 14px/1 var(--mono)}
.tg input:not([type]),.tg input[name^=m]{height:34px;padding:0 8px;border:1.5px solid var(--line);background:var(--panel);color:var(--text);font-size:12.5px;min-width:0}
.tg [data-sum]{font-size:14px;font-weight:800}
.tg .x{width:30px;height:30px;border:1px solid var(--line);background:var(--panel);color:var(--text);font-weight:800}
.tg.t{padding:10px 14px;border-top:2px solid var(--line2);border-bottom:0;background:var(--panel2)}.tg.t b.m{font-size:14px;font-weight:800}.tg.t b.r{font-size:15px}
.tsf{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.tsf .bb.l{height:40px;padding:0 14px;font-size:14px}.tsf .bb.xl{height:44px}
#ts-form{display:flex;flex-direction:column;gap:18px}

/* ---------- E9 외주 · 공통 목록/상세 */
.e9-g{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(min(100%,340px),1fr);gap:18px;align-items:start}
.tabs2{display:flex;border-bottom:2px solid var(--line2);overflow-x:auto}
.tabs2 a{flex:1;min-width:80px;height:42px;display:flex;align-items:center;justify-content:center;gap:4px;border-right:1px solid var(--line);background:var(--panel);color:var(--text)!important;font-size:13px;font-weight:800;white-space:nowrap}
.tabs2 a:last-child{border-right:0}.tabs2 a.on{background:var(--line2);color:var(--panel)!important}
.ocr{display:grid;grid-template-columns:110px minmax(100px,1fr) 70px 46px minmax(110px,1fr) 64px 84px 90px;gap:8px;align-items:center;width:100%;padding:11px 14px;border-bottom:1px solid var(--line);border-left:4px solid transparent;color:var(--text)!important;font-size:13px}
.ocr.h{padding:9px 14px;font-size:12px;font-weight:800;color:var(--dim)!important;border-bottom:1.5px solid var(--line2);border-left:0}
.ocr.on{background:var(--panel2);border-left-color:var(--acc)}a.ocr:hover{background:var(--panel2)}
.empty0{display:flex;align-items:center;gap:14px;padding:26px 16px}.empty0>span{width:42px;height:42px;border:2px dashed var(--line2);display:grid;place-items:center;font:700 16px/1 var(--mono);color:var(--dim);flex:none}
.det .hd{display:grid;grid-template-columns:minmax(0,1fr) auto;border-bottom:2px solid var(--line2)}.det .hd>div:first-child{padding:14px 16px}.det .hd b{font-size:20px}
.det .hd .cd{display:grid;place-items:center;padding:0 16px;color:#fff;font-size:13px;font-weight:800}
.kvs{display:flex;flex-direction:column;gap:9px;padding:14px 16px;font-size:13.5px}.kvs>div{display:grid;grid-template-columns:90px minmax(0,1fr);gap:8px}.kvs>div>span:first-child{color:var(--dim);font-weight:700}
.kvs .ul{color:var(--acc)!important;font-weight:800;text-decoration:underline}
.det .ft{display:flex;gap:6px;flex-wrap:wrap;padding:12px 16px;border-top:1.5px dashed var(--line2)}.det .ft .bb{height:36px;padding:0 12px;font-size:12.5px}

/* ---------- E10 SM */
.sla{display:grid;grid-template-columns:minmax(min(100%,360px),1fr) minmax(0,1.4fr)}
.sla .l{padding:18px 20px;border-right:1.5px dashed var(--line2);display:flex;flex-direction:column;gap:10px}
.sla .big{font:800 64px/1 var(--mono);letter-spacing:-.04em}.sla .big span{font-size:26px}
.gauge{position:relative;height:56px;margin-top:4px}.gauge i{position:absolute;display:block}
.gauge .bg{left:0;right:0;top:10px;height:14px;background:var(--chartA)}.gauge .fl{left:0;top:10px;height:14px;background:var(--ok)}.gauge .tk{top:2px;bottom:22px;width:2px;background:var(--line2)}
.gauge span{position:absolute;top:36px;font:600 11px/1 var(--mono);color:var(--dim)}.gauge .pr{transform:translateX(-50%);font-weight:700;color:var(--text);white-space:nowrap}.gauge .a{left:0}.gauge .b{right:0}
.sla .rr{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.sla .rr>div{padding:14px 16px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.sla .rr .k{font-size:12px;font-weight:700;color:var(--dim)}.sla .rr b{font:700 30px/1.2 var(--mono)}.sla .rr .u{font-size:12px;font-weight:700;color:var(--dim)}
.srg{display:grid;grid-template-columns:110px 80px minmax(170px,1.4fr) 56px 54px 54px minmax(120px,1fr) 70px 100px;gap:8px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line);font-size:13px}
.srg.h{padding:9px 14px;font-size:12px;font-weight:800;color:var(--dim);border-bottom:1.5px solid var(--line2)}
.grd{padding:3px 0;border:1.5px solid;text-align:center;font-size:11.5px;font-weight:800}
.srg .trk{display:flex;flex-direction:column;gap:4px}.srg .trk>span{display:grid;grid-template-columns:repeat(5,1fr);gap:2px}.srg .trk i{height:6px;display:block}.srg .trk b{font-size:12px}
.srg .bb.f{height:30px}
.std{display:grid;grid-template-columns:70px 1fr 1fr;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line);font-size:13px}.std .grd{width:52px;font-size:13px}
.std.h{padding:8px 14px;font-size:12px;font-weight:800;color:var(--dim)}
.tr{position:relative;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;align-items:end;height:130px}
.tr>i.pr{position:absolute;left:0;right:0;bottom:calc(50% + 10px);border-top:1.5px dashed var(--line2)}
.tr>div{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;height:100%}.tr>div b{font-size:11.5px}.tr>div i{display:block;width:60%}.tr>div span{font-size:11px;color:var(--dim)}
.inc{display:flex;flex-direction:column;gap:3px;padding:10px 14px;border-bottom:1px solid var(--line);font-size:13px}.inc>span:first-child{font-size:11.5px;font-weight:700}.inc>span:last-child{font-size:12px;font-weight:600}

/* ---------- E11 전자결재 */
.e11-g{display:grid;grid-template-columns:minmax(min(100%,320px),.85fr) minmax(0,1.4fr);gap:18px;align-items:start}
.sel.ap{gap:5px;padding:12px 14px}.sel.ap>b{font-size:14px;line-height:1.35}
.apd .hd{display:grid;grid-template-columns:minmax(0,1fr) auto;border-bottom:2px solid var(--line2)}
.apd .hd>div:first-child{padding:16px 18px;display:flex;flex-direction:column;gap:6px}.apd .hd>div:first-child>b{font-size:21px;line-height:1.3}
.apd .am{display:flex;flex-direction:column;justify-content:center;padding:0 18px;border-left:1.5px solid var(--line2)}.apd .am span{font-size:11px;font-weight:600;color:var(--dim)}.apd .am b{font:800 26px/1.2 var(--mono)}
.apd .line{display:flex;align-items:center;padding:18px;overflow-x:auto;background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:16px 16px}
.apd .nd{display:flex;flex-direction:column;gap:4px;min-width:140px;padding:12px 14px;border:2px solid var(--line2);background:var(--panel);color:var(--dim);flex:none}
.apd .nd span{font-size:11px;font-weight:700}.apd .nd b{font-size:15px}.apd .nd small{font-size:12px;font-weight:800}
.apd .nd.done{background:var(--line2);color:var(--panel)}.apd .nd.rej{background:var(--risk);color:var(--panel)}.apd .nd.cur{background:var(--acc);color:var(--accInk)}
.apd .ar{width:34px;border-top:2px solid var(--line2);position:relative;flex:none}.apd .ar span{position:absolute;right:-3px;top:-8px;font:700 12px/1 var(--mono);color:var(--line2)}
.apd .bd{display:flex;flex-direction:column;gap:10px;padding:14px 18px;font-size:14px;border-top:1.5px solid var(--line)}
.apd .lk{display:grid;grid-template-columns:90px minmax(0,1fr);gap:8px}.apd .lk span{color:var(--dim);font-weight:700}.apd .lk a{color:var(--acc)!important;font-weight:800;text-decoration:underline}
.apd .memo{padding:12px 14px;background:var(--panel2);border:1px solid var(--line);font-weight:600;line-height:1.55;white-space:pre-line}
.apd .eff{font-size:12.5px;font-weight:600;line-height:1.4;color:var(--dimc)}
.apd .rj{padding:10px 12px;border:1.5px solid var(--risk);color:var(--riskT);font-weight:800}
.apd .ft{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1.5px dashed var(--line2)}

/* ---------- 공통 틀 (목록 · 상세 · 등록) */
.bp-hl{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));border:1.5px solid var(--line2);background:var(--panel)}
.bp-hl>*{padding:12px 14px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:3px;color:var(--text)!important}.bp-hl>*:hover{background:var(--panel2)}
.bp-hl span{font-size:12px;font-weight:700;color:var(--dim)}.bp-hl b{font:700 28px/1.2 var(--mono)}.bp-hl small{font:500 11px/1.3 var(--mono);color:var(--dim)}
.lhd{display:flex;gap:10px;padding:10px 14px;align-items:center;border-bottom:2px solid var(--line2)}.lhd .r{font:600 12px/1 var(--mono);color:var(--dim)}
.ltabs{display:flex;border:1.5px solid var(--line2);overflow-x:auto;flex:1;min-width:0}
.ltabs a{flex:1;min-width:84px;height:36px;padding:0 10px;display:flex;align-items:center;justify-content:center;gap:4px;border-right:1px solid var(--line);font-size:13px;font-weight:800;color:var(--text)!important;white-space:nowrap}
.ltabs a:last-child{border-right:0}.ltabs a.on{background:var(--line2);color:var(--panel)!important}.ltabs small{font-family:var(--mono);font-size:12px}
.a-filter{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 14px;border-bottom:1px solid var(--line)}
.a-filter-l{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.a-in,.a-sel{height:34px;padding:0 10px;border:1.5px solid var(--line2);background:var(--panel);color:var(--text);font-size:13px;font-weight:600}
.a-in.q{min-width:220px}.a-chip{font-size:12px;padding:4px 8px;border:1.5px solid var(--line2);font-weight:700}
.a-reset{font-size:12px;color:var(--dim)!important;text-decoration:underline!important}
.a-period{display:flex;border:1.5px solid var(--line2)}.a-period a{height:31px;padding:0 10px;display:inline-flex;align-items:center;font-size:12px;font-weight:800;color:var(--text)!important;border-right:1px solid var(--line)}
.a-period a.on{background:var(--line2);color:var(--panel)!important}
.a-bulk{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid var(--line);font-size:12.5px;color:var(--dim);flex-wrap:wrap}
.a-bulk.on{background:var(--panel2);color:var(--text)}
.a-bulk-acts{display:flex;gap:6px}.a-bulk-acts button{height:30px;padding:0 10px;border:1.5px solid var(--line2);background:var(--panel);color:var(--text);font-size:12px;font-weight:800}
.a-bulk-acts button.danger{color:var(--riskT);border-color:var(--risk)}
.a-tbl{width:100%;border-collapse:collapse;font-size:13px}
.a-tbl th{background:var(--panel);color:var(--dim);font-size:12px;font-weight:800;text-align:left;padding:9px 10px;white-space:nowrap;border-bottom:1.5px solid var(--line2)}
.a-tbl th a{color:var(--dim)!important}.a-tbl td{padding:10px;border-top:1px solid var(--line)}
.a-tbl th:first-child,.a-tbl td:first-child{padding-left:14px}.a-tbl .num{text-align:right;font-family:var(--mono)}
.a-tbl tr.sel td{background:var(--panel2)}.a-tbl .a-no{font-family:var(--mono);font-weight:700;color:var(--text)!important}
.a-tbl tr:hover td{background:var(--panel2)}.a-chk{accent-color:var(--acc)}
.a-tfoot{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;border-top:1.5px solid var(--line2);font-size:12.5px;color:var(--dim);flex-wrap:wrap}
.a-pages{display:flex;gap:2px;align-items:center}
.a-pages a,.a-pages span{min-width:28px;height:28px;display:inline-grid;place-items:center;border:1px solid var(--line);font:600 12px/1 var(--mono);color:var(--text)!important}
.a-pages .cur{background:var(--acc);color:var(--accInk)!important;border-color:var(--line2)}.a-pages .dis{opacity:.4}
.a-pages select{height:28px;margin-left:6px;border:1px solid var(--line);background:var(--panel);color:var(--text)}
.t-bp .stack{display:flex;flex-direction:column;gap:16px}
.t-bp .card{background:var(--panel);border:1.5px solid var(--line2);border-radius:0;box-shadow:none}
.t-bp .card-head{padding:11px 14px;border-bottom:1.5px solid var(--line2);display:flex;justify-content:space-between;align-items:center}
.t-bp .card-title{font-size:15px;font-weight:800}.t-bp .card-body{padding:14px}
.t-bp .kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:0}
.t-bp .kv-item{background:var(--panel);padding:10px 14px;display:grid;grid-template-columns:110px minmax(0,1fr);gap:8px;align-items:baseline;border-bottom:1px solid var(--line)}.t-bp .kv-item.full{grid-column:1/-1}
.t-bp .kv-label{font-size:12.5px;color:var(--dim);font-weight:700;margin:0}.t-bp .kv-value{font-size:13.5px;font-weight:700}
.t-bp .mono{font-family:var(--mono)}.t-bp .tbl-wrap{overflow-x:auto}
.t-bp .tbl{width:100%;border-collapse:collapse;font-size:13px}
.t-bp .tbl th{background:var(--panel2);color:var(--dim);font-size:12px;font-weight:800;text-align:left;padding:9px 10px;height:auto;border:0;border-bottom:1.5px solid var(--line2)}
.t-bp .tbl td{padding:9px 10px;height:auto;border-top:1px solid var(--line);border-bottom:0}.t-bp .tbl .num{text-align:right;font-family:var(--mono)}
.t-bp .tbl a{color:var(--acc)!important;font-family:var(--mono);font-weight:700}
.t-bp .form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.t-bp .field{display:flex;flex-direction:column;gap:6px}.t-bp .field.full{grid-column:1/-1}
.t-bp .field-label{font-size:13px;font-weight:800}.t-bp .req{color:var(--riskT);margin-left:2px}
.t-bp .field input:not([type=checkbox]),.t-bp .field select,.t-bp .field textarea{height:38px;padding:0 10px;border:1.5px solid var(--line2);background:var(--panel);color:var(--text);border-radius:0;width:100%;font-weight:600}
.t-bp .field textarea{height:auto;min-height:90px;padding:10px;font-weight:500}
.t-bp .field-err{color:var(--riskT);font-size:12px}.t-bp .help{color:var(--dim);font-size:11.5px}
.t-bp .alert{padding:10px 14px;border:1.5px solid var(--line2);background:var(--panel)}.t-bp .alert-error{border-color:var(--risk);color:var(--riskT)}
.t-bp .badge{border-radius:0;font-weight:800;background:transparent!important;padding:0;font-size:12.5px;height:auto}
.t-bp .muted{color:var(--dim)}.t-bp .small{font-size:12px}.t-bp .strong{font-weight:800}.t-bp .empty{padding:24px;text-align:center;color:var(--dim)}
.t-bp .act-bar{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:12px 16px;background:var(--panel);border:1.5px solid var(--line2)}
.t-bp .act-bar form{display:contents}.t-bp .act-cap{font:700 11px/1 var(--mono);letter-spacing:.14em;color:var(--dimc);margin-right:6px}
.t-bp .stage-path{display:flex;border:1.5px solid var(--line2)}.t-bp .stage-step{flex:1;padding:9px 8px;background:var(--panel);color:var(--dim);font-size:12.5px;font-weight:800;text-align:center;border-right:1px solid var(--line2)}
.t-bp .stage-step.done{background:var(--line2);color:var(--panel)}.t-bp .stage-step.current{background:var(--acc);color:var(--accInk)}
.t-bp .btn{height:38px;padding:0 13px;border:1.5px solid var(--line2);background:var(--panel);color:var(--text)!important;font-size:13px;font-weight:800;border-radius:0;display:inline-flex;align-items:center;gap:6px}
.t-bp .btn-primary{background:var(--acc);color:var(--accInk)!important}.t-bp .btn-danger{border-color:var(--risk);color:var(--riskT)!important}
.t-bp .btn-sm{height:30px;padding:0 10px;font-size:12px}.t-bp .btn svg{width:14px;height:14px}
.t-bp .page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.t-bp .page-title{margin:8px 0 0;font-size:30px;font-weight:800;letter-spacing:-.03em}.t-bp .page-sub{color:var(--dim);font-size:13px;font-weight:600;margin:4px 0 0}
.t-bp .crumbs{display:flex;gap:6px;font:700 12px/1 var(--mono);letter-spacing:.12em;color:var(--dimc)}.t-bp .crumbs a{color:var(--dimc)!important}
.t-bp .page-actions{display:flex;gap:8px;flex-wrap:wrap}

/* ---------- SYS 디자인 시스템 */
.sys-hd{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,440px);gap:20px;align-items:end}
.sys-hd h1{margin:8px 0 0;font-size:36px;font-weight:800;letter-spacing:-.035em}.sys-hd p{margin:10px 0 0;font-size:14.5px;font-weight:600;line-height:1.6;color:var(--dim)}
.sys-hd .lg{padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.sys-hd .dl{position:relative;height:16px;width:80%;border-left:1.5px solid var(--dimc);border-right:1.5px solid var(--dimc)}.sys-hd .dl i{position:absolute;left:0;right:0;top:7px;border-top:1px solid var(--dimc)}
.sys-hd .dl span{position:absolute;left:50%;top:0;transform:translateX(-50%);padding:0 6px;background:var(--panel);font:700 12px/16px var(--mono);color:var(--dimc)}
.lgd{display:flex;gap:10px;align-items:center;font-size:11.5px;font-weight:600}.lgd span{height:12px;display:inline-block}.lgd .a{width:60px;background:var(--chartB)}.lgd .b{width:60px;border:2px dashed var(--chartB)}
.lgd .c{width:40px;background:repeating-linear-gradient(45deg,var(--risk) 0 3px,transparent 3px 8px);border:1.5px solid var(--risk)}
.sys-b{display:flex;flex-direction:column;gap:10px}.sys-b>b.t{font-size:18px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:14px}
.pc{border:2px solid var(--line);background-color:var(--bg);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:12px 12px;color:var(--text);display:flex;flex-direction:column;cursor:pointer;height:100%}
.pc.on{border-color:var(--acc)}
.pc .h{padding:12px 14px;background:var(--head);color:var(--headInk)}.pc .h b{font:800 18px/1 var(--mono);letter-spacing:.04em}.pc .h div{font-size:13px;font-weight:700;margin-top:4px}.pc .h small{display:block;font-size:11.5px;opacity:.75;margin-top:2px}
.pc .sw{display:flex;flex-direction:column;padding:8px 12px}.pc .sw>div{display:grid;grid-template-columns:18px 64px minmax(0,1fr);gap:8px;align-items:center;padding:3px 0;font-size:11px}
.pc .sw>div>span:first-child{width:18px;height:14px;border:1px solid var(--line2)}.pc .sw .m{font-size:10.5px;color:var(--dim)}
.pc .pj{display:flex;gap:4px;padding:0 12px 10px}.pc .pj span{flex:1;height:12px}
.pc .ap{margin:auto 12px 12px;height:34px;border:1.5px solid var(--line2);background:var(--acc);color:var(--accInk);font-size:12.5px;font-weight:800}
.pc .on-t{display:none}.pc.on .on-t{display:inline}.pc.on .off-t{display:none}
.sg4{display:grid;grid-template-columns:40px 64px minmax(0,1fr) 70px;gap:12px;align-items:center;padding:11px 14px;border-bottom:1px solid var(--line);font-size:13px}.sg4 .st{font-size:16px}.sg4>span:last-child{font-size:12px}
.bdg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px}.bdg a{display:flex;border:2px solid;color:var(--text)!important}
.bdg a>span:first-child{padding:7px 8px;color:#fff;font-size:12px;font-weight:800}.bdg a>span:last-child{padding:4px 8px;font-size:12px;line-height:1.3}
.fnt{display:flex;flex-direction:column;gap:12px;padding:14px}.fnt>div{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.fnt span{font-size:12px;font-weight:700;color:var(--dim)}
.fnt .big{font-size:46px;font-weight:800;letter-spacing:-.04em;line-height:1}.fnt .t2{font-size:28px;font-weight:800;letter-spacing:-.03em}
.mini .cap{padding:8px 12px;border-bottom:1.5px solid var(--line2);font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--dimc)}
.mini .mt{display:flex;border-bottom:2px solid var(--line2)}.mini .mt span{flex:1;padding:8px;font-size:12px;font-weight:700;text-align:center}.mini .mt span.on{background:var(--line2);color:var(--panel);font-weight:800}
.mini .mr{display:grid;grid-template-columns:minmax(0,1fr) 80px;gap:8px;padding:9px 12px;border-bottom:1px solid var(--line);border-left:4px solid transparent;font-size:12.5px;color:var(--text)!important}.mini .mr.on{border-left-color:var(--acc);background:var(--panel2)}
.mini .mh{display:grid;grid-template-columns:minmax(0,1fr) auto;border-bottom:2px solid var(--line2)}.mini .mh>div{padding:10px 12px}.mini .mh>div b{font-size:15px}
.mini .mh>span{display:grid;place-items:center;padding:0 12px;color:#fff;font-size:11.5px;font-weight:800}.mini .mh>span.rv{color:var(--dim);font-size:10px;font-weight:500;line-height:1.5;border-left:1.5px solid var(--line2);background:transparent}
.mini .mk{display:grid;grid-template-columns:80px 1fr;gap:6px;padding:10px 12px;font-size:12.5px}.mini .mk span{color:var(--dim);font-weight:700}
.mini .mf{display:flex;gap:6px;padding:10px 12px;border-top:1.5px dashed var(--line2)}
.mini .mg2{display:flex;flex-direction:column;gap:7px;padding:10px 12px;font-size:12.5px;background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:12px 12px}
.mini .ln0{display:flex;justify-content:space-between;padding:6px 8px;border:1px solid var(--line);background:var(--panel)}.mini em{font-style:normal;color:var(--riskT)}
.mini .ta{height:40px;border:1.5px solid var(--risk);background:var(--panel)}

/* ---------- 반응형 */
@media (max-width:1100px){.e9-g,.e11-g,.sla,.sys-hd{grid-template-columns:minmax(0,1fr)}.sla .l{border-right:0;border-bottom:1.5px dashed var(--line2)}.e2-hd{grid-template-columns:minmax(0,1fr)}}
@media (max-width:860px){
  .bp-hd{flex-direction:column;align-items:stretch}.bp-logo{padding:10px 14px;border-right:0;border-bottom:1px solid rgba(255,255,255,.16)}.bp-hr{padding:8px 12px;gap:8px}
  .bp-q{min-width:0;flex:1 1 160px;order:5}.bp-sp{display:none}.bp-user .nm{display:none}.bp-chips>span{display:none}.bp-jump{display:none}
  .bp-seg{overflow-x:auto;max-width:100%}.bp-seg a{padding:0 8px}
  .bp-body{flex-direction:column;flex-wrap:nowrap}
  .bp-side{flex:none;max-width:none;border-right:0;border-bottom:1.5px solid var(--line2)}
  .bp-side .cap,.bp-layers,.bp-more,.bp-legend,.bp-fill{display:none}
  .bp-nav{display:flex;overflow-x:auto;padding:6px 8px;gap:4px}
  .bp-nav a{flex:none;width:auto;padding:7px 10px;border:1.5px solid var(--line);border-left-width:1.5px;font-size:12.5px}.bp-nav a.on{border-color:var(--acc);border-left-color:var(--acc)}
  .bp-nav a .cd{width:auto}
  .bp-main{flex:1 1 auto}
  .bp-sec{padding:16px 12px 30px}.bp-ph h1,.bp-ph h1.xl,h1.ttl,.sys-hd h1{font-size:26px}
  .tblock{display:none}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi{padding:12px}.kpi .v b{font-size:34px}
  .alr{grid-template-columns:70px minmax(0,1fr);gap:8px 10px;padding:10px 12px}.alr .no{display:none}.alr>.bb{grid-column:2;justify-self:start}
  .map{padding:14px 10px}.map .mods{margin-left:6px;padding-left:12px}.map .hz{margin:0 10%}
  .bill{grid-template-columns:64px minmax(0,1fr) 56px;padding:9px 12px}.bill>span:last-child{display:none}
  .pm{grid-template-columns:72px minmax(0,1fr) 86px;padding:7px 12px}
  .ut span{font-size:9.5px;white-space:normal;text-align:center}
  .sum{grid-template-columns:repeat(2,minmax(0,1fr))!important}.sum b{font-size:24px!important}
  .sum4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .e2-hd .side{flex-direction:row;align-items:center;flex-wrap:wrap}.e2-hd .side b{font-size:30px}.e2-hd h1{font-size:24px}
  .e3-dw .cv{margin:0 90px 0 70px}
  .li{grid-template-columns:minmax(0,1fr) 46px 80px}
  .gr{grid-template-columns:36px 46px minmax(0,1fr) 40px}
  .crd .ft .bb,.det .ft .bb{flex:1 1 auto}
  .isr{grid-template-columns:minmax(0,1fr) auto;gap:4px 10px}.isr>*:nth-child(1),.isr>*:nth-child(4),.isr>*:nth-child(5){display:none}.isr>.bb{grid-row:span 2}
  .tsf>span.m{display:none}
  .apd .hd{grid-template-columns:minmax(0,1fr)}.apd .am{border-left:0;border-top:1.5px solid var(--line2);padding:10px 18px;flex-direction:row;align-items:baseline;gap:10px}
  .bdg{grid-template-columns:minmax(0,1fr)}.sg4{grid-template-columns:30px 50px minmax(0,1fr)}.sg4>span:last-child{display:none}
  .bp-ph .acts{width:100%}.dimrow .dw{margin-right:56px}
  .lhd{flex-wrap:wrap}.a-in.q{min-width:0;width:100%}
  .t-bp .kv-item{grid-template-columns:96px minmax(0,1fr)}
}
@media (max-width:480px){.kpi .v b{font-size:28px}.alr .st{font-size:13px}}
.t-bp .kv-value>.muted.small{display:none}
