/* =============================================================================
   안전작업허가서 — 고소작업대 작업계획서(시저형/차량형) — 2026-10-23
   (1) 출력 양식(.wpa-doc · .wpa-guide · .wpa-t …): 빈 양식 PDF 의 표·칸 구조를 따른다. Apple UI 아님(출력 문서는 흑백 표). 화면 미리보기와 인쇄/PDF 가 같은 모양.
   (2) 작성 화면(.wpa-wiz …): 허가서 마법사 4단계의 선택·작성 입력. 회색 글씨(placeholder)는 예시일 뿐 저장·출력되지 않는다.
   ========================================================================== */

/* ---- (1) 출력 양식 ---- */
.wpa-t{width:100%;border-collapse:collapse;font-size:11.5px;margin:0;}
.wpa-t th,.wpa-t td{border:1px solid #000;padding:3px 6px;vertical-align:middle;}
.wpa-t th{background:#f2f2f2;text-align:center;font-weight:700;white-space:normal;}
.wpa-t td{white-space:pre-wrap;word-break:break-word;}
.wpa-head{margin-bottom:6px;}
.wpa-head td.wpa-title{border:none;padding:0 8px 0 0;}
.wpa-title b{display:block;font-size:21px;font-weight:800;line-height:1.25;}
.wpa-title span{display:block;margin-top:6px;font-size:13px;font-weight:700;color:#555;}
.wpa-sgc{height:42px;padding:2px 6px;}
.wpa-sg{display:flex;align-items:center;gap:6px;min-height:36px;}
.wpa-sg img{max-height:36px;max-width:92px;}
.wpa-sg-meta{font-size:10px;line-height:1.3;color:#222;word-break:keep-all;}
.wpa-t td.wpa-sgc,.wpa-legend td{word-break:keep-all;}
.wpa-sg-wait{color:#444;font-size:11px;}
.wpa-info{margin-bottom:8px;}
.wpa-info td{min-height:24px;}
.wpa-att{font-weight:700;}
.wpa-chk .wpa-grp{font-weight:800;font-size:12px;}
.wpa-chk td{padding:2px 5px;}
.wpa-ck-t{line-height:1.35;font-size:11px;}
.wpa-key{font-weight:700;color:#1a3fb0;}
.wpa-ck-note{display:block;margin-top:2px;font-size:10px;font-weight:400;color:#333;white-space:pre-wrap;}
.wpa-c{text-align:center;font-size:14px;}
.wpa-ck-a{font-size:11px;}
.wpa-pgtitle{font-size:15px;font-weight:800;margin:0 0 6px;}
.wpa-pgtitle span{font-size:11px;font-weight:600;color:#666;}
.wpa-route{table-layout:fixed;margin-bottom:0;}
.wpa-route th{font-size:12.5px;}
.wpa-route-l{width:62%;height:118mm;vertical-align:top;padding:2mm;}
.wpa-route-r{width:38%;vertical-align:top;padding:2mm;}
.wpa-draw img{display:block;width:100%;max-height:112mm;object-fit:contain;margin:0 auto 2mm;}
.wpa-draw-multi img{max-height:54mm;}
.wpa-draw-pdf{font-size:11px;padding:2px 0;color:#222;}
.wpa-txt-h{font-weight:800;font-size:12px;margin:4px 0 2px;}
.wpa-txt-b{font-size:11px;line-height:1.5;white-space:pre-wrap;word-break:break-word;min-height:12mm;margin-bottom:6px;}
.wpa-legend{margin:0;font-size:11px;}
.wpa-legend-h{table-layout:fixed;margin-bottom:0;}
.wpa-legend-h .wpa-lg-h{width:9%;background:#dde6f1;}
.wpa-legend-v{margin-bottom:6px;}
.wpa-legend-v th{background:#dde6f1;}
.wpa-lg{display:inline-block;vertical-align:middle;font-size:17px;line-height:1;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
.wpa-lg-route,.wpa-lg-arrow{color:#e00000;}
.wpa-lg-zone{width:26px;height:16px;border-radius:50%;background:#efc7c9;}
.wpa-lg-guide{color:#0a3fd0;font-weight:700;}
.wpa-lg-boss{color:#0a22e0;}
.wpa-lg-ban{width:20px;height:20px;border-radius:50%;border:3px dotted #e00000;box-sizing:border-box;}
.wpa-steps{margin-top:8px;}
.wpa-steps td{height:15mm;vertical-align:top;}
.wpa-steps td.wpa-c{vertical-align:middle;font-size:12px;}
.wpa-guide{text-align:center;}
.wpa-guide img{display:block;margin:0 auto;width:100%;max-height:262mm;object-fit:contain;}
.wpa-pb{margin:16px 0 10px;border-top:1px dashed #999;}
@media print{
  .wpa-pb{break-before:page;margin:0;border:0;}
  .wpa-guide img{width:auto;max-width:100%;}
  .wpa-t th,.wpa-legend-h .wpa-lg-h{-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .wpa-head,.wpa-info,.wpa-route,.wpa-legend{break-inside:avoid;}
}
@media screen and (max-width:560px){
  .wp-sec.wpa-doc{padding:8px 6px;}
  .wpa-t{font-size:10.5px;}
  .wpa-t th,.wpa-t td{padding:2px 3px;}
  .wpa-head th{white-space:nowrap;padding:2px 4px;}
  .wpa-chk th{word-break:keep-all;}
  .wpa-title b{font-size:16px;}
  .wpa-route-l{height:70mm;}
  .wpa-sg img{max-width:56px;}
  .wpa-legend td{font-size:9px;padding:1px;word-break:normal;overflow-wrap:anywhere;}
  .wpa-legend-h .wpa-lg-h{width:12%;}
  .wpa-lg-zone{width:18px;height:12px;}
  .wpa-lg-ban{width:14px;height:14px;border-width:2px;}
}

/* ---- (2) 작성 화면 · 상세 패널 ---- */
.wpa-wiz .wpa-kind{border:1px solid var(--line,#d8d8d8);border-radius:var(--radius,10px);padding:10px;margin:10px 0;background:var(--surface,#fff);}
.wpa-wiz .wpa-kind.on{border-color:var(--line-strong,#999);}
.wpa-krow{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;}
.wpa-krow .wp-opt{flex:1 1 220px;min-width:0;}
.wpa-krow .btn{margin:0;}
.wpa-st{display:inline-block;padding:1px 9px;border:1px solid var(--line-strong,#999);border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap;color:var(--ink-2,#555);}
.wpa-st-done{color:#0a7a3a;border-color:#0a7a3a;}
.wpa-st-partial{color:#c2380f;border-color:#c2380f;}
.wpa-panel{margin-top:10px;padding-top:6px;border-top:1px dashed var(--line,#d8d8d8);}
.wpa-map{background:var(--surface-2,#f6f6f6);border:1px solid var(--line,#d8d8d8);border-radius:var(--radius,10px);padding:8px 10px;margin:6px 0 10px;}
.wpa-map-h{font-weight:700;margin-bottom:4px;}
.wpa-ph{color:#9aa0a6;font-style:italic;font-weight:400;}
.wpa-panel input::placeholder,.wpa-panel textarea::placeholder{color:#9aa0a6;opacity:1;}
.wpa-gh{margin:12px 0 2px;font-size:13px;font-weight:800;}
.wpa-ck{border-top:1px solid var(--line,#e2e2e2);padding:8px 0;}
.wpa-ck-t{font-size:14px;line-height:1.5;}
.wpa-ck-t .wpa-ck-note{display:block;font-size:12px;font-weight:400;color:var(--ink-2,#666);white-space:pre-wrap;}
.wpa-act{width:100%;margin-top:6px;box-sizing:border-box;}
.wpa-need{border-color:#c2380f !important;background:#fff4f0 !important;}
.wpa-step{border:1px solid var(--line,#e2e2e2);border-radius:var(--radius,10px);padding:8px 10px;margin:8px 0;}
.wpa-step-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;}
.wpa-step textarea{width:100%;box-sizing:border-box;}
.wpa-dlist{list-style:none;margin:6px 0;padding:0;}
.wpa-dlist li{display:flex;align-items:center;gap:8px;padding:6px 0;border-top:1px solid var(--line,#e2e2e2);}
.wpa-dname{flex:1 1 auto;min-width:0;overflow-wrap:anywhere;}
.wpa-dthumb{width:52px;height:40px;object-fit:cover;border:1px solid var(--line,#ddd);border-radius:6px;}
.wpa-dpdf{display:inline-block;width:52px;text-align:center;font-size:12px;font-weight:800;padding:10px 0;border:1px solid var(--line,#ddd);border-radius:6px;}
.wpa-detail .wpa-dl{list-style:none;margin:0 0 6px;padding:0;}
.wpa-dl li{padding:8px 0;border-top:1px solid var(--line,#e2e2e2);}
.wpa-dl li:first-child{border-top:0;}
.wpa-dl-t{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;}
.wpa-dl-b{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;}
.wpa-dl-b .btn{margin:0;}

/* ---- (3) 도면 표시(2026-11-02) — 사업장 도면 위에 운행경로·작업구역·유도자·작업지휘자·출입제한구역을 그린다(js/wp-aerial-draw.js · wp-aerial-draw-ui.js) ----
   읽기 전용(.wpad-pv): 도면 <img> 위에 같은 좌표계 <svg> 를 겹친다. 출력 범위만 보이도록 칸은 overflow:hidden. 인쇄에서도 그림·도형 색이 그대로 나오게 exact. */
.wpad-pv{position:relative;overflow:hidden;width:100%;aspect-ratio:var(--ar,1.06);max-width:calc(var(--maxh,112mm) * var(--ar,1.06));margin:0 auto 2mm;background:#eef0f2;border:1px solid #888;box-sizing:border-box;-webkit-print-color-adjust:exact;print-color-adjust:exact;break-inside:avoid;}
.wpad-pv img.wpad-bg{position:absolute;max-width:none;max-height:none;display:block;margin:0;object-fit:fill;}
.wpad-pv svg.wpad-ov{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;pointer-events:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
.wpa-draw .wpad-pv + img,.wpa-draw .wpad-pv + .wpa-draw-pdf{margin-top:2mm;}
.wpa-detail .wpad-pv{max-width:420px;margin:6px 0 2px;--maxh:260px;}
.wpad-dl-sum{font-size:12px;color:var(--ink-2,#555);margin-top:2px;}
/* 편집기 */
.wpad{margin:6px 0;}
.wpad-msg{padding:10px 12px;border:1px solid var(--line,#d8d8d8);border-radius:var(--radius,10px);background:var(--surface-2,#f6f6f6);font-size:13px;line-height:1.5;margin:6px 0;}
.wpad-msg-warn{background:#fff8e6;border-color:#e0b24a;}
.wpad-msg-err{background:#fff4f0;border-color:#c2380f;color:#8a2a0a;}
.wpad-top{font-size:13px;margin:2px 0 6px;}
.wpad-tools{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0;}
.wpad-tools .btn{margin:0;display:inline-flex;align-items:center;gap:4px;min-height:36px;padding:2px 10px;}
.wpad-tools .btn[aria-pressed="true"]{background:#e8f0ff;border-color:#0a3fd0;color:#0a3fd0;box-shadow:inset 0 0 0 1px #0a3fd0;font-weight:700;}
.wpad-tools .btn:disabled{opacity:.45;}
.wpad-tb span{white-space:nowrap;}
.wpad-ic{flex:0 0 auto;display:inline-block;vertical-align:middle;}
.wpad-sep{flex:0 0 1px;align-self:stretch;background:var(--line,#d8d8d8);margin:0 2px;}
.wpad-stage{position:relative;height:min(66vh,720px);min-height:200px;background:#dfe3e7;border:1px solid var(--line-strong,#999);border-radius:8px;overflow:hidden;touch-action:none;outline:none;}
.wpad-stage:focus-visible{box-shadow:0 0 0 3px rgba(10,63,208,.35);}
.wpad-svg{display:block;width:100%;height:100%;user-select:none;-webkit-user-select:none;cursor:grab;}
.wpad-stage.wpad-draw .wpad-svg{cursor:crosshair;}
.wpad-stage.wpad-panning .wpad-svg{cursor:grabbing;}   /* 도면을 끌어 옮기는 동안만(선택·이동 도구, 빈 곳 끌기) — 놓으면 바로 해제 */
.wpad-it{cursor:pointer;}
.wpad-it.wpad-sel{filter:drop-shadow(0 0 3px rgba(10,63,208,.9));}
.wpad-draft{stroke:#e00000;fill:none;pointer-events:none;}
.wpad-dpt{fill:#fff;stroke:#e00000;stroke-width:1.5;pointer-events:none;}
.wpad-ring{fill:none;stroke:#0a3fd0;pointer-events:none;}
.wpad-hv{fill:#fff;stroke:#0a3fd0;stroke-width:2.4;cursor:move;vector-effect:non-scaling-stroke;}
.wpad-hv.on{fill:#0a3fd0;}
.wpad-hm{fill:rgba(255,255,255,.85);stroke:#0a3fd0;stroke-width:1.6;cursor:copy;vector-effect:non-scaling-stroke;}
.wpad-float{display:flex;flex-wrap:wrap;align-items:center;gap:6px;justify-content:center;margin:6px 0 0;padding:6px 8px;background:#fff8e6;border:1px solid #e0b24a;border-radius:8px;font-size:13px;}   /* 그리는 중 [완료] 막대 — 도면 칸 아래(도면 위에 겹치지 않는다) */
.wpad-float[hidden]{display:none;}
.wpad-float .btn{margin:0;min-height:34px;}
.wpad-hint{margin:4px 0 0;font-size:12px;line-height:1.4;color:var(--ink-2,#555);}
.wpad-leg{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:8px 0 4px;padding:6px 10px;border:1px solid var(--line,#d8d8d8);border-radius:8px;background:#fff;font-size:12.5px;}
.wpad-leg-i{display:inline-flex;align-items:center;gap:4px;}
.wpad-opts{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin:6px 0;font-size:13px;}
.wpad-opts select{width:auto;min-width:190px;}
.wpad-pvbox{flex:1 1 100%;}
.wpad-pvbox summary{cursor:pointer;font-weight:700;}
.wpad.wpad-full{position:fixed;inset:0;z-index:1500;margin:0;padding:8px 10px;background:#fff;display:flex;flex-direction:column;overflow:auto;}
.wpad.wpad-full .wpad-stage{flex:1 1 auto;height:auto;min-height:0;}
.wpad.wpad-full .wpad-opts{display:none;}
.wpad.wpad-full .wpad-tools{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px;}   /* 전체 화면에서는 도구 모음을 한 줄(가로로 밀어서)로 — 그림 칸을 최대한 넓게 */
.wpad.wpad-full .wpad-tools .btn,.wpad.wpad-full .wpad-tools .wpad-sep{flex:0 0 auto;}
.wpad.wpad-full .wpad-leg{display:none;}
html.wpad-lock,html.wpad-lock body{overflow:hidden !important;}
@media (max-width:560px){
  .wpad-tools .btn{padding:2px 8px;font-size:12px;}
  .wpad-stage{height:60vh;}
  .wpad-leg{font-size:11.5px;}
}
