/* ── Shared ──────────────────────────────────────────────────────────────── */

.bg-gradient-brand {
    background: linear-gradient(135deg, #1a3a5c 0%, #2d6a4f 100%);
    min-height: 100vh;
}

/* ── Login / logout / user forms (full-page centered cards) ──────────────── */

.page-centered {
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ── Upload — drop zone (index.html) ─────────────────────────────────────── */

#dropZone {
    border: 2px dashed #adb5bd;
    border-radius: .5rem;
    padding: 2.5rem 1rem;
    text-align: center;
    cursor: pointer;
    transition: border-color .2s, background .2s;
}
#dropZone:hover,
#dropZone.drop-active      { border-color: #0d6efd; background: #f0f4ff; }
#dropZone.drop-has-file    { border-color: #198754; background: #f0fff4; }
#dropZone .drop-icon       { font-size: 2.5rem; color: #adb5bd; }
#dropZone.drop-has-file .drop-icon { color: #198754; }

/* ── Presupuesto form ────────────────────────────────────────────────────── */

.param-label { font-size: .8rem; color: #6c757d; }

.section-card {
    border: 1px solid #dee2e6;
    border-radius: .5rem;
    background: #fff;
    margin-bottom: 1rem;
}
.section-card .section-header {
    padding: .65rem 1rem;
    background: #f1f3f5;
    border-bottom: 1px solid #dee2e6;
    border-radius: .5rem .5rem 0 0;
    cursor: pointer;
    user-select: none;
}

.computed { background: #f8f9fa; color: #495057; }

.cap-text-inputs,
.subcap-text-inputs { gap: .25rem; }

.chapter-block  { border: 1px solid #dee2e6; border-radius: .4rem; margin-bottom: .75rem; }
.chapter-header { background: #e9ecef; border-radius: .4rem .4rem 0 0; padding: .5rem .75rem; }

.subcap-container   { padding: .5rem .75rem .25rem 1.5rem; }
.subcap-col-headers { font-size: .75rem; color: #6c757d; padding: 0 0 .25rem 0; display: flex; gap: .35rem; }
.subcap-row                                          { display: flex; gap: .35rem; align-items: center; margin-bottom: .35rem; }
.subcap-row .f-grow, .subcap-col-headers .f-grow     { flex: 1 1 0; min-width: 0; }
.subcap-row .f-ud,   .subcap-col-headers .f-ud       { width: 58px;  flex-shrink: 0; }
.subcap-row .f-num,  .subcap-col-headers .f-num      { width: 96px;  flex-shrink: 0; }
.subcap-row .f-del,  .subcap-col-headers .f-del      { width: 32px;  flex-shrink: 0; }
