/* ── Admisiones / Pre-matrícula stylesheet ─────────────────────────── */
:root {
    --adm-primary:   var(--accent);
    --adm-primary-d: var(--accent);
    --adm-success:   var(--verde);
    --adm-text:      var(--text);
    --adm-muted:     var(--mut);
    --adm-border:    var(--border-2);
    --adm-surface:   var(--surface);
    --adm-bg:        var(--surface-2);
    --adm-ring:      rgb(79 70 229 / 15%);
}

/* ── Page container ── */
.admisiones-main {
    max-width: 860px;
    margin: 0 auto;
    padding: 40px 24px 80px;
}

/* ── Step wizard card ── */
.asistente-container {
    background: var(--adm-surface);
    border: 1px solid var(--adm-border);
    border-radius: 16px;
    padding: 36px 40px;
    box-shadow: 0 4px 24px rgb(0 0 0 / 7%);
}

/* ── Step progress ── */
.asistente-steps {
    display: flex;
    justify-content: space-between;
    margin-bottom: 40px;
    position: relative;
}

.asistente-steps::before {
    content: '';
    position: absolute;
    top: 24px;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--adm-border);
    z-index: 1;
}

.step-item {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1;
}

.step-number {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--adm-surface);
    border: 2px solid var(--adm-border);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: .9rem;
    color: var(--adm-muted);
    margin-bottom: 8px;
    transition: all .25s;
}

.step-item.active .step-number {
    border-color: var(--adm-primary);
    background: var(--adm-primary);
    color: var(--surface);
    box-shadow: 0 0 0 5px var(--adm-ring);
}

.step-item.completed .step-number {
    border-color: var(--adm-success);
    background: var(--adm-success);
    color: var(--surface);
}

.step-label {
    font-size: .8rem;
    font-weight: 600;
    color: var(--adm-muted);
}
.step-item.active .step-label { color: var(--adm-primary); }

/* ── Form content ── */
.step-content {
    display: none;
    animation: fadeIn .35s ease-out;
}
.step-content.active { display: block; }

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}

.asistente-content { min-height: 280px; }

/* ── Section headings ── */
.form-section-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--adm-text);
    margin: 0 0 4px;
}

.form-section-desc {
    font-size: .82rem;
    color: var(--adm-muted);
    margin: 0 0 20px;
}

.form-section-sep {
    border: none;
    border-top: 1px solid var(--adm-border);
    margin: 28px 0 24px;
}

/* ── Form grid (replaces Bootstrap rows/cols) ── */
.form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-bottom: 0;
}
.form-grid .full { grid-column: 1 / -1; }

/* ── Form fields ── */
.form-label {
    display: block;
    font-size: .83rem;
    font-weight: 600;
    color: var(--adm-text);
    margin-bottom: 6px;
}

.form-control,
.form-select {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid var(--border);
    border-radius: 8px;
    font-size: .9rem;
    font-family: inherit;
    background: var(--adm-surface);
    color: var(--adm-text);
    transition: border-color .2s, box-shadow .2s;
    box-sizing: border-box;
}

.form-select {
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 13px center;
    padding-right: 36px;
    cursor: pointer;
}

.form-control:focus,
.form-select:focus {
    outline: none;
    border-color: var(--adm-primary);
    box-shadow: 0 0 0 3px var(--adm-ring);
}

/* ── RGPD consent ── */
.politica-box {
    background: var(--adm-bg);
    border: 1px solid var(--adm-border);
    border-radius: 8px;
    padding: 14px 16px;
    font-size: .8rem;
    color: var(--adm-muted);
}

.politica-check {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 10px;
}

.politica-check input[type="checkbox"] {
    width: 16px;
    height: 16px;
    margin-top: 2px;
    flex-shrink: 0;
    accent-color: var(--adm-primary);
    cursor: pointer;
}

.politica-check label {
    font-size: .82rem;
    font-weight: 600;
    color: var(--dim);
    cursor: pointer;
}
.politica-check label a { color: var(--adm-primary); }
.politica-note { font-size: .75rem; margin: 0; }

/* ── Document upload items ── */
.doc-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px;
    background: var(--adm-bg);
    border: 1px solid var(--adm-border);
    border-radius: 10px;
    margin-bottom: 12px;
    gap: 12px;
}

