/* dem-req — DEM-03 인력 요청함 · DEM-04 요청 처리 · DEM-05 제안 패키지 (pt-dem-req-) */
.pt-dem-req-n{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--surface2);color:var(--muted);font-size:10.5px;font-weight:700;margin-left:4px}
.pt-dem-req-n.hot{background:var(--hq);color:#fff}
.pt-dem-req-tabs{flex-wrap:wrap}
.pt-dem-req-fb{margin-bottom:10px;gap:8px}
.pt-dem-req-fb>*{min-width:0}
/* 단계 띠 · 갈래 칩 */
.pt-dem-req-strip{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin-bottom:10px}
.pt-dem-req-steps{display:flex;flex-wrap:wrap;align-items:center;gap:4px;flex:1 1 520px;min-width:0}
.pt-dem-req-steps em{font-style:normal;color:var(--muted)}
.pt-dem-req-stp{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:12px;cursor:pointer;flex:1 1 auto;min-width:0}
.pt-dem-req-stp i{width:8px;height:8px;border-radius:50%;background:var(--c);flex:none}
.pt-dem-req-stp b{margin-left:auto;font-variant-numeric:tabular-nums;font-size:14px}
.pt-dem-req-stp.me{border:2px solid var(--fg);font-weight:600}
.pt-dem-req-stp.on,.pt-dem-req-chip.on{background:color-mix(in srgb,var(--hq) 12%,var(--surface));border-color:var(--hq)}
.pt-dem-req-chips{display:flex;flex-wrap:wrap;gap:4px}
.pt-dem-req-chip{font-size:11.5px;padding:2px 9px;border-radius:999px;border:1px solid var(--line);background:var(--surface);cursor:pointer;color:var(--muted)}
.pt-dem-req-chip b{color:var(--fg)}
/* 상태 배지 */
.pt-dem-req-b{cursor:help;font-weight:600}
.pt-dem-req-b.cancelled{text-decoration:line-through}
.pt-dem-req-b.client{background:transparent;border:1.5px solid var(--c)}
.pt-dem-req-esc{font-weight:600}
/* 요청 표 */
.pt-dem-req-card{padding:0;overflow:hidden}
.pt-dem-req-t td{vertical-align:top}
.pt-dem-req-t td.pt-dem-req-slot{white-space:normal;min-width:220px;max-width:340px}
.pt-dem-req-tr td:first-child{border-left:3px solid transparent}
.pt-dem-req-tr.my td:first-child{border-left-color:var(--hq)}
.pt-dem-req-tr.my td{background:color-mix(in srgb,var(--hq) 4%,transparent)}
.pt-dem-req-id{font-family:var(--mono);font-size:11.5px}
.pt-dem-req-cav{display:inline-flex;align-items:center;gap:2px}
.pt-dem-req-cav>span{display:inline-flex;align-items:center;gap:3px}
.pt-dem-req-cav>span.on b{font-size:11.5px}
.pt-dem-req-foot{display:block;padding:8px 12px}
.pt-dem-req-links{margin-top:6px}
.pt-dem-req-al{margin-bottom:8px}
.pt-dem-req-al>div{flex:1;min-width:0}
/* 충돌 카드 · 비교 */
.pt-dem-req-conf{margin-bottom:10px;border-color:color-mix(in srgb,var(--alert) 45%,var(--line))}
.pt-dem-req-cg{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px;align-items:center;margin-bottom:6px}
.pt-dem-req-cg em{font-style:normal;color:var(--alert);font-weight:700}
.pt-dem-req-cside{background:var(--surface2);border-radius:8px;padding:6px 10px;min-width:0}
.pt-dem-req-g2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pt-dem-req-cmp small{display:block;margin-bottom:6px}
.pt-dem-req-kv{display:grid;grid-template-columns:96px minmax(0,1fr);gap:8px;font-size:12px;padding:3px 0;border-top:1px dashed var(--line)}
.pt-dem-req-kv span{color:var(--muted)}
.pt-dem-req-kv b{font-weight:500}
.pt-dem-req-opt{display:flex;gap:6px;align-items:flex-start;padding:5px 8px;border:1px solid var(--line);border-radius:7px;font-size:12px;cursor:pointer;background:var(--surface);flex-wrap:wrap}
.pt-dem-req-opt input{margin-top:3px}
.pt-dem-req-form{grid-template-columns:repeat(2,minmax(0,1fr))}
.pt-dem-req-form .row .inp{min-width:0}
/* 단계 스테퍼 */
.pt-dem-req-flow{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin:0 0 12px;font-size:12px}
.pt-dem-req-flow span{padding:3px 10px;border-radius:999px;background:var(--surface2);color:var(--muted)}
.pt-dem-req-flow span.done{color:var(--ok);background:color-mix(in srgb,var(--ok) 10%,var(--surface))}
.pt-dem-req-flow span.cur{background:var(--hq);color:#fff;font-weight:600}
.pt-dem-req-flow span.rej{background:color-mix(in srgb,var(--alert) 14%,var(--surface));color:var(--alert);font-weight:600}
.pt-dem-req-flow i{font-style:normal;color:var(--muted)}
/* DEM-04 */
.pt-dem-req-hd h2{font-size:17px}
.pt-dem-req-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:12px;align-items:start}
.pt-dem-req-l,.pt-dem-req-r{display:grid;gap:10px;min-width:0}
.pt-dem-req-ctl{gap:6px;margin-bottom:8px}
.pt-dem-req-ctl>*{min-width:0}
.pt-dem-req-ct td{vertical-align:middle}
.pt-dem-req-gh td{background:var(--surface2);font-size:11.5px;color:var(--muted)}
.pt-dem-req-gh td b{color:var(--fg)}
.pt-dem-req-fit{font-size:15px;cursor:pointer;border-bottom:1px dotted var(--muted)}
.pt-dem-req-rcs{display:inline-flex;flex-wrap:wrap;gap:3px;cursor:help;white-space:normal;max-width:220px}
.pt-dem-req-rc{font-size:10.5px;font-weight:600;padding:1px 6px;border-radius:5px}
.pt-dem-req-rc.w{color:var(--need);background:color-mix(in srgb,var(--need) 14%,transparent)}
.pt-dem-req-rc.x{color:var(--alert);background:color-mix(in srgb,var(--alert) 14%,transparent)}
.pt-dem-req-fold{margin-top:8px;padding:6px 10px;border:1px dashed var(--line);border-radius:7px;font-size:11.5px;color:var(--muted)}
.pt-dem-req-mo{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.pt-dem-req-mo>div{background:var(--surface2);border-radius:7px;padding:6px 8px;display:grid;gap:2px}
.pt-dem-req-mo small{color:var(--muted);font-size:11px}
.pt-dem-req-pc{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.4fr) auto;gap:8px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}
.pt-dem-req-pc:first-of-type{border-top:0}
.pt-dem-req-pcr .rule{margin:0 0 2px}
.pt-dem-req-pcb{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.pt-dem-req-ri{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px}
.pt-dem-req-why{margin-top:8px;padding:8px 10px;background:var(--surface2);border-radius:7px;font-size:12px;white-space:pre-wrap}
.pt-dem-req-msgs{display:grid;gap:8px;max-height:420px;overflow:auto;padding-right:2px}
.pt-dem-req-sys{font-size:11px;color:var(--muted);border-left:2px solid var(--line);padding-left:8px}
.pt-dem-req-msg{display:flex;gap:7px;align-items:flex-start}
.pt-dem-req-msg>div{min-width:0}
.pt-dem-req-msg p{margin:0;padding:6px 10px;border-radius:0 9px 9px 9px;background:var(--surface2);font-size:12.5px;overflow-wrap:anywhere}
.pt-dem-req-msg.me p{background:color-mix(in srgb,var(--hq) 12%,var(--surface))}
.pt-dem-req-ci{display:flex;gap:6px;margin-top:10px}
.pt-dem-req-ci .inp{flex:1;min-width:0}
.pt-dem-req-bar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:10px 12px;background:var(--surface);border:1px solid var(--line);border-radius:10px}
.pt-dem-req-rec td{vertical-align:middle}
.pt-dem-req-rec select.inp{max-width:170px}
.pt-dem-req-ro td{background:var(--surface2)}
/* DEM-05 */
.pt-dem-req-pk td{vertical-align:middle}
.pt-dem-req-tbd i{color:var(--muted)}
.pt-dem-req-sum td{background:var(--surface2);font-weight:600}
.pt-dem-req-plan th,.pt-dem-req-plan td{padding:5px 7px}
.pt-dem-req-plan tr.tbd td{font-style:italic;color:var(--muted)}
.pt-dem-req-files{font-size:12px;font-family:var(--mono)}
.pt-dem-req-files>div{overflow-wrap:anywhere}
/* 좁은 화면 */
@media (max-width:900px){
  .pt-dem-req-grid,.pt-dem-req-g2{grid-template-columns:minmax(0,1fr)}
  .pt-dem-req-pc{grid-template-columns:minmax(0,1fr)}
  .pt-dem-req-pcb{justify-content:flex-start}
}
@media (max-width:640px){
  .pt-dem-req-steps{flex-basis:100%}
  .pt-dem-req-steps em{display:none}
  .pt-dem-req-stp{flex:1 1 calc(50% - 4px)}
  .pt-dem-req-form{grid-template-columns:minmax(0,1fr)}
  .pt-dem-req-cg{grid-template-columns:minmax(0,1fr)}
  .pt-dem-req-cg em{text-align:center}
  .pt-dem-req-mo{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pt-dem-req-hd h2{font-size:15px;flex-basis:100%;order:2}
  .pt-dem-req-hd small{flex-basis:100%;order:5}
  .pt-dem-req-t td.pt-dem-req-slot{min-width:180px}
  .pt-dem-req-kv{grid-template-columns:80px minmax(0,1fr)}
  .pt-dem-req-bar .btn{flex:1 1 auto;justify-content:center}
  .pt-dem-req-rcs{max-width:160px}
  .pt-dem-req-ctl .seg{flex-wrap:wrap;max-width:100%}
}
