/* anl-plan — ANL-02 수급 예측 · ANL-04 시나리오·배치 회의 · ANL-05 리포트 빌더 (v0.9) */
.pt-anl-plan{min-width:0}
.pt-anl-plan .card h6 .r{margin-left:auto}
.pt-anl-plan .card h6{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.pt-anl-plan .kpi>small{display:block;overflow:hidden;text-overflow:ellipsis}
.pt-anl-plan-lock{font-size:11px;color:var(--muted);white-space:nowrap}
.pt-anl-plan-2{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:10px;align-items:start;margin-top:10px}
.pt-anl-plan-2>*{min-width:0}
/* 칩 */
.pt-anl-plan-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 10px;font-size:12px}
.pt-anl-plan-chips>b{font-size:11.5px;color:var(--muted);font-weight:600;margin-right:2px}
.pt-anl-plan-chip{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:3px 10px;font-size:11.5px;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.pt-anl-plan-chip[data-act]{cursor:pointer}
.pt-anl-plan-chip.on{border-color:color-mix(in srgb,var(--hq) 55%,var(--line));background:color-mix(in srgb,var(--hq) 9%,var(--surface));color:var(--fg)}
.pt-anl-plan-sel{border:0;background:transparent;color:inherit;font:inherit;padding:0}
.pt-anl-plan-pipe{margin:-4px 0 10px}
.pt-anl-plan-piperow{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;padding:6px 0;border-bottom:1px dashed var(--line);font-size:12.5px}
.pt-anl-plan-piperow label{min-width:0}
.pt-anl-plan-prob{width:64px;text-align:right}
/* 갭 표 */
.pt-anl-plan-gap td.pt-anl-plan-cell{cursor:pointer;font-weight:600}
.pt-anl-plan-g1{background:color-mix(in srgb,var(--alert) 26%,var(--surface));color:var(--alert)}
.pt-anl-plan-g2{background:color-mix(in srgb,var(--alert) 10%,var(--surface));color:var(--alert)}
.pt-anl-plan-g3{background:color-mix(in srgb,var(--ok) 10%,var(--surface))}
.pt-anl-plan-g4{background:color-mix(in srgb,var(--ok) 24%,var(--surface))}
.pt-anl-plan-g0{background:var(--surface)}
table.t td.pt-anl-plan-now,table.t th.pt-anl-plan-now{box-shadow:inset 2px 0 0 var(--fg),inset -2px 0 0 var(--fg)}
.pt-anl-plan-jd{font-size:11.5px;color:var(--c);font-weight:600}
.pt-anl-plan-rowlink{cursor:pointer}
.pt-anl-plan-rowlink:hover td{background:color-mix(in srgb,var(--hq) 5%,transparent)}
.pt-anl-plan-rowlink:hover td[class*="pt-anl-plan-g"]{filter:brightness(.97)}
.pt-anl-plan-sum td{background:var(--surface2)}
.pt-anl-plan-sub td{background:var(--surface2);font-size:11.5px}
.pt-anl-plan-legend{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:11px;color:var(--muted);margin:6px 2px 0;align-items:center}
.pt-anl-plan-legend>span{display:inline-flex;align-items:center;gap:4px}
.pt-anl-plan-legend i{display:inline-block;width:14px;height:10px;border-radius:2px;border:1px solid var(--line)}
.pt-anl-plan-legend i.pt-anl-plan-now{box-shadow:inset 0 0 0 2px var(--fg)}
/* 직무 상세 차트 */
.pt-anl-plan-svg{width:100%;height:auto;display:block}
.pt-anl-plan-grid{stroke:var(--line)}
.pt-anl-plan-zero{stroke:var(--muted);stroke-width:1}
.pt-anl-plan-ax{fill:var(--muted);font-size:10px}
.pt-anl-plan-ax.b{fill:var(--fg);font-weight:700}
.pt-anl-plan-val{fill:var(--fg);font-size:10.5px;font-weight:700;paint-order:stroke;stroke:var(--surface);stroke-width:3px}
.pt-anl-plan-val.bad{fill:var(--alert)}
.pt-anl-plan-selbg{fill:color-mix(in srgb,var(--need) 9%,transparent)}
rect.pt-anl-plan-bf,.pt-anl-plan-legend i.pt-anl-plan-bf{fill:color-mix(in srgb,var(--hq) 60%,var(--surface));background:color-mix(in srgb,var(--hq) 60%,var(--surface))}
rect.pt-anl-plan-bv{fill:var(--surface);stroke:var(--hq);stroke-dasharray:3 2;stroke-width:1.2}
.pt-anl-plan-legend i.pt-anl-plan-bv{border:1.5px dashed var(--hq);background:var(--surface)}
rect.pt-anl-plan-bp{fill:url(#ptApHatch);stroke:var(--plan);stroke-width:1}
.pt-anl-plan-legend i.pt-anl-plan-bp,.pt-anl-plan-hatch{background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--plan) 35%,var(--surface)) 0 2px,var(--surface) 2px 6px)}
.pt-anl-plan-hatch{padding:0 4px;border-radius:3px}
.pt-anl-plan-hbg{fill:var(--surface)}
.pt-anl-plan-hl{stroke:color-mix(in srgb,var(--plan) 70%,var(--surface));stroke-width:3}
.pt-anl-plan-supl{fill:none;stroke:var(--hq);stroke-width:2.2}
.pt-anl-plan-legend i.pt-anl-plan-ls{height:0;border:0;border-top:2.5px solid var(--hq);border-radius:0}
rect.pt-anl-plan-gneg,.pt-anl-plan-legend i.pt-anl-plan-gneg{fill:var(--alert);background:var(--alert)}
rect.pt-anl-plan-gpos,.pt-anl-plan-legend i.pt-anl-plan-gpos{fill:var(--ok);background:var(--ok)}
.pt-anl-plan-mpick{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}
/* 조치 판단 */
.pt-anl-plan-acts{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px}
.pt-anl-plan-act{border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:12.5px;min-width:0}
.pt-anl-plan-act p{margin:4px 0}
.pt-anl-plan-act .row{flex-wrap:wrap;gap:4px;margin-top:6px}
/* ANL-04 목록 · 비교 */
.pt-anl-plan-scns{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px;margin-bottom:4px}
.pt-anl-plan-scn{display:flex;gap:8px;align-items:flex-start;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:10px 12px;font-size:12.5px;min-width:0}
.pt-anl-plan-scn>div{min-width:0;flex:1;cursor:pointer}
.pt-anl-plan-scn small{display:block;font-size:11px;margin-top:3px;overflow:hidden;text-overflow:ellipsis}
.pt-anl-plan-scn.base{background:var(--surface2)}
.pt-anl-plan-scn.base>div{cursor:default}
.pt-anl-plan-scn.draft{border-style:dashed}
.pt-anl-plan-scn.on{border-color:var(--hq);box-shadow:0 0 0 1px var(--hq)}
.pt-anl-plan-ck{padding-top:1px}
.pt-anl-plan-cmp th small{display:block;font-weight:400}
.pt-anl-plan-cmp td small{display:block;font-size:10.5px;font-weight:400}
.pt-anl-plan-colh{cursor:pointer;color:var(--fg)!important}
.pt-anl-plan-colh:hover{text-decoration:underline}
.pt-anl-plan-as{color:var(--need)}
table.t td.pt-anl-plan-best{background:color-mix(in srgb,var(--ok) 14%,var(--surface));font-weight:700}
table.t td.pt-anl-plan-bad{background:color-mix(in srgb,var(--alert) 10%,var(--surface));color:var(--alert)}
/* 시나리오 모드 배너 (화면 안) */
.pt-anl-plan-banner{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;padding:8px 12px;margin-bottom:10px;border-radius:10px;border:1.5px dashed var(--plan);background:color-mix(in srgb,var(--plan) 9%,var(--surface));font-size:12.5px}
.pt-anl-plan-banner>span:not(.btn){min-width:0}
.pt-anl-plan-banner .inp{max-width:180px}
/* 타임라인 */
.pt-anl-plan-tl{min-width:620px;font-size:12px}
.pt-anl-plan-tlh,.pt-anl-plan-tlr{display:grid;grid-template-columns:170px 1fr;gap:8px;align-items:center}
.pt-anl-plan-tlh>div{display:grid;grid-template-columns:repeat(5,1fr);color:var(--muted);font-size:11px;border-bottom:1px solid var(--line);padding-bottom:4px}
.pt-anl-plan-tlr{padding:6px 0;border-bottom:1px solid var(--line)}
.pt-anl-plan-tlr.hl{background:color-mix(in srgb,var(--need) 8%,transparent)}
.pt-anl-plan-tlr>span{min-width:0}
.pt-anl-plan-tlr small{display:block;color:var(--muted);font-size:10.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pt-anl-plan-tlt{position:relative;min-height:44px;background:repeating-linear-gradient(90deg,transparent 0 calc(20% - 1px),var(--line) calc(20% - 1px) 20%)}
.pt-anl-plan-bar{position:absolute;height:18px;border-radius:5px;font-style:normal;font-size:10.5px;line-height:18px;padding:0 5px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;box-sizing:border-box}
.pt-anl-plan-bar:nth-child(odd){top:3px}
.pt-anl-plan-bar:nth-child(even){top:23px}
.pt-anl-plan-bar.cur,.pt-anl-plan-legend i.pt-anl-plan-lcur{background:color-mix(in srgb,var(--hq) 55%,var(--surface));color:var(--fg)}
.pt-anl-plan-bar.soft,.pt-anl-plan-legend i.pt-anl-plan-lsoft{background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--plan) 30%,var(--surface)) 0 3px,var(--surface) 3px 7px);border:1px solid var(--plan)}
.pt-anl-plan-bar.add,.pt-anl-plan-legend i.pt-anl-plan-ladd{border:1.5px dashed var(--hq);background:color-mix(in srgb,var(--hq) 8%,var(--surface))}
.pt-anl-plan-bar.virt,.pt-anl-plan-legend i.pt-anl-plan-lvirt{border:1.5px dashed var(--need);background:color-mix(in srgb,var(--need) 12%,var(--surface))}
.pt-anl-plan-bar.cut,.pt-anl-plan-legend i.pt-anl-plan-lcut{background:var(--surface2);color:var(--muted);text-decoration:line-through;border:1px solid var(--line)}
.pt-anl-plan-bar.on{outline:2px solid var(--need);outline-offset:1px}
/* 변경분 · 영향 */
.pt-anl-plan-chg{padding:6px 0}
.pt-anl-plan-chgr{display:flex;gap:8px;align-items:flex-start;padding:7px 14px;border-bottom:1px solid var(--line);font-size:12.5px;cursor:pointer}
.pt-anl-plan-chgr>span:nth-child(2){flex:1;min-width:0}
.pt-anl-plan-chgr.on{background:color-mix(in srgb,var(--need) 9%,transparent)}
.pt-anl-plan-imp{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}
.pt-anl-plan-imp>div{border:1px solid var(--line);border-radius:9px;padding:8px 10px;font-size:12px;min-width:0}
.pt-anl-plan-imp>div>span{display:block;color:var(--muted);font-size:11px}
.pt-anl-plan-imp small{display:block;color:var(--muted);font-size:10.5px}
.pt-anl-plan-form .field{margin-bottom:8px;min-width:0}
.pt-anl-plan-form .row{gap:8px;flex-wrap:wrap}
.pt-anl-plan-form .row .field{flex:1 1 120px}
.pt-anl-plan-form .inp{width:100%;max-width:100%;box-sizing:border-box}
.pt-anl-plan-form label{font-size:12px}
/* 회의 모드 */
.pt-anl-plan-meet.big{font-size:15px}
.pt-anl-plan-meet.big table.t{font-size:14px}
.pt-anl-plan-mg{display:grid;grid-template-columns:260px minmax(0,1fr);gap:10px;align-items:start}
.pt-anl-plan-mg>div{min-width:0}
.pt-anl-plan-ag{border:1px solid var(--line);border-radius:9px;padding:8px 10px;margin-bottom:6px;cursor:pointer;font-size:12.5px}
.pt-anl-plan-ag b{display:inline-block;margin-right:4px}
.pt-anl-plan-ag small{display:block;color:var(--muted);font-size:11px;margin-top:2px}
.pt-anl-plan-ag.on{border-color:var(--hq);background:color-mix(in srgb,var(--hq) 7%,var(--surface))}
.pt-anl-plan-agc{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}
.pt-anl-plan-agcol{border:1px solid var(--line);border-radius:10px;padding:10px;font-size:12.5px;min-width:0}
.pt-anl-plan-agcol>div{margin:4px 0;font-weight:600}
.pt-anl-plan-agcol small{display:block;font-size:11px;color:var(--muted)}
.pt-anl-plan-agcol ul{margin:6px 0;padding-left:16px;font-size:11.5px}
.pt-anl-plan-agcol.base{background:var(--surface2)}
.pt-anl-plan-agcol.none{opacity:.65}
.pt-anl-plan-agcol.on{border-color:var(--ok);box-shadow:0 0 0 1px var(--ok)}
.pt-anl-plan-ok{color:var(--ok);font-weight:700;font-size:12px}
.pt-anl-plan-res{padding:5px 0;border-bottom:1px dashed var(--line);font-size:12.5px}
.pt-anl-plan-steps{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px;font-size:12px}
.pt-anl-plan-steps span{border:1px solid var(--line);border-radius:999px;padding:3px 10px;color:var(--muted)}
.pt-anl-plan-steps span.done{color:var(--ok);border-color:var(--ok)}
.pt-anl-plan-steps span.on{color:var(--fg);border-color:var(--hq);font-weight:700}
.pt-anl-plan-hold td{opacity:.7}
.pt-anl-plan-conf{border:1px solid color-mix(in srgb,var(--need) 45%,var(--line));border-radius:9px;padding:8px 10px;margin-bottom:8px;font-size:12.5px;display:flex;flex-direction:column;gap:4px}
.pt-anl-plan-ul{font-size:12.5px;padding-left:18px}
/* ANL-05 */
.pt-anl-plan-rcs{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}
.pt-anl-plan-rc{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:10px 12px;cursor:pointer;font-size:12.5px;min-width:0}
.pt-anl-plan-rc small{display:block;font-size:11px;margin-top:3px;overflow:hidden;text-overflow:ellipsis}
.pt-anl-plan-rc:hover{border-color:var(--hq)}
.pt-anl-plan-rc.new{border-style:dashed;text-align:center;color:var(--muted)}
.pt-anl-plan-dash{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.pt-anl-plan-w{min-width:0;margin:0}
.pt-anl-plan-w.wide{grid-column:span 2}
.pt-anl-plan-w h6{font-size:12px}
.pt-anl-plan-big{display:block;font-size:24px;margin:4px 0 2px;font-variant-numeric:tabular-nums}
.pt-anl-plan-w.kpi small{font-size:11px}
.pt-anl-plan-locked{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60px;color:var(--muted);font-size:13px;border:1px dashed var(--line);border-radius:8px;margin-top:6px}
.pt-anl-plan-locked small{font-size:10.5px}
.pt-anl-plan-hb{display:grid;grid-template-columns:110px 1fr 60px;gap:6px;align-items:center;font-size:12px;padding:3px 0}
.pt-anl-plan-hb span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pt-anl-plan-hb i{display:block;height:10px;border-radius:3px;background:linear-gradient(90deg,var(--hq) var(--v),var(--surface2) var(--v))}
.pt-anl-plan-hb b{text-align:right;font-variant-numeric:tabular-nums}
.pt-anl-plan-ed{display:grid;grid-template-columns:240px minmax(0,1fr);gap:10px;align-items:start}
.pt-anl-plan-ed>div{min-width:0}
.pt-anl-plan-mets label{display:block;font-size:12.5px;padding:3px 0;cursor:pointer}
.pt-anl-plan-mets label.dis{color:var(--muted);cursor:not-allowed}
.pt-anl-plan-mg2{margin-bottom:8px}
.pt-anl-plan-mg2>b{display:block;font-size:11px;color:var(--muted);margin-bottom:2px}
.pt-anl-plan-dec{font-size:10px;border:1px solid var(--line);border-radius:4px;padding:0 4px;color:var(--muted);cursor:help}
.pt-anl-plan-prev .pt-anl-plan-w.wide{grid-column:auto}
@media (max-width:1100px){
  .pt-anl-plan-2,.pt-anl-plan-mg,.pt-anl-plan-ed{grid-template-columns:minmax(0,1fr)}
  .pt-anl-plan-dash{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .pt-anl-plan-dash{grid-template-columns:minmax(0,1fr)}
  .pt-anl-plan-w.wide{grid-column:auto}
  .pt-anl-plan-scns,.pt-anl-plan-rcs{grid-template-columns:minmax(0,1fr)}
  .pt-anl-plan-chip{white-space:normal}
  .pt-anl-plan-banner .inp{max-width:100%;flex:1 1 140px}
  .pt-anl-plan-hb{grid-template-columns:80px 1fr 52px}
  .pt-anl-plan-h input.inp,.pt-anl-plan .pt-h .inp{max-width:100%!important;min-width:0;flex:1 1 140px}
  .pt-anl-plan .pt-h .seg{max-width:100%;flex-wrap:wrap}
  .pt-anl-plan-scroll,.pt-anl-plan .pt-scroll{max-width:100%;overflow-x:auto}
}
