/* pub-si — 공공 SI 수주 후 관리 (DEM-02 제안 대비 · 교체 요청 · RES-01 승인 대기) */
.pt-pub-top{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:8px}
.pt-pub-note{font-size:11.5px;margin:-2px 0 8px}
.pt-pub-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}
.pt-pub-tb td{vertical-align:top}
.pt-pub-tb tr.pt-pub-pend td{opacity:.55}
.pt-pub-tb tr.pt-pub-bad td:first-child{box-shadow:inset 3px 0 0 var(--alert)}
.pt-pub-tb tr.pt-pub-rej td{color:var(--muted);font-size:11.5px}
.pt-pub-tb tr.pt-pub-rej s{color:var(--muted)}
.pt-pub-foot{font-size:11px;padding:8px 12px}
.pt-pub-pnote{font-size:11.5px;opacity:.6;margin-top:3px;display:flex;align-items:center;gap:4px;flex-wrap:wrap;cursor:pointer}
.pt-pub-pnote:hover{opacity:.9}
.pt-pub-pnote .av{width:18px;height:18px;font-size:8.5px}
/* 교체 요청서 */
.pt-pub-rq{display:grid;grid-template-columns:1.1fr 1fr;gap:14px;align-items:start}
.pt-pub-cmp{font-size:13px;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--surface2)}
.pt-pub-cands{display:flex;flex-direction:column;gap:4px;margin-top:6px;max-height:330px;overflow:auto}
.pt-pub-cand{display:flex;align-items:center;gap:6px;padding:6px 8px;border:1px solid var(--line);border-radius:6px;cursor:pointer;font-size:12.5px}
.pt-pub-cand.on{border-color:var(--hq);background:color-mix(in srgb,var(--hq) 8%,var(--surface))}
.pt-pub-cand input{margin:0}
.pt-pub-f2{grid-template-columns:1fr 1fr}
.pt-pub-file{margin-top:4px;font-size:11px;max-width:100%}
.pt-pub-flow{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-bottom:8px;font-size:11.5px}
.pt-pub-flow span{border:1px solid var(--line);border-radius:12px;padding:2px 8px;color:var(--muted)}
.pt-pub-flow span.done{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 50%,var(--line))}
.pt-pub-flow span.cur{color:var(--fg);border-color:var(--plan);font-weight:700}
.pt-pub-flow span.rej{color:var(--alert);border-color:var(--alert)}
.pt-pub-flow i{font-style:normal;color:var(--muted)}
.pt-pub-kv th{width:110px}
/* RES-01 승인 대기 막대 */
.pt-res01-g .res01-bar.pt-pub-ghost{opacity:.45;border:1px dashed var(--plan);background:color-mix(in srgb,var(--c) 40%,var(--surface));color:var(--fg)}
.pt-res01-g .res01-bar.pt-pub-out{box-shadow:inset 0 -3px 0 var(--plan)}
@media (max-width:820px){.pt-pub-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.pt-pub-rq{grid-template-columns:1fr}}
/* RESUME_EXPORT 없음: 비활성 버튼은 pointer-events 가 없으므로 감싼 span 에 툴팁 */
.pt-pub-lock{display:inline-flex;cursor:not-allowed}
.pt-pub-store{display:block;margin-top:4px;font-size:11px}
