/* ── WorkerCreateWizard.razor ── */
.wcw-stepper {
    list-style: none; padding: 0; margin: 0;
    display: flex; gap: 1rem; font-size: .8rem; color: var(--atlas-gray-500);
}
.wcw-stepper li { display:flex; align-items:center; gap:.4rem; }
.wcw-stepper li span {
    width: 22px; height: 22px; border-radius: 999px;
    background: var(--atlas-gray-200); color: var(--atlas-gray-600); font-weight: 600;
    display: inline-flex; align-items:center; justify-content:center;
    font-size: .7rem;
}
.wcw-stepper li.is-active { color: var(--atlas-gray-900); font-weight: 600; }
.wcw-stepper li.is-active span { background: var(--atlas-blue-600); color: var(--atlas-white); }

.wcw-doc-list { display: grid; grid-template-columns: 1fr; gap: .5rem; max-height: 50vh; overflow: auto; }
.wcw-doc-card {
    border: 1px solid var(--atlas-gray-200); border-radius: 8px; padding: .65rem .8rem;
    background: var(--atlas-white); transition: border-color .15s;
}
.wcw-doc-card.is-filled { border-color: var(--atlas-emerald-500); background: var(--atlas-emerald-50); }
.wcw-doc-card.is-empty { border-style: dashed; }
.wcw-file-input { max-width: 220px; }
/* Step 3 doc cards are now clickable buttons that open the upload popup. */
button.wcw-doc-card { width: 100%; text-align: left; cursor: pointer; }
button.wcw-doc-card:hover { border-color: var(--atlas-blue-600); box-shadow: 0 1px 4px rgba(37,99,235,.15); }
.wcw-doc-cta { font-size: .72rem; font-weight: 600; color: var(--atlas-blue-600); white-space: nowrap; display: inline-flex; align-items: center; }
.wcw-doc-mand { font-size: .58rem; color: var(--atlas-red-600); font-weight: 700; margin-left: .3rem; }
.wcw-doc-opt  { font-size: .58rem; color: var(--atlas-gray-400); font-weight: 600; margin-left: .3rem; }
.wcw-up-drop  { border: 1px dashed var(--atlas-gray-300); border-radius: 8px; padding: .75rem; background: var(--atlas-gray-50); }
.wcw-up-file  { font-size: .8rem; color: var(--atlas-gray-700); }

.wcw-photo-zone {
    border: 1px dashed var(--atlas-gray-300); border-radius: 10px;
    padding: 1.25rem; background: var(--atlas-gray-50);
    display: flex; flex-direction: column; align-items: center;
}
.wcw-photo-empty { color: var(--atlas-gray-400); font-size: 2.6rem; text-align: center; }
.wcw-photo-preview {
    width: 160px; height: 200px; border-radius: 12px; overflow: hidden;
    background: var(--atlas-gray-200); display: flex; align-items: center; justify-content: center;
    text-align: center; color: var(--atlas-gray-500);
}
.wcw-photo-preview img { width: 100%; height: 100%; object-fit: cover; }
.wcw-photo-input { max-width: 280px; }

.wcw-section-head {
    display: flex; align-items: center; flex-wrap: wrap;
    font-size: .8rem; font-weight: 700; color: var(--atlas-gray-800);
    text-transform: uppercase; letter-spacing: .02em;
    padding-bottom: .35rem; margin-bottom: .15rem;
    border-bottom: 1px solid var(--atlas-gray-200);
}
.wcw-project-chip {
    font-size: .68rem; font-weight: 600; color: var(--atlas-blue-700);
    background: var(--atlas-blue-50); border: 1px solid #bfdbfe; border-radius: 999px;
    padding: .1rem .5rem; text-transform: none; letter-spacing: 0;
}
.wcw-temp-switch .form-check-input { cursor: pointer; }
.wcw-temp-panel {
    border: 1px dashed var(--atlas-indigo-200); background: #f5f7ff;
    border-radius: 10px; padding: .85rem .9rem;
}
.wcw-temp-bar {
    display: flex; align-items: center; flex-wrap: wrap; gap: .5rem .9rem;
    border: 1px dashed var(--atlas-indigo-200); background: #f5f7ff;
    border-radius: 10px; padding: .6rem .85rem;
}
.wcw-temp-info { font-size: .72rem; color: var(--atlas-gray-600); display: inline-flex; align-items: center; }
.wcw-temp-info .ph-info { color: var(--atlas-blue-600); font-size: .95rem; }

