.completion-fieldset {
    border: 0;
    padding: 0;
    margin: 0 0 18px;
}

.completion-fieldset legend {
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 9px;
}

.completion-options {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.completion-option {
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff;
    padding: 12px;
    text-align: left;
    color: var(--ink);
    cursor: pointer;
}

.completion-option strong,
.completion-option small {
    display: block;
}

.completion-option small {
    color: var(--muted);
    font-size: 10px;
    margin-top: 3px;
}

.completion-option.yes.active {
    border-color: #22c55e;
    background: #f0fdf4;
    color: #15803d;
    box-shadow: 0 0 0 2px #22c55e22;
}

.completion-option.no.active {
    border-color: #f59e0b;
    background: #fffbeb;
    color: #a16207;
    box-shadow: 0 0 0 2px #f59e0b22;
}

.validation-message {
    display: block;
    color: #b91c1c;
    font-size: 11px;
    margin-top: 5px;
}

.photo-control {
    border: 1px dashed #94a3b8;
    border-radius: 13px;
    overflow: hidden;
    background: #f8fafc;
}

.photo-picker {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    margin: 0 !important;
    padding: 20px !important;
    text-align: center;
    cursor: pointer;
}

.photo-picker input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.photo-picker strong {
    font-size: 13px;
    color: var(--primary);
}

.photo-picker small {
    font-size: 10px;
    color: var(--muted);
    margin-top: 3px;
}

.camera-icon {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: #dbeafe;
    color: var(--blue) !important;
    font-size: 20px;
    margin-bottom: 8px;
}

.photo-control img {
    display: block;
    width: 100%;
    max-height: 240px;
    object-fit: cover;
}

.remove-photo {
    width: 100%;
    border: 0;
    border-top: 1px solid var(--line);
    background: #fff;
    color: #b91c1c;
    padding: 10px;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}

/* Respuesta del responsable al compromiso propuesto (Last Planner) */
.commitment-state {
    display: inline-block;
    margin: 6px 0 0;
    padding: 3px 9px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 600;
}

.commitment-state.proposed {
    background: #fff7ed;
    color: #c2410c;
}

.commitment-state.rejected {
    background: #fef2f2;
    color: #b91c1c;
}

.commitment-response {
    display: grid;
    gap: 12px;
}

.commitment-response__intro {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.45;
}

.commitment-response select,
.commitment-response textarea {
    width: 100%;
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 10px 12px;
    font: inherit;
}

.commitment-response label {
    font-weight: 600;
    font-size: 13px;
}

.commitment-response label span {
    font-weight: 400;
    color: var(--muted);
}

/* Barra de avance nativa (sin estilos en línea) */
progress.progress-line {
    display: block;
    width: 100%;
    height: 6px;
    border: 0;
    appearance: none;
    background: #e9eef3;
    border-radius: 5px;
    overflow: hidden;
}

progress.progress-line::-webkit-progress-bar {
    background: #e9eef3;
    border-radius: 5px;
}

progress.progress-line::-webkit-progress-value {
    background: linear-gradient(90deg, var(--blue), #4bb7db);
    border-radius: 5px;
}

progress.progress-line::-moz-progress-bar {
    background: linear-gradient(90deg, var(--blue), #4bb7db);
    border-radius: 5px;
}

.commitment-response label {
    display: grid;
    gap: 6px;
}

/* Carpetas de la Carta Gantt dentro de cada obra */
.folder-group{margin:0 0 12px;border:1px solid #e2e8f0;border-radius:14px;background:#f8fafc}
.folder-toggle{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;border:0;background:transparent;cursor:pointer;color:var(--primary);font:inherit;font-size:13px;font-weight:700;text-align:left}
.folder-group .folder-icon{display:inline-block;color:#ff6c37;font-size:12px;transition:transform .15s ease}
.folder-group.open .folder-icon{transform:rotate(90deg)}
.folder-group .folder-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.folder-toggle small{padding:2px 8px;border-radius:20px;background:#e2e8f0;color:#475569;font-size:11px;font-weight:600}
.folder-group>.assignment-list{padding:0 10px 10px}

/* Obra activa bajo el encabezado (patrón de InspectionClient) */
.workspace-bar{display:flex;align-items:center;gap:10px;padding:8px max(18px,calc((100% - 980px)/2));background:#f1f5f9;border-bottom:1px solid var(--line)}
.workspace-label{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.workspace-name{color:var(--primary);font-size:14px}
.workspace-select{position:relative;flex:1;max-width:420px}
.workspace-select select{width:100%;padding:8px 32px 8px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--primary);font:inherit;font-size:14px;font-weight:700;appearance:none;cursor:pointer}
.workspace-select select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #1975c51a}
.workspace-select span{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--accent);pointer-events:none}
.empty-state .other-areas{margin-top:10px;color:var(--primary);font-weight:600}
@media(max-width:700px){.workspace-bar{padding:8px 14px}.workspace-select{max-width:none}}

/* Formulario de avance fuera del período PCP: se deshabilita sin perder el estilo de los campos. */
.capture-fieldset{border:0;padding:0;margin:0;min-width:0}
.capture-fieldset:disabled{opacity:.55}
.progress-sheet .capture-fieldset>label{display:block;font-weight:600;font-size:13px;margin:17px 0 7px}
.notice.capture-window{margin-bottom:16px}

/* Capturas de compromisos que ya no están asignados: se revisan y se descartan con confirmación. */
.orphan-panel{background:#fff;border:1px solid #fed7aa;border-radius:14px;padding:14px 16px;margin:0 0 16px}
.orphan-panel>h2{display:flex;align-items:center;gap:8px;color:var(--primary);font-size:15px;margin:0 0 4px}
.orphan-panel>h2 small{font-size:10px;background:#ffedd5;color:#c2410c;padding:3px 8px;border-radius:20px}
.orphan-panel>p{color:var(--muted);font-size:12px;margin:0 0 10px}
.orphan-panel ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.orphan-item{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;border-top:1px solid var(--line);padding-top:10px}
.orphan-copy{min-width:0}
.orphan-copy strong{display:block;font-size:13px;color:var(--ink)}
.orphan-copy small{display:block;color:var(--muted);font-size:11px;margin-top:2px}
.orphan-copy p{margin:5px 0 0;color:#92400e;font-size:12px}
.orphan-confirm{display:flex;flex-direction:column;align-items:flex-end;gap:6px;max-width:220px;font-size:11px;color:var(--muted);text-align:right}
.ghost-button,.danger-button{flex:0 0 auto;border-radius:10px;min-height:36px;padding:0 12px;font-size:12px;font-weight:700;cursor:pointer}
.ghost-button{border:1px solid var(--line);background:#fff;color:var(--primary)}
.danger-button{border:0;background:#b91c1c;color:#fff}
.ghost-button:disabled,.danger-button:disabled{opacity:.6}
@media (max-width:640px){.orphan-item{flex-direction:column}.orphan-confirm{align-items:stretch;max-width:none;text-align:left}}