.doc-item-info h5 {
    font-size: .9rem;
    font-weight: 600;
    color: var(--adm-text);
    margin: 0 0 3px;
}

.doc-item-info p {
    font-size: .78rem;
    color: var(--adm-muted);
    margin: 0;
}

.doc-item-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
}

.upload-btn {
    display: inline-block;
    padding: 7px 14px;
    font-size: .8rem;
    font-weight: 600;
    color: var(--adm-primary);
    border: 1.5px solid var(--adm-primary);
    border-radius: 8px;
    cursor: pointer;
    transition: all .2s;
    background: var(--adm-surface);
    white-space: nowrap;
    user-select: none;
}

.upload-btn:hover {
    background: var(--adm-primary);
    color: var(--surface);
}
input[type="file"].file-input { display: none; }

/* Bootstrap compat aliases (used in admisiones.js) */
.text-info    { color: var(--azul); font-size: .82rem; }
.text-success { color: var(--verde); font-size: .82rem; font-weight: 600; }
.text-danger  { color: var(--rojo); font-size: .82rem; font-weight: 600; }

/* ── Summary card (step 3) ── */
.admisiones-info {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    background: var(--azul-suave);
    border: 1px solid var(--azul-suave);
    border-radius: 8px;
    padding: 12px 16px;
    font-size: .875rem;
    color: var(--azul-ink);
    margin-bottom: 16px;
}
.admisiones-info i { flex-shrink: 0; margin-top: 2px; }

.resumen-card {
    border: 1px solid var(--adm-border);
    border-radius: 10px;
    overflow: hidden;
    margin-top: 16px;
}

.resumen-row {
    display: flex;
    gap: 12px;
    padding: 11px 18px;
    border-bottom: 1px solid var(--surface-3);
}
.resumen-row:last-child { border-bottom: none; }

.resumen-label {
    font-weight: 600;
    color: var(--dim);
    font-size: .85rem;
    min-width: 180px;
    flex-shrink: 0;
}

.resumen-val {
    color: var(--adm-text);
    font-size: .85rem;
}

/* ── Navigation buttons ── */
.asistente-buttons {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 36px;
    padding-top: 20px;
    border-top: 1px solid var(--adm-border);
}

.btn-asistente {
    padding: 10px 24px;
    border-radius: 8px;
    font-size: .9rem;
    font-weight: 600;
    cursor: pointer;
    border: none;
    transition: all .2s;
}

.btn-primary-asistente {
    background: var(--adm-primary);
    color: var(--surface);
    margin-left: auto;
}
.btn-primary-asistente:hover { background: var(--adm-primary-d); transform: translateY(-1px); }

.btn-secondary-asistente {
    background: var(--adm-bg);
    color: var(--adm-muted);
    border: 1px solid var(--adm-border);
}
.btn-secondary-asistente:hover { background: var(--adm-border); color: var(--adm-text); }

/* ── Nivel filter tabs (Grado Medio / Superior) ── */
.nivel-filter-tabs { display: flex; gap: 8px; }
.nivel-filter-tabs button {
    flex: 1;
    padding: 7px 10px;
    font-size: 12px;
    font-weight: 600;
    border-radius: 8px;
    border: 1.5px solid var(--adm-border);
    background: var(--adm-surface);
    color: var(--adm-muted);
    cursor: pointer;
    transition: all .2s;
}
.nivel-filter-tabs button.active-tab {
    border-color: var(--adm-primary);
    background: var(--adm-primary);
    color: #fff;
}

/* ── Responsive ── */
@media (width <= 640px) {
    .admisiones-main { padding: 24px 16px 60px; }
    .asistente-container { padding: 24px 18px; border-radius: 12px; }
    .asistente-steps { margin-bottom: 28px; }
    .step-number { width: 36px; height: 36px; font-size: .8rem; }
    .step-label { display: none; }
    .asistente-steps::before { top: 18px; }
    .form-grid { grid-template-columns: 1fr; }
    .form-grid .full { grid-column: 1; }
    .doc-item { flex-direction: column; align-items: flex-start; }
    .resumen-row { flex-direction: column; gap: 2px; }
    .resumen-label { min-width: 0; }
}