/* Edit mode — a yellow background flags an input whose value differs from what's
   currently stored in the database (i.e. a change that will be saved). */
.wcw-dirty,
.wcw-dirty:focus {
    background-color: #fef9c3 !important;
    border-color: var(--atlas-yellow-400) !important;
    box-shadow: 0 0 0 .15rem rgba(250, 204, 21, .25) !important;
}

/* Approval/review mode — read-only passport header */
.wcw-review-passport {
    display: flex; gap: 1rem; align-items: flex-start;
    background: var(--atlas-gray-50); border: 1px solid var(--atlas-gray-200); border-radius: 12px; padding: 1rem;
}
.wcw-review-photo {
    width: 92px; height: 118px; border-radius: 10px; background: var(--atlas-gray-200);
    display: flex; align-items: center; justify-content: center; overflow: hidden;
    border: 1px solid var(--atlas-gray-200); flex-shrink: 0;
}
.wcw-review-photo img { width: 100%; height: 100%; object-fit: cover; }
.wcw-review-photo i { font-size: 2.6rem; color: var(--atlas-gray-400); }
.wcw-review-passport-body { flex: 1; min-width: 0; }
.wcw-review-passport-body h4 { font-size: 1.05rem; font-weight: 700; color: var(--atlas-gray-900); }
.wcw-review-meta {
    font-size: .8rem; color: var(--atlas-gray-700); display: flex; gap: .4rem; align-items: center;
    flex-wrap: wrap; margin-bottom: .5rem;
}
.wcw-review-hint { font-size: .72rem; color: var(--atlas-gray-500); }
/* Read-only identity block visually flattened so it reads as "informational" */
.wcw-ro-fieldset[disabled] { opacity: .85; }
.wcw-ro-fieldset[disabled] .form-control,
.wcw-ro-fieldset[disabled] .form-select { background-color: var(--atlas-gray-100); cursor: default; }

