/* ============================================================
   SAFENTRA — PTW SIM 09 · COMPLETION & CLOSURE layer
   completion workspace · closure center · 23-item checklist ·
   final inspection · isolation release · blockers · close dialog
   · closed state · archive.
   ============================================================ */

/* ---------- closure funnel ---------- */
.cls-funnel { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 8px; }
.cls-stage { border: 1px solid var(--color-border); border-radius: 8px; background: var(--color-surface-1); padding: 9px 11px; cursor: pointer; position: relative; }
.cls-stage .cn { font-size: 19px; font-weight: 700; font-variant-numeric: tabular-nums; }
.cls-stage .cl { font-size: 10px; color: var(--color-text-3); }
.cls-stage.blocked { border-left: 3px solid #E5484D; }
.cls-stage.closed { border-left: 3px solid #0E9C8E; }
.cls-stage.sel { box-shadow: 0 0 0 1.5px #0F62FE; border-color: #0F62FE; }

/* ---------- completion declaration ---------- */
.cmp-banner { border-radius: 8px; border: 1px solid #0E9C8E66; background: #0E9C8E0C; padding: 10px 12px; display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: center; }
.cmp-banner .ci { width: 34px; height: 34px; border-radius: 8px; background: #0E9C8E14; color: #0E9C8E; display: grid; place-items: center; }
.cmp-banner .ct { font-size: 12.5px; font-weight: 700; color: #0B7C71; }
.cmp-banner .cm { font-size: 11px; color: var(--color-text-2); }

/* ---------- closure checklist ---------- */
.cls23 { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 6px; }
.cls-item { border: 1px solid var(--color-border); border-radius: 8px; padding: 8px 10px; background: var(--color-surface-1); display: grid; grid-template-columns: auto 1fr auto; gap: 8px; align-items: center; font-size: 11.5px; }
.cls-item .box { width: 22px; height: 22px; border-radius: 6px; border: 1.5px solid var(--color-border-strong, #64748B); display: grid; place-items: center; cursor: pointer; flex: none; background: var(--color-surface-2); }
.cls-item.done .box { background: #0E9C8E; border-color: #0E9C8E; color: #fff; }
.cls-item .nm { font-weight: 600; }
.cls-item .who { font-size: 9.5px; color: var(--color-text-4); }

/* ---------- closure blocker cards ---------- */
.blk-card { border: 1px solid #E5484D66; border-left: 3px solid #E5484D; border-radius: 8px; background: #E5484D08; padding: 9px 12px; display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: center; }
.blk-card .bi { width: 30px; height: 30px; border-radius: 7px; background: #E5484D14; color: #B91C1C; display: grid; place-items: center; }
.blk-card .bt { font-size: 12px; font-weight: 700; color: #B91C1C; }
.blk-card .bm { font-size: 11px; color: var(--color-text-2); }

/* ---------- outstanding action rows ---------- */
.oa-row { border: 1px solid var(--color-border); border-left: 3px solid #64748B; border-radius: 8px; background: var(--color-surface-1); padding: 8px 10px; display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: center; }
.oa-row.critical { border-left-color: #E5484D; }
.oa-row .kind { font-size: 9.5px; font-weight: 700; border-radius: 10px; padding: 2px 8px; white-space: nowrap; }
.oa-row .kind.post { background: var(--color-surface-3); color: var(--color-text-3); }
.oa-row .kind.crit { background: #E5484D14; color: #B91C1C; }

/* ---------- closed state ---------- */
.closed-state { border: 1px solid #0E9C8E66; border-radius: 10px; background:rgba(14,156,142,.05); padding: 14px; text-align: center; }
.closed-state .big { display: inline-flex; align-items: center; gap: 8px; font-size: 16px; font-weight: 800; color: #0B7C71; }
.closed-state .stats { display: flex; flex-wrap: wrap; gap: 6px 18px; justify-content: center; margin-top: 8px; font-size: 11px; color: var(--color-text-3); }
.closed-state .stats b { color: var(--color-text-1); }

/* ---------- final inspection ---------- */
.fin-card { border: 1px solid var(--color-border); border-radius: 8px; background: var(--color-surface-1); padding: 10px 12px; }
.fin-card .fh { font-size: 12px; font-weight: 700; display: flex; gap: 7px; align-items: center; margin-bottom: 7px; }
.fin-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 8px; }

/* ---------- archive table helpers ---------- */
.arch-views { display: flex; flex-wrap: wrap; gap: 6px; }

/* ---------- isolation release coordination ---------- */
.iso-panel { border: 1px solid var(--color-border); border-radius: 8px; background: var(--color-surface-1); padding: 10px 12px; display: grid; gap: 8px; }
.iso-steps { display: flex; flex-wrap: wrap; gap: 6px; }
.iso-step { flex: 1 1 130px; border: 1px dashed var(--color-border); border-radius: 8px; padding: 7px 9px; font-size: 10.5px; color: var(--color-text-3); background: var(--color-surface-1); }
.iso-step.on { border-style: solid; border-color: #0E9C8E; color: #0B7C71; font-weight: 700; background: #0E9C8E09; }
.iso-step.wait { border-color: #E8930C; color: #B45309; background: #E8930C08; font-weight: 600; }