/* Live duplicate mini-card (plan 2026-07-16) — shown under the document number field */
.wcw-dup-card {
    display: flex; align-items: center; gap: .55rem; margin-top: .35rem;
    padding: .4rem .55rem; border: 1px solid #fecaca; background: var(--atlas-red-50);
    border-radius: 8px; cursor: pointer; user-select: none;
}
.wcw-dup-card:hover { border-color: #f87171; box-shadow: 0 1px 4px rgba(220,38,38,.15); }
.wcw-dup-card.is-suspended { border-color: #fde68a; background: var(--atlas-amber-50); }
.wcw-dup-card.is-suspended:hover { border-color: var(--atlas-amber-500); box-shadow: 0 1px 4px rgba(245,158,11,.15); }
.wcw-dup-photo {
    width: 34px; height: 34px; border-radius: 50%; overflow: hidden; flex-shrink: 0;
    background: var(--atlas-gray-200); display: flex; align-items: center; justify-content: center;
    color: var(--atlas-gray-400); font-size: 1.05rem;
}
.wcw-dup-photo img { width: 100%; height: 100%; object-fit: cover; }
.wcw-dup-info { min-width: 0; flex-grow: 1; }
.wcw-dup-name { font-size: .78rem; font-weight: 600; color: var(--atlas-gray-900); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wcw-dup-meta { font-size: .68rem; color: var(--atlas-gray-500); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wcw-dup-open { color: var(--atlas-gray-400); font-size: .95rem; flex-shrink: 0; }
.wcw-dup-card:hover .wcw-dup-open { color: var(--atlas-gray-700); }

.wcw-review-gate {
    background: var(--atlas-gray-50); border: 1px solid var(--atlas-gray-200); border-radius: 10px; padding: .6rem .85rem;
}
.wcw-gate-line { margin-top: .3rem; }
.wcw-reject-panel { background: var(--atlas-red-50); border: 1px solid #fecaca; border-radius: 10px; padding: .75rem; }
/* Targeted reject checklist (plan 2026-07-23 F4b). The .ac-rj-* rules live in
   css/pages/approvalCenter.css (both sheets are linked globally in _Host) so the wizard panel and
   the Approval Center modal render identically; only the height is capped here, because this panel
   sits in the modal footer, under the document grid. */
.wcw-reject-panel .ac-rj-list { max-height: 32vh; }

/* ── Rejection remediation, SC edit mode (plan 2026-07-23 G1) ─────────────────────
   Header banner + per-step marks shown when the subcontractor opens a REJECTED worker.
   The item ROWS reuse the .scw-rm-* block of css/pages/subcontractor/subcontractor.css
   (both sheets are linked globally in _Host), so the wizard and the SC portal panel
   read the same; only the wizard chrome lives here. */
.wcw-rm-banner {
    border: 1px solid var(--atlas-red-500); border-left-width: 4px; border-radius: 10px;
    background: var(--atlas-red-50); padding: .65rem .75rem;
}
.wcw-rm-banner-head {
    display: flex; align-items: center; justify-content: space-between; gap: .5rem;
    margin-bottom: .45rem;
}
.wcw-rm-banner-title { font-size: .82rem; font-weight: 700; color: var(--atlas-red-800); }
.wcw-rm-counter {
    font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em;
    color: var(--atlas-gray-700); white-space: nowrap;
}
.wcw-rm-step { font-size: .68rem; font-weight: 500; color: var(--atlas-gray-500); }

/* Red dot on the steps that still have open items (header line + stepper). */
.wcw-step-dot {
    display: inline-block; width: 8px; height: 8px; border-radius: 999px;
    background: var(--atlas-red-600); vertical-align: middle;
}
/* Both wizards share the remediation chrome (.wcw-rm-*, .wcw-step-dot, .wcw-rm-step-note): the
   AssetCreateWizard paints the very same banner from
   GET .../subcontractor/assets/{uuid}/rejection, so the stepper rule covers .awz-stepper too. */
.wcw-stepper li.is-flagged,
.awz-stepper li.is-flagged { color: var(--atlas-red-700); }
.wcw-stepper li.is-flagged span,
.awz-stepper li.is-flagged span { background: var(--atlas-red-600); color: var(--atlas-white); }

/* Per-step notice with the free-text reason (never mapped to a field — decision E7). */
.wcw-rm-step-note {
    border: 1px solid var(--atlas-red-500); border-radius: 10px;
    background: var(--atlas-red-50); padding: .6rem .75rem;
}
.wcw-rm-step-note-title { font-size: .8rem; font-weight: 700; color: var(--atlas-red-800); }
.wcw-rm-step-note-list { margin: .3rem 0 0; padding-left: 1.15rem; }
.wcw-rm-step-note-list li { font-size: .78rem; color: var(--atlas-gray-800); }
.wcw-rm-step-note-hint { font-size: .72rem; color: var(--atlas-gray-600); margin-top: .35rem; }

/* Step 2 — red frame around the shared WorkerPhotoPicker when the photo was rejected. */
.wcw-rm-frame {
    border: 2px solid var(--atlas-red-500); border-radius: 12px; padding: .35rem;
}

/* Step 3 — a document card whose document HSE rejected. */
.wcw-doc-card.is-rejected { border-color: var(--atlas-red-500); background: var(--atlas-red-50); }
.wcw-doc-reject-reason { font-size: .68rem; color: var(--atlas-red-700); margin-top: .15rem; }

/* ── AssetCreateWizard.razor (Pages/Components/Asset — unified vehicle + equipment wizard,
      plan 2026-07-25-unified-asset-wizard). Único bloque de wizard de assets: los vcw-*
      (VehicleCreateWizard) y acw-* (wizard SC) se borraron con sus componentes en F5. ── */
.awz-backdrop { background: rgba(15, 23, 42, .55); }
/* Per-document upload popup: stacks over the wizard modal. */
.awz-backdrop-top { z-index: 1060; background: rgba(15, 23, 42, .45); }

.awz-stepper {
    list-style: none; padding: 0; margin: 0;
    display: flex; gap: 1rem; font-size: .8rem; color: var(--atlas-gray-500);
}
.awz-stepper li { display: flex; align-items: center; gap: .4rem; }
.awz-stepper li span {
    width: 22px; height: 22px; border-radius: 999px;
    background: var(--atlas-gray-200); color: var(--atlas-gray-600); font-weight: 600;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: .7rem;
}
.awz-stepper li.is-active { color: var(--atlas-gray-900); font-weight: 600; }
.awz-stepper li.is-active span { background: var(--atlas-blue-600); color: var(--atlas-white); }

.awz-section-head {
    display: flex; align-items: center; flex-wrap: wrap;
    font-size: .8rem; font-weight: 700; color: var(--atlas-gray-800);
    text-transform: uppercase; letter-spacing: .02em;
    padding-bottom: .35rem; margin-bottom: .35rem;
    border-bottom: 1px solid var(--atlas-gray-200);
}
.awz-project-chip {
    font-size: .68rem; font-weight: 600; color: var(--atlas-blue-700);
    background: var(--atlas-blue-50); border: 1px solid #bfdbfe; border-radius: 999px;
    padding: .1rem .5rem; text-transform: none; letter-spacing: 0;
}

/* Step 2 — document slots (clickable cards that open the upload popup). */
.awz-doc-list { display: grid; grid-template-columns: 1fr; gap: .5rem; max-height: 50vh; overflow: auto; }
.awz-doc-card {
    width: 100%; text-align: left; cursor: pointer;
    border: 1px solid var(--atlas-gray-200); border-radius: 8px; padding: .65rem .8rem;
    background: var(--atlas-white); transition: border-color .15s;
}
.awz-doc-card.is-filled { border-color: var(--atlas-emerald-500); background: var(--atlas-emerald-50); }
.awz-doc-card.is-empty { border-style: dashed; }
/* Remediation — a slot HSE rejected or asked for and is still empty (reason in .wcw-doc-reject-reason). */
.awz-doc-card.is-rejected { border-color: var(--atlas-red-500); background: var(--atlas-red-50); }
.awz-doc-card:hover { border-color: var(--atlas-blue-600); box-shadow: 0 1px 4px rgba(37, 99, 235, .15); }
.awz-doc-cta { font-size: .72rem; font-weight: 600; color: var(--atlas-blue-600); white-space: nowrap; display: inline-flex; align-items: center; }
.awz-doc-mand { font-size: .58rem; color: var(--atlas-red-600); font-weight: 700; margin-left: .3rem; }
.awz-doc-opt { font-size: .58rem; color: var(--atlas-gray-400); font-weight: 600; margin-left: .3rem; }
.awz-doc-sub { font-size: .7rem; color: var(--atlas-gray-500); }
.awz-doc-meta { font-size: .68rem; color: var(--atlas-gray-500); }

.awz-up-drop { border: 1px dashed var(--atlas-gray-300); border-radius: 8px; padding: .75rem; background: var(--atlas-gray-50); }
.awz-up-file { font-size: .8rem; color: var(--atlas-gray-700); }

/* Step 3 — restricted zone checkboxes. */
.awz-zone-list { max-height: 45vh; overflow: auto; font-size: .85rem; }

/* ── Approval Center review mode (F5) — mirrors the wcw-* review block above so both
      wizards render one single reviewer UI. ── */
.awz-ro-fieldset[disabled] { opacity: .85; }
.awz-ro-fieldset[disabled] .form-control,
.awz-ro-fieldset[disabled] .form-select { background-color: var(--atlas-gray-100); cursor: default; }

.awz-review-gate {
    background: var(--atlas-gray-50); border: 1px solid var(--atlas-gray-200); border-radius: 10px; padding: .6rem .85rem;
}
.awz-gate-line { margin-top: .3rem; }
.awz-reject-panel { background: var(--atlas-red-50); border: 1px solid #fecaca; border-radius: 10px; padding: .75rem; }
/* The .ac-rj-* rules live in css/pages/approvalCenter.css (both sheets are linked globally in
   _Host) so this panel and the Approval Center modal render identically; only the height is
   capped here, because the panel sits in the modal footer under the document grid. */
.awz-reject-panel .ac-rj-list { max-height: 32vh; }
