/* /Layout/AdminLayout.razor.rz.scp.css */
/* ══════════════════════════════════════════════════
   SAVA · Admin layout · sidebar verde + topbar limpio
   ══════════════════════════════════════════════════ */

.admin-layout[b-zgzkszeklf] {
    display: grid;
    grid-template-columns: 264px 1fr;
    min-height: 100vh;
    background: var(--bg-admin);
    position: relative;
}

/* Backdrop oculto en desktop, activado en mobile cuando _sidebarOpen */
.admin-sidebar-backdrop[b-zgzkszeklf] {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(28, 25, 23, 0.5);
    -webkit-backdrop-filter: blur(4px);
            backdrop-filter: blur(4px);
    z-index: 40;
    opacity: 0;
    pointer-events: none;
    transition: opacity 220ms ease-out;
}

/* ──────────────────────────────
   SIDEBAR
   ────────────────────────────── */
.admin-sidebar[b-zgzkszeklf] {
    background: var(--color-brand-green);
    color: var(--bg-paper);
    padding: 20px 0;
    display: flex;
    flex-direction: column;
    position: sticky;
    top: 0;
    height: 100vh;
    overflow: hidden;
}

.admin-sidebar__brand[b-zgzkszeklf] {
    padding: 0 20px 20px;
    border-bottom: 1px solid rgba(217, 164, 65, 0.15);
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.admin-sidebar__brand-name[b-zgzkszeklf] {
    font-family: var(--font-display);
    font-size: 16px;
    font-weight: 600;
    color: var(--bg-paper);
    line-height: 1.1;
}

.admin-sidebar__brand-sub[b-zgzkszeklf] {
    font-size: 9px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--color-brand-gold);
    opacity: 0.7;
    font-weight: 600;
    margin-top: 3px;
}

.admin-sidebar__scroll[b-zgzkszeklf] {
    flex: 1;
    overflow-y: auto;
    padding: 0 12px;
    display: block;
}

.admin-sidebar__scroll[b-zgzkszeklf]::-webkit-scrollbar {
    width: 6px;
}

.admin-sidebar__scroll[b-zgzkszeklf]::-webkit-scrollbar-track {
    background: transparent;
}

.admin-sidebar__scroll[b-zgzkszeklf]::-webkit-scrollbar-thumb {
    background: rgba(217, 164, 65, 0.2);
    border-radius: 3px;
}

.admin-sidebar__group[b-zgzkszeklf] {
    margin-bottom: 20px;
}

.admin-sidebar__group-head[b-zgzkszeklf] {
    font-size: 10px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--color-brand-gold);
    opacity: 0.55;
    font-weight: 600;
    padding: 8px 12px 6px;
}

.admin-sidebar__item[b-zgzkszeklf] {
    width: 100%;
    padding: 9px 12px;
    display: flex;
    align-items: center;
    gap: 12px;
    background: transparent;
    border-radius: 6px;
    color: rgba(251, 247, 238, 0.78);
    font-size: 13.5px;
    font-weight: 500;
    text-align: left;
    position: relative;
    transition: all 140ms ease-out;
    margin-bottom: 2px;
    text-decoration: none;
}

.admin-sidebar__item:hover[b-zgzkszeklf] {
    background: rgba(255, 255, 255, 0.05);
    color: var(--bg-paper);
}

.admin-sidebar__item.is-active[b-zgzkszeklf] {
    background: var(--color-brand-green-mid);
    color: var(--bg-paper);
}

.admin-sidebar__active-bar[b-zgzkszeklf] {
    position: absolute;
    left: -12px;
    top: 6px;
    bottom: 6px;
    width: 3px;
    background: var(--color-brand-gold);
    border-radius: 2px;
}

.admin-sidebar__item-label[b-zgzkszeklf] {
    flex: 1;
}

.admin-sidebar__item-badge[b-zgzkszeklf] {
    background: var(--color-brand-gold);
    color: var(--color-brand-green);
    font-size: 10px;
    font-weight: 700;
    padding: 2px 6px;
    border-radius: 99px;
}

.admin-sidebar__footer[b-zgzkszeklf] {
    border-top: 1px solid rgba(217, 164, 65, 0.15);
    padding: 16px 20px;
    display: flex;
    align-items: center;
    gap: 12px;
}

.admin-sidebar__avatar[b-zgzkszeklf] {
    width: 36px;
    height: 36px;
    border-radius: 99px;
    background: var(--color-brand-gold);
    color: var(--color-brand-green);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 14px;
    flex-shrink: 0;
}

.admin-sidebar__user[b-zgzkszeklf] {
    flex: 1;
    line-height: 1.2;
    min-width: 0;
}

.admin-sidebar__user-name[b-zgzkszeklf] {
    font-size: 13px;
    font-weight: 600;
    color: var(--bg-paper);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.admin-sidebar__user-meta[b-zgzkszeklf] {
    font-size: 11px;
    opacity: 0.6;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.admin-sidebar__logout[b-zgzkszeklf] {
    color: var(--color-brand-gold);
    opacity: 0.7;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 4px;
}

.admin-sidebar__logout:hover[b-zgzkszeklf] {
    opacity: 1;
}

/* ──────────────────────────────
   MAIN
   ────────────────────────────── */
.admin-main[b-zgzkszeklf] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.admin-topbar[b-zgzkszeklf] {
    height: 64px;
    background: var(--bg-surface);
    border-bottom: 1px solid var(--border-soft);
    padding: 0 32px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: sticky;
    top: 0;
    z-index: 10;
}

.admin-topbar__burger[b-zgzkszeklf] {
    display: none;
    width: 40px;
    height: 40px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--border-soft);
    border-radius: 6px;
    background: var(--bg-surface);
    color: var(--text-primary);
    cursor: pointer;
    margin-right: 8px;
    transition: background 160ms ease-out, border-color 160ms ease-out;
}

.admin-topbar__burger:hover[b-zgzkszeklf] {
    background: var(--bg-page);
    border-color: var(--border-medium);
}

.admin-topbar__breadcrumb[b-zgzkszeklf] {
    display: flex;
    align-items: center;
    gap: 14px;
    font-size: 13px;
    color: var(--text-muted);
}

.admin-topbar__current[b-zgzkszeklf] {
    color: var(--text-primary);
    font-weight: 600;
    text-transform: capitalize;
}

.admin-topbar__actions[b-zgzkszeklf] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.admin-topbar__search[b-zgzkszeklf] {
    position: relative;
    margin-right: 12px;
}

.admin-topbar__search > :first-child[b-zgzkszeklf] {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--text-muted);
    pointer-events: none;
}

.admin-topbar__search input[b-zgzkszeklf] {
    width: 320px;
    padding: 8px 12px 8px 36px;
    background: var(--bg-page);
    border: 1px solid var(--border-soft);
    border-radius: 6px;
    font-size: 13px;
    font-family: var(--font-body);
    outline: none;
    color: var(--text-primary);
}

.admin-topbar__search input:focus[b-zgzkszeklf] {
    border-color: var(--color-brand-green);
    box-shadow: var(--shadow-focus);
}

.admin-topbar__icon-btn[b-zgzkszeklf] {
    width: 36px;
    height: 36px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-secondary);
    position: relative;
    background: transparent;
    border: none;
    cursor: pointer;
}

.admin-topbar__icon-btn:hover[b-zgzkszeklf] {
    background: var(--bg-page);
}

.admin-topbar__notif-dot[b-zgzkszeklf] {
    position: absolute;
    top: 4px;
    right: 4px;
    width: 8px;
    height: 8px;
    border-radius: 99px;
    background: var(--color-brand-gold);
    border: 2px solid var(--bg-surface);
}

.admin-topbar__avatar-pill[b-zgzkszeklf] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px 6px 6px;
    border: 1px solid var(--border-soft);
    border-radius: 99px;
    margin-left: 8px;
}

.admin-topbar__avatar[b-zgzkszeklf] {
    width: 28px;
    height: 28px;
    border-radius: 99px;
    background: var(--color-brand-green);
    color: var(--color-brand-gold);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 700;
    font-family: var(--font-display);
}

.admin-topbar__avatar-text[b-zgzkszeklf] {
    font-size: 12px;
    line-height: 1.1;
}

.admin-topbar__avatar-name[b-zgzkszeklf] {
    font-weight: 600;
    color: var(--text-primary);
}

.admin-topbar__avatar-sede[b-zgzkszeklf] {
    color: var(--text-muted);
    font-size: 10.5px;
}

.admin-main__content[b-zgzkszeklf] {
    padding: 32px;
    max-width: 1480px;
    width: 100%;
}

/* ──────────────────────────────
   RESPONSIVE · drawer mobile
   ────────────────────────────── */
@media (max-width: 1024px) {
    .admin-layout[b-zgzkszeklf] {
        grid-template-columns: 1fr;
    }

    .admin-sidebar[b-zgzkszeklf] {
        position: fixed;
        top: 0;
        left: 0;
        width: min(284px, 84vw);
        z-index: 60;
        transform: translateX(-100%);
        transition: transform 280ms cubic-bezier(0.2, 0.7, 0.2, 1);
        box-shadow: 16px 0 48px rgba(28, 25, 23, 0.18);
    }

    .admin-layout.is-sidebar-open .admin-sidebar[b-zgzkszeklf] {
        transform: translateX(0);
    }

    .admin-sidebar-backdrop[b-zgzkszeklf] {
        display: block;
    }

    .admin-layout.is-sidebar-open .admin-sidebar-backdrop[b-zgzkszeklf] {
        opacity: 1;
        pointer-events: auto;
    }

    .admin-topbar__burger[b-zgzkszeklf] {
        display: inline-flex;
    }
}

@media (max-width: 768px) {
    .admin-topbar[b-zgzkszeklf] {
        padding: 0 16px;
    }
    .admin-topbar__search[b-zgzkszeklf] {
        display: none;
    }
    .admin-topbar__avatar-text[b-zgzkszeklf] {
        display: none;
    }
    .admin-topbar__avatar-pill[b-zgzkszeklf] {
        padding: 4px 8px 4px 4px;
    }
    .admin-main__content[b-zgzkszeklf] {
        padding: 20px 16px;
    }
}

@media (max-width: 480px) {
    .admin-topbar__breadcrumb > :first-child[b-zgzkszeklf] {
        display: none;
    }
    .admin-main__content[b-zgzkszeklf] {
        padding: 16px 12px;
    }
}
/* /Layout/MainLayout.razor.rz.scp.css */
/* MainLayout - Clean layout without sidebar */
html[b-x0m3s77o4s], body[b-x0m3s77o4s] {
    margin: 0;
    padding: 0;
    min-height: 100vh;
}

.page[b-x0m3s77o4s] {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

main[b-x0m3s77o4s] {
    flex: 1;
}
/* /Layout/NavMenu.razor.rz.scp.css */
.navbar-toggler[b-0fv6gn15ak] {
    background-color: rgba(255, 255, 255, 0.1);
}

.top-row[b-0fv6gn15ak] {
    min-height: 3.5rem;
    background-color: rgba(0,0,0,0.4);
}

.navbar-brand[b-0fv6gn15ak] {
    font-size: 1.1rem;
}

.bi[b-0fv6gn15ak] {
    display: inline-block;
    position: relative;
    width: 1.25rem;
    height: 1.25rem;
    margin-right: 0.75rem;
    top: -1px;
    background-size: cover;
}

.bi-house-door-fill-nav-menu[b-0fv6gn15ak] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E");
}

.bi-plus-square-fill-nav-menu[b-0fv6gn15ak] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-plus-square-fill' viewBox='0 0 16 16'%3E%3Cpath d='M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm6.5 4.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3a.5.5 0 0 1 1 0z'/%3E%3C/svg%3E");
}

.bi-list-nested-nav-menu[b-0fv6gn15ak] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-list-nested' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4.5 11.5A.5.5 0 0 1 5 11h10a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 3 7h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 1 3h10a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5z'/%3E%3C/svg%3E");
}

.nav-item[b-0fv6gn15ak] {
    font-size: 0.9rem;
    padding-bottom: 0.5rem;
}

    .nav-item:first-of-type[b-0fv6gn15ak] {
        padding-top: 1rem;
    }

    .nav-item:last-of-type[b-0fv6gn15ak] {
        padding-bottom: 1rem;
    }

    .nav-item[b-0fv6gn15ak]  a {
        color: #d7d7d7;
        border-radius: 4px;
        height: 3rem;
        display: flex;
        align-items: center;
        line-height: 3rem;
    }

.nav-item[b-0fv6gn15ak]  a.active {
    background-color: rgba(255,255,255,0.37);
    color: white;
}

.nav-item[b-0fv6gn15ak]  a:hover {
    background-color: rgba(255,255,255,0.1);
    color: white;
}

@media (min-width: 641px) {
    .navbar-toggler[b-0fv6gn15ak] {
        display: none;
    }

    .collapse[b-0fv6gn15ak] {
        /* Never collapse the sidebar for wide screens */
        display: block;
    }

    .nav-scrollable[b-0fv6gn15ak] {
        /* Allow sidebar to scroll for tall menus */
        height: calc(100vh - 3.5rem);
        overflow-y: auto;
    }
}
/* /Pages/Private/Academico.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Académico (privada) · scoped styles
   ════════════════════════════════════════════════════════════════════
   Configuración del año académico: niveles/grados, bimestres, áreas.
   ════════════════════════════════════════════════════════════════════ */

.academico-root[b-jyp37g70o1] {
    padding: 8px 0 32px;
    max-width: 1320px;
    margin: 0 auto;
}

/* ─────────────────────────────────────
   CARD (genérico flush con header)
   ───────────────────────────────────── */
.academico-card[b-jyp37g70o1] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    padding: 20px 24px;
    box-shadow: var(--shadow-warm-sm);
    margin: 24px 0;
}

.academico-card--flush[b-jyp37g70o1] {
    padding: 0;
    overflow: hidden;
}

.academico-card__head[b-jyp37g70o1] {
    padding: 16px 20px;
    border-bottom: 1px solid var(--border-soft);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
}

.academico-card__title[b-jyp37g70o1] {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.25;
}

/* ─────────────────────────────────────
   TABLA NIVELES / GRADOS
   ───────────────────────────────────── */
.academico-table-wrap[b-jyp37g70o1] {
    overflow-x: auto;
}

.academico-table[b-jyp37g70o1] {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.academico-table thead th[b-jyp37g70o1] {
    background: var(--bg-page);
    text-transform: uppercase;
    font-size: 11px;
    letter-spacing: 0.1em;
    color: var(--text-muted);
    font-weight: 600;
    padding: 12px 20px;
    text-align: left;
    border-bottom: 1px solid var(--border-soft);
}

.academico-table tbody td[b-jyp37g70o1] {
    padding: 14px 20px;
    border-bottom: 1px solid var(--border-soft);
    color: var(--text-secondary);
}

.academico-table tbody tr:last-child td[b-jyp37g70o1] {
    border-bottom: none;
}

.academico-table tbody tr:hover[b-jyp37g70o1] {
    background: var(--bg-page);
}

.academico-table__strong[b-jyp37g70o1] {
    color: var(--text-primary);
    font-weight: 600;
}

.academico-table__muted[b-jyp37g70o1] {
    color: var(--text-muted);
}

/* ─────────────────────────────────────
   SECTION BLOCK (eyebrow + title + grid)
   ───────────────────────────────────── */
.academico-section-block[b-jyp37g70o1] {
    margin: 32px 0;
}

.academico-section-block__head[b-jyp37g70o1] {
    margin-bottom: 16px;
}

.academico-section-block__eyebrow[b-jyp37g70o1] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
    margin-bottom: 4px;
}

.academico-section-block__title[b-jyp37g70o1] {
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.25;
}

/* ─────────────────────────────────────
   BIMESTRES (grid 4 cols)
   ───────────────────────────────────── */
.academico-bimestres[b-jyp37g70o1] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

.academico-bimestre[b-jyp37g70o1] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    overflow: hidden;
    box-shadow: var(--shadow-warm-sm);
    display: flex;
    flex-direction: column;
}

.academico-bimestre__stripe[b-jyp37g70o1] {
    height: 4px;
    width: 100%;
}

.academico-bimestre__body[b-jyp37g70o1] {
    padding: 18px 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.academico-bimestre__head[b-jyp37g70o1] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
}

.academico-bimestre__title[b-jyp37g70o1] {
    font-family: var(--font-display);
    font-size: 16px;
    font-weight: 600;
    color: var(--text-primary);
}

.academico-bimestre__dates[b-jyp37g70o1] {
    font-size: 13px;
    color: var(--text-secondary);
}

.academico-bimestre__bar[b-jyp37g70o1] {
    width: 100%;
    height: 6px;
    background: var(--bg-page);
    border-radius: 99px;
    overflow: hidden;
}

.academico-bimestre__fill[b-jyp37g70o1] {
    height: 100%;
    border-radius: 99px;
    transition: width 0.6s ease-out;
}

.academico-bimestre__meta[b-jyp37g70o1] {
    font-size: 11px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

/* ─────────────────────────────────────
   ÁREAS CURRICULARES (grid 4 cols)
   ───────────────────────────────────── */
.academico-areas[b-jyp37g70o1] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
}

.academico-area[b-jyp37g70o1] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    padding: 18px 18px 16px;
    box-shadow: var(--shadow-warm-sm);
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.academico-area__icon[b-jyp37g70o1] {
    width: 36px;
    height: 36px;
    border-radius: var(--radius-md);
    background: var(--color-brand-gold-soft);
    color: var(--color-brand-gold);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 4px;
}

.academico-area__name[b-jyp37g70o1] {
    font-family: var(--font-display);
    font-size: 15px;
    font-weight: 600;
    color: var(--text-primary);
}

.academico-area__meta[b-jyp37g70o1] {
    font-size: 12px;
    color: var(--text-muted);
    line-height: 1.4;
}

.academico-area__badge[b-jyp37g70o1] {
    margin-top: auto;
    padding-top: 6px;
}

/* ─────────────────────────────────────
   LEGACY container (hidden)
   ───────────────────────────────────── */
.academico-legacy[hidden][b-jyp37g70o1] {
    display: none;
}

/* ─────────────────────────────────────
   RESPONSIVE
   ───────────────────────────────────── */
.academico-table-wrap[b-jyp37g70o1] {
    -webkit-overflow-scrolling: touch;
    overflow-y: hidden;
}

@media (max-width: 1024px) {
    .academico-bimestres[b-jyp37g70o1],
    .academico-areas[b-jyp37g70o1] {
        grid-template-columns: repeat(2, 1fr);
    }

    .academico-card[b-jyp37g70o1] {
        padding: 18px 20px;
    }
}

@media (max-width: 768px) {
    .academico-card__head[b-jyp37g70o1] {
        padding: 14px 16px;
        flex-wrap: wrap;
    }

    .academico-section-block__title[b-jyp37g70o1] {
        font-size: 18px;
    }

    .academico-table[b-jyp37g70o1] {
        min-width: 520px;
    }
}

@media (max-width: 640px) {
    .academico-bimestres[b-jyp37g70o1],
    .academico-areas[b-jyp37g70o1] {
        grid-template-columns: 1fr;
    }

    .academico-table thead th[b-jyp37g70o1],
    .academico-table tbody td[b-jyp37g70o1] {
        padding: 10px 14px;
    }
}

@media (max-width: 480px) {
    .academico-card[b-jyp37g70o1] {
        padding: 16px;
    }

    .academico-card__title[b-jyp37g70o1] {
        font-size: 16px;
    }

    .academico-section-block[b-jyp37g70o1] {
        margin: 24px 0;
    }
}
/* /Pages/Private/AcuerdosPago.razor.rz.scp.css */
/* ============================================
   AcuerdosPago · Tesorería · BEM scoped
   ============================================ */

.acuerdos-root[b-zv2nmh2dxv] {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

/* ── KPI grid ── */
.acuerdos-stats[b-zv2nmh2dxv] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

/* ── Card principal ── */
.acuerdos-card[b-zv2nmh2dxv] {
    padding: 0;
    overflow: hidden;
}

.acuerdos-card__head[b-zv2nmh2dxv] {
    padding: 16px 20px;
    border-bottom: 1px solid var(--border-soft);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.acuerdos-card__title[b-zv2nmh2dxv] {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
    color: var(--color-brand-green);
    margin: 0;
    line-height: 1.2;
}

.acuerdos-card__sub[b-zv2nmh2dxv] {
    font-size: 12px;
    color: var(--text-muted);
    margin: 4px 0 0;
    letter-spacing: 0.02em;
}

.acuerdos-card__filters[b-zv2nmh2dxv] {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

/* ── Tabs/Filtros ── */
.acuerdos-tab[b-zv2nmh2dxv] {
    background: transparent;
    border: 1px solid var(--border-soft);
    border-radius: 99px;
    padding: 6px 14px;
    font-size: 12px;
    font-weight: 600;
    color: var(--text-muted);
    cursor: pointer;
    transition: all 160ms ease;
    font-family: inherit;
}
.acuerdos-tab:hover[b-zv2nmh2dxv] { color: var(--color-brand-green); border-color: var(--color-brand-green); }

.acuerdos-tab.is-active[b-zv2nmh2dxv] {
    color: var(--bg-paper);
    background: var(--color-brand-green);
    border-color: var(--color-brand-green);
}

.acuerdos-tab--danger.is-active[b-zv2nmh2dxv] {
    background: var(--state-danger);
    border-color: var(--state-danger);
}

/* ── Search inline ── */
.acuerdos-search[b-zv2nmh2dxv] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-paper);
    min-width: 220px;
}
.acuerdos-search input[b-zv2nmh2dxv] {
    flex: 1;
    border: none;
    outline: none;
    background: transparent;
    font-size: 13px;
    color: var(--color-brand-green);
    font-family: inherit;
}
.acuerdos-search input[b-zv2nmh2dxv]::placeholder { color: var(--text-muted); }

/* ── Tabla ── */
.acuerdos-table-wrap[b-zv2nmh2dxv] {
    overflow-x: auto;
}

.acuerdos-table[b-zv2nmh2dxv] {
    width: 100%;
    border-collapse: collapse;
}

.acuerdos-th[b-zv2nmh2dxv] {
    padding: 12px 18px;
    text-align: left;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    background: var(--bg-page);
    border-bottom: 1px solid var(--border-soft);
}
.acuerdos-th--right[b-zv2nmh2dxv]  { text-align: right; }
.acuerdos-th--center[b-zv2nmh2dxv] { text-align: center; }

.acuerdos-row[b-zv2nmh2dxv] {
    border-top: 1px solid var(--border-soft);
    transition: background-color 140ms ease;
}
.acuerdos-row:hover[b-zv2nmh2dxv] { background: var(--bg-paper); }

.acuerdos-td[b-zv2nmh2dxv] {
    padding: 14px 18px;
    font-size: 13px;
    color: var(--color-brand-green);
    vertical-align: middle;
}
.acuerdos-td--right[b-zv2nmh2dxv]   { text-align: right; }
.acuerdos-td--center[b-zv2nmh2dxv]  { text-align: center; }
.acuerdos-td--bold[b-zv2nmh2dxv]    { font-weight: 600; }

/* ── Familia (avatar + apellido) ── */
.acuerdos-family[b-zv2nmh2dxv] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.acuerdos-family__avatar[b-zv2nmh2dxv] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--color-brand-gold-soft);
    color: var(--color-brand-gold);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.acuerdos-family__name[b-zv2nmh2dxv] {
    font-weight: 600;
    color: var(--color-brand-green);
}

/* ── Botón ghost compacto ── */
.btn-ghost--sm[b-zv2nmh2dxv] {
    padding: 6px 12px;
    font-size: 12px;
}

/* ── Estado ── */
.acuerdos-state[b-zv2nmh2dxv] {
    padding: 56px 24px;
    text-align: center;
    color: var(--text-muted);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

/* ── Modal ── */
.acuerdos-modal-overlay[b-zv2nmh2dxv] {
    position: fixed;
    inset: 0;
    background: rgba(15, 31, 77, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    padding: 20px;
    animation: acuerdos-overlay-in-b-zv2nmh2dxv 200ms ease;
}

@keyframes acuerdos-overlay-in-b-zv2nmh2dxv {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.acuerdos-modal[b-zv2nmh2dxv] {
    background: var(--bg-paper);
    border-radius: var(--radius-md);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.22);
    max-height: 90vh;
    overflow-y: auto;
    width: 100%;
    animation: acuerdos-modal-in-b-zv2nmh2dxv 220ms cubic-bezier(.2,.7,.2,1);
}
.acuerdos-modal--sm[b-zv2nmh2dxv] { max-width: 480px; }
.acuerdos-modal--md[b-zv2nmh2dxv] { max-width: 720px; }
.acuerdos-modal--lg[b-zv2nmh2dxv] { max-width: 960px; }

@keyframes acuerdos-modal-in-b-zv2nmh2dxv {
    from { transform: translateY(16px); opacity: 0; }
    to   { transform: translateY(0); opacity: 1; }
}

.acuerdos-modal__head[b-zv2nmh2dxv] {
    padding: 22px 26px;
    border-bottom: 1px solid var(--border-soft);
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
}
.acuerdos-modal__head--pay[b-zv2nmh2dxv] {
    background: linear-gradient(135deg, var(--color-brand-green), var(--color-brand-blue));
    color: var(--bg-paper);
    border-bottom: none;
}

.acuerdos-modal__eyebrow[b-zv2nmh2dxv] {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--color-brand-red);
    margin-bottom: 6px;
}
.acuerdos-modal__eyebrow--cream[b-zv2nmh2dxv] { color: var(--color-brand-gold); }

.acuerdos-modal__title[b-zv2nmh2dxv] {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 600;
    color: var(--color-brand-green);
    margin: 0;
    line-height: 1.2;
}
.acuerdos-modal__title--cream[b-zv2nmh2dxv] { color: var(--bg-paper); }

.acuerdos-modal__sub[b-zv2nmh2dxv] {
    font-size: 12px;
    color: var(--text-muted);
    margin: 4px 0 0;
}

.acuerdos-modal__close[b-zv2nmh2dxv] {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    border: 1px solid var(--border-soft);
    background: var(--bg-paper);
    color: var(--color-brand-green);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background-color 160ms ease;
}
.acuerdos-modal__close:hover[b-zv2nmh2dxv] { background: var(--bg-page); }
.acuerdos-modal__close--cream[b-zv2nmh2dxv] {
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.2);
    color: var(--bg-paper);
}
.acuerdos-modal__close--cream:hover[b-zv2nmh2dxv] { background: rgba(255, 255, 255, 0.22); }

.acuerdos-modal__footer[b-zv2nmh2dxv] {
    padding: 18px 26px;
    border-top: 1px solid var(--border-soft);
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

/* ── Summary ── */
.acuerdos-summary[b-zv2nmh2dxv] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
    padding: 22px 26px;
}

.acuerdos-summary__label[b-zv2nmh2dxv] {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    margin-bottom: 6px;
}

.acuerdos-summary__value[b-zv2nmh2dxv] {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 600;
    color: var(--color-brand-green);
    line-height: 1;
}
.acuerdos-summary__value--warn[b-zv2nmh2dxv] { color: var(--state-warning); }

/* ── Progress ── */
.acuerdos-progress[b-zv2nmh2dxv] {
    display: flex;
    align-items: center;
    gap: 10px;
}
.acuerdos-progress--lg[b-zv2nmh2dxv] { margin: 0 26px 22px; }

.acuerdos-progress__track[b-zv2nmh2dxv] {
    flex: 1;
    height: 8px;
    background: var(--bg-page);
    border-radius: 99px;
    overflow: hidden;
}

.acuerdos-progress__fill[b-zv2nmh2dxv] {
    height: 100%;
    background: var(--color-brand-gold);
    border-radius: 99px;
    transition: width 800ms cubic-bezier(.2,.7,.2,1);
}

/* ── Desc ── */
.acuerdos-detail-desc[b-zv2nmh2dxv] {
    padding: 0 26px 18px;
}
.acuerdos-detail-desc__label[b-zv2nmh2dxv] {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    display: block;
    margin-bottom: 6px;
}
.acuerdos-detail-desc p[b-zv2nmh2dxv] {
    margin: 0;
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.55;
}

/* ── Installments dots ── */
.acuerdos-installments[b-zv2nmh2dxv] {
    padding: 0 26px 22px;
    border-top: 1px solid var(--border-soft);
    padding-top: 22px;
}

.acuerdos-installments__title[b-zv2nmh2dxv] {
    font-family: var(--font-display);
    font-size: 14px;
    font-weight: 600;
    color: var(--color-brand-green);
    margin: 0 0 14px;
}

.acuerdos-installments__grid[b-zv2nmh2dxv] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(40px, 1fr));
    gap: 8px;
}

.acuerdos-installment[b-zv2nmh2dxv] {
    width: 40px;
    height: 40px;
    border-radius: 8px;
    background: var(--bg-page);
    border: 1px solid var(--border-soft);
    color: var(--text-muted);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}
.acuerdos-installment.is-paid[b-zv2nmh2dxv] {
    background: var(--color-brand-green);
    border-color: var(--color-brand-green);
    color: var(--bg-paper);
}

/* ── Pay summary ── */
.acuerdos-pay-summary[b-zv2nmh2dxv] {
    padding: 18px 26px;
    border-bottom: 1px solid var(--border-soft);
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.acuerdos-pay-summary__row[b-zv2nmh2dxv] {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    color: var(--text-secondary);
    padding: 4px 0;
}
.acuerdos-pay-summary__value[b-zv2nmh2dxv] {
    font-weight: 600;
    color: var(--color-brand-green);
}
.acuerdos-pay-summary__row--highlight[b-zv2nmh2dxv] {
    padding: 10px 12px;
    background: var(--color-brand-gold-soft);
    border-radius: 8px;
    margin-top: 6px;
    font-weight: 700;
}

/* ── Form ── */
.acuerdos-form[b-zv2nmh2dxv] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    padding: 22px 26px;
}

.acuerdos-form__group[b-zv2nmh2dxv] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.acuerdos-form__group--full[b-zv2nmh2dxv] {
    grid-column: 1 / -1;
}

.acuerdos-form__group label[b-zv2nmh2dxv] {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--text-muted);
}

.acuerdos-form__group input[b-zv2nmh2dxv],
.acuerdos-form__group select[b-zv2nmh2dxv],
.acuerdos-form__group textarea[b-zv2nmh2dxv] {
    padding: 10px 14px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-paper);
    color: var(--color-brand-green);
    font-size: 13px;
    font-family: inherit;
    transition: border-color 160ms ease, box-shadow 160ms ease;
}

.acuerdos-form__group input:focus[b-zv2nmh2dxv],
.acuerdos-form__group select:focus[b-zv2nmh2dxv],
.acuerdos-form__group textarea:focus[b-zv2nmh2dxv] {
    outline: none;
    border-color: var(--color-brand-gold);
    box-shadow: 0 0 0 3px var(--color-brand-gold-soft);
}

.acuerdos-form__preview[b-zv2nmh2dxv] {
    grid-column: 1 / -1;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 16px;
    background: var(--bg-page);
    border-radius: var(--radius-md);
    border: 1px dashed var(--border-soft);
}

.acuerdos-form__preview-label[b-zv2nmh2dxv] {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--text-muted);
    font-weight: 600;
}

.acuerdos-form__preview-value[b-zv2nmh2dxv] {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
    color: var(--color-brand-green);
}

.acuerdos-bulk-body[b-zv2nmh2dxv] {
    padding: 22px 26px;
    font-size: 14px;
    color: var(--text-secondary);
}
.acuerdos-bulk-body p[b-zv2nmh2dxv] { margin: 0 0 8px; line-height: 1.55; }
.acuerdos-bulk-body__hint[b-zv2nmh2dxv] { font-size: 12px; color: var(--text-muted); }

.acuerdos-btn--danger[b-zv2nmh2dxv] {
    background: var(--state-danger);
    border-color: var(--state-danger);
    color: var(--bg-paper);
}

/* ── Spinner ── */
.spinner-sm[b-zv2nmh2dxv] {
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255,255,255,0.4);
    border-top-color: currentColor;
    border-radius: 50%;
    display: inline-block;
    margin-right: 6px;
    animation: acuerdos-spin-b-zv2nmh2dxv 700ms linear infinite;
}
.spinner[b-zv2nmh2dxv] {
    width: 36px;
    height: 36px;
    border: 3px solid var(--border-soft);
    border-top-color: var(--color-brand-red);
    border-radius: 50%;
    animation: acuerdos-spin-b-zv2nmh2dxv 800ms linear infinite;
}
@keyframes acuerdos-spin-b-zv2nmh2dxv { to { transform: rotate(360deg); } }

/* ── Responsive ── */
.acuerdos-table-wrap[b-zv2nmh2dxv] {
    -webkit-overflow-scrolling: touch;
    overflow-y: hidden;
}

@media (max-width: 1200px) {
    .acuerdos-stats[b-zv2nmh2dxv] { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 1100px) {
    .acuerdos-stats[b-zv2nmh2dxv]   { grid-template-columns: 1fr; }
    .acuerdos-summary[b-zv2nmh2dxv] { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 1024px) {
    .acuerdos-card__filters[b-zv2nmh2dxv] { flex-wrap: wrap; width: 100%; }
}
@media (max-width: 768px) {
    .acuerdos-table[b-zv2nmh2dxv] { min-width: 720px; }
    .acuerdos-search[b-zv2nmh2dxv] { flex: 1; min-width: 0; }
}
@media (max-width: 720px) {
    .acuerdos-form[b-zv2nmh2dxv] { grid-template-columns: 1fr; }
    .acuerdos-card__head[b-zv2nmh2dxv] { flex-direction: column; align-items: stretch; }
    .acuerdos-search[b-zv2nmh2dxv] { min-width: 0; width: 100%; }
}
@media (max-width: 480px) {
    .acuerdos-modal[b-zv2nmh2dxv] { max-width: 92vw; }
    .acuerdos-modal--sm[b-zv2nmh2dxv],
    .acuerdos-modal--md[b-zv2nmh2dxv],
    .acuerdos-modal--lg[b-zv2nmh2dxv] { max-width: 92vw; }
    .acuerdos-modal__head[b-zv2nmh2dxv],
    .acuerdos-modal__footer[b-zv2nmh2dxv],
    .acuerdos-form[b-zv2nmh2dxv],
    .acuerdos-summary[b-zv2nmh2dxv],
    .acuerdos-pay-summary[b-zv2nmh2dxv],
    .acuerdos-bulk-body[b-zv2nmh2dxv],
    .acuerdos-installments[b-zv2nmh2dxv],
    .acuerdos-detail-desc[b-zv2nmh2dxv] { padding-left: 16px; padding-right: 16px; }
    .acuerdos-modal__footer[b-zv2nmh2dxv] { flex-direction: column-reverse; }
    .acuerdos-modal__footer > *[b-zv2nmh2dxv] { width: 100%; justify-content: center; }
    .acuerdos-summary[b-zv2nmh2dxv] { grid-template-columns: 1fr; }
    .acuerdos-progress--lg[b-zv2nmh2dxv] { margin: 0 16px 18px; }
    .acuerdos-th[b-zv2nmh2dxv], .acuerdos-td[b-zv2nmh2dxv] { padding: 10px 12px; }
    .acuerdos-installments__grid[b-zv2nmh2dxv] { grid-template-columns: repeat(auto-fill, minmax(36px, 1fr)); }
}
/* /Pages/Private/AnoAcademico.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Año académico (privada) · scoped styles
   ════════════════════════════════════════════════════════════════════
   Gestión del año vigente: KPIs, cronograma timeline, RDR.
   ════════════════════════════════════════════════════════════════════ */

.anoacad-root[b-lzas3ogv8g] {
    padding: 8px 0 32px;
    max-width: 1320px;
    margin: 0 auto;
}

/* ─────────────────────────────────────
   SELECT (header actions)
   ───────────────────────────────────── */
.anoacad-select[b-lzas3ogv8g] {
    padding: 8px 12px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-surface);
    font-size: 13px;
    font-family: var(--font-body);
    font-weight: 500;
    color: var(--text-primary);
    outline: none;
    cursor: pointer;
}

.anoacad-select:focus[b-lzas3ogv8g] {
    box-shadow: var(--shadow-focus);
}

/* ─────────────────────────────────────
   STATS GRID · 4 KPIs
   ───────────────────────────────────── */
.anoacad-stats[b-lzas3ogv8g] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin: 24px 0 32px;
}

.anoacad-stats > *[b-lzas3ogv8g] {
    height: 100%;
}

/* ─────────────────────────────────────
   CARD (genérico + flush)
   ───────────────────────────────────── */
.anoacad-card[b-lzas3ogv8g] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    padding: 28px;
    box-shadow: var(--shadow-warm-sm);
    margin-bottom: 24px;
}

.anoacad-card--flush[b-lzas3ogv8g] {
    padding: 0;
    overflow: hidden;
}

.anoacad-card__head[b-lzas3ogv8g] {
    padding: 16px 20px;
    border-bottom: 1px solid var(--border-soft);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
}

.anoacad-card__eyebrow[b-lzas3ogv8g] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
    margin-bottom: 4px;
}

.anoacad-card__title[b-lzas3ogv8g] {
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.25;
    margin-bottom: 24px;
}

.anoacad-card__title--sm[b-lzas3ogv8g] {
    font-size: 18px;
    margin-bottom: 0;
}

/* ─────────────────────────────────────
   TIMELINE
   ───────────────────────────────────── */
.anoacad-timeline[b-lzas3ogv8g] {
    position: relative;
    padding-left: 4px;
    margin-top: 8px;
}

.anoacad-timeline[b-lzas3ogv8g]::before {
    content: "";
    position: absolute;
    left: 86px;
    top: 12px;
    bottom: 12px;
    width: 2px;
    background: var(--border-soft);
}

.anoacad-timeline__row[b-lzas3ogv8g] {
    display: grid;
    grid-template-columns: 80px 14px 1fr;
    align-items: start;
    gap: 12px;
    padding: 10px 0;
    position: relative;
}

.anoacad-timeline__date[b-lzas3ogv8g] {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding-top: 2px;
    text-align: right;
}

.anoacad-timeline__dot[b-lzas3ogv8g] {
    width: 14px;
    height: 14px;
    border-radius: 99px;
    margin-top: 4px;
    box-shadow: 0 0 0 4px var(--bg-page);
    position: relative;
    z-index: 1;
}

.anoacad-timeline__body[b-lzas3ogv8g] {
    padding-top: 0;
}

.anoacad-timeline__title[b-lzas3ogv8g] {
    font-family: var(--font-display);
    font-size: 15px;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.3;
}

.anoacad-timeline__caption[b-lzas3ogv8g] {
    font-size: 13px;
    color: var(--text-muted);
    margin-top: 3px;
    line-height: 1.4;
}

/* ─────────────────────────────────────
   RDR LIST
   ───────────────────────────────────── */
.anoacad-rdrs[b-lzas3ogv8g] {
    padding: 4px 0;
}

.anoacad-rdr[b-lzas3ogv8g] {
    display: grid;
    grid-template-columns: 88px 1fr auto;
    align-items: start;
    gap: 16px;
    padding: 16px 20px;
}

.anoacad-rdr--divided[b-lzas3ogv8g] {
    border-top: 1px solid var(--border-soft);
}

.anoacad-rdr__date[b-lzas3ogv8g] {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    background: var(--bg-page);
    border-radius: var(--radius-sm);
    padding: 6px 10px;
    text-align: center;
}

.anoacad-rdr__code[b-lzas3ogv8g] {
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
}

.anoacad-rdr__title[b-lzas3ogv8g] {
    font-family: var(--font-display);
    font-size: 15px;
    font-weight: 600;
    color: var(--text-primary);
    margin-top: 2px;
    line-height: 1.3;
}

.anoacad-rdr__caption[b-lzas3ogv8g] {
    font-size: 13px;
    color: var(--text-muted);
    margin-top: 4px;
    line-height: 1.4;
}

/* ─────────────────────────────────────
   LEGACY container (hidden)
   ───────────────────────────────────── */
.anoacad-legacy[hidden][b-lzas3ogv8g] {
    display: none;
}

/* ─────────────────────────────────────
   RESPONSIVE
   ───────────────────────────────────── */
@media (max-width: 1024px) {
    .anoacad-stats[b-lzas3ogv8g] {
        grid-template-columns: repeat(2, 1fr);
    }

    .anoacad-card[b-lzas3ogv8g] {
        padding: 22px;
    }
}

@media (max-width: 768px) {
    .anoacad-card[b-lzas3ogv8g] {
        padding: 18px;
    }

    .anoacad-card__title[b-lzas3ogv8g] {
        font-size: 18px;
        margin-bottom: 18px;
    }

    .anoacad-card__head[b-lzas3ogv8g] {
        padding: 14px 16px;
    }
}

@media (max-width: 640px) {
    .anoacad-stats[b-lzas3ogv8g] {
        grid-template-columns: 1fr;
    }

    .anoacad-timeline[b-lzas3ogv8g]::before {
        left: 70px;
    }

    .anoacad-timeline__row[b-lzas3ogv8g] {
        grid-template-columns: 64px 14px 1fr;
        gap: 10px;
    }

    .anoacad-rdr[b-lzas3ogv8g] {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .anoacad-rdr__date[b-lzas3ogv8g] {
        justify-self: start;
    }
}

@media (max-width: 480px) {
    .anoacad-card[b-lzas3ogv8g] {
        padding: 14px;
    }

    .anoacad-select[b-lzas3ogv8g] {
        width: 100%;
    }

    .anoacad-timeline[b-lzas3ogv8g]::before {
        display: none;
    }

    .anoacad-timeline__row[b-lzas3ogv8g] {
        grid-template-columns: 1fr;
        gap: 6px;
        padding-left: 4px;
        border-left: 2px solid var(--border-soft);
    }

    .anoacad-timeline__dot[b-lzas3ogv8g] {
        display: none;
    }

    .anoacad-timeline__date[b-lzas3ogv8g] {
        text-align: left;
    }
}
/* /Pages/Private/Asistencia.razor.rz.scp.css */
/* ============================================
   ASISTENCIA PAGE
   ============================================ */

/* ============================================
   BOTON PANEL RELOJ BIOMETRICO
   ============================================ */
.btn-clock-panel[b-uwc7ybhf0z] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    background: var(--color-primary);
    color: white;
    border: none;
    border-radius: 8px;
    font-size: 0.875rem;
    font-weight: 500;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.2s ease;
}

.btn-clock-panel:hover[b-uwc7ybhf0z] {
    background: var(--color-primary-dark);
    color: white;
    text-decoration: none;
}

.btn-clock-panel svg[b-uwc7ybhf0z] {
    width: 18px;
    height: 18px;
}

/* ============================================
   TABS
   ============================================ */
.tabs-container[b-uwc7ybhf0z] {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 1.5rem;
    background: #f7fafc;
    padding: 0.5rem;
    border-radius: 12px;
}

.tab[b-uwc7ybhf0z] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.25rem;
    border: none;
    background: transparent;
    color: #718096;
    font-size: 0.95rem;
    font-weight: 500;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.2s ease;
}

.tab:hover[b-uwc7ybhf0z] {
    background: #edf2f7;
    color: #4a5568;
}

.tab.active[b-uwc7ybhf0z] {
    background: white;
    color: #1a365d;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.tab svg[b-uwc7ybhf0z] {
    width: 20px;
    height: 20px;
}

/* ============================================
   STATS GRID
   ============================================ */
.stats-grid[b-uwc7ybhf0z] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.stat-card[b-uwc7ybhf0z] {
    background: white;
    border-radius: 12px;
    padding: 1.25rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
    border-left: 4px solid;
}

.stat-card.total[b-uwc7ybhf0z] { border-left-color: #4299e1; }
.stat-card.presente[b-uwc7ybhf0z] { border-left-color: #48bb78; }
.stat-card.tarde[b-uwc7ybhf0z] { border-left-color: #ed8936; }
.stat-card.falta[b-uwc7ybhf0z] { border-left-color: #f56565; }

.stat-icon[b-uwc7ybhf0z] {
    width: 48px;
    height: 48px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.stat-card.total .stat-icon[b-uwc7ybhf0z] { background: #ebf8ff; color: #4299e1; }
.stat-card.presente .stat-icon[b-uwc7ybhf0z] { background: #f0fff4; color: #48bb78; }
.stat-card.tarde .stat-icon[b-uwc7ybhf0z] { background: #fffaf0; color: #ed8936; }
.stat-card.falta .stat-icon[b-uwc7ybhf0z] { background: #fff5f5; color: #f56565; }

.stat-icon svg[b-uwc7ybhf0z] {
    width: 24px;
    height: 24px;
}

.stat-info[b-uwc7ybhf0z] {
    display: flex;
    flex-direction: column;
}

.stat-value[b-uwc7ybhf0z] {
    font-size: 1.5rem;
    font-weight: 700;
    color: #1a365d;
}

.stat-label[b-uwc7ybhf0z] {
    font-size: 0.85rem;
    color: #718096;
}

/* ============================================
   FILTERS
   ============================================ */
.filters-container[b-uwc7ybhf0z] {
    background: white;
    border-radius: 12px;
    padding: 1.25rem;
    margin-bottom: 1.5rem;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

.filters-row[b-uwc7ybhf0z] {
    display: flex;
    gap: 1rem;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}

.filter-group[b-uwc7ybhf0z] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-width: 150px;
}

.filter-group label[b-uwc7ybhf0z] {
    font-size: 0.85rem;
    color: #4a5568;
    font-weight: 500;
}

.form-select[b-uwc7ybhf0z], .form-input[b-uwc7ybhf0z] {
    padding: 0.6rem 0.9rem;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    font-size: 0.95rem;
    color: #2d3748;
    background: white;
    transition: border-color 0.2s ease;
}

.form-select:focus[b-uwc7ybhf0z], .form-input:focus[b-uwc7ybhf0z] {
    outline: none;
    border-color: #4299e1;
    box-shadow: 0 0 0 3px rgba(66, 153, 225, 0.15);
}

.search-row[b-uwc7ybhf0z] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
}

.search-box[b-uwc7ybhf0z] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.6rem 1rem;
    background: #f7fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    flex: 1;
    max-width: 400px;
}

.search-box svg[b-uwc7ybhf0z] {
    width: 20px;
    height: 20px;
    color: #a0aec0;
}

.search-input[b-uwc7ybhf0z] {
    border: none;
    background: transparent;
    flex: 1;
    font-size: 0.95rem;
    color: #2d3748;
    outline: none;
}

.bulk-actions[b-uwc7ybhf0z] {
    display: flex;
    gap: 0.5rem;
}

.btn-bulk[b-uwc7ybhf0z] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.6rem 1rem;
    border: none;
    border-radius: 8px;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
}

.btn-bulk.presente[b-uwc7ybhf0z] {
    background: #f0fff4;
    color: #276749;
}

.btn-bulk.presente:hover[b-uwc7ybhf0z] {
    background: #c6f6d5;
}

.btn-bulk svg[b-uwc7ybhf0z] {
    width: 16px;
    height: 16px;
}

/* ============================================
   TABLE
   ============================================ */
.table-container[b-uwc7ybhf0z] {
    background: white;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

.attendance-table[b-uwc7ybhf0z] {
    width: 100%;
    border-collapse: collapse;
}

.attendance-table th[b-uwc7ybhf0z] {
    background: #f7fafc;
    padding: 1rem;
    text-align: left;
    font-size: 0.85rem;
    font-weight: 600;
    color: #4a5568;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-bottom: 2px solid #e2e8f0;
}

.attendance-table td[b-uwc7ybhf0z] {
    padding: 0.85rem 1rem;
    border-bottom: 1px solid #edf2f7;
    font-size: 0.95rem;
    color: #2d3748;
}

.col-id[b-uwc7ybhf0z] { width: 50px; text-align: center; }
.col-name[b-uwc7ybhf0z] { min-width: 200px; }
.col-grado[b-uwc7ybhf0z] { width: 160px; }
.col-area[b-uwc7ybhf0z] { width: 160px; }
.col-status[b-uwc7ybhf0z] { width: 380px; }
.col-obs[b-uwc7ybhf0z] { min-width: 180px; }

.person-info[b-uwc7ybhf0z] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.avatar[b-uwc7ybhf0z] {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--color-card-purple);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.8rem;
}

.avatar.small[b-uwc7ybhf0z] {
    width: 28px;
    height: 28px;
    font-size: 0.7rem;
}

.status-buttons[b-uwc7ybhf0z] {
    display: flex;
    gap: 0.35rem;
}

.status-btn[b-uwc7ybhf0z] {
    padding: 0.45rem 0.75rem;
    border: 2px solid transparent;
    border-radius: 6px;
    font-size: 0.75rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s ease;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.status-btn.presente[b-uwc7ybhf0z] { background: #f0fff4; color: #276749; border-color: #c6f6d5; }
.status-btn.presente.active[b-uwc7ybhf0z] { background: #48bb78; color: white; border-color: #48bb78; }
.status-btn.presente:hover:not(.active)[b-uwc7ybhf0z] { background: #c6f6d5; }

.status-btn.tarde[b-uwc7ybhf0z] { background: #fffaf0; color: #c05621; border-color: #feebc8; }
.status-btn.tarde.active[b-uwc7ybhf0z] { background: #ed8936; color: white; border-color: #ed8936; }
.status-btn.tarde:hover:not(.active)[b-uwc7ybhf0z] { background: #feebc8; }

.status-btn.falta[b-uwc7ybhf0z] { background: #fff5f5; color: #c53030; border-color: #fed7d7; }
.status-btn.falta.active[b-uwc7ybhf0z] { background: #f56565; color: white; border-color: #f56565; }
.status-btn.falta:hover:not(.active)[b-uwc7ybhf0z] { background: #fed7d7; }

.status-btn.justificado[b-uwc7ybhf0z] { background: #faf5ff; color: #6b46c1; border-color: #e9d8fd; }
.status-btn.justificado.active[b-uwc7ybhf0z] { background: #805ad5; color: white; border-color: #805ad5; }
.status-btn.justificado:hover:not(.active)[b-uwc7ybhf0z] { background: #e9d8fd; }

.obs-input[b-uwc7ybhf0z] {
    width: 100%;
    padding: 0.4rem 0.6rem;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    font-size: 0.85rem;
    color: #2d3748;
    background: #f7fafc;
    transition: all 0.2s ease;
}

.obs-input:focus[b-uwc7ybhf0z] {
    outline: none;
    border-color: #4299e1;
    background: white;
}

.row-presente[b-uwc7ybhf0z] { background: #f0fff4; }
.row-tarde[b-uwc7ybhf0z] { background: #fffaf0; }
.row-falta[b-uwc7ybhf0z] { background: #fff5f5; }
.row-justificado[b-uwc7ybhf0z] { background: #faf5ff; }

.btn-delete-record[b-uwc7ybhf0z] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: none;
    border-radius: 6px;
    background: transparent;
    color: #94a3b8;
    cursor: pointer;
    transition: all 0.2s ease;
}

.btn-delete-record:hover[b-uwc7ybhf0z] {
    background: #fef2f2;
    color: var(--color-error);
}

.col-actions[b-uwc7ybhf0z] {
    text-align: center;
}

/* ============================================
   PAGINATION
   ============================================ */
.pagination-container[b-uwc7ybhf0z] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 1.25rem;
    border-top: 1px solid #e2e8f0;
}

.pagination-info[b-uwc7ybhf0z] {
    font-size: 0.85rem;
    color: #718096;
}

.pagination-controls[b-uwc7ybhf0z] {
    display: flex;
    gap: 0.35rem;
    align-items: center;
}

.page-btn[b-uwc7ybhf0z] {
    width: 36px;
    height: 36px;
    border: 1px solid #e2e8f0;
    background: white;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: #4a5568;
    transition: all 0.2s ease;
}

.page-btn:hover:not(:disabled)[b-uwc7ybhf0z] {
    background: #edf2f7;
}

.page-btn:disabled[b-uwc7ybhf0z] {
    opacity: 0.4;
    cursor: not-allowed;
}

.page-btn svg[b-uwc7ybhf0z] {
    width: 16px;
    height: 16px;
}

.page-num[b-uwc7ybhf0z] {
    width: 36px;
    height: 36px;
    border: 1px solid #e2e8f0;
    background: white;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 0.9rem;
    font-weight: 500;
    color: #4a5568;
    transition: all 0.2s ease;
}

.page-num:hover[b-uwc7ybhf0z] {
    background: #edf2f7;
}

.page-num.active[b-uwc7ybhf0z] {
    background: #4299e1;
    color: white;
    border-color: #4299e1;
}

.page-size-selector[b-uwc7ybhf0z] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
    color: #718096;
}

.page-size-selector .form-select[b-uwc7ybhf0z] {
    padding: 0.35rem 0.6rem;
    font-size: 0.85rem;
}

/* ============================================
   BUTTONS
   ============================================ */
.btn-primary[b-uwc7ybhf0z] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.25rem;
    background: #4299e1;
    color: white;
    border: none;
    border-radius: 8px;
    font-size: 0.95rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
}

.btn-primary:hover[b-uwc7ybhf0z] {
    background: #3182ce;
}

.btn-primary:disabled[b-uwc7ybhf0z] {
    opacity: 0.5;
    cursor: not-allowed;
}

.btn-secondary[b-uwc7ybhf0z] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.25rem;
    background: white;
    color: #4a5568;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    font-size: 0.95rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
}

.btn-secondary:hover[b-uwc7ybhf0z] {
    background: #f7fafc;
    border-color: #cbd5e0;
}

.btn-secondary svg[b-uwc7ybhf0z], .btn-primary svg[b-uwc7ybhf0z] {
    width: 18px;
    height: 18px;
}

.btn-danger[b-uwc7ybhf0z] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.25rem;
    background: white;
    color: #e53e3e;
    border: 1px solid #feb2b2;
    border-radius: 8px;
    font-size: 0.95rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
}

.btn-danger:hover[b-uwc7ybhf0z] {
    background: #fff5f5;
}

.btn-danger svg[b-uwc7ybhf0z] {
    width: 18px;
    height: 18px;
}

.action-buttons[b-uwc7ybhf0z] {
    display: flex;
    justify-content: flex-end;
    gap: 1rem;
    padding: 1.25rem;
}

/* ============================================
   EMPTY STATE
   ============================================ */
.empty-state[b-uwc7ybhf0z] {
    text-align: center;
    padding: 3rem 1.5rem;
}

.empty-icon[b-uwc7ybhf0z] {
    margin-bottom: 1rem;
}

.empty-icon svg[b-uwc7ybhf0z] {
    width: 64px;
    height: 64px;
    color: #cbd5e0;
}

.empty-state h3[b-uwc7ybhf0z] {
    color: #4a5568;
    margin: 0 0 0.5rem 0;
    font-size: 1.1rem;
}

.empty-state p[b-uwc7ybhf0z] {
    color: #a0aec0;
    margin: 0;
    font-size: 0.95rem;
}

/* ============================================
   LOADING
   ============================================ */
.loading-container[b-uwc7ybhf0z] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem;
    gap: 1rem;
}

.spinner[b-uwc7ybhf0z] {
    width: 40px;
    height: 40px;
    border: 3px solid #e2e8f0;
    border-top-color: #4299e1;
    border-radius: 50%;
    animation: spin-b-uwc7ybhf0z 0.8s linear infinite;
}

@keyframes spin-b-uwc7ybhf0z {
    to { transform: rotate(360deg); }
}

.loading-container p[b-uwc7ybhf0z] {
    color: #718096;
    font-size: 0.95rem;
}

/* ============================================
   RESUMEN TAB
   ============================================ */
.resumen-container[b-uwc7ybhf0z] {
    padding: 0;
}

.resumen-filters[b-uwc7ybhf0z] {
    display: flex;
    gap: 1rem;
    margin-bottom: 1.5rem;
    background: white;
    padding: 1.25rem;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

.summary-bars[b-uwc7ybhf0z] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.bar-item[b-uwc7ybhf0z] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.bar-label[b-uwc7ybhf0z] {
    width: 85px;
    font-size: 0.8rem;
    color: #4a5568;
}

.bar-track[b-uwc7ybhf0z] {
    flex: 1;
    height: 7px;
    background: #edf2f7;
    border-radius: 4px;
    overflow: hidden;
}

.bar-fill[b-uwc7ybhf0z] {
    height: 100%;
    border-radius: 4px;
    transition: width 0.5s ease;
}

.bar-fill.presente[b-uwc7ybhf0z] { background: #48bb78; }
.bar-fill.tarde[b-uwc7ybhf0z] { background: #ed8936; }
.bar-fill.falta[b-uwc7ybhf0z] { background: #f56565; }
.bar-fill.justificado[b-uwc7ybhf0z] { background: #805ad5; }

.bar-value[b-uwc7ybhf0z] {
    width: 30px;
    text-align: right;
    font-weight: 600;
    font-size: 0.8rem;
    color: #2d3748;
}

/* ============================================
   RESUMEN - TODAY HEADER
   ============================================ */
.resumen-today-header[b-uwc7ybhf0z] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1rem;
    padding: 0.65rem 1.25rem;
    background: white;
    border-radius: 8px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}

.resumen-today-date[b-uwc7ybhf0z] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 1.05rem;
    font-weight: 600;
    color: #1a365d;
    text-transform: capitalize;
}

.resumen-today-date svg[b-uwc7ybhf0z] {
    color: var(--color-primary);
}

/* Date navigation */
.resumen-date-nav[b-uwc7ybhf0z] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.date-nav-btn[b-uwc7ybhf0z] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    background: transparent;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    color: #64748b;
    cursor: pointer;
    transition: all 0.15s ease;
    flex-shrink: 0;
}

.date-nav-btn:hover:not(:disabled)[b-uwc7ybhf0z] {
    background: #f1f5f9;
    color: #1a365d;
    border-color: #cbd5e1;
}

.date-nav-btn:disabled[b-uwc7ybhf0z],
.date-nav-btn.date-nav-disabled[b-uwc7ybhf0z] {
    opacity: 0.3;
    cursor: default;
}

.date-nav-today-badge[b-uwc7ybhf0z] {
    padding: 0.2rem 0.6rem;
    margin-left: 0.4rem;
    background: var(--color-primary);
    color: white;
    border: none;
    border-radius: 4px;
    font-size: 0.7rem;
    font-weight: 600;
    cursor: pointer;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: background 0.15s ease;
    flex-shrink: 0;
}

.date-nav-today-badge:hover[b-uwc7ybhf0z] {
    background: var(--color-primary-dark);
}

.btn-refresh-resumen[b-uwc7ybhf0z] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    background: #f7fafc;
    color: #4a5568;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    font-size: 0.85rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
}

.btn-refresh-resumen:hover[b-uwc7ybhf0z] {
    background: #edf2f7;
    color: #1a365d;
}

/* ============================================
   RESUMEN - STAT CARDS (compactas)
   ============================================ */
.resumen-stat-cards[b-uwc7ybhf0z] {
    display: flex;
    gap: 0.75rem;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}

.resumen-stat[b-uwc7ybhf0z] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    background: white;
    border-radius: 8px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
    border-left: 3px solid transparent;
    flex: 1;
    min-width: 120px;
}

.resumen-stat.presente[b-uwc7ybhf0z] { border-left-color: #48bb78; }
.resumen-stat.tarde[b-uwc7ybhf0z] { border-left-color: #ed8936; }
.resumen-stat.falta[b-uwc7ybhf0z] { border-left-color: #f56565; }
.resumen-stat.justificado[b-uwc7ybhf0z] { border-left-color: #805ad5; }
.resumen-stat.asistencia-pct[b-uwc7ybhf0z] { border-left-color: var(--color-primary, #0055A3); }

.resumen-stat-number[b-uwc7ybhf0z] {
    font-size: 1.25rem;
    font-weight: 700;
    color: #1a365d;
    line-height: 1;
}

.resumen-stat-label[b-uwc7ybhf0z] {
    font-size: 0.75rem;
    color: #718096;
}

.resumen-bars-card[b-uwc7ybhf0z] {
    background: white;
    border-radius: 8px;
    padding: 0.75rem 1rem;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
    margin-bottom: 1rem;
}

/* ============================================
   RESUMEN - ATTENDEES LIST
   ============================================ */
.resumen-attendees-section[b-uwc7ybhf0z] {
    background: white;
    border-radius: 8px;
    padding: 1rem 1.25rem;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
    margin-top: 0.75rem;
}

.resumen-attendees-header[b-uwc7ybhf0z] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1rem;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.resumen-attendees-header h3[b-uwc7ybhf0z] {
    font-size: 1rem;
    color: #1a365d;
    margin: 0;
}

.resumen-attendees-filters[b-uwc7ybhf0z] {
    display: flex;
    gap: 0.75rem;
    align-items: center;
}

.form-select.compact[b-uwc7ybhf0z],
.search-input.compact[b-uwc7ybhf0z] {
    padding: 0.4rem 0.75rem;
    font-size: 0.85rem;
    border-radius: 6px;
    height: auto;
}

.search-input.compact[b-uwc7ybhf0z] {
    width: 200px;
}

.resumen-attendees-table[b-uwc7ybhf0z] {
    overflow-x: auto;
    max-height: 500px;
    overflow-y: auto;
}

.resumen-empty[b-uwc7ybhf0z] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem 1rem;
    color: #a0aec0;
    gap: 0.75rem;
}

.resumen-empty p[b-uwc7ybhf0z] {
    font-size: 0.95rem;
    margin: 0;
}

.resumen-empty-sub[b-uwc7ybhf0z] {
    font-size: 0.8rem;
    color: #cbd5e0;
}

/* Attendee name cell */
.attendee-name-cell[b-uwc7ybhf0z] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.attendee-avatar[b-uwc7ybhf0z] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.7rem;
    color: white;
    flex-shrink: 0;
}

.attendee-avatar.tipo-alumno[b-uwc7ybhf0z] { background: #3182ce; }
.attendee-avatar.tipo-docente[b-uwc7ybhf0z] { background: #38a169; }
.attendee-avatar.tipo-colaborador[b-uwc7ybhf0z] { background: #d69e2e; }

.attendee-info[b-uwc7ybhf0z] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.attendee-name[b-uwc7ybhf0z] {
    font-weight: 600;
    font-size: 0.85rem;
    color: #2d3748;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.attendee-detail[b-uwc7ybhf0z] {
    font-size: 0.75rem;
    color: #718096;
}

/* Tipo badge */
.tipo-badge[b-uwc7ybhf0z] {
    display: inline-block;
    padding: 0.2rem 0.6rem;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
}

.tipo-badge.tipo-alumno[b-uwc7ybhf0z] {
    background: #dbeafe;
    color: #1d4ed8;
}

.tipo-badge.tipo-docente[b-uwc7ybhf0z] {
    background: #d1fae5;
    color: #059669;
}

.tipo-badge.tipo-colaborador[b-uwc7ybhf0z] {
    background: #fef3c7;
    color: #d97706;
}

/* Estado badge */
.estado-badge[b-uwc7ybhf0z] {
    display: inline-block;
    padding: 0.2rem 0.6rem;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
}

.estado-badge.presente[b-uwc7ybhf0z] { background: #f0fff4; color: #276749; }
.estado-badge.tarde[b-uwc7ybhf0z] { background: #fffaf0; color: #c05621; }
.estado-badge.falta[b-uwc7ybhf0z] { background: #fff5f5; color: #c53030; }
.estado-badge.justificado[b-uwc7ybhf0z] { background: #faf5ff; color: #6b46c1; }
.estado-badge.sin-registro[b-uwc7ybhf0z] { background: #f7fafc; color: #a0aec0; font-weight: 400; }

/* Observacion read-only */
.obs-readonly[b-uwc7ybhf0z] {
    font-size: 0.85rem;
    color: #718096;
}

/* Row highlights */
.row-falta[b-uwc7ybhf0z] { background: #fff5f5 !important; }
.row-tarde[b-uwc7ybhf0z] { background: #fffaf0 !important; }

/* Col hora */
.col-hora[b-uwc7ybhf0z] {
    width: 70px;
    text-align: center;
    font-family: 'Courier New', monospace;
    font-size: 0.85rem;
    color: #4a5568;
}

.col-tipo[b-uwc7ybhf0z] {
    width: 110px;
}

.col-grado-sec[b-uwc7ybhf0z] {
    width: 150px;
}

.grado-text[b-uwc7ybhf0z] {
    font-weight: 600;
    font-size: 0.85rem;
    color: #2d3748;
}

.seccion-text[b-uwc7ybhf0z] {
    display: inline-block;
    margin-left: 0.35rem;
    padding: 0.1rem 0.5rem;
    background: #edf2f7;
    border-radius: 4px;
    font-size: 0.75rem;
    font-weight: 600;
    color: #4a5568;
}

.no-grado[b-uwc7ybhf0z] {
    color: #cbd5e0;
}

.col-estado[b-uwc7ybhf0z] {
    width: 100px;
}

@media (max-width: 768px) {
    .resumen-stat-cards[b-uwc7ybhf0z] {
        gap: 0.5rem;
    }

    .resumen-stat[b-uwc7ybhf0z] {
        min-width: 90px;
        padding: 0.4rem 0.75rem;
    }

    .resumen-today-header[b-uwc7ybhf0z] {
        flex-direction: column;
        gap: 0.75rem;
        text-align: center;
    }

    .resumen-today-date span[b-uwc7ybhf0z] {
        font-size: 0.9rem;
    }

    .resumen-attendees-header[b-uwc7ybhf0z] {
        flex-direction: column;
        align-items: flex-start;
    }

    .resumen-attendees-filters[b-uwc7ybhf0z] {
        width: 100%;
    }

    .search-input.compact[b-uwc7ybhf0z] {
        flex: 1;
        width: auto;
    }
}

.top-lists[b-uwc7ybhf0z] {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
}

.top-list[b-uwc7ybhf0z] {
    background: white;
    border-radius: 12px;
    padding: 1.5rem;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

.top-list.warning[b-uwc7ybhf0z] {
    border-left: 4px solid #f56565;
}

.top-list h3[b-uwc7ybhf0z] {
    font-size: 1rem;
    color: #1a365d;
    margin: 0 0 1rem 0;
}

.list-items[b-uwc7ybhf0z] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.list-item[b-uwc7ybhf0z] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.75rem;
    background: #f7fafc;
    border-radius: 8px;
}

.rank[b-uwc7ybhf0z] {
    width: 28px;
    height: 28px;
    background: #4299e1;
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.85rem;
}

.rank.warning[b-uwc7ybhf0z] {
    background: #f56565;
}

.list-item .person-info[b-uwc7ybhf0z] {
    flex: 1;
}

.percentage[b-uwc7ybhf0z] {
    font-weight: 700;
    font-size: 0.9rem;
}

.percentage.good[b-uwc7ybhf0z] { color: #48bb78; }
.percentage.bad[b-uwc7ybhf0z] { color: #f56565; }

/* ============================================
   MODAL
   ============================================ */
.modal-overlay[b-uwc7ybhf0z] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    padding: 1rem;
}

.modal-content[b-uwc7ybhf0z] {
    background: white;
    border-radius: 16px;
    width: 100%;
    max-width: 500px;
    max-height: 90vh;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.modal-content.large[b-uwc7ybhf0z] {
    max-width: 1200px;
    width: 95%;
}

.modal-header[b-uwc7ybhf0z] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid #e2e8f0;
}

.modal-header h2[b-uwc7ybhf0z] {
    font-size: 1.25rem;
    color: #1a365d;
    margin: 0;
}

.btn-close[b-uwc7ybhf0z] {
    background: none;
    border: none;
    padding: 0.5rem;
    cursor: pointer;
    color: #718096;
    border-radius: 8px;
    transition: all 0.2s ease;
}

.btn-close:hover[b-uwc7ybhf0z] {
    background: #f7fafc;
    color: #1a365d;
}

.btn-close svg[b-uwc7ybhf0z] {
    width: 20px;
    height: 20px;
}

.modal-body[b-uwc7ybhf0z] {
    padding: 1.5rem;
    overflow-y: auto;
}

.historial-filters[b-uwc7ybhf0z] {
    display: flex;
    gap: 1rem;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
}

.historial-filters .form-input[b-uwc7ybhf0z] {
    flex: 1;
    min-width: 150px;
}

.historial-table[b-uwc7ybhf0z] {
    width: 100%;
    border-collapse: collapse;
}

.historial-table th[b-uwc7ybhf0z], .historial-table td[b-uwc7ybhf0z] {
    padding: 0.75rem;
    text-align: left;
    border-bottom: 1px solid #e2e8f0;
}

.historial-table th[b-uwc7ybhf0z] {
    background: #f7fafc;
    font-weight: 600;
    color: #4a5568;
    font-size: 0.85rem;
}

.status-badge[b-uwc7ybhf0z] {
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
}

.status-badge.presente[b-uwc7ybhf0z] { background: #c6f6d5; color: #276749; }
.status-badge.tarde[b-uwc7ybhf0z] { background: #feebc8; color: #c05621; }
.status-badge.falta[b-uwc7ybhf0z] { background: #fed7d7; color: #c53030; }
.status-badge.justificado[b-uwc7ybhf0z] { background: #e9d8fd; color: #6b46c1; }

/* ============================================
   HISTORIAL TABS
   ============================================ */
.historial-tabs[b-uwc7ybhf0z] {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 1rem;
    padding: 0.25rem;
    background: #f7fafc;
    border-radius: 10px;
    flex-wrap: wrap;
}

.historial-tab[b-uwc7ybhf0z] {
    padding: 0.5rem 1rem;
    border: none;
    background: transparent;
    color: #64748b;
    font-weight: 500;
    font-size: 0.85rem;
    cursor: pointer;
    border-radius: 8px;
    transition: all 0.2s ease;
}

.historial-tab:hover[b-uwc7ybhf0z] {
    background: #e2e8f0;
    color: #1a365d;
}

.historial-tab.active[b-uwc7ybhf0z] {
    background: var(--color-primary, #0055A3);
    color: white;
    box-shadow: 0 1px 3px rgba(0, 85, 163, 0.3);
}

.historial-filters .form-select[b-uwc7ybhf0z] {
    flex: 1;
    min-width: 140px;
    padding: 0.5rem 0.75rem;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    font-size: 0.85rem;
    color: #1a365d;
    background: white;
}

.historial-filters .form-select:focus[b-uwc7ybhf0z] {
    border-color: var(--color-primary, #0055A3);
    outline: none;
    box-shadow: 0 0 0 3px rgba(0, 85, 163, 0.1);
}

.historial-filters .form-select:disabled[b-uwc7ybhf0z] {
    background: #f1f5f9;
    color: #94a3b8;
    cursor: not-allowed;
}

.historial-filters .btn-secondary[b-uwc7ybhf0z] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.5rem 1rem;
    background: white;
    color: #1a365d;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    font-size: 0.85rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
    white-space: nowrap;
}

.historial-filters .btn-secondary:hover:not(:disabled)[b-uwc7ybhf0z] {
    background: #f0fdf4;
    border-color: #22c55e;
    color: #166534;
}

.historial-filters .btn-secondary:disabled[b-uwc7ybhf0z] {
    opacity: 0.5;
    cursor: not-allowed;
}

.historial-result-count[b-uwc7ybhf0z] {
    font-size: 0.8rem;
    color: #64748b;
    margin-bottom: 0.75rem;
    font-weight: 500;
}

/* ============================================
   RESPONSIVE
   ============================================ */
@media (max-width: 1024px) {
    .stats-grid[b-uwc7ybhf0z] {
        grid-template-columns: repeat(2, 1fr);
    }

    .top-lists[b-uwc7ybhf0z] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .filters-row[b-uwc7ybhf0z] {
        flex-direction: column;
    }

    .filter-group[b-uwc7ybhf0z] {
        width: 100%;
    }

    .search-row[b-uwc7ybhf0z] {
        flex-direction: column;
    }

    .search-box[b-uwc7ybhf0z] {
        max-width: none;
    }

    .status-buttons[b-uwc7ybhf0z] {
        flex-wrap: wrap;
    }

    .status-btn[b-uwc7ybhf0z] {
        font-size: 0.7rem;
        padding: 0.4rem 0.5rem;
    }

    .pagination-container[b-uwc7ybhf0z] {
        flex-direction: column;
        gap: 1rem;
    }

    .historial-tabs[b-uwc7ybhf0z] {
        gap: 0.25rem;
    }

    .historial-tab[b-uwc7ybhf0z] {
        flex: 1;
        text-align: center;
        font-size: 0.8rem;
        padding: 0.4rem 0.5rem;
    }

    .historial-filters[b-uwc7ybhf0z] {
        flex-direction: column;
    }

    .historial-filters .form-input[b-uwc7ybhf0z],
    .historial-filters .form-select[b-uwc7ybhf0z] {
        width: 100%;
        min-width: unset;
    }

    .resumen-attendees-filters[b-uwc7ybhf0z] {
        flex-direction: column;
        gap: 0.5rem;
    }

    .table-container[b-uwc7ybhf0z] {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .attendance-table[b-uwc7ybhf0z],
    .historial-table[b-uwc7ybhf0z] {
        min-width: 720px;
    }

    .resumen-attendees-table[b-uwc7ybhf0z] {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
}

@media (max-width: 480px) {
    .tabs-container[b-uwc7ybhf0z] {
        gap: 0.25rem;
        padding: 0.35rem;
    }

    .tab[b-uwc7ybhf0z] {
        padding: 0.6rem 0.85rem;
        font-size: 0.85rem;
    }

    .btn-primary[b-uwc7ybhf0z],
    .btn-secondary[b-uwc7ybhf0z],
    .btn-danger[b-uwc7ybhf0z],
    .btn-clock-panel[b-uwc7ybhf0z] {
        width: 100%;
        justify-content: center;
    }

    .action-buttons[b-uwc7ybhf0z] {
        flex-direction: column-reverse;
        gap: 0.5rem;
        padding: 1rem;
    }

    .filters-container[b-uwc7ybhf0z],
    .resumen-filters[b-uwc7ybhf0z] {
        padding: 0.85rem;
    }

    .modal-content[b-uwc7ybhf0z] {
        max-width: 92vw;
    }

    .modal-content.large[b-uwc7ybhf0z] {
        max-width: 95vw;
        width: 95vw;
    }

    .modal-header[b-uwc7ybhf0z],
    .modal-body[b-uwc7ybhf0z] {
        padding: 1rem;
    }

    .status-btn[b-uwc7ybhf0z] {
        font-size: 0.65rem;
        padding: 0.35rem 0.45rem;
    }

    .stat-card[b-uwc7ybhf0z] {
        padding: 0.85rem 1rem;
    }

    .stat-value[b-uwc7ybhf0z] {
        font-size: 1.25rem;
    }

    .resumen-stat-cards[b-uwc7ybhf0z] {
        gap: 0.4rem;
    }

    .resumen-stat[b-uwc7ybhf0z] {
        min-width: 0;
        flex: 1 1 calc(50% - 0.2rem);
    }
}

/* ============================================
   TIME COLUMNS (Entrada / Salida)
   ============================================ */
.col-time[b-uwc7ybhf0z] {
    width: 90px;
    text-align: center;
    white-space: nowrap;
}

.time-display[b-uwc7ybhf0z] {
    font-weight: 600;
    color: #1a365d;
    font-size: 0.9rem;
    font-family: 'Courier New', monospace;
}

.time-empty[b-uwc7ybhf0z] {
    color: #cbd5e0;
    font-size: 0.85rem;
    font-family: 'Courier New', monospace;
}

.btn-registrar-salida[b-uwc7ybhf0z] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    background: #f0f9ff;
    color: #0369a1;
    border: 1px solid #bae6fd;
    border-radius: 6px;
    font-size: 0.75rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
    white-space: nowrap;
}

.btn-registrar-salida:hover[b-uwc7ybhf0z] {
    background: #0369a1;
    color: white;
    border-color: #0369a1;
}

.btn-registrar-salida svg[b-uwc7ybhf0z] {
    flex-shrink: 0;
}
/* /Pages/Private/Auditoria.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Log de auditoría · scoped styles
   ════════════════════════════════════════════════════════════════════
   Tabla densa · tabular nums · institucional sobrio
   ════════════════════════════════════════════════════════════════════ */

.audit-root[b-gelp9io84d] {
    padding: 8px 0 32px;
    max-width: 1320px;
    margin: 0 auto;
}

/* ── Header actions ─────────────────────────── */
.audit-select[b-gelp9io84d] {
    padding: 8px 12px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-surface);
    font-size: 13px;
    font-family: var(--font-body);
    font-weight: 500;
    color: var(--text-primary);
    outline: none;
    cursor: pointer;
}

.audit-select:focus[b-gelp9io84d] {
    box-shadow: var(--shadow-focus);
}

.audit-search[b-gelp9io84d] {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.audit-search[b-gelp9io84d]  svg {
    position: absolute;
    left: 10px;
    pointer-events: none;
    color: var(--text-muted);
}

.audit-search__input[b-gelp9io84d] {
    padding: 8px 12px 8px 32px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-surface);
    font-size: 13px;
    font-family: var(--font-body);
    color: var(--text-primary);
    outline: none;
    min-width: 220px;
}

.audit-search__input:focus[b-gelp9io84d] {
    box-shadow: var(--shadow-focus);
    border-color: var(--color-brand-green);
}

/* ── Stats grid 3 ───────────────────────────── */
.audit-stats[b-gelp9io84d] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin: 24px 0 24px;
}

.audit-stats > *[b-gelp9io84d] {
    height: 100%;
}

/* ── Card tabla ─────────────────────────────── */
.audit-card[b-gelp9io84d] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    overflow: hidden;
    box-shadow: var(--shadow-warm-sm);
}

.audit-card__head[b-gelp9io84d] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid var(--border-soft);
}

.audit-card__title[b-gelp9io84d] {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
}

.audit-card__badge[b-gelp9io84d] {
    font-size: 11px;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
    padding: 4px 10px;
    background: var(--bg-page);
    border-radius: 99px;
}

/* ── Tabla densa ────────────────────────────── */
.audit-table-wrap[b-gelp9io84d] {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
}

.audit-table[b-gelp9io84d] {
    width: 100%;
    border-collapse: collapse;
    font-variant-numeric: tabular-nums;
}

.audit-table thead th[b-gelp9io84d] {
    text-align: left;
    font-size: 11px;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
    padding: 12px 16px;
    border-bottom: 1px solid var(--border-soft);
    background: var(--bg-page);
    white-space: nowrap;
}

.audit-table tbody td[b-gelp9io84d] {
    padding: 10px 16px;
    border-bottom: 1px solid var(--border-soft);
    font-size: 13px;
    color: var(--text-primary);
    vertical-align: middle;
}

.audit-table tbody tr:last-child td[b-gelp9io84d] {
    border-bottom: none;
}

.audit-table tbody tr:hover[b-gelp9io84d] {
    background: var(--bg-page);
}

/* ── Celdas mono / muted ────────────────────── */
.audit-mono[b-gelp9io84d] {
    font-family: 'JetBrains Mono', 'SF Mono', Consolas, monospace;
    font-size: 12px;
    white-space: nowrap;
}

.audit-mono--12[b-gelp9io84d] {
    font-size: 12px;
}

.audit-muted[b-gelp9io84d] {
    color: var(--text-muted);
}

/* ── Usuario (avatar + nombre + rol) ────────── */
.audit-user[b-gelp9io84d] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.audit-avatar[b-gelp9io84d] {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--bg-paper);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.02em;
    flex-shrink: 0;
}

.audit-user__info[b-gelp9io84d] {
    display: flex;
    flex-direction: column;
    line-height: 1.25;
}

.audit-user__name[b-gelp9io84d] {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-primary);
}

.audit-user__role[b-gelp9io84d] {
    font-size: 11px;
    color: var(--text-muted);
}

/* ── Loading state legacy ───────────────────── */
.audit-loading[b-gelp9io84d] {
    padding: 32px;
    text-align: center;
    color: var(--text-muted);
}

.audit-spinner[b-gelp9io84d] {
    width: 32px;
    height: 32px;
    border: 3px solid var(--border-soft);
    border-top-color: var(--color-brand-red);
    border-radius: 50%;
    margin: 0 auto 12px;
    animation: audit-spin-b-gelp9io84d 800ms linear infinite;
}

@keyframes audit-spin-b-gelp9io84d {
    to {
        transform: rotate(360deg);
    }
}

/* ── Responsive ─────────────────────────────── */
@media (max-width: 1024px) {
    .audit-stats[b-gelp9io84d] {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 768px) {
    .audit-table[b-gelp9io84d] {
        min-width: 720px;
    }
}

@media (max-width: 640px) {
    .audit-stats[b-gelp9io84d] {
        grid-template-columns: 1fr;
    }

    .audit-search__input[b-gelp9io84d] {
        min-width: 160px;
    }

    .audit-table thead th[b-gelp9io84d],
    .audit-table tbody td[b-gelp9io84d] {
        padding: 10px 12px;
    }
}

@media (max-width: 480px) {
    .audit-stats[b-gelp9io84d] {
        gap: 12px;
    }
}
/* /Pages/Private/BancoPreguntas.razor.rz.scp.css */
/* ============================================
   BANCO DE PREGUNTAS - I.E.P.E. Apostol Pablo
   Gestion de preguntas por curso
   ============================================ */

/* ============================================
   KPI CARDS ROW
   ============================================ */
.banco-kpi-row[b-5rq2td2bl1] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.banco-kpi-card[b-5rq2td2bl1] {
    display: flex;
    align-items: center;
    gap: 1rem;
    background: white;
    border-radius: 12px;
    padding: 1.25rem;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.banco-kpi-card:hover[b-5rq2td2bl1] {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.banco-kpi-icon[b-5rq2td2bl1] {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.banco-kpi-total[b-5rq2td2bl1] {
    background: var(--bg-primary-subtle);
    color: var(--color-primary);
}

.banco-kpi-multiple[b-5rq2td2bl1] {
    background: rgba(59, 130, 246, 0.1);
    color: #3b82f6;
}

.banco-kpi-truefalse[b-5rq2td2bl1] {
    background: rgba(139, 92, 246, 0.1);
    color: #8b5cf6;
}

.banco-kpi-open[b-5rq2td2bl1] {
    background: var(--bg-highlight-subtle);
    color: var(--color-highlight);
}

.banco-kpi-info[b-5rq2td2bl1] {
    display: flex;
    flex-direction: column;
}

.banco-kpi-value[b-5rq2td2bl1] {
    font-size: 1.5rem;
    font-weight: 700;
    color: #1f2937;
    line-height: 1.2;
}

.banco-kpi-label[b-5rq2td2bl1] {
    font-size: 0.8rem;
    color: #6b7280;
    font-weight: 500;
}

/* ============================================
   FILTER BAR
   ============================================ */
.banco-filter-bar[b-5rq2td2bl1] {
    display: flex;
    gap: 1rem;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
    align-items: flex-end;
    background: white;
    border-radius: 12px;
    padding: 1.25rem;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.banco-filter-group[b-5rq2td2bl1] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-width: 200px;
}

.banco-filter-group label[b-5rq2td2bl1] {
    font-size: 0.8rem;
    font-weight: 600;
    color: #374151;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.banco-filter-group select[b-5rq2td2bl1],
.banco-filter-group input[type="text"][b-5rq2td2bl1] {
    padding: 0.55rem 0.75rem;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    font-size: 0.875rem;
    color: #1f2937;
    background: white;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.banco-filter-group select:focus[b-5rq2td2bl1],
.banco-filter-group input[type="text"]:focus[b-5rq2td2bl1] {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px var(--bg-primary-subtle);
}

.banco-filter-group select:disabled[b-5rq2td2bl1],
.banco-filter-group input:disabled[b-5rq2td2bl1] {
    background: #f3f4f6;
    color: #9ca3af;
    cursor: not-allowed;
}

.banco-filter-search[b-5rq2td2bl1] {
    flex: 1;
    min-width: 250px;
}

.banco-search-input[b-5rq2td2bl1] {
    position: relative;
    display: flex;
    align-items: center;
}

.banco-search-input svg[b-5rq2td2bl1] {
    position: absolute;
    left: 0.75rem;
    color: #9ca3af;
    pointer-events: none;
}

.banco-search-input input[b-5rq2td2bl1] {
    padding-left: 2.25rem !important;
    width: 100%;
}

/* ============================================
   RESULTS INFO
   ============================================ */
.banco-results-info[b-5rq2td2bl1] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
    padding: 0 0.25rem;
}

.banco-results-info span[b-5rq2td2bl1] {
    font-size: 0.875rem;
    color: #6b7280;
    font-weight: 500;
}

/* ============================================
   QUESTION CARDS GRID
   ============================================ */
.banco-cards-grid[b-5rq2td2bl1] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
}

.banco-card[b-5rq2td2bl1] {
    background: white;
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid #e5e7eb;
}

.banco-card:hover[b-5rq2td2bl1] {
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12);
    border-color: var(--color-primary);
}

.banco-card-header[b-5rq2td2bl1] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: 1rem 1rem 0.5rem;
}

.banco-card-badges[b-5rq2td2bl1] {
    display: flex;
    gap: 0.4rem;
    flex-wrap: wrap;
}

.banco-card-actions[b-5rq2td2bl1] {
    display: flex;
    gap: 0.25rem;
    opacity: 0;
    transition: opacity 0.2s ease;
}

.banco-card:hover .banco-card-actions[b-5rq2td2bl1] {
    opacity: 1;
}

.banco-card-body[b-5rq2td2bl1] {
    padding: 0 1rem;
    flex: 1;
}

.banco-card-text[b-5rq2td2bl1] {
    font-size: 0.9rem;
    color: #374151;
    line-height: 1.5;
    margin: 0;
    word-break: break-word;
}

.banco-card-footer[b-5rq2td2bl1] {
    padding: 0.75rem 1rem 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    border-top: 1px solid #f3f4f6;
    margin-top: 0.75rem;
}

.banco-card-meta[b-5rq2td2bl1] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.banco-meta-item[b-5rq2td2bl1] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.78rem;
    color: #6b7280;
}

.banco-meta-course[b-5rq2td2bl1] {
    font-weight: 600;
    color: var(--color-primary);
    background: var(--bg-primary-faint);
    padding: 0.15rem 0.5rem;
    border-radius: 4px;
}

/* ============================================
   BADGES
   ============================================ */
.banco-badge[b-5rq2td2bl1] {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.6rem;
    border-radius: 6px;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    white-space: nowrap;
}

/* Type badges */
.banco-badge-multiple[b-5rq2td2bl1] {
    background: rgba(59, 130, 246, 0.12);
    color: #2563eb;
}

.banco-badge-truefalse[b-5rq2td2bl1] {
    background: rgba(139, 92, 246, 0.12);
    color: #7c3aed;
}

.banco-badge-open[b-5rq2td2bl1] {
    background: var(--bg-highlight-subtle);
    color: var(--color-warning-dark);
}

/* Difficulty badges */
.banco-badge-easy[b-5rq2td2bl1] {
    background: var(--bg-success-subtle);
    color: var(--color-success-dark);
}

.banco-badge-medium[b-5rq2td2bl1] {
    background: rgba(245, 158, 11, 0.12);
    color: var(--color-warning-dark);
}

.banco-badge-hard[b-5rq2td2bl1] {
    background: var(--bg-error-subtle);
    color: var(--color-error-dark);
}

/* Course badge (detail modal) */
.banco-badge-course[b-5rq2td2bl1] {
    background: var(--bg-primary-subtle);
    color: var(--color-primary);
}

/* ============================================
   TAGS (PILLS)
   ============================================ */
.banco-tags[b-5rq2td2bl1] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.banco-tag[b-5rq2td2bl1] {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.5rem;
    background: #f3f4f6;
    color: #4b5563;
    border-radius: 100px;
    font-size: 0.72rem;
    font-weight: 500;
    border: 1px solid #e5e7eb;
}

/* ============================================
   ACTION BUTTONS
   ============================================ */
.banco-btn-icon[b-5rq2td2bl1] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: #6b7280;
    cursor: pointer;
    transition: all 0.2s ease;
}

.banco-btn-icon:hover[b-5rq2td2bl1] {
    background: #f3f4f6;
    color: var(--color-primary);
}

.banco-btn-danger:hover[b-5rq2td2bl1] {
    background: var(--bg-error-subtle);
    color: var(--color-error);
}

.banco-btn-sm[b-5rq2td2bl1] {
    width: 28px;
    height: 28px;
}

/* ============================================
   EMPTY STATE
   ============================================ */
.banco-empty-state[b-5rq2td2bl1] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 4rem 2rem;
    text-align: center;
    background: white;
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.banco-empty-state svg[b-5rq2td2bl1] {
    color: #d1d5db;
    margin-bottom: 1rem;
}

.banco-empty-state h3[b-5rq2td2bl1] {
    font-size: 1.1rem;
    font-weight: 600;
    color: #374151;
    margin: 0 0 0.5rem;
}

.banco-empty-state p[b-5rq2td2bl1] {
    font-size: 0.9rem;
    color: #6b7280;
    margin: 0 0 1.5rem;
    max-width: 400px;
}

/* ============================================
   LOADING STATE
   ============================================ */
.banco-loading[b-5rq2td2bl1] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 300px;
    gap: 1rem;
    color: #718096;
}

.banco-loading .spinner[b-5rq2td2bl1] {
    width: 40px;
    height: 40px;
    border: 3px solid #e2e8f0;
    border-top-color: var(--color-primary);
    border-radius: 50%;
    animation: banco-spin-b-5rq2td2bl1 0.8s linear infinite;
}

@keyframes banco-spin-b-5rq2td2bl1 {
    to { transform: rotate(360deg); }
}

/* ============================================
   MODAL OVERLAY
   ============================================ */
.banco-modal-overlay[b-5rq2td2bl1] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    padding: 1rem;
    animation: banco-fadeIn-b-5rq2td2bl1 0.2s ease;
}

@keyframes banco-fadeIn-b-5rq2td2bl1 {
    from { opacity: 0; }
    to { opacity: 1; }
}

.banco-modal[b-5rq2td2bl1] {
    background: white;
    border-radius: 16px;
    width: 100%;
    max-height: 90vh;
    display: flex;
    flex-direction: column;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2);
    animation: banco-slideUp-b-5rq2td2bl1 0.25s ease;
}

@keyframes banco-slideUp-b-5rq2td2bl1 {
    from { transform: translateY(20px); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}

.banco-modal-sm[b-5rq2td2bl1] { max-width: 480px; }
.banco-modal-md[b-5rq2td2bl1] { max-width: 640px; }
.banco-modal-lg[b-5rq2td2bl1] { max-width: 720px; }

.banco-modal-header[b-5rq2td2bl1] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid #e5e7eb;
}

.banco-modal-header h2[b-5rq2td2bl1] {
    font-size: 1.1rem;
    font-weight: 700;
    color: #1f2937;
    margin: 0;
}

.banco-modal-header-danger[b-5rq2td2bl1] {
    border-bottom-color: rgba(239, 68, 68, 0.2);
}

.banco-modal-header-danger h2[b-5rq2td2bl1] {
    color: var(--color-error);
}

.banco-modal-close[b-5rq2td2bl1] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: #6b7280;
    cursor: pointer;
    transition: all 0.2s;
}

.banco-modal-close:hover[b-5rq2td2bl1] {
    background: #f3f4f6;
    color: #1f2937;
}

.banco-modal-body[b-5rq2td2bl1] {
    padding: 1.5rem;
    overflow-y: auto;
    flex: 1;
}

.banco-modal-footer[b-5rq2td2bl1] {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
    padding: 1rem 1.5rem;
    border-top: 1px solid #e5e7eb;
    background: #f9fafb;
    border-radius: 0 0 16px 16px;
}

/* ============================================
   FORM ELEMENTS
   ============================================ */
.banco-form-grid[b-5rq2td2bl1] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-bottom: 1rem;
}

.banco-form-row[b-5rq2td2bl1] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.banco-form-group[b-5rq2td2bl1] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.banco-form-full[b-5rq2td2bl1] {
    margin-bottom: 1rem;
}

.banco-form-group label[b-5rq2td2bl1] {
    font-size: 0.8rem;
    font-weight: 600;
    color: #374151;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.banco-form-group label .required[b-5rq2td2bl1] {
    color: var(--color-error);
}

.banco-form-group select[b-5rq2td2bl1],
.banco-form-group input[type="text"][b-5rq2td2bl1],
.banco-form-group input[type="number"][b-5rq2td2bl1],
.banco-form-group textarea[b-5rq2td2bl1] {
    padding: 0.6rem 0.75rem;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    font-size: 0.875rem;
    color: #1f2937;
    background: white;
    transition: border-color 0.2s, box-shadow 0.2s;
    font-family: inherit;
    resize: vertical;
}

.banco-form-group select:focus[b-5rq2td2bl1],
.banco-form-group input:focus[b-5rq2td2bl1],
.banco-form-group textarea:focus[b-5rq2td2bl1] {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px var(--bg-primary-subtle);
}

.banco-form-hint[b-5rq2td2bl1] {
    font-size: 0.75rem;
    color: #9ca3af;
}

/* ============================================
   ANSWERS SECTION
   ============================================ */
.banco-answers-section[b-5rq2td2bl1] {
    margin-top: 0.5rem;
    border-top: 1px solid #e5e7eb;
    padding-top: 1rem;
}

.banco-answers-header[b-5rq2td2bl1] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.75rem;
}

.banco-answers-header h3[b-5rq2td2bl1] {
    font-size: 0.95rem;
    font-weight: 600;
    color: #1f2937;
    margin: 0;
}

.banco-no-answers[b-5rq2td2bl1] {
    text-align: center;
    color: #9ca3af;
    font-size: 0.875rem;
    padding: 1.5rem 0;
}

.banco-answers-list[b-5rq2td2bl1] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.banco-answer-item[b-5rq2td2bl1] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.6rem 0.75rem;
    background: #f9fafb;
    border-radius: 10px;
    border: 1px solid #e5e7eb;
    transition: border-color 0.2s;
}

.banco-answer-item:hover[b-5rq2td2bl1] {
    border-color: #d1d5db;
}

.banco-answer-order[b-5rq2td2bl1] {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--color-primary);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.78rem;
    font-weight: 700;
    flex-shrink: 0;
}

.banco-answer-content[b-5rq2td2bl1] {
    flex: 1;
}

.banco-answer-content input[b-5rq2td2bl1] {
    width: 100%;
    padding: 0.4rem 0.6rem;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 0.85rem;
    color: #1f2937;
    background: white;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.banco-answer-content input:focus[b-5rq2td2bl1] {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 2px var(--bg-primary-subtle);
}

.banco-answer-content input:disabled[b-5rq2td2bl1] {
    background: #f3f4f6;
    color: #6b7280;
    cursor: not-allowed;
}

/* Correct checkbox */
.banco-answer-correct[b-5rq2td2bl1] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8rem;
    color: #4b5563;
    cursor: pointer;
    white-space: nowrap;
    user-select: none;
}

.banco-answer-correct input[type="checkbox"][b-5rq2td2bl1] {
    width: 16px;
    height: 16px;
    accent-color: var(--color-success);
    cursor: pointer;
}

/* ============================================
   DETAIL MODAL CONTENT
   ============================================ */
.banco-detail-badges[b-5rq2td2bl1] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 1.25rem;
}

.banco-detail-question[b-5rq2td2bl1] {
    margin-bottom: 1.25rem;
}

.banco-detail-question h3[b-5rq2td2bl1] {
    font-size: 0.85rem;
    font-weight: 600;
    color: #6b7280;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    margin: 0 0 0.5rem;
}

.banco-detail-question p[b-5rq2td2bl1] {
    font-size: 0.95rem;
    color: #1f2937;
    line-height: 1.6;
    margin: 0;
    white-space: pre-wrap;
    word-break: break-word;
}

.banco-detail-tags[b-5rq2td2bl1] {
    margin-bottom: 1.25rem;
}

.banco-detail-tags h4[b-5rq2td2bl1] {
    font-size: 0.8rem;
    font-weight: 600;
    color: #6b7280;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    margin: 0 0 0.5rem;
}

.banco-detail-answers[b-5rq2td2bl1] {
    margin-bottom: 1rem;
}

.banco-detail-answers h4[b-5rq2td2bl1] {
    font-size: 0.8rem;
    font-weight: 600;
    color: #6b7280;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    margin: 0 0 0.75rem;
}

.banco-detail-answers-list[b-5rq2td2bl1] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.banco-detail-answer[b-5rq2td2bl1] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.65rem 0.85rem;
    background: #f9fafb;
    border-radius: 10px;
    border: 1px solid #e5e7eb;
    font-size: 0.9rem;
    color: #374151;
}

.banco-answer-correct-item[b-5rq2td2bl1] {
    background: rgba(34, 197, 94, 0.06);
    border-color: rgba(34, 197, 94, 0.3);
}

.banco-detail-answer-indicator[b-5rq2td2bl1] {
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.banco-answer-correct-item .banco-detail-answer-indicator[b-5rq2td2bl1] {
    color: var(--color-success);
}

.banco-detail-answer:not(.banco-answer-correct-item) .banco-detail-answer-indicator[b-5rq2td2bl1] {
    color: #d1d5db;
}

.banco-detail-open-note[b-5rq2td2bl1] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    background: rgba(59, 130, 246, 0.06);
    border: 1px solid rgba(59, 130, 246, 0.2);
    border-radius: 10px;
    color: #2563eb;
    font-size: 0.875rem;
}

.banco-detail-open-note svg[b-5rq2td2bl1] {
    flex-shrink: 0;
}

/* ============================================
   DELETE CONFIRMATION
   ============================================ */
.banco-delete-warning[b-5rq2td2bl1] {
    text-align: center;
    padding: 1rem 0;
}

.banco-delete-icon[b-5rq2td2bl1] {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: var(--bg-error-subtle);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1rem;
    color: var(--color-error);
}

.banco-delete-warning p[b-5rq2td2bl1] {
    font-size: 0.9rem;
    color: #4b5563;
    margin: 0 0 1rem;
    line-height: 1.5;
}

.banco-delete-question-preview[b-5rq2td2bl1] {
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 0.75rem 1rem;
    text-align: left;
    font-size: 0.85rem;
}

.banco-delete-question-preview strong[b-5rq2td2bl1] {
    color: #374151;
    margin-right: 0.35rem;
}

.banco-delete-question-preview span[b-5rq2td2bl1] {
    color: #6b7280;
}

/* ============================================
   BUTTONS (page-specific)
   ============================================ */
.btn[b-5rq2td2bl1] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem 1rem;
    border: none;
    border-radius: 8px;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
    text-decoration: none;
}

.btn-primary[b-5rq2td2bl1] {
    background: var(--color-primary);
    color: white;
}

.btn-primary:hover[b-5rq2td2bl1] {
    background: var(--color-primary-dark);
}

.btn-primary:disabled[b-5rq2td2bl1] {
    background: #93c5fd;
    cursor: not-allowed;
}

.btn-secondary[b-5rq2td2bl1] {
    background: #f3f4f6;
    color: #374151;
    border: 1px solid #d1d5db;
}

.btn-secondary:hover[b-5rq2td2bl1] {
    background: #e5e7eb;
}

.btn-secondary:disabled[b-5rq2td2bl1] {
    opacity: 0.6;
    cursor: not-allowed;
}

.btn-danger[b-5rq2td2bl1] {
    background: var(--color-error);
    color: white;
}

.btn-danger:hover[b-5rq2td2bl1] {
    background: var(--color-error-dark);
}

.btn-danger:disabled[b-5rq2td2bl1] {
    background: #fca5a5;
    cursor: not-allowed;
}

.btn-outline[b-5rq2td2bl1] {
    background: transparent;
    color: var(--color-primary);
    border: 1px solid var(--color-primary);
}

.btn-outline:hover[b-5rq2td2bl1] {
    background: var(--bg-primary-faint);
}

.btn-sm[b-5rq2td2bl1] {
    padding: 0.35rem 0.75rem;
    font-size: 0.8rem;
}

/* Spinner inside button */
.spinner-sm[b-5rq2td2bl1] {
    width: 16px;
    height: 16px;
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-top-color: white;
    border-radius: 50%;
    animation: banco-spin-b-5rq2td2bl1 0.6s linear infinite;
}

/* ============================================
   RESPONSIVE DESIGN
   ============================================ */
@media (max-width: 1200px) {
    .banco-cards-grid[b-5rq2td2bl1] {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 1024px) {
    .banco-kpi-row[b-5rq2td2bl1] {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .banco-filter-bar[b-5rq2td2bl1] { padding: 1rem; }
    .banco-card-actions[b-5rq2td2bl1] { opacity: 1; }
    .banco-modal-footer[b-5rq2td2bl1] { padding: 0.875rem 1.25rem; }
}

@media (max-width: 900px) {
    .banco-kpi-row[b-5rq2td2bl1] {
        grid-template-columns: repeat(2, 1fr);
    }

    .banco-filter-bar[b-5rq2td2bl1] {
        flex-direction: column;
    }

    .banco-filter-group[b-5rq2td2bl1] {
        min-width: 100%;
    }

    .banco-cards-grid[b-5rq2td2bl1] {
        grid-template-columns: 1fr;
    }

    .banco-form-row[b-5rq2td2bl1] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .banco-kpi-row[b-5rq2td2bl1] {
        grid-template-columns: 1fr 1fr;
        gap: 0.75rem;
    }

    .banco-kpi-card[b-5rq2td2bl1] {
        padding: 1rem;
    }

    .banco-kpi-value[b-5rq2td2bl1] {
        font-size: 1.25rem;
    }

    .banco-modal[b-5rq2td2bl1] {
        max-height: 95vh;
        margin: 0.5rem;
    }

    .banco-modal-lg[b-5rq2td2bl1],
    .banco-modal-md[b-5rq2td2bl1] {
        max-width: 100%;
    }

    .banco-modal-body[b-5rq2td2bl1] {
        padding: 1rem;
    }

    .banco-modal-footer[b-5rq2td2bl1] {
        padding: 0.75rem 1rem;
        flex-direction: column-reverse;
    }

    .banco-modal-footer .btn[b-5rq2td2bl1] {
        width: 100%;
        justify-content: center;
    }

    .page-header[b-5rq2td2bl1] {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.75rem;
    }

    .banco-answer-item[b-5rq2td2bl1] {
        flex-wrap: wrap;
    }

    .banco-answer-content[b-5rq2td2bl1] {
        flex-basis: 100%;
        order: 3;
    }
}

@media (max-width: 480px) {
    .banco-kpi-row[b-5rq2td2bl1] {
        grid-template-columns: 1fr;
    }
}
/* /Pages/Private/Becas.razor.rz.scp.css */
/* ============================================
   Becas · Tesorería · BEM scoped
   ============================================ */

.becas-root[b-wsf250dwl3] {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

/* ── KPI grid ── */
.becas-stats[b-wsf250dwl3] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

/* ── Tabs ── */
.becas-tabs[b-wsf250dwl3] {
    display: flex;
    gap: 4px;
    border-bottom: 1px solid var(--border-soft);
}

.becas-tabs__btn[b-wsf250dwl3] {
    background: transparent;
    border: none;
    padding: 10px 18px;
    font-size: 13px;
    font-weight: 600;
    color: var(--text-muted);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border-bottom: 2px solid transparent;
    transition: color 160ms ease, border-color 160ms ease;
    font-family: inherit;
    margin-bottom: -1px;
}

.becas-tabs__btn:hover[b-wsf250dwl3] { color: var(--color-brand-green); }

.becas-tabs__btn.is-active[b-wsf250dwl3] {
    color: var(--color-brand-red);
    border-bottom-color: var(--color-brand-red);
}

/* ── Layout 2fr/1fr ── */
.becas-layout[b-wsf250dwl3] {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 24px;
}

/* ── Card tabla ── */
.becas-card[b-wsf250dwl3] {
    padding: 0;
    overflow: hidden;
}

.becas-card__head[b-wsf250dwl3] {
    padding: 16px 22px;
    border-bottom: 1px solid var(--border-soft);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.becas-card__title[b-wsf250dwl3] {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
    color: var(--color-brand-green);
    margin: 0;
}

/* ── Search ── */
.becas-search[b-wsf250dwl3] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-paper);
    min-width: 220px;
}
.becas-search input[b-wsf250dwl3] {
    flex: 1;
    border: none;
    outline: none;
    background: transparent;
    font-size: 13px;
    color: var(--color-brand-green);
    font-family: inherit;
}
.becas-search input[b-wsf250dwl3]::placeholder { color: var(--text-muted); }

/* ── Tabla ── */
.becas-table-wrap[b-wsf250dwl3] { overflow-x: auto; }
.becas-table[b-wsf250dwl3] {
    width: 100%;
    border-collapse: collapse;
}

.becas-th[b-wsf250dwl3] {
    padding: 12px 18px;
    text-align: left;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    background: var(--bg-page);
    border-bottom: 1px solid var(--border-soft);
}
.becas-th--right[b-wsf250dwl3] { text-align: right; }
.becas-th--center[b-wsf250dwl3] { text-align: center; }

.becas-row[b-wsf250dwl3] {
    border-top: 1px solid var(--border-soft);
    transition: background-color 140ms ease;
}
.becas-row:hover[b-wsf250dwl3] { background: var(--bg-paper); }

.becas-td[b-wsf250dwl3] {
    padding: 12px 18px;
    font-size: 13px;
    color: var(--color-brand-green);
    vertical-align: middle;
}
.becas-td--right[b-wsf250dwl3]   { text-align: right; }
.becas-td--center[b-wsf250dwl3]  { text-align: center; }
.becas-td--success[b-wsf250dwl3] { color: var(--state-success); font-weight: 600; }
.becas-td--gold[b-wsf250dwl3]    { color: var(--color-brand-gold); font-weight: 700; }

/* ── Student cell ── */
.becas-student[b-wsf250dwl3] {
    display: flex;
    align-items: center;
    gap: 10px;
}
.becas-student__avatar[b-wsf250dwl3] {
    width: 30px;
    height: 30px;
    border-radius: 99px;
    background: var(--bg-page);
    color: var(--color-brand-gold);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.becas-student__name[b-wsf250dwl3] {
    font-size: 13px;
    font-weight: 600;
    color: var(--color-brand-green);
    line-height: 1.25;
}
.becas-student__sub[b-wsf250dwl3] {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 2px;
}

.becas-actions[b-wsf250dwl3] {
    display: inline-flex;
    gap: 6px;
}

/* ── Side card "POR TIPO" ── */
.becas-side[b-wsf250dwl3] {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.becas-side__list[b-wsf250dwl3] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.becas-type__head[b-wsf250dwl3] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 13px;
    color: var(--color-brand-green);
    margin-bottom: 6px;
}

.becas-type__label[b-wsf250dwl3] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
}

.becas-type__count[b-wsf250dwl3] {
    font-weight: 700;
}

.becas-type__bar[b-wsf250dwl3] {
    height: 6px;
    background: var(--bg-page);
    border-radius: 99px;
    overflow: hidden;
}

.becas-type__bar-fill[b-wsf250dwl3] {
    height: 6px;
    border-radius: 99px;
    transition: width 800ms cubic-bezier(.2,.7,.2,1);
}

/* ── Callout dorado ── */
.becas-callout[b-wsf250dwl3] {
    margin-top: 8px;
    padding: 14px 16px;
    background: var(--color-brand-gold-soft);
    border: 1px solid var(--color-brand-gold);
    border-radius: var(--radius-md);
    font-size: 12px;
    color: var(--color-brand-green);
    line-height: 1.55;
}

/* ── State ── */
.becas-state[b-wsf250dwl3] {
    padding: 56px 24px;
    text-align: center;
    color: var(--text-muted);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

/* ── Icon buttons ── */
.btn-icon[b-wsf250dwl3] {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    border: 1px solid var(--border-soft);
    background: var(--bg-paper);
    color: var(--color-brand-green);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 160ms ease;
}
.btn-icon:hover[b-wsf250dwl3] {
    background: var(--color-brand-gold-soft);
    border-color: var(--color-brand-gold);
    color: var(--color-brand-gold);
}
.btn-icon--danger[b-wsf250dwl3] {
    color: var(--state-danger);
}
.btn-icon--danger:hover[b-wsf250dwl3] {
    background: rgba(160, 57, 46, 0.1);
    border-color: var(--state-danger);
    color: var(--state-danger);
}

/* ── Modal ── */
.becas-modal-overlay[b-wsf250dwl3] {
    position: fixed;
    inset: 0;
    background: rgba(15, 31, 77, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    padding: 20px;
    animation: becas-fade-b-wsf250dwl3 200ms ease;
}
@keyframes becas-fade-b-wsf250dwl3 { from { opacity: 0; } to { opacity: 1; } }

.becas-modal[b-wsf250dwl3] {
    background: var(--bg-paper);
    border-radius: var(--radius-md);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.22);
    max-height: 90vh;
    overflow-y: auto;
    width: 100%;
    animation: becas-slide-b-wsf250dwl3 220ms cubic-bezier(.2,.7,.2,1);
}
.becas-modal--sm[b-wsf250dwl3] { max-width: 560px; }
@keyframes becas-slide-b-wsf250dwl3 {
    from { transform: translateY(16px); opacity: 0; }
    to   { transform: translateY(0); opacity: 1; }
}

.becas-modal__head[b-wsf250dwl3] {
    padding: 22px 26px;
    border-bottom: 1px solid var(--border-soft);
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
}

.becas-modal__eyebrow[b-wsf250dwl3] {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--color-brand-red);
    margin-bottom: 6px;
}

.becas-modal__title[b-wsf250dwl3] {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 600;
    color: var(--color-brand-green);
    margin: 0;
    line-height: 1.2;
}

.becas-modal__close[b-wsf250dwl3] {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    border: 1px solid var(--border-soft);
    background: var(--bg-paper);
    color: var(--color-brand-green);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.becas-modal__close:hover[b-wsf250dwl3] { background: var(--bg-page); }

.becas-modal__footer[b-wsf250dwl3] {
    padding: 18px 26px;
    border-top: 1px solid var(--border-soft);
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

/* ── Form ── */
.becas-form[b-wsf250dwl3] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    padding: 22px 26px;
}

.becas-form__group[b-wsf250dwl3] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.becas-form__group--full[b-wsf250dwl3] { grid-column: 1 / -1; }

.becas-form__group label[b-wsf250dwl3] {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--text-muted);
}

.becas-form__group input[b-wsf250dwl3],
.becas-form__group select[b-wsf250dwl3],
.becas-form__group textarea[b-wsf250dwl3] {
    padding: 10px 14px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-paper);
    color: var(--color-brand-green);
    font-size: 13px;
    font-family: inherit;
}
.becas-form__group input:focus[b-wsf250dwl3],
.becas-form__group select:focus[b-wsf250dwl3],
.becas-form__group textarea:focus[b-wsf250dwl3] {
    outline: none;
    border-color: var(--color-brand-gold);
    box-shadow: 0 0 0 3px var(--color-brand-gold-soft);
}

.becas-checkbox[b-wsf250dwl3] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--color-brand-green);
    padding-top: 8px;
}

/* ── Months chips ── */
.becas-months[b-wsf250dwl3] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 4px;
}

.becas-month-chip[b-wsf250dwl3] {
    padding: 6px 12px;
    border-radius: 99px;
    border: 1px solid var(--border-soft);
    background: var(--bg-paper);
    color: var(--text-muted);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    font-family: inherit;
    transition: all 160ms ease;
}
.becas-month-chip:hover[b-wsf250dwl3] { border-color: var(--color-brand-gold); }
.becas-month-chip.is-active[b-wsf250dwl3] {
    background: var(--color-brand-gold);
    color: var(--bg-paper);
    border-color: var(--color-brand-gold);
}

.becas-months-actions[b-wsf250dwl3] {
    display: flex;
    gap: 8px;
    margin-top: 10px;
}

/* ── Bulk body / confirm ── */
.becas-bulk-body[b-wsf250dwl3] {
    padding: 22px 26px;
    font-size: 14px;
    color: var(--text-secondary);
}
.becas-bulk-body p[b-wsf250dwl3] { margin: 0; line-height: 1.55; }

.becas-btn--danger[b-wsf250dwl3] {
    background: var(--state-danger);
    border-color: var(--state-danger);
}

/* ── Spinner ── */
.spinner-sm[b-wsf250dwl3] {
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255,255,255,0.4);
    border-top-color: currentColor;
    border-radius: 50%;
    display: inline-block;
    margin-right: 6px;
    animation: becas-spin-b-wsf250dwl3 700ms linear infinite;
}
.spinner[b-wsf250dwl3] {
    width: 36px;
    height: 36px;
    border: 3px solid var(--border-soft);
    border-top-color: var(--color-brand-red);
    border-radius: 50%;
    animation: becas-spin-b-wsf250dwl3 800ms linear infinite;
}
@keyframes becas-spin-b-wsf250dwl3 { to { transform: rotate(360deg); } }

/* ── Responsive ── */
.becas-table-wrap[b-wsf250dwl3] {
    -webkit-overflow-scrolling: touch;
    overflow-y: hidden;
}

@media (max-width: 1200px) {
    .becas-stats[b-wsf250dwl3]  { grid-template-columns: repeat(2, 1fr); }
    .becas-layout[b-wsf250dwl3] { grid-template-columns: 1fr; }
}
@media (max-width: 1024px) {
    .becas-tabs[b-wsf250dwl3] { overflow-x: auto; flex-wrap: nowrap; -webkit-overflow-scrolling: touch; }
    .becas-tabs__btn[b-wsf250dwl3] { white-space: nowrap; flex-shrink: 0; }
}
@media (max-width: 768px) {
    .becas-table[b-wsf250dwl3] { min-width: 680px; }
    .becas-search[b-wsf250dwl3] { flex: 1; min-width: 0; }
}
@media (max-width: 720px) {
    .becas-stats[b-wsf250dwl3] { grid-template-columns: 1fr; }
    .becas-form[b-wsf250dwl3] { grid-template-columns: 1fr; }
    .becas-card__head[b-wsf250dwl3] { flex-direction: column; align-items: stretch; }
    .becas-search[b-wsf250dwl3] { min-width: 0; width: 100%; }
}
@media (max-width: 480px) {
    .becas-modal[b-wsf250dwl3] { max-width: 92vw; }
    .becas-modal--sm[b-wsf250dwl3] { max-width: 92vw; }
    .becas-modal__head[b-wsf250dwl3],
    .becas-modal__footer[b-wsf250dwl3],
    .becas-form[b-wsf250dwl3],
    .becas-bulk-body[b-wsf250dwl3] { padding-left: 16px; padding-right: 16px; }
    .becas-modal__footer[b-wsf250dwl3] { flex-direction: column-reverse; }
    .becas-modal__footer > *[b-wsf250dwl3] { width: 100%; justify-content: center; }
    .becas-th[b-wsf250dwl3], .becas-td[b-wsf250dwl3] { padding: 10px 12px; }
    .becas-months-actions[b-wsf250dwl3] { flex-direction: column; }
    .becas-months-actions > *[b-wsf250dwl3] { width: 100%; }
}
/* /Pages/Private/Biblioteca.razor.rz.scp.css */
/* ============================================
   BIBLIOTECA DIGITAL · Aula virtual · SAVA School
   ============================================ */

/* Search inline */
.bib-search[b-n0l37czq23] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0 12px;
    height: 36px;
    background: var(--bg-paper);
    border: 1px solid var(--border-medium);
    border-radius: var(--radius-sm);
    color: var(--text-muted);
    min-width: 260px;
}

.bib-search input[b-n0l37czq23] {
    border: none;
    outline: none;
    background: transparent;
    font-size: 13px;
    color: var(--text-primary);
    flex: 1;
    font-family: inherit;
}

.bib-search:focus-within[b-n0l37czq23] {
    border-color: var(--color-brand-green);
    box-shadow: var(--shadow-focus);
}

/* KPIs */
.bib-stats[b-n0l37czq23] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin: 24px 0 20px;
}

@media (max-width: 980px) { .bib-stats[b-n0l37czq23] { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 540px) { .bib-stats[b-n0l37czq23] { grid-template-columns: 1fr; } }

/* Filtros pills */
.bib-filters[b-n0l37czq23] {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 20px;
}

.bib-filter[b-n0l37czq23] {
    background: var(--bg-surface, #FFFBF3);
    border: 1px solid var(--border-soft);
    border-radius: 99px;
    padding: 6px 14px;
    font-size: 12px;
    font-weight: 500;
    color: var(--text-secondary);
    cursor: pointer;
    font-family: inherit;
    transition: all 160ms ease;
}

.bib-filter:hover[b-n0l37czq23] {
    border-color: var(--border-medium);
    color: var(--text-primary);
}

.bib-filter.is-active[b-n0l37czq23] {
    background: var(--color-brand-red);
    border-color: var(--color-brand-red);
    color: var(--bg-paper);
}

/* Loading */
.bib-state[b-n0l37czq23] {
    padding: 60px 20px;
    text-align: center;
    color: var(--text-muted);
}

.bib-spinner[b-n0l37czq23] {
    width: 32px;
    height: 32px;
    border: 3px solid var(--border-soft);
    border-top-color: var(--color-brand-red);
    border-radius: 50%;
    margin: 0 auto 12px;
    animation: bib-spin-b-n0l37czq23 700ms linear infinite;
}

@keyframes bib-spin-b-n0l37czq23 { to { transform: rotate(360deg); } }

/* Grid de recursos */
.bib-grid[b-n0l37czq23] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

@media (max-width: 1080px) { .bib-grid[b-n0l37czq23] { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 780px)  { .bib-grid[b-n0l37czq23] { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px)  { .bib-grid[b-n0l37czq23] { grid-template-columns: 1fr; } }

.bib-card[b-n0l37czq23] {
    position: relative;
    background: var(--bg-surface, #FFFBF3);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    padding: 20px 18px 18px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    overflow: hidden;
}

.bib-card__icon[b-n0l37czq23] {
    width: 64px;
    height: 64px;
    border-radius: 14px;
    background: var(--color-brand-blue-soft);
    color: var(--color-brand-blue);
    display: grid;
    place-items: center;
}

.bib-card__icon[data-tipo="pdf"][b-n0l37czq23]   { background: rgba(160,57,46,0.10); color: var(--color-brand-red); }
.bib-card__icon[data-tipo="video"][b-n0l37czq23] { background: var(--color-brand-gold-soft); color: var(--color-brand-gold); }
.bib-card__icon[data-tipo="audio"][b-n0l37czq23] { background: var(--color-brand-green-soft); color: var(--color-brand-green); }
.bib-card__icon[data-tipo="link"][b-n0l37czq23]  { background: var(--color-brand-blue-soft); color: var(--color-brand-blue); }

.bib-card__body[b-n0l37czq23] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 1;
}

.bib-card__title[b-n0l37czq23] {
    font-family: var(--font-display, Georgia, serif);
    font-size: 15px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.bib-card__meta[b-n0l37czq23] {
    font-size: 12px;
    color: var(--text-muted);
}

.bib-card__cat[b-n0l37czq23] { margin-top: auto; }

.bib-card__download[b-n0l37czq23] {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 32px;
    height: 32px;
    border-radius: 99px;
    border: 1px solid var(--border-soft);
    background: var(--bg-paper);
    color: var(--text-secondary);
    cursor: pointer;
    display: grid;
    place-items: center;
    transition: all 160ms ease;
}

.bib-card__download:hover[b-n0l37czq23] {
    background: var(--color-brand-red);
    color: var(--bg-paper);
    border-color: var(--color-brand-red);
}

@media (max-width: 768px) {
    .bib-search[b-n0l37czq23] { min-width: 100%; width: 100%; }
    .bib-filters[b-n0l37czq23] { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 4px; }
    .bib-filter[b-n0l37czq23] { white-space: nowrap; }
}

@media (max-width: 480px) {
    .bib-card[b-n0l37czq23] { padding: 16px 14px 14px; }
    .bib-card__icon[b-n0l37czq23] { width: 52px; height: 52px; }
}
/* /Pages/Private/BusEscolar.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Bus escolar (privada) · scoped styles
   ════════════════════════════════════════════════════════════════════
   Institucional · sin emojis · stats + tabla rutas + mapa SVG.
   ════════════════════════════════════════════════════════════════════ */

.busescolar-root[b-hvdd5l4yjh] {
    padding: 8px 0 32px;
    max-width: 1320px;
    margin: 0 auto;
}

/* ─────────────────────────────────────
   STATS GRID · 4 KPIs
   ───────────────────────────────────── */
.busescolar-stats[b-hvdd5l4yjh] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin: 24px 0 32px;
}

.busescolar-stats > *[b-hvdd5l4yjh] {
    height: 100%;
}

/* ─────────────────────────────────────
   GRID PRINCIPAL: tabla + mapa
   ───────────────────────────────────── */
.busescolar-grid[b-hvdd5l4yjh] {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 24px;
    margin-bottom: 32px;
}

/* ─────────────────────────────────────
   CARD BASE
   ───────────────────────────────────── */
.busescolar-card[b-hvdd5l4yjh] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-warm-sm);
    height: 100%;
}

.busescolar-card--flush[b-hvdd5l4yjh] {
    padding: 0;
    overflow: hidden;
}

.busescolar-card__head[b-hvdd5l4yjh] {
    padding: 16px 20px;
    border-bottom: 1px solid var(--border-soft);
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}

.busescolar-card__eyebrow[b-hvdd5l4yjh] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
    margin-bottom: 4px;
}

.busescolar-card__title[b-hvdd5l4yjh] {
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.25;
    margin: 0;
}

/* ─────────────────────────────────────
   TABS (filtros turno)
   ───────────────────────────────────── */
.busescolar-tabs[b-hvdd5l4yjh] {
    display: inline-flex;
    background: var(--bg-page);
    border-radius: 99px;
    padding: 3px;
    gap: 2px;
}

.busescolar-tab[b-hvdd5l4yjh] {
    background: transparent;
    border: none;
    padding: 6px 14px;
    border-radius: 99px;
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
    cursor: pointer;
    transition: background 160ms ease-out;
    font-family: var(--font-body);
}

.busescolar-tab:hover[b-hvdd5l4yjh] {
    background: rgba(255, 255, 255, 0.6);
}

.busescolar-tab--active[b-hvdd5l4yjh] {
    background: var(--bg-surface);
    color: var(--text-primary);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

/* ─────────────────────────────────────
   TABLA RUTAS
   ───────────────────────────────────── */
.busescolar-table-wrap[b-hvdd5l4yjh] {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
}

.busescolar-table[b-hvdd5l4yjh] {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.busescolar-table thead th[b-hvdd5l4yjh] {
    text-align: left;
    padding: 12px 16px;
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
    border-bottom: 1px solid var(--border-soft);
    background: var(--bg-page);
}

.busescolar-table tbody td[b-hvdd5l4yjh] {
    padding: 14px 16px;
    border-bottom: 1px solid var(--border-soft);
    color: var(--text-primary);
    vertical-align: middle;
}

.busescolar-table tbody tr:last-child td[b-hvdd5l4yjh] {
    border-bottom: none;
}

.busescolar-table tbody tr:hover td[b-hvdd5l4yjh] {
    background: var(--bg-page);
}

.busescolar-table__num[b-hvdd5l4yjh] {
    text-align: right;
}

.busescolar-table__actions[b-hvdd5l4yjh] {
    text-align: right;
    width: 60px;
}

.busescolar-route[b-hvdd5l4yjh] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 500;
}

.busescolar-route__origin[b-hvdd5l4yjh],
.busescolar-route__dest[b-hvdd5l4yjh] {
    color: var(--text-primary);
}

.busescolar-route__arrow[b-hvdd5l4yjh] {
    color: var(--text-muted);
    display: inline-flex;
    align-items: center;
}

.busescolar-plate[b-hvdd5l4yjh] {
    font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
    background: var(--bg-page);
    padding: 3px 8px;
    border-radius: 4px;
    border: 1px solid var(--border-soft);
    letter-spacing: 0.04em;
}

.busescolar-schedule[b-hvdd5l4yjh] {
    color: var(--text-secondary);
    font-size: 13px;
    white-space: nowrap;
}

.busescolar-schedule__arrow[b-hvdd5l4yjh] {
    color: var(--text-muted);
    margin: 0 4px;
}

.busescolar-iconbtn[b-hvdd5l4yjh] {
    background: transparent;
    border: 1px solid transparent;
    width: 32px;
    height: 32px;
    border-radius: 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: var(--text-secondary);
    transition: background 160ms ease-out, color 160ms ease-out;
}

.busescolar-iconbtn:hover[b-hvdd5l4yjh] {
    background: var(--bg-page);
    color: var(--text-primary);
    border-color: var(--border-soft);
}

/* ─────────────────────────────────────
   MAPA REFERENCIAL
   ───────────────────────────────────── */
.busescolar-map[b-hvdd5l4yjh] {
    position: relative;
    aspect-ratio: 1 / 1;
    background: var(--bg-page);
    overflow: hidden;
}

.busescolar-map__svg[b-hvdd5l4yjh] {
    width: 100%;
    height: 100%;
    display: block;
}

.busescolar-map__tag[b-hvdd5l4yjh] {
    position: absolute;
    left: 16px;
    bottom: 16px;
    font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
    font-size: 10px;
    letter-spacing: 0.16em;
    color: var(--text-secondary);
    background: var(--bg-surface);
    padding: 5px 10px;
    border-radius: 4px;
    border: 1px solid var(--border-soft);
    font-weight: 600;
}

/* ─────────────────────────────────────
   RESPONSIVE
   ───────────────────────────────────── */
@media (max-width: 1200px) {
    .busescolar-stats[b-hvdd5l4yjh] {
        grid-template-columns: 1fr 1fr;
    }

    .busescolar-grid[b-hvdd5l4yjh] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .busescolar-root[b-hvdd5l4yjh] {
        padding: 4px 0 24px;
    }

    .busescolar-table[b-hvdd5l4yjh] {
        min-width: 600px;
    }

    .busescolar-card__head[b-hvdd5l4yjh] {
        padding: 14px 16px;
    }

    .busescolar-card__title[b-hvdd5l4yjh] {
        font-size: 18px;
    }
}

@media (max-width: 640px) {
    .busescolar-stats[b-hvdd5l4yjh] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 480px) {
    .busescolar-stats[b-hvdd5l4yjh] {
        gap: 12px;
        margin: 20px 0 24px;
    }

    .busescolar-table thead th[b-hvdd5l4yjh],
    .busescolar-table tbody td[b-hvdd5l4yjh] {
        padding: 12px 14px;
    }
}
/* /Pages/Private/Calendario.razor.rz.scp.css */
/* ──────────────────────────────────────────────
   CALENDARIO · SAVA School (scoped)
   ────────────────────────────────────────────── */

.cal-root[b-8kvmgqni2x] {
    position: relative;
}

/* Navegación de mes en el header */
.cal-nav-btn[b-8kvmgqni2x] {
    padding: 8px 10px;
}

.cal-period-label[b-8kvmgqni2x] {
    font-family: var(--font-display);
    font-size: 16px;
    font-weight: 600;
    padding: 0 12px;
    color: var(--text-primary);
}

.cal-loading[b-8kvmgqni2x] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    min-height: 320px;
    color: var(--text-muted);
    font-size: 14px;
}

/* Layout 2.5fr 1fr */
.cal-grid[b-8kvmgqni2x] {
    display: grid;
    grid-template-columns: 2.5fr 1fr;
    gap: 24px;
}

/* ──────── Card grid mensual ──────── */
.cal-month-card[b-8kvmgqni2x] {
    padding: 0;
    overflow: hidden;
}

.cal-month-weekdays[b-8kvmgqni2x] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    background: var(--bg-page);
}

.cal-month-weekdays__cell[b-8kvmgqni2x] {
    padding: 12px 16px;
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
}

.cal-month-grid[b-8kvmgqni2x] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    grid-auto-rows: 110px;
}

.cal-month-cell[b-8kvmgqni2x] {
    padding: 8px;
    border: 1px solid var(--border-soft);
    background: var(--bg-surface);
    position: relative;
    overflow: hidden;
    cursor: pointer;
    transition: background 160ms ease;
}

.cal-month-cell:hover[b-8kvmgqni2x] {
    background: var(--bg-page);
}

.cal-month-cell--other[b-8kvmgqni2x] {
    background: var(--bg-page);
    opacity: 0.5;
    cursor: default;
}

.cal-month-cell__num[b-8kvmgqni2x] {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-primary);
    margin-bottom: 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 99px;
    padding: 2px 6px;
}

.cal-month-cell__num--today[b-8kvmgqni2x] {
    width: 24px;
    height: 24px;
    background: var(--color-brand-red);
    color: var(--bg-paper);
    padding: 0;
}

.cal-month-pill[b-8kvmgqni2x] {
    font-size: 10px;
    padding: 3px 6px;
    color: var(--bg-paper);
    border-radius: 3px;
    margin-bottom: 3px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-weight: 600;
    letter-spacing: 0.02em;
    cursor: pointer;
}

.cal-month-cell__more[b-8kvmgqni2x] {
    font-size: 10px;
    color: var(--text-muted);
    font-weight: 600;
}

/* ──────── Sidebar HOY + leyenda ──────── */
.cal-side[b-8kvmgqni2x] {
    display: grid;
    gap: 16px;
    align-content: start;
}

.cal-today-card__eyebrow[b-8kvmgqni2x],
.cal-legend-card__eyebrow[b-8kvmgqni2x] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
    margin-bottom: 6px;
}

.cal-today-card__title[b-8kvmgqni2x] {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 600;
    margin: 0 0 18px;
    color: var(--text-primary);
    text-transform: capitalize;
}

.cal-today-list[b-8kvmgqni2x] {
    display: grid;
    gap: 0;
}

.cal-today-empty[b-8kvmgqni2x] {
    color: var(--text-muted);
    font-size: 13px;
    margin: 0;
}

.cal-today-row[b-8kvmgqni2x] {
    display: flex;
    gap: 14px;
    align-items: center;
    padding: 10px 0;
    cursor: pointer;
    transition: opacity 160ms ease;
}

.cal-today-row:hover[b-8kvmgqni2x] {
    opacity: 0.7;
}

.cal-today-row--bordered[b-8kvmgqni2x] {
    border-top: 1px solid var(--border-soft);
}

.cal-today-row__time[b-8kvmgqni2x] {
    font-family: var(--font-display);
    font-size: 14px;
    font-weight: 700;
    min-width: 48px;
}

.cal-today-row__name[b-8kvmgqni2x] {
    flex: 1;
    font-size: 13px;
    color: var(--text-primary);
    font-weight: 500;
}

.cal-today-row__bar[b-8kvmgqni2x] {
    width: 6px;
    height: 32px;
    border-radius: 3px;
}

.cal-legend-card[b-8kvmgqni2x] {
    padding-top: 18px;
}

.cal-legend-list[b-8kvmgqni2x] {
    display: grid;
    gap: 10px;
}

.cal-legend-row[b-8kvmgqni2x] {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    color: var(--text-secondary);
}

.cal-legend-dot[b-8kvmgqni2x] {
    width: 16px;
    height: 16px;
    border-radius: 4px;
    flex-shrink: 0;
}

/* ──────── Modal Ver Evento (cabecera coloreada) ──────── */
.cal-view-modal[b-8kvmgqni2x] {
    padding: 0;
}

.cal-view-head[b-8kvmgqni2x] {
    position: relative;
    padding: 22px 24px 18px;
    color: var(--bg-paper);
}

.cal-view-head__badge[b-8kvmgqni2x] {
    display: inline-block;
    font-size: 10px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 99px;
    background: rgba(255,255,255,0.18);
    margin-bottom: 10px;
}

.cal-view-head__title[b-8kvmgqni2x] {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 600;
    color: var(--bg-paper);
    margin: 0;
    padding-right: 30px;
}

.cal-view-head__close[b-8kvmgqni2x] {
    position: absolute;
    top: 18px;
    right: 18px;
    background: rgba(255,255,255,0.16);
    color: var(--bg-paper);
    border: 0;
    width: 28px;
    height: 28px;
    border-radius: 99px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.cal-view-head__close:hover[b-8kvmgqni2x] {
    background: rgba(255,255,255,0.28);
}

.cal-view-row[b-8kvmgqni2x] {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    padding: 12px 0;
    border-bottom: 1px solid var(--border-soft);
    color: var(--text-secondary);
}

.cal-view-row:last-child[b-8kvmgqni2x] {
    border-bottom: none;
}

.cal-view-row__label[b-8kvmgqni2x] {
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
    margin-bottom: 2px;
}

.cal-view-row__value[b-8kvmgqni2x] {
    font-size: 14px;
    color: var(--text-primary);
}

.cal-view-desc[b-8kvmgqni2x] {
    margin-top: 8px;
}

.cal-view-desc p[b-8kvmgqni2x] {
    margin: 6px 0 0;
    color: var(--text-secondary);
    line-height: 1.55;
    font-size: 14px;
}

.cal-checkbox[b-8kvmgqni2x] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--text-secondary);
    cursor: pointer;
    margin-top: 28px;
}

.cal-danger[b-8kvmgqni2x] {
    color: var(--color-brand-red);
}

.cal-danger:hover[b-8kvmgqni2x] {
    background: rgba(160,57,46,0.08);
}

/* Responsive */
@media (max-width: 1100px) {
    .cal-grid[b-8kvmgqni2x] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .cal-month-weekdays__cell[b-8kvmgqni2x] {
        padding: 10px 8px;
        font-size: 10px;
    }

    .cal-month-grid[b-8kvmgqni2x] {
        grid-auto-rows: 88px;
    }

    .cal-month-cell[b-8kvmgqni2x] {
        padding: 6px;
    }

    .cal-today-card__title[b-8kvmgqni2x] {
        font-size: 19px;
    }
}

@media (max-width: 720px) {
    .cal-month-grid[b-8kvmgqni2x] {
        grid-auto-rows: 80px;
    }

    .cal-month-pill[b-8kvmgqni2x] {
        font-size: 9px;
        padding: 2px 4px;
    }

    .cal-month-cell[b-8kvmgqni2x] {
        padding: 4px;
    }
}

@media (max-width: 480px) {
    .cal-month-weekdays__cell[b-8kvmgqni2x] {
        padding: 8px 4px;
        font-size: 9px;
        letter-spacing: 0.06em;
    }

    .cal-month-grid[b-8kvmgqni2x] {
        grid-auto-rows: 64px;
    }

    .cal-month-cell[b-8kvmgqni2x] {
        padding: 3px;
    }

    .cal-month-cell__num[b-8kvmgqni2x] {
        font-size: 11px;
    }

    .cal-month-pill[b-8kvmgqni2x] {
        font-size: 8px;
        padding: 1px 3px;
    }

    .cal-month-cell__more[b-8kvmgqni2x] {
        font-size: 9px;
    }

    .cal-view-head[b-8kvmgqni2x] {
        padding: 18px 16px 14px;
    }

    .cal-view-head__title[b-8kvmgqni2x] {
        font-size: 18px;
    }
}
/* /Pages/Private/CambiarContrasena.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Cambiar contraseña (privada) · scoped styles
   ════════════════════════════════════════════════════════════════════
   Institucional · sin emojis · card centrada + requisitos + toggle eye.
   ════════════════════════════════════════════════════════════════════ */

.pwd-root[b-geahwv5rlb] {
    padding: 8px 0 32px;
    max-width: 1320px;
    margin: 0 auto;
}

/* ─────────────────────────────────────
   CARD CENTRADA
   ───────────────────────────────────── */
.pwd-card[b-geahwv5rlb] {
    max-width: 480px;
    margin: 32px auto 0;
    padding: 32px;
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: 12px;
    box-shadow: var(--shadow-warm-sm);
}

.pwd-card__head[b-geahwv5rlb] {
    text-align: center;
    margin-bottom: 24px;
}

.pwd-card__icon[b-geahwv5rlb] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 99px;
    background: var(--bg-page);
    color: var(--color-brand-red);
    margin-bottom: 16px;
}

.pwd-card__title[b-geahwv5rlb] {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.25;
    margin: 0 0 8px;
}

.pwd-card__lead[b-geahwv5rlb] {
    font-size: 13px;
    color: var(--text-muted);
    line-height: 1.5;
    margin: 0;
}

.pwd-alert[b-geahwv5rlb] {
    background: rgba(160, 57, 46, 0.08);
    border: 1px solid rgba(160, 57, 46, 0.2);
    color: var(--color-brand-red);
    padding: 10px 14px;
    border-radius: 6px;
    font-size: 13px;
    margin-bottom: 16px;
}

/* ─────────────────────────────────────
   FORM
   ───────────────────────────────────── */
.pwd-form[b-geahwv5rlb] {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.pwd-field[b-geahwv5rlb] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.pwd-label[b-geahwv5rlb] {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-muted);
}

.pwd-input-wrap[b-geahwv5rlb] {
    position: relative;
    display: flex;
    align-items: center;
}

.pwd-input[b-geahwv5rlb] {
    width: 100%;
    padding: 11px 40px 11px 38px;
    border: 1px solid var(--border-soft);
    border-radius: 6px;
    background: var(--bg-surface);
    font-size: 14px;
    color: var(--text-primary);
    font-family: var(--font-body);
    outline: none;
    transition: border-color 160ms ease-out, box-shadow 160ms ease-out;
}

.pwd-input:focus[b-geahwv5rlb] {
    border-color: var(--color-brand-green);
    box-shadow: var(--shadow-focus);
}

.pwd-input-icon[b-geahwv5rlb] {
    position: absolute;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    color: var(--text-muted);
    background: transparent;
    border: none;
    cursor: default;
    pointer-events: none;
}

.pwd-input-icon--left[b-geahwv5rlb] {
    left: 4px;
}

.pwd-input-icon--right[b-geahwv5rlb] {
    right: 4px;
    cursor: pointer;
    pointer-events: auto;
    border-radius: 4px;
    transition: color 160ms ease-out, background 160ms ease-out;
}

.pwd-input-icon--right:hover[b-geahwv5rlb] {
    color: var(--text-primary);
    background: var(--bg-page);
}

/* ─────────────────────────────────────
   REQUISITOS
   ───────────────────────────────────── */
.pwd-requisitos[b-geahwv5rlb] {
    background: var(--bg-page);
    border-radius: 6px;
    padding: 14px 18px;
    border: 1px solid var(--border-soft);
}

.pwd-requisitos__eyebrow[b-geahwv5rlb] {
    font-size: 10px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 700;
    margin-bottom: 10px;
}

.pwd-requisitos__list[b-geahwv5rlb] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.pwd-req[b-geahwv5rlb] {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    color: var(--text-muted);
    transition: color 160ms ease-out;
}

.pwd-req--ok[b-geahwv5rlb] {
    color: var(--state-success);
}

.pwd-req__check[b-geahwv5rlb] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 99px;
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    color: var(--text-disabled);
    transition: all 160ms ease-out;
    flex-shrink: 0;
}

.pwd-req--ok .pwd-req__check[b-geahwv5rlb] {
    background: var(--state-success);
    border-color: var(--state-success);
    color: var(--bg-paper);
}

/* ─────────────────────────────────────
   SUBMIT y back link
   ───────────────────────────────────── */
.pwd-submit[b-geahwv5rlb] {
    padding: 14px 22px;
    width: 100%;
    justify-content: center;
    margin-top: 4px;
}

.pwd-back[b-geahwv5rlb] {
    text-align: center;
    font-size: 13px;
    color: var(--color-brand-green);
    text-decoration: underline;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin-top: 4px;
    align-self: center;
}

.pwd-back:hover[b-geahwv5rlb] {
    color: var(--color-brand-red);
}

/* ─────────────────────────────────────
   RESPONSIVE
   ───────────────────────────────────── */
@media (max-width: 768px) {
    .pwd-card[b-geahwv5rlb] {
        padding: 28px 24px;
    }
}

@media (max-width: 640px) {
    .pwd-card[b-geahwv5rlb] {
        padding: 24px 20px;
        margin: 16px auto 0;
    }
}

@media (max-width: 480px) {
    .pwd-card[b-geahwv5rlb] {
        padding: 20px 16px;
    }
}
/* /Pages/Private/Citas.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Citas y reuniones (privada) · scoped styles
   ════════════════════════════════════════════════════════════════════
   AdminPageHeader, StatCard, AdminBadge viven en Shared/Sava.
   3 stats + tabs + lista vertical de citas (no tabla).
   ════════════════════════════════════════════════════════════════════ */

.citas-root[b-4uy2ju433k] {
    padding: 8px 0 32px;
    max-width: 1320px;
    margin: 0 auto;
}

/* ─────────────────────────────────────
   SELECT (filtros en header actions)
   ───────────────────────────────────── */
.citas-select[b-4uy2ju433k] {
    padding: 8px 12px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-surface);
    font-size: 13px;
    font-family: var(--font-body);
    font-weight: 500;
    color: var(--text-primary);
    outline: none;
    cursor: pointer;
}

.citas-select:focus[b-4uy2ju433k] {
    box-shadow: var(--shadow-focus, 0 0 0 3px rgba(160, 57, 46, 0.10));
}

/* ─────────────────────────────────────
   STATS GRID
   ───────────────────────────────────── */
.citas-stats[b-4uy2ju433k] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin: 24px 0 24px;
}

.citas-stats > *[b-4uy2ju433k] {
    height: 100%;
}

/* ─────────────────────────────────────
   PERIODO TABS
   ───────────────────────────────────── */
.citas-tabs[b-4uy2ju433k] {
    display: flex;
    gap: 4px;
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    padding: 6px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}

.citas-tab[b-4uy2ju433k] {
    all: unset;
    cursor: pointer;
    padding: 8px 16px;
    border-radius: var(--radius-md);
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 500;
    color: var(--text-secondary);
    transition: background 160ms ease-out, color 160ms ease-out;
}

.citas-tab:hover[b-4uy2ju433k] {
    background: var(--bg-page);
    color: var(--text-primary);
}

.citas-tab.is-active[b-4uy2ju433k] {
    background: var(--color-brand-red);
    color: var(--bg-paper);
    font-weight: 600;
}

/* ─────────────────────────────────────
   LIST CARD
   ───────────────────────────────────── */
.citas-list-card[b-4uy2ju433k] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-warm-sm);
    overflow: hidden;
}

.citas-list-card__head[b-4uy2ju433k] {
    padding: 16px 20px;
    border-bottom: 1px solid var(--border-soft);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.citas-list-card__title[b-4uy2ju433k] {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
}

/* ─────────────────────────────────────
   FILTER TABS (Todas / Apoderados / Internas)
   ───────────────────────────────────── */
.citas-filter-tabs[b-4uy2ju433k] {
    display: inline-flex;
    gap: 2px;
    background: var(--bg-page);
    border-radius: var(--radius-md);
    padding: 4px;
}

.citas-filter-tab[b-4uy2ju433k] {
    all: unset;
    cursor: pointer;
    padding: 6px 12px;
    border-radius: var(--radius-sm);
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 500;
    color: var(--text-muted);
    transition: background 160ms ease-out, color 160ms ease-out;
}

.citas-filter-tab:hover[b-4uy2ju433k] {
    color: var(--text-primary);
}

.citas-filter-tab.is-active[b-4uy2ju433k] {
    background: var(--bg-surface);
    color: var(--color-brand-red);
    font-weight: 600;
    box-shadow: var(--shadow-warm-sm);
}

/* ─────────────────────────────────────
   LIST
   ───────────────────────────────────── */
.citas-list[b-4uy2ju433k] {
    display: flex;
    flex-direction: column;
}

/* ─────────────────────────────────────
   ITEM (card horizontal con bar izq.)
   ───────────────────────────────────── */
.citas-item[b-4uy2ju433k] {
    display: grid;
    grid-template-columns: 4px 88px 1fr auto;
    gap: 16px;
    padding: 18px 20px 18px 0;
    border-bottom: 1px solid var(--border-soft);
    background: var(--bg-surface);
    align-items: center;
    cursor: pointer;
}

.citas-item:last-child[b-4uy2ju433k] {
    border-bottom: none;
}

.citas-item__bar[b-4uy2ju433k] {
    align-self: stretch;
    border-radius: 0 2px 2px 0;
    min-height: 56px;
}

.citas-item__time[b-4uy2ju433k] {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.02em;
    padding-left: 4px;
}

.citas-item__info[b-4uy2ju433k] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.citas-item__title[b-4uy2ju433k] {
    font-family: var(--font-display);
    font-size: 16px;
    font-weight: 600;
    line-height: 1.3;
    color: var(--text-primary);
    margin: 0;
}

.citas-item__row[b-4uy2ju433k] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: var(--text-secondary);
}

.citas-item__row--muted[b-4uy2ju433k] {
    font-size: 12px;
    color: var(--text-muted);
}

.citas-item__person[b-4uy2ju433k] {
    font-weight: 500;
}

.citas-item__status[b-4uy2ju433k] {
    padding-right: 4px;
}

/* ─────────────────────────────────────
   RESPONSIVE
   ───────────────────────────────────── */
@media (max-width: 1024px) {
    .citas-stats[b-4uy2ju433k] {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 880px) {
    .citas-stats[b-4uy2ju433k] {
        grid-template-columns: 1fr 1fr;
    }

    .citas-item[b-4uy2ju433k] {
        grid-template-columns: 4px 1fr;
        grid-template-rows: auto auto auto;
        gap: 8px 14px;
        padding: 16px 18px 16px 0;
    }

    .citas-item__bar[b-4uy2ju433k] {
        grid-row: 1 / -1;
    }

    .citas-item__time[b-4uy2ju433k] {
        font-size: 18px;
    }

    .citas-item__status[b-4uy2ju433k] {
        grid-column: 2;
        padding-right: 0;
    }
}

@media (max-width: 768px) {
    .citas-root[b-4uy2ju433k] {
        padding: 4px 0 24px;
    }

    .citas-tabs[b-4uy2ju433k] {
        overflow-x: auto;
        flex-wrap: nowrap;
    }

    .citas-tab[b-4uy2ju433k] {
        white-space: nowrap;
    }

    .citas-stats[b-4uy2ju433k] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .citas-list-card__head[b-4uy2ju433k] {
        flex-direction: column;
        align-items: stretch;
    }

    .citas-filter-tabs[b-4uy2ju433k] {
        align-self: flex-start;
    }

    .citas-tab[b-4uy2ju433k] {
        padding: 8px 12px;
        font-size: 12px;
    }
}

@media (max-width: 480px) {
    .citas-item[b-4uy2ju433k] {
        padding: 14px 16px 14px 0;
    }

    .citas-item__time[b-4uy2ju433k] {
        font-size: 16px;
    }

    .citas-item__title[b-4uy2ju433k] {
        font-size: 15px;
    }

    .citas-list-card__head[b-4uy2ju433k] {
        padding: 14px 16px;
    }
}
/* /Pages/Private/Configuracion.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Configuración institucional · scoped styles
   ════════════════════════════════════════════════════════════════════
   Sidebar tabs verticales + contenido · institucional sobrio
   ════════════════════════════════════════════════════════════════════ */

.cfg-root[b-w0p4fjdrr4] {
    padding: 8px 0 32px;
    max-width: 1320px;
    margin: 0 auto;
}

/* ── Layout principal ───────────────────────── */
.cfg-grid[b-w0p4fjdrr4] {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 24px;
    margin-top: 24px;
}

/* ── Sidebar tabs ───────────────────────────── */
.cfg-sidebar[b-w0p4fjdrr4] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    overflow: hidden;
    box-shadow: var(--shadow-warm-sm);
    position: sticky;
    top: 24px;
    align-self: start;
}

.cfg-tab[b-w0p4fjdrr4] {
    display: block;
    width: 100%;
    text-align: left;
    padding: 14px 20px;
    background: transparent;
    border: none;
    border-left: 3px solid transparent;
    border-bottom: 1px solid var(--border-soft);
    color: var(--text-secondary);
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: all 160ms ease-out;
}

.cfg-tab:last-child[b-w0p4fjdrr4] {
    border-bottom: none;
}

.cfg-tab:hover[b-w0p4fjdrr4] {
    background: var(--bg-page);
    color: var(--text-primary);
}

.cfg-tab--active[b-w0p4fjdrr4] {
    background: var(--bg-page);
    border-left-color: var(--color-brand-red);
    color: var(--color-brand-red);
    font-weight: 700;
}

/* ── Contenido principal ────────────────────── */
.cfg-content[b-w0p4fjdrr4] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-warm-sm);
    overflow: hidden;
}

.cfg-section[b-w0p4fjdrr4] {
    padding: 28px;
}

.cfg-section__head[b-w0p4fjdrr4] {
    border-bottom: 1px solid var(--border-soft);
    padding-bottom: 18px;
    margin-bottom: 24px;
}

.cfg-eyebrow[b-w0p4fjdrr4] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
    margin-bottom: 4px;
}

.cfg-title[b-w0p4fjdrr4] {
    font-family: var(--font-display);
    font-size: 24px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0 0 6px;
}

.cfg-lead[b-w0p4fjdrr4] {
    font-size: 13px;
    color: var(--text-muted);
    margin: 0;
    line-height: 1.55;
}

/* ── Formulario 2 cols ──────────────────────── */
.cfg-form-grid[b-w0p4fjdrr4] {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px;
}

.cfg-form-grid--gap[b-w0p4fjdrr4] {
    margin-top: 18px;
}

.cfg-field[b-w0p4fjdrr4] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.cfg-field--wide[b-w0p4fjdrr4] {
    grid-column: 1 / -1;
}

.cfg-field label[b-w0p4fjdrr4] {
    font-size: 11px;
    font-weight: 600;
    color: var(--text-secondary);
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.cfg-input[b-w0p4fjdrr4] {
    padding: 10px 12px;
    border: 1px solid var(--border-soft);
    border-radius: 6px;
    background: var(--bg-surface);
    font-size: 14px;
    color: var(--text-primary);
    font-family: var(--font-body);
    outline: none;
    transition: all 160ms ease-out;
}

.cfg-input:focus[b-w0p4fjdrr4] {
    box-shadow: var(--shadow-focus);
    border-color: var(--color-brand-green);
}

.cfg-input[readonly][b-w0p4fjdrr4] {
    background: var(--bg-page);
    color: var(--text-muted);
}

.cfg-input--mono[b-w0p4fjdrr4] {
    font-family: 'JetBrains Mono', 'SF Mono', Consolas, monospace;
    font-variant-numeric: tabular-nums;
    font-size: 13px;
}

/* ── Logo row ───────────────────────────────── */
.cfg-logo-row[b-w0p4fjdrr4] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.cfg-logo-preview[b-w0p4fjdrr4] {
    width: 64px;
    height: 64px;
    border-radius: 8px;
    background: var(--color-brand-red);
    color: var(--bg-paper);
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 14px;
    letter-spacing: 0.06em;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

/* ── Tablas internas (pensiones / asistencia) ─ */
.cfg-table-wrap[b-w0p4fjdrr4] {
    border: 1px solid var(--border-soft);
    border-radius: 8px;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    margin-bottom: 12px;
}

.cfg-table[b-w0p4fjdrr4] {
    width: 100%;
    border-collapse: collapse;
}

.cfg-table thead th[b-w0p4fjdrr4] {
    text-align: left;
    font-size: 11px;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
    padding: 12px 14px;
    background: var(--bg-page);
    border-bottom: 1px solid var(--border-soft);
}

.cfg-table tbody td[b-w0p4fjdrr4] {
    padding: 10px 14px;
    border-bottom: 1px solid var(--border-soft);
    vertical-align: middle;
}

.cfg-table tbody tr:last-child td[b-w0p4fjdrr4] {
    border-bottom: none;
}

.cfg-table__label[b-w0p4fjdrr4] {
    font-weight: 600;
    color: var(--text-primary);
    font-size: 14px;
}

.cfg-table .cfg-input[b-w0p4fjdrr4] {
    padding: 8px 10px;
    font-size: 13px;
}

/* ── Sedes (cards apiladas) ─────────────────── */
.cfg-sedes[b-w0p4fjdrr4] {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.cfg-sede[b-w0p4fjdrr4] {
    border: 1px solid var(--border-soft);
    border-radius: 8px;
    padding: 18px 20px;
    background: var(--bg-paper);
}

.cfg-sede__head[b-w0p4fjdrr4] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 14px;
}

.cfg-sede__title[b-w0p4fjdrr4] {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
}

/* ── Toggles (notificaciones) ───────────────── */
.cfg-toggles[b-w0p4fjdrr4] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 24px;
    padding-top: 18px;
    border-top: 1px solid var(--border-soft);
}

.cfg-toggle[b-w0p4fjdrr4] {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid var(--border-soft);
    border-radius: 6px;
    background: var(--bg-surface);
    cursor: pointer;
    transition: all 160ms ease-out;
    font-size: 14px;
    color: var(--text-secondary);
}

.cfg-toggle:hover[b-w0p4fjdrr4] {
    border-color: var(--color-brand-green);
}

.cfg-toggle input[type="checkbox"][b-w0p4fjdrr4] {
    display: none;
}

.cfg-toggle__box[b-w0p4fjdrr4] {
    width: 18px;
    height: 18px;
    border: 1.5px solid var(--border-medium);
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--bg-surface);
    color: transparent;
    flex-shrink: 0;
    transition: all 160ms ease-out;
}

.cfg-toggle input[type="checkbox"]:checked ~ .cfg-toggle__box[b-w0p4fjdrr4] {
    background: var(--state-success);
    border-color: var(--state-success);
    color: #fff;
}

.cfg-toggle__label[b-w0p4fjdrr4] {
    font-weight: 500;
    color: var(--text-primary);
}

/* ── Responsive ─────────────────────────────── */
@media (max-width: 960px) {
    .cfg-grid[b-w0p4fjdrr4] {
        grid-template-columns: 1fr;
    }

    .cfg-sidebar[b-w0p4fjdrr4] {
        position: static;
        display: flex;
        flex-wrap: wrap;
    }

    .cfg-tab[b-w0p4fjdrr4] {
        flex: 1 1 auto;
        border-bottom: none;
        border-left: none;
        border-top: 3px solid transparent;
        text-align: center;
    }

    .cfg-tab--active[b-w0p4fjdrr4] {
        border-left: none;
        border-top-color: var(--color-brand-red);
    }
}

@media (max-width: 768px) {
    .cfg-table[b-w0p4fjdrr4] {
        min-width: 480px;
    }

    .cfg-section[b-w0p4fjdrr4] {
        padding: 22px;
    }
}

@media (max-width: 640px) {
    .cfg-form-grid[b-w0p4fjdrr4] {
        grid-template-columns: 1fr;
    }

    .cfg-section[b-w0p4fjdrr4] {
        padding: 20px;
    }
}

@media (max-width: 480px) {
    .cfg-section[b-w0p4fjdrr4] {
        padding: 16px;
    }

    .cfg-tab[b-w0p4fjdrr4] {
        font-size: 12px;
        padding: 10px;
    }
}
/* /Pages/Private/Contabilidad.razor.rz.scp.css */
/* ============================================
   Contabilidad · Tesorería · BEM scoped
   ============================================ */

.contab-root[b-wg3ftudi7q] {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

/* ── Selects en header ── */
.contab-period[b-wg3ftudi7q] {
    padding: 8px 14px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-paper);
    color: var(--color-brand-green);
    font-size: 13px;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    transition: border-color 160ms ease, box-shadow 160ms ease;
}
.contab-period:focus[b-wg3ftudi7q] {
    outline: none;
    border-color: var(--color-brand-gold);
    box-shadow: 0 0 0 3px var(--color-brand-gold-soft);
}

/* ── KPI grid ── */
.contab-stats[b-wg3ftudi7q] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

/* ── Tabs ── */
.contab-tabs[b-wg3ftudi7q] {
    display: flex;
    gap: 4px;
    padding: 16px 20px;
    border-bottom: 1px solid var(--border-soft);
    background: var(--bg-paper);
    border-radius: var(--radius-md);
    box-shadow: 0 1px 0 var(--border-soft);
}

.contab-tabs__btn[b-wg3ftudi7q] {
    background: transparent;
    border: none;
    padding: 10px 18px;
    font-size: 13px;
    font-weight: 600;
    color: var(--text-muted);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border-bottom: 2px solid transparent;
    transition: color 160ms ease, border-color 160ms ease;
    font-family: inherit;
    margin-bottom: -16px;
    padding-bottom: 14px;
}

.contab-tabs__btn:hover[b-wg3ftudi7q] { color: var(--color-brand-green); }

.contab-tabs__btn.is-active[b-wg3ftudi7q] {
    color: var(--color-brand-red);
    border-bottom-color: var(--color-brand-red);
}

/* ── Card principal ── */
.contab-card[b-wg3ftudi7q] {
    padding: 0;
    overflow: hidden;
}

.contab-card__head[b-wg3ftudi7q] {
    padding: 16px 20px;
    border-bottom: 1px solid var(--border-soft);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.contab-card__title[b-wg3ftudi7q] {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
    color: var(--color-brand-green);
    margin: 0;
    line-height: 1.2;
}

.contab-card__sub[b-wg3ftudi7q] {
    font-size: 12px;
    color: var(--text-muted);
    margin: 4px 0 0;
    letter-spacing: 0.02em;
}

.contab-card__filters[b-wg3ftudi7q] {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

/* ── Filter / search ── */
.contab-filter[b-wg3ftudi7q] {
    padding: 8px 14px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-paper);
    color: var(--color-brand-green);
    font-size: 13px;
    font-family: inherit;
    cursor: pointer;
    min-width: 180px;
}
.contab-filter:focus[b-wg3ftudi7q] {
    outline: none;
    border-color: var(--color-brand-gold);
    box-shadow: 0 0 0 3px var(--color-brand-gold-soft);
}

.contab-search[b-wg3ftudi7q] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-paper);
    min-width: 220px;
}
.contab-search input[b-wg3ftudi7q] {
    flex: 1;
    border: none;
    outline: none;
    background: transparent;
    font-size: 13px;
    color: var(--color-brand-green);
    font-family: inherit;
}
.contab-search input[b-wg3ftudi7q]::placeholder { color: var(--text-muted); }

/* ── Tabla ── */
.contab-table-wrap[b-wg3ftudi7q] {
    overflow-x: auto;
}

.contab-table[b-wg3ftudi7q] {
    width: 100%;
    border-collapse: collapse;
}

.contab-th[b-wg3ftudi7q] {
    padding: 12px 18px;
    text-align: left;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    background: var(--bg-page);
    border-bottom: 1px solid var(--border-soft);
}
.contab-th--right[b-wg3ftudi7q]  { text-align: right; }
.contab-th--center[b-wg3ftudi7q] { text-align: center; }

.contab-row[b-wg3ftudi7q] {
    border-top: 1px solid var(--border-soft);
    transition: background-color 140ms ease;
}
.contab-row:hover[b-wg3ftudi7q] { background: var(--bg-paper); }

.contab-td[b-wg3ftudi7q] {
    padding: 14px 18px;
    font-size: 13px;
    color: var(--color-brand-green);
    vertical-align: middle;
}
.contab-td--right[b-wg3ftudi7q]   { text-align: right; }
.contab-td--center[b-wg3ftudi7q]  { text-align: center; }
.contab-td--bold[b-wg3ftudi7q]    { font-weight: 600; }
.contab-td--danger[b-wg3ftudi7q]  { color: var(--state-danger); }

/* ── Estado loading / empty ── */
.contab-state[b-wg3ftudi7q] {
    padding: 56px 24px;
    text-align: center;
    color: var(--text-muted);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.contab-empty[b-wg3ftudi7q] {
    padding: 36px 20px;
    text-align: center;
    color: var(--text-muted);
    font-size: 13px;
}

/* ── Icon buttons ── */
.btn-icon[b-wg3ftudi7q] {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    border: 1px solid var(--border-soft);
    background: var(--bg-paper);
    color: var(--color-brand-green);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 160ms ease;
}
.btn-icon:hover[b-wg3ftudi7q] {
    background: var(--color-brand-gold-soft);
    border-color: var(--color-brand-gold);
    color: var(--color-brand-gold);
}
.btn-icon--danger:hover[b-wg3ftudi7q] {
    background: rgba(160, 57, 46, 0.08);
    border-color: var(--state-danger);
    color: var(--state-danger);
}

.contab-actions[b-wg3ftudi7q] {
    display: inline-flex;
    gap: 6px;
}

/* ── Config layout ── */
.contab-config[b-wg3ftudi7q] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}

.contab-config__full[b-wg3ftudi7q] {
    grid-column: 1 / -1;
}

.contab-config__list[b-wg3ftudi7q] {
    display: flex;
    flex-direction: column;
}

.contab-config__item[b-wg3ftudi7q] {
    padding: 14px 20px;
    border-top: 1px solid var(--border-soft);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    transition: background-color 140ms ease;
}
.contab-config__item:hover[b-wg3ftudi7q] { background: var(--bg-paper); }

.contab-config__info[b-wg3ftudi7q] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.contab-config__name[b-wg3ftudi7q] {
    font-size: 14px;
    font-weight: 600;
    color: var(--color-brand-green);
}

.contab-config__desc[b-wg3ftudi7q] {
    font-size: 12px;
    color: var(--text-muted);
}

/* ── Form ── */
.contab-form[b-wg3ftudi7q] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    padding: 22px 26px;
}

.contab-form__group[b-wg3ftudi7q] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.contab-form__group--full[b-wg3ftudi7q] {
    grid-column: 1 / -1;
}

.contab-form__group label[b-wg3ftudi7q] {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--text-muted);
}

.contab-form__group input[b-wg3ftudi7q],
.contab-form__group select[b-wg3ftudi7q],
.contab-form__group textarea[b-wg3ftudi7q] {
    padding: 10px 14px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-paper);
    color: var(--color-brand-green);
    font-size: 13px;
    font-family: inherit;
    transition: border-color 160ms ease, box-shadow 160ms ease;
}

.contab-form__group input:focus[b-wg3ftudi7q],
.contab-form__group select:focus[b-wg3ftudi7q],
.contab-form__group textarea:focus[b-wg3ftudi7q] {
    outline: none;
    border-color: var(--color-brand-gold);
    box-shadow: 0 0 0 3px var(--color-brand-gold-soft);
}

.contab-form__hint[b-wg3ftudi7q] {
    font-size: 11px;
    color: var(--text-muted);
}

.contab-form__actions[b-wg3ftudi7q] {
    grid-column: 1 / -1;
    display: flex;
    justify-content: flex-end;
}

/* ── Modal ── */
.contab-modal-overlay[b-wg3ftudi7q] {
    position: fixed;
    inset: 0;
    background: rgba(15, 31, 77, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    padding: 20px;
    animation: contab-overlay-in-b-wg3ftudi7q 200ms ease;
}

@keyframes contab-overlay-in-b-wg3ftudi7q {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.contab-modal[b-wg3ftudi7q] {
    background: var(--bg-paper);
    border-radius: var(--radius-md);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.22);
    max-height: 90vh;
    overflow-y: auto;
    width: 100%;
    animation: contab-modal-in-b-wg3ftudi7q 220ms cubic-bezier(.2,.7,.2,1);
}
.contab-modal--sm[b-wg3ftudi7q] { max-width: 480px; }
.contab-modal--md[b-wg3ftudi7q] { max-width: 720px; }

@keyframes contab-modal-in-b-wg3ftudi7q {
    from { transform: translateY(16px); opacity: 0; }
    to   { transform: translateY(0); opacity: 1; }
}

.contab-modal__head[b-wg3ftudi7q] {
    padding: 22px 26px;
    border-bottom: 1px solid var(--border-soft);
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
}

.contab-modal__eyebrow[b-wg3ftudi7q] {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--color-brand-red);
    margin-bottom: 6px;
}

.contab-modal__title[b-wg3ftudi7q] {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 600;
    color: var(--color-brand-green);
    margin: 0;
    line-height: 1.2;
}

.contab-modal__close[b-wg3ftudi7q] {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    border: 1px solid var(--border-soft);
    background: var(--bg-paper);
    color: var(--color-brand-green);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background-color 160ms ease;
}
.contab-modal__close:hover[b-wg3ftudi7q] { background: var(--bg-page); }

.contab-modal__footer[b-wg3ftudi7q] {
    padding: 18px 26px;
    border-top: 1px solid var(--border-soft);
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

.contab-bulk-body[b-wg3ftudi7q] {
    padding: 22px 26px;
    font-size: 14px;
    color: var(--text-secondary);
}

.contab-btn--danger[b-wg3ftudi7q] {
    background: var(--state-danger);
    border-color: var(--state-danger);
    color: var(--bg-paper);
}

/* ── Spinner ── */
.spinner-sm[b-wg3ftudi7q] {
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255,255,255,0.4);
    border-top-color: currentColor;
    border-radius: 50%;
    display: inline-block;
    margin-right: 6px;
    animation: contab-spin-b-wg3ftudi7q 700ms linear infinite;
}
.spinner[b-wg3ftudi7q] {
    width: 36px;
    height: 36px;
    border: 3px solid var(--border-soft);
    border-top-color: var(--color-brand-red);
    border-radius: 50%;
    animation: contab-spin-b-wg3ftudi7q 800ms linear infinite;
}
@keyframes contab-spin-b-wg3ftudi7q { to { transform: rotate(360deg); } }

/* ── Responsive ── */
.contab-table-wrap[b-wg3ftudi7q] {
    -webkit-overflow-scrolling: touch;
    overflow-y: hidden;
}

@media (max-width: 1200px) {
    .contab-stats[b-wg3ftudi7q]  { grid-template-columns: repeat(2, 1fr); }
    .contab-config[b-wg3ftudi7q] { grid-template-columns: 1fr; }
}
@media (max-width: 1024px) {
    .contab-tabs[b-wg3ftudi7q] { padding: 12px 16px; }
    .contab-tabs__btn[b-wg3ftudi7q] { padding: 9px 14px; font-size: 12px; }
}
@media (max-width: 768px) {
    .contab-card__filters[b-wg3ftudi7q] { width: 100%; }
    .contab-filter[b-wg3ftudi7q], .contab-search[b-wg3ftudi7q] { flex: 1; min-width: 0; }
    .contab-table[b-wg3ftudi7q] { min-width: 720px; }
}
@media (max-width: 720px) {
    .contab-stats[b-wg3ftudi7q]  { grid-template-columns: 1fr; }
    .contab-form[b-wg3ftudi7q]   { grid-template-columns: 1fr; }
    .contab-card__head[b-wg3ftudi7q] { flex-direction: column; align-items: stretch; }
    .contab-search[b-wg3ftudi7q] { min-width: 0; width: 100%; }
    .contab-tabs[b-wg3ftudi7q] { overflow-x: auto; flex-wrap: nowrap; -webkit-overflow-scrolling: touch; }
    .contab-tabs__btn[b-wg3ftudi7q] { white-space: nowrap; flex-shrink: 0; }
}
@media (max-width: 480px) {
    .contab-modal[b-wg3ftudi7q] { max-width: 92vw; }
    .contab-modal--sm[b-wg3ftudi7q],
    .contab-modal--md[b-wg3ftudi7q] { max-width: 92vw; }
    .contab-modal__head[b-wg3ftudi7q],
    .contab-modal__footer[b-wg3ftudi7q],
    .contab-form[b-wg3ftudi7q],
    .contab-bulk-body[b-wg3ftudi7q] { padding-left: 16px; padding-right: 16px; }
    .contab-modal__footer[b-wg3ftudi7q] { flex-direction: column-reverse; }
    .contab-modal__footer > *[b-wg3ftudi7q] { width: 100%; justify-content: center; }
    .contab-period[b-wg3ftudi7q] { width: 100%; }
    .contab-th[b-wg3ftudi7q], .contab-td[b-wg3ftudi7q] { padding: 10px 12px; }
}
/* /Pages/Private/Dashboard.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Dashboard académico (privada) · scoped styles
   ════════════════════════════════════════════════════════════════════
   Sobrio institucional · sin emojis · paleta brand red/green/gold/blue.
   AdminPageHeader, StatCard, AdminBadge viven en Shared/Sava.
   ════════════════════════════════════════════════════════════════════ */

.dashboard-root[b-fgfil1d2jx] {
    padding: 8px 0 32px;
    max-width: 1320px;
    margin: 0 auto;
}

/* ─────────────────────────────────────
   SELECT (filtros en header actions)
   ───────────────────────────────────── */
.dashboard-select[b-fgfil1d2jx] {
    padding: 8px 12px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-surface);
    font-size: 13px;
    font-family: var(--font-body);
    font-weight: 500;
    color: var(--text-primary);
    outline: none;
    cursor: pointer;
}

.dashboard-select:focus[b-fgfil1d2jx] {
    box-shadow: var(--shadow-focus);
}

/* ─────────────────────────────────────
   STATS GRID · 4 KPIs
   ───────────────────────────────────── */
.dashboard-stats[b-fgfil1d2jx] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin: 24px 0 32px;
}

.dashboard-stats > *[b-fgfil1d2jx] {
    height: 100%;
}

/* ─────────────────────────────────────
   CHARTS ROW (1.4fr / 1fr y luego 1fr / 1fr)
   ───────────────────────────────────── */
.dashboard-charts[b-fgfil1d2jx] {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 24px;
    margin-bottom: 32px;
}

.dashboard-charts:last-of-type[b-fgfil1d2jx] {
    grid-template-columns: 1fr 1fr;
    margin-bottom: 0;
}

/* ─────────────────────────────────────
   DASHBOARD CARD
   ───────────────────────────────────── */
.dashboard-card[b-fgfil1d2jx] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    padding: 20px 24px;
    box-shadow: var(--shadow-warm-sm);
    height: 100%;
}

.dashboard-card--flush[b-fgfil1d2jx] {
    padding: 0;
    overflow: hidden;
}

.dashboard-card__head[b-fgfil1d2jx] {
    padding: 20px 24px;
    border-bottom: 1px solid var(--border-soft);
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}

.dashboard-card__head--block[b-fgfil1d2jx] {
    display: block;
}

.dashboard-card__body[b-fgfil1d2jx] {
    padding: 24px 24px 16px;
}

.dashboard-card__eyebrow[b-fgfil1d2jx] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
    margin-bottom: 4px;
}

.dashboard-card__title[b-fgfil1d2jx] {
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.25;
}

/* ─────────────────────────────────────
   LEGEND DOTS
   ───────────────────────────────────── */
.dashboard-legend[b-fgfil1d2jx] {
    display: flex;
    gap: 14px;
    font-size: 12px;
    flex-wrap: wrap;
}

.dashboard-legend__item[b-fgfil1d2jx] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--text-secondary);
}

.dashboard-legend__dot[b-fgfil1d2jx] {
    width: 8px;
    height: 8px;
    border-radius: 99px;
    flex-shrink: 0;
}

/* ─────────────────────────────────────
   DONUT LEGEND
   ───────────────────────────────────── */
.dashboard-donut-legend[b-fgfil1d2jx] {
    display: grid;
    gap: 10px;
    margin-top: 24px;
}

.dashboard-donut-legend__row[b-fgfil1d2jx] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 14px;
}

.dashboard-donut-legend__name[b-fgfil1d2jx] {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--text-secondary);
}

.dashboard-donut-legend__name .dashboard-legend__dot[b-fgfil1d2jx] {
    width: 10px;
    height: 10px;
}

.dashboard-donut-legend__num[b-fgfil1d2jx] {
    font-weight: 600;
    color: var(--text-primary);
}

/* ─────────────────────────────────────
   RANKING ACADÉMICO
   ───────────────────────────────────── */
.dashboard-ranking[b-fgfil1d2jx] {
    padding: 12px 0;
}

.dashboard-ranking__row[b-fgfil1d2jx] {
    display: flex;
    align-items: center;
    padding: 12px 24px;
    gap: 14px;
}

.dashboard-ranking__row--divided[b-fgfil1d2jx] {
    border-top: 1px solid var(--border-soft);
}

.dashboard-ranking__rank[b-fgfil1d2jx] {
    width: 28px;
    height: 28px;
    border-radius: 99px;
    background: var(--bg-page);
    color: var(--text-secondary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 700;
    flex-shrink: 0;
}

.dashboard-ranking__rank--gold[b-fgfil1d2jx] {
    background: var(--color-brand-gold);
    color: var(--bg-paper);
}

.dashboard-ranking__info[b-fgfil1d2jx] {
    flex: 1;
    min-width: 0;
}

.dashboard-ranking__name[b-fgfil1d2jx] {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-primary);
}

.dashboard-ranking__grade[b-fgfil1d2jx] {
    font-size: 12px;
    color: var(--text-muted);
}

.dashboard-ranking__score[b-fgfil1d2jx] {
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 600;
    color: var(--color-brand-green);
}

/* ─────────────────────────────────────
   TESORERÍA
   ───────────────────────────────────── */
.dashboard-tesoreria[b-fgfil1d2jx] {
    padding: 24px;
}

.dashboard-tesoreria__top[b-fgfil1d2jx] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 18px;
}

.dashboard-tesoreria__right[b-fgfil1d2jx] {
    text-align: right;
}

.dashboard-tesoreria__label[b-fgfil1d2jx] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
    margin-bottom: 6px;
}

.dashboard-tesoreria__big[b-fgfil1d2jx] {
    font-family: var(--font-display);
    font-size: 32px;
    font-weight: 600;
    color: var(--color-brand-green);
    line-height: 1;
}

.dashboard-tesoreria__sub[b-fgfil1d2jx] {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
    line-height: 1;
}

.dashboard-tesoreria__bar[b-fgfil1d2jx] {
    height: 10px;
    background: var(--bg-page);
    border-radius: 99px;
    overflow: hidden;
    margin-bottom: 8px;
}

.dashboard-tesoreria__fill[b-fgfil1d2jx] {
    width: 84%;
    height: 10px;
    background: linear-gradient(90deg, var(--color-brand-gold), var(--color-brand-red));
    border-radius: 99px;
    animation: dash-tesoreria-fill-b-fgfil1d2jx 1100ms cubic-bezier(.2, .7, .2, 1) both;
    transform-origin: left center;
}

@keyframes dash-tesoreria-fill-b-fgfil1d2jx {
    from {
        transform: scaleX(0);
        opacity: 0;
    }
    to {
        transform: scaleX(1);
        opacity: 1;
    }
}

.dashboard-tesoreria__meta[b-fgfil1d2jx] {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    color: var(--text-muted);
}

.dashboard-tesoreria__divider[b-fgfil1d2jx] {
    margin: 28px 0 20px;
    border-top: 1px solid var(--border-soft);
}

.dashboard-tesoreria__stats[b-fgfil1d2jx] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.dashboard-tesoreria__stat[b-fgfil1d2jx] {
    font-family: var(--font-display);
    font-size: 24px;
    font-weight: 600;
    line-height: 1;
}

/* ─────────────────────────────────────
   RESPONSIVE
   ───────────────────────────────────── */
@media (max-width: 1200px) {
    .dashboard-stats[b-fgfil1d2jx] {
        grid-template-columns: 1fr 1fr;
    }

    .dashboard-charts[b-fgfil1d2jx],
    .dashboard-charts:last-of-type[b-fgfil1d2jx] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 1024px) {
    .dashboard-card__body[b-fgfil1d2jx] {
        padding: 20px 16px 12px;
        overflow-x: auto;
    }
}

@media (max-width: 768px) {
    .dashboard-root[b-fgfil1d2jx] {
        padding: 4px 0 24px;
    }

    .dashboard-stats[b-fgfil1d2jx] {
        grid-template-columns: 1fr 1fr;
        gap: 12px;
        margin: 20px 0 24px;
    }

    .dashboard-card__head[b-fgfil1d2jx] {
        padding: 16px;
    }

    .dashboard-card__title[b-fgfil1d2jx] {
        font-size: 17px;
    }

    .dashboard-card__body[b-fgfil1d2jx] {
        padding: 16px 12px 10px;
    }

    .dashboard-tesoreria[b-fgfil1d2jx] {
        padding: 18px;
    }

    .dashboard-tesoreria__big[b-fgfil1d2jx] {
        font-size: 26px;
    }

    .dashboard-tesoreria__sub[b-fgfil1d2jx] {
        font-size: 16px;
    }

    .dashboard-ranking__row[b-fgfil1d2jx] {
        padding: 10px 16px;
        gap: 10px;
    }
}

@media (max-width: 640px) {
    .dashboard-stats[b-fgfil1d2jx] {
        grid-template-columns: 1fr;
    }

    .dashboard-tesoreria__top[b-fgfil1d2jx] {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .dashboard-tesoreria__right[b-fgfil1d2jx] {
        text-align: left;
    }
}

@media (max-width: 480px) {
    .dashboard-card__head[b-fgfil1d2jx] {
        padding: 14px;
    }

    .dashboard-tesoreria[b-fgfil1d2jx] {
        padding: 14px;
    }

    .dashboard-tesoreria__stats[b-fgfil1d2jx] {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .dashboard-ranking__row[b-fgfil1d2jx] {
        padding: 10px 12px;
    }

    .dashboard-ranking__name[b-fgfil1d2jx] {
        font-size: 13px;
    }

    .dashboard-ranking__score[b-fgfil1d2jx] {
        font-size: 16px;
    }
}
/* /Pages/Private/Disciplina.razor.rz.scp.css */
/* ============================================
   DISCIPLINA & PERMISOS - SCOPED STYLES
   Migrado de wwwroot/css/pages/disciplina.css
   ============================================ */

/* ============================================
   TABS
   ============================================ */
.tabs-container[b-m7gb5706hm] {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 1.5rem;
    background: #f7fafc;
    padding: 0.5rem;
    border-radius: 12px;
    flex-wrap: wrap;
}

.tab[b-m7gb5706hm] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.25rem;
    border: none;
    background: transparent;
    color: #718096;
    font-size: 0.95rem;
    font-weight: 500;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.2s ease;
}

.tab:hover[b-m7gb5706hm] {
    background: #edf2f7;
    color: #4a5568;
}

.tab.active[b-m7gb5706hm] {
    background: white;
    color: #1a365d;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.tab svg[b-m7gb5706hm] {
    width: 20px;
    height: 20px;
}

.tab-count[b-m7gb5706hm] {
    padding: 0.15rem 0.5rem;
    background: #e2e8f0;
    border-radius: 10px;
    font-size: 0.8rem;
    font-weight: 600;
}

.tab.active .tab-count[b-m7gb5706hm] {
    background: #667eea;
    color: white;
}

/* ============================================
   STATS GRID
   ============================================ */
.stats-grid[b-m7gb5706hm] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.stat-card[b-m7gb5706hm] {
    background: white;
    border-radius: 12px;
    padding: 1.25rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
    border-left: 4px solid;
}

.stat-card.total[b-m7gb5706hm] { border-left-color: #4299e1; }
.stat-card.permisos[b-m7gb5706hm], .stat-card.leve[b-m7gb5706hm] { border-left-color: #48bb78; }
.stat-card.sanciones[b-m7gb5706hm], .stat-card.moderada[b-m7gb5706hm] { border-left-color: #f56565; }
.stat-card.activos[b-m7gb5706hm], .stat-card.grave[b-m7gb5706hm] { border-left-color: #ed8936; }

.stat-icon[b-m7gb5706hm] {
    width: 48px;
    height: 48px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.stat-card.total .stat-icon[b-m7gb5706hm] { background: #ebf8ff; color: #4299e1; }
.stat-card.permisos .stat-icon[b-m7gb5706hm], .stat-card.leve .stat-icon[b-m7gb5706hm] { background: #f0fff4; color: #48bb78; }
.stat-card.sanciones .stat-icon[b-m7gb5706hm], .stat-card.moderada .stat-icon[b-m7gb5706hm] { background: #fff5f5; color: #f56565; }
.stat-card.activos .stat-icon[b-m7gb5706hm], .stat-card.grave .stat-icon[b-m7gb5706hm] { background: #fffaf0; color: #ed8936; }

.stat-icon svg[b-m7gb5706hm] {
    width: 24px;
    height: 24px;
}

.stat-info[b-m7gb5706hm] {
    display: flex;
    flex-direction: column;
}

.stat-value[b-m7gb5706hm] {
    font-size: 1.5rem;
    font-weight: 700;
    color: #1a365d;
}

.stat-label[b-m7gb5706hm] {
    font-size: 0.85rem;
    color: #718096;
}

/* ============================================
   FILTERS
   ============================================ */
.filters-container[b-m7gb5706hm] {
    display: flex;
    gap: 1rem;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
    align-items: flex-end;
}

.search-box[b-m7gb5706hm] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.6rem 1rem;
    background: white;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    flex: 1;
    min-width: 200px;
}

.search-box svg[b-m7gb5706hm] {
    width: 20px;
    height: 20px;
    color: #a0aec0;
}

.search-input[b-m7gb5706hm] {
    border: none;
    background: transparent;
    font-size: 0.95rem;
    width: 100%;
    color: #2d3748;
}

.search-input:focus[b-m7gb5706hm] {
    outline: none;
}

.filter-group[b-m7gb5706hm] {
    min-width: 140px;
}

.filter-group label[b-m7gb5706hm] {
    display: block;
    font-size: 0.8rem;
    font-weight: 500;
    color: #718096;
    margin-bottom: 0.25rem;
}

.date-range-row[b-m7gb5706hm] {
    display: flex;
    gap: 0.5rem;
    align-items: flex-end;
}

.date-range-row .filter-group[b-m7gb5706hm] {
    min-width: 130px;
}

.quick-dates[b-m7gb5706hm] {
    display: flex;
    gap: 0.25rem;
}

.quick-date-btn[b-m7gb5706hm] {
    padding: 0.4rem 0.75rem;
    border: 1px solid #e2e8f0;
    background: white;
    border-radius: 6px;
    font-size: 0.8rem;
    cursor: pointer;
    color: #4a5568;
    transition: all 0.2s ease;
    white-space: nowrap;
}

.quick-date-btn:hover[b-m7gb5706hm] {
    background: #f7fafc;
    border-color: #4299e1;
}

.quick-date-btn.active[b-m7gb5706hm] {
    background: #4299e1;
    border-color: #4299e1;
    color: white;
}

/* ============================================
   TABLE
   ============================================ */
.table-container[b-m7gb5706hm] {
    background: white;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
    overflow: hidden;
}

.data-table[b-m7gb5706hm] {
    width: 100%;
    border-collapse: collapse;
}

.data-table th[b-m7gb5706hm] {
    background: #f7fafc;
    padding: 1rem;
    text-align: left;
    font-weight: 600;
    color: #4a5568;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-bottom: 2px solid #e2e8f0;
}

.data-table td[b-m7gb5706hm] {
    padding: 1rem;
    border-bottom: 1px solid #f0f4f8;
    vertical-align: middle;
}

.data-table tbody tr[b-m7gb5706hm] {
    transition: background 0.2s ease;
}

.data-table tbody tr:hover[b-m7gb5706hm] {
    background: #f7fafc;
}

.data-table tbody tr.finalizado[b-m7gb5706hm] {
    opacity: 0.7;
}

.col-id[b-m7gb5706hm] { width: 60px; }
.col-persona[b-m7gb5706hm] { min-width: 180px; }
.col-titulo[b-m7gb5706hm] { min-width: 150px; }
.col-lugar[b-m7gb5706hm] { width: 120px; }
.col-prioridad[b-m7gb5706hm] { width: 100px; }
.col-fechas[b-m7gb5706hm] { width: 180px; }
.col-estado[b-m7gb5706hm] { width: 100px; }
.col-evidencia[b-m7gb5706hm] { width: 80px; text-align: center; }
.col-acciones[b-m7gb5706hm] { width: 120px; }

.persona-info[b-m7gb5706hm] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.persona-dni[b-m7gb5706hm] {
    font-size: 0.8rem;
    color: #718096;
}

.avatar[b-m7gb5706hm] {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--color-card-purple);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 0.85rem;
    flex-shrink: 0;
}

/* Priority badges */
.priority-badge[b-m7gb5706hm] {
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
}

.priority-badge.leve[b-m7gb5706hm] { background: #c6f6d5; color: #276749; }
.priority-badge.moderada[b-m7gb5706hm] { background: #feebc8; color: #c05621; }
.priority-badge.grave[b-m7gb5706hm] { background: #fed7d7; color: #c53030; }

/* Evidence indicator */
.evidence-indicator[b-m7gb5706hm] {
    display: flex;
    align-items: center;
    justify-content: center;
}

.evidence-indicator svg[b-m7gb5706hm] {
    width: 18px;
    height: 18px;
}

.evidence-indicator.has-evidence[b-m7gb5706hm] { color: #48bb78; }
.evidence-indicator.no-evidence[b-m7gb5706hm] { color: #cbd5e0; }

/* Estado badges */
.estado-badge[b-m7gb5706hm] {
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
}

.estado-badge.vigente[b-m7gb5706hm] { background: #c6f6d5; color: #276749; }
.estado-badge.finalizado[b-m7gb5706hm] { background: #e2e8f0; color: #718096; }

.fechas-info[b-m7gb5706hm] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.9rem;
}

.fechas-info .separator[b-m7gb5706hm] {
    color: #cbd5e0;
}

/* Action buttons */
.action-buttons[b-m7gb5706hm] {
    display: flex;
    gap: 0.25rem;
}

.action-btn[b-m7gb5706hm] {
    width: 32px;
    height: 32px;
    border: none;
    background: transparent;
    border-radius: 6px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #718096;
    transition: all 0.2s ease;
}

.action-btn:hover[b-m7gb5706hm] {
    background: #f7fafc;
}

.action-btn.view:hover[b-m7gb5706hm] { color: #4299e1; }
.action-btn.edit:hover[b-m7gb5706hm] { color: #ed8936; }
.action-btn.delete:hover[b-m7gb5706hm] { background: #fff5f5; color: #e53e3e; }

.action-btn svg[b-m7gb5706hm] {
    width: 16px;
    height: 16px;
}

/* ============================================
   EMPTY STATE
   ============================================ */
.empty-state[b-m7gb5706hm] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 4rem 2rem;
    text-align: center;
}

.empty-icon[b-m7gb5706hm] {
    width: 80px;
    height: 80px;
    background: #ebf8ff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.5rem;
}

.empty-icon svg[b-m7gb5706hm] {
    width: 40px;
    height: 40px;
    color: #4299e1;
}

.empty-state h3[b-m7gb5706hm] {
    font-size: 1.25rem;
    color: #1a365d;
    margin-bottom: 0.5rem;
}

.empty-state p[b-m7gb5706hm] {
    color: #718096;
    font-size: 0.95rem;
}

/* ============================================
   PAGINATION
   ============================================ */
.pagination-container[b-m7gb5706hm] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem;
    border-top: 1px solid #e2e8f0;
}

.pagination-info[b-m7gb5706hm] {
    font-size: 0.9rem;
    color: #718096;
}

.pagination-controls[b-m7gb5706hm] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.page-btn[b-m7gb5706hm], .page-num[b-m7gb5706hm] {
    width: 36px;
    height: 36px;
    border: 1px solid #e2e8f0;
    background: white;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s ease;
    font-size: 0.9rem;
    color: #4a5568;
}

.page-btn:hover:not(:disabled)[b-m7gb5706hm], .page-num:hover[b-m7gb5706hm] {
    background: #f7fafc;
    border-color: #4299e1;
}

.page-btn:disabled[b-m7gb5706hm] {
    opacity: 0.5;
    cursor: not-allowed;
}

.page-btn svg[b-m7gb5706hm] {
    width: 16px;
    height: 16px;
    color: #718096;
}

.page-num.active[b-m7gb5706hm] {
    background: #4299e1;
    border-color: #4299e1;
    color: white;
}

.page-size-selector[b-m7gb5706hm] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.9rem;
    color: #718096;
}

.page-size-selector select[b-m7gb5706hm] {
    width: auto;
    padding: 0.4rem 0.6rem;
}

/* ============================================
   MODAL
   ============================================ */
.modal-overlay[b-m7gb5706hm] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: var(--z-modal, 1050);
    padding: 1rem;
}

.modal-overlay .modal-content[b-m7gb5706hm] {
    display: block;
    position: relative;
    top: auto;
    left: auto;
    height: auto;
    overflow: visible;
    z-index: auto;
    background: white;
    border-radius: 16px;
    width: 100%;
    max-width: 550px;
    max-height: 90vh;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.modal-header[b-m7gb5706hm] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid #e2e8f0;
}

.modal-header h2[b-m7gb5706hm] {
    font-size: 1.25rem;
    color: #1a365d;
    margin: 0;
}

.btn-close[b-m7gb5706hm] {
    background: none;
    border: none;
    padding: 0.5rem;
    cursor: pointer;
    color: #718096;
    border-radius: 8px;
    transition: all 0.2s ease;
}

.btn-close:hover[b-m7gb5706hm] {
    background: #f7fafc;
    color: #1a365d;
}

.btn-close svg[b-m7gb5706hm] {
    width: 20px;
    height: 20px;
}

.modal-body[b-m7gb5706hm] {
    padding: 1.5rem;
    overflow-y: auto;
}

.modal-footer[b-m7gb5706hm] {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
    padding: 1rem 1.5rem;
    border-top: 1px solid #e2e8f0;
}

/* Form Styles */
.form-group[b-m7gb5706hm] {
    margin-bottom: 1rem;
}

.form-group label[b-m7gb5706hm] {
    display: block;
    font-size: 0.9rem;
    font-weight: 500;
    color: #4a5568;
    margin-bottom: 0.35rem;
}

.form-row[b-m7gb5706hm] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.form-textarea[b-m7gb5706hm] {
    width: 100%;
    padding: 0.65rem 0.9rem;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    font-size: 0.95rem;
    color: #2d3748;
    resize: vertical;
    font-family: inherit;
}

.form-textarea:focus[b-m7gb5706hm] {
    outline: none;
    border-color: #4299e1;
    box-shadow: 0 0 0 3px rgba(66, 153, 225, 0.15);
}

/* File upload */
.file-upload-area[b-m7gb5706hm] {
    border: 2px dashed #e2e8f0;
    border-radius: 8px;
    padding: 1.25rem;
    text-align: center;
    transition: all 0.2s ease;
    cursor: pointer;
}

.file-upload-area:hover[b-m7gb5706hm] {
    border-color: #4299e1;
    background: #ebf8ff;
}

.file-upload-area svg[b-m7gb5706hm] {
    width: 32px;
    height: 32px;
    color: #a0aec0;
    margin-bottom: 0.5rem;
}

.file-upload-area p[b-m7gb5706hm] {
    font-size: 0.85rem;
    color: #718096;
    margin: 0;
}

.file-upload-area .file-name[b-m7gb5706hm] {
    font-weight: 600;
    color: #4299e1;
}

/* Delete confirmation modal */
.delete-modal .modal-content[b-m7gb5706hm] {
    max-width: 400px;
    text-align: center;
}

.delete-icon[b-m7gb5706hm] {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: #fff5f5;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1rem;
}

.delete-icon svg[b-m7gb5706hm] {
    width: 28px;
    height: 28px;
    color: #e53e3e;
}

.btn-danger[b-m7gb5706hm] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.25rem;
    border: none;
    border-radius: 8px;
    font-size: 0.95rem;
    font-weight: 600;
    cursor: pointer;
    background: #e53e3e;
    color: white;
    transition: all 0.2s ease;
}

.btn-danger:hover[b-m7gb5706hm] {
    background: #c53030;
}

/* Loading */
.loading-container[b-m7gb5706hm] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 4rem 2rem;
}

.spinner[b-m7gb5706hm] {
    width: 40px;
    height: 40px;
    border: 3px solid #e2e8f0;
    border-top-color: #4299e1;
    border-radius: 50%;
    animation: spin-b-m7gb5706hm 0.8s linear infinite;
}

@keyframes spin-b-m7gb5706hm {
    to { transform: rotate(360deg); }
}

/* ============================================
   RESPONSIVE
   ============================================ */
@media (max-width: 1024px) {
    .stats-grid[b-m7gb5706hm] {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .tabs-container[b-m7gb5706hm] {
        flex-direction: column;
    }

    .stats-grid[b-m7gb5706hm] {
        grid-template-columns: 1fr;
    }

    .filters-container[b-m7gb5706hm] {
        flex-direction: column;
    }

    .date-range-row[b-m7gb5706hm] {
        flex-direction: column;
    }

    .table-container[b-m7gb5706hm] {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .data-table[b-m7gb5706hm] {
        min-width: 720px;
    }

    .pagination-container[b-m7gb5706hm] {
        flex-direction: column;
        gap: 1rem;
    }

    .form-row[b-m7gb5706hm] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 480px) {
    .stat-card[b-m7gb5706hm] {
        padding: 0.85rem 1rem;
    }

    .stat-value[b-m7gb5706hm] {
        font-size: 1.25rem;
    }

    .data-table th[b-m7gb5706hm],
    .data-table td[b-m7gb5706hm] {
        padding: 0.75rem;
    }

    .modal-overlay .modal-content[b-m7gb5706hm] {
        max-width: 92vw;
    }

    .modal-header[b-m7gb5706hm],
    .modal-body[b-m7gb5706hm],
    .modal-footer[b-m7gb5706hm] {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .modal-footer[b-m7gb5706hm] {
        flex-direction: column-reverse;
    }

    .modal-footer > *[b-m7gb5706hm] {
        width: 100%;
        justify-content: center;
    }
}
/* /Pages/Private/Encuestas.razor.rz.scp.css */
/* ============================================
   ENCUESTAS PAGE - I.E.P.E. Apostol Pablo
   Gestion de encuestas para la comunidad educativa
   Colors: --color-primary: #0055A3
           --color-primary-dark: #00284D
           --color-highlight: #F5A623
           --color-success: #22c55e
   ============================================ */

/* Layout base (page-container, page-header) en layout.css */

/* ============================================
   STATS GRID
   ============================================ */
.stats-grid[b-gk9on58o8v] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.stat-card[b-gk9on58o8v] {
    background: white;
    border-radius: 12px;
    padding: 1.25rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    transition: transform 0.2s ease;
}

.stat-card:hover[b-gk9on58o8v] {
    transform: translateY(-2px);
}

.stat-card.total .stat-icon[b-gk9on58o8v] {
    background: var(--color-primary-dark);
}

.stat-card.role-stat .stat-icon[b-gk9on58o8v] {
    background: linear-gradient(135deg, #8b5cf6, #6d28d9);
}

.stat-icon[b-gk9on58o8v] {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.stat-icon svg[b-gk9on58o8v] {
    width: 24px;
    height: 24px;
    color: white;
}

.stat-info[b-gk9on58o8v] {
    display: flex;
    flex-direction: column;
}

.stat-value[b-gk9on58o8v] {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--color-primary-dark);
}

.stat-label[b-gk9on58o8v] {
    font-size: 0.85rem;
    color: #718096;
}

/* ============================================
   FILTERS
   ============================================ */
.filters-container[b-gk9on58o8v] {
    display: flex;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
    align-items: center;
}

.search-box[b-gk9on58o8v] {
    position: relative;
    min-width: 280px;
    flex: 1;
    max-width: 400px;
}

.search-box svg[b-gk9on58o8v] {
    position: absolute;
    left: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    width: 18px;
    height: 18px;
    color: #a0aec0;
    pointer-events: none;
}

.search-input[b-gk9on58o8v] {
    width: 100%;
    padding: 0.625rem 0.75rem 0.625rem 2.5rem;
    border: 2px solid #e2e8f0;
    border-radius: 8px;
    font-size: 0.9rem;
    transition: border-color 0.2s ease;
    box-sizing: border-box;
}

.search-input:focus[b-gk9on58o8v] {
    outline: none;
    border-color: var(--color-primary);
}

.filter-group[b-gk9on58o8v] {
    display: flex;
    gap: 0.5rem;
}

.filter-select[b-gk9on58o8v] {
    padding: 0.625rem 2rem 0.625rem 0.75rem;
    border: 2px solid #e2e8f0;
    border-radius: 8px;
    font-size: 0.9rem;
    background: white;
    cursor: pointer;
    transition: border-color 0.2s ease;
}

.filter-select:focus[b-gk9on58o8v] {
    outline: none;
    border-color: var(--color-primary);
}

/* ============================================
   BUTTONS
   ============================================ */
.btn-primary[b-gk9on58o8v] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.625rem 1.25rem;
    background: var(--color-primary);
    color: white;
    border: none;
    border-radius: 8px;
    font-weight: 600;
    font-size: 0.9rem;
    cursor: pointer;
    transition: all 0.2s ease;
}

.btn-primary:hover:not(:disabled)[b-gk9on58o8v] {
    background: var(--color-primary-dark);
    transform: translateY(-1px);
}

.btn-primary:disabled[b-gk9on58o8v] {
    opacity: 0.6;
    cursor: not-allowed;
}

.btn-primary svg[b-gk9on58o8v] {
    width: 18px;
    height: 18px;
}

.btn-secondary[b-gk9on58o8v] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.625rem 1.25rem;
    background: #edf2f7;
    color: #4a5568;
    border: none;
    border-radius: 8px;
    font-weight: 600;
    font-size: 0.9rem;
    cursor: pointer;
    transition: all 0.2s ease;
}

.btn-secondary:hover:not(:disabled)[b-gk9on58o8v] {
    background: #e2e8f0;
}

.btn-secondary:disabled[b-gk9on58o8v] {
    opacity: 0.6;
    cursor: not-allowed;
}

.btn-danger[b-gk9on58o8v] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.625rem 1.25rem;
    background: #e53e3e;
    color: white;
    border: none;
    border-radius: 8px;
    font-weight: 600;
    font-size: 0.9rem;
    cursor: pointer;
    transition: all 0.2s ease;
}

.btn-danger:hover:not(:disabled)[b-gk9on58o8v] {
    background: #c53030;
}

.btn-danger:disabled[b-gk9on58o8v] {
    opacity: 0.6;
    cursor: not-allowed;
}

.btn-close[b-gk9on58o8v] {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f7fafc;
    border: none;
    border-radius: 8px;
    color: #718096;
    cursor: pointer;
    transition: all 0.2s ease;
}

.btn-close:hover[b-gk9on58o8v] {
    background: #edf2f7;
    color: #e53e3e;
}

.btn-close svg[b-gk9on58o8v] {
    width: 18px;
    height: 18px;
}

/* ============================================
   LOADING STATE
   ============================================ */
.loading-state[b-gk9on58o8v] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 300px;
    gap: 1rem;
    color: #718096;
}

.loading-state .spinner[b-gk9on58o8v] {
    width: 40px;
    height: 40px;
    border: 3px solid #e2e8f0;
    border-top-color: var(--color-primary);
    border-radius: 50%;
    animation: enc-spin 0.8s linear infinite;
}

@@keyframes enc-spin {
    to[b-gk9on58o8v] { transform: rotate(360deg); }
}

.spinner-small[b-gk9on58o8v] {
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-top-color: white;
    border-radius: 50%;
    animation: enc-spin 0.6s linear infinite;
}

/* ============================================
   EMPTY STATE
   ============================================ */
.empty-state[b-gk9on58o8v] {
    text-align: center;
    padding: 3rem 1rem;
    background: white;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.empty-icon[b-gk9on58o8v] {
    display: flex;
    justify-content: center;
    margin-bottom: 1rem;
}

.empty-icon svg[b-gk9on58o8v] {
    width: 64px;
    height: 64px;
    color: #a0aec0;
}

.empty-state h3[b-gk9on58o8v] {
    color: #2d3748;
    margin: 0 0 0.5rem;
    font-size: 1.1rem;
}

.empty-state p[b-gk9on58o8v] {
    color: #718096;
    margin: 0 0 1.5rem;
    font-size: 0.9rem;
}

/* ============================================
   TABLE
   ============================================ */
.table-container[b-gk9on58o8v] {
    background: white;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
}

.data-table[b-gk9on58o8v] {
    width: 100%;
    border-collapse: collapse;
}

.data-table th[b-gk9on58o8v] {
    background: #f7fafc;
    padding: 1rem;
    text-align: left;
    font-size: 0.75rem;
    font-weight: 600;
    color: #718096;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.data-table td[b-gk9on58o8v] {
    padding: 1rem;
    border-bottom: 1px solid #e2e8f0;
    font-size: 0.9rem;
    color: #2d3748;
}

.data-table tbody tr[b-gk9on58o8v] {
    transition: background-color 0.15s ease;
}

.data-table tbody tr:hover[b-gk9on58o8v] {
    background: #f7fafc;
}

.data-table tbody tr:last-child td[b-gk9on58o8v] {
    border-bottom: none;
}

/* Question Cell */
.question-cell[b-gk9on58o8v] {
    max-width: 300px;
}

.question-text[b-gk9on58o8v] {
    color: #1e293b;
    font-weight: 500;
    line-height: 1.4;
}

/* Role Badge */
.role-badge[b-gk9on58o8v] {
    display: inline-block;
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 500;
    background: var(--bg-primary-subtle);
    color: var(--color-primary);
}

/* Options */
.options-list-preview[b-gk9on58o8v] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.option-tag[b-gk9on58o8v] {
    display: inline-block;
    padding: 0.2rem 0.6rem;
    background: #f1f5f9;
    border-radius: 6px;
    font-size: 0.75rem;
    color: #475569;
    border: 1px solid #e2e8f0;
}

.option-more[b-gk9on58o8v] {
    display: inline-block;
    padding: 0.2rem 0.6rem;
    font-size: 0.75rem;
    color: var(--color-primary);
    font-weight: 500;
}

.no-options[b-gk9on58o8v] {
    color: #a0aec0;
    font-size: 0.85rem;
    font-style: italic;
}

/* Date */
.date-text[b-gk9on58o8v] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.85rem;
    color: #718096;
}

.date-text svg[b-gk9on58o8v] {
    width: 14px;
    height: 14px;
}

/* Table Actions */
.table-actions[b-gk9on58o8v] {
    display: flex;
    gap: 0.5rem;
}

.action-btn[b-gk9on58o8v] {
    width: 32px;
    height: 32px;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
}

.action-btn svg[b-gk9on58o8v] {
    width: 16px;
    height: 16px;
}

.action-btn.edit[b-gk9on58o8v] {
    background: #fef3c7;
    color: #b45309;
}

.action-btn.edit:hover[b-gk9on58o8v] {
    background: #fde68a;
}

.action-btn.delete[b-gk9on58o8v] {
    background: #fee2e2;
    color: var(--color-error-dark);
}

.action-btn.delete:hover[b-gk9on58o8v] {
    background: #fecaca;
}

/* ============================================
   MOBILE CARDS VIEW
   ============================================ */
.cards-container[b-gk9on58o8v] {
    display: none;
}

.survey-card[b-gk9on58o8v] {
    background: white;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    overflow: hidden;
    margin-bottom: 0.75rem;
}

.survey-card .card-header[b-gk9on58o8v] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.75rem 1rem;
    background: #f7fafc;
    border-bottom: 1px solid #e2e8f0;
}

.survey-card .card-actions[b-gk9on58o8v] {
    display: flex;
    gap: 0.35rem;
}

.survey-card .card-body[b-gk9on58o8v] {
    padding: 1rem;
}

.survey-card .card-body h3[b-gk9on58o8v] {
    margin: 0 0 0.75rem;
    font-size: 0.95rem;
    font-weight: 600;
    color: #1e293b;
    line-height: 1.4;
}

.survey-card .card-footer[b-gk9on58o8v] {
    padding: 0.75rem 1rem;
    border-top: 1px solid #e2e8f0;
    background: #f7fafc;
}

/* ============================================
   MODAL
   ============================================ */
.modal-overlay[b-gk9on58o8v] {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    padding: 1rem;
    animation: enc-fadeIn 0.2s ease;
}

@@keyframes enc-fadeIn {
    from[b-gk9on58o8v] { opacity: 0; }
    to[b-gk9on58o8v] { opacity: 1; }
}

.modal-content[b-gk9on58o8v] {
    background: white;
    border-radius: 12px;
    width: 100%;
    max-width: 540px;
    max-height: 90vh;
    overflow-y: auto;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2);
    animation: enc-slideUp 0.25s ease;
}

@@keyframes enc-slideUp {
    from[b-gk9on58o8v] { opacity: 0; transform: translateY(20px); }
    to[b-gk9on58o8v] { opacity: 1; transform: translateY(0); }
}

.modal-content.modal-small[b-gk9on58o8v] {
    max-width: 420px;
}

.modal-header[b-gk9on58o8v] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid #e2e8f0;
}

.modal-header h2[b-gk9on58o8v] {
    margin: 0;
    font-size: 1.1rem;
    color: var(--color-primary-dark);
}

.modal-body[b-gk9on58o8v] {
    padding: 1.5rem;
}

.modal-footer[b-gk9on58o8v] {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
    padding: 1rem 1.5rem;
    border-top: 1px solid #e2e8f0;
    background: #f7fafc;
    border-radius: 0 0 12px 12px;
}

/* ============================================
   FORM ELEMENTS
   ============================================ */
.form-group[b-gk9on58o8v] {
    margin-bottom: 1rem;
}

.form-group:last-child[b-gk9on58o8v] {
    margin-bottom: 0;
}

.form-group label[b-gk9on58o8v] {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: 600;
    color: #4a5568;
    font-size: 0.875rem;
}

.form-select[b-gk9on58o8v] {
    width: 100%;
    padding: 0.625rem 0.75rem;
    border: 2px solid #e2e8f0;
    border-radius: 8px;
    font-size: 0.9rem;
    background: white;
    transition: border-color 0.2s ease;
    box-sizing: border-box;
}

.form-select:focus[b-gk9on58o8v] {
    outline: none;
    border-color: var(--color-primary);
}

.form-textarea[b-gk9on58o8v] {
    width: 100%;
    padding: 0.625rem 0.75rem;
    border: 2px solid #e2e8f0;
    border-radius: 8px;
    font-size: 0.9rem;
    resize: vertical;
    font-family: inherit;
    transition: border-color 0.2s ease;
    box-sizing: border-box;
}

.form-textarea:focus[b-gk9on58o8v] {
    outline: none;
    border-color: var(--color-primary);
}

.form-input[b-gk9on58o8v] {
    width: 100%;
    padding: 0.625rem 0.75rem;
    border: 2px solid #e2e8f0;
    border-radius: 8px;
    font-size: 0.9rem;
    transition: border-color 0.2s ease;
    box-sizing: border-box;
}

.form-input:focus[b-gk9on58o8v] {
    outline: none;
    border-color: var(--color-primary);
}

/* ============================================
   OPTIONS EDITOR (Modal)
   ============================================ */
.options-header[b-gk9on58o8v] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.5rem;
}

.btn-add-option[b-gk9on58o8v] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.75rem;
    background: #edf2f7;
    color: var(--color-primary);
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    font-size: 0.8rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s;
}

.btn-add-option:hover[b-gk9on58o8v] {
    background: #e2e8f0;
}

.btn-add-option svg[b-gk9on58o8v] {
    width: 14px;
    height: 14px;
}

.options-editor[b-gk9on58o8v] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.option-row[b-gk9on58o8v] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.option-number[b-gk9on58o8v] {
    width: 24px;
    height: 24px;
    background: #edf2f7;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    font-weight: 600;
    color: #718096;
    flex-shrink: 0;
}

.btn-remove-option[b-gk9on58o8v] {
    width: 28px;
    height: 28px;
    border: none;
    background: #fee2e2;
    color: var(--color-error-dark);
    border-radius: 6px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
    flex-shrink: 0;
}

.btn-remove-option:hover[b-gk9on58o8v] {
    background: #fecaca;
}

.btn-remove-option svg[b-gk9on58o8v] {
    width: 14px;
    height: 14px;
}

.options-hint[b-gk9on58o8v] {
    color: #a0aec0;
    font-size: 0.85rem;
    font-style: italic;
    margin: 0.5rem 0 0;
}

/* ============================================
   DELETE CONFIRMATION
   ============================================ */
.delete-warning[b-gk9on58o8v] {
    text-align: center;
    padding: 0.5rem 0;
}

.warning-icon[b-gk9on58o8v] {
    display: flex;
    justify-content: center;
    margin-bottom: 1rem;
}

.warning-icon svg[b-gk9on58o8v] {
    width: 48px;
    height: 48px;
    color: #e53e3e;
}

.delete-warning p[b-gk9on58o8v] {
    color: #4a5568;
    margin-bottom: 0.5rem;
}

.delete-question[b-gk9on58o8v] {
    font-weight: 600;
    color: #1e293b;
    font-style: italic;
}

.delete-note[b-gk9on58o8v] {
    color: #a0aec0;
    font-size: 0.85rem;
}

/* ============================================
   RESPONSIVE - 1024px
   ============================================ */
@@media (max-width: 1024px) {
    .stats-grid[b-gk9on58o8v] {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ============================================
   RESPONSIVE - 768px
   ============================================ */
@@media (max-width: 768px) {
    .stats-grid[b-gk9on58o8v] {
        grid-template-columns: 1fr 1fr;
    }

    .page-header[b-gk9on58o8v] {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
    }

    .header-actions[b-gk9on58o8v] {
        width: 100%;
    }

    .header-actions .btn-primary[b-gk9on58o8v] {
        width: 100%;
        justify-content: center;
    }

    .filters-container[b-gk9on58o8v] {
        flex-direction: column;
        align-items: stretch;
    }

    .search-box[b-gk9on58o8v] {
        min-width: 100%;
        max-width: 100%;
    }

    .filter-select[b-gk9on58o8v] {
        width: 100%;
    }

    /* Hide desktop table, show cards */
    .table-container[b-gk9on58o8v] {
        display: none;
    }

    .cards-container[b-gk9on58o8v] {
        display: flex;
        flex-direction: column;
        gap: 0.75rem;
    }

    .modal-content[b-gk9on58o8v] {
        max-width: 95%;
    }
}

/* ============================================
   RESPONSIVE - 480px
   ============================================ */
@@media (max-width: 480px) {
    .stats-grid[b-gk9on58o8v] {
        grid-template-columns: 1fr;
    }
}
/* /Pages/Private/EstadoCuenta.razor.rz.scp.css */
/* ============================================
   EstadoCuenta · Tesorería · BEM scoped
   ============================================ */

.estado-root[b-kgy5dbb62l] {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

/* ── Selects en header ── */
.estado-select[b-kgy5dbb62l] {
    padding: 8px 14px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-paper);
    color: var(--color-brand-green);
    font-size: 13px;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    transition: border-color 160ms ease, box-shadow 160ms ease;
}
.estado-select:focus[b-kgy5dbb62l] {
    outline: none;
    border-color: var(--color-brand-gold);
    box-shadow: 0 0 0 3px var(--color-brand-gold-soft);
}

/* ── Card principal ── */
.estado-card[b-kgy5dbb62l] {
    padding: 0;
    overflow: hidden;
}

/* ── Hero gradient ── */
.estado-hero[b-kgy5dbb62l] {
    padding: 28px;
    background: linear-gradient(135deg, var(--color-brand-green), var(--color-brand-blue));
    color: var(--bg-paper);
    position: relative;
    overflow: hidden;
}

.estado-hero__rays[b-kgy5dbb62l] {
    position: absolute;
    top: -80px;
    right: -80px;
    width: 240px;
    height: 240px;
    background: repeating-conic-gradient(from 0deg, rgba(217, 164, 65, 0.1) 0deg 1.5deg, transparent 1.5deg 14deg);
    -webkit-mask-image: radial-gradient(circle, black, transparent 70%);
    mask-image: radial-gradient(circle, black, transparent 70%);
    pointer-events: none;
}

.spin-slow[b-kgy5dbb62l] {
    animation: estado-spin-slow-b-kgy5dbb62l 40s linear infinite;
}

@keyframes estado-spin-slow-b-kgy5dbb62l {
    to { transform: rotate(360deg); }
}

.estado-hero__content[b-kgy5dbb62l] {
    position: relative;
    z-index: 1;
}

.estado-hero__eyebrow[b-kgy5dbb62l] {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--color-brand-gold);
    margin-bottom: 6px;
}

.estado-hero__title[b-kgy5dbb62l] {
    font-family: var(--font-display);
    font-size: 28px;
    font-weight: 600;
    color: var(--bg-paper);
    margin: 0 0 24px;
    line-height: 1.15;
}

.estado-hero__stats[b-kgy5dbb62l] {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 24px;
    margin-bottom: 20px;
}

.estado-hero__stat-label[b-kgy5dbb62l] {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-brand-gold);
    margin-bottom: 6px;
}

.estado-hero__stat-value[b-kgy5dbb62l] {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 600;
    color: var(--bg-paper);
    line-height: 1;
}
.estado-hero__stat-value--gold[b-kgy5dbb62l] { color: var(--color-brand-gold); }

.estado-hero__bar[b-kgy5dbb62l] {
    height: 8px;
    background: rgba(255, 255, 255, 0.15);
    border-radius: 99px;
    overflow: hidden;
}

.estado-hero__bar-fill[b-kgy5dbb62l] {
    height: 100%;
    background: var(--color-brand-gold);
    border-radius: 99px;
    transition: width 1000ms cubic-bezier(.2,.7,.2,1);
}

.estado-hero__bar-caption[b-kgy5dbb62l] {
    font-size: 12px;
    opacity: 0.75;
    margin-top: 8px;
    color: var(--bg-paper);
}

/* ── Tabla ── */
.estado-table-wrap[b-kgy5dbb62l] {
    overflow-x: auto;
}

.estado-table[b-kgy5dbb62l] {
    width: 100%;
    border-collapse: collapse;
}

.estado-th[b-kgy5dbb62l] {
    padding: 12px 22px;
    text-align: left;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    background: var(--bg-page);
    border-bottom: 1px solid var(--border-soft);
}
.estado-th--right[b-kgy5dbb62l] { text-align: right; }

.estado-row[b-kgy5dbb62l] {
    border-top: 1px solid var(--border-soft);
    transition: background-color 140ms ease;
}
.estado-row:hover[b-kgy5dbb62l] { background: var(--bg-paper); }
.estado-row--pending[b-kgy5dbb62l] { background: rgba(160, 57, 46, 0.04); }

.estado-td[b-kgy5dbb62l] {
    padding: 14px 22px;
    font-size: 13px;
    color: var(--color-brand-green);
    vertical-align: middle;
}
.estado-td--right[b-kgy5dbb62l]    { text-align: right; }
.estado-td--bold[b-kgy5dbb62l]     { font-weight: 600; }
.estado-td--success[b-kgy5dbb62l]  { color: var(--state-success); font-weight: 600; }
.estado-td--warn[b-kgy5dbb62l]     { color: var(--state-warning); font-weight: 600; }
.estado-td--muted[b-kgy5dbb62l]    { color: var(--text-muted); }

/* ── Estado loading ── */
.estado-state[b-kgy5dbb62l] {
    padding: 56px 24px;
    text-align: center;
    color: var(--text-muted);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

/* ── Spinner ── */
.spinner[b-kgy5dbb62l] {
    width: 36px;
    height: 36px;
    border: 3px solid var(--border-soft);
    border-top-color: var(--color-brand-red);
    border-radius: 50%;
    animation: estado-spin-b-kgy5dbb62l 800ms linear infinite;
}
@keyframes estado-spin-b-kgy5dbb62l { to { transform: rotate(360deg); } }

/* ── Alumnos vinculados ── */
.estado-students[b-kgy5dbb62l] {
    padding: 0;
    overflow: hidden;
}

.estado-students__head[b-kgy5dbb62l] {
    padding: 16px 22px;
    border-bottom: 1px solid var(--border-soft);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.estado-students__title[b-kgy5dbb62l] {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
    color: var(--color-brand-green);
    margin: 0;
}

.estado-students__count[b-kgy5dbb62l] {
    font-size: 12px;
    color: var(--text-muted);
}

.estado-students__grid[b-kgy5dbb62l] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 16px;
    padding: 22px;
}

.estado-student[b-kgy5dbb62l] {
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    background: var(--bg-paper);
    transition: box-shadow 160ms ease, border-color 160ms ease;
}
.estado-student:hover[b-kgy5dbb62l] {
    border-color: var(--color-brand-gold);
    box-shadow: 0 6px 18px rgba(15, 31, 77, 0.06);
}

.estado-student__head[b-kgy5dbb62l] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.estado-student__avatar[b-kgy5dbb62l] {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--color-brand-gold-soft);
    color: var(--color-brand-gold);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 700;
}

.estado-student__name[b-kgy5dbb62l] {
    font-size: 14px;
    font-weight: 600;
    color: var(--color-brand-green);
}

.estado-student__dni[b-kgy5dbb62l] {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 2px;
    font-variant-numeric: tabular-nums;
}

.estado-student__plan[b-kgy5dbb62l] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 12px;
    background: var(--bg-page);
    border-radius: var(--radius-md);
}

.estado-student__plan-row[b-kgy5dbb62l] {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    color: var(--text-secondary);
}

.estado-student__plan-counts[b-kgy5dbb62l] {
    font-size: 11px;
    color: var(--text-muted);
    text-align: right;
    margin-top: 4px;
}

.estado-student__no-plan[b-kgy5dbb62l] {
    font-size: 12px;
    color: var(--text-muted);
    padding: 8px 0;
    text-align: center;
    font-style: italic;
}

/* ── Botón ghost compacto ── */
.btn-ghost--sm[b-kgy5dbb62l] {
    padding: 6px 12px;
    font-size: 12px;
}

/* ── Responsive ── */
.estado-table-wrap[b-kgy5dbb62l] {
    -webkit-overflow-scrolling: touch;
    overflow-y: hidden;
}

@media (max-width: 1024px) {
    .estado-hero[b-kgy5dbb62l] { padding: 24px; }
    .estado-hero__title[b-kgy5dbb62l] { font-size: 24px; }
    .estado-hero__stats[b-kgy5dbb62l] { gap: 18px; }
}

@media (max-width: 768px) {
    .estado-hero__stats[b-kgy5dbb62l] { grid-template-columns: 1fr 1fr; gap: 16px; }
    .estado-table[b-kgy5dbb62l] { min-width: 600px; }
    .estado-students__grid[b-kgy5dbb62l] { grid-template-columns: 1fr; }
    .estado-students__head[b-kgy5dbb62l] { flex-wrap: wrap; gap: 8px; }
}

@media (max-width: 720px) {
    .estado-hero[b-kgy5dbb62l] { padding: 22px; }
    .estado-hero__title[b-kgy5dbb62l] { font-size: 22px; }
    .estado-hero__stats[b-kgy5dbb62l] { grid-template-columns: 1fr; gap: 14px; }
    .estado-students__grid[b-kgy5dbb62l] { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
    .estado-hero[b-kgy5dbb62l] { padding: 18px 16px; }
    .estado-hero__title[b-kgy5dbb62l] { font-size: 20px; margin-bottom: 18px; }
    .estado-hero__stat-value[b-kgy5dbb62l] { font-size: 19px; }
    .estado-select[b-kgy5dbb62l] { width: 100%; }
    .estado-students__grid[b-kgy5dbb62l] { padding: 16px; gap: 12px; }
    .estado-th[b-kgy5dbb62l], .estado-td[b-kgy5dbb62l] { padding: 10px 14px; }
}
/* /Pages/Private/ExamenesVirtuales.razor.rz.scp.css */
/* ============================================
   EXÁMENES VIRTUALES · Aula virtual · SAVA School
   ============================================ */

.exam-stats[b-cfdo2onqmq] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin: 24px 0 20px;
}

@media (max-width: 980px) { .exam-stats[b-cfdo2onqmq] { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 540px) { .exam-stats[b-cfdo2onqmq] { grid-template-columns: 1fr; } }

/* loading */
.exam-state[b-cfdo2onqmq] {
    padding: 60px 20px;
    text-align: center;
    color: var(--text-muted);
}

.exam-spinner[b-cfdo2onqmq] {
    width: 32px;
    height: 32px;
    border: 3px solid var(--border-soft);
    border-top-color: var(--color-brand-red);
    border-radius: 50%;
    margin: 0 auto 12px;
    animation: exam-spin-b-cfdo2onqmq 700ms linear infinite;
}

@keyframes exam-spin-b-cfdo2onqmq { to { transform: rotate(360deg); } }

/* card + tabla */
.exam-card[b-cfdo2onqmq] {
    background: var(--bg-surface, #FFFBF3);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    overflow: hidden;
}

.exam-table-wrap[b-cfdo2onqmq] {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
}

.exam-table[b-cfdo2onqmq] {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

@media (max-width: 768px) {
    .exam-table[b-cfdo2onqmq] { min-width: 560px; }
}

.exam-table thead th[b-cfdo2onqmq] {
    text-align: left;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-size: 11px;
    font-weight: 600;
    color: var(--text-muted);
    padding: 14px 18px;
    border-bottom: 1px solid var(--border-soft);
    background: var(--bg-page);
}

.exam-table tbody td[b-cfdo2onqmq] {
    padding: 14px 18px;
    border-bottom: 1px solid var(--border-soft);
    color: var(--text-primary);
    vertical-align: middle;
}

.exam-table tbody tr:last-child td[b-cfdo2onqmq] { border-bottom: none; }

.exam-table tbody tr:hover[b-cfdo2onqmq] { background: var(--bg-page); }

.td-exam__title[b-cfdo2onqmq] {
    font-family: var(--font-display, Georgia, serif);
    font-weight: 600;
    color: var(--text-primary);
}

.td-grado[b-cfdo2onqmq], .td-when[b-cfdo2onqmq], .td-dur[b-cfdo2onqmq] {
    color: var(--text-secondary);
    white-space: nowrap;
}

.th-actions[b-cfdo2onqmq], .td-actions[b-cfdo2onqmq] {
    text-align: right;
}

.btn-link-quiet[b-cfdo2onqmq] {
    background: transparent;
    border: none;
    color: var(--color-brand-red);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 0;
    font-family: inherit;
}

.btn-link-quiet:hover[b-cfdo2onqmq] { color: var(--color-brand-red-dark); }

@media (max-width: 480px) {
    .exam-stats[b-cfdo2onqmq] { gap: 12px; }
    .exam-table thead th[b-cfdo2onqmq],
    .exam-table tbody td[b-cfdo2onqmq] { padding: 12px 14px; }
}
/* /Pages/Private/Guardian/Asistencia.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Portal Apoderado · Asistencia · scoped
   ════════════════════════════════════════════════════════════════════ */

.g-asis-root[b-ymlygqziel] {
    position: relative;
}

.g-asis-select[b-ymlygqziel] {
    appearance: none;
    -webkit-appearance: none;
    background: var(--bg-paper);
    border: 1px solid var(--border-soft);
    border-radius: 6px;
    padding: 9px 32px 9px 14px;
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
    cursor: pointer;
    background-image: linear-gradient(45deg, transparent 50%, var(--text-muted) 50%), linear-gradient(135deg, var(--text-muted) 50%, transparent 50%);
    background-position: calc(100% - 16px) calc(50% - 2px), calc(100% - 11px) calc(50% - 2px);
    background-size: 5px 5px;
    background-repeat: no-repeat;
}

/* ─── Estados ─── */
.g-asis-state[b-ymlygqziel] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    padding: 64px 24px;
    text-align: center;
    color: var(--text-muted);
    box-shadow: var(--shadow-warm-sm);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.g-asis-state__title[b-ymlygqziel] {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 4px 0 4px;
}

.g-asis-spinner[b-ymlygqziel] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 3px solid var(--border-soft);
    border-top-color: var(--color-brand-green);
    animation: gasis-spin-b-ymlygqziel 800ms linear infinite;
}

@keyframes gasis-spin-b-ymlygqziel {
    to { transform: rotate(360deg); }
}

/* ─── Selector hijo ─── */
.g-asis-children[b-ymlygqziel] {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 20px;
}

.g-asis-children__tab[b-ymlygqziel] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: 10px;
    padding: 10px 16px;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    transition: all 180ms ease-out;
}

.g-asis-children__tab:hover[b-ymlygqziel] { border-color: var(--color-brand-green); }
.g-asis-children__tab.is-active[b-ymlygqziel] {
    background: var(--color-brand-green-soft);
    border-color: var(--color-brand-green);
}

.g-asis-children__name[b-ymlygqziel] {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
}

.g-asis-children__grade[b-ymlygqziel] {
    font-size: 11px;
    color: var(--text-muted);
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

/* ─── Stats grid ─── */
.g-asis-stats[b-ymlygqziel] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-bottom: 24px;
}

/* ─── Grid 2fr 1fr ─── */
.g-asis-grid[b-ymlygqziel] {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 24px;
}

/* ─── Cards genéricas ─── */
.g-asis-card[b-ymlygqziel] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-warm-sm);
}

.g-asis-card--flush[b-ymlygqziel] {
    padding: 0;
    overflow: hidden;
}

.g-asis-card__head[b-ymlygqziel] {
    padding: 16px 20px;
    border-bottom: 1px solid var(--border-soft);
}

.g-asis-card__eyebrow[b-ymlygqziel] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
    margin-bottom: 4px;
}

.g-asis-card__title[b-ymlygqziel] {
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 600;
    margin: 0;
    color: var(--text-primary);
}

/* ─── Calendario ─── */
.g-asis-cal[b-ymlygqziel] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
}

.g-asis-cal__dayhead[b-ymlygqziel] {
    background: var(--bg-page);
    padding: 10px 6px;
    text-align: center;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--text-muted);
    border-bottom: 1px solid var(--border-soft);
}

.g-asis-cal__cell[b-ymlygqziel] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-top: none;
    border-left: none;
    min-height: 60px;
    padding: 8px;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-end;
    transition: background 180ms ease-out;
}

.g-asis-cal__num[b-ymlygqziel] {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-primary);
    align-self: flex-end;
}

.g-asis-cal__cell--presente[b-ymlygqziel] {
    background: rgba(47,125,94,0.08);
}

.g-asis-cal__cell--tarde[b-ymlygqziel] {
    background: rgba(185,122,15,0.10);
}

.g-asis-cal__cell--falta[b-ymlygqziel] {
    background: rgba(160,57,46,0.10);
}

.g-asis-cal__cell--justificada[b-ymlygqziel] {
    background: var(--bg-page);
    color: var(--text-muted);
}

.g-asis-cal__cell--justificada .g-asis-cal__num[b-ymlygqziel] {
    color: var(--text-muted);
}

.g-asis-cal__cell--muted[b-ymlygqziel] {
    background: var(--bg-page);
    opacity: 0.5;
}

.g-asis-cal__cell--muted .g-asis-cal__num[b-ymlygqziel] {
    color: var(--text-muted);
}

.g-asis-cal__cell--pendiente[b-ymlygqziel] {
    background: var(--bg-surface);
    border-style: dashed;
    border-color: var(--border-soft);
}

.g-asis-cal__cell--pendiente .g-asis-cal__num[b-ymlygqziel] {
    color: var(--text-muted);
}

.g-asis-cal__icon[b-ymlygqziel] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
}

.g-asis-cal__icon--success[b-ymlygqziel] { color: var(--state-success); }
.g-asis-cal__icon--warn[b-ymlygqziel]    { color: var(--state-warning); }
.g-asis-cal__icon--danger[b-ymlygqziel]  { color: var(--state-danger); }

.g-asis-cal__just[b-ymlygqziel] {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-muted);
    font-family: var(--font-display);
}

/* ─── Leyenda ─── */
.g-asis-legend[b-ymlygqziel] {
    display: flex;
    gap: 18px;
    flex-wrap: wrap;
    padding: 14px 20px;
    border-top: 1px solid var(--border-soft);
    background: var(--bg-page);
}

.g-asis-legend__item[b-ymlygqziel] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: var(--text-secondary);
}

.g-asis-legend__dot[b-ymlygqziel] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
}

.g-asis-legend__dot--success[b-ymlygqziel] { background: var(--state-success); }
.g-asis-legend__dot--warn[b-ymlygqziel]    { background: var(--state-warning); }
.g-asis-legend__dot--danger[b-ymlygqziel]  { background: var(--state-danger); }
.g-asis-legend__dot--muted[b-ymlygqziel]   { background: var(--text-muted); opacity: 0.4; }

/* ─── Últimos registros ─── */
.g-asis-side[b-ymlygqziel] {
    position: sticky;
    top: 24px;
    align-self: start;
}

.g-asis-recent[b-ymlygqziel] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.g-asis-recent__row[b-ymlygqziel] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 12px 20px;
    border-bottom: 1px solid var(--border-soft);
}

.g-asis-recent__row:last-child[b-ymlygqziel] {
    border-bottom: none;
}

.g-asis-recent__left[b-ymlygqziel] {
    display: flex;
    align-items: baseline;
    gap: 10px;
}

.g-asis-recent__date[b-ymlygqziel] {
    font-size: 14px;
    font-weight: 700;
    color: var(--text-primary);
}

.g-asis-recent__time[b-ymlygqziel] {
    font-size: 12px;
    color: var(--text-muted);
}

/* ─── Responsive ─── */
@media (max-width: 1024px) {
    .g-asis-grid[b-ymlygqziel] {
        grid-template-columns: 1fr;
    }

    .g-asis-side[b-ymlygqziel] {
        position: static;
    }

    .g-asis-stats[b-ymlygqziel] {
        grid-template-columns: 1fr 1fr 1fr;
    }
}

@media (max-width: 768px) {
    .g-asis-cal__cell[b-ymlygqziel] {
        min-height: 48px;
        padding: 6px 4px;
    }

    .g-asis-cal__dayhead[b-ymlygqziel] {
        padding: 8px 4px;
        font-size: 10px;
    }
}

@media (max-width: 640px) {
    .g-asis-stats[b-ymlygqziel] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 480px) {
    .g-asis-cal__cell[b-ymlygqziel] {
        min-height: 40px;
        padding: 4px 2px;
    }

    .g-asis-card__head[b-ymlygqziel] {
        padding: 14px 16px;
    }

    .g-asis-card__title[b-ymlygqziel] {
        font-size: 17px;
    }
}
/* /Pages/Private/Guardian/EstadoCuenta.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Portal Apoderado · Estado de cuenta · scoped
   ════════════════════════════════════════════════════════════════════ */

.g-ec-root[b-teqpsx8by0] {
    position: relative;
}

/* ─── Estados ─── */
.g-ec-state[b-teqpsx8by0] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    padding: 64px 24px;
    text-align: center;
    color: var(--text-muted);
    box-shadow: var(--shadow-warm-sm);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.g-ec-spinner[b-teqpsx8by0] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 3px solid var(--border-soft);
    border-top-color: var(--color-brand-green);
    animation: gec-spin-b-teqpsx8by0 800ms linear infinite;
}

@keyframes gec-spin-b-teqpsx8by0 {
    to { transform: rotate(360deg); }
}

/* ─── Card grande ─── */
.g-ec-card[b-teqpsx8by0] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-warm-sm);
    margin-bottom: 24px;
}

.g-ec-card--flush[b-teqpsx8by0] {
    padding: 0;
    overflow: hidden;
}

/* ─── Header gradient hero ─── */
.g-ec-hero[b-teqpsx8by0] {
    background: linear-gradient(135deg, var(--color-brand-green) 0%, var(--color-brand-blue) 100%);
    color: var(--bg-paper);
    padding: 28px;
    position: relative;
    overflow: hidden;
}

.g-ec-hero__rays[b-teqpsx8by0] {
    position: absolute;
    top: -100px;
    right: -100px;
    width: 320px;
    height: 320px;
    background: repeating-conic-gradient(from 0deg, rgba(217,164,65,0.10) 0deg 1.5deg, transparent 1.5deg 14deg);
    -webkit-mask-image: radial-gradient(circle, black, transparent 70%);
            mask-image: radial-gradient(circle, black, transparent 70%);
    pointer-events: none;
}

.g-ec-hero__inner[b-teqpsx8by0] {
    position: relative;
}

.g-ec-hero__eyebrow[b-teqpsx8by0] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--color-brand-gold);
    margin-bottom: 6px;
}

.g-ec-hero__title[b-teqpsx8by0] {
    font-family: var(--font-display);
    font-size: 28px;
    font-weight: 600;
    color: var(--bg-paper);
    margin: 0 0 22px;
    line-height: 1.15;
}

/* Stats grid 3 cols */
.g-ec-hero__stats[b-teqpsx8by0] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-bottom: 22px;
}

.g-ec-hero__stat-label[b-teqpsx8by0] {
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--bg-paper);
    opacity: 0.65;
    margin-bottom: 4px;
}

.g-ec-hero__stat-value[b-teqpsx8by0] {
    font-family: var(--font-display);
    font-size: 26px;
    font-weight: 700;
    color: var(--bg-paper);
    line-height: 1;
}

.g-ec-hero__stat-value--gold[b-teqpsx8by0] {
    color: var(--color-brand-gold);
}

/* Barra de progreso */
.g-ec-hero__bar[b-teqpsx8by0] {
    height: 8px;
    background: rgba(255,255,255,0.15);
    border-radius: 4px;
    overflow: hidden;
    margin-bottom: 10px;
}

.g-ec-hero__bar-fill[b-teqpsx8by0] {
    height: 100%;
    width: 28%;
    background: var(--color-brand-gold);
    border-radius: 4px;
}

.g-ec-hero__bar-note[b-teqpsx8by0] {
    font-size: 13px;
    color: var(--bg-paper);
    opacity: 0.75;
}

/* ─── Tabla cuotas ─── */
.g-ec-table-wrap[b-teqpsx8by0] {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
}

.g-ec-table[b-teqpsx8by0] {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.g-ec-table thead[b-teqpsx8by0] {
    background: var(--bg-page);
}

.g-ec-table__th[b-teqpsx8by0] {
    padding: 12px 14px;
    font-size: 11px;
    font-family: var(--font-body);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
    text-align: center;
    white-space: nowrap;
    border-bottom: 1px solid var(--border-soft);
}

.g-ec-table__th--left[b-teqpsx8by0] {
    text-align: left;
    padding-left: 24px;
}

.g-ec-table__th--right[b-teqpsx8by0] {
    text-align: right;
    padding-right: 16px;
}

.g-ec-table tbody tr[b-teqpsx8by0] {
    border-top: 1px solid var(--border-soft);
    transition: background 180ms ease-out;
}

.g-ec-table tbody tr:hover[b-teqpsx8by0] {
    background: var(--bg-page);
}

.g-ec-row-highlight[b-teqpsx8by0] {
    background: rgba(160,57,46,0.04);
}

.g-ec-row-highlight:hover[b-teqpsx8by0] {
    background: rgba(160,57,46,0.07) !important;
}

.g-ec-table__td[b-teqpsx8by0] {
    padding: 14px;
    text-align: center;
    color: var(--text-primary);
    vertical-align: middle;
}

.g-ec-table__td--left[b-teqpsx8by0] {
    text-align: left;
    padding-left: 24px;
    font-weight: 600;
}

.g-ec-table__td--right[b-teqpsx8by0] {
    text-align: right;
    padding-right: 16px;
}

.g-ec-table__td--amount[b-teqpsx8by0] {
    font-weight: 700;
}

.g-ec-table__td--status[b-teqpsx8by0] {
    text-align: center;
}

.g-ec-paid[b-teqpsx8by0] {
    color: var(--state-success);
    font-weight: 600;
}

.g-ec-muted[b-teqpsx8by0] {
    color: var(--text-muted);
}

/* ─── CTA "Próxima acción" ─── */
.g-ec-cta[b-teqpsx8by0] {
    background: var(--bg-page);
    border-radius: 12px;
    padding: 24px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
    border: 1px solid var(--border-soft);
}

.g-ec-cta__left[b-teqpsx8by0] {
    flex: 1;
    min-width: 240px;
}

.g-ec-cta__eyebrow[b-teqpsx8by0] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-brand-red);
    font-weight: 600;
    margin-bottom: 6px;
}

.g-ec-cta__title[b-teqpsx8by0] {
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0 0 4px;
}

.g-ec-cta__sub[b-teqpsx8by0] {
    font-size: 13px;
    color: var(--text-muted);
}

.g-ec-cta__btn[b-teqpsx8by0] {
    padding: 12px 22px;
    font-size: 14px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

/* ─── Responsive ─── */
@media (max-width: 1024px) {
    .g-ec-hero__stats[b-teqpsx8by0] {
        grid-template-columns: 1fr 1fr 1fr;
    }
}

@media (max-width: 768px) {
    .g-ec-hero__stats[b-teqpsx8by0] {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .g-ec-hero__title[b-teqpsx8by0] {
        font-size: 22px;
    }

    .g-ec-cta[b-teqpsx8by0] {
        flex-direction: column;
        align-items: flex-start;
    }

    .g-ec-cta__btn[b-teqpsx8by0] {
        width: 100%;
        justify-content: center;
    }

    .g-ec-table[b-teqpsx8by0] {
        min-width: 560px;
    }
}

@media (max-width: 480px) {
    .g-ec-hero__title[b-teqpsx8by0] {
        font-size: 20px;
    }

    .g-ec-table__th[b-teqpsx8by0],
    .g-ec-table__td[b-teqpsx8by0] {
        padding: 10px 12px;
    }
}
/* /Pages/Private/Guardian/Horario.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Portal Apoderado · Horario · scoped
   ════════════════════════════════════════════════════════════════════ */

.g-hor-root[b-xuwy5gy5oi] {
    position: relative;
}

/* ─── Estados ─── */
.g-hor-state[b-xuwy5gy5oi] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    padding: 64px 24px;
    text-align: center;
    color: var(--text-muted);
    box-shadow: var(--shadow-warm-sm);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.g-hor-state__title[b-xuwy5gy5oi] {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 4px 0 4px;
}

.g-hor-spinner[b-xuwy5gy5oi] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 3px solid var(--border-soft);
    border-top-color: var(--color-brand-green);
    animation: ghor-spin-b-xuwy5gy5oi 800ms linear infinite;
}

@keyframes ghor-spin-b-xuwy5gy5oi {
    to { transform: rotate(360deg); }
}

/* ─── Selector de hijo ─── */
.g-hor-children[b-xuwy5gy5oi] {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 20px;
}

.g-hor-children__tab[b-xuwy5gy5oi] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: 10px;
    padding: 10px 16px;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    transition: all 180ms ease-out;
}

.g-hor-children__tab:hover[b-xuwy5gy5oi] {
    border-color: var(--color-brand-green);
}

.g-hor-children__tab.is-active[b-xuwy5gy5oi] {
    background: var(--color-brand-green-soft);
    border-color: var(--color-brand-green);
}

.g-hor-children__name[b-xuwy5gy5oi] {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
}

.g-hor-children__grade[b-xuwy5gy5oi] {
    font-size: 11px;
    color: var(--text-muted);
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

/* ─── Grid 2.6fr 1fr ─── */
.g-hor-grid[b-xuwy5gy5oi] {
    display: grid;
    grid-template-columns: 2.6fr 1fr;
    gap: 24px;
}

/* ─── Card semanal ─── */
.g-hor-card[b-xuwy5gy5oi] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-warm-sm);
}

.g-hor-card--flush[b-xuwy5gy5oi] {
    padding: 0;
    overflow: hidden;
}

.g-hor-head[b-xuwy5gy5oi] {
    padding: 16px 20px;
    border-bottom: 1px solid var(--border-soft);
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}

.g-hor-head__eyebrow[b-xuwy5gy5oi] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
    margin-bottom: 4px;
}

.g-hor-head__title[b-xuwy5gy5oi] {
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 600;
    margin: 0;
    color: var(--text-primary);
}

.g-hor-head__journey[b-xuwy5gy5oi] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--text-muted);
}

/* ─── Grilla semanal ─── */
.g-hor-week-scroll[b-xuwy5gy5oi] {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
}

.g-hor-week-table[b-xuwy5gy5oi] {
    min-width: 720px;
    display: grid;
    grid-template-columns: 80px repeat(5, 1fr);
}

.g-hor-week-corner[b-xuwy5gy5oi] {
    padding: 10px 12px;
    background: var(--bg-page);
    border-bottom: 1px solid var(--border-soft);
}

.g-hor-day-header[b-xuwy5gy5oi] {
    padding: 12px 14px;
    background: var(--bg-page);
    color: var(--text-secondary);
    font-size: 11px;
    letter-spacing: 0.14em;
    font-weight: 600;
    border-bottom: 1px solid var(--border-soft);
    text-align: center;
}

.g-hor-day-header--today[b-xuwy5gy5oi] {
    background: var(--color-brand-green);
    color: var(--bg-paper);
}

.g-hor-day-header__name[b-xuwy5gy5oi] {
    line-height: 1.1;
}

.g-hor-day-header__num[b-xuwy5gy5oi] {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 700;
    margin-top: 2px;
    color: var(--color-brand-blue);
}

.g-hor-day-header__num--today[b-xuwy5gy5oi] {
    color: var(--color-brand-gold);
}

.g-hor-time-cell[b-xuwy5gy5oi] {
    padding: 10px 12px;
    border-bottom: 1px solid var(--border-soft);
    border-right: 1px solid var(--border-soft);
    background: var(--bg-page);
    font-size: 11px;
    font-weight: 700;
    color: var(--text-muted);
    letter-spacing: 0.06em;
    display: flex;
    align-items: center;
}

.g-hor-cell[b-xuwy5gy5oi] {
    padding: 8px;
    border-bottom: 1px solid var(--border-soft);
    border-right: 1px solid var(--border-soft);
    background: var(--bg-surface);
    min-height: 64px;
}

.g-hor-cell:last-of-type[b-xuwy5gy5oi] {
    border-right: none;
}

.g-hor-recess[b-xuwy5gy5oi] {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    color: var(--text-muted);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    background: var(--bg-page);
    border-radius: 4px;
}

.g-hor-block[b-xuwy5gy5oi] {
    border-radius: 4px;
    padding: 6px 8px;
    height: 100%;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.g-hor-block__name[b-xuwy5gy5oi] {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.15;
}

.g-hor-block__teacher[b-xuwy5gy5oi] {
    font-size: 10px;
    color: var(--text-muted);
    line-height: 1.2;
}

.g-hor-block__room[b-xuwy5gy5oi] {
    font-size: 10px;
    color: var(--text-muted);
    margin-top: auto;
}

/* ─── Card "Tu jornada hoy" (right) ─── */
.g-hor-side[b-xuwy5gy5oi] {
    position: sticky;
    top: 24px;
}

.g-hor-today[b-xuwy5gy5oi] {
    background: linear-gradient(135deg, var(--color-brand-green) 0%, var(--color-brand-blue) 100%);
    color: var(--bg-paper);
    padding: 24px;
    position: relative;
    overflow: hidden;
    border: none;
}

.g-hor-today__rays[b-xuwy5gy5oi] {
    position: absolute;
    top: -80px;
    right: -80px;
    width: 240px;
    height: 240px;
    background: repeating-conic-gradient(from 0deg, rgba(217,164,65,0.10) 0deg 1.5deg, transparent 1.5deg 14deg);
    -webkit-mask-image: radial-gradient(circle, black, transparent 70%);
            mask-image: radial-gradient(circle, black, transparent 70%);
    pointer-events: none;
}

.g-hor-today__eyebrow[b-xuwy5gy5oi] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--color-brand-gold);
    margin-bottom: 4px;
    position: relative;
}

.g-hor-today__title[b-xuwy5gy5oi] {
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 600;
    color: var(--bg-paper);
    margin: 0 0 18px;
    position: relative;
}

.g-hor-today__list[b-xuwy5gy5oi] {
    display: grid;
    gap: 10px;
    position: relative;
}

.g-hor-today-row[b-xuwy5gy5oi] {
    display: flex;
    gap: 12px;
    align-items: center;
    padding: 6px 0;
}

.g-hor-today-row--rec[b-xuwy5gy5oi] {
    background: rgba(255,255,255,0.05);
    border-radius: 4px;
    padding: 6px 10px;
}

.g-hor-today-row__time[b-xuwy5gy5oi] {
    font-size: 12px;
    font-weight: 700;
    color: var(--color-brand-gold);
    min-width: 44px;
}

.g-hor-today-row__bar[b-xuwy5gy5oi] {
    width: 4px;
    height: 28px;
    border-radius: 2px;
}

.g-hor-today-row__info[b-xuwy5gy5oi] {
    flex: 1;
    min-width: 0;
}

.g-hor-today-row__name[b-xuwy5gy5oi] {
    font-size: 13px;
    font-weight: 600;
    color: var(--bg-paper);
}

.g-hor-today-row__room[b-xuwy5gy5oi] {
    font-size: 11px;
    opacity: 0.65;
}

.g-hor-today-row__rec[b-xuwy5gy5oi] {
    flex: 1;
    font-size: 12px;
    opacity: 0.7;
    font-style: italic;
}

/* ─── Responsive ─── */
@media (max-width: 1024px) {
    .g-hor-grid[b-xuwy5gy5oi] {
        grid-template-columns: 1fr;
    }

    .g-hor-side[b-xuwy5gy5oi] {
        position: static;
    }
}

@media (max-width: 768px) {
    .g-hor-week-table[b-xuwy5gy5oi] {
        min-width: 640px;
    }
}

@media (max-width: 480px) {
    .g-hor-week-table[b-xuwy5gy5oi] {
        min-width: 540px;
        grid-template-columns: 60px repeat(5, 1fr);
    }

    .g-hor-day-header[b-xuwy5gy5oi] {
        padding: 10px 8px;
        font-size: 10px;
    }
}
/* /Pages/Private/Guardian/Notas.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Portal Apoderado · Calificaciones · scoped
   Voz cálida-formal · sin emojis.
   ════════════════════════════════════════════════════════════════════ */

.g-notas-root[b-8fmqzddqsx] {
    position: relative;
}

.g-notas-select[b-8fmqzddqsx] {
    appearance: none;
    -webkit-appearance: none;
    background: var(--bg-paper);
    border: 1px solid var(--border-soft);
    border-radius: 6px;
    padding: 9px 32px 9px 14px;
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
    cursor: pointer;
    background-image: linear-gradient(45deg, transparent 50%, var(--text-muted) 50%), linear-gradient(135deg, var(--text-muted) 50%, transparent 50%);
    background-position: calc(100% - 16px) calc(50% - 2px), calc(100% - 11px) calc(50% - 2px);
    background-size: 5px 5px;
    background-repeat: no-repeat;
}

/* ─── Estados ─── */
.g-notas-state[b-8fmqzddqsx] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    padding: 64px 24px;
    text-align: center;
    color: var(--text-muted);
    box-shadow: var(--shadow-warm-sm);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.g-notas-state__title[b-8fmqzddqsx] {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 4px 0 4px;
}

.g-notas-spinner[b-8fmqzddqsx] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 3px solid var(--border-soft);
    border-top-color: var(--color-brand-red);
    animation: gnotas-spin-b-8fmqzddqsx 800ms linear infinite;
}

@keyframes gnotas-spin-b-8fmqzddqsx {
    to { transform: rotate(360deg); }
}

/* ─── Selector de hijo ─── */
.g-notas-children[b-8fmqzddqsx] {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 20px;
}

.g-notas-children__tab[b-8fmqzddqsx] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: 10px;
    padding: 10px 16px;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    transition: all 180ms ease-out;
}

.g-notas-children__tab:hover[b-8fmqzddqsx] {
    border-color: var(--color-brand-green);
}

.g-notas-children__tab.is-active[b-8fmqzddqsx] {
    background: var(--color-brand-green-soft);
    border-color: var(--color-brand-green);
}

.g-notas-children__name[b-8fmqzddqsx] {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
}

.g-notas-children__grade[b-8fmqzddqsx] {
    font-size: 11px;
    color: var(--text-muted);
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

/* ─── Grid 2fr 1fr ─── */
.g-notas-grid[b-8fmqzddqsx] {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 24px;
}

/* ─── Card detalle (left) ─── */
.g-notas-card[b-8fmqzddqsx] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-warm-sm);
}

.g-notas-card--flush[b-8fmqzddqsx] {
    padding: 0;
    overflow: hidden;
}

.g-notas-card__head[b-8fmqzddqsx] {
    padding: 16px 20px;
    border-bottom: 1px solid var(--border-soft);
}

.g-notas-card__eyebrow[b-8fmqzddqsx] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
    margin-bottom: 4px;
}

.g-notas-card__title[b-8fmqzddqsx] {
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 600;
    margin: 0;
    color: var(--text-primary);
}

/* ─── Tabla notas ─── */
.g-notas-table-wrap[b-8fmqzddqsx] {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
}

.g-notas-table[b-8fmqzddqsx] {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.g-notas-table thead[b-8fmqzddqsx] {
    background: var(--bg-page);
}

.g-notas-table__th[b-8fmqzddqsx] {
    padding: 12px 10px;
    font-size: 11px;
    font-family: var(--font-body);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
    text-align: center;
    white-space: nowrap;
    border-bottom: 1px solid var(--border-soft);
}

.g-notas-table__th--left[b-8fmqzddqsx] {
    text-align: left;
    padding-left: 20px;
}

.g-notas-table__th--prom[b-8fmqzddqsx] {
    text-align: right;
    padding-right: 16px;
}

.g-notas-table tbody tr[b-8fmqzddqsx] {
    border-top: 1px solid var(--border-soft);
    transition: background 180ms ease-out;
}

.g-notas-table tbody tr:hover[b-8fmqzddqsx] {
    background: var(--bg-page);
}

.g-notas-table__td[b-8fmqzddqsx] {
    padding: 12px 10px;
    text-align: center;
    color: var(--text-primary);
    vertical-align: middle;
}

.g-notas-table__td--area[b-8fmqzddqsx] {
    text-align: left;
    padding-left: 20px;
    font-weight: 600;
}

.g-notas-table__td--prom[b-8fmqzddqsx] {
    text-align: right;
    padding-right: 16px;
    white-space: nowrap;
}

.g-notas-table__td--obs[b-8fmqzddqsx] {
    text-align: left;
    color: var(--text-secondary);
    font-size: 12px;
    max-width: 220px;
}

/* Promedios coloreados */
.g-notas-prom[b-8fmqzddqsx] {
    font-weight: 700;
    font-size: 14px;
    margin-right: 6px;
}

.g-notas-prom--success[b-8fmqzddqsx] {
    color: var(--state-success);
}

.g-notas-prom--gold[b-8fmqzddqsx] {
    color: var(--color-brand-gold);
}

.g-notas-prom--danger[b-8fmqzddqsx] {
    color: var(--state-danger);
}

/* ─── Sidebar (right) ─── */
.g-notas-side[b-8fmqzddqsx] {
    position: sticky;
    top: 24px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.g-notas-summary[b-8fmqzddqsx],
.g-notas-exams[b-8fmqzddqsx] {
    padding: 24px;
}

.g-notas-summary__eyebrow[b-8fmqzddqsx] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
    margin-bottom: 6px;
}

.g-notas-summary__title[b-8fmqzddqsx] {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0 0 18px;
    line-height: 1.25;
}

/* ─── Metricas ─── */
.g-notas-metrics[b-8fmqzddqsx] {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 12px;
}

.g-notas-metric[b-8fmqzddqsx] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.g-notas-metric__value[b-8fmqzddqsx] {
    font-family: var(--font-display);
    font-size: 26px;
    font-weight: 700;
    line-height: 1;
}

.g-notas-metric__value--gold[b-8fmqzddqsx] {
    color: var(--color-brand-gold);
}

.g-notas-metric__value--blue[b-8fmqzddqsx] {
    color: var(--color-brand-blue);
}

.g-notas-metric__value--success[b-8fmqzddqsx] {
    color: var(--state-success);
}

.g-notas-metric__label[b-8fmqzddqsx] {
    font-size: 11px;
    color: var(--text-muted);
    letter-spacing: 0.04em;
}

/* ─── Próximos exámenes ─── */
.g-notas-exams__list[b-8fmqzddqsx] {
    display: grid;
    gap: 14px;
}

.g-notas-exam[b-8fmqzddqsx] {
    display: grid;
    grid-template-columns: 52px 1fr;
    gap: 12px;
    align-items: flex-start;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--border-soft);
}

.g-notas-exam:last-child[b-8fmqzddqsx] {
    border-bottom: none;
    padding-bottom: 0;
}

.g-notas-exam__date[b-8fmqzddqsx] {
    font-size: 14px;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.2;
}

.g-notas-exam__head[b-8fmqzddqsx] {
    margin-bottom: 4px;
}

.g-notas-exam__area[b-8fmqzddqsx] {
    display: inline-block;
    padding: 3px 8px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.g-notas-exam__obs[b-8fmqzddqsx] {
    font-size: 12px;
    color: var(--text-muted);
    line-height: 1.4;
}

/* ─── Responsive ─── */
@media (max-width: 1024px) {
    .g-notas-grid[b-8fmqzddqsx] {
        grid-template-columns: 1fr;
    }

    .g-notas-side[b-8fmqzddqsx] {
        position: static;
    }
}

@media (max-width: 768px) {
    .g-notas-table[b-8fmqzddqsx] {
        min-width: 560px;
    }

    .g-notas-metrics[b-8fmqzddqsx] {
        grid-template-columns: 1fr 1fr 1fr;
    }
}

@media (max-width: 640px) {
    .g-notas-metrics[b-8fmqzddqsx] {
        grid-template-columns: 1fr;
    }

    .g-notas-table__td--obs[b-8fmqzddqsx] {
        max-width: none;
    }
}

@media (max-width: 480px) {
    .g-notas-table thead th[b-8fmqzddqsx],
    .g-notas-table tbody td[b-8fmqzddqsx] {
        padding: 10px 12px;
    }
}
/* /Pages/Private/Guardian/PortalGuardian.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Portal del Apoderado (privada) · scoped styles
   ════════════════════════════════════════════════════════════════════
   CARA DEL PADRE · sobrio · sin emojis.
   ════════════════════════════════════════════════════════════════════ */

.portal-root[b-bz342uu488] {
    padding: 8px 0 32px;
    max-width: 1280px;
    margin: 0 auto;
}

/* ─────────────────────────────────────
   LOADING + EMPTY
   ───────────────────────────────────── */
.portal-loading[b-bz342uu488],
.portal-empty[b-bz342uu488] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    padding: 64px 24px;
    text-align: center;
    color: var(--text-secondary);
    box-shadow: var(--shadow-warm-sm);
}

.portal-empty__title[b-bz342uu488] {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 16px 0 8px;
}

.portal-empty__body[b-bz342uu488] {
    font-size: 14px;
    color: var(--text-muted);
    max-width: 420px;
    margin: 0 auto;
}

.portal-loading__spinner[b-bz342uu488] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 3px solid var(--border-soft);
    border-top-color: var(--color-brand-green);
    animation: portal-spin-b-bz342uu488 800ms linear infinite;
    margin: 0 auto 12px;
}

@keyframes portal-spin-b-bz342uu488 {
    to { transform: rotate(360deg); }
}

/* ─────────────────────────────────────
   WELCOME EYEBROW + DISPLAY
   ───────────────────────────────────── */
.portal-welcome[b-bz342uu488] {
    margin: 8px 0 32px;
}

.portal-welcome__eyebrow[b-bz342uu488] {
    font-size: 12px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-brand-red);
    font-weight: 600;
    margin-bottom: 12px;
}

.portal-welcome__title[b-bz342uu488] {
    font-family: var(--font-display);
    font-size: 44px;
    font-weight: 600;
    line-height: 1.1;
    color: var(--text-primary);
}

.portal-welcome__em[b-bz342uu488] {
    font-style: italic;
    color: var(--color-brand-red);
}

/* ─────────────────────────────────────
   CHILD CARD (foto + datos + status)
   ───────────────────────────────────── */
.portal-child[b-bz342uu488] {
    position: relative;
    background: var(--bg-surface);
    border-radius: var(--radius-xl);
    border: 1px solid var(--border-soft);
    padding: 32px;
    margin-bottom: 32px;
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 32px;
    align-items: center;
    overflow: hidden;
    box-shadow: var(--shadow-warm-sm);
}

.portal-child__stripe[b-bz342uu488] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--color-brand-red), var(--color-brand-gold), var(--color-brand-blue));
}

.portal-child__photo[b-bz342uu488] {
    width: 120px;
    height: 160px;
    border-radius: var(--radius-lg);
    flex-shrink: 0;
}

.portal-child__info[b-bz342uu488] {
    min-width: 0;
}

.portal-child__eyebrow[b-bz342uu488] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
    margin-bottom: 8px;
}

.portal-child__name[b-bz342uu488] {
    font-family: var(--font-display);
    font-size: 32px;
    font-weight: 600;
    margin-bottom: 14px;
    color: var(--text-primary);
    line-height: 1.15;
}

.portal-child__meta[b-bz342uu488] {
    display: flex;
    gap: 24px;
    font-size: 14px;
    color: var(--text-secondary);
    flex-wrap: wrap;
}

.portal-child__meta strong[b-bz342uu488] {
    color: var(--text-primary);
    font-weight: 600;
}

.portal-child__status[b-bz342uu488] {
    text-align: right;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 8px;
}

.portal-child__updated[b-bz342uu488] {
    font-size: 12px;
    color: var(--text-muted);
}

/* ─────────────────────────────────────
   QUICK ACCESS GRID
   ───────────────────────────────────── */
.portal-quick[b-bz342uu488] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-bottom: 32px;
}

.portal-quick-card[b-bz342uu488] {
    position: relative;
    overflow: hidden;
    padding: 24px;
    height: 100%;
    text-decoration: none;
    color: inherit;
    display: block;
}

.portal-quick-card__stripe[b-bz342uu488] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
}

.portal-quick-card__icon[b-bz342uu488] {
    width: 44px;
    height: 44px;
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 8px 0 20px;
}

.portal-quick-card__label[b-bz342uu488] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
    margin-bottom: 8px;
}

.portal-quick-card__value[b-bz342uu488] {
    font-family: var(--font-display);
    font-size: 30px;
    font-weight: 600;
    line-height: 1;
    margin-bottom: 6px;
}

.portal-quick-card__sub[b-bz342uu488] {
    font-size: 12px;
    color: var(--text-muted);
}

/* ─────────────────────────────────────
   GRID (notas + comunicados)
   ───────────────────────────────────── */
.portal-grid[b-bz342uu488] {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 24px;
}

.portal-card[b-bz342uu488] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    padding: 24px;
    height: 100%;
    box-shadow: var(--shadow-warm-sm);
}

.portal-card--flush[b-bz342uu488] {
    padding: 0;
    overflow: hidden;
}

.portal-card__head[b-bz342uu488] {
    padding: 20px 24px;
    border-bottom: 1px solid var(--border-soft);
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}

.portal-card__eyebrow[b-bz342uu488] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
    margin-bottom: 4px;
}

.portal-card__title[b-bz342uu488] {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.2;
}

/* ─────────────────────────────────────
   NOTAS TABLA
   ───────────────────────────────────── */
.portal-notas[b-bz342uu488] {
    width: 100%;
    border-collapse: collapse;
}

.portal-notas thead[b-bz342uu488] {
    background: var(--bg-page);
}

.portal-notas__th[b-bz342uu488] {
    padding: 12px 8px;
    font-size: 11px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
    text-align: center;
}

.portal-notas__th--left[b-bz342uu488] {
    text-align: left;
    padding-left: 24px;
}

.portal-notas__th--right[b-bz342uu488] {
    text-align: right;
    padding-right: 24px;
}

.portal-notas__row[b-bz342uu488] {
    border-top: 1px solid var(--border-soft);
}

.portal-notas__td[b-bz342uu488] {
    padding: 12px 8px;
    text-align: center;
    color: var(--text-primary);
    font-size: 14px;
}

.portal-notas__td--left[b-bz342uu488] {
    text-align: left;
    padding-left: 24px;
    font-weight: 500;
}

.portal-notas__td--right[b-bz342uu488] {
    text-align: right;
    padding-right: 24px;
}

.portal-notas__td--danger[b-bz342uu488] {
    color: var(--state-danger);
}

.portal-notas__td--prom[b-bz342uu488] {
    font-weight: 700;
    color: var(--color-brand-green);
}

/* ─────────────────────────────────────
   COMUNICADOS
   ───────────────────────────────────── */
.portal-comunicados[b-bz342uu488] {
    display: grid;
    gap: 16px;
}

.portal-comunicado[b-bz342uu488] {
    padding-bottom: 16px;
}

.portal-comunicado--divided[b-bz342uu488] {
    border-bottom: 1px solid var(--border-soft);
}

.portal-comunicado__head[b-bz342uu488] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 6px;
    gap: 12px;
}

.portal-comunicado__from[b-bz342uu488] {
    font-size: 12px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-weight: 600;
}

.portal-comunicado__when[b-bz342uu488] {
    font-size: 11px;
    color: var(--text-muted);
}

.portal-comunicado__title[b-bz342uu488] {
    font-family: var(--font-display);
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 4px;
    color: var(--text-primary);
}

.portal-comunicado__body[b-bz342uu488] {
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.5;
}

/* ─────────────────────────────────────
   RESPONSIVE
   ───────────────────────────────────── */
@media (max-width: 1024px) {
    .portal-child[b-bz342uu488] {
        grid-template-columns: 1fr;
        text-align: center;
        padding: 24px;
    }

    .portal-child__photo[b-bz342uu488] {
        margin: 0 auto;
    }

    .portal-child__meta[b-bz342uu488] {
        justify-content: center;
    }

    .portal-child__status[b-bz342uu488] {
        text-align: center;
        align-items: center;
    }

    .portal-quick[b-bz342uu488] {
        grid-template-columns: 1fr 1fr;
    }

    .portal-grid[b-bz342uu488] {
        grid-template-columns: 1fr;
    }

    .portal-welcome__title[b-bz342uu488] {
        font-size: 34px;
    }

    .portal-notas[b-bz342uu488] {
        min-width: 480px;
    }

    .portal-card--flush[b-bz342uu488] {
        overflow-x: auto;
    }
}

@media (max-width: 768px) {
    .portal-root[b-bz342uu488] {
        padding: 4px 0 24px;
    }

    .portal-welcome__title[b-bz342uu488] {
        font-size: 28px;
    }

    .portal-child[b-bz342uu488] {
        padding: 20px;
        margin-bottom: 24px;
    }

    .portal-child__name[b-bz342uu488] {
        font-size: 26px;
    }

    .portal-quick-card[b-bz342uu488] {
        padding: 18px;
    }

    .portal-quick-card__value[b-bz342uu488] {
        font-size: 26px;
    }

    .portal-card[b-bz342uu488] {
        padding: 18px;
    }

    .portal-card__head[b-bz342uu488] {
        padding: 16px 18px;
    }

    .portal-card__title[b-bz342uu488] {
        font-size: 19px;
    }
}

@media (max-width: 560px) {
    .portal-quick[b-bz342uu488] {
        grid-template-columns: 1fr;
    }

    .portal-welcome__title[b-bz342uu488] {
        font-size: 26px;
    }
}

@media (max-width: 480px) {
    .portal-welcome__title[b-bz342uu488] {
        font-size: 22px;
    }

    .portal-child[b-bz342uu488] {
        padding: 16px;
    }

    .portal-child__name[b-bz342uu488] {
        font-size: 22px;
    }

    .portal-child__photo[b-bz342uu488] {
        width: 100px;
        height: 130px;
    }

    .portal-quick-card[b-bz342uu488] {
        padding: 16px;
    }

    .portal-quick-card__value[b-bz342uu488] {
        font-size: 22px;
    }

    .portal-card[b-bz342uu488] {
        padding: 14px;
    }

    .portal-card__head[b-bz342uu488] {
        padding: 14px;
    }
}
/* /Pages/Private/Horarios.razor.rz.scp.css */
/* ──────────────────────────────────────────────
   HORARIOS · SAVA School (scoped)
   ────────────────────────────────────────────── */

.hor-root[b-83belgsi6s] {
    position: relative;
}

.hor-select[b-83belgsi6s] {
    background: var(--bg-page);
    border: 1px solid var(--border-soft);
    color: var(--text-primary);
    padding: 9px 14px;
    border-radius: 8px;
    font-family: inherit;
    font-size: 13px;
    cursor: pointer;
}

.hor-select:focus[b-83belgsi6s] {
    outline: none;
    border-color: var(--color-brand-blue);
}

.hor-loading[b-83belgsi6s] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    flex-direction: column;
    min-height: 320px;
    color: var(--text-muted);
}

/* Layout 2.6fr 1fr */
.hor-grid[b-83belgsi6s] {
    display: grid;
    grid-template-columns: 2.6fr 1fr;
    gap: 24px;
}

/* ──────── Card semanal ──────── */
.hor-week-card[b-83belgsi6s] {
    padding: 0;
    overflow: hidden;
}

.hor-week-head[b-83belgsi6s] {
    padding: 16px 20px;
    border-bottom: 1px solid var(--border-soft);
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}

.hor-week-head__eyebrow[b-83belgsi6s] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
    margin-bottom: 4px;
}

.hor-week-head__title[b-83belgsi6s] {
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 600;
    margin: 0;
    color: var(--text-primary);
}

.hor-week-head__journey[b-83belgsi6s] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: var(--text-muted);
}

.hor-week-scroll[b-83belgsi6s] {
    overflow-x: auto;
}

.hor-week-table[b-83belgsi6s] {
    min-width: 720px;
    display: grid;
    grid-template-columns: 80px repeat(5, 1fr);
}

.hor-week-corner[b-83belgsi6s] {
    padding: 10px 12px;
    background: var(--bg-page);
    border-bottom: 1px solid var(--border-soft);
}

.hor-day-header[b-83belgsi6s] {
    padding: 12px 14px;
    background: var(--bg-page);
    color: var(--text-secondary);
    font-size: 11px;
    letter-spacing: 0.14em;
    font-weight: 600;
    border-bottom: 1px solid var(--border-soft);
    text-align: center;
}

.hor-day-header--today[b-83belgsi6s] {
    background: var(--color-brand-green);
    color: var(--bg-paper);
}

.hor-day-header__name[b-83belgsi6s] {
    line-height: 1.1;
}

.hor-day-header__num[b-83belgsi6s] {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 700;
    margin-top: 2px;
    color: var(--text-primary);
}

.hor-day-header__num--today[b-83belgsi6s] {
    color: var(--color-brand-gold);
}

.hor-time-cell[b-83belgsi6s] {
    padding: 10px 12px;
    border-bottom: 1px solid var(--border-soft);
    border-right: 1px solid var(--border-soft);
    background: var(--bg-page);
    font-size: 11px;
    font-weight: 600;
    color: var(--text-muted);
    letter-spacing: 0.06em;
    display: flex;
    align-items: center;
}

.hor-cell[b-83belgsi6s] {
    padding: 8px;
    border-bottom: 1px solid var(--border-soft);
    border-right: 1px solid var(--border-soft);
    background: var(--bg-surface);
    min-height: 64px;
}

.hor-cell--today-col[b-83belgsi6s] {
    background: rgba(217,164,65,0.04);
}

.hor-cell:last-of-type[b-83belgsi6s] {
    border-right: none;
}

.hor-recess[b-83belgsi6s] {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--bg-page);
    border-radius: 4px;
    font-size: 11px;
    font-weight: 600;
    color: var(--text-muted);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    gap: 6px;
}

.hor-block[b-83belgsi6s] {
    border-radius: 4px;
    padding: 6px 8px;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    cursor: pointer;
}

.hor-block__top[b-83belgsi6s] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.hor-block__name[b-83belgsi6s] {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.hor-block__teacher[b-83belgsi6s] {
    font-size: 10px;
    color: var(--text-muted);
    line-height: 1.2;
}

.hor-block__room[b-83belgsi6s] {
    font-size: 10px;
    color: var(--text-secondary);
    font-weight: 500;
}

/* ──────── Sidebar HOY ──────── */
.hor-side[b-83belgsi6s] {
    display: grid;
    gap: 16px;
    align-content: start;
    position: sticky;
    top: 88px;
}

.hor-today-card[b-83belgsi6s] {
    background: linear-gradient(135deg, var(--color-brand-green) 0%, var(--color-brand-blue) 100%);
    color: var(--bg-paper);
    padding: 24px;
    position: relative;
    overflow: hidden;
}

.hor-today-card__rays[b-83belgsi6s] {
    position: absolute;
    top: -80px;
    right: -80px;
    width: 220px;
    height: 220px;
    background: repeating-conic-gradient(from 0deg, rgba(217,164,65,0.10) 0deg 1.5deg, transparent 1.5deg 14deg);
    -webkit-mask-image: radial-gradient(circle, black, transparent 70%);
            mask-image: radial-gradient(circle, black, transparent 70%);
    pointer-events: none;
}

.hor-today-card__eyebrow[b-83belgsi6s] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--color-brand-gold);
    margin-bottom: 4px;
    position: relative;
}

.hor-today-card__title[b-83belgsi6s] {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 600;
    color: var(--bg-paper);
    margin: 0 0 18px;
    position: relative;
}

.hor-today-list[b-83belgsi6s] {
    display: grid;
    gap: 10px;
    position: relative;
}

.hor-today-row[b-83belgsi6s] {
    display: flex;
    gap: 12px;
    align-items: center;
    padding: 8px 10px;
}

.hor-today-row--rec[b-83belgsi6s] {
    background: rgba(255,255,255,0.05);
    border-radius: 4px;
}

.hor-today-row__time[b-83belgsi6s] {
    font-size: 12px;
    font-weight: 700;
    color: var(--color-brand-gold);
    min-width: 44px;
}

.hor-today-row__bar[b-83belgsi6s] {
    width: 4px;
    height: 28px;
    border-radius: 2px;
}

.hor-today-row__info[b-83belgsi6s] {
    flex: 1;
    min-width: 0;
}

.hor-today-row__name[b-83belgsi6s] {
    font-size: 13px;
    font-weight: 600;
    color: var(--bg-paper);
}

.hor-today-row__room[b-83belgsi6s] {
    font-size: 11px;
    opacity: 0.65;
}

.hor-today-row__rec[b-83belgsi6s] {
    flex: 1;
    font-size: 12px;
    opacity: 0.7;
    font-style: italic;
}

/* ──────── Leyenda ──────── */
.hor-legend__eyebrow[b-83belgsi6s] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
    margin-bottom: 14px;
}

.hor-legend__grid[b-83belgsi6s] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.hor-legend__row[b-83belgsi6s] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: var(--text-secondary);
}

.hor-legend__dot[b-83belgsi6s] {
    width: 12px;
    height: 12px;
    border-radius: 3px;
    flex-shrink: 0;
}

/* ──────── Modal periodos ──────── */
.hor-periods-form[b-83belgsi6s] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    align-items: end;
    padding: 12px 0;
    border-top: 1px solid var(--border-soft);
    border-bottom: 1px solid var(--border-soft);
    margin-bottom: 14px;
}

.hor-periods-list[b-83belgsi6s] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 8px;
}

.hor-periods-list__row[b-83belgsi6s] {
    display: grid;
    grid-template-columns: 32px 1fr auto auto;
    gap: 12px;
    align-items: center;
    padding: 10px 12px;
    background: var(--bg-page);
    border-radius: 6px;
    font-size: 13px;
}

.hor-periods-list__order[b-83belgsi6s] {
    font-weight: 700;
    color: var(--color-brand-red);
}

.hor-periods-list__actions[b-83belgsi6s] {
    display: flex;
    gap: 4px;
}

.cal-danger[b-83belgsi6s] {
    color: var(--color-brand-red);
}

.cal-checkbox[b-83belgsi6s] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--text-secondary);
    cursor: pointer;
}

/* Responsive */
.hor-week-scroll[b-83belgsi6s] {
    -webkit-overflow-scrolling: touch;
}

@media (max-width: 1100px) {
    .hor-grid[b-83belgsi6s] {
        grid-template-columns: 1fr;
    }
    .hor-side[b-83belgsi6s] {
        position: static;
    }
}

@media (max-width: 768px) {
    .hor-week-head[b-83belgsi6s] {
        padding: 14px 16px;
    }

    .hor-week-head__title[b-83belgsi6s] {
        font-size: 18px;
    }

    .hor-today-card[b-83belgsi6s] {
        padding: 20px 18px;
    }

    .hor-today-card__title[b-83belgsi6s] {
        font-size: 19px;
    }

    .hor-legend__grid[b-83belgsi6s] {
        grid-template-columns: 1fr;
    }

    .hor-periods-form[b-83belgsi6s] {
        grid-template-columns: 1fr;
    }

    .hor-periods-list__row[b-83belgsi6s] {
        grid-template-columns: 28px 1fr auto;
        gap: 8px;
        padding: 8px 10px;
    }
}

@media (max-width: 480px) {
    .hor-select[b-83belgsi6s] {
        width: 100%;
    }

    .hor-week-table[b-83belgsi6s] {
        min-width: 640px;
    }

    .hor-today-card[b-83belgsi6s] {
        padding: 18px 14px;
    }

    .hor-today-row[b-83belgsi6s] {
        padding: 6px 8px;
        gap: 10px;
    }
}
/* /Pages/Private/Matricula.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Matrícula (privada) · scoped styles
   ════════════════════════════════════════════════════════════════════
   Wizard institucional 5 pasos · sin emojis · tabular nums.
   AdminPageHeader, AdminBadge viven en Shared/Sava.
   ════════════════════════════════════════════════════════════════════ */

.matricula-root[b-e7yresgal4] {
    padding: 8px 0 32px;
    max-width: 1320px;
    margin: 0 auto;
}

/* ─────────────────────────────────────
   STEPPER · 5 nodos con línea + fill
   ───────────────────────────────────── */
.matricula-stepper[b-e7yresgal4] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    padding: 24px 28px;
    margin-bottom: 24px;
    box-shadow: var(--shadow-warm-sm);
}

.matricula-stepper__inner[b-e7yresgal4] {
    display: flex;
    align-items: flex-start;
    gap: 0;
    position: relative;
}

.matricula-stepper__line[b-e7yresgal4] {
    position: absolute;
    top: 24px;
    left: 5%;
    right: 5%;
    height: 2px;
    background: var(--border-soft);
    z-index: 0;
}

.matricula-stepper__fill[b-e7yresgal4] {
    position: absolute;
    top: 24px;
    left: 5%;
    height: 2px;
    background: linear-gradient(90deg, var(--color-brand-red), var(--color-brand-gold));
    z-index: 1;
    transition: width 480ms cubic-bezier(0.2, 0.7, 0.2, 1);
    max-width: 90%;
}

.matricula-stepper__node[b-e7yresgal4] {
    flex: 1;
    position: relative;
    z-index: 2;
    text-align: center;
    min-width: 0;
}

.matricula-stepper__dot[b-e7yresgal4] {
    width: 48px;
    height: 48px;
    border-radius: 99px;
    background: var(--bg-page);
    color: var(--text-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 14px;
    font-family: var(--font-display);
    font-size: 16px;
    font-weight: 700;
    border: 4px solid var(--bg-surface);
    transition: background 240ms ease, color 240ms ease, box-shadow 240ms ease;
}

.matricula-stepper__dot--active[b-e7yresgal4] {
    background: var(--color-brand-red);
    color: var(--color-brand-gold);
    box-shadow: 0 0 0 1px var(--color-brand-red), 0 0 20px rgba(160, 57, 46, 0.3);
}

.matricula-stepper__dot--done[b-e7yresgal4] {
    background: var(--color-brand-green);
    color: var(--color-brand-gold);
}

.matricula-stepper__label[b-e7yresgal4] {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-muted);
    letter-spacing: 0.02em;
    line-height: 1.4;
    padding: 0 4px;
}

.matricula-stepper__label--active[b-e7yresgal4] {
    color: var(--color-brand-red);
}

.matricula-stepper__label--done[b-e7yresgal4] {
    color: var(--text-primary);
}

/* ─────────────────────────────────────
   GRID · form + sidebar
   ───────────────────────────────────── */
.matricula-grid[b-e7yresgal4] {
    display: grid;
    grid-template-columns: 1.6fr 1fr;
    gap: 24px;
}

/* ─────────────────────────────────────
   FORM CARD
   ───────────────────────────────────── */
.matricula-form-card[b-e7yresgal4] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    padding: 32px;
    box-shadow: var(--shadow-warm-sm);
}

.matricula-form-card__eyebrow[b-e7yresgal4] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-brand-red);
    font-weight: 600;
    margin-bottom: 8px;
}

.matricula-form-card__title[b-e7yresgal4] {
    font-family: var(--font-display);
    font-size: 26px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0 0 28px;
    line-height: 1.2;
}

.matricula-form[b-e7yresgal4] {
    display: grid;
    gap: 18px;
}

.matricula-form__hint[b-e7yresgal4] {
    font-size: 14px;
    color: var(--text-secondary);
    margin-bottom: 8px;
    line-height: 1.55;
}

/* ─────────────────────────────────────
   FIELDS
   ───────────────────────────────────── */
.matricula-grid-2[b-e7yresgal4] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.matricula-grid-3[b-e7yresgal4] {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 16px;
}

.matricula-field[b-e7yresgal4] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.matricula-field__label[b-e7yresgal4] {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
    letter-spacing: 0.02em;
}

.matricula-field__input[b-e7yresgal4] {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-page);
    font-size: 14px;
    font-family: var(--font-body);
    color: var(--text-primary);
    outline: none;
    transition: border-color 140ms ease, box-shadow 140ms ease;
}

.matricula-field__input:focus[b-e7yresgal4] {
    border-color: var(--color-brand-red);
    box-shadow: 0 0 0 3px rgba(160, 57, 46, 0.12);
}

.matricula-field__textarea[b-e7yresgal4] {
    resize: vertical;
    min-height: 80px;
    font-family: var(--font-body);
    line-height: 1.55;
}

/* ─────────────────────────────────────
   CALLOUT
   ───────────────────────────────────── */
.matricula-callout[b-e7yresgal4] {
    padding: 10px 14px;
    background: var(--color-brand-gold-soft);
    border-radius: var(--radius-md);
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.55;
}

.matricula-callout--gold[b-e7yresgal4] {
    border: 1px solid rgba(217, 164, 65, 0.4);
}

.matricula-callout--lg[b-e7yresgal4] {
    margin-top: 8px;
    padding: 16px;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    border: 1px solid var(--color-brand-gold);
}

.matricula-callout__strong[b-e7yresgal4] {
    color: var(--color-brand-gold);
    font-weight: 700;
    margin-right: 4px;
}

.matricula-callout__check[b-e7yresgal4] {
    color: var(--color-brand-gold);
    display: inline-flex;
    flex-shrink: 0;
    align-items: center;
}

/* ─────────────────────────────────────
   DOCUMENTOS · paso 4
   ───────────────────────────────────── */
.matricula-doc[b-e7yresgal4] {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 18px;
    background: var(--bg-page);
    border: 1px dashed var(--border-medium);
    border-radius: var(--radius-md);
    transition: border-color 140ms ease, transform 140ms ease;
}

.matricula-doc:hover[b-e7yresgal4] {
    border-color: var(--color-brand-red);
    transform: translateY(-1px);
}

.matricula-doc__icon[b-e7yresgal4] {
    width: 36px;
    height: 36px;
    border-radius: var(--radius-sm);
    background: var(--bg-surface);
    color: var(--color-brand-red);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.matricula-doc__info[b-e7yresgal4] {
    flex: 1;
    min-width: 0;
}

.matricula-doc__title[b-e7yresgal4] {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.3;
}

.matricula-doc__hint[b-e7yresgal4] {
    font-size: 12px;
    color: var(--text-muted);
    margin-top: 2px;
}

.matricula-doc__btn[b-e7yresgal4] {
    padding: 8px 14px;
    font-size: 13px;
    flex-shrink: 0;
}

/* ─────────────────────────────────────
   TOTAL · paso 5
   ───────────────────────────────────── */
.matricula-total[b-e7yresgal4] {
    padding: 24px;
    background: linear-gradient(135deg, var(--color-brand-green) 0%, var(--color-brand-blue) 100%);
    color: var(--bg-paper);
    border-radius: var(--radius-lg);
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
}

.matricula-total__left[b-e7yresgal4],
.matricula-total__right[b-e7yresgal4] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.matricula-total__right[b-e7yresgal4] {
    text-align: right;
}

.matricula-total__eyebrow[b-e7yresgal4] {
    font-size: 11px;
    letter-spacing: 0.14em;
    color: var(--color-brand-gold);
    font-weight: 600;
    text-transform: uppercase;
}

.matricula-total__amount[b-e7yresgal4] {
    font-family: var(--font-display);
    font-size: 36px;
    font-weight: 600;
    color: var(--bg-paper);
    line-height: 1.1;
}

.matricula-total__amount--sm[b-e7yresgal4] {
    font-size: 18px;
}

.matricula-total__sub[b-e7yresgal4] {
    font-size: 12px;
    opacity: 0.75;
    margin-top: 4px;
}

/* ─────────────────────────────────────
   PAY METHODS
   ───────────────────────────────────── */
.matricula-pay-methods[b-e7yresgal4] {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 12px;
}

.matricula-pay[b-e7yresgal4] {
    width: 100%;
    text-align: left;
    padding: 18px;
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: transform 140ms ease, border-color 140ms ease, background 140ms ease;
    font-family: inherit;
}

.matricula-pay:hover[b-e7yresgal4] {
    transform: translateY(-2px);
    border-color: var(--pay-color, var(--color-brand-green));
}

.matricula-pay--active[b-e7yresgal4] {
    background: var(--bg-page);
    border: 2px solid var(--pay-color, var(--color-brand-green));
}

.matricula-pay__icon[b-e7yresgal4] {
    width: 32px;
    height: 32px;
    border-radius: var(--radius-sm);
    background: color-mix(in srgb, var(--pay-color, var(--color-brand-green)) 10%, transparent);
    color: var(--pay-color, var(--color-brand-green));
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 12px;
}

.matricula-pay__name[b-e7yresgal4] {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
}

/* ─────────────────────────────────────
   FORM FOOTER
   ───────────────────────────────────── */
.matricula-form-footer[b-e7yresgal4] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 32px;
    padding-top: 20px;
    border-top: 1px solid var(--border-soft);
    flex-wrap: wrap;
    gap: 12px;
}

.matricula-prev[disabled][b-e7yresgal4] {
    opacity: 0.4;
    cursor: not-allowed;
    pointer-events: none;
}

/* ─────────────────────────────────────
   SIDEBAR · resumen + verify
   ───────────────────────────────────── */
.matricula-aside[b-e7yresgal4] {
    display: grid;
    gap: 16px;
    position: sticky;
    top: 88px;
    align-self: start;
}

.matricula-summary[b-e7yresgal4] {
    background: var(--bg-page);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    padding: 24px;
}

.matricula-summary__eyebrow[b-e7yresgal4] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-brand-red);
    font-weight: 600;
    margin-bottom: 14px;
}

.matricula-summary__body[b-e7yresgal4] {
    display: grid;
    gap: 14px;
}

.matricula-summary__block[b-e7yresgal4] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.matricula-summary__label[b-e7yresgal4] {
    font-size: 11px;
    letter-spacing: 0.12em;
    color: var(--text-muted);
    font-weight: 600;
    text-transform: uppercase;
}

.matricula-summary__name[b-e7yresgal4] {
    font-size: 15px;
    font-weight: 600;
    font-family: var(--font-display);
    color: var(--text-primary);
    line-height: 1.3;
}

.matricula-summary__guardian[b-e7yresgal4] {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.3;
}

.matricula-summary__badges[b-e7yresgal4] {
    font-size: 14px;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.matricula-summary__pricing[b-e7yresgal4] {
    padding-top: 14px;
    border-top: 1px solid var(--border-soft);
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.matricula-summary__line[b-e7yresgal4] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    font-size: 14px;
}

.matricula-summary__line-label[b-e7yresgal4] {
    color: var(--text-secondary);
}

.matricula-summary__line-amount[b-e7yresgal4] {
    font-weight: 600;
    color: var(--text-primary);
}

.matricula-summary__line-amount--success[b-e7yresgal4] {
    color: var(--state-success);
}

.matricula-summary__total[b-e7yresgal4] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--border-soft);
}

.matricula-summary__total-label[b-e7yresgal4] {
    font-family: var(--font-display);
    font-weight: 600;
    color: var(--text-primary);
    font-size: 15px;
}

.matricula-summary__total-amount[b-e7yresgal4] {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 700;
    color: var(--color-brand-red);
}

/* ─────────────────────────────────────
   VERIFY · mini card verde-soft
   ───────────────────────────────────── */
.matricula-verify[b-e7yresgal4] {
    padding: 16px 18px;
    background: var(--color-brand-green-soft);
    border: 1px solid var(--color-brand-green);
    border-radius: var(--radius-md);
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.matricula-verify__icon[b-e7yresgal4] {
    color: var(--color-brand-green);
    display: inline-flex;
    flex-shrink: 0;
    align-items: center;
    margin-top: 1px;
}

.matricula-verify__text[b-e7yresgal4] {
    font-size: 12px;
    color: var(--text-secondary);
    line-height: 1.55;
}

/* ─────────────────────────────────────
   RESPONSIVE
   ───────────────────────────────────── */
@media (max-width: 1100px) {
    .matricula-grid[b-e7yresgal4] {
        grid-template-columns: 1fr;
    }

    .matricula-aside[b-e7yresgal4] {
        position: static;
    }

    .matricula-stepper__inner[b-e7yresgal4] {
        overflow-x: auto;
        gap: 16px;
        padding-bottom: 4px;
    }
}

@media (max-width: 760px) {
    .matricula-form-card[b-e7yresgal4] {
        padding: 22px 20px;
    }

    .matricula-grid-2[b-e7yresgal4],
    .matricula-grid-3[b-e7yresgal4],
    .matricula-pay-methods[b-e7yresgal4] {
        grid-template-columns: 1fr;
    }

    .matricula-stepper[b-e7yresgal4] {
        padding: 20px 16px;
    }

    .matricula-stepper__label[b-e7yresgal4] {
        font-size: 10px;
    }

    .matricula-stepper__dot[b-e7yresgal4] {
        width: 40px;
        height: 40px;
        font-size: 14px;
    }

    .matricula-total__amount[b-e7yresgal4] {
        font-size: 28px;
    }

    .matricula-total__right[b-e7yresgal4] {
        text-align: left;
    }

    .matricula-doc[b-e7yresgal4] {
        flex-wrap: wrap;
    }

    .matricula-doc__btn[b-e7yresgal4] {
        width: 100%;
        justify-content: center;
    }
}

@media (max-width: 480px) {
    .matricula-form-card[b-e7yresgal4] {
        padding: 18px 14px;
    }

    .matricula-form-card__title[b-e7yresgal4] {
        font-size: 22px;
    }

    .matricula-stepper[b-e7yresgal4] {
        padding: 16px 10px;
    }

    .matricula-stepper__label[b-e7yresgal4] {
        display: none;
    }

    .matricula-total[b-e7yresgal4] {
        padding: 18px;
    }

    .matricula-total__amount[b-e7yresgal4] {
        font-size: 24px;
    }

    .matricula-form-footer[b-e7yresgal4] {
        flex-direction: column-reverse;
    }

    .matricula-form-footer > *[b-e7yresgal4] {
        width: 100%;
        justify-content: center;
    }
}
/* /Pages/Private/Mensajes.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Mensajes (privada) · scoped styles
   ════════════════════════════════════════════════════════════════════
   AdminPageHeader, AdminBadge viven en Shared/Sava.
   Card split (sidebar bandeja + thread view) institucional, sin emojis.
   ════════════════════════════════════════════════════════════════════ */

.mensajes-root[b-krcul9bakw] {
    padding: 8px 0 32px;
    max-width: 1320px;
    margin: 0 auto;
}

/* ─────────────────────────────────────
   SHELL · grid 320px + 1fr
   ───────────────────────────────────── */
.mensajes-shell[b-krcul9bakw] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-warm-sm);
    overflow: hidden;
    display: grid;
    grid-template-columns: 320px 1fr;
    height: 620px;
    margin-top: 24px;
}

/* ─────────────────────────────────────
   SIDEBAR
   ───────────────────────────────────── */
.mensajes-sidebar[b-krcul9bakw] {
    border-right: 1px solid var(--border-soft);
    overflow-y: auto;
    background: var(--bg-surface);
    display: flex;
    flex-direction: column;
}

.mensajes-sidebar__head[b-krcul9bakw] {
    padding: 14px 20px;
    border-bottom: 1px solid var(--border-soft);
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-shrink: 0;
    background: var(--bg-surface);
    position: sticky;
    top: 0;
    z-index: 1;
}

.mensajes-sidebar__eyebrow[b-krcul9bakw] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--text-secondary);
}

.mensajes-sidebar__list[b-krcul9bakw] {
    display: flex;
    flex-direction: column;
}

/* ─────────────────────────────────────
   THREAD ITEM
   ───────────────────────────────────── */
.mensajes-thread[b-krcul9bakw] {
    all: unset;
    cursor: pointer;
    padding: 14px 20px;
    border-bottom: 1px solid var(--border-soft);
    border-left: 3px solid transparent;
    background: var(--bg-surface);
    display: flex;
    gap: 12px;
    transition: background 160ms ease-out, border-color 160ms ease-out;
}

.mensajes-thread:hover[b-krcul9bakw] {
    background: var(--bg-page);
}

.mensajes-thread.is-selected[b-krcul9bakw] {
    background: var(--bg-page);
    border-left-color: var(--color-brand-red);
}

.mensajes-thread__avatar[b-krcul9bakw] {
    width: 36px;
    height: 36px;
    border-radius: 99px;
    color: var(--bg-paper);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 12px;
    flex-shrink: 0;
}

.mensajes-thread__body[b-krcul9bakw] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.mensajes-thread__top[b-krcul9bakw] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 10px;
}

.mensajes-thread__from[b-krcul9bakw] {
    font-size: 13px;
    font-weight: 500;
    color: var(--text-primary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mensajes-thread.is-unread .mensajes-thread__from[b-krcul9bakw] {
    font-weight: 700;
}

.mensajes-thread__when[b-krcul9bakw] {
    font-size: 10px;
    color: var(--text-muted);
    flex-shrink: 0;
}

.mensajes-thread__subject[b-krcul9bakw] {
    font-size: 13px;
    font-weight: 400;
    color: var(--text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: flex;
    align-items: center;
}

.mensajes-thread.is-unread .mensajes-thread__subject[b-krcul9bakw] {
    font-weight: 600;
}

.mensajes-thread__dot[b-krcul9bakw] {
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 99px;
    background: var(--color-brand-red);
    margin-right: 8px;
    flex-shrink: 0;
}

.mensajes-thread__preview[b-krcul9bakw] {
    font-size: 12px;
    color: var(--text-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ─────────────────────────────────────
   THREAD VIEW
   ───────────────────────────────────── */
.mensajes-thread-view[b-krcul9bakw] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    background: var(--bg-surface);
}

.mensajes-thread-view__head[b-krcul9bakw] {
    padding: 20px 24px;
    border-bottom: 1px solid var(--border-soft);
    flex-shrink: 0;
}

.mensajes-thread-view__head-top[b-krcul9bakw] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 14px;
}

.mensajes-thread-view__subject[b-krcul9bakw] {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 600;
    line-height: 1.25;
    color: var(--text-primary);
    margin: 0;
}

.mensajes-thread-view__head-actions[b-krcul9bakw] {
    display: flex;
    gap: 6px;
    flex-shrink: 0;
}

.mensajes-icon-btn[b-krcul9bakw] {
    padding: 8px;
    min-width: 0;
    line-height: 1;
}

.mensajes-thread-view__author[b-krcul9bakw] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.mensajes-thread-view__avatar[b-krcul9bakw] {
    width: 40px;
    height: 40px;
    border-radius: 99px;
    color: var(--bg-paper);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 13px;
    flex-shrink: 0;
}

.mensajes-thread-view__name[b-krcul9bakw] {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-primary);
}

.mensajes-thread-view__role[b-krcul9bakw] {
    font-size: 12px;
    color: var(--text-muted);
}

/* ─────────────────────────────────────
   THREAD BODY (paragraphs)
   ───────────────────────────────────── */
.mensajes-thread-view__body[b-krcul9bakw] {
    flex: 1;
    padding: 28px;
    overflow-y: auto;
}

.mensajes-thread-view__paragraph[b-krcul9bakw] {
    font-family: var(--font-display);
    font-size: 15px;
    line-height: 1.7;
    color: var(--text-primary);
    margin: 0 0 18px;
}

.mensajes-thread-view__paragraph:last-child[b-krcul9bakw] {
    margin-bottom: 0;
}

/* ─────────────────────────────────────
   COMPOSER
   ───────────────────────────────────── */
.mensajes-thread-view__composer[b-krcul9bakw] {
    padding: 20px;
    border-top: 1px solid var(--border-soft);
    background: var(--bg-page);
    flex-shrink: 0;
}

.mensajes-composer[b-krcul9bakw] {
    background: var(--bg-surface);
    border: 1px solid var(--border-medium);
    border-radius: var(--radius-lg);
    padding: 16px;
    transition: border-color 160ms ease-out, box-shadow 160ms ease-out;
}

.mensajes-composer:focus-within[b-krcul9bakw] {
    border-color: var(--color-brand-red);
    box-shadow: 0 0 0 3px rgba(160, 57, 46, 0.10);
}

.mensajes-composer__input[b-krcul9bakw] {
    width: 100%;
    border: none;
    outline: none;
    resize: none;
    background: transparent;
    font-family: var(--font-body);
    font-size: 14px;
    color: var(--text-primary);
    line-height: 1.5;
}

.mensajes-composer__input[b-krcul9bakw]::placeholder {
    color: var(--text-muted);
}

.mensajes-composer__bar[b-krcul9bakw] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 8px;
}

.mensajes-composer__tools[b-krcul9bakw] {
    display: flex;
    gap: 6px;
}

/* ─────────────────────────────────────
   RESPONSIVE
   ───────────────────────────────────── */
@media (max-width: 880px) {
    .mensajes-shell[b-krcul9bakw] {
        grid-template-columns: 1fr;
        height: auto;
    }

    .mensajes-sidebar[b-krcul9bakw] {
        border-right: none;
        border-bottom: 1px solid var(--border-soft);
        max-height: 360px;
    }
}

@media (max-width: 768px) {
    .mensajes-root[b-krcul9bakw] {
        padding: 4px 0 24px;
    }

    .mensajes-thread-view__head[b-krcul9bakw] {
        padding: 16px 18px;
    }

    .mensajes-thread-view__subject[b-krcul9bakw] {
        font-size: 19px;
    }
}

@media (max-width: 560px) {
    .mensajes-thread-view__head-top[b-krcul9bakw] {
        flex-direction: column;
        gap: 10px;
    }

    .mensajes-thread-view__body[b-krcul9bakw] {
        padding: 20px;
    }
}

@media (max-width: 480px) {
    .mensajes-sidebar[b-krcul9bakw] {
        max-height: 300px;
    }

    .mensajes-sidebar__head[b-krcul9bakw] {
        padding: 12px 16px;
    }

    .mensajes-thread[b-krcul9bakw] {
        padding: 12px 16px;
    }

    .mensajes-thread-view__head[b-krcul9bakw] {
        padding: 14px 16px;
    }

    .mensajes-thread-view__subject[b-krcul9bakw] {
        font-size: 17px;
    }
}
/* /Pages/Private/Notas.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Notas · scoped styles
   ════════════════════════════════════════════════════════════════════ */

[b-21l0ognb8k] .notas-course-select {
    appearance: none;
    -webkit-appearance: none;
    background: var(--bg-paper);
    border: 1px solid var(--border-soft);
    border-radius: 6px;
    padding: 9px 32px 9px 14px;
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
    cursor: pointer;
    background-image: linear-gradient(45deg, transparent 50%, var(--text-muted) 50%), linear-gradient(135deg, var(--text-muted) 50%, transparent 50%);
    background-position: calc(100% - 16px) calc(50% - 2px), calc(100% - 11px) calc(50% - 2px);
    background-size: 5px 5px;
    background-repeat: no-repeat;
}

[b-21l0ognb8k] .notas-bimestre-tabs {
    display: flex;
    gap: 0;
    border-bottom: 1px solid var(--border-soft);
    margin-bottom: 24px;
    overflow-x: auto;
}

[b-21l0ognb8k] .notas-bimestre-tab {
    padding: 12px 24px;
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 13px;
    color: var(--text-muted);
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    background: transparent;
    transition: color 180ms ease-out;
    white-space: nowrap;
}

[b-21l0ognb8k] .notas-bimestre-tab:hover {
    color: var(--text-primary);
}

[b-21l0ognb8k] .notas-bimestre-tab.is-active {
    color: var(--color-brand-red);
    border-bottom-color: var(--color-brand-red);
}

[b-21l0ognb8k] .notas-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 64px 24px;
    color: var(--text-muted);
    gap: 16px;
}

[b-21l0ognb8k] .notas-spinner {
    width: 36px;
    height: 36px;
    border: 3px solid var(--border-soft);
    border-top-color: var(--color-brand-red);
    border-radius: 50%;
    animation: notas-spin-b-21l0ognb8k 0.9s linear infinite;
}

@keyframes notas-spin-b-21l0ognb8k {
    to { transform: rotate(360deg); }
}

[b-21l0ognb8k] .notas-card {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: 8px;
    padding: 0;
    overflow: hidden;
}

[b-21l0ognb8k] .notas-table-wrap {
    overflow-x: auto;
}

[b-21l0ognb8k] .notas-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

[b-21l0ognb8k] .notas-table thead {
    background: var(--bg-page);
}

[b-21l0ognb8k] .notas-table th {
    text-align: left;
    padding: 12px 14px;
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 11px;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    color: var(--text-muted);
    border-bottom: 1px solid var(--border-soft);
    white-space: nowrap;
}

[b-21l0ognb8k] .notas-table th.th-num { width: 56px; }
[b-21l0ognb8k] .notas-table th.th-grade { text-align: center; width: 92px; }
[b-21l0ognb8k] .notas-table th.th-prom { text-align: center; width: 90px; }
[b-21l0ognb8k] .notas-table th.th-status { text-align: center; width: 84px; }

[b-21l0ognb8k] .notas-table tbody tr {
    border-top: 1px solid var(--border-soft);
    transition: background 180ms ease-out;
}

[b-21l0ognb8k] .notas-table tbody tr:hover {
    background: var(--bg-page);
}

[b-21l0ognb8k] .notas-table td {
    padding: 12px 14px;
    color: var(--text-primary);
    vertical-align: middle;
}

[b-21l0ognb8k] .notas-table td.td-num {
    color: var(--text-muted);
    font-size: 12px;
    font-weight: 600;
}

[b-21l0ognb8k] .student-cell {
    display: flex;
    align-items: center;
    gap: 10px;
}

[b-21l0ognb8k] .student-avatar {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--bg-page);
    color: var(--color-brand-green);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 600;
    font-family: var(--font-display);
    flex-shrink: 0;
}

[b-21l0ognb8k] .student-name {
    font-weight: 500;
    color: var(--text-primary);
}

[b-21l0ognb8k] .notas-table td.td-grade {
    text-align: center;
}

[b-21l0ognb8k] .grade-input {
    width: 56px;
    padding: 6px 8px;
    border: 1px solid var(--border-soft);
    border-radius: 4px;
    text-align: center;
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 600;
    background: var(--bg-page);
    color: var(--text-primary);
    outline: none;
    transition: border-color 180ms ease-out;
}

[b-21l0ognb8k] .grade-input:focus {
    border-color: var(--color-brand-red);
    background: var(--bg-surface);
}

[b-21l0ognb8k] .notas-table td.td-prom {
    text-align: center;
    font-weight: 700;
    font-family: var(--font-display);
    font-size: 18px;
}

[b-21l0ognb8k] .notas-table td.td-prom.is-pass { color: var(--color-brand-green); }
[b-21l0ognb8k] .notas-table td.td-prom.is-fail { color: var(--state-danger); }

[b-21l0ognb8k] .notas-table td.td-status { text-align: center; }

/* Modal */
[b-21l0ognb8k] .notas-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(28, 25, 23, 0.55);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    padding: 24px;
}

[b-21l0ognb8k] .notas-modal {
    background: var(--bg-surface);
    border-radius: 12px;
    width: 100%;
    max-width: 420px;
    overflow: hidden;
    box-shadow: 0 18px 48px rgba(28,25,23,0.24);
}

[b-21l0ognb8k] .notas-modal__head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 18px 22px;
    border-bottom: 1px solid var(--border-soft);
}

[b-21l0ognb8k] .notas-modal__head h3 {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
}

[b-21l0ognb8k] .notas-modal__close {
    background: transparent;
    color: var(--text-muted);
    border-radius: 6px;
    padding: 4px;
}

[b-21l0ognb8k] .notas-modal__close:hover {
    background: var(--bg-page);
}

[b-21l0ognb8k] .notas-modal__body {
    padding: 22px;
    font-size: 14px;
    color: var(--text-secondary);
    line-height: 1.55;
}

[b-21l0ognb8k] .notas-modal__body p {
    margin: 0 0 10px;
}

[b-21l0ognb8k] .notas-modal__hint {
    color: var(--text-muted);
    font-size: 13px;
}

[b-21l0ognb8k] .notas-modal__foot {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 14px 22px 22px;
}

/* ─────────────────────────────────────
   RESPONSIVE
   ───────────────────────────────────── */
[b-21l0ognb8k] .notas-table-wrap {
    -webkit-overflow-scrolling: touch;
    overflow-y: hidden;
}

@media (max-width: 1024px) {
    [b-21l0ognb8k] .notas-bimestre-tab {
        padding: 10px 18px;
        font-size: 12px;
    }
}

@media (max-width: 768px) {
    [b-21l0ognb8k] .notas-bimestre-tab {
        padding: 10px 14px;
    }

    [b-21l0ognb8k] .notas-table {
        min-width: 560px;
    }

    [b-21l0ognb8k] .notas-table th,
    [b-21l0ognb8k] .notas-table td {
        padding: 10px 12px;
    }

    [b-21l0ognb8k] .grade-input {
        width: 48px;
        font-size: 13px;
        padding: 5px 6px;
    }
}

@media (max-width: 480px) {
    [b-21l0ognb8k] .notas-course-select {
        width: 100%;
    }

    [b-21l0ognb8k] .notas-bimestre-tabs {
        gap: 0;
    }

    [b-21l0ognb8k] .notas-bimestre-tab {
        padding: 9px 12px;
        font-size: 11px;
    }

    [b-21l0ognb8k] .notas-modal {
        max-width: 92vw;
    }

    [b-21l0ognb8k] .notas-modal__head,
    [b-21l0ognb8k] .notas-modal__body,
    [b-21l0ognb8k] .notas-modal__foot {
        padding-left: 16px;
        padding-right: 16px;
    }

    [b-21l0ognb8k] .notas-modal__foot {
        flex-direction: column-reverse;
    }

    [b-21l0ognb8k] .notas-modal__foot > * {
        width: 100%;
    }
}
/* /Pages/Private/Noticias.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Noticias institucionales (privada) · scoped styles
   ════════════════════════════════════════════════════════════════════
   AdminPageHeader, StatCard, AdminBadge viven en Shared/Sava.
   3 stats + tabs + grid 2 cols de cards de noticia (banner + body).
   ════════════════════════════════════════════════════════════════════ */

.noticias-root[b-yvdf1owlx4] {
    padding: 8px 0 32px;
    max-width: 1320px;
    margin: 0 auto;
}

/* ─────────────────────────────────────
   STATS GRID
   ───────────────────────────────────── */
.noticias-stats[b-yvdf1owlx4] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin: 24px 0 24px;
}

.noticias-stats > *[b-yvdf1owlx4] {
    height: 100%;
}

/* ─────────────────────────────────────
   TABS
   ───────────────────────────────────── */
.noticias-tabs[b-yvdf1owlx4] {
    display: flex;
    gap: 4px;
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    padding: 6px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}

.noticias-tab[b-yvdf1owlx4] {
    all: unset;
    cursor: pointer;
    padding: 8px 16px;
    border-radius: var(--radius-md);
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 500;
    color: var(--text-secondary);
    transition: background 160ms ease-out, color 160ms ease-out;
}

.noticias-tab:hover[b-yvdf1owlx4] {
    background: var(--bg-page);
    color: var(--text-primary);
}

.noticias-tab.is-active[b-yvdf1owlx4] {
    background: var(--color-brand-red);
    color: var(--bg-paper);
    font-weight: 600;
}

/* ─────────────────────────────────────
   GRID DE CARDS
   ───────────────────────────────────── */
.noticias-grid[b-yvdf1owlx4] {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

/* ─────────────────────────────────────
   CARD
   ───────────────────────────────────── */
.noticias-card[b-yvdf1owlx4] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-warm-sm);
    overflow: hidden;
    padding: 0;
    display: flex;
    flex-direction: column;
    cursor: pointer;
}

.noticias-card__banner[b-yvdf1owlx4] {
    aspect-ratio: 16 / 9;
    width: 100%;
    align-items: flex-end;
    padding: 14px;
}

.noticias-card__body[b-yvdf1owlx4] {
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    flex: 1;
}

.noticias-card__title[b-yvdf1owlx4] {
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 600;
    line-height: 1.3;
    color: var(--text-primary);
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.noticias-card__excerpt[b-yvdf1owlx4] {
    font-size: 14px;
    line-height: 1.55;
    color: var(--text-muted);
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    flex: 1;
}

.noticias-card__meta[b-yvdf1owlx4] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: var(--text-muted);
    border-top: 1px solid var(--border-soft);
    padding-top: 12px;
    margin-top: 4px;
    flex-wrap: wrap;
}

.noticias-card__author[b-yvdf1owlx4] {
    font-weight: 500;
    color: var(--text-secondary);
}

.noticias-card__date[b-yvdf1owlx4] {
    color: var(--text-muted);
}

.noticias-card__sep[b-yvdf1owlx4] {
    color: var(--border-medium);
}

.noticias-card__views[b-yvdf1owlx4] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: var(--text-muted);
}

/* ─────────────────────────────────────
   RESPONSIVE
   ───────────────────────────────────── */
@media (max-width: 1024px) {
    .noticias-stats[b-yvdf1owlx4] {
        grid-template-columns: 1fr 1fr 1fr;
    }
}

@media (max-width: 960px) {
    .noticias-grid[b-yvdf1owlx4] {
        grid-template-columns: 1fr;
    }

    .noticias-stats[b-yvdf1owlx4] {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 768px) {
    .noticias-root[b-yvdf1owlx4] {
        padding: 4px 0 24px;
    }

    .noticias-stats[b-yvdf1owlx4] {
        grid-template-columns: 1fr 1fr;
    }

    .noticias-tabs[b-yvdf1owlx4] {
        overflow-x: auto;
        flex-wrap: nowrap;
    }

    .noticias-tab[b-yvdf1owlx4] {
        white-space: nowrap;
    }

    .noticias-card__body[b-yvdf1owlx4] {
        padding: 20px;
    }

    .noticias-card__title[b-yvdf1owlx4] {
        font-size: 18px;
    }
}

@media (max-width: 560px) {
    .noticias-stats[b-yvdf1owlx4] {
        grid-template-columns: 1fr;
    }

    .noticias-tab[b-yvdf1owlx4] {
        padding: 8px 12px;
        font-size: 12px;
    }

    .noticias-card__body[b-yvdf1owlx4] {
        padding: 18px;
    }
}

@media (max-width: 480px) {
    .noticias-card__body[b-yvdf1owlx4] {
        padding: 16px;
        gap: 10px;
    }

    .noticias-card__title[b-yvdf1owlx4] {
        font-size: 17px;
    }
}
/* /Pages/Private/Notificaciones.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Centro de notificaciones (privada) · scoped styles
   ════════════════════════════════════════════════════════════════════
   AdminPageHeader, StatCard, AdminBadge viven en Shared/Sava.
   4 stats + tabs + card-tabla densa institucional.
   ════════════════════════════════════════════════════════════════════ */

.notif-root[b-cajy3t0n7m] {
    padding: 8px 0 32px;
    max-width: 1320px;
    margin: 0 auto;
}

/* ─────────────────────────────────────
   STATS GRID
   ───────────────────────────────────── */
.notif-stats[b-cajy3t0n7m] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin: 24px 0 24px;
}

.notif-stats > *[b-cajy3t0n7m] {
    height: 100%;
}

/* ─────────────────────────────────────
   TABS
   ───────────────────────────────────── */
.notif-tabs[b-cajy3t0n7m] {
    display: flex;
    gap: 4px;
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    padding: 6px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}

.notif-tab[b-cajy3t0n7m] {
    all: unset;
    cursor: pointer;
    padding: 8px 16px;
    border-radius: var(--radius-md);
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 500;
    color: var(--text-secondary);
    transition: background 160ms ease-out, color 160ms ease-out;
}

.notif-tab:hover[b-cajy3t0n7m] {
    background: var(--bg-page);
    color: var(--text-primary);
}

.notif-tab.is-active[b-cajy3t0n7m] {
    background: var(--color-brand-red);
    color: var(--bg-paper);
    font-weight: 600;
}

/* ─────────────────────────────────────
   TABLE CARD
   ───────────────────────────────────── */
.notif-table-card[b-cajy3t0n7m] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-warm-sm);
    overflow: hidden;
}

.notif-table-card__head[b-cajy3t0n7m] {
    padding: 16px 20px;
    border-bottom: 1px solid var(--border-soft);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.notif-table-card__title[b-cajy3t0n7m] {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
}

/* ─────────────────────────────────────
   TABLE
   ───────────────────────────────────── */
.notif-table-wrap[b-cajy3t0n7m] {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
}

.notif-table[b-cajy3t0n7m] {
    width: 100%;
    border-collapse: collapse;
    font-family: var(--font-body);
}

.notif-table thead th[b-cajy3t0n7m] {
    text-align: left;
    padding: 12px 20px;
    background: var(--bg-page);
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--text-secondary);
    border-bottom: 1px solid var(--border-soft);
}

.notif-table tbody td[b-cajy3t0n7m] {
    padding: 14px 20px;
    border-bottom: 1px solid var(--border-soft);
    font-size: 13px;
    color: var(--text-primary);
    vertical-align: middle;
}

.notif-table tbody tr:last-child td[b-cajy3t0n7m] {
    border-bottom: none;
}

.notif-table tbody tr:hover[b-cajy3t0n7m] {
    background: var(--bg-page);
}

.notif-table__title[b-cajy3t0n7m] {
    font-family: var(--font-display);
    font-size: 14px;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.3;
}

.notif-table__preview[b-cajy3t0n7m] {
    font-size: 12px;
    color: var(--text-muted);
    margin-top: 3px;
    max-width: 360px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.notif-table__recipients[b-cajy3t0n7m] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    background: var(--bg-page);
    border-radius: 99px;
    font-size: 12px;
    color: var(--text-secondary);
    font-weight: 500;
}

.notif-table__date[b-cajy3t0n7m] {
    color: var(--text-muted);
    font-size: 12px;
    white-space: nowrap;
}

/* ─────────────────────────────────────
   RESPONSIVE
   ───────────────────────────────────── */
@media (max-width: 1100px) {
    .notif-stats[b-cajy3t0n7m] {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .notif-root[b-cajy3t0n7m] {
        padding: 4px 0 24px;
    }

    .notif-tabs[b-cajy3t0n7m] {
        overflow-x: auto;
        flex-wrap: nowrap;
    }

    .notif-tab[b-cajy3t0n7m] {
        white-space: nowrap;
    }

    .notif-table[b-cajy3t0n7m] {
        min-width: 560px;
    }
}

@media (max-width: 720px) {
    .notif-stats[b-cajy3t0n7m] {
        grid-template-columns: 1fr 1fr;
    }

    .notif-tab[b-cajy3t0n7m] {
        padding: 8px 12px;
        font-size: 12px;
    }

    .notif-table thead th[b-cajy3t0n7m],
    .notif-table tbody td[b-cajy3t0n7m] {
        padding: 12px 14px;
    }
}

@media (max-width: 480px) {
    .notif-stats[b-cajy3t0n7m] {
        grid-template-columns: 1fr;
    }

    .notif-table-card__head[b-cajy3t0n7m] {
        padding: 14px 16px;
    }
}
/* /Pages/Private/Perfil.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Perfil del usuario (privada) · scoped styles
   ════════════════════════════════════════════════════════════════════
   Institucional · sin emojis · avatar + datos personales + seguridad.
   ════════════════════════════════════════════════════════════════════ */

.perfil-root[b-urltgppsni] {
    padding: 8px 0 32px;
    max-width: 1320px;
    margin: 0 auto;
}

.perfil-loading[b-urltgppsni] {
    padding: 48px 24px;
    text-align: center;
    color: var(--text-muted);
    font-size: 14px;
}

/* ─────────────────────────────────────
   GRID PRINCIPAL: avatar + datos
   ───────────────────────────────────── */
.perfil-grid[b-urltgppsni] {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 24px;
    margin: 24px 0 32px;
}

/* ─────────────────────────────────────
   CARD BASE
   ───────────────────────────────────── */
.perfil-card[b-urltgppsni] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-warm-sm);
    height: 100%;
}

/* ─────────────────────────────────────
   CARD AVATAR (columna izquierda)
   ───────────────────────────────────── */
.perfil-card--avatar[b-urltgppsni] {
    padding: 32px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.perfil-avatar[b-urltgppsni] {
    width: 180px;
    height: 180px;
    border-radius: 99px;
    background: var(--bg-page);
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--border-soft);
}

.perfil-avatar__initials[b-urltgppsni] {
    font-family: var(--font-display);
    font-size: 48px;
    font-weight: 600;
    color: var(--color-brand-green);
    letter-spacing: -0.02em;
}

.perfil-photo-link[b-urltgppsni] {
    background: transparent;
    border: none;
    margin-top: 16px;
    font-size: 13px;
    color: var(--text-muted);
    text-decoration: underline;
    cursor: pointer;
    font-family: var(--font-body);
}

.perfil-photo-link:hover[b-urltgppsni] {
    color: var(--text-primary);
}

.perfil-name[b-urltgppsni] {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 24px 0 4px;
    line-height: 1.2;
}

.perfil-role[b-urltgppsni] {
    font-size: 14px;
    color: var(--text-muted);
}

.perfil-status[b-urltgppsni] {
    margin-top: 12px;
}

.perfil-sede[b-urltgppsni] {
    margin-top: 28px;
    padding: 16px;
    width: 100%;
    background: var(--bg-page);
    border-radius: 8px;
    border: 1px solid var(--border-soft);
    text-align: left;
}

.perfil-sede__eyebrow[b-urltgppsni] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
    margin-bottom: 6px;
}

.perfil-sede__row[b-urltgppsni] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.perfil-sede__value[b-urltgppsni] {
    font-size: 15px;
    font-weight: 600;
    color: var(--text-primary);
}

/* ─────────────────────────────────────
   CARD DATOS (columna derecha)
   ───────────────────────────────────── */
.perfil-card--datos[b-urltgppsni] {
    padding: 32px;
}

.perfil-section__eyebrow[b-urltgppsni] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
    margin-bottom: 4px;
}

.perfil-section__title[b-urltgppsni] {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.2;
    margin: 0 0 20px;
}

.perfil-muted[b-urltgppsni] {
    font-size: 13px;
    color: var(--text-muted);
    margin: 0 0 16px;
    line-height: 1.5;
}

.perfil-alert[b-urltgppsni] {
    background: rgba(160, 57, 46, 0.08);
    border: 1px solid rgba(160, 57, 46, 0.2);
    color: var(--color-brand-red);
    padding: 10px 14px;
    border-radius: 6px;
    font-size: 13px;
    margin-bottom: 16px;
}

/* ─────────────────────────────────────
   FORM GRID 2 cols
   ───────────────────────────────────── */
.perfil-form[b-urltgppsni] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px 18px;
}

.perfil-field[b-urltgppsni] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.perfil-field--full[b-urltgppsni] {
    grid-column: 1 / -1;
}

.perfil-label[b-urltgppsni] {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-muted);
}

.perfil-input[b-urltgppsni] {
    padding: 10px 12px;
    border: 1px solid var(--border-soft);
    border-radius: 6px;
    background: var(--bg-surface);
    font-size: 14px;
    color: var(--text-primary);
    font-family: var(--font-body);
    outline: none;
    transition: border-color 160ms ease-out, box-shadow 160ms ease-out;
}

.perfil-input:focus[b-urltgppsni] {
    border-color: var(--color-brand-green);
    box-shadow: var(--shadow-focus);
}

.perfil-input[readonly][b-urltgppsni] {
    background: var(--bg-page);
    color: var(--text-secondary);
    cursor: not-allowed;
}

/* ─────────────────────────────────────
   DIVIDER y sección SEGURIDAD
   ───────────────────────────────────── */
.perfil-divider[b-urltgppsni] {
    margin: 32px 0 24px;
    border-top: 1px solid var(--border-soft);
}

.perfil-pwd-btn[b-urltgppsni] {
    margin-top: 4px;
}

/* ─────────────────────────────────────
   RESPONSIVE
   ───────────────────────────────────── */
@media (max-width: 1024px) {
    .perfil-grid[b-urltgppsni] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .perfil-form[b-urltgppsni] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .perfil-form[b-urltgppsni] {
        grid-template-columns: 1fr;
    }

    .perfil-card--avatar[b-urltgppsni],
    .perfil-card--datos[b-urltgppsni] {
        padding: 20px;
    }

    .perfil-avatar[b-urltgppsni] {
        width: 140px;
        height: 140px;
    }

    .perfil-avatar__initials[b-urltgppsni] {
        font-size: 40px;
    }
}

@media (max-width: 480px) {
    .perfil-card--avatar[b-urltgppsni],
    .perfil-card--datos[b-urltgppsni] {
        padding: 16px;
    }

    .perfil-avatar[b-urltgppsni] {
        width: 120px;
        height: 120px;
    }

    .perfil-avatar__initials[b-urltgppsni] {
        font-size: 36px;
    }
}
/* /Pages/Private/PermisosAcceso.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Permisos y roles · scoped styles
   ════════════════════════════════════════════════════════════════════
   Grid 1fr 2fr · roles + módulos con checkboxes custom
   ════════════════════════════════════════════════════════════════════ */

.perm-root[b-3wcvn991l9] {
    padding: 8px 0 32px;
    max-width: 1320px;
    margin: 0 auto;
}

/* ── Layout grid principal ──────────────────── */
.perm-grid[b-3wcvn991l9] {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 24px;
    margin-top: 24px;
}

/* ── Card base ──────────────────────────────── */
.perm-card[b-3wcvn991l9] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    padding: 24px;
    box-shadow: var(--shadow-warm-sm);
    height: 100%;
}

.perm-card--flush[b-3wcvn991l9] {
    padding: 0;
    overflow: hidden;
}

.perm-card__head[b-3wcvn991l9] {
    padding: 16px 20px;
    border-bottom: 1px solid var(--border-soft);
}

.perm-card__title[b-3wcvn991l9] {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
}

.perm-card__lead[b-3wcvn991l9] {
    font-size: 13px;
    color: var(--text-muted);
    margin: 6px 0 20px;
    line-height: 1.55;
}

.perm-eyebrow[b-3wcvn991l9] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
    margin-bottom: 4px;
}

/* ── Lista de roles (sidebar) ───────────────── */
.perm-roles[b-3wcvn991l9] {
    display: flex;
    flex-direction: column;
}

.perm-role[b-3wcvn991l9] {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    text-align: left;
    padding: 12px 20px;
    background: transparent;
    border: none;
    border-left: 3px solid transparent;
    border-bottom: 1px solid var(--border-soft);
    color: var(--text-primary);
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background 160ms ease-out;
}

.perm-role:last-child[b-3wcvn991l9] {
    border-bottom: none;
}

.perm-role:hover[b-3wcvn991l9] {
    background: var(--bg-page);
}

.perm-role--active[b-3wcvn991l9] {
    background: var(--bg-page);
    border-left-color: var(--color-brand-red);
}

.perm-role__name[b-3wcvn991l9] {
    flex: 1;
}

/* ── Módulos (grid de cards pequeñas) ───────── */
.perm-modules[b-3wcvn991l9] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
}

.perm-module[b-3wcvn991l9] {
    border: 1px solid var(--border-soft);
    border-radius: 8px;
    padding: 16px;
    background: var(--bg-paper);
}

.perm-module__title[b-3wcvn991l9] {
    font-family: var(--font-display);
    font-size: 16px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0 0 12px;
}

/* ── Checkboxes custom ──────────────────────── */
.perm-checks[b-3wcvn991l9] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

.perm-check[b-3wcvn991l9] {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border: 1px solid var(--border-soft);
    border-radius: 6px;
    background: var(--bg-surface);
    cursor: pointer;
    transition: all 160ms ease-out;
    font-size: 13px;
    color: var(--text-secondary);
}

.perm-check:hover[b-3wcvn991l9] {
    border-color: var(--color-brand-green);
}

.perm-check input[type="checkbox"][b-3wcvn991l9] {
    display: none;
}

.perm-check__box[b-3wcvn991l9] {
    width: 18px;
    height: 18px;
    border: 1.5px solid var(--border-medium);
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--bg-surface);
    flex-shrink: 0;
    color: transparent;
    transition: all 160ms ease-out;
}

.perm-check--on[b-3wcvn991l9] {
    background: var(--color-brand-green-soft);
    border-color: var(--color-brand-green);
    color: var(--color-brand-green);
}

.perm-check--on .perm-check__box[b-3wcvn991l9] {
    background: var(--state-success);
    border-color: var(--state-success);
    color: #fff;
}

.perm-check__label[b-3wcvn991l9] {
    font-weight: 500;
}

/* ── Loading ─────────────────────────────────── */
.perm-loading[b-3wcvn991l9] {
    padding: 32px;
    text-align: center;
    color: var(--text-muted);
}

.perm-spinner[b-3wcvn991l9] {
    width: 32px;
    height: 32px;
    border: 3px solid var(--border-soft);
    border-top-color: var(--color-brand-red);
    border-radius: 50%;
    margin: 0 auto 12px;
    animation: perm-spin-b-3wcvn991l9 800ms linear infinite;
}

@keyframes perm-spin-b-3wcvn991l9 {
    to {
        transform: rotate(360deg);
    }
}

/* ── Responsive ─────────────────────────────── */
@media (max-width: 1024px) {
    .perm-grid[b-3wcvn991l9] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .perm-module[b-3wcvn991l9] {
        padding: 14px;
    }
}

@media (max-width: 640px) {
    .perm-checks[b-3wcvn991l9] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 480px) {
    .perm-module[b-3wcvn991l9] {
        padding: 12px;
    }

    .perm-module__title[b-3wcvn991l9] {
        font-size: 15px;
    }

    .perm-check[b-3wcvn991l9] {
        padding: 10px;
    }
}
/* /Pages/Private/PlanesPago.razor.rz.scp.css */
/* ============================================
   PlanesPago · Tesorería · BEM scoped
   ============================================ */

.planes-root[b-5qz2pggfk6] {
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding: 0;
}

/* ── Year select en Actions del header ── */
.planes-year-select[b-5qz2pggfk6] {
    padding: 8px 14px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-paper);
    color: var(--color-brand-green);
    font-size: 13px;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    transition: border-color 160ms ease, box-shadow 160ms ease;
}
.planes-year-select:focus[b-5qz2pggfk6] {
    outline: none;
    border-color: var(--color-brand-gold);
    box-shadow: 0 0 0 3px var(--color-brand-gold-soft);
}

/* ── KPI grid ── */
.planes-stats[b-5qz2pggfk6] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

/* ── Card principal ── */
.planes-card[b-5qz2pggfk6] {
    padding: 0;
    overflow: hidden;
}

.planes-card__head[b-5qz2pggfk6] {
    padding: 18px 22px;
    border-bottom: 1px solid var(--border-soft);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 18px;
    flex-wrap: wrap;
}

.planes-card__title[b-5qz2pggfk6] {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
    color: var(--color-brand-green);
    margin: 0;
    line-height: 1.2;
}

.planes-card__sub[b-5qz2pggfk6] {
    font-size: 12px;
    color: var(--text-muted);
    margin: 4px 0 0;
    letter-spacing: 0.02em;
}

.planes-card__filters[b-5qz2pggfk6] {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

.planes-card__filter-btn[b-5qz2pggfk6] {
    font-size: 13px;
}

.planes-card__filter-btn--danger[b-5qz2pggfk6] {
    color: var(--state-danger);
}

/* ── Search inline ── */
.planes-search[b-5qz2pggfk6] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-paper);
    min-width: 240px;
}
.planes-search input[b-5qz2pggfk6] {
    flex: 1;
    border: none;
    outline: none;
    background: transparent;
    font-size: 13px;
    color: var(--color-brand-green);
    font-family: inherit;
}
.planes-search input[b-5qz2pggfk6]::placeholder { color: var(--text-muted); }

/* ── Tabla ── */
.planes-table-wrap[b-5qz2pggfk6] {
    overflow-x: auto;
}
.planes-table-wrap--modal[b-5qz2pggfk6] {
    margin-top: 16px;
    border-top: 1px solid var(--border-soft);
}

.planes-table[b-5qz2pggfk6] {
    width: 100%;
    border-collapse: collapse;
}

.planes-th[b-5qz2pggfk6] {
    padding: 12px 18px;
    text-align: left;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    background: var(--bg-page);
    border-bottom: 1px solid var(--border-soft);
}
.planes-th--right[b-5qz2pggfk6]  { text-align: right; }
.planes-th--center[b-5qz2pggfk6] { text-align: center; }

.planes-row[b-5qz2pggfk6] {
    border-top: 1px solid var(--border-soft);
    transition: background-color 140ms ease;
}
.planes-row:hover[b-5qz2pggfk6] { background: var(--bg-paper); }
.planes-row--overdue[b-5qz2pggfk6] { background: rgba(160, 57, 46, 0.04); }

.planes-td[b-5qz2pggfk6] {
    padding: 14px 18px;
    font-size: 13px;
    color: var(--color-brand-green);
    vertical-align: middle;
}
.planes-td--right[b-5qz2pggfk6]   { text-align: right; }
.planes-td--center[b-5qz2pggfk6]  { text-align: center; }
.planes-td--bold[b-5qz2pggfk6]    { font-weight: 600; }
.planes-td--success[b-5qz2pggfk6] { color: var(--state-success); font-weight: 600; }
.planes-td--gold[b-5qz2pggfk6]    { color: var(--color-brand-gold); font-weight: 600; }
.planes-td--muted[b-5qz2pggfk6]   { color: var(--text-muted); }

.planes-student[b-5qz2pggfk6] {
    font-size: 14px;
    font-weight: 600;
    color: var(--color-brand-green);
    line-height: 1.25;
}
.planes-student__sub[b-5qz2pggfk6] {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 2px;
}

/* ── Progress bar ── */
.planes-progress[b-5qz2pggfk6] {
    display: flex;
    align-items: center;
    gap: 10px;
    max-width: 200px;
}
.planes-progress--lg[b-5qz2pggfk6] { max-width: none; margin: 0 26px 22px; }

.planes-progress__track[b-5qz2pggfk6] {
    flex: 1;
    height: 6px;
    background: var(--bg-page);
    border-radius: 99px;
    overflow: hidden;
    max-width: 120px;
}
.planes-progress--lg .planes-progress__track[b-5qz2pggfk6] { max-width: none; height: 8px; }

.planes-progress__fill[b-5qz2pggfk6] {
    height: 100%;
    border-radius: 99px;
    transition: width 800ms cubic-bezier(.2,.7,.2,1);
}

.planes-progress__pct[b-5qz2pggfk6] {
    font-size: 12px;
    font-weight: 700;
    min-width: 36px;
    color: var(--color-brand-green);
}

/* ── State (loading / empty) ── */
.planes-state[b-5qz2pggfk6] {
    padding: 56px 24px;
    text-align: center;
    color: var(--text-muted);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}
.planes-state--empty p[b-5qz2pggfk6] { font-size: 14px; }

/* ── Icon buttons ── */
.btn-icon[b-5qz2pggfk6] {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    border: 1px solid var(--border-soft);
    background: var(--bg-paper);
    color: var(--color-brand-green);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 160ms ease;
}
.btn-icon:hover[b-5qz2pggfk6] {
    background: var(--color-brand-gold-soft);
    border-color: var(--color-brand-gold);
    color: var(--color-brand-gold);
}
.btn-icon--pay[b-5qz2pggfk6] {
    background: var(--color-brand-green-soft);
    border-color: var(--color-brand-green);
    color: var(--color-brand-green);
}
.btn-icon--pay:hover[b-5qz2pggfk6] {
    background: var(--color-brand-green);
    color: var(--bg-paper);
}

.planes-actions[b-5qz2pggfk6] {
    display: inline-flex;
    gap: 6px;
}

/* ── Modal ── */
.planes-modal-overlay[b-5qz2pggfk6] {
    position: fixed;
    inset: 0;
    background: rgba(15, 31, 77, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    padding: 20px;
    animation: planes-overlay-in-b-5qz2pggfk6 200ms ease;
}

@keyframes planes-overlay-in-b-5qz2pggfk6 {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.planes-modal[b-5qz2pggfk6] {
    background: var(--bg-paper);
    border-radius: var(--radius-md);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.22);
    max-height: 90vh;
    overflow-y: auto;
    width: 100%;
    animation: planes-modal-in-b-5qz2pggfk6 220ms cubic-bezier(.2,.7,.2,1);
}
.planes-modal--sm[b-5qz2pggfk6] { max-width: 480px; }
.planes-modal--lg[b-5qz2pggfk6] { max-width: 1080px; }

@keyframes planes-modal-in-b-5qz2pggfk6 {
    from { transform: translateY(16px); opacity: 0; }
    to   { transform: translateY(0); opacity: 1; }
}

.planes-modal__head[b-5qz2pggfk6] {
    padding: 22px 26px;
    border-bottom: 1px solid var(--border-soft);
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
}
.planes-modal__head--pay[b-5qz2pggfk6] {
    background: linear-gradient(135deg, var(--color-brand-green), var(--color-brand-blue));
    color: var(--bg-paper);
    border-bottom: none;
}

.planes-modal__eyebrow[b-5qz2pggfk6] {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--color-brand-red);
    margin-bottom: 6px;
}
.planes-modal__eyebrow--cream[b-5qz2pggfk6] { color: var(--color-brand-gold); }

.planes-modal__title[b-5qz2pggfk6] {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 600;
    color: var(--color-brand-green);
    margin: 0;
    line-height: 1.2;
}
.planes-modal__title--cream[b-5qz2pggfk6] { color: var(--bg-paper); }

.planes-modal__sub[b-5qz2pggfk6] {
    font-size: 12px;
    color: var(--text-muted);
    margin: 4px 0 0;
}

.planes-modal__close[b-5qz2pggfk6] {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    border: 1px solid var(--border-soft);
    background: var(--bg-paper);
    color: var(--color-brand-green);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background-color 160ms ease;
}
.planes-modal__close:hover[b-5qz2pggfk6] { background: var(--bg-page); }
.planes-modal__close--cream[b-5qz2pggfk6] {
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.2);
    color: var(--bg-paper);
}
.planes-modal__close--cream:hover[b-5qz2pggfk6] { background: rgba(255, 255, 255, 0.22); }

.planes-modal__footer[b-5qz2pggfk6] {
    padding: 18px 26px;
    border-top: 1px solid var(--border-soft);
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

/* ── Resumen del plan en modal ── */
.planes-summary[b-5qz2pggfk6] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
    padding: 22px 26px;
}

.planes-summary__label[b-5qz2pggfk6] {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    margin-bottom: 6px;
}

.planes-summary__value[b-5qz2pggfk6] {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 600;
    color: var(--color-brand-green);
    line-height: 1;
}
.planes-summary__value--success[b-5qz2pggfk6] { color: var(--state-success); }
.planes-summary__value--warn[b-5qz2pggfk6]    { color: var(--state-warning); }

/* ── Resumen del pago (modal pagar) ── */
.planes-pay-summary[b-5qz2pggfk6] {
    padding: 18px 26px;
    border-bottom: 1px solid var(--border-soft);
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.planes-pay-summary__row[b-5qz2pggfk6] {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    color: var(--text-secondary);
    padding: 4px 0;
}
.planes-pay-summary__value[b-5qz2pggfk6] {
    font-weight: 600;
    color: var(--color-brand-green);
}
.planes-pay-summary__row--highlight[b-5qz2pggfk6] {
    padding: 10px 12px;
    background: var(--color-brand-gold-soft);
    border-radius: 8px;
    margin-top: 6px;
    font-weight: 700;
}

/* ── Form ── */
.planes-form[b-5qz2pggfk6] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    padding: 22px 26px;
}

.planes-form__group[b-5qz2pggfk6] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.planes-form__group--full[b-5qz2pggfk6] {
    grid-column: 1 / -1;
}

.planes-form__group label[b-5qz2pggfk6] {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--text-muted);
}

.planes-form__group input[b-5qz2pggfk6],
.planes-form__group select[b-5qz2pggfk6],
.planes-form__group textarea[b-5qz2pggfk6] {
    padding: 10px 14px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-paper);
    color: var(--color-brand-green);
    font-size: 13px;
    font-family: inherit;
    transition: border-color 160ms ease, box-shadow 160ms ease;
}

.planes-form__group input:focus[b-5qz2pggfk6],
.planes-form__group select:focus[b-5qz2pggfk6],
.planes-form__group textarea:focus[b-5qz2pggfk6] {
    outline: none;
    border-color: var(--color-brand-gold);
    box-shadow: 0 0 0 3px var(--color-brand-gold-soft);
}

/* ── Bulk ── */
.planes-bulk-body[b-5qz2pggfk6] {
    padding: 22px 26px;
    font-size: 14px;
    color: var(--text-secondary);
}
.planes-bulk-body p[b-5qz2pggfk6] { margin: 0 0 8px; line-height: 1.55; }
.planes-bulk-body__hint[b-5qz2pggfk6] { font-size: 12px; color: var(--text-muted); }

.planes-bulk-result[b-5qz2pggfk6] {
    padding: 14px 26px 4px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.planes-bulk-result__item[b-5qz2pggfk6] {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    color: var(--text-secondary);
    padding: 8px 12px;
    border-radius: 8px;
    background: var(--bg-page);
}
.planes-bulk-result__item--success[b-5qz2pggfk6] { color: var(--state-success); }
.planes-bulk-result__item--danger[b-5qz2pggfk6]  { color: var(--state-danger); }

/* ── Spinner mini ── */
.spinner-sm[b-5qz2pggfk6] {
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255,255,255,0.4);
    border-top-color: currentColor;
    border-radius: 50%;
    display: inline-block;
    margin-right: 6px;
    animation: planes-spin-b-5qz2pggfk6 700ms linear infinite;
}
.spinner[b-5qz2pggfk6] {
    width: 36px;
    height: 36px;
    border: 3px solid var(--border-soft);
    border-top-color: var(--color-brand-red);
    border-radius: 50%;
    animation: planes-spin-b-5qz2pggfk6 800ms linear infinite;
}
@keyframes planes-spin-b-5qz2pggfk6 { to { transform: rotate(360deg); } }

/* ── Responsive ── */
.planes-table-wrap[b-5qz2pggfk6] {
    -webkit-overflow-scrolling: touch;
    overflow-y: hidden;
}

@media (max-width: 1200px) {
    .planes-stats[b-5qz2pggfk6] { grid-template-columns: repeat(2, 1fr); }
    .planes-summary[b-5qz2pggfk6] { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 1024px) {
    .planes-card__head[b-5qz2pggfk6] { padding: 14px 18px; }
    .planes-card__filters[b-5qz2pggfk6] { flex-wrap: wrap; }
}
@media (max-width: 768px) {
    .planes-card__filters[b-5qz2pggfk6] { width: 100%; }
    .planes-search[b-5qz2pggfk6] { flex: 1; min-width: 0; }
    .planes-table[b-5qz2pggfk6] { min-width: 720px; }
}
@media (max-width: 720px) {
    .planes-stats[b-5qz2pggfk6] { grid-template-columns: 1fr; }
    .planes-form[b-5qz2pggfk6] { grid-template-columns: 1fr; }
    .planes-card__head[b-5qz2pggfk6] { flex-direction: column; align-items: stretch; }
    .planes-search[b-5qz2pggfk6] { min-width: 0; width: 100%; }
}
@media (max-width: 480px) {
    .planes-modal[b-5qz2pggfk6] { max-width: 92vw; }
    .planes-modal--sm[b-5qz2pggfk6],
    .planes-modal--lg[b-5qz2pggfk6] { max-width: 92vw; }
    .planes-modal__head[b-5qz2pggfk6],
    .planes-modal__footer[b-5qz2pggfk6],
    .planes-form[b-5qz2pggfk6],
    .planes-summary[b-5qz2pggfk6],
    .planes-pay-summary[b-5qz2pggfk6],
    .planes-bulk-body[b-5qz2pggfk6],
    .planes-bulk-result[b-5qz2pggfk6] { padding-left: 16px; padding-right: 16px; }
    .planes-modal__footer[b-5qz2pggfk6] { flex-direction: column-reverse; }
    .planes-modal__footer > *[b-5qz2pggfk6] { width: 100%; justify-content: center; }
    .planes-summary[b-5qz2pggfk6] { grid-template-columns: 1fr; }
    .planes-year-select[b-5qz2pggfk6] { width: 100%; }
    .planes-th[b-5qz2pggfk6], .planes-td[b-5qz2pggfk6] { padding: 10px 12px; }
}
/* /Pages/Private/Portafolio.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Portafolio estudiantil (privada) · scoped styles
   ════════════════════════════════════════════════════════════════════
   Institucional · sin emojis · evidencias timeline + reflexiones quote.
   ════════════════════════════════════════════════════════════════════ */

.portafolio-root[b-jec1kz4u2o] {
    padding: 8px 0 32px;
    max-width: 1320px;
    margin: 0 auto;
}

/* ─────────────────────────────────────
   SELECT (filtros en header actions)
   ───────────────────────────────────── */
.portafolio-select[b-jec1kz4u2o] {
    padding: 8px 12px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-surface);
    font-size: 13px;
    font-family: var(--font-body);
    font-weight: 500;
    color: var(--text-primary);
    outline: none;
    cursor: pointer;
}

.portafolio-select:focus[b-jec1kz4u2o] {
    box-shadow: var(--shadow-focus);
}

.portafolio-loading[b-jec1kz4u2o] {
    padding: 48px 24px;
    text-align: center;
    color: var(--text-muted);
    font-size: 14px;
}

/* ─────────────────────────────────────
   CARD BASE
   ───────────────────────────────────── */
.portafolio-card[b-jec1kz4u2o] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-warm-sm);
    padding: 24px;
    height: 100%;
}

.portafolio-card--flush[b-jec1kz4u2o] {
    padding: 0;
    overflow: hidden;
}

.portafolio-card__head[b-jec1kz4u2o] {
    padding: 16px 20px;
    border-bottom: 1px solid var(--border-soft);
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}

.portafolio-card__eyebrow[b-jec1kz4u2o] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
    margin-bottom: 4px;
}

.portafolio-card__title[b-jec1kz4u2o] {
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.25;
    margin: 0;
}

.portafolio-eyebrow[b-jec1kz4u2o] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
    margin-bottom: 8px;
}

/* ─────────────────────────────────────
   STUDENT CARD (top hero)
   ───────────────────────────────────── */
.portafolio-student[b-jec1kz4u2o] {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 24px;
    align-items: center;
    padding: 28px;
    margin: 24px 0;
}

.portafolio-student__photo[b-jec1kz4u2o] {
    width: 120px;
    height: 140px;
    border-radius: 8px;
    background: var(--bg-page);
    border: 1px solid var(--border-soft);
    display: flex;
    align-items: flex-end;
    justify-content: flex-start;
    padding: 8px;
    flex-shrink: 0;
    position: relative;
}

.portafolio-student__photo-tag[b-jec1kz4u2o] {
    font-family: var(--font-body);
    font-size: 10px;
    letter-spacing: 0.18em;
    color: var(--text-muted);
    font-weight: 700;
    background: var(--bg-surface);
    padding: 3px 8px;
    border-radius: 99px;
    border: 1px solid var(--border-soft);
}

.portafolio-student__info[b-jec1kz4u2o] {
    min-width: 0;
}

.portafolio-student__name[b-jec1kz4u2o] {
    font-family: var(--font-display);
    font-size: 28px;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.15;
    margin: 0 0 14px;
}

.portafolio-student__metas[b-jec1kz4u2o] {
    display: flex;
    gap: 24px;
    flex-wrap: wrap;
}

.portafolio-meta[b-jec1kz4u2o] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.portafolio-meta__label[b-jec1kz4u2o] {
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
}

.portafolio-meta__value[b-jec1kz4u2o] {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-primary);
}

.portafolio-student__side[b-jec1kz4u2o] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 8px;
    flex-shrink: 0;
}

.portafolio-student__updated[b-jec1kz4u2o] {
    font-size: 12px;
    color: var(--text-muted);
}

/* ─────────────────────────────────────
   GRID PRINCIPAL: evidencias + reflexiones
   ───────────────────────────────────── */
.portafolio-grid[b-jec1kz4u2o] {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 24px;
    margin-bottom: 32px;
}

/* ─────────────────────────────────────
   TABS (filtros materia)
   ───────────────────────────────────── */
.portafolio-tabs[b-jec1kz4u2o] {
    display: inline-flex;
    background: var(--bg-page);
    border-radius: 99px;
    padding: 3px;
    gap: 2px;
}

.portafolio-tab[b-jec1kz4u2o] {
    background: transparent;
    border: none;
    padding: 6px 14px;
    border-radius: 99px;
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
    cursor: pointer;
    transition: background 160ms ease-out;
    font-family: var(--font-body);
}

.portafolio-tab:hover[b-jec1kz4u2o] {
    background: rgba(255, 255, 255, 0.6);
}

.portafolio-tab--active[b-jec1kz4u2o] {
    background: var(--bg-surface);
    color: var(--text-primary);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

/* ─────────────────────────────────────
   TIMELINE evidencias
   ───────────────────────────────────── */
.portafolio-timeline[b-jec1kz4u2o] {
    padding: 12px 20px 20px 28px;
    position: relative;
}

.portafolio-timeline[b-jec1kz4u2o]::before {
    content: "";
    position: absolute;
    left: 36px;
    top: 18px;
    bottom: 18px;
    width: 1px;
    background: var(--border-soft);
}

.portafolio-timeline__item[b-jec1kz4u2o] {
    position: relative;
    padding: 14px 0 14px 24px;
}

.portafolio-timeline__item + .portafolio-timeline__item[b-jec1kz4u2o] {
    border-top: 1px solid var(--border-soft);
}

.portafolio-timeline__dot[b-jec1kz4u2o] {
    position: absolute;
    left: 2px;
    top: 22px;
    width: 12px;
    height: 12px;
    border-radius: 99px;
    border: 2px solid var(--bg-surface);
    box-shadow: 0 0 0 1px var(--border-soft);
}

.portafolio-timeline__row[b-jec1kz4u2o] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
}

.portafolio-timeline__main[b-jec1kz4u2o] {
    min-width: 0;
    flex: 1;
}

.portafolio-timeline__date[b-jec1kz4u2o] {
    font-size: 11px;
    color: var(--text-muted);
    font-weight: 500;
    margin-right: 10px;
}

.portafolio-timeline__subject[b-jec1kz4u2o] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-weight: 700;
}

.portafolio-timeline__title[b-jec1kz4u2o] {
    font-family: var(--font-display);
    font-size: 15px;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.3;
    margin-top: 4px;
}

.portafolio-timeline__desc[b-jec1kz4u2o] {
    font-size: 12px;
    color: var(--text-muted);
    line-height: 1.5;
    margin-top: 4px;
}

.portafolio-timeline__nota[b-jec1kz4u2o] {
    flex-shrink: 0;
}

/* ─────────────────────────────────────
   REFLEXIONES
   ───────────────────────────────────── */
.portafolio-reflexiones__head[b-jec1kz4u2o] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-bottom: 18px;
}

.portafolio-reflexiones__list[b-jec1kz4u2o] {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.portafolio-reflexion[b-jec1kz4u2o] {
    padding: 14px;
    background: var(--bg-page);
    border-radius: 8px;
    border-left: 3px solid var(--color-brand-gold);
}

.portafolio-reflexion__date[b-jec1kz4u2o] {
    font-size: 11px;
    color: var(--text-muted);
    font-weight: 500;
    letter-spacing: 0.06em;
}

.portafolio-reflexion__quote[b-jec1kz4u2o] {
    font-family: var(--font-display);
    font-style: italic;
    font-size: 14px;
    color: var(--text-primary);
    line-height: 1.55;
    margin: 6px 0 4px;
    padding: 0;
    border: none;
}

.portafolio-reflexion__author[b-jec1kz4u2o] {
    font-size: 11px;
    color: var(--text-muted);
    text-align: right;
    margin-top: 4px;
}

/* ─────────────────────────────────────
   STATS GRID
   ───────────────────────────────────── */
.portafolio-stats[b-jec1kz4u2o] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

.portafolio-stats > *[b-jec1kz4u2o] {
    height: 100%;
}

/* ─────────────────────────────────────
   RESPONSIVE
   ───────────────────────────────────── */
@media (max-width: 1200px) {
    .portafolio-grid[b-jec1kz4u2o] {
        grid-template-columns: 1fr;
    }

    .portafolio-stats[b-jec1kz4u2o] {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 1024px) {
    .portafolio-student__name[b-jec1kz4u2o] {
        font-size: 24px;
    }
}

@media (max-width: 768px) {
    .portafolio-root[b-jec1kz4u2o] {
        padding: 4px 0 24px;
    }

    .portafolio-student[b-jec1kz4u2o] {
        grid-template-columns: 1fr;
        gap: 16px;
        padding: 20px;
    }

    .portafolio-student__photo[b-jec1kz4u2o] {
        width: 100%;
        height: 180px;
    }

    .portafolio-student__side[b-jec1kz4u2o] {
        align-items: flex-start;
    }

    .portafolio-stats[b-jec1kz4u2o] {
        grid-template-columns: 1fr;
    }

    .portafolio-card[b-jec1kz4u2o] {
        padding: 18px;
    }

    .portafolio-card__head[b-jec1kz4u2o] {
        padding: 14px 16px;
    }

    .portafolio-card__title[b-jec1kz4u2o] {
        font-size: 18px;
    }

    .portafolio-tabs[b-jec1kz4u2o] {
        overflow-x: auto;
        max-width: 100%;
    }
}

@media (max-width: 480px) {
    .portafolio-student[b-jec1kz4u2o] {
        padding: 16px;
    }

    .portafolio-student__name[b-jec1kz4u2o] {
        font-size: 22px;
    }

    .portafolio-timeline[b-jec1kz4u2o] {
        padding: 10px 14px 14px 20px;
    }

    .portafolio-timeline[b-jec1kz4u2o]::before {
        left: 28px;
    }

    .portafolio-reflexion[b-jec1kz4u2o] {
        padding: 12px;
    }
}
/* /Pages/Private/Psicologia.razor.rz.scp.css */
/* ============================================
   SOPORTE · Psicología — sobrio institucional
   ============================================ */

[b-kismoltymo] .psico-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 16px;
    margin-bottom: 24px;
}

[b-kismoltymo] .psico-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    padding: 48px 24px;
    color: var(--text-muted);
}

[b-kismoltymo] .psico-spinner {
    width: 32px;
    height: 32px;
    border: 3px solid var(--border-soft);
    border-top-color: var(--color-brand-red);
    border-radius: 50%;
    animation: psico-spin-b-kismoltymo 0.9s linear infinite;
}

@keyframes psico-spin-b-kismoltymo {
    to { transform: rotate(360deg); }
}

/* Tabs */
[b-kismoltymo] .psico-tabs {
    display: flex;
    gap: 4px;
    border-bottom: 1px solid var(--border-soft);
    margin-bottom: 20px;
}

[b-kismoltymo] .psico-tab {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: transparent;
    border: 0;
    border-bottom: 2px solid transparent;
    padding: 12px 16px;
    margin-bottom: -1px;
    font-size: 13px;
    font-weight: 500;
    color: var(--text-muted);
    cursor: pointer;
    transition: color 180ms, border-color 180ms;
}

[b-kismoltymo] .psico-tab:hover {
    color: var(--text-primary);
}

[b-kismoltymo] .psico-tab.is-active {
    color: var(--color-brand-red);
    border-bottom-color: var(--color-brand-red);
    font-weight: 600;
}

/* Card */
[b-kismoltymo] .psico-card {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: 10px;
    overflow: hidden;
    margin-bottom: 16px;
}

[b-kismoltymo] .psico-card__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 20px;
    border-bottom: 1px solid var(--border-soft);
    background: var(--bg-paper);
    flex-wrap: wrap;
}

[b-kismoltymo] .psico-card__title {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
}

[b-kismoltymo] .psico-card__foot {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 14px 20px;
    border-top: 1px solid var(--border-soft);
    background: var(--bg-paper);
}

/* Search + filter */
[b-kismoltymo] .psico-search {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--bg-page);
    border: 1px solid var(--border-soft);
    border-radius: 6px;
    padding: 6px 12px;
    color: var(--text-muted);
    min-width: 280px;
}

[b-kismoltymo] .psico-search input {
    background: transparent;
    border: 0;
    outline: 0;
    font-size: 13px;
    color: var(--text-primary);
    width: 100%;
}

[b-kismoltymo] .psico-select,
[b-kismoltymo] .psico-input,
[b-kismoltymo] .psico-textarea {
    background: var(--bg-page);
    border: 1px solid var(--border-soft);
    border-radius: 6px;
    padding: 8px 12px;
    font-size: 13px;
    color: var(--text-primary);
    font-family: inherit;
    outline: none;
    transition: border-color 180ms;
    width: 100%;
}

[b-kismoltymo] .psico-select:focus,
[b-kismoltymo] .psico-input:focus,
[b-kismoltymo] .psico-textarea:focus {
    border-color: var(--color-brand-blue);
}

[b-kismoltymo] .psico-textarea {
    resize: vertical;
    line-height: 1.5;
}

/* Tabla */
[b-kismoltymo] .psico-table-wrap {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
}

[b-kismoltymo] .psico-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

[b-kismoltymo] .psico-table thead {
    background: var(--bg-page);
}

[b-kismoltymo] .psico-table th {
    text-align: left;
    padding: 12px 16px;
    font-size: 11px;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
    border-bottom: 1px solid var(--border-soft);
    white-space: nowrap;
}

[b-kismoltymo] .psico-table th.th-actions {
    text-align: right;
    width: 110px;
}

[b-kismoltymo] .psico-table td {
    padding: 14px 16px;
    border-top: 1px solid var(--border-soft);
    vertical-align: middle;
    color: var(--text-primary);
}

[b-kismoltymo] .psico-table tbody tr {
    transition: background 180ms;
}

[b-kismoltymo] .psico-table tbody tr:hover {
    background: var(--bg-page);
}

[b-kismoltymo] .psico-table td.td-actions {
    text-align: right;
    white-space: nowrap;
}

/* Student cell */
[b-kismoltymo] .psico-student {
    display: flex;
    align-items: center;
    gap: 10px;
}

[b-kismoltymo] .psico-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--color-brand-blue-soft);
    color: var(--color-brand-blue);
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 600;
    flex-shrink: 0;
}

[b-kismoltymo] .psico-student__meta {
    display: flex;
    flex-direction: column;
}

[b-kismoltymo] .psico-student__name {
    font-weight: 500;
    color: var(--text-primary);
    font-size: 13px;
}

[b-kismoltymo] .psico-student__grade {
    font-size: 11px;
    color: var(--text-muted);
}

/* Icon buttons */
[b-kismoltymo] .psico-iconbtn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 6px;
    background: transparent;
    color: var(--text-muted);
    border: 1px solid var(--border-soft);
    cursor: pointer;
    transition: all 180ms;
    margin-left: 4px;
}

[b-kismoltymo] .psico-iconbtn:hover {
    background: var(--bg-page);
    color: var(--text-primary);
}

[b-kismoltymo] .psico-iconbtn.is-danger:hover {
    background: rgba(160, 57, 46, 0.08);
    color: var(--state-danger);
}

/* Forms */
[b-kismoltymo] .psico-form {
    padding: 20px;
}

[b-kismoltymo] .psico-section {
    border: 1px solid var(--border-soft);
    border-radius: 8px;
    padding: 16px 18px;
    margin-bottom: 16px;
    background: var(--bg-paper);
}

[b-kismoltymo] .psico-section__title {
    font-family: var(--font-display);
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
    margin: 0 0 14px;
    font-weight: 600;
}

[b-kismoltymo] .psico-row {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 14px;
    margin-bottom: 12px;
}

[b-kismoltymo] .psico-row:last-child {
    margin-bottom: 0;
}

[b-kismoltymo] .psico-field {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

[b-kismoltymo] .psico-field--full {
    grid-column: 1 / -1;
}

[b-kismoltymo] .psico-field label {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
    font-weight: 600;
}

/* Catalog */
[b-kismoltymo] .psico-catalog-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

[b-kismoltymo] .psico-mini-form {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 14px 20px;
    border-bottom: 1px solid var(--border-soft);
    background: var(--bg-paper);
}

[b-kismoltymo] .psico-mini-form__actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

[b-kismoltymo] .psico-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

[b-kismoltymo] .psico-list__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 20px;
    border-bottom: 1px solid var(--border-soft);
}

[b-kismoltymo] .psico-list__item:last-child {
    border-bottom: 0;
}

[b-kismoltymo] .psico-list__name {
    display: block;
    font-size: 13px;
    font-weight: 500;
    color: var(--text-primary);
}

[b-kismoltymo] .psico-list__desc {
    display: block;
    font-size: 12px;
    color: var(--text-muted);
    margin-top: 2px;
}

[b-kismoltymo] .psico-list__actions {
    display: flex;
    gap: 0;
}

[b-kismoltymo] .psico-list__empty {
    padding: 24px;
    text-align: center;
    color: var(--text-muted);
    font-style: italic;
    font-size: 13px;
}

/* Modals */
[b-kismoltymo] .psico-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(28, 25, 23, 0.55);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    padding: 24px;
}

[b-kismoltymo] .psico-modal {
    background: var(--bg-surface);
    border-radius: 12px;
    width: 100%;
    max-width: 680px;
    max-height: 90vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    box-shadow: 0 18px 48px rgba(28, 25, 23, 0.24);
}

[b-kismoltymo] .psico-modal--sm {
    max-width: 440px;
}

[b-kismoltymo] .psico-modal__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 22px;
    border-bottom: 1px solid var(--border-soft);
}

[b-kismoltymo] .psico-modal__head h2 {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
    margin: 0;
}

[b-kismoltymo] .psico-modal__body {
    padding: 22px;
    overflow-y: auto;
    flex: 1;
}

[b-kismoltymo] .psico-modal__body--center {
    text-align: center;
}

[b-kismoltymo] .psico-modal__body--center h2 {
    font-family: var(--font-display);
    font-size: 20px;
    margin: 0 0 12px;
}

[b-kismoltymo] .psico-modal__body--center p {
    color: var(--text-secondary);
    line-height: 1.55;
}

[b-kismoltymo] .psico-modal__foot {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 14px 20px;
    border-top: 1px solid var(--border-soft);
    background: var(--bg-paper);
}

[b-kismoltymo] .psico-modal__actions {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 22px;
}

[b-kismoltymo] .psico-detail-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-bottom: 18px;
}

[b-kismoltymo] .psico-detail label {
    display: block;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
    font-weight: 600;
    margin-bottom: 3px;
}

[b-kismoltymo] .psico-detail span,
[b-kismoltymo] .psico-detail p {
    color: var(--text-primary);
    font-size: 14px;
    line-height: 1.5;
    margin: 0;
}

[b-kismoltymo] .psico-detail--full {
    grid-column: 1 / -1;
    margin-bottom: 14px;
}

@media (max-width: 900px) {
    [b-kismoltymo] .psico-catalog-grid {
        grid-template-columns: 1fr;
    }
    [b-kismoltymo] .psico-row {
        grid-template-columns: 1fr;
    }
    [b-kismoltymo] .psico-detail-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    [b-kismoltymo] .psico-table {
        min-width: 560px;
    }
    [b-kismoltymo] .psico-tabs {
        overflow-x: auto;
        flex-wrap: nowrap;
    }
    [b-kismoltymo] .psico-tab {
        white-space: nowrap;
    }
    [b-kismoltymo] .psico-card__head {
        padding: 14px 16px;
    }
}

@media (max-width: 480px) {
    [b-kismoltymo] .psico-card__head {
        flex-direction: column;
        align-items: stretch;
    }
    [b-kismoltymo] .psico-card__foot {
        flex-direction: column-reverse;
    }
    [b-kismoltymo] .psico-card__foot > * {
        width: 100%;
    }
    [b-kismoltymo] .psico-table th,
    [b-kismoltymo] .psico-table td {
        padding: 10px 12px;
    }
}
/* /Pages/Private/Reportes.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Reportes ejecutivos · scoped styles
   ════════════════════════════════════════════════════════════════════
   Institucional sobrio · 3 categorías (académico/tesorería/operativos)
   ════════════════════════════════════════════════════════════════════ */

.reportes-root[b-avfvqn6fqe] {
    padding: 8px 0 32px;
    max-width: 1320px;
    margin: 0 auto;
}

/* ── Filtros del header ─────────────────────── */
.reportes-select[b-avfvqn6fqe] {
    padding: 8px 12px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-surface);
    font-size: 13px;
    font-family: var(--font-body);
    font-weight: 500;
    color: var(--text-primary);
    outline: none;
    cursor: pointer;
}

.reportes-select:focus[b-avfvqn6fqe] {
    box-shadow: var(--shadow-focus);
}

/* ── Grid 3 cols categorías ─────────────────── */
.reportes-grid[b-avfvqn6fqe] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin: 24px 0 32px;
}

/* ── Card categoría ─────────────────────────── */
.reportes-card[b-avfvqn6fqe] {
    position: relative;
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    padding: 28px;
    box-shadow: var(--shadow-warm-sm);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    height: 100%;
}

.reportes-card__stripe[b-avfvqn6fqe] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
}

.reportes-card--red .reportes-card__stripe[b-avfvqn6fqe] {
    background: var(--color-brand-red);
}

.reportes-card--gold .reportes-card__stripe[b-avfvqn6fqe] {
    background: var(--color-brand-gold);
}

.reportes-card--blue .reportes-card__stripe[b-avfvqn6fqe] {
    background: var(--color-brand-blue);
}

/* ── Icono de categoría ─────────────────────── */
.reportes-card__icon[b-avfvqn6fqe] {
    width: 64px;
    height: 64px;
    border-radius: 6px;
    padding: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 18px;
}

.reportes-card__icon--red[b-avfvqn6fqe] {
    background: rgba(160, 57, 46, 0.10);
    color: var(--color-brand-red);
}

.reportes-card__icon--gold[b-avfvqn6fqe] {
    background: var(--color-brand-gold-soft);
    color: var(--color-brand-gold);
}

.reportes-card__icon--blue[b-avfvqn6fqe] {
    background: var(--color-brand-blue-soft);
    color: var(--color-brand-blue);
}

.reportes-card__icon[b-avfvqn6fqe]  svg {
    width: 36px;
    height: 36px;
}

/* ── Texto de la card ───────────────────────── */
.reportes-card__eyebrow[b-avfvqn6fqe] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
    margin-bottom: 6px;
}

.reportes-card__title[b-avfvqn6fqe] {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0 0 8px;
    line-height: 1.25;
}

.reportes-card__lead[b-avfvqn6fqe] {
    font-size: 13px;
    color: var(--text-muted);
    line-height: 1.55;
    margin: 0 0 18px;
}

/* ── Lista de enlaces ───────────────────────── */
.reportes-card__list[b-avfvqn6fqe] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-top: auto;
    padding-top: 8px;
    border-top: 1px solid var(--border-soft);
}

.reportes-link[b-avfvqn6fqe] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    text-align: left;
    padding: 10px 4px;
    background: transparent;
    border: none;
    border-bottom: 1px solid transparent;
    color: var(--text-primary);
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: all 160ms ease-out;
}

.reportes-link:hover[b-avfvqn6fqe] {
    color: var(--color-brand-red);
    padding-left: 8px;
}

.reportes-link:last-child[b-avfvqn6fqe] {
    border-bottom: none;
}

/* ── Panel de configuración ─────────────────── */
.reportes-config[b-avfvqn6fqe] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-warm-sm);
    overflow: hidden;
    margin-bottom: 24px;
}

.reportes-config__head[b-avfvqn6fqe] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding: 20px 24px;
    border-bottom: 1px solid var(--border-soft);
}

.reportes-config__eyebrow[b-avfvqn6fqe] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
    margin-bottom: 4px;
}

.reportes-config__title[b-avfvqn6fqe] {
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
}

.reportes-config__close[b-avfvqn6fqe] {
    background: transparent;
    border: 1px solid var(--border-soft);
    border-radius: 6px;
    padding: 6px 8px;
    cursor: pointer;
    color: var(--text-secondary);
}

.reportes-config__close:hover[b-avfvqn6fqe] {
    background: var(--bg-page);
}

.reportes-config__body[b-avfvqn6fqe] {
    padding: 24px;
}

.reportes-form-row[b-avfvqn6fqe] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 16px;
}

.reportes-form-group[b-avfvqn6fqe] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.reportes-form-group label[b-avfvqn6fqe] {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.reportes-form-group select[b-avfvqn6fqe] {
    padding: 10px 12px;
    border: 1px solid var(--border-soft);
    border-radius: 6px;
    background: var(--bg-surface);
    font-size: 14px;
    color: var(--text-primary);
    font-family: var(--font-body);
    outline: none;
}

.reportes-form-group select:focus[b-avfvqn6fqe] {
    box-shadow: var(--shadow-focus);
    border-color: var(--color-brand-green);
}

.reportes-config__foot[b-avfvqn6fqe] {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    padding: 16px 24px;
    background: var(--bg-page);
    border-top: 1px solid var(--border-soft);
}

/* ── Overlay loading ────────────────────────── */
.reportes-overlay[b-avfvqn6fqe] {
    position: fixed;
    inset: 0;
    background: rgba(28, 25, 23, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

.reportes-overlay__box[b-avfvqn6fqe] {
    background: var(--bg-surface);
    border-radius: var(--radius-xl);
    padding: 32px 48px;
    text-align: center;
    box-shadow: var(--shadow-warm-soft);
}

.reportes-spinner[b-avfvqn6fqe] {
    width: 38px;
    height: 38px;
    border: 3px solid var(--border-soft);
    border-top-color: var(--color-brand-red);
    border-radius: 50%;
    margin: 0 auto 16px;
    animation: reportes-spin-b-avfvqn6fqe 800ms linear infinite;
}

.reportes-overlay__box p[b-avfvqn6fqe] {
    margin: 0;
    color: var(--text-secondary);
    font-weight: 500;
    font-size: 14px;
}

@keyframes reportes-spin-b-avfvqn6fqe {
    to {
        transform: rotate(360deg);
    }
}

/* ── Responsive ─────────────────────────────── */
@media (max-width: 1024px) {
    .reportes-grid[b-avfvqn6fqe] {
        grid-template-columns: 1fr 1fr;
        gap: 20px;
    }
}

@media (max-width: 880px) {
    .reportes-grid[b-avfvqn6fqe] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .reportes-card[b-avfvqn6fqe] {
        padding: 22px;
    }
}

@media (max-width: 480px) {
    .reportes-grid[b-avfvqn6fqe] {
        gap: 16px;
        margin: 20px 0 24px;
    }

    .reportes-card[b-avfvqn6fqe] {
        padding: 18px;
    }
}
/* /Pages/Private/ReportesTesoreria.razor.rz.scp.css */
/* ============================================
   ReportesTesoreria · Tesorería · BEM scoped
   ============================================ */

.reportes-root[b-tdqbqbvdte] {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

/* ── Selects en header ── */
.reportes-select[b-tdqbqbvdte] {
    padding: 8px 14px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-paper);
    color: var(--color-brand-green);
    font-size: 13px;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    transition: border-color 160ms ease, box-shadow 160ms ease;
}
.reportes-select:focus[b-tdqbqbvdte] {
    outline: none;
    border-color: var(--color-brand-gold);
    box-shadow: 0 0 0 3px var(--color-brand-gold-soft);
}

/* ── KPI grid ── */
.reportes-stats[b-tdqbqbvdte] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

/* ── Charts row ── */
.reportes-charts[b-tdqbqbvdte] {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 24px;
}

/* ── Card ── */
.reportes-card[b-tdqbqbvdte] {
    padding: 0;
    overflow: hidden;
}
.reportes-card--donut[b-tdqbqbvdte] {
    padding: 24px;
    position: relative;
}

.reportes-card__head[b-tdqbqbvdte] {
    padding: 16px 20px;
    border-bottom: 1px solid var(--border-soft);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.reportes-card__title[b-tdqbqbvdte] {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
    color: var(--color-brand-green);
    margin: 0;
    line-height: 1.2;
}

.reportes-eyebrow[b-tdqbqbvdte] {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    margin-bottom: 6px;
}

/* ── Bar chart ── */
.reportes-bar-body[b-tdqbqbvdte] {
    padding: 24px;
}

.reportes-bar-chart[b-tdqbqbvdte] {
    display: flex;
    align-items: flex-end;
    gap: 12px;
    height: 220px;
    border-bottom: 1px solid var(--border-soft);
    padding-bottom: 8px;
}

.reportes-bar[b-tdqbqbvdte] {
    flex: 1;
    width: 32px;
    border-radius: 6px 6px 0 0;
    transition: opacity 160ms ease, transform 160ms ease;
    cursor: default;
}
.reportes-bar:hover[b-tdqbqbvdte] {
    opacity: 0.85;
    transform: translateY(-2px);
}
.reportes-bar.is-completed[b-tdqbqbvdte] {
    background: var(--color-brand-green);
}
.reportes-bar.is-projected[b-tdqbqbvdte] {
    background: repeating-linear-gradient(45deg,
        var(--color-brand-green-soft, rgba(15, 31, 77, 0.08)) 0,
        var(--color-brand-green-soft, rgba(15, 31, 77, 0.08)) 6px,
        transparent 6px,
        transparent 12px);
    border: 1px dashed var(--color-brand-green);
}

.reportes-bar-labels[b-tdqbqbvdte] {
    display: flex;
    gap: 12px;
    margin-top: 8px;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
}
.reportes-bar-labels span[b-tdqbqbvdte] {
    flex: 1;
    text-align: center;
}

/* ── Donut chart ── */
.reportes-donut[b-tdqbqbvdte] {
    display: block;
    margin: 16px auto 8px;
}

.reportes-donut__center[b-tdqbqbvdte] {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, calc(-50% - 20px));
    text-align: center;
    pointer-events: none;
}

.reportes-donut__total[b-tdqbqbvdte] {
    font-family: var(--font-display);
    font-size: 24px;
    font-weight: 700;
    color: var(--color-brand-green);
    line-height: 1;
}

.reportes-donut__caption[b-tdqbqbvdte] {
    font-size: 10px;
    letter-spacing: 0.14em;
    color: var(--text-muted);
    text-transform: uppercase;
    margin-top: 4px;
    font-weight: 700;
}

.reportes-legend[b-tdqbqbvdte] {
    margin-top: 18px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.reportes-legend__row[b-tdqbqbvdte] {
    display: grid;
    grid-template-columns: 14px 1fr auto auto;
    align-items: center;
    gap: 10px;
    font-size: 13px;
}

.reportes-legend__dot[b-tdqbqbvdte] {
    width: 12px;
    height: 12px;
    border-radius: 4px;
    display: inline-block;
}

.reportes-legend__label[b-tdqbqbvdte] {
    color: var(--color-brand-green);
    font-weight: 600;
}

.reportes-legend__pct[b-tdqbqbvdte] {
    color: var(--text-muted);
    font-size: 12px;
    font-weight: 600;
}

.reportes-legend__amount[b-tdqbqbvdte] {
    color: var(--color-brand-green);
    font-weight: 700;
    font-size: 12px;
}

/* ── Tabla ── */
.reportes-table-wrap[b-tdqbqbvdte] {
    overflow-x: auto;
}

.reportes-table[b-tdqbqbvdte] {
    width: 100%;
    border-collapse: collapse;
}

.reportes-th[b-tdqbqbvdte] {
    padding: 12px 20px;
    text-align: left;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    background: var(--bg-page);
    border-bottom: 1px solid var(--border-soft);
}
.reportes-th--right[b-tdqbqbvdte] { text-align: right; }

.reportes-row[b-tdqbqbvdte] {
    border-top: 1px solid var(--border-soft);
    transition: background-color 140ms ease;
}
.reportes-row:hover[b-tdqbqbvdte] { background: var(--bg-paper); }

.reportes-td[b-tdqbqbvdte] {
    padding: 14px 20px;
    font-size: 13px;
    color: var(--color-brand-green);
    vertical-align: middle;
}
.reportes-td--right[b-tdqbqbvdte]  { text-align: right; }
.reportes-td--bold[b-tdqbqbvdte]   { font-weight: 600; }
.reportes-td--danger[b-tdqbqbvdte] { color: var(--state-danger); font-weight: 600; }

/* ── Tasa con barra ── */
.reportes-rate[b-tdqbqbvdte] {
    display: flex;
    align-items: center;
    gap: 10px;
    max-width: 240px;
}

.reportes-rate__track[b-tdqbqbvdte] {
    flex: 1;
    height: 6px;
    background: var(--bg-page);
    border-radius: 99px;
    overflow: hidden;
    max-width: 160px;
}

.reportes-rate__fill[b-tdqbqbvdte] {
    height: 100%;
    border-radius: 99px;
    transition: width 800ms cubic-bezier(.2,.7,.2,1);
}

.reportes-rate__value[b-tdqbqbvdte] {
    font-size: 12px;
    font-weight: 700;
    min-width: 44px;
    color: var(--color-brand-green);
}

/* ── Estado loading ── */
.reportes-state[b-tdqbqbvdte] {
    padding: 56px 24px;
    text-align: center;
    color: var(--text-muted);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

/* ── Spinner ── */
.spinner[b-tdqbqbvdte] {
    width: 36px;
    height: 36px;
    border: 3px solid var(--border-soft);
    border-top-color: var(--color-brand-red);
    border-radius: 50%;
    animation: reportes-spin-b-tdqbqbvdte 800ms linear infinite;
}
@keyframes reportes-spin-b-tdqbqbvdte { to { transform: rotate(360deg); } }

/* ── Responsive ── */
.reportes-table-wrap[b-tdqbqbvdte] {
    -webkit-overflow-scrolling: touch;
    overflow-y: hidden;
}

@media (max-width: 1200px) {
    .reportes-stats[b-tdqbqbvdte]  { grid-template-columns: repeat(2, 1fr); }
    .reportes-charts[b-tdqbqbvdte] { grid-template-columns: 1fr; }
}
@media (max-width: 1024px) {
    .reportes-bar-body[b-tdqbqbvdte] { padding: 18px; }
    .reportes-card--donut[b-tdqbqbvdte] { padding: 18px; }
}
@media (max-width: 768px) {
    .reportes-bar-chart[b-tdqbqbvdte] { height: 180px; gap: 8px; }
    .reportes-table[b-tdqbqbvdte] { min-width: 560px; }
    .reportes-donut[b-tdqbqbvdte] { max-width: 220px; height: auto; }
}
@media (max-width: 720px) {
    .reportes-stats[b-tdqbqbvdte] { grid-template-columns: 1fr; }
    .reportes-bar-chart[b-tdqbqbvdte] { height: 160px; gap: 6px; }
    .reportes-bar-labels[b-tdqbqbvdte] { gap: 6px; font-size: 9px; }
}
@media (max-width: 480px) {
    .reportes-select[b-tdqbqbvdte] { width: 100%; }
    .reportes-card__head[b-tdqbqbvdte] { padding: 14px 16px; flex-wrap: wrap; gap: 8px; }
    .reportes-bar-body[b-tdqbqbvdte] { padding: 14px; }
    .reportes-card--donut[b-tdqbqbvdte] { padding: 14px; }
    .reportes-bar-chart[b-tdqbqbvdte] { height: 140px; }
    .reportes-bar[b-tdqbqbvdte] { border-radius: 4px 4px 0 0; }
    .reportes-donut[b-tdqbqbvdte] { max-width: 180px; }
    .reportes-donut__total[b-tdqbqbvdte] { font-size: 20px; }
    .reportes-legend__row[b-tdqbqbvdte] { grid-template-columns: 12px 1fr auto; gap: 8px; font-size: 12px; }
    .reportes-legend__pct[b-tdqbqbvdte] { display: none; }
    .reportes-th[b-tdqbqbvdte], .reportes-td[b-tdqbqbvdte] { padding: 10px 14px; }
}
/* /Pages/Private/Students.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Estudiantes (privada) · scoped styles
   ════════════════════════════════════════════════════════════════════
   KPIs + filtros + tabla densa + paginación.
   ════════════════════════════════════════════════════════════════════ */

.students-root[b-08qwkrndbz] {
    padding: 8px 0 32px;
    max-width: 1320px;
    margin: 0 auto;
}

/* ─────────────────────────────────────
   STATS GRID
   ───────────────────────────────────── */
.students-stats[b-08qwkrndbz] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin: 24px 0 24px;
}

.students-stats > *[b-08qwkrndbz] {
    height: 100%;
}

/* ─────────────────────────────────────
   FILTERS BAR
   ───────────────────────────────────── */
.students-filters[b-08qwkrndbz] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    padding: 16px 20px;
    margin-bottom: 20px;
    display: grid;
    grid-template-columns: 2fr repeat(4, 1fr);
    gap: 12px;
    align-items: center;
    box-shadow: var(--shadow-warm-sm);
}

.students-search[b-08qwkrndbz] {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    background: var(--bg-page);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    padding: 8px 12px;
    color: var(--text-muted);
}

.students-search input[b-08qwkrndbz] {
    flex: 1;
    border: none;
    background: transparent;
    outline: none;
    font-size: 13px;
    color: var(--text-primary);
    font-family: inherit;
}

.students-search input[b-08qwkrndbz]::placeholder {
    color: var(--text-muted);
}

.students-select[b-08qwkrndbz] {
    padding: 9px 12px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-surface);
    font-size: 13px;
    font-weight: 500;
    color: var(--text-primary);
    outline: none;
    cursor: pointer;
    font-family: inherit;
}

.students-select:focus[b-08qwkrndbz] {
    box-shadow: var(--shadow-focus);
}

/* ─────────────────────────────────────
   CARD FLUSH (tabla)
   ───────────────────────────────────── */
.students-card[b-08qwkrndbz] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-warm-sm);
}

.students-card--flush[b-08qwkrndbz] {
    padding: 0;
    overflow: hidden;
}

.students-table-wrap[b-08qwkrndbz] {
    overflow-x: auto;
}

.students-table[b-08qwkrndbz] {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.students-table thead th[b-08qwkrndbz] {
    background: var(--bg-page);
    text-transform: uppercase;
    font-size: 11px;
    letter-spacing: 0.1em;
    color: var(--text-muted);
    font-weight: 600;
    padding: 12px 18px;
    text-align: left;
    border-bottom: 1px solid var(--border-soft);
    white-space: nowrap;
}

.students-table tbody td[b-08qwkrndbz] {
    padding: 12px 18px;
    border-bottom: 1px solid var(--border-soft);
    color: var(--text-secondary);
    vertical-align: middle;
}

.students-table tbody tr:last-child td[b-08qwkrndbz] {
    border-bottom: none;
}

.students-table tbody tr:hover[b-08qwkrndbz] {
    background: var(--bg-page);
}

.students-table__actions[b-08qwkrndbz] {
    width: 48px;
    text-align: right;
}

/* ─────────────────────────────────────
   CELL · estudiante (avatar + name + code)
   ───────────────────────────────────── */
.students-cell[b-08qwkrndbz] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.students-cell__avatar[b-08qwkrndbz] {
    width: 36px;
    height: 36px;
    border-radius: 99px;
    color: var(--bg-paper);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 13px;
    flex-shrink: 0;
}

.students-cell__info[b-08qwkrndbz] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.students-cell__name[b-08qwkrndbz] {
    font-weight: 600;
    color: var(--text-primary);
    font-size: 13px;
}

.students-cell__code[b-08qwkrndbz] {
    font-size: 11px;
    color: var(--text-muted);
    letter-spacing: 0.04em;
}

/* ─────────────────────────────────────
   ROW ACTION (chevron)
   ───────────────────────────────────── */
.students-row-action[b-08qwkrndbz] {
    background: none;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--text-muted);
    cursor: pointer;
    transition: all 0.15s;
}

.students-row-action:hover[b-08qwkrndbz] {
    background: var(--bg-page);
    color: var(--text-primary);
    border-color: var(--text-muted);
}

/* ─────────────────────────────────────
   PAGINATION
   ───────────────────────────────────── */
.students-pagination[b-08qwkrndbz] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 20px;
    border-top: 1px solid var(--border-soft);
    background: var(--bg-page);
}

.students-pagination__info[b-08qwkrndbz] {
    font-size: 12px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-weight: 600;
}

.students-pagination__actions[b-08qwkrndbz] {
    display: flex;
    gap: 8px;
}

.students-page-btn[b-08qwkrndbz] {
    padding: 7px 14px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-surface);
    font-size: 12px;
    font-weight: 600;
    color: var(--text-primary);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: inherit;
    transition: all 0.15s;
}

.students-page-btn:hover:not(:disabled)[b-08qwkrndbz] {
    background: var(--bg-page);
    border-color: var(--text-muted);
}

.students-page-btn:disabled[b-08qwkrndbz] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* ─────────────────────────────────────
   LEGACY container
   ───────────────────────────────────── */
.students-legacy[hidden][b-08qwkrndbz] {
    display: none;
}

.warning-text[b-08qwkrndbz] {
    color: var(--color-brand-red);
    font-size: 13px;
    margin-top: 8px;
}

/* ─────────────────────────────────────
   RESPONSIVE
   ───────────────────────────────────── */
.students-table-wrap[b-08qwkrndbz] {
    -webkit-overflow-scrolling: touch;
    overflow-y: hidden;
}

@media (max-width: 1100px) {
    .students-filters[b-08qwkrndbz] {
        grid-template-columns: 1fr 1fr;
    }

    .students-search[b-08qwkrndbz] {
        grid-column: 1 / -1;
    }
}

@media (max-width: 1024px) {
    .students-stats[b-08qwkrndbz] {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .students-table[b-08qwkrndbz] {
        min-width: 600px;
    }

    .students-pagination[b-08qwkrndbz] {
        flex-direction: column;
        gap: 12px;
        align-items: stretch;
    }

    .students-pagination__actions[b-08qwkrndbz] {
        justify-content: space-between;
    }
}

@media (max-width: 640px) {
    .students-stats[b-08qwkrndbz] {
        grid-template-columns: 1fr;
    }

    .students-filters[b-08qwkrndbz] {
        grid-template-columns: 1fr;
    }

    .students-table thead th[b-08qwkrndbz],
    .students-table tbody td[b-08qwkrndbz] {
        padding: 10px 12px;
    }
}

@media (max-width: 480px) {
    .students-filters[b-08qwkrndbz] {
        padding: 12px;
    }

    .students-page-btn[b-08qwkrndbz] {
        flex: 1;
        justify-content: center;
    }

    .students-cell__avatar[b-08qwkrndbz] {
        width: 30px;
        height: 30px;
        font-size: 11px;
    }
}
/* /Pages/Private/Tablon.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Tablón (privada) · scoped styles
   ════════════════════════════════════════════════════════════════════
   Primitivos (.card, .photo-placeholder, .twinkle, .bob, .spin-slow,
   .lift-on-hover, etc.) viven en app.css. Acá solo lo específico de la página.
   ════════════════════════════════════════════════════════════════════ */

.tablon-root[b-ttf54sr0e1] {
    padding: 8px 0 32px;
    max-width: 1320px;
    margin: 0 auto;
}

/* ─────────────────────────────────────
   STORIES BAR (Instagram-style)
   ───────────────────────────────────── */
.tablon-stories[b-ttf54sr0e1] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    padding: 20px 24px;
    margin-bottom: 20px;
    overflow-x: auto;
}

.tablon-stories[b-ttf54sr0e1]::-webkit-scrollbar {
    height: 6px;
}

.tablon-stories[b-ttf54sr0e1]::-webkit-scrollbar-thumb {
    background: var(--border-soft);
    border-radius: 3px;
}

.tablon-stories__track[b-ttf54sr0e1] {
    display: flex;
    gap: 20px;
    align-items: flex-start;
}

/* ─────────────────────────────────────
   COMPOSE BOX
   ───────────────────────────────────── */
.tablon-compose[b-ttf54sr0e1] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    padding: 16px;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 14px;
    box-shadow: var(--shadow-warm-sm);
}

.tablon-compose__avatar[b-ttf54sr0e1] {
    width: 44px;
    height: 44px;
    border-radius: 99px;
    background: linear-gradient(135deg, var(--color-brand-red), var(--color-brand-gold));
    color: var(--bg-paper);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 16px;
    flex-shrink: 0;
}

.tablon-compose__input[b-ttf54sr0e1] {
    flex: 1;
    text-align: left;
    padding: 12px 18px;
    background: var(--bg-page);
    border: 1px solid var(--border-soft);
    border-radius: 99px;
    color: var(--text-muted);
    font-size: 14px;
    cursor: text;
    font-family: inherit;
}

.tablon-compose__input:hover[b-ttf54sr0e1] {
    border-color: var(--color-brand-red);
}

.tablon-compose__chips[b-ttf54sr0e1] {
    display: flex;
    gap: 6px;
}

.tablon-compose__chip[b-ttf54sr0e1] {
    padding: 8px 12px;
    border-radius: 99px;
    border: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    font-family: inherit;
}

/* ─────────────────────────────────────
   GRID FEED + SIDEBAR
   ───────────────────────────────────── */
.tablon-grid[b-ttf54sr0e1] {
    display: grid;
    grid-template-columns: 1.8fr 1fr;
    gap: 20px;
}

.tablon-feed[b-ttf54sr0e1] {
    display: grid;
    gap: 16px;
}

.tablon-aside[b-ttf54sr0e1] {
    display: grid;
    gap: 16px;
    align-content: start;
    position: sticky;
    top: 96px;
    align-self: start;
}

/* ─────────────────────────────────────
   WELCOME STRIP (gradient deep blue → green → red)
   ───────────────────────────────────── */
.tablon-welcome[b-ttf54sr0e1] {
    background: linear-gradient(120deg, var(--color-brand-blue-deep) 0%, var(--color-brand-green) 60%, var(--color-brand-red) 130%);
    color: var(--bg-paper);
    padding: 26px;
    border-radius: var(--radius-xl);
    position: relative;
    overflow: hidden;
}

.tablon-welcome__starfield[b-ttf54sr0e1] {
    position: absolute;
    inset: 0;
    opacity: 0.7;
    pointer-events: none;
}

.tablon-welcome__star[b-ttf54sr0e1] {
    position: absolute;
    border-radius: 99px;
    background: var(--color-brand-gold);
}

.tablon-welcome__content[b-ttf54sr0e1] {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
}

.tablon-welcome__eyebrow[b-ttf54sr0e1] {
    font-size: 12px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-brand-gold);
    font-weight: 600;
    margin-bottom: 6px;
}

.tablon-welcome__title[b-ttf54sr0e1] {
    font-family: var(--font-display);
    font-size: 30px;
    font-weight: 600;
    color: var(--bg-paper);
    line-height: 1.15;
}

.tablon-welcome__name[b-ttf54sr0e1] {
    font-style: italic;
    color: var(--color-brand-gold);
}

.tablon-welcome__lead[b-ttf54sr0e1] {
    font-size: 14px;
    opacity: 0.85;
    margin-top: 6px;
}

.tablon-welcome__badge[b-ttf54sr0e1] {
    padding: 8px 14px;
    background: rgba(217, 164, 65, 0.18);
    border: 1px solid var(--color-brand-gold);
    border-radius: 99px;
    font-size: 12px;
    font-weight: 600;
    color: var(--color-brand-gold);
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

/* ─────────────────────────────────────
   SIDEBAR CARDS
   ───────────────────────────────────── */
.tablon-card[b-ttf54sr0e1] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    padding: 20px;
    box-shadow: var(--shadow-warm-sm);
}

.tablon-card--flush[b-ttf54sr0e1] {
    padding: 0;
    overflow: hidden;
}

.tablon-card__head[b-ttf54sr0e1] {
    padding: 16px 20px;
    border-bottom: 1px solid var(--border-soft);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.tablon-card__head--gold[b-ttf54sr0e1] {
    background: linear-gradient(135deg, var(--color-brand-gold-soft), transparent);
}

.tablon-card__title[b-ttf54sr0e1] {
    font-family: var(--font-display);
    font-size: 16px;
    font-weight: 600;
    color: var(--text-primary);
}

.tablon-card__title--md[b-ttf54sr0e1] {
    font-size: 18px;
}

.tablon-card__eyebrow[b-ttf54sr0e1] {
    font-size: 12px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-brand-red);
    font-weight: 600;
    margin-bottom: 14px;
}

.tablon-card__eyebrow--gold[b-ttf54sr0e1] {
    color: var(--color-brand-gold);
    margin-bottom: 4px;
}

/* ── Resumen de hoy ─────────────────── */
.tablon-card__body[b-ttf54sr0e1] {
    padding: 8px 20px 18px;
}

.tablon-stat[b-ttf54sr0e1] {
    padding: 10px 0;
}

.tablon-stat--divided[b-ttf54sr0e1] {
    border-top: 1px solid var(--border-soft);
}

.tablon-stat__row[b-ttf54sr0e1] {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    margin-bottom: 6px;
}

.tablon-stat__label[b-ttf54sr0e1] {
    color: var(--text-secondary);
    font-weight: 500;
}

.tablon-stat__num[b-ttf54sr0e1] {
    font-weight: 700;
}

.tablon-stat__max[b-ttf54sr0e1] {
    color: var(--text-muted);
    font-weight: 400;
}

.tablon-stat__bar[b-ttf54sr0e1] {
    height: 5px;
    background: var(--bg-page);
    border-radius: 99px;
    overflow: hidden;
}

.tablon-stat__fill[b-ttf54sr0e1] {
    height: 5px;
    border-radius: 99px;
    transition: width 1000ms cubic-bezier(.2, .7, .2, 1);
}

/* ── Podio top week ─────────────────── */
.tablon-podio__row[b-ttf54sr0e1] {
    display: flex;
    align-items: center;
    padding: 12px 20px;
    gap: 12px;
}

.tablon-podio__row--divided[b-ttf54sr0e1] {
    border-top: 1px solid var(--border-soft);
}

.tablon-podio__rank[b-ttf54sr0e1] {
    width: 38px;
    height: 38px;
    border-radius: 99px;
    color: var(--bg-paper);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 700;
    flex-shrink: 0;
}

.tablon-podio__info[b-ttf54sr0e1] {
    flex: 1;
    min-width: 0;
}

.tablon-podio__name[b-ttf54sr0e1] {
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.tablon-podio__grade[b-ttf54sr0e1] {
    font-size: 11px;
    color: var(--text-muted);
}

.tablon-podio__score[b-ttf54sr0e1] {
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 700;
    color: var(--color-brand-green);
}

/* ── Trending hashtags ──────────────── */
.tablon-trending[b-ttf54sr0e1] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.tablon-trending__chip[b-ttf54sr0e1] {
    padding: 6px 12px;
    border-radius: 99px;
    font-size: 12px;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    font-family: inherit;
}

.tablon-trending__count[b-ttf54sr0e1] {
    opacity: 0.7;
    font-size: 10px;
}

/* ── Quote del día ──────────────────── */
.tablon-quote[b-ttf54sr0e1] {
    background: linear-gradient(135deg, var(--color-brand-red) 0%, var(--color-brand-red-dark) 100%);
    color: var(--bg-paper);
    padding: 24px;
    border-radius: var(--radius-xl);
    border: none;
    position: relative;
    overflow: hidden;
}

.tablon-quote__rays[b-ttf54sr0e1] {
    position: absolute;
    top: -60px;
    right: -60px;
    width: 180px;
    height: 180px;
    background: repeating-conic-gradient(from 0deg, rgba(217, 164, 65, 0.18) 0deg 1.5deg, transparent 1.5deg 12deg);
    mask-image: radial-gradient(circle, black, transparent 70%);
    -webkit-mask-image: radial-gradient(circle, black, transparent 70%);
}

.tablon-quote__inner[b-ttf54sr0e1] {
    position: relative;
}

.tablon-quote__eyebrow[b-ttf54sr0e1] {
    font-size: 12px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-brand-gold);
    font-weight: 600;
    margin-bottom: 12px;
}

.tablon-quote__mark[b-ttf54sr0e1] {
    color: var(--color-brand-gold);
    font-size: 48px;
    font-family: var(--font-display);
    line-height: 1;
    margin-bottom: -8px;
    font-style: italic;
}

.tablon-quote__text[b-ttf54sr0e1] {
    font-family: var(--font-display);
    font-style: italic;
    font-size: 18px;
    line-height: 1.45;
    color: var(--bg-paper);
}

.tablon-quote__cite[b-ttf54sr0e1] {
    font-size: 11px;
    letter-spacing: 0.14em;
    color: var(--color-brand-gold);
    font-weight: 600;
    margin-top: 16px;
}

/* ─────────────────────────────────────
   LOADING STATE
   ───────────────────────────────────── */
.tablon-loading[b-ttf54sr0e1] {
    display: none; /* la migración visual oculta el feed legacy hasta wireup */
}

/* ─────────────────────────────────────
   MODALES (institucional simple)
   ───────────────────────────────────── */
.modal-overlay[b-ttf54sr0e1] {
    position: fixed;
    inset: 0;
    background: rgba(28, 25, 23, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    padding: 20px;
}

.modal-content[b-ttf54sr0e1] {
    background: var(--bg-surface);
    border-radius: var(--radius-xl);
    width: 100%;
    max-width: 480px;
    overflow: hidden;
    box-shadow: var(--shadow-warm-lg);
}

.modal-content.modal-lg[b-ttf54sr0e1] {
    max-width: 720px;
}

.modal-header[b-ttf54sr0e1] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 18px 24px;
    border-bottom: 1px solid var(--border-soft);
}

.modal-header h3[b-ttf54sr0e1] {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
}

.modal-close[b-ttf54sr0e1] {
    background: transparent;
    border: none;
    font-size: 18px;
    cursor: pointer;
    color: var(--text-muted);
}

.modal-body[b-ttf54sr0e1] {
    padding: 20px 24px;
}

.modal-footer[b-ttf54sr0e1] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 16px 24px;
    border-top: 1px solid var(--border-soft);
}

.form-group[b-ttf54sr0e1] {
    margin-bottom: 14px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.form-group label[b-ttf54sr0e1] {
    font-size: 12px;
    letter-spacing: 0.08em;
    color: var(--text-muted);
    font-weight: 600;
    text-transform: uppercase;
}

.form-group input[b-ttf54sr0e1],
.form-group textarea[b-ttf54sr0e1],
.form-group select[b-ttf54sr0e1] {
    padding: 10px 12px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-sm);
    background: var(--bg-page);
    font-family: inherit;
    font-size: 14px;
}

.form-row[b-ttf54sr0e1] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

/* ─────────────────────────────────────
   RESPONSIVE
   ───────────────────────────────────── */
@media (max-width: 1100px) {
    .tablon-grid[b-ttf54sr0e1] {
        grid-template-columns: 1fr;
    }

    .tablon-aside[b-ttf54sr0e1] {
        position: static;
    }

    .tablon-compose__chip-label[b-ttf54sr0e1] {
        display: none;
    }
}

@media (max-width: 768px) {
    .tablon-root[b-ttf54sr0e1] {
        padding: 4px 0 24px;
    }

    .tablon-stories[b-ttf54sr0e1] {
        padding: 16px;
    }

    .tablon-compose[b-ttf54sr0e1] {
        padding: 12px;
        gap: 10px;
    }

    .tablon-welcome[b-ttf54sr0e1] {
        padding: 20px;
    }

    .tablon-welcome__title[b-ttf54sr0e1] {
        font-size: 22px;
    }

    .tablon-card[b-ttf54sr0e1] {
        padding: 16px;
    }

    .tablon-quote[b-ttf54sr0e1] {
        padding: 20px;
    }

    .tablon-quote__text[b-ttf54sr0e1] {
        font-size: 16px;
    }

    .form-row[b-ttf54sr0e1] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .tablon-welcome[b-ttf54sr0e1] {
        padding: 18px;
    }

    .tablon-welcome__title[b-ttf54sr0e1] {
        font-size: 20px;
    }
}

@media (max-width: 480px) {
    .tablon-stories[b-ttf54sr0e1] {
        padding: 12px;
    }

    .tablon-stories__track[b-ttf54sr0e1] {
        gap: 14px;
    }

    .tablon-compose[b-ttf54sr0e1] {
        flex-wrap: wrap;
    }

    .tablon-compose__chips[b-ttf54sr0e1] {
        flex: 1 1 100%;
        justify-content: stretch;
    }

    .tablon-compose__chip[b-ttf54sr0e1] {
        flex: 1;
        justify-content: center;
    }

    .tablon-welcome__title[b-ttf54sr0e1] {
        font-size: 18px;
    }

    .tablon-card[b-ttf54sr0e1] {
        padding: 14px;
    }

    .tablon-podio__row[b-ttf54sr0e1] {
        padding: 10px 14px;
        gap: 10px;
    }

    .modal-footer[b-ttf54sr0e1] {
        flex-direction: column-reverse;
    }

    .modal-footer > *[b-ttf54sr0e1] {
        width: 100%;
    }
}
/* /Pages/Private/Tareas.razor.rz.scp.css */
/* ============================================
   TAREAS · Aula virtual · estilo SAVA School
   ============================================ */

.tareas-materia-select[b-6uk0yynoh4] {
    height: 36px;
    padding: 0 32px 0 12px;
    border: 1px solid var(--border-medium);
    border-radius: var(--radius-sm);
    background: var(--bg-paper);
    color: var(--text-primary);
    font-size: 13px;
    font-family: inherit;
    appearance: none;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%231C1917' stroke-width='2'><path d='M6 9l6 6 6-6'/></svg>");
    background-repeat: no-repeat;
    background-position: right 10px center;
}

.tareas-materia-select:focus[b-6uk0yynoh4] {
    outline: none;
    border-color: var(--color-brand-green);
    box-shadow: var(--shadow-focus);
}

/* ─── KPIs ─── */
.tareas-stats[b-6uk0yynoh4] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin: 24px 0 20px;
}

@media (max-width: 980px) { .tareas-stats[b-6uk0yynoh4] { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 540px) { .tareas-stats[b-6uk0yynoh4] { grid-template-columns: 1fr; } }

/* ─── Tabs ─── */
.tareas-tabs[b-6uk0yynoh4] {
    display: flex;
    gap: 4px;
    border-bottom: 1px solid var(--border-soft);
    margin-bottom: 20px;
}

.tareas-tab[b-6uk0yynoh4] {
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    padding: 10px 16px;
    font-size: 13px;
    font-weight: 500;
    color: var(--text-muted);
    cursor: pointer;
    font-family: inherit;
    transition: color 160ms ease, border-color 160ms ease;
}

.tareas-tab:hover[b-6uk0yynoh4] { color: var(--text-primary); }

.tareas-tab.is-active[b-6uk0yynoh4] {
    color: var(--color-brand-red);
    border-bottom-color: var(--color-brand-red);
    font-weight: 600;
}

/* ─── Loading state ─── */
.tareas-state[b-6uk0yynoh4] {
    padding: 60px 20px;
    text-align: center;
    color: var(--text-muted);
}

.tareas-spinner[b-6uk0yynoh4] {
    width: 32px;
    height: 32px;
    border: 3px solid var(--border-soft);
    border-top-color: var(--color-brand-red);
    border-radius: 50%;
    margin: 0 auto 12px;
    animation: tareas-spin-b-6uk0yynoh4 700ms linear infinite;
}

@keyframes tareas-spin-b-6uk0yynoh4 { to { transform: rotate(360deg); } }

/* ─── Lista de cards ─── */
.tareas-list[b-6uk0yynoh4] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.tareas-card[b-6uk0yynoh4] {
    position: relative;
    background: var(--bg-surface, #FFFBF3);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    padding: 18px 20px 18px 28px;
    display: grid;
    grid-template-columns: 1fr 220px;
    gap: 24px;
    align-items: flex-start;
    overflow: hidden;
}

.tareas-card__stripe[b-6uk0yynoh4] {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
}

.tareas-card__head[b-6uk0yynoh4] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 6px;
}

.tareas-card__title[b-6uk0yynoh4] {
    font-family: var(--font-display, Georgia, serif);
    font-size: 17px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
    line-height: 1.3;
}

.tareas-card__body[b-6uk0yynoh4] {
    color: var(--text-secondary);
    font-size: 13px;
    line-height: 1.55;
    margin: 0 0 12px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.tareas-card__meta[b-6uk0yynoh4] {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    font-size: 12px;
    color: var(--text-muted);
}

.tareas-card__meta-item[b-6uk0yynoh4] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.tareas-card__meta-course[b-6uk0yynoh4] {
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-weight: 600;
    color: var(--text-secondary);
    font-size: 11px;
}

/* progress */
.tareas-card__progress[b-6uk0yynoh4] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.tareas-card__progress-label[b-6uk0yynoh4] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 12px;
    color: var(--text-muted);
}

.tareas-card__progress-pct[b-6uk0yynoh4] {
    color: var(--text-primary);
    font-weight: 600;
}

.tareas-card__progress-bar[b-6uk0yynoh4] {
    height: 6px;
    background: var(--border-soft);
    border-radius: 99px;
    overflow: hidden;
}

.tareas-card__progress-bar > span[b-6uk0yynoh4] {
    display: block;
    height: 100%;
    border-radius: 99px;
    transition: width 320ms ease;
}

@media (max-width: 760px) {
    .tareas-card[b-6uk0yynoh4] { grid-template-columns: 1fr; padding: 16px 16px 16px 24px; }
}

@media (max-width: 480px) {
    .tareas-stats[b-6uk0yynoh4] { gap: 12px; }
    .tareas-card[b-6uk0yynoh4] { padding: 14px 14px 14px 22px; }
    .tareas-card__title[b-6uk0yynoh4] { font-size: 15px; }
    .tareas-tabs[b-6uk0yynoh4] { overflow-x: auto; flex-wrap: nowrap; }
    .tareas-tab[b-6uk0yynoh4] { white-space: nowrap; padding: 10px 12px; font-size: 12px; }
}
/* /Pages/Private/Teachers.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Docentes (privada) · scoped styles
   ════════════════════════════════════════════════════════════════════
   KPIs + filtros + tabla densa + paginación.
   ════════════════════════════════════════════════════════════════════ */

.teachers-root[b-ue31tu2nk5] {
    padding: 8px 0 32px;
    max-width: 1320px;
    margin: 0 auto;
}

/* ─────────────────────────────────────
   STATS GRID
   ───────────────────────────────────── */
.teachers-stats[b-ue31tu2nk5] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin: 24px 0 24px;
}

.teachers-stats > *[b-ue31tu2nk5] {
    height: 100%;
}

/* ─────────────────────────────────────
   FILTERS BAR
   ───────────────────────────────────── */
.teachers-filters[b-ue31tu2nk5] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    padding: 16px 20px;
    margin-bottom: 20px;
    display: grid;
    grid-template-columns: 2fr repeat(3, 1fr);
    gap: 12px;
    align-items: center;
    box-shadow: var(--shadow-warm-sm);
}

.teachers-search[b-ue31tu2nk5] {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    background: var(--bg-page);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    padding: 8px 12px;
    color: var(--text-muted);
}

.teachers-search input[b-ue31tu2nk5] {
    flex: 1;
    border: none;
    background: transparent;
    outline: none;
    font-size: 13px;
    color: var(--text-primary);
    font-family: inherit;
}

.teachers-search input[b-ue31tu2nk5]::placeholder {
    color: var(--text-muted);
}

.teachers-select[b-ue31tu2nk5] {
    padding: 9px 12px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-surface);
    font-size: 13px;
    font-weight: 500;
    color: var(--text-primary);
    outline: none;
    cursor: pointer;
    font-family: inherit;
}

.teachers-select:focus[b-ue31tu2nk5] {
    box-shadow: var(--shadow-focus);
}

/* ─────────────────────────────────────
   CARD FLUSH (tabla)
   ───────────────────────────────────── */
.teachers-card[b-ue31tu2nk5] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-warm-sm);
}

.teachers-card--flush[b-ue31tu2nk5] {
    padding: 0;
    overflow: hidden;
}

.teachers-table-wrap[b-ue31tu2nk5] {
    overflow-x: auto;
}

.teachers-table[b-ue31tu2nk5] {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.teachers-table thead th[b-ue31tu2nk5] {
    background: var(--bg-page);
    text-transform: uppercase;
    font-size: 11px;
    letter-spacing: 0.1em;
    color: var(--text-muted);
    font-weight: 600;
    padding: 12px 18px;
    text-align: left;
    border-bottom: 1px solid var(--border-soft);
    white-space: nowrap;
}

.teachers-table tbody td[b-ue31tu2nk5] {
    padding: 12px 18px;
    border-bottom: 1px solid var(--border-soft);
    color: var(--text-secondary);
    vertical-align: middle;
}

.teachers-table tbody tr:last-child td[b-ue31tu2nk5] {
    border-bottom: none;
}

.teachers-table tbody tr:hover[b-ue31tu2nk5] {
    background: var(--bg-page);
}

.teachers-table__actions[b-ue31tu2nk5] {
    width: 48px;
    text-align: right;
}

/* ─────────────────────────────────────
   CELL · docente (avatar + name)
   ───────────────────────────────────── */
.teachers-cell[b-ue31tu2nk5] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.teachers-cell__avatar[b-ue31tu2nk5] {
    width: 36px;
    height: 36px;
    border-radius: 99px;
    color: var(--bg-paper);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 13px;
    flex-shrink: 0;
}

.teachers-cell__name[b-ue31tu2nk5] {
    font-weight: 600;
    color: var(--text-primary);
    font-size: 13px;
}

/* ─────────────────────────────────────
   ROW ACTION (chevron)
   ───────────────────────────────────── */
.teachers-row-action[b-ue31tu2nk5] {
    background: none;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--text-muted);
    cursor: pointer;
    transition: all 0.15s;
}

.teachers-row-action:hover[b-ue31tu2nk5] {
    background: var(--bg-page);
    color: var(--text-primary);
    border-color: var(--text-muted);
}

/* ─────────────────────────────────────
   PAGINATION
   ───────────────────────────────────── */
.teachers-pagination[b-ue31tu2nk5] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 20px;
    border-top: 1px solid var(--border-soft);
    background: var(--bg-page);
}

.teachers-pagination__info[b-ue31tu2nk5] {
    font-size: 12px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-weight: 600;
}

.teachers-pagination__actions[b-ue31tu2nk5] {
    display: flex;
    gap: 8px;
}

.teachers-page-btn[b-ue31tu2nk5] {
    padding: 7px 14px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-surface);
    font-size: 12px;
    font-weight: 600;
    color: var(--text-primary);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: inherit;
    transition: all 0.15s;
}

.teachers-page-btn:hover:not(:disabled)[b-ue31tu2nk5] {
    background: var(--bg-page);
    border-color: var(--text-muted);
}

.teachers-page-btn:disabled[b-ue31tu2nk5] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* ─────────────────────────────────────
   LEGACY container
   ───────────────────────────────────── */
.teachers-legacy[hidden][b-ue31tu2nk5] {
    display: none;
}

.warning-text[b-ue31tu2nk5] {
    color: var(--color-brand-red);
    font-size: 13px;
    margin-top: 8px;
}

/* ─────────────────────────────────────
   RESPONSIVE
   ───────────────────────────────────── */
.teachers-table-wrap[b-ue31tu2nk5] {
    -webkit-overflow-scrolling: touch;
    overflow-y: hidden;
}

@media (max-width: 1024px) {
    .teachers-filters[b-ue31tu2nk5] {
        grid-template-columns: 1fr 1fr;
    }

    .teachers-search[b-ue31tu2nk5] {
        grid-column: 1 / -1;
    }

    .teachers-stats[b-ue31tu2nk5] {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .teachers-table[b-ue31tu2nk5] {
        min-width: 600px;
    }

    .teachers-pagination[b-ue31tu2nk5] {
        flex-direction: column;
        gap: 12px;
        align-items: stretch;
    }

    .teachers-pagination__actions[b-ue31tu2nk5] {
        justify-content: space-between;
    }
}

@media (max-width: 640px) {
    .teachers-stats[b-ue31tu2nk5] {
        grid-template-columns: 1fr;
    }

    .teachers-filters[b-ue31tu2nk5] {
        grid-template-columns: 1fr;
    }

    .teachers-table thead th[b-ue31tu2nk5],
    .teachers-table tbody td[b-ue31tu2nk5] {
        padding: 10px 12px;
    }
}

@media (max-width: 480px) {
    .teachers-filters[b-ue31tu2nk5] {
        padding: 12px;
    }

    .teachers-page-btn[b-ue31tu2nk5] {
        flex: 1;
        justify-content: center;
    }

    .teachers-cell__avatar[b-ue31tu2nk5] {
        width: 30px;
        height: 30px;
        font-size: 11px;
    }
}
/* /Pages/Private/Usuarios.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Usuarios (privada) · scoped styles
   ════════════════════════════════════════════════════════════════════
   Sobrio institucional · sin emojis · tabla densa de comunidad SAVA.
   AdminPageHeader, AdminBadge viven en Shared/Sava.
   ════════════════════════════════════════════════════════════════════ */

.usuarios-root[b-n7tenlulwj] {
    padding: 8px 0 32px;
    max-width: 1320px;
    margin: 0 auto;
}

/* ─────────────────────────────────────
   TABS · categorías
   ───────────────────────────────────── */
.usuarios-tabs[b-n7tenlulwj] {
    display: flex;
    gap: 0;
    border-bottom: 1px solid var(--border-soft);
    margin-bottom: 24px;
    overflow-x: auto;
}

.usuarios-tab[b-n7tenlulwj] {
    padding: 14px 24px;
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 13px;
    color: var(--text-muted);
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    transition: color 160ms ease, border-color 160ms ease;
}

.usuarios-tab:hover[b-n7tenlulwj] {
    color: var(--text-primary);
}

.usuarios-tab--active[b-n7tenlulwj] {
    color: var(--color-brand-red);
    border-bottom-color: var(--color-brand-red);
}

.usuarios-tab__label[b-n7tenlulwj] {
    line-height: 1;
}

.usuarios-tab__count[b-n7tenlulwj] {
    font-size: 10px;
    padding: 2px 7px;
    border-radius: 99px;
    background: var(--bg-page);
    color: var(--text-muted);
    font-weight: 700;
    letter-spacing: 0;
}

.usuarios-tab__count--active[b-n7tenlulwj] {
    background: var(--color-brand-red);
    color: var(--bg-paper);
}

/* ─────────────────────────────────────
   FILTERS · card con search + selects
   ───────────────────────────────────── */
.usuarios-filters[b-n7tenlulwj] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    padding: 16px 20px;
    margin-bottom: 16px;
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    box-shadow: var(--shadow-warm-sm);
}

.usuarios-search[b-n7tenlulwj] {
    position: relative;
    flex: 1;
    min-width: 240px;
}

.usuarios-search__icon[b-n7tenlulwj] {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--text-muted);
    display: inline-flex;
    align-items: center;
}

.usuarios-search__input[b-n7tenlulwj] {
    width: 100%;
    padding: 9px 12px 9px 36px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-page);
    font-size: 13px;
    font-family: var(--font-body);
    color: var(--text-primary);
    outline: none;
    transition: border-color 140ms ease, box-shadow 140ms ease;
}

.usuarios-search__input:focus[b-n7tenlulwj] {
    border-color: var(--color-brand-red);
    box-shadow: 0 0 0 3px rgba(160, 57, 46, 0.12);
}

.usuarios-select[b-n7tenlulwj] {
    padding: 9px 14px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-surface);
    font-size: 13px;
    font-family: var(--font-body);
    font-weight: 500;
    color: var(--text-primary);
    outline: none;
    cursor: pointer;
    min-width: 160px;
}

.usuarios-select:focus[b-n7tenlulwj] {
    border-color: var(--color-brand-red);
}

/* ─────────────────────────────────────
   TABLA densa · card flush
   ───────────────────────────────────── */
.usuarios-table-card[b-n7tenlulwj] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    overflow: hidden;
    box-shadow: var(--shadow-warm-sm);
}

.usuarios-table-wrap[b-n7tenlulwj] {
    overflow-x: auto;
}

.usuarios-table[b-n7tenlulwj] {
    width: 100%;
    border-collapse: collapse;
}

.usuarios-table thead[b-n7tenlulwj] {
    background: var(--bg-page);
}

.usuarios-th[b-n7tenlulwj] {
    padding: 12px 20px;
    text-align: left;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-family: var(--font-body);
}

.usuarios-th--right[b-n7tenlulwj] {
    text-align: right;
}

.usuarios-row[b-n7tenlulwj] {
    border-top: 1px solid var(--border-soft);
    cursor: pointer;
    transition: background 140ms ease;
}

.usuarios-row:hover[b-n7tenlulwj] {
    background: var(--bg-page);
}

.usuarios-td[b-n7tenlulwj] {
    padding: 14px 20px;
    font-size: 13px;
    color: var(--text-secondary);
    vertical-align: middle;
}

.usuarios-td--right[b-n7tenlulwj] {
    text-align: right;
}

.usuarios-td--mono[b-n7tenlulwj] {
    font-family: var(--font-mono);
    font-size: 12px;
    color: var(--text-secondary);
}

.usuarios-td--guardian[b-n7tenlulwj] {
    color: var(--text-secondary);
}

.usuarios-person[b-n7tenlulwj] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.usuarios-avatar[b-n7tenlulwj] {
    width: 36px;
    height: 36px;
    border-radius: 99px;
    color: var(--bg-paper);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 700;
    font-family: var(--font-display);
    flex-shrink: 0;
}

.usuarios-person__name[b-n7tenlulwj] {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.3;
}

.usuarios-person__phone[b-n7tenlulwj] {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 2px;
}

.usuarios-row-menu[b-n7tenlulwj] {
    background: transparent;
    border: none;
    color: var(--text-muted);
    padding: 6px;
    border-radius: var(--radius-sm);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 140ms ease, color 140ms ease;
}

.usuarios-row-menu:hover[b-n7tenlulwj] {
    background: var(--bg-page);
    color: var(--text-primary);
}

/* ─────────────────────────────────────
   PAGINACIÓN footer
   ───────────────────────────────────── */
.usuarios-pagination[b-n7tenlulwj] {
    padding: 14px 20px;
    border-top: 1px solid var(--border-soft);
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 13px;
    color: var(--text-muted);
    flex-wrap: wrap;
    gap: 12px;
}

.usuarios-pagination__count[b-n7tenlulwj] {
    line-height: 1.5;
}

.usuarios-pagination__strong[b-n7tenlulwj] {
    color: var(--text-primary);
    font-weight: 700;
}

.usuarios-pages[b-n7tenlulwj] {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.usuarios-page[b-n7tenlulwj] {
    padding: 6px 12px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-sm);
    font-size: 12px;
    font-weight: 600;
    background: var(--bg-surface);
    color: var(--text-secondary);
    font-family: var(--font-body);
    cursor: pointer;
    transition: background 140ms ease, color 140ms ease, border-color 140ms ease;
}

.usuarios-page:hover[b-n7tenlulwj] {
    background: var(--bg-page);
    color: var(--text-primary);
}

.usuarios-page--active[b-n7tenlulwj] {
    background: var(--color-brand-green);
    color: var(--bg-paper);
    border-color: var(--color-brand-green);
}

.usuarios-page--active:hover[b-n7tenlulwj] {
    background: var(--color-brand-green);
    color: var(--bg-paper);
}

/* ─────────────────────────────────────
   RESPONSIVE
   ───────────────────────────────────── */
.usuarios-table-wrap[b-n7tenlulwj] {
    -webkit-overflow-scrolling: touch;
    overflow-y: hidden;
}

@media (max-width: 1024px) {
    .usuarios-root[b-n7tenlulwj] {
        padding: 8px 0 24px;
    }

    .usuarios-filters[b-n7tenlulwj] {
        padding: 14px 16px;
    }

    .usuarios-select[b-n7tenlulwj] {
        flex: 1;
        min-width: 140px;
    }
}

@media (max-width: 900px) {
    .usuarios-tab[b-n7tenlulwj] {
        padding: 12px 16px;
        font-size: 12px;
    }

    .usuarios-th[b-n7tenlulwj],
    .usuarios-td[b-n7tenlulwj] {
        padding: 12px 14px;
    }
}

@media (max-width: 768px) {
    .usuarios-filters[b-n7tenlulwj] {
        flex-direction: column;
        align-items: stretch;
    }

    .usuarios-search[b-n7tenlulwj] {
        min-width: 0;
        width: 100%;
    }

    .usuarios-select[b-n7tenlulwj] {
        width: 100%;
        min-width: 0;
    }

    .usuarios-table[b-n7tenlulwj] {
        min-width: 600px;
    }
}

@media (max-width: 640px) {
    .usuarios-pagination[b-n7tenlulwj] {
        flex-direction: column;
        align-items: flex-start;
    }

    .usuarios-person__phone[b-n7tenlulwj] {
        display: none;
    }
}

@media (max-width: 480px) {
    .usuarios-tab[b-n7tenlulwj] {
        padding: 10px 12px;
        font-size: 11px;
    }

    .usuarios-tab__count[b-n7tenlulwj] {
        display: none;
    }

    .usuarios-filters[b-n7tenlulwj] {
        padding: 12px;
    }

    .usuarios-th[b-n7tenlulwj],
    .usuarios-td[b-n7tenlulwj] {
        padding: 10px 12px;
    }

    .usuarios-pages[b-n7tenlulwj] {
        width: 100%;
        justify-content: center;
    }
}
/* /Pages/Public/Admisiones.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Admisiones page · scoped styles
   ════════════════════════════════════════════════════════════════════
   Componentes base (.btn, .card, .reveal, .eyebrow, .photo-placeholder,
   .h1, .display-2, .body-lg, .tabular, .lift-on-hover, .wiggle-host)
   viven en wwwroot/css/app.css. Acá solo van estilos específicos.
   ════════════════════════════════════════════════════════════════════ */

.adm-root[b-wlq4f9ti3e] {
    background: var(--bg-page);
    color: var(--text-primary);
}


/* ─────────────────────────────────────
   HERO · variant pegatinas
   ───────────────────────────────────── */
.adm-hero[b-wlq4f9ti3e] {
    position: relative;
    padding: 96px 32px 80px;
    overflow: hidden;
}

.adm-hero__inner[b-wlq4f9ti3e] {
    max-width: 920px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
    text-align: center;
}

.adm-hero__title[b-wlq4f9ti3e] {
    margin-bottom: 24px;
    font-family: var(--font-display);
}

.adm-hero__lead[b-wlq4f9ti3e] {
    max-width: 640px;
    margin: 0 auto;
}

@media (max-width: 768px) {
    .adm-hero[b-wlq4f9ti3e] {
        padding: 72px 24px 56px;
    }
}


/* ─────────────────────────────────────
   SECTION primitive del Admisiones
   ───────────────────────────────────── */
.adm-section[b-wlq4f9ti3e] {
    padding: 96px 32px;
    position: relative;
    overflow: hidden;
}

@media (max-width: 768px) {
    .adm-section[b-wlq4f9ti3e] {
        padding: 72px 24px;
    }
}


/* ─────────────────────────────────────
   PROCESO · 4 pasos con conector
   ───────────────────────────────────── */
.adm-proceso[b-wlq4f9ti3e] {
    background: var(--bg-paper);
}

.adm-proceso__inner[b-wlq4f9ti3e] {
    max-width: 1180px;
    margin: 0 auto;
}

.adm-proceso__title[b-wlq4f9ti3e] {
    margin-bottom: 56px;
    font-family: var(--font-display);
}

.adm-steps[b-wlq4f9ti3e] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    position: relative;
}

.adm-steps__connector[b-wlq4f9ti3e] {
    position: absolute;
    top: 28px;
    left: 12%;
    right: 12%;
    height: 1px;
    background: var(--border-medium);
    z-index: 0;
}

.adm-step[b-wlq4f9ti3e] {
    position: relative;
    z-index: 1;
    padding: 0 12px;
    text-align: center;
}

.adm-step__num[b-wlq4f9ti3e] {
    width: 56px;
    height: 56px;
    border-radius: 99px;
    background: var(--color-brand-green);
    color: var(--color-brand-gold);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 600;
    margin: 0 auto 20px;
    border: 4px solid var(--bg-paper);
}

.adm-step__title[b-wlq4f9ti3e] {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 600;
    margin-bottom: 8px;
    color: var(--text-primary);
}

.adm-step__body[b-wlq4f9ti3e] {
    font-size: 14px;
    color: var(--text-secondary);
    line-height: 1.55;
}

@media (max-width: 880px) {
    .adm-steps[b-wlq4f9ti3e] {
        grid-template-columns: 1fr 1fr;
        gap: 32px;
    }
    .adm-steps__connector[b-wlq4f9ti3e] {
        display: none;
    }
}


/* ─────────────────────────────────────
   REQUISITOS · tabs
   ───────────────────────────────────── */
.adm-req__inner[b-wlq4f9ti3e] {
    max-width: 1180px;
    margin: 0 auto;
}

.adm-req__title[b-wlq4f9ti3e] {
    margin-bottom: 32px;
    font-family: var(--font-display);
}

.adm-req__tabs[b-wlq4f9ti3e] {
    display: flex;
    gap: 0;
    border-bottom: 1px solid var(--border-soft);
    margin-bottom: 32px;
}

.adm-req__tab[b-wlq4f9ti3e] {
    padding: 14px 28px;
    background: transparent;
    border: 0;
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 14px;
    color: var(--text-muted);
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    text-transform: capitalize;
    cursor: pointer;
    transition: color 160ms ease-out, border-color 160ms ease-out;
}

.adm-req__tab:hover[b-wlq4f9ti3e] {
    color: var(--text-primary);
}

.adm-req__tab.is-active[b-wlq4f9ti3e] {
    color: var(--color-brand-red);
    border-bottom-color: var(--color-brand-red);
}

.adm-req__grid[b-wlq4f9ti3e] {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px 32px;
    max-width: 880px;
}

.adm-req__item[b-wlq4f9ti3e] {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 12px 0;
    border-bottom: 1px dashed var(--border-soft);
}

.adm-req__num[b-wlq4f9ti3e] {
    font-family: var(--font-display);
    font-size: 14px;
    color: var(--color-brand-gold);
    font-weight: 600;
    min-width: 24px;
}

.adm-req__text[b-wlq4f9ti3e] {
    font-size: 15px;
    color: var(--text-primary);
}

@media (max-width: 720px) {
    .adm-req__grid[b-wlq4f9ti3e] {
        grid-template-columns: 1fr;
    }
}


/* ─────────────────────────────────────
   PENSIONES · tabla
   ───────────────────────────────────── */
.adm-pensiones[b-wlq4f9ti3e] {
    background: var(--bg-paper);
}

.adm-pensiones__inner[b-wlq4f9ti3e] {
    max-width: 1180px;
    margin: 0 auto;
}

.adm-pensiones__title[b-wlq4f9ti3e] {
    margin-bottom: 32px;
    font-family: var(--font-display);
}

.adm-table-card[b-wlq4f9ti3e] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: 8px;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    margin-bottom: 16px;
}

@media (max-width: 600px) {
    .adm-table[b-wlq4f9ti3e] {
        min-width: 480px;
    }
}

.adm-table[b-wlq4f9ti3e] {
    width: 100%;
    border-collapse: collapse;
}

.adm-table__th[b-wlq4f9ti3e] {
    background: var(--bg-page);
    padding: 14px 20px;
    text-align: left;
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 12px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-muted);
    border-bottom: 1px solid var(--border-soft);
}

.adm-table__th--right[b-wlq4f9ti3e] {
    text-align: right;
}

.adm-table__td[b-wlq4f9ti3e] {
    padding: 16px 20px;
    font-size: 15px;
    color: var(--text-primary);
    border-top: 1px solid var(--border-soft);
}

.adm-table__td--right[b-wlq4f9ti3e] {
    text-align: right;
    font-weight: 600;
}

.adm-pensiones__note[b-wlq4f9ti3e] {
    font-size: 12px;
    color: var(--text-muted);
    font-style: italic;
}

@media (max-width: 720px) {
    .adm-table__th[b-wlq4f9ti3e],
    .adm-table__td[b-wlq4f9ti3e] {
        padding: 12px 14px;
        font-size: 13px;
    }
}


/* ─────────────────────────────────────
   BECAS · cards doradas
   ───────────────────────────────────── */
.adm-becas__inner[b-wlq4f9ti3e] {
    max-width: 1180px;
    margin: 0 auto;
}

.adm-becas__title[b-wlq4f9ti3e] {
    margin-bottom: 16px;
    font-family: var(--font-display);
}

.adm-becas__lead[b-wlq4f9ti3e] {
    max-width: 640px;
    margin-bottom: 48px;
}

.adm-becas__grid[b-wlq4f9ti3e] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

.adm-beca[b-wlq4f9ti3e] {
    padding: 24px;
    background: var(--color-brand-gold-soft);
    border: 1px solid var(--color-brand-gold);
    border-radius: 8px;
    position: relative;
    height: 100%;
}

.adm-beca__icon[b-wlq4f9ti3e] {
    color: var(--color-brand-gold);
    margin-bottom: 16px;
    display: inline-flex;
}

.adm-beca__title[b-wlq4f9ti3e] {
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 600;
    margin-bottom: 8px;
    color: var(--text-primary);
}

.adm-beca__body[b-wlq4f9ti3e] {
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.55;
}

@media (max-width: 880px) {
    .adm-becas__grid[b-wlq4f9ti3e] {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 520px) {
    .adm-becas__grid[b-wlq4f9ti3e] {
        grid-template-columns: 1fr;
    }
}


/* ─────────────────────────────────────
   CONTRATO · card verde
   ───────────────────────────────────── */
.adm-contrato[b-wlq4f9ti3e] {
    padding-top: 0;
}

.adm-contrato__card[b-wlq4f9ti3e] {
    max-width: 1180px;
    margin: 0 auto;
    background: var(--color-brand-green);
    color: var(--bg-paper);
    padding: 40px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 24px;
}

.adm-contrato__left[b-wlq4f9ti3e] {
    display: flex;
    align-items: center;
    gap: 24px;
}

.adm-contrato__pdf-icon[b-wlq4f9ti3e] {
    width: 56px;
    height: 70px;
    background: rgba(var(--color-brand-gold-rgb), 0.15);
    border: 1px solid rgba(var(--color-brand-gold-rgb), 0.4);
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-brand-gold);
    flex-shrink: 0;
}

.adm-contrato__eyebrow[b-wlq4f9ti3e] {
    color: var(--color-brand-gold);
    margin-bottom: 6px;
}

.adm-contrato__title[b-wlq4f9ti3e] {
    font-family: var(--font-display);
    font-size: 24px;
    font-weight: 600;
    color: var(--bg-paper);
    line-height: 1.25;
}

.adm-contrato__meta[b-wlq4f9ti3e] {
    font-size: 13px;
    opacity: 0.7;
    margin-top: 4px;
}

.adm-contrato__btn[b-wlq4f9ti3e] {
    flex-shrink: 0;
}

@media (max-width: 720px) {
    .adm-contrato__card[b-wlq4f9ti3e] {
        padding: 28px;
    }
    .adm-contrato__left[b-wlq4f9ti3e] {
        gap: 18px;
    }
}


/* ─────────────────────────────────────
   FAQ · accordion
   ───────────────────────────────────── */
.adm-faq[b-wlq4f9ti3e] {
    background: var(--bg-paper);
}

.adm-faq__inner[b-wlq4f9ti3e] {
    max-width: 880px;
    margin: 0 auto;
}

.adm-faq__title[b-wlq4f9ti3e] {
    margin-bottom: 48px;
    font-family: var(--font-display);
}

.adm-faq__list[b-wlq4f9ti3e] {
    display: block;
}

.adm-faq__item[b-wlq4f9ti3e] {
    border-bottom: 1px solid var(--border-soft);
}

.adm-faq__btn[b-wlq4f9ti3e] {
    width: 100%;
    padding: 22px 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    text-align: left;
    background: transparent;
    border: 0;
    cursor: pointer;
    color: var(--text-primary);
}

.adm-faq__q[b-wlq4f9ti3e] {
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 600;
}

.adm-faq__plus[b-wlq4f9ti3e] {
    color: var(--color-brand-green);
    transform: rotate(0deg);
    transition: transform 200ms ease-out;
    display: inline-flex;
    flex-shrink: 0;
}

.adm-faq__plus.is-open[b-wlq4f9ti3e] {
    transform: rotate(45deg);
}

.adm-faq__panel[b-wlq4f9ti3e] {
    padding-bottom: 22px;
    padding-right: 60px;
    font-size: 16px;
    color: var(--text-secondary);
    line-height: 1.65;
}

@media (max-width: 600px) {
    .adm-faq__q[b-wlq4f9ti3e] {
        font-size: 17px;
    }
    .adm-faq__panel[b-wlq4f9ti3e] {
        padding-right: 12px;
        font-size: 15px;
    }
}


/* ─────────────────────────────────────
   CTA final
   ───────────────────────────────────── */
.adm-cta__inner[b-wlq4f9ti3e] {
    max-width: 920px;
    margin: 0 auto;
    text-align: center;
}

.adm-cta__title[b-wlq4f9ti3e] {
    margin-bottom: 16px;
}

.adm-cta__lead[b-wlq4f9ti3e] {
    margin: 0 auto 32px;
    max-width: 520px;
}

.adm-cta__buttons[b-wlq4f9ti3e] {
    display: flex;
    justify-content: center;
    gap: 16px;
    flex-wrap: wrap;
}

@media (max-width: 480px) {
    .adm-hero[b-wlq4f9ti3e] {
        padding: 56px 20px 40px;
    }
    .adm-section[b-wlq4f9ti3e] {
        padding: 56px 20px;
    }
    .adm-step__num[b-wlq4f9ti3e] {
        width: 48px;
        height: 48px;
        font-size: 18px;
    }
    .adm-step__title[b-wlq4f9ti3e] {
        font-size: 19px;
    }
    .adm-contrato__card[b-wlq4f9ti3e] {
        padding: 22px;
        flex-direction: column;
        align-items: flex-start;
    }
    .adm-contrato__btn[b-wlq4f9ti3e] {
        width: 100%;
    }
    .adm-req__tab[b-wlq4f9ti3e] {
        padding: 12px 16px;
        font-size: 13px;
    }
    .adm-faq__title[b-wlq4f9ti3e],
    .adm-becas__lead[b-wlq4f9ti3e] {
        margin-bottom: 32px;
    }
}
/* /Pages/Public/AvisoLegal.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Aviso Legal · scoped styles
   ════════════════════════════════════════════════════════════════════
   Variant cuaderno · layout editorial · sidebar TOC + serif body
   ════════════════════════════════════════════════════════════════════ */

.legal-root[b-ur0czlnybt] {
    background: var(--bg-page);
    color: var(--text-primary);
    min-height: 100vh;
}


/* ─────────────────────────────────────
   HERO
   ───────────────────────────────────── */
.legal-hero[b-ur0czlnybt] {
    position: relative;
    padding: 80px 32px 48px;
    background: var(--bg-paper);
    border-bottom: 1px solid var(--border-soft);
    overflow: hidden;
}

.legal-hero__inner[b-ur0czlnybt] {
    position: relative;
    z-index: 1;
    max-width: 1080px;
    margin: 0 auto;
}

.legal-hero__title[b-ur0czlnybt] {
    margin: 8px 0 12px;
}

.legal-hero__meta[b-ur0czlnybt] {
    color: var(--text-muted);
    font-size: 14px;
    margin: 0;
}


/* ─────────────────────────────────────
   LAYOUT editorial
   ───────────────────────────────────── */
.legal-section[b-ur0czlnybt] {
    padding: 64px 32px 96px;
}

.legal-layout[b-ur0czlnybt] {
    max-width: 1080px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 64px;
    align-items: flex-start;
}


/* ─── Sidebar TOC ─────────────────── */
.legal-toc[b-ur0czlnybt] {
    position: sticky;
    top: 96px;
    align-self: start;
}

.legal-toc__inner[b-ur0czlnybt] {
    padding: 24px;
    background: var(--bg-paper);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
}

.legal-toc__eyebrow[b-ur0czlnybt] {
    display: block;
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--color-brand-red);
    font-weight: 600;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--border-soft);
}

.legal-toc__list[b-ur0czlnybt] {
    list-style: decimal;
    padding-left: 20px;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.legal-toc__list li[b-ur0czlnybt] {
    font-size: 13px;
    color: var(--text-secondary);
    padding-left: 4px;
}

.legal-toc__list li[b-ur0czlnybt]::marker {
    color: var(--color-brand-gold);
    font-weight: 600;
}

.legal-toc__link[b-ur0czlnybt] {
    color: var(--text-secondary);
    text-decoration: none;
    line-height: 1.5;
    transition: color 160ms ease-out;
    display: inline-block;
    padding: 2px 0;
}

.legal-toc__link:hover[b-ur0czlnybt] {
    color: var(--color-brand-green);
}


/* ─── Body editorial ─────────────────── */
.legal-body[b-ur0czlnybt] {
    max-width: 720px;
    font-family: var(--font-display);
    color: var(--text-primary);
}

.legal-block[b-ur0czlnybt] {
    margin-bottom: 56px;
    scroll-margin-top: 96px;
}

.legal-block__title[b-ur0czlnybt] {
    font-family: var(--font-display);
    font-size: 28px;
    font-weight: 600;
    line-height: 1.25;
    margin: 0 0 20px;
    color: var(--text-primary);
    padding-bottom: 12px;
    border-bottom: 1px solid var(--border-soft);
}

.legal-block p[b-ur0czlnybt] {
    font-family: var(--font-display);
    font-size: 17px;
    line-height: 1.7;
    color: var(--text-secondary);
    margin: 0 0 14px;
}

.legal-block strong[b-ur0czlnybt] {
    color: var(--text-primary);
    font-weight: 600;
}

.legal-block ul[b-ur0czlnybt] {
    font-family: var(--font-display);
    font-size: 17px;
    line-height: 1.7;
    color: var(--text-secondary);
    margin: 0 0 18px;
    padding-left: 22px;
}

.legal-block ul li[b-ur0czlnybt] {
    margin-bottom: 6px;
}

.legal-block ul li[b-ur0czlnybt]::marker {
    color: var(--color-brand-gold);
}

.legal-block a[b-ur0czlnybt] {
    color: var(--color-brand-green);
    text-decoration: underline;
}


/* ─── Callout (neutro) ───────────────── */
.legal-callout[b-ur0czlnybt] {
    background: var(--bg-paper);
    border-left: 3px solid var(--color-brand-green);
    border-radius: var(--radius-sm);
    padding: 18px 22px;
    margin: 16px 0 22px;
}

.legal-callout p[b-ur0czlnybt] {
    margin: 0 0 6px;
    font-size: 16px;
    color: var(--text-primary);
}

.legal-callout p:last-child[b-ur0czlnybt] {
    margin-bottom: 0;
}

.legal-callout .tabular[b-ur0czlnybt] {
    font-variant-numeric: tabular-nums;
    font-weight: 500;
}


/* ─── Nota importante (amarilla) ─────── */
.legal-note[b-ur0czlnybt] {
    background: var(--color-brand-gold-soft);
    border-left: 4px solid var(--color-brand-gold);
    border-radius: var(--radius-sm);
    padding: 16px 20px;
    margin: 20px 0;
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 1.6;
    color: var(--text-primary);
}

.legal-note strong[b-ur0czlnybt] {
    color: var(--color-brand-red);
}

.legal-note a[b-ur0czlnybt] {
    color: var(--color-brand-red);
    text-decoration: underline;
    font-weight: 600;
}


/* ─── Footer del documento ──────────── */
.legal-accept[b-ur0czlnybt] {
    margin-top: 64px;
    padding-top: 32px;
    border-top: 1px solid var(--border-soft);
    display: flex;
    justify-content: flex-end;
}

.legal-accept__btn[b-ur0czlnybt] {
    justify-content: center;
}


/* ─────────────────────────────────────
   RESPONSIVE
   ───────────────────────────────────── */
@media (max-width: 960px) {
    .legal-layout[b-ur0czlnybt] {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .legal-toc[b-ur0czlnybt] {
        display: none;
    }
}

@media (max-width: 768px) {
    .legal-hero[b-ur0czlnybt] {
        padding: 64px 24px 40px;
    }

    .legal-section[b-ur0czlnybt] {
        padding: 48px 24px 80px;
    }

    .legal-body[b-ur0czlnybt] {
        max-width: 100%;
    }

    .legal-block[b-ur0czlnybt] {
        margin-bottom: 48px;
    }

    .legal-block__title[b-ur0czlnybt] {
        font-size: 26px;
    }
}

@media (max-width: 640px) {
    .legal-hero[b-ur0czlnybt] {
        padding: 56px 20px 32px;
    }

    .legal-section[b-ur0czlnybt] {
        padding: 40px 20px 72px;
    }

    .legal-block[b-ur0czlnybt] {
        margin-bottom: 40px;
    }

    .legal-block__title[b-ur0czlnybt] {
        font-size: 24px;
    }

    .legal-block p[b-ur0czlnybt],
    .legal-block ul[b-ur0czlnybt] {
        font-size: 16px;
    }

    .legal-accept[b-ur0czlnybt] {
        justify-content: center;
    }

    .legal-accept__btn[b-ur0czlnybt] {
        width: 100%;
    }
}

@media (max-width: 480px) {
    .legal-hero[b-ur0czlnybt] {
        padding: 48px 16px 28px;
    }

    .legal-hero__title[b-ur0czlnybt] {
        font-size: clamp(28px, 8vw, 36px);
    }

    .legal-section[b-ur0czlnybt] {
        padding: 32px 16px 56px;
    }

    .legal-block[b-ur0czlnybt] {
        margin-bottom: 32px;
    }

    .legal-block__title[b-ur0czlnybt] {
        font-size: 22px;
        margin-bottom: 16px;
    }

    .legal-block p[b-ur0czlnybt],
    .legal-block ul[b-ur0czlnybt] {
        font-size: 15px;
        line-height: 1.65;
    }

    .legal-callout[b-ur0czlnybt] {
        padding: 14px 16px;
    }

    .legal-callout p[b-ur0czlnybt] {
        font-size: 15px;
    }

    .legal-note[b-ur0czlnybt] {
        padding: 14px 16px;
    }
}
/* /Pages/Public/Contacto.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Contacto · scoped styles
   ════════════════════════════════════════════════════════════════════
   Componentes base (.btn, .card, .photo-placeholder, .eyebrow) viven en
   wwwroot/css/app.css. Acá solo van estilos específicos de Contacto.
   ════════════════════════════════════════════════════════════════════ */

.contacto-root[b-dzy3sqqhx2] {
    background: var(--bg-page);
    color: var(--text-primary);
}


/* ─────────────────────────────────────
   PAGE HERO claro · variant cuaderno
   ───────────────────────────────────── */
.contacto-hero[b-dzy3sqqhx2] {
    position: relative;
    padding: 120px 32px 80px;
    background: var(--bg-page);
    color: var(--text-primary);
    overflow: hidden;
}

.contacto-hero__inner[b-dzy3sqqhx2] {
    max-width: 1280px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

.contacto-hero__eyebrow-row[b-dzy3sqqhx2] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 24px;
}

.contacto-hero__eyebrow-bar[b-dzy3sqqhx2] {
    width: 32px;
    height: 1px;
    background: var(--color-brand-red);
}

.contacto-hero__eyebrow[b-dzy3sqqhx2] {
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--color-brand-red);
}

.contacto-hero__title[b-dzy3sqqhx2] {
    max-width: 880px;
    margin-bottom: 24px;
}

.contacto-hero__lead[b-dzy3sqqhx2] {
    max-width: 640px;
    color: var(--text-secondary);
}

@media (max-width: 768px) {
    .contacto-hero[b-dzy3sqqhx2] {
        padding: 96px 24px 64px;
    }
}


/* ─────────────────────────────────────
   Section primitive
   ───────────────────────────────────── */
.contacto-section[b-dzy3sqqhx2] {
    padding: 96px 32px;
    position: relative;
    overflow: hidden;
}

@media (max-width: 768px) {
    .contacto-section[b-dzy3sqqhx2] {
        padding: 64px 24px;
    }
}


/* ─────────────────────────────────────
   CANALES · grid 4 cards
   ───────────────────────────────────── */
.contacto-canales[b-dzy3sqqhx2] {
    background: var(--bg-page);
    padding-bottom: 48px;
}

.contacto-canales__inner[b-dzy3sqqhx2] {
    max-width: 1280px;
    margin: 0 auto;
}

.contacto-canales__grid[b-dzy3sqqhx2] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

.contacto-canal[b-dzy3sqqhx2] {
    padding: 28px;
    height: 100%;
    background: var(--bg-surface);
    display: flex;
    flex-direction: column;
}

.contacto-canal__icon[b-dzy3sqqhx2] {
    width: 40px;
    height: 40px;
    border-radius: var(--radius-sm, 6px);
    background: var(--color-brand-green-soft);
    color: var(--color-brand-green);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 18px;
}

.contacto-canal__label[b-dzy3sqqhx2] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
    margin-bottom: 8px;
}

.contacto-canal__value[b-dzy3sqqhx2] {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
}

@media (max-width: 880px) {
    .contacto-canales__grid[b-dzy3sqqhx2] {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 520px) {
    .contacto-canales__grid[b-dzy3sqqhx2] {
        grid-template-columns: 1fr;
    }
}


/* ─────────────────────────────────────
   FORM + ASIDE (mapa + whatsapp)
   ───────────────────────────────────── */
.contacto-form-section[b-dzy3sqqhx2] {
    background: var(--bg-page);
    padding-top: 32px;
}

.contacto-form-section__inner[b-dzy3sqqhx2] {
    max-width: 1280px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    gap: 48px;
    align-items: start;
}


/* ─── Form card ─── */
.contacto-form[b-dzy3sqqhx2] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl, 12px);
    padding: 40px;
    box-shadow: var(--shadow-warm-soft, 0 4px 12px rgba(28, 25, 23, 0.04));
}

.contacto-form__title[b-dzy3sqqhx2] {
    margin-top: 16px;
    margin-bottom: 32px;
}

.contacto-form__row[b-dzy3sqqhx2] {
    margin-bottom: 18px;
}

.contacto-form__row--two[b-dzy3sqqhx2] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}

.contacto-field[b-dzy3sqqhx2] {
    display: flex;
    flex-direction: column;
}

.contacto-field__label[b-dzy3sqqhx2] {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
    margin-bottom: 8px;
    display: block;
    letter-spacing: 0.04em;
}

.contacto-field__input[b-dzy3sqqhx2] {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--border-medium);
    border-radius: var(--radius-md, 8px);
    background: var(--bg-surface);
    font-family: var(--font-body);
    font-size: 15px;
    color: var(--text-primary);
    outline: none;
    transition: border-color 160ms ease, box-shadow 160ms ease;
}

.contacto-field__input:focus[b-dzy3sqqhx2] {
    border-color: var(--color-brand-green);
    box-shadow: 0 0 0 3px rgba(31, 64, 54, 0.12);
}

.contacto-field__textarea[b-dzy3sqqhx2] {
    resize: vertical;
    min-height: 110px;
    font-family: var(--font-body);
}

.contacto-form__submit[b-dzy3sqqhx2] {
    margin-top: 8px;
}

.contacto-form__note[b-dzy3sqqhx2] {
    font-size: 12px;
    color: var(--text-muted);
    margin-top: 16px;
    line-height: 1.55;
}

@media (max-width: 640px) {
    .contacto-form[b-dzy3sqqhx2] {
        padding: 28px 24px;
    }
    .contacto-form__row--two[b-dzy3sqqhx2] {
        grid-template-columns: 1fr;
        gap: 18px;
    }
}


/* ─── Aside · mapa + whatsapp ─── */
.contacto-aside[b-dzy3sqqhx2] {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.contacto-aside__map[b-dzy3sqqhx2] {
    aspect-ratio: 4 / 5;
    border-radius: var(--radius-xl, 12px);
}

.contacto-whatsapp[b-dzy3sqqhx2] {
    background: linear-gradient(135deg, var(--color-whatsapp) 0%, var(--color-whatsapp-dark) 100%);
    color: var(--bg-paper);
    padding: 24px;
    border-radius: var(--radius-lg, 8px);
    display: flex;
    align-items: center;
    gap: 18px;
    box-shadow: 0 6px 20px rgba(var(--color-whatsapp-dark-rgb), 0.22);
}

.contacto-whatsapp__icon[b-dzy3sqqhx2] {
    width: 44px;
    height: 44px;
    border-radius: 99px;
    background: rgba(var(--bg-surface-rgb), 0.18);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.contacto-whatsapp__body[b-dzy3sqqhx2] {
    display: flex;
    flex-direction: column;
}

.contacto-whatsapp__eyebrow[b-dzy3sqqhx2] {
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    font-weight: 600;
    opacity: 0.85;
    margin-bottom: 4px;
}

.contacto-whatsapp__title[b-dzy3sqqhx2] {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 8px;
}

.contacto-whatsapp__link[b-dzy3sqqhx2] {
    font-size: 13px;
    font-weight: 600;
    color: var(--bg-paper);
    text-decoration: none;
    border-bottom: 1px solid rgba(var(--bg-surface-rgb), 0.5);
    padding-bottom: 2px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    align-self: flex-start;
}

.contacto-whatsapp__link:hover[b-dzy3sqqhx2] {
    border-bottom-color: rgba(var(--bg-surface-rgb), 0.9);
}

@media (max-width: 960px) {
    .contacto-form-section__inner[b-dzy3sqqhx2] {
        grid-template-columns: 1fr;
        gap: 32px;
    }
}
/* /Pages/Public/Home.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Home page · scoped styles
   ════════════════════════════════════════════════════════════════════
   Componentes base (.btn, .card, .reveal, .eyebrow, .photo-placeholder)
   viven en wwwroot/css/app.css. Acá solo van estilos específicos del Home.
   ════════════════════════════════════════════════════════════════════ */

.home-root[b-cnl2b8ila1] {
    background: var(--bg-page);
    color: var(--text-primary);
}

/* ─────────────────────────────────────
   HERO · variant anillado
   ───────────────────────────────────── */
.home-hero[b-cnl2b8ila1] {
    position: relative;
    padding: 64px 32px 96px;
    overflow: hidden;
}

.home-hero__grid[b-cnl2b8ila1] {
    max-width: 1280px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.15fr 0.85fr;
    gap: 64px;
    align-items: center;
    position: relative;
    z-index: 1;
}

.home-hero__title[b-cnl2b8ila1] {
    margin-bottom: 28px;
}

.home-hero__word-wrap[b-cnl2b8ila1] {
    position: relative;
    display: inline-block;
}

.home-hero__word-red[b-cnl2b8ila1] {
    color: var(--color-brand-red);
    font-style: italic;
}

.home-hero__word-blue[b-cnl2b8ila1] {
    color: var(--color-brand-blue);
    font-style: italic;
}

.home-hero__word-accent[b-cnl2b8ila1] {
    position: absolute;
    left: 0;
    bottom: -8px;
}

.home-hero__lead[b-cnl2b8ila1] {
    max-width: 540px;
    margin-bottom: 36px;
}

.home-hero__ctas[b-cnl2b8ila1] {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    align-items: center;
}

.home-cred-strip[b-cnl2b8ila1] {
    margin-top: 56px;
    padding-top: 28px;
    border-top: 1px solid var(--border-soft);
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}

.home-cred-strip__num[b-cnl2b8ila1] {
    font-family: var(--font-display);
    font-size: 38px;
    font-weight: 600;
    line-height: 1;
}

.home-cred-strip__label[b-cnl2b8ila1] {
    font-size: 12px;
    color: var(--text-muted);
    margin-top: 6px;
    letter-spacing: 0.02em;
}

.home-hero__visual[b-cnl2b8ila1] {
    position: relative;
}

.home-hero__photo[b-cnl2b8ila1] {
    aspect-ratio: 3 / 4;
    border-radius: 12px;
    box-shadow: var(--shadow-warm-soft), 0 12px 32px rgba(var(--text-primary-rgb), 0.08);
    overflow: hidden;
}

.home-hero__photo-img[b-cnl2b8ila1] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.home-hero__seal[b-cnl2b8ila1] {
    position: absolute;
    top: -32px;
    right: -32px;
    filter: drop-shadow(0 12px 32px rgba(var(--color-brand-blue-rgb), 0.25));
    z-index: 2;
}

.home-hero__seal-img[b-cnl2b8ila1] {
    width: 160px;
    height: auto;
    display: block;
}

.home-hero__cred-card[b-cnl2b8ila1] {
    position: absolute;
    right: -32px;
    bottom: 32px;
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: 8px;
    padding: 16px 20px;
    box-shadow: 0 4px 12px rgba(var(--text-primary-rgb), 0.06), 0 1px 3px rgba(var(--text-primary-rgb), 0.04);
    display: flex;
    align-items: center;
    gap: 14px;
    max-width: 280px;
    z-index: 2;
}

.home-hero__cred-card-icon[b-cnl2b8ila1] {
    width: 40px;
    height: 40px;
    border-radius: 6px;
    background: var(--color-brand-gold-soft);
    color: var(--color-brand-red);
    display: flex;
    align-items: center;
    justify-content: center;
}

.home-hero__cred-card-eyebrow[b-cnl2b8ila1] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
}

.home-hero__cred-card-text[b-cnl2b8ila1] {
    font-family: var(--font-display);
    font-size: 16px;
    color: var(--text-primary);
    font-weight: 600;
}

@media (max-width: 960px) {
    .home-hero__grid[b-cnl2b8ila1] {
        grid-template-columns: 1fr;
        gap: 48px;
    }
    .home-cred-strip[b-cnl2b8ila1] {
        grid-template-columns: 1fr 1fr;
        gap: 20px;
    }
    .home-hero__cred-card[b-cnl2b8ila1] {
        right: 16px;
        bottom: 16px;
    }
    .home-hero__seal[b-cnl2b8ila1] {
        display: none;
    }
    .home-hero__seal-img[b-cnl2b8ila1] {
        width: 96px;
    }
}


/* ─────────────────────────────────────
   TICKER institucional rojo
   ───────────────────────────────────── */
.home-ticker[b-cnl2b8ila1] {
    background: var(--color-brand-red);
    color: var(--bg-paper);
    padding: 14px 0;
    border-top: 1px solid var(--color-brand-red-dark);
    border-bottom: 1px solid var(--color-brand-red-dark);
}


/* ─────────────────────────────────────
   SECTION primitive del Home
   ───────────────────────────────────── */
.home-section[b-cnl2b8ila1] {
    padding: 112px 32px;
    position: relative;
    overflow: hidden;
}

@media (max-width: 768px) {
    .home-section[b-cnl2b8ila1] {
        padding: 80px 24px;
    }
}


/* ─────────────────────────────────────
   PROPUESTA · pilares
   ───────────────────────────────────── */
.home-propuesta[b-cnl2b8ila1] {
    background: var(--bg-paper);
}

.home-propuesta__note[b-cnl2b8ila1] {
    top: 96px;
    right: 8%;
}

.home-propuesta__intro[b-cnl2b8ila1] {
    max-width: 960px;
    margin: 0 auto;
    text-align: center;
}

.home-propuesta__title[b-cnl2b8ila1] {
    margin-bottom: 24px;
    text-align: center;
}

.home-propuesta__title-em[b-cnl2b8ila1] {
    font-style: italic;
    color: var(--color-brand-red);
}

.home-propuesta__lead[b-cnl2b8ila1] {
    max-width: 680px;
    margin: 0 auto 64px;
}

.home-pillars[b-cnl2b8ila1] {
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.home-pillar[b-cnl2b8ila1] {
    padding: 36px;
    position: relative;
    overflow: hidden;
    height: 100%;
}

.home-pillar__stripe[b-cnl2b8ila1] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
}

.home-pillar__icon[b-cnl2b8ila1] {
    width: 72px;
    height: 72px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 32px;
    margin-top: 8px;
}

.home-pillar__eyebrow[b-cnl2b8ila1] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-weight: 600;
    margin-bottom: 8px;
}

.home-pillar__title[b-cnl2b8ila1] {
    font-family: var(--font-display);
    font-size: 28px;
    font-weight: 600;
    margin-bottom: 12px;
}

.home-pillar__body[b-cnl2b8ila1] {
    color: var(--text-secondary);
    font-size: 15px;
    line-height: 1.6;
}

@media (max-width: 880px) {
    .home-pillars[b-cnl2b8ila1] {
        grid-template-columns: 1fr;
    }
}


/* ─────────────────────────────────────
   NIVELES
   ───────────────────────────────────── */
.home-niveles[b-cnl2b8ila1] {
    background: var(--bg-page);
}

.home-niveles__dotgrid[b-cnl2b8ila1] {
    bottom: 40px;
    right: 0;
    width: 320px;
    height: 220px;
    opacity: 0.7;
}

.home-niveles__inner[b-cnl2b8ila1] {
    max-width: 1280px;
    margin: 0 auto;
}

.home-niveles__header[b-cnl2b8ila1] {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 24px;
    margin-bottom: 64px;
}

.home-niveles__title[b-cnl2b8ila1] {
    max-width: 720px;
}

.home-niveles__title-em[b-cnl2b8ila1] {
    font-style: italic;
}

.home-niveles__list[b-cnl2b8ila1] {
    display: grid;
    gap: 24px;
}


/* ─────────────────────────────────────
   SEDES · verde profundo
   ───────────────────────────────────── */
.home-sedes[b-cnl2b8ila1] {
    background: var(--color-brand-green);
    color: var(--bg-paper);
}

.home-sedes__pennants[b-cnl2b8ila1] {
    top: 28px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 28px;
}

.home-sedes__pennants .deco-pennant[b-cnl2b8ila1] {
    position: relative;
}

.home-sedes__inner[b-cnl2b8ila1] {
    max-width: 1280px;
    margin: 0 auto;
}

.home-sedes__title[b-cnl2b8ila1] {
    color: var(--bg-paper);
    max-width: 820px;
    margin-bottom: 64px;
}

.home-sedes__title-em[b-cnl2b8ila1] {
    font-style: italic;
    color: var(--color-brand-gold);
}

.home-sedes__grid[b-cnl2b8ila1] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.home-sede[b-cnl2b8ila1] {
    border: 1px solid rgba(var(--color-brand-gold-rgb), 0.2);
    border-radius: 8px;
    overflow: hidden;
    background: rgba(0, 0, 0, 0.12); /* overlay neutro: oscurecer foto sobre verde profundo */
    height: 100%;
}

.home-sede__photo[b-cnl2b8ila1] {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    position: relative;
}

.home-sede__photo-img[b-cnl2b8ila1] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.home-sede__body[b-cnl2b8ila1] {
    padding: 24px;
}

.home-sede__head[b-cnl2b8ila1] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 10px;
}

.home-sede__name[b-cnl2b8ila1] {
    font-family: var(--font-display);
    font-size: 24px;
    font-weight: 600;
    color: var(--bg-paper);
}

.home-sede__years[b-cnl2b8ila1] {
    color: var(--color-brand-gold);
    font-size: 13px;
    letter-spacing: 0.06em;
    font-weight: 600;
}

.home-sede__phone[b-cnl2b8ila1] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    opacity: 0.8;
    margin-bottom: 20px;
}

.home-sede__link[b-cnl2b8ila1] {
    color: var(--color-brand-gold);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.04em;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border-bottom: 1px solid rgba(var(--color-brand-gold-rgb), 0.4);
    padding-bottom: 2px;
    text-decoration: none;
}

@media (max-width: 880px) {
    .home-sedes__grid[b-cnl2b8ila1] {
        grid-template-columns: 1fr;
    }
}


/* ─────────────────────────────────────
   INTER CLUB
   ───────────────────────────────────── */
.home-interclub[b-cnl2b8ila1] {
    background: var(--bg-page);
}

.home-interclub__inner[b-cnl2b8ila1] {
    max-width: 1280px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 5fr 7fr;
    gap: 64px;
    align-items: center;
}

.home-interclub__title[b-cnl2b8ila1] {
    margin-bottom: 24px;
}

.home-interclub__title-em[b-cnl2b8ila1] {
    font-style: italic;
}

.home-interclub__lead[b-cnl2b8ila1] {
    margin-bottom: 32px;
}

.home-interclub__activities[b-cnl2b8ila1] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px 24px;
    font-size: 14px;
    color: var(--text-secondary);
}

.home-interclub__activity[b-cnl2b8ila1] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.home-interclub__dot[b-cnl2b8ila1] {
    width: 4px;
    height: 4px;
    border-radius: 99px;
    background: var(--color-brand-gold);
    flex-shrink: 0;
}

.home-interclub__photos[b-cnl2b8ila1] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 200px 200px;
    gap: 16px;
}

.home-interclub__photo[b-cnl2b8ila1] {
    border-radius: 8px;
    overflow: hidden;
    position: relative;
}

.home-interclub__photo-img[b-cnl2b8ila1] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.home-interclub__photo--lead[b-cnl2b8ila1] {
    grid-column: 1 / 2;
    grid-row: 1 / 3;
}

@media (max-width: 960px) {
    .home-interclub__inner[b-cnl2b8ila1] {
        grid-template-columns: 1fr;
    }
}


/* ─────────────────────────────────────
   UN DÍA EN SAVA · azul navy + starfield
   ───────────────────────────────────── */
.home-dia[b-cnl2b8ila1] {
    background: var(--color-brand-blue-deep);
    color: var(--bg-paper);
}

.home-dia__starfield[b-cnl2b8ila1] {
    position: absolute;
    inset: 0;
    opacity: 0.6;
    pointer-events: none;
}

.home-dia__star[b-cnl2b8ila1] {
    position: absolute;
    border-radius: 99px;
    background: var(--color-brand-gold);
}

.home-dia__sparkstar[b-cnl2b8ila1] {
    position: absolute;
    color: var(--color-brand-gold);
}

.home-dia__inner[b-cnl2b8ila1] {
    max-width: 1280px;
    margin: 0 auto;
    position: relative;
}

.home-dia__intro[b-cnl2b8ila1] {
    text-align: center;
    margin-bottom: 72px;
}

.home-dia__title[b-cnl2b8ila1] {
    color: var(--bg-paper);
    max-width: 820px;
    margin: 0 auto;
}

.home-dia__title-em[b-cnl2b8ila1] {
    font-style: italic;
    color: var(--color-brand-gold);
}

.home-dia__lead[b-cnl2b8ila1] {
    color: rgba(var(--bg-paper-rgb), 0.75);
    max-width: 560px;
    margin: 20px auto 0;
}

.home-dia__grid[b-cnl2b8ila1] {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 12px;
    position: relative;
}

.home-dia__connector[b-cnl2b8ila1] {
    position: absolute;
    top: 36px;
    left: 10%;
    right: 10%;
    height: 2px;
    background: rgba(var(--color-brand-gold-rgb), 0.25);
    border-radius: 2px;
    z-index: 0;
}

.home-dia__step[b-cnl2b8ila1] {
    position: relative;
    z-index: 1;
    text-align: center;
    padding: 0 8px;
}

.home-dia__step-icon[b-cnl2b8ila1] {
    width: 72px;
    height: 72px;
    border-radius: 99px;
    color: var(--bg-paper);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 20px;
    border: 4px solid var(--color-brand-blue-deep);
    box-shadow: 0 0 20px rgba(var(--color-brand-gold-rgb), 0.18);
    transition: transform 240ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

.home-dia__step:hover .home-dia__step-icon[b-cnl2b8ila1] {
    transform: translateY(-6px) scale(1.05);
}

.home-dia__step-time[b-cnl2b8ila1] {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 600;
    color: var(--color-brand-gold);
    margin-bottom: 6px;
}

.home-dia__step-title[b-cnl2b8ila1] {
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 600;
    color: var(--bg-paper);
    margin-bottom: 8px;
}

.home-dia__step-desc[b-cnl2b8ila1] {
    font-size: 12.5px;
    color: rgba(var(--bg-paper-rgb), 0.65);
    line-height: 1.55;
}

@media (max-width: 960px) {
    .home-dia__grid[b-cnl2b8ila1] {
        grid-template-columns: 1fr 1fr;
        gap: 32px 16px;
    }
    .home-dia__connector[b-cnl2b8ila1] {
        display: none;
    }
}

@media (max-width: 480px) {
    .home-dia__grid[b-cnl2b8ila1] {
        grid-template-columns: 1fr;
        gap: 28px;
    }
    .home-dia__step-icon[b-cnl2b8ila1] {
        width: 60px;
        height: 60px;
    }
    .home-cred-strip[b-cnl2b8ila1] {
        grid-template-columns: 1fr;
        gap: 16px;
    }
    .home-hero[b-cnl2b8ila1] {
        padding: 48px 20px 64px;
    }
    .home-quote[b-cnl2b8ila1] {
        padding: 64px 20px;
    }
}


/* ─────────────────────────────────────
   QUOTE · filosofía Inter Club
   ───────────────────────────────────── */
.home-quote[b-cnl2b8ila1] {
    background: var(--bg-paper);
    padding: 96px 32px;
}

.home-quote__inner[b-cnl2b8ila1] {
    max-width: 820px;
    margin: 0 auto;
    text-align: center;
    position: relative;
}

.home-quote__mark[b-cnl2b8ila1] {
    color: var(--color-brand-gold);
    font-family: var(--font-display);
    font-size: 80px;
    line-height: 1;
    margin-bottom: -20px;
    font-style: italic;
}

.home-quote__text[b-cnl2b8ila1] {
    font-family: var(--font-display);
    font-style: italic;
    font-size: clamp(24px, 2.4vw, 32px);
    line-height: 1.4;
    color: var(--text-primary);
}

.home-quote__cite[b-cnl2b8ila1] {
    margin-top: 32px;
    font-size: 12px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
}


/* ─────────────────────────────────────
   ADMISIONES CTA · watercolor + stickers
   ───────────────────────────────────── */
.home-cta[b-cnl2b8ila1] {
    background: var(--bg-page);
}

.home-cta__blob[b-cnl2b8ila1] {
    position: absolute;
    filter: blur(20px);
    pointer-events: none;
}

.home-cta__blob--red[b-cnl2b8ila1] {
    top: -80px;
    left: -100px;
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, rgba(var(--color-brand-red-rgb), 0.08), transparent 70%);
}

.home-cta__blob--green[b-cnl2b8ila1] {
    bottom: -80px;
    right: -100px;
    width: 500px;
    height: 400px;
    background: radial-gradient(circle, rgba(var(--color-brand-green-rgb), 0.10), transparent 70%);
}

.home-cta__sticker--1[b-cnl2b8ila1] {
    top: 56px;
    left: 9%;
}

.home-cta__sticker--2[b-cnl2b8ila1] {
    bottom: 96px;
    right: 12%;
}

.home-cta__inner[b-cnl2b8ila1] {
    max-width: 920px;
    margin: 0 auto;
    text-align: center;
    position: relative;
}

.home-cta__title[b-cnl2b8ila1] {
    margin-bottom: 24px;
    text-align: center;
}

.home-cta__title-em[b-cnl2b8ila1] {
    font-style: italic;
    color: var(--color-brand-red);
}

.home-cta__lead[b-cnl2b8ila1] {
    margin: 0 auto 40px;
    max-width: 560px;
}

.home-cta__buttons[b-cnl2b8ila1] {
    display: flex;
    gap: 16px;
    justify-content: center;
    flex-wrap: wrap;
}
/* /Pages/Public/LibroReclamaciones.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Libro de Reclamaciones · scoped styles
   ════════════════════════════════════════════════════════════════════
   Variant cuaderno · layout form + sidebar 320px
   D.S. N° 011-2011-PCM · Ley N° 29571
   ════════════════════════════════════════════════════════════════════ */

.reclamo-root[b-lk23tzuk0k] {
    background: var(--bg-page);
    color: var(--text-primary);
    min-height: 100vh;
}


/* ─────────────────────────────────────
   HERO
   ───────────────────────────────────── */
.reclamo-hero[b-lk23tzuk0k] {
    position: relative;
    padding: 80px 32px 48px;
    background: var(--bg-paper);
    border-bottom: 1px solid var(--border-soft);
    overflow: hidden;
}

.reclamo-hero__inner[b-lk23tzuk0k] {
    position: relative;
    z-index: 1;
    max-width: 1080px;
    margin: 0 auto;
}

.reclamo-hero__title[b-lk23tzuk0k] {
    margin: 8px 0 12px;
}

.reclamo-hero__meta[b-lk23tzuk0k] {
    color: var(--text-muted);
    font-size: 14px;
    margin: 0;
    max-width: 720px;
}

.reclamo-hero__meta strong[b-lk23tzuk0k] {
    color: var(--text-primary);
    font-weight: 600;
}


/* ─────────────────────────────────────
   LAYOUT · Form + Sidebar
   ───────────────────────────────────── */
.reclamo-section[b-lk23tzuk0k] {
    padding: 64px 32px 96px;
}

.reclamo-layout[b-lk23tzuk0k] {
    max-width: 1180px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 48px;
    align-items: flex-start;
}


/* ─────────────────────────────────────
   FORM CARD
   ───────────────────────────────────── */
.reclamo-form-card[b-lk23tzuk0k] {
    background: var(--bg-surface, var(--bg-paper));
    padding: 40px;
    border: 1px solid var(--border-soft);
    border-radius: 12px;
}

.reclamo-form-card__title[b-lk23tzuk0k] {
    font-family: var(--font-display);
    font-size: 28px;
    font-weight: 600;
    line-height: 1.25;
    margin: 8px 0 32px;
    color: var(--text-primary);
}


/* ─── Fieldset ─────────────────────── */
.reclamo-fieldset[b-lk23tzuk0k] {
    border: none;
    padding: 0;
    margin: 0 0 36px;
}

.reclamo-fieldset__legend[b-lk23tzuk0k] {
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-brand-red);
    margin-bottom: 18px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--border-soft);
    width: 100%;
}


/* ─── Grids ────────────────────────── */
.reclamo-grid-2[b-lk23tzuk0k] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-bottom: 16px;
}

.reclamo-grid-3[b-lk23tzuk0k] {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 16px;
    margin-bottom: 16px;
}


/* ─── Field ────────────────────────── */
.reclamo-field[b-lk23tzuk0k] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 16px;
}

.reclamo-grid-2 .reclamo-field[b-lk23tzuk0k],
.reclamo-grid-3 .reclamo-field[b-lk23tzuk0k] {
    margin-bottom: 0;
}

.reclamo-label[b-lk23tzuk0k] {
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
    letter-spacing: 0.01em;
}

.reclamo-required[b-lk23tzuk0k] {
    color: var(--color-brand-red);
}

.reclamo-help[b-lk23tzuk0k] {
    font-size: 12px;
    color: var(--text-muted);
    margin-top: 2px;
}


/* ─── Inputs ───────────────────────── */
.reclamo-input[b-lk23tzuk0k],
.reclamo-textarea[b-lk23tzuk0k] {
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 1.5;
    color: var(--text-primary);
    background: var(--bg-paper);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-sm);
    padding: 10px 12px;
    transition: border-color 160ms ease-out, box-shadow 160ms ease-out;
    width: 100%;
}

.reclamo-input:focus[b-lk23tzuk0k],
.reclamo-textarea:focus[b-lk23tzuk0k] {
    outline: none;
    border-color: var(--color-brand-green);
    box-shadow: 0 0 0 3px rgba(var(--color-brand-green-rgb), 0.12);
}

.reclamo-input:disabled[b-lk23tzuk0k] {
    background: var(--bg-page);
    color: var(--text-muted);
    cursor: not-allowed;
}

.reclamo-textarea[b-lk23tzuk0k] {
    resize: vertical;
    min-height: 80px;
}


/* ─── Input con prefijo (S/) ────────── */
.reclamo-input-prefix[b-lk23tzuk0k] {
    display: flex;
    align-items: stretch;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-sm);
    background: var(--bg-paper);
    overflow: hidden;
    transition: border-color 160ms ease-out, box-shadow 160ms ease-out;
}

.reclamo-input-prefix:focus-within[b-lk23tzuk0k] {
    border-color: var(--color-brand-green);
    box-shadow: 0 0 0 3px rgba(var(--color-brand-green-rgb), 0.12);
}

.reclamo-input-prefix__symbol[b-lk23tzuk0k] {
    display: flex;
    align-items: center;
    padding: 0 12px;
    background: var(--bg-page);
    color: var(--text-muted);
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 600;
    border-right: 1px solid var(--border-soft);
}

.reclamo-input-prefix .reclamo-input[b-lk23tzuk0k] {
    border: none;
    border-radius: 0;
}

.reclamo-input-prefix .reclamo-input:focus[b-lk23tzuk0k] {
    box-shadow: none;
}


/* ─── Radio inline (Sí/No) ──────────── */
.reclamo-radio-group[b-lk23tzuk0k] {
    display: flex;
    gap: 24px;
    margin-top: 4px;
}

.reclamo-radio[b-lk23tzuk0k] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    font-family: var(--font-body);
    font-size: 14px;
    color: var(--text-primary);
}

.reclamo-radio input[type="radio"][b-lk23tzuk0k] {
    accent-color: var(--color-brand-green);
}


/* ─── Radio cards (Reclamo / Queja) ── */
.reclamo-radio-cards[b-lk23tzuk0k] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-top: 6px;
}

.reclamo-radio-card[b-lk23tzuk0k] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 14px 16px;
    background: var(--bg-paper);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: border-color 160ms ease-out, background 160ms ease-out;
    position: relative;
}

.reclamo-radio-card input[type="radio"][b-lk23tzuk0k] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.reclamo-radio-card:hover[b-lk23tzuk0k] {
    border-color: var(--color-brand-green);
}

.reclamo-radio-card.is-active[b-lk23tzuk0k] {
    border-color: var(--color-brand-green);
    background: rgba(var(--color-brand-green-rgb), 0.04);
    box-shadow: 0 0 0 2px rgba(var(--color-brand-green-rgb), 0.12);
}

.reclamo-radio-card__title[b-lk23tzuk0k] {
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 700;
    color: var(--text-primary);
}

.reclamo-radio-card__desc[b-lk23tzuk0k] {
    font-size: 12px;
    color: var(--text-secondary);
    line-height: 1.5;
}


/* ─── Disclaimer legal ─────────────── */
.reclamo-disclaimer[b-lk23tzuk0k] {
    background: var(--color-brand-gold-soft);
    padding: 16px 18px;
    border-radius: 6px;
    border-left: 3px solid var(--color-brand-gold);
    margin: 8px 0 24px;
}

.reclamo-disclaimer__text[b-lk23tzuk0k] {
    margin: 0;
    font-family: var(--font-body);
    font-size: 13px;
    line-height: 1.6;
    color: var(--text-primary);
}


/* ─── Checkbox aceptación ──────────── */
.reclamo-checkbox[b-lk23tzuk0k] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 14px 0;
    cursor: pointer;
    font-family: var(--font-body);
    font-size: 13px;
    line-height: 1.55;
    color: var(--text-secondary);
}

.reclamo-checkbox input[type="checkbox"][b-lk23tzuk0k] {
    margin-top: 3px;
    accent-color: var(--color-brand-green);
    flex-shrink: 0;
}

.reclamo-checkbox a[b-lk23tzuk0k] {
    color: var(--color-brand-green);
    text-decoration: underline;
}


/* ─── Submit ────────────────────────── */
.reclamo-submit[b-lk23tzuk0k] {
    width: 100%;
    justify-content: center;
    margin-top: 8px;
}


/* ─── Feedback ──────────────────────── */
.reclamo-feedback[b-lk23tzuk0k] {
    margin-top: 16px;
    padding: 12px 16px;
    border-radius: var(--radius-sm);
    font-family: var(--font-body);
    font-size: 13px;
    line-height: 1.55;
}

.reclamo-feedback.is-success[b-lk23tzuk0k] {
    background: rgba(var(--color-brand-green-rgb), 0.08);
    color: var(--color-brand-green);
    border-left: 3px solid var(--color-brand-green);
}

.reclamo-feedback.is-error[b-lk23tzuk0k] {
    background: rgba(var(--color-brand-red-rgb), 0.06);
    color: var(--color-brand-red);
    border-left: 3px solid var(--color-brand-red);
}


/* ─────────────────────────────────────
   SIDEBAR
   ───────────────────────────────────── */
.reclamo-aside[b-lk23tzuk0k] {
    position: sticky;
    top: 24px;
    align-self: start;
}

.reclamo-aside__inner[b-lk23tzuk0k] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.reclamo-side-card[b-lk23tzuk0k] {
    background: var(--bg-paper);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    padding: 24px;
}

.reclamo-side-card--gold[b-lk23tzuk0k] {
    background: var(--color-brand-gold-soft);
    border-color: var(--color-brand-gold);
}

.reclamo-side-card__head-row[b-lk23tzuk0k] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
    color: var(--color-brand-gold);
}

.reclamo-side-card__eyebrow[b-lk23tzuk0k] {
    display: block;
    font-family: var(--font-body);
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--color-brand-red);
    font-weight: 600;
    margin-bottom: 8px;
}

.reclamo-side-card__eyebrow--gold[b-lk23tzuk0k] {
    color: var(--color-brand-gold);
    margin-bottom: 0;
}

.reclamo-side-card__title[b-lk23tzuk0k] {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
    line-height: 1.3;
    color: var(--text-primary);
    margin: 0 0 16px;
}

.reclamo-side-card__body[b-lk23tzuk0k] {
    margin: 0;
    font-family: var(--font-body);
    font-size: 13px;
    line-height: 1.6;
    color: var(--text-primary);
}

.reclamo-side-card__body a[b-lk23tzuk0k] {
    color: var(--color-brand-red);
    text-decoration: underline;
}


/* ─── Steps numerados ──────────────── */
.reclamo-steps[b-lk23tzuk0k] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.reclamo-step[b-lk23tzuk0k] {
    display: flex;
    gap: 12px;
    align-items: flex-start;
}

.reclamo-step__num[b-lk23tzuk0k] {
    font-family: var(--font-display);
    font-size: 13px;
    font-weight: 700;
    color: var(--color-brand-gold);
    letter-spacing: 0.04em;
    flex-shrink: 0;
    min-width: 22px;
    padding-top: 2px;
}

.reclamo-step__body[b-lk23tzuk0k] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.reclamo-step__body strong[b-lk23tzuk0k] {
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 700;
    color: var(--text-primary);
}

.reclamo-step__body span[b-lk23tzuk0k] {
    font-family: var(--font-body);
    font-size: 12.5px;
    line-height: 1.55;
    color: var(--text-secondary);
}


/* ─── Channels (teléfono, mail, etc.) ── */
.reclamo-channels[b-lk23tzuk0k] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.reclamo-channel[b-lk23tzuk0k] {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    color: var(--color-brand-green);
}

.reclamo-channel__body[b-lk23tzuk0k] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.reclamo-channel__label[b-lk23tzuk0k] {
    font-family: var(--font-body);
    font-size: 11px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
}

.reclamo-channel__value[b-lk23tzuk0k] {
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 600;
    color: var(--text-primary);
    text-decoration: none;
    transition: color 160ms ease-out;
}

.reclamo-channel__value:hover[b-lk23tzuk0k] {
    color: var(--color-brand-green);
}


/* ─────────────────────────────────────
   RESPONSIVE
   ───────────────────────────────────── */
@media (max-width: 960px) {
    .reclamo-layout[b-lk23tzuk0k] {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .reclamo-aside[b-lk23tzuk0k] {
        position: static;
    }
}

@media (max-width: 720px) {
    .reclamo-grid-2[b-lk23tzuk0k],
    .reclamo-grid-3[b-lk23tzuk0k] {
        grid-template-columns: 1fr;
    }

    .reclamo-radio-cards[b-lk23tzuk0k] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .reclamo-hero[b-lk23tzuk0k] {
        padding: 56px 20px 32px;
    }

    .reclamo-section[b-lk23tzuk0k] {
        padding: 40px 20px 72px;
    }

    .reclamo-form-card[b-lk23tzuk0k] {
        padding: 24px 20px;
    }

    .reclamo-form-card__title[b-lk23tzuk0k] {
        font-size: 22px;
    }
}

@media (max-width: 480px) {
    .reclamo-hero[b-lk23tzuk0k] {
        padding: 48px 16px 28px;
    }

    .reclamo-section[b-lk23tzuk0k] {
        padding: 32px 16px 64px;
    }

    .reclamo-form-card[b-lk23tzuk0k] {
        padding: 20px 16px;
    }

    .reclamo-side-card[b-lk23tzuk0k] {
        padding: 20px;
    }

    .reclamo-form-card__title[b-lk23tzuk0k] {
        font-size: 20px;
    }
}
/* /Pages/Public/Login.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Login page · scoped styles
   ════════════════════════════════════════════════════════════════════
   Split layout (1.1fr / 1fr) · variant cuaderno · stepper 2 pasos
   ════════════════════════════════════════════════════════════════════ */

.login-root[b-5poc0kchul] {
    min-height: 100vh;
    background: var(--bg-page);
    color: var(--text-primary);
    position: relative;
}

.login-grid[b-5poc0kchul] {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 1.1fr 1fr;
}


/* ─────────────────────────────────────
   PANEL IZQUIERDO · institucional
   ───────────────────────────────────── */
.login-left[b-5poc0kchul] {
    position: relative;
    overflow: hidden;
    padding: 48px 64px;
    background: linear-gradient(155deg, var(--color-brand-green) 0%, var(--color-brand-green-mid) 60%, var(--color-brand-earth) 100%);
    color: var(--bg-paper);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.login-left__inner[b-5poc0kchul] {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    flex: 1;
    gap: 40px;
}

.login-left__brand[b-5poc0kchul] {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    text-decoration: none;
    color: inherit;
}

.login-left__brand-mark[b-5poc0kchul] {
    display: inline-flex;
}

.login-left__brand-text[b-5poc0kchul] {
    display: flex;
    flex-direction: column;
}

.login-left__brand-name[b-5poc0kchul] {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 600;
    color: var(--bg-paper);
    line-height: 1.1;
}

.login-left__brand-sub[b-5poc0kchul] {
    font-size: 10px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: rgba(var(--bg-paper-rgb), 0.6);
    font-weight: 600;
    margin-top: 2px;
}

.login-left__copy[b-5poc0kchul] {
    max-width: 440px;
}

.login-left__eyebrow[b-5poc0kchul] {
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--color-brand-gold);
    margin-bottom: 24px;
}

.login-left__title[b-5poc0kchul] {
    color: var(--bg-paper);
    line-height: 1.05;
    margin-bottom: 24px;
    letter-spacing: -0.015em;
}

.login-left__title-em[b-5poc0kchul] {
    font-style: italic;
    color: var(--color-brand-gold);
}

.login-left__lead[b-5poc0kchul] {
    color: rgba(var(--bg-paper-rgb), 0.85);
    margin-bottom: 32px;
    max-width: 420px;
}

.login-left__features[b-5poc0kchul] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 14px;
}

.login-left__feature[b-5poc0kchul] {
    display: flex;
    align-items: center;
    gap: 14px;
    font-size: 15px;
    color: rgba(var(--bg-paper-rgb), 0.92);
}

.login-left__feature-check[b-5poc0kchul] {
    width: 22px;
    height: 22px;
    border-radius: 99px;
    background: rgba(var(--color-brand-gold-rgb), 0.18);
    color: var(--color-brand-gold);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.login-left__footer[b-5poc0kchul] {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
}

.login-left__badge[b-5poc0kchul] {
    padding: 8px 14px;
    border: 1px solid rgba(var(--color-brand-gold-rgb), 0.4);
    color: var(--color-brand-gold);
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-weight: 600;
    border-radius: 2px;
}

.login-left__legal[b-5poc0kchul] {
    font-size: 12px;
    color: rgba(var(--bg-paper-rgb), 0.5);
}


/* ─────────────────────────────────────
   PANEL DERECHO · credenciales
   ───────────────────────────────────── */
.login-right[b-5poc0kchul] {
    background: var(--bg-paper);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 48px 32px;
}

.login-card[b-5poc0kchul] {
    width: 100%;
    max-width: 440px;
}

.login-card__eyebrow[b-5poc0kchul] {
    margin-bottom: 12px;
}

.login-card__title[b-5poc0kchul] {
    font-size: 36px;
    font-weight: 600;
    margin-bottom: 28px;
}


/* ─── Stepper ────────────────────────── */
.login-stepper[b-5poc0kchul] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 32px;
}

.login-stepper__step[b-5poc0kchul] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.login-stepper__circle[b-5poc0kchul] {
    width: 22px;
    height: 22px;
    border-radius: 99px;
    background: var(--border-medium);
    color: var(--bg-paper);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 700;
    transition: background 200ms ease-out;
}

.login-stepper__circle.is-active[b-5poc0kchul] {
    background: var(--color-brand-green);
}

.login-stepper__label[b-5poc0kchul] {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-muted);
    transition: color 200ms ease-out;
}

.login-stepper__label.is-active[b-5poc0kchul] {
    color: var(--text-primary);
}

.login-stepper__bar[b-5poc0kchul] {
    flex: 1;
    height: 1px;
    background: var(--border-soft);
    transition: background 200ms ease-out;
}

.login-stepper__bar.is-active[b-5poc0kchul] {
    background: var(--color-brand-green);
}


/* ─── Alert ──────────────────────────── */
.login-alert[b-5poc0kchul] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    background: rgba(var(--color-brand-red-rgb), 0.08);
    border: 1px solid rgba(var(--color-brand-red-rgb), 0.24);
    border-radius: var(--radius-md);
    color: var(--color-brand-red);
    font-size: 13px;
    margin-bottom: 20px;
}

.login-alert__icon[b-5poc0kchul] {
    display: inline-flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
}

.login-alert__text[b-5poc0kchul] {
    flex: 1;
    line-height: 1.45;
}

.login-alert__retry[b-5poc0kchul] {
    flex-shrink: 0;
    background: var(--color-brand-red);
    color: var(--bg-paper);
    border: 0;
    padding: 6px 14px;
    border-radius: var(--radius-md);
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: background 160ms ease-out, transform 160ms ease-out;
}

.login-alert__retry:hover[b-5poc0kchul] {
    background: var(--color-brand-red-dark);
    transform: translateY(-1px);
}

.login-alert__retry:active[b-5poc0kchul] {
    transform: translateY(0);
}

.login-alert__retry:disabled[b-5poc0kchul] {
    opacity: 0.5;
    cursor: not-allowed;
    transform: none;
}

/* ─── Alert · modo demo (warning dorado) ─────── */
.login-alert.is-demo[b-5poc0kchul] {
    background: rgba(var(--color-brand-gold-rgb), 0.10);
    border-color: rgba(var(--color-brand-gold-rgb), 0.32);
    color: var(--state-warning);
}

.login-alert.is-demo .login-alert__retry[b-5poc0kchul] {
    background: var(--state-warning);
    color: var(--bg-paper);
}

.login-alert.is-demo .login-alert__retry:hover[b-5poc0kchul] {
    background: var(--state-warning);
    filter: brightness(0.9);
}


/* ─── Step container ─────────────────── */
.login-step[b-5poc0kchul] {
    animation: login-fade-in-b-5poc0kchul 240ms ease-out;
}

@keyframes login-fade-in-b-5poc0kchul {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}


/* ─── Sedes selector ─────────────────── */
.login-field-label[b-5poc0kchul] {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-secondary);
    margin-bottom: 12px;
    display: block;
}

.login-sedes[b-5poc0kchul] {
    display: grid;
    gap: 10px;
    margin-bottom: 24px;
}

.login-sedes__loading[b-5poc0kchul] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 16px 18px;
    color: var(--text-muted);
    font-size: 14px;
}

.login-sede[b-5poc0kchul] {
    text-align: left;
    padding: 16px 18px;
    border-radius: var(--radius-md);
    background: var(--bg-surface);
    border: 1px solid var(--border-medium);
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    cursor: pointer;
    transition: all 160ms ease-out;
    font-family: var(--font-body);
}

.login-sede:hover:not(.is-disabled)[b-5poc0kchul] {
    border-color: var(--color-brand-green-mid);
}

.login-sede.is-selected[b-5poc0kchul] {
    border: 2px solid var(--color-brand-green);
    padding: 15px 17px;
}

.login-sede.is-disabled[b-5poc0kchul] {
    opacity: 0.45;
    cursor: not-allowed;
}

.login-sede__left[b-5poc0kchul] {
    display: flex;
    align-items: center;
    gap: 14px;
}

.login-sede__icon[b-5poc0kchul] {
    width: 36px;
    height: 36px;
    border-radius: var(--radius-sm);
    background: var(--bg-page);
    color: var(--color-brand-green);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 160ms ease-out;
    flex-shrink: 0;
}

.login-sede__icon.is-selected[b-5poc0kchul] {
    background: var(--color-brand-green);
    color: var(--color-brand-gold);
}

.login-sede__text[b-5poc0kchul] {
    display: flex;
    flex-direction: column;
}

.login-sede__name[b-5poc0kchul] {
    font-size: 15px;
    font-weight: 600;
    color: var(--text-primary);
}

.login-sede__desc[b-5poc0kchul] {
    font-size: 12px;
    color: var(--text-muted);
    margin-top: 2px;
}

.login-sede__check[b-5poc0kchul] {
    color: var(--color-brand-green);
    display: inline-flex;
}


/* ─── Banner sede (paso 2) ───────────── */
.login-sede-banner[b-5poc0kchul] {
    padding: 10px 14px;
    background: var(--color-brand-green-soft);
    border-radius: var(--radius-md);
    margin-bottom: 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 13px;
    flex-wrap: wrap;
    gap: 8px;
}

.login-sede-banner__left[b-5poc0kchul] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.login-sede-banner__label[b-5poc0kchul] {
    color: var(--text-secondary);
}

.login-sede-banner__name[b-5poc0kchul] {
    color: var(--color-brand-green);
    font-weight: 700;
}

.login-sede-banner__change[b-5poc0kchul] {
    background: transparent;
    border: none;
    color: var(--color-brand-green);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    font-family: var(--font-body);
}

.login-sede-banner__change:hover[b-5poc0kchul] {
    text-decoration: underline;
}


/* ─── Form inputs ────────────────────── */
.login-form[b-5poc0kchul] {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.login-field[b-5poc0kchul] {
    display: flex;
    flex-direction: column;
}

.login-field .login-field-label[b-5poc0kchul] {
    margin-bottom: 8px;
}

.login-input[b-5poc0kchul] {
    position: relative;
}

.login-input__icon[b-5poc0kchul] {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--text-muted);
    display: inline-flex;
    pointer-events: none;
}

.login-input__field[b-5poc0kchul] {
    width: 100%;
    padding: 12px 14px 12px 42px;
    border: 1px solid var(--border-medium);
    border-radius: var(--radius-md);
    background: var(--bg-surface);
    font-family: var(--font-body);
    font-size: 15px;
    color: var(--text-primary);
    transition: all 160ms ease-out;
}

.login-input__field.has-toggle[b-5poc0kchul] {
    padding-right: 44px;
}

.login-input__field:focus[b-5poc0kchul] {
    outline: none;
    border-color: var(--color-brand-green);
    box-shadow: var(--shadow-focus);
}

.login-input__field[b-5poc0kchul]::placeholder {
    color: var(--text-disabled);
}

.login-input__toggle[b-5poc0kchul] {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    background: transparent;
    border: none;
    color: var(--text-muted);
    cursor: pointer;
    padding: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.login-input__toggle:hover[b-5poc0kchul] {
    color: var(--text-primary);
}


/* ─── Forgot link ────────────────────── */
.login-forgot[b-5poc0kchul] {
    text-align: right;
    margin-top: -4px;
    margin-bottom: 8px;
}

.login-forgot__link[b-5poc0kchul] {
    font-size: 13px;
    color: var(--color-brand-green);
    font-weight: 600;
    text-decoration: none;
}

.login-forgot__link:hover[b-5poc0kchul] {
    text-decoration: underline;
}


/* ─── CTA ────────────────────────────── */
.login-cta[b-5poc0kchul] {
    width: 100%;
    padding: 14px;
    font-size: 15px;
    margin-top: 4px;
    justify-content: center;
}

.login-cta:disabled[b-5poc0kchul] {
    opacity: 0.45;
    cursor: not-allowed;
    transform: none;
}


/* ─── Spinner ────────────────────────── */
.login-spinner[b-5poc0kchul] {
    display: inline-block;
    width: 14px;
    height: 14px;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 99px;
    animation: login-spin-b-5poc0kchul 720ms linear infinite;
}

@keyframes login-spin-b-5poc0kchul {
    to { transform: rotate(360deg); }
}


/* ─── Card footer ────────────────────── */
.login-card__footer[b-5poc0kchul] {
    margin-top: 36px;
    padding-top: 24px;
    border-top: 1px solid var(--border-soft);
    display: flex;
    justify-content: space-between;
    font-size: 13px;
}

.login-card__back[b-5poc0kchul],
.login-card__terms[b-5poc0kchul] {
    color: var(--text-muted);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: color 160ms ease-out;
}

.login-card__back:hover[b-5poc0kchul],
.login-card__terms:hover[b-5poc0kchul] {
    color: var(--text-primary);
}


/* ─────────────────────────────────────
   RESPONSIVE
   ───────────────────────────────────── */

/* Tablet horizontal + desktop chico — padding compacto para que no se vea apretado */
@media (max-width: 1100px) and (min-width: 961px) {
    .login-left[b-5poc0kchul] {
        padding: 40px 40px;
    }
    .login-right[b-5poc0kchul] {
        padding: 40px 28px;
    }
    .login-left__title[b-5poc0kchul] {
        font-size: clamp(36px, 4.4vw, 48px);
    }
}

@media (max-width: 960px) {
    .login-grid[b-5poc0kchul] {
        grid-template-columns: 1fr;
    }

    .login-left[b-5poc0kchul] {
        padding: 40px 32px;
        min-height: 360px;
    }

    .login-left__title[b-5poc0kchul] {
        font-size: clamp(32px, 6vw, 44px);
    }
}

@media (max-width: 560px) {
    .login-left[b-5poc0kchul] {
        padding: 32px 24px;
        min-height: 280px;
    }

    .login-left__features[b-5poc0kchul] {
        display: none;
    }

    .login-right[b-5poc0kchul] {
        padding: 32px 20px;
    }

    .login-card__title[b-5poc0kchul] {
        font-size: 28px;
    }
}
/* /Pages/Public/Niveles.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Niveles page · scoped styles
   ════════════════════════════════════════════════════════════════════
   Componentes base (.btn, .card, .reveal, .eyebrow, .section-eyebrow)
   viven en wwwroot/css/app.css y personality.css.
   ════════════════════════════════════════════════════════════════════ */

.niveles-root[b-a3uu1qz26x] {
    background: var(--bg-page);
    color: var(--text-primary);
}

/* ─────────────────────────────────────
   PAGE HERO · claro · cuadriculado
   ───────────────────────────────────── */
.niveles-hero[b-a3uu1qz26x] {
    position: relative;
    padding: 120px 32px 80px;
    background: var(--bg-page);
    color: var(--text-primary);
    overflow: hidden;
}

.niveles-hero__inner[b-a3uu1qz26x] {
    max-width: 1280px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

.niveles-hero__eyebrow-row[b-a3uu1qz26x] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 24px;
}

.niveles-hero__eyebrow-bar[b-a3uu1qz26x] {
    width: 32px;
    height: 1px;
    background: var(--color-brand-red);
}

.niveles-hero__eyebrow[b-a3uu1qz26x] {
    font-size: 12px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--color-brand-red);
}

.niveles-hero__title[b-a3uu1qz26x] {
    max-width: 880px;
    margin-bottom: 24px;
}

.niveles-hero__lead[b-a3uu1qz26x] {
    max-width: 640px;
    color: var(--text-secondary);
}


/* ─────────────────────────────────────
   SECTION primitive
   ───────────────────────────────────── */
.niveles-section[b-a3uu1qz26x] {
    padding: 96px 32px;
    position: relative;
    overflow: hidden;
}

@media (max-width: 768px) {
    .niveles-section[b-a3uu1qz26x] {
        padding: 64px 24px;
    }
    .niveles-hero[b-a3uu1qz26x] {
        padding: 80px 24px 56px;
    }
}


/* ─────────────────────────────────────
   PILARES METODOLÓGICOS
   ───────────────────────────────────── */
.niveles-pilares[b-a3uu1qz26x] {
    background: var(--bg-paper);
}

.niveles-pilares__inner[b-a3uu1qz26x] {
    max-width: 1180px;
    margin: 0 auto;
}

.niveles-pilares__title[b-a3uu1qz26x] {
    max-width: 720px;
    margin-top: 16px;
    margin-bottom: 48px;
}

.niveles-pilares__grid[b-a3uu1qz26x] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

.niveles-pilar[b-a3uu1qz26x] {
    padding: 24px;
    position: relative;
    overflow: hidden;
    height: 100%;
}

.niveles-pilar__stripe[b-a3uu1qz26x] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
}

.niveles-pilar__eyebrow[b-a3uu1qz26x] {
    font-family: var(--font-display);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.08em;
    margin-top: 6px;
    margin-bottom: 28px;
}

.niveles-pilar__title[b-a3uu1qz26x] {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 600;
    margin-bottom: 10px;
    color: var(--text-primary);
}

.niveles-pilar__body[b-a3uu1qz26x] {
    font-size: 14px;
    color: var(--text-secondary);
    line-height: 1.55;
}

@media (max-width: 960px) {
    .niveles-pilares__grid[b-a3uu1qz26x] {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 560px) {
    .niveles-pilares__grid[b-a3uu1qz26x] {
        grid-template-columns: 1fr;
    }
}


/* ─────────────────────────────────────
   NIVELES DETALLE · 3 bloques alternados
   ───────────────────────────────────── */
.niveles-detalle[b-a3uu1qz26x] {
    background: var(--bg-page);
}

.niveles-detalle__inner[b-a3uu1qz26x] {
    max-width: 1280px;
    margin: 0 auto;
    display: grid;
    gap: 24px;
}


/* ─────────────────────────────────────
   PLAN CURRICULAR · tabla
   ───────────────────────────────────── */
.niveles-plan[b-a3uu1qz26x] {
    background: var(--bg-paper);
}

.niveles-plan__inner[b-a3uu1qz26x] {
    max-width: 1180px;
    margin: 0 auto;
}

.niveles-plan__title[b-a3uu1qz26x] {
    margin-top: 16px;
    margin-bottom: 32px;
}

.niveles-plan__table-wrap[b-a3uu1qz26x] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: 8px;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
}

@media (max-width: 640px) {
    .niveles-plan__table[b-a3uu1qz26x] {
        min-width: 480px;
    }
}

.niveles-plan__table[b-a3uu1qz26x] {
    width: 100%;
    border-collapse: collapse;
}

.niveles-plan__th[b-a3uu1qz26x] {
    padding: 16px 20px;
    text-align: left;
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--text-secondary);
    background: var(--bg-page);
}

.niveles-plan__th--center[b-a3uu1qz26x] {
    text-align: center;
}

.niveles-plan__tr[b-a3uu1qz26x] {
    border-top: 1px solid var(--border-soft);
}

.niveles-plan__td[b-a3uu1qz26x] {
    padding: 14px 20px;
    text-align: left;
    font-size: 14px;
    color: var(--text-primary);
    vertical-align: middle;
}

.niveles-plan__td--center[b-a3uu1qz26x] {
    text-align: center;
}

.niveles-plan__dash[b-a3uu1qz26x] {
    color: var(--text-disabled);
}

@media (max-width: 640px) {
    .niveles-plan__th[b-a3uu1qz26x],
    .niveles-plan__td[b-a3uu1qz26x] {
        padding: 12px 10px;
        font-size: 12px;
    }
}


/* ─────────────────────────────────────
   CTA FINAL
   ───────────────────────────────────── */
.niveles-cta[b-a3uu1qz26x] {
    background: var(--bg-page);
    text-align: center;
}

.niveles-cta__inner[b-a3uu1qz26x] {
    max-width: 720px;
    margin: 0 auto;
}

.niveles-cta__title[b-a3uu1qz26x] {
    margin-bottom: 16px;
    text-align: center;
}

.niveles-cta__lead[b-a3uu1qz26x] {
    margin: 0 auto 32px;
    max-width: 520px;
    color: var(--text-secondary);
}

.niveles-cta__buttons[b-a3uu1qz26x] {
    display: flex;
    gap: 16px;
    justify-content: center;
    flex-wrap: wrap;
}
/* /Pages/Public/Nosotros.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Nosotros · scoped styles
   ════════════════════════════════════════════════════════════════════
   Componentes base (.btn, .card, .photo-placeholder, .eyebrow) viven en
   wwwroot/css/app.css. Acá solo van estilos específicos de Nosotros.
   ════════════════════════════════════════════════════════════════════ */

.nosotros-root[b-itp7s2slma] {
    background: var(--bg-page);
    color: var(--text-primary);
}


/* ─────────────────────────────────────
   PAGE HERO · verde profundo
   ───────────────────────────────────── */
.nosotros-hero[b-itp7s2slma] {
    position: relative;
    padding: 120px 32px 80px;
    background: var(--color-brand-green);
    color: var(--bg-paper);
    overflow: hidden;
}

.nosotros-hero__bg[b-itp7s2slma] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
    opacity: 0.50;
}

.nosotros-hero__veil[b-itp7s2slma] {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background: linear-gradient(180deg,
        rgba(var(--color-brand-green-rgb), 0.45) 0%,
        rgba(var(--color-brand-green-rgb), 0.85) 100%);
}

.nosotros-hero__overlay[b-itp7s2slma] {
    position: absolute;
    inset: 0;
    z-index: 0;
    opacity: 0.18;
    pointer-events: none;
    background:
        linear-gradient(180deg, transparent 30%, var(--color-brand-green) 100%),
        repeating-linear-gradient(135deg, rgba(var(--bg-surface-rgb), 0.04) 0 2px, transparent 2px 14px);
}

.nosotros-hero__inner[b-itp7s2slma] {
    max-width: 1280px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

.nosotros-hero__eyebrow-row[b-itp7s2slma] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 24px;
}

.nosotros-hero__eyebrow-bar[b-itp7s2slma] {
    width: 32px;
    height: 1px;
    background: var(--color-brand-gold);
}

.nosotros-hero__eyebrow[b-itp7s2slma] {
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--color-brand-gold);
}

.nosotros-hero__title[b-itp7s2slma] {
    max-width: 880px;
    margin-bottom: 24px;
    color: var(--bg-paper);
}

.nosotros-hero__lead[b-itp7s2slma] {
    max-width: 640px;
    color: rgba(var(--bg-paper-rgb), 0.85);
}


/* ─────────────────────────────────────
   Section primitive
   ───────────────────────────────────── */
.nosotros-section[b-itp7s2slma] {
    padding: 112px 32px;
    position: relative;
    overflow: hidden;
}

@media (max-width: 768px) {
    .nosotros-section[b-itp7s2slma] {
        padding: 80px 24px;
    }
    .nosotros-hero[b-itp7s2slma] {
        padding: 96px 24px 64px;
    }
}


/* ─────────────────────────────────────
   HISTORIA · timeline + editorial
   ───────────────────────────────────── */
.nosotros-historia[b-itp7s2slma] {
    background: var(--bg-page);
}

.nosotros-historia__grid[b-itp7s2slma] {
    max-width: 1180px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1.6fr;
    gap: 80px;
    align-items: start;
}

.nosotros-historia__title[b-itp7s2slma] {
    margin-bottom: 32px;
}

.nosotros-timeline[b-itp7s2slma] {
    position: relative;
    padding-left: 24px;
}

.nosotros-timeline__line[b-itp7s2slma] {
    position: absolute;
    left: 5px;
    top: 6px;
    bottom: 6px;
    width: 1px;
    background: var(--border-medium);
}

.nosotros-timeline__item[b-itp7s2slma] {
    position: relative;
    margin-bottom: 24px;
}

.nosotros-timeline__item:last-child[b-itp7s2slma] {
    margin-bottom: 0;
}

.nosotros-timeline__dot[b-itp7s2slma] {
    position: absolute;
    left: -24px;
    top: 6px;
    width: 11px;
    height: 11px;
    border-radius: 99px;
    background: var(--bg-page);
    border: 2px solid var(--color-brand-green);
}

.nosotros-timeline__dot.is-gold[b-itp7s2slma] {
    background: var(--color-brand-gold);
    border-color: var(--color-brand-gold);
    box-shadow: 0 0 0 4px rgba(var(--color-brand-gold-rgb), 0.18);
}

.nosotros-timeline__year[b-itp7s2slma] {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
    color: var(--color-brand-green);
}

.nosotros-timeline__label[b-itp7s2slma] {
    font-size: 14px;
    color: var(--text-secondary);
    margin-top: 4px;
    line-height: 1.5;
}

.nosotros-historia__editorial[b-itp7s2slma] {
    color: var(--text-secondary);
}

.nosotros-historia__lead[b-itp7s2slma] {
    font-family: var(--font-display);
    font-size: 22px;
    line-height: 1.55;
    margin-bottom: 24px;
    color: var(--text-primary);
}

.nosotros-historia__dropcap[b-itp7s2slma] {
    font-family: var(--font-display);
    font-size: 64px;
    float: left;
    line-height: 0.9;
    margin-right: 12px;
    margin-top: 8px;
    color: var(--color-brand-red);
    font-weight: 600;
}

.nosotros-historia__para[b-itp7s2slma] {
    font-family: var(--font-body);
    font-size: 18px;
    line-height: 1.6;
    margin-bottom: 20px;
}

.nosotros-historia__para:last-child[b-itp7s2slma] {
    margin-bottom: 0;
}

@media (max-width: 960px) {
    .nosotros-historia__grid[b-itp7s2slma] {
        grid-template-columns: 1fr;
        gap: 48px;
    }
}


/* ─────────────────────────────────────
   MISIÓN · VISIÓN · VALORES
   ───────────────────────────────────── */
.nosotros-mvv[b-itp7s2slma] {
    background: var(--bg-paper);
}

.nosotros-mvv__inner[b-itp7s2slma] {
    max-width: 1280px;
    margin: 0 auto;
}

.nosotros-mvv__intro[b-itp7s2slma] {
    text-align: center;
    margin-bottom: 64px;
}

.nosotros-mvv__title[b-itp7s2slma] {
    text-align: center;
    margin-top: 16px;
}

.nosotros-mvv__grid[b-itp7s2slma] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.nosotros-mvv__card[b-itp7s2slma] {
    padding: 36px;
    background: var(--bg-surface);
    height: 100%;
    position: relative;
    overflow: hidden;
}

.nosotros-mvv__stripe[b-itp7s2slma] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
}

.nosotros-mvv__icon[b-itp7s2slma] {
    margin-bottom: 24px;
    margin-top: 8px;
    display: inline-flex;
}

.nosotros-mvv__heading[b-itp7s2slma] {
    font-family: var(--font-display);
    font-size: 28px;
    font-weight: 600;
    margin-bottom: 16px;
    color: var(--text-primary);
}

.nosotros-mvv__body[b-itp7s2slma] {
    color: var(--text-secondary);
    font-size: 15px;
    line-height: 1.6;
}

.nosotros-mvv__values[b-itp7s2slma] {
    display: grid;
    gap: 12px;
}

.nosotros-mvv__value-row[b-itp7s2slma] {
    display: flex;
    align-items: baseline;
    gap: 12px;
}

.nosotros-mvv__value-num[b-itp7s2slma] {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
}

.nosotros-mvv__value-text[b-itp7s2slma] {
    font-family: var(--font-display);
    font-style: italic;
    font-size: 22px;
    color: var(--text-primary);
}

@media (max-width: 880px) {
    .nosotros-mvv__grid[b-itp7s2slma] {
        grid-template-columns: 1fr;
    }
}


/* ─────────────────────────────────────
   EQUIPO DIRECTIVO
   ───────────────────────────────────── */
.nosotros-equipo[b-itp7s2slma] {
    background: var(--bg-page);
}

.nosotros-equipo__inner[b-itp7s2slma] {
    max-width: 1280px;
    margin: 0 auto;
}

.nosotros-equipo__title[b-itp7s2slma] {
    margin-top: 16px;
    margin-bottom: 48px;
}

.nosotros-equipo__grid[b-itp7s2slma] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}

.nosotros-equipo__card[b-itp7s2slma] {
    display: flex;
    flex-direction: column;
}

.nosotros-equipo__photo[b-itp7s2slma] {
    aspect-ratio: 3 / 4;
    border-radius: var(--radius-lg, 12px);
    margin-bottom: 16px;
}

.nosotros-equipo__name[b-itp7s2slma] {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 4px;
    color: var(--text-primary);
}

.nosotros-equipo__role[b-itp7s2slma] {
    font-size: 13px;
    color: var(--text-muted);
    letter-spacing: 0.02em;
}

@media (max-width: 960px) {
    .nosotros-equipo__grid[b-itp7s2slma] {
        grid-template-columns: 1fr 1fr;
    }
}


/* ─────────────────────────────────────
   RECONOCIMIENTO · ribbon verde fino
   ───────────────────────────────────── */
.nosotros-ribbon[b-itp7s2slma] {
    padding: 48px 32px;
    background: var(--color-brand-green);
    color: var(--bg-paper);
}

.nosotros-ribbon__inner[b-itp7s2slma] {
    max-width: 1280px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 24px;
}

.nosotros-ribbon__eyebrow[b-itp7s2slma] {
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--color-brand-gold);
    font-weight: 600;
}

.nosotros-ribbon__data[b-itp7s2slma] {
    display: flex;
    gap: 32px;
    flex-wrap: wrap;
    font-size: 14px;
    align-items: center;
}

.nosotros-ribbon__sep[b-itp7s2slma] {
    opacity: 0.4;
}

@media (max-width: 768px) {
    .nosotros-ribbon__data[b-itp7s2slma] {
        gap: 12px;
        font-size: 13px;
    }
}

@media (max-width: 480px) {
    .nosotros-hero[b-itp7s2slma] {
        padding: 72px 20px 48px;
    }
    .nosotros-section[b-itp7s2slma] {
        padding: 64px 20px;
    }
    .nosotros-equipo__grid[b-itp7s2slma] {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    .nosotros-historia__dropcap[b-itp7s2slma] {
        font-size: 48px;
    }
    .nosotros-historia__lead[b-itp7s2slma] {
        font-size: 19px;
    }
    .nosotros-historia__para[b-itp7s2slma] {
        font-size: 16px;
    }
    .nosotros-mvv__card[b-itp7s2slma] {
        padding: 28px 24px;
    }
}
/* /Pages/Public/NotFound.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · NotFound (404) · scoped styles
   ════════════════════════════════════════════════════════════════════
   Variant pegatinas · fullscreen centrado · gradient text en "404"
   ════════════════════════════════════════════════════════════════════ */

.nf-root[b-0fis3ea9cn] {
    background: var(--bg-page);
    color: var(--text-primary);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.nf-hero[b-0fis3ea9cn] {
    position: relative;
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 96px 32px;
    overflow: hidden;
}

.nf-content[b-0fis3ea9cn] {
    position: relative;
    z-index: 1;
    text-align: center;
    max-width: 560px;
    margin: 0 auto;
}

.nf-icon[b-0fis3ea9cn] {
    display: inline-flex;
    margin-bottom: 24px;
    color: var(--color-brand-gold);
}

.nf-number[b-0fis3ea9cn] {
    font-family: var(--font-display);
    font-size: clamp(96px, 14vw, 160px);
    font-weight: 600;
    line-height: 1;
    margin-bottom: 14px;
    background: linear-gradient(135deg, var(--color-brand-red), var(--color-brand-gold), var(--color-brand-blue));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    letter-spacing: -0.02em;
}

.nf-title[b-0fis3ea9cn] {
    font-size: clamp(28px, 4vw, 36px);
    font-weight: 600;
    margin-bottom: 16px;
    color: var(--text-primary);
}

.nf-desc[b-0fis3ea9cn] {
    margin-bottom: 32px;
    color: var(--text-secondary);
    max-width: 480px;
    margin-left: auto;
    margin-right: auto;
}

.nf-actions[b-0fis3ea9cn] {
    display: flex;
    gap: 12px;
    justify-content: center;
    flex-wrap: wrap;
}

.nf-btn[b-0fis3ea9cn] {
    justify-content: center;
}


/* ─────────────────────────────────────
   RESPONSIVE
   ───────────────────────────────────── */
@media (max-width: 768px) {
    .nf-hero[b-0fis3ea9cn] {
        padding: 80px 24px;
    }
}

@media (max-width: 560px) {
    .nf-hero[b-0fis3ea9cn] {
        padding: 64px 20px;
    }

    .nf-actions[b-0fis3ea9cn] {
        flex-direction: column;
        align-items: stretch;
    }

    .nf-btn[b-0fis3ea9cn] {
        width: 100%;
    }
}

@media (max-width: 480px) {
    .nf-hero[b-0fis3ea9cn] {
        padding: 56px 16px;
    }

    .nf-icon[b-0fis3ea9cn] {
        margin-bottom: 16px;
    }

    .nf-number[b-0fis3ea9cn] {
        margin-bottom: 10px;
    }

    .nf-desc[b-0fis3ea9cn] {
        margin-bottom: 24px;
        font-size: 15px;
    }
}
/* /Pages/Public/PoliticaCookies.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Política de Cookies · scoped styles
   ════════════════════════════════════════════════════════════════════
   Variant cuaderno · layout editorial · sidebar TOC + serif body
   ════════════════════════════════════════════════════════════════════ */

.cookies-root[b-re3y61cf6j] {
    background: var(--bg-page);
    color: var(--text-primary);
    min-height: 100vh;
}


/* ─────────────────────────────────────
   HERO
   ───────────────────────────────────── */
.cookies-hero[b-re3y61cf6j] {
    position: relative;
    padding: 80px 32px 48px;
    background: var(--bg-paper);
    border-bottom: 1px solid var(--border-soft);
    overflow: hidden;
}

.cookies-hero__inner[b-re3y61cf6j] {
    position: relative;
    z-index: 1;
    max-width: 1080px;
    margin: 0 auto;
}

.cookies-hero__title[b-re3y61cf6j] {
    margin: 8px 0 12px;
}

.cookies-hero__meta[b-re3y61cf6j] {
    color: var(--text-muted);
    font-size: 14px;
    margin: 0;
}


/* ─────────────────────────────────────
   LAYOUT editorial
   ───────────────────────────────────── */
.cookies-section[b-re3y61cf6j] {
    padding: 64px 32px 96px;
}

.cookies-layout[b-re3y61cf6j] {
    max-width: 1080px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 64px;
    align-items: flex-start;
}


/* ─── Sidebar TOC ─────────────────── */
.cookies-toc[b-re3y61cf6j] {
    position: sticky;
    top: 96px;
    align-self: start;
}

.cookies-toc__inner[b-re3y61cf6j] {
    padding: 24px;
    background: var(--bg-paper);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
}

.cookies-toc__eyebrow[b-re3y61cf6j] {
    display: block;
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--color-brand-red);
    font-weight: 600;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--border-soft);
}

.cookies-toc__list[b-re3y61cf6j] {
    list-style: decimal;
    padding-left: 20px;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.cookies-toc__list li[b-re3y61cf6j] {
    font-size: 13px;
    color: var(--text-secondary);
    padding-left: 4px;
}

.cookies-toc__list li[b-re3y61cf6j]::marker {
    color: var(--color-brand-gold);
    font-weight: 600;
}

.cookies-toc__link[b-re3y61cf6j] {
    color: var(--text-secondary);
    text-decoration: none;
    line-height: 1.5;
    transition: color 160ms ease-out;
    display: inline-block;
    padding: 2px 0;
}

.cookies-toc__link:hover[b-re3y61cf6j] {
    color: var(--color-brand-green);
}


/* ─── Body editorial ─────────────────── */
.cookies-body[b-re3y61cf6j] {
    max-width: 720px;
    font-family: var(--font-display);
    color: var(--text-primary);
}

.cookies-block[b-re3y61cf6j] {
    margin-bottom: 56px;
    scroll-margin-top: 96px;
}

.cookies-block__title[b-re3y61cf6j] {
    font-family: var(--font-display);
    font-size: 28px;
    font-weight: 600;
    line-height: 1.25;
    margin: 0 0 20px;
    color: var(--text-primary);
    padding-bottom: 12px;
    border-bottom: 1px solid var(--border-soft);
}

.cookies-block__sub[b-re3y61cf6j] {
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 700;
    color: var(--color-brand-green);
    margin: 24px 0 10px;
    letter-spacing: 0.01em;
}

.cookies-block p[b-re3y61cf6j] {
    font-family: var(--font-display);
    font-size: 17px;
    line-height: 1.7;
    color: var(--text-secondary);
    margin: 0 0 14px;
}

.cookies-block strong[b-re3y61cf6j] {
    color: var(--text-primary);
    font-weight: 600;
}

.cookies-block ul[b-re3y61cf6j] {
    font-family: var(--font-display);
    font-size: 17px;
    line-height: 1.7;
    color: var(--text-secondary);
    margin: 0 0 18px;
    padding-left: 22px;
}

.cookies-block ul li[b-re3y61cf6j] {
    margin-bottom: 6px;
}

.cookies-block ul li[b-re3y61cf6j]::marker {
    color: var(--color-brand-gold);
}

.cookies-block a[b-re3y61cf6j] {
    color: var(--color-brand-green);
    text-decoration: underline;
}


/* ─── Tabla técnica de cookies ──────── */
.cookies-table-wrap[b-re3y61cf6j] {
    overflow-x: auto;
    margin: 12px 0 24px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-sm);
    background: var(--bg-paper);
}

.cookies-table[b-re3y61cf6j] {
    width: 100%;
    border-collapse: collapse;
    font-family: var(--font-body);
    font-size: 13.5px;
    color: var(--text-primary);
}

.cookies-table thead[b-re3y61cf6j] {
    background: rgba(var(--color-brand-green-rgb), 0.04);
}

.cookies-table th[b-re3y61cf6j] {
    text-align: left;
    font-weight: 700;
    font-size: 11px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--color-brand-red);
    padding: 12px 14px;
    border-bottom: 1px solid var(--border-soft);
}

.cookies-table td[b-re3y61cf6j] {
    padding: 12px 14px;
    border-bottom: 1px solid var(--border-soft);
    line-height: 1.55;
    color: var(--text-secondary);
    vertical-align: top;
}

.cookies-table tr:last-child td[b-re3y61cf6j] {
    border-bottom: none;
}

.cookies-table .tabular[b-re3y61cf6j] {
    font-variant-numeric: tabular-nums;
    color: var(--text-primary);
    font-weight: 500;
}


/* ─── Callout (neutro) ───────────────── */
.cookies-callout[b-re3y61cf6j] {
    background: var(--bg-paper);
    border-left: 3px solid var(--color-brand-green);
    border-radius: var(--radius-sm);
    padding: 18px 22px;
    margin: 16px 0 22px;
}

.cookies-callout p[b-re3y61cf6j] {
    margin: 0 0 6px;
    font-size: 16px;
    color: var(--text-primary);
}

.cookies-callout p:last-child[b-re3y61cf6j] {
    margin-bottom: 0;
}


/* ─── Nota importante (amarilla) ─────── */
.cookies-note[b-re3y61cf6j] {
    background: var(--color-brand-gold-soft);
    border-left: 4px solid var(--color-brand-gold);
    border-radius: var(--radius-sm);
    padding: 16px 20px;
    margin: 20px 0;
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 1.6;
    color: var(--text-primary);
}

.cookies-note strong[b-re3y61cf6j] {
    color: var(--color-brand-red);
}


/* ─── Footer del documento ──────────── */
.cookies-accept[b-re3y61cf6j] {
    margin-top: 64px;
    padding-top: 32px;
    border-top: 1px solid var(--border-soft);
    display: flex;
    justify-content: flex-end;
}

.cookies-accept__btn[b-re3y61cf6j] {
    justify-content: center;
}


/* ─────────────────────────────────────
   RESPONSIVE
   ───────────────────────────────────── */
@media (max-width: 960px) {
    .cookies-layout[b-re3y61cf6j] {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .cookies-toc[b-re3y61cf6j] {
        display: none;
    }
}

@media (max-width: 768px) {
    .cookies-hero[b-re3y61cf6j] {
        padding: 64px 24px 40px;
    }

    .cookies-section[b-re3y61cf6j] {
        padding: 48px 24px 80px;
    }

    .cookies-block[b-re3y61cf6j] {
        margin-bottom: 48px;
    }

    .cookies-table-wrap[b-re3y61cf6j] {
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
    }

    .cookies-table[b-re3y61cf6j] {
        min-width: 520px;
    }
}

@media (max-width: 640px) {
    .cookies-hero[b-re3y61cf6j] {
        padding: 56px 20px 32px;
    }

    .cookies-section[b-re3y61cf6j] {
        padding: 40px 20px 72px;
    }

    .cookies-block[b-re3y61cf6j] {
        margin-bottom: 40px;
    }

    .cookies-block__title[b-re3y61cf6j] {
        font-size: 24px;
    }

    .cookies-block p[b-re3y61cf6j],
    .cookies-block ul[b-re3y61cf6j] {
        font-size: 16px;
    }

    .cookies-table[b-re3y61cf6j] {
        font-size: 12.5px;
    }

    .cookies-table th[b-re3y61cf6j],
    .cookies-table td[b-re3y61cf6j] {
        padding: 10px 12px;
    }

    .cookies-accept[b-re3y61cf6j] {
        justify-content: center;
    }

    .cookies-accept__btn[b-re3y61cf6j] {
        width: 100%;
    }
}

@media (max-width: 480px) {
    .cookies-hero[b-re3y61cf6j] {
        padding: 40px 16px 24px;
    }

    .cookies-section[b-re3y61cf6j] {
        padding: 28px 16px 56px;
    }

    .cookies-block[b-re3y61cf6j] {
        margin-bottom: 32px;
    }

    .cookies-block__title[b-re3y61cf6j] {
        font-size: 20px;
    }

    .cookies-block p[b-re3y61cf6j],
    .cookies-block ul[b-re3y61cf6j] {
        font-size: 15px;
        line-height: 1.65;
    }

    .cookies-table[b-re3y61cf6j] {
        min-width: 480px;
        font-size: 12px;
    }

    .cookies-table th[b-re3y61cf6j],
    .cookies-table td[b-re3y61cf6j] {
        padding: 8px 10px;
    }
}
/* /Pages/Public/PoliticaPrivacidad.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Política de Privacidad · scoped styles
   ════════════════════════════════════════════════════════════════════
   Variant cuaderno · layout editorial · sidebar TOC + serif body
   ════════════════════════════════════════════════════════════════════ */

.privacy-root[b-vi1lbo92v2] {
    background: var(--bg-page);
    color: var(--text-primary);
    min-height: 100vh;
}


/* ─────────────────────────────────────
   HERO
   ───────────────────────────────────── */
.privacy-hero[b-vi1lbo92v2] {
    padding: 80px 32px 48px;
    background: var(--bg-paper);
    border-bottom: 1px solid var(--border-soft);
}

.privacy-hero__inner[b-vi1lbo92v2] {
    max-width: 1080px;
    margin: 0 auto;
}

.privacy-hero__title[b-vi1lbo92v2] {
    margin: 8px 0 12px;
}

.privacy-hero__meta[b-vi1lbo92v2] {
    color: var(--text-muted);
    font-size: 14px;
    margin: 0;
}


/* ─────────────────────────────────────
   LAYOUT editorial
   ───────────────────────────────────── */
.privacy-section[b-vi1lbo92v2] {
    padding: 64px 32px 96px;
}

.privacy-layout[b-vi1lbo92v2] {
    max-width: 1080px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 64px;
    align-items: flex-start;
}


/* ─── Sidebar TOC ─────────────────── */
.privacy-toc[b-vi1lbo92v2] {
    position: sticky;
    top: 96px;
    align-self: start;
}

.privacy-toc__inner[b-vi1lbo92v2] {
    padding: 24px;
    background: var(--bg-paper);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
}

.privacy-toc__eyebrow[b-vi1lbo92v2] {
    display: block;
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--color-brand-red);
    font-weight: 600;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--border-soft);
}

.privacy-toc__list[b-vi1lbo92v2] {
    list-style: decimal;
    padding-left: 20px;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.privacy-toc__list li[b-vi1lbo92v2] {
    font-size: 13px;
    color: var(--text-secondary);
    padding-left: 4px;
}

.privacy-toc__list li[b-vi1lbo92v2]::marker {
    color: var(--color-brand-gold);
    font-weight: 600;
}

.privacy-toc__link[b-vi1lbo92v2] {
    color: var(--text-secondary);
    text-decoration: none;
    line-height: 1.5;
    transition: color 160ms ease-out;
    display: inline-block;
    padding: 2px 0;
}

.privacy-toc__link:hover[b-vi1lbo92v2] {
    color: var(--color-brand-green);
}


/* ─── Body editorial ─────────────────── */
.privacy-body[b-vi1lbo92v2] {
    max-width: 720px;
    font-family: var(--font-display);
    color: var(--text-primary);
}

.privacy-block[b-vi1lbo92v2] {
    margin-bottom: 56px;
    scroll-margin-top: 96px;
}

.privacy-block__title[b-vi1lbo92v2] {
    font-family: var(--font-display);
    font-size: 28px;
    font-weight: 600;
    line-height: 1.25;
    margin: 0 0 20px;
    color: var(--text-primary);
    padding-bottom: 12px;
    border-bottom: 1px solid var(--border-soft);
}

.privacy-block__sub[b-vi1lbo92v2] {
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 700;
    color: var(--color-brand-green);
    margin: 24px 0 10px;
    letter-spacing: 0.01em;
}

.privacy-block p[b-vi1lbo92v2] {
    font-family: var(--font-display);
    font-size: 17px;
    line-height: 1.7;
    color: var(--text-secondary);
    margin: 0 0 14px;
}

.privacy-block strong[b-vi1lbo92v2] {
    color: var(--text-primary);
    font-weight: 600;
}

.privacy-block ul[b-vi1lbo92v2] {
    font-family: var(--font-display);
    font-size: 17px;
    line-height: 1.7;
    color: var(--text-secondary);
    margin: 0 0 18px;
    padding-left: 22px;
}

.privacy-block ul li[b-vi1lbo92v2] {
    margin-bottom: 6px;
}

.privacy-block ul li[b-vi1lbo92v2]::marker {
    color: var(--color-brand-gold);
}


/* ─── Callout (neutro) ───────────────── */
.privacy-callout[b-vi1lbo92v2] {
    background: var(--bg-paper);
    border-left: 3px solid var(--color-brand-green);
    border-radius: var(--radius-sm);
    padding: 18px 22px;
    margin: 16px 0 22px;
}

.privacy-callout p[b-vi1lbo92v2] {
    margin: 0 0 6px;
    font-size: 16px;
    color: var(--text-primary);
}

.privacy-callout p:last-child[b-vi1lbo92v2] {
    margin-bottom: 0;
}


/* ─── Nota importante (amarilla) ─────── */
.privacy-note[b-vi1lbo92v2] {
    background: var(--color-brand-gold-soft);
    border-left: 4px solid var(--color-brand-gold);
    border-radius: var(--radius-sm);
    padding: 16px 20px;
    margin: 20px 0;
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 1.6;
    color: var(--text-primary);
}

.privacy-note strong[b-vi1lbo92v2] {
    color: var(--color-brand-red);
}


/* ─── Footer del documento ──────────── */
.privacy-accept[b-vi1lbo92v2] {
    margin-top: 64px;
    padding-top: 32px;
    border-top: 1px solid var(--border-soft);
    display: flex;
    justify-content: flex-end;
}

.privacy-accept__btn[b-vi1lbo92v2] {
    justify-content: center;
}


/* ─────────────────────────────────────
   RESPONSIVE
   ───────────────────────────────────── */
@media (max-width: 960px) {
    .privacy-layout[b-vi1lbo92v2] {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .privacy-toc[b-vi1lbo92v2] {
        display: none;
    }
}

@media (max-width: 768px) {
    .privacy-hero[b-vi1lbo92v2] {
        padding: 64px 24px 40px;
    }

    .privacy-section[b-vi1lbo92v2] {
        padding: 48px 24px 80px;
    }

    .privacy-body[b-vi1lbo92v2] {
        max-width: 100%;
    }

    .privacy-block[b-vi1lbo92v2] {
        margin-bottom: 48px;
    }

    .privacy-block__title[b-vi1lbo92v2] {
        font-size: 26px;
    }
}

@media (max-width: 640px) {
    .privacy-hero[b-vi1lbo92v2] {
        padding: 56px 20px 32px;
    }

    .privacy-section[b-vi1lbo92v2] {
        padding: 40px 20px 72px;
    }

    .privacy-block[b-vi1lbo92v2] {
        margin-bottom: 40px;
    }

    .privacy-block__title[b-vi1lbo92v2] {
        font-size: 24px;
    }

    .privacy-block p[b-vi1lbo92v2],
    .privacy-block ul[b-vi1lbo92v2] {
        font-size: 16px;
    }

    .privacy-accept[b-vi1lbo92v2] {
        justify-content: center;
    }

    .privacy-accept__btn[b-vi1lbo92v2] {
        width: 100%;
    }
}

@media (max-width: 480px) {
    .privacy-hero[b-vi1lbo92v2] {
        padding: 48px 16px 28px;
    }

    .privacy-hero__title[b-vi1lbo92v2] {
        font-size: clamp(28px, 8vw, 36px);
    }

    .privacy-section[b-vi1lbo92v2] {
        padding: 32px 16px 56px;
    }

    .privacy-block[b-vi1lbo92v2] {
        margin-bottom: 32px;
    }

    .privacy-block__title[b-vi1lbo92v2] {
        font-size: 22px;
        margin-bottom: 16px;
    }

    .privacy-block p[b-vi1lbo92v2],
    .privacy-block ul[b-vi1lbo92v2] {
        font-size: 15px;
        line-height: 1.65;
    }

    .privacy-callout[b-vi1lbo92v2] {
        padding: 14px 16px;
    }

    .privacy-callout p[b-vi1lbo92v2] {
        font-size: 15px;
    }

    .privacy-note[b-vi1lbo92v2] {
        padding: 14px 16px;
    }
}
/* /Pages/Public/Sedes.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Sedes page · scoped styles
   ════════════════════════════════════════════════════════════════════
   Componentes base (.btn, .card, .reveal, .photo-placeholder)
   viven en wwwroot/css/app.css y personality.css.
   ════════════════════════════════════════════════════════════════════ */

.sedes-root[b-m1mmf6tvep] {
    background: var(--bg-page);
    color: var(--text-primary);
}


/* ─────────────────────────────────────
   PAGE HERO · verde profundo · banderines
   ───────────────────────────────────── */
.sedes-hero[b-m1mmf6tvep] {
    position: relative;
    padding: 120px 32px 80px;
    background: var(--color-brand-green);
    color: var(--bg-paper);
    overflow: hidden;
}

.sedes-hero__bg[b-m1mmf6tvep] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
    opacity: 0.45;
}

.sedes-hero__veil[b-m1mmf6tvep] {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background: linear-gradient(180deg,
        rgba(var(--color-brand-green-rgb), 0.55) 0%,
        rgba(var(--color-brand-green-rgb), 0.88) 100%);
}

.sedes-hero__overlay[b-m1mmf6tvep] {
    position: absolute;
    inset: 0;
    z-index: 0;
    opacity: 0.18;
    pointer-events: none;
    background:
        linear-gradient(180deg, transparent 30%, var(--color-brand-green) 100%),
        repeating-linear-gradient(135deg, rgba(var(--bg-surface-rgb), 0.04) 0 2px, transparent 2px 14px);
}

.sedes-hero__inner[b-m1mmf6tvep] {
    max-width: 1280px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

.sedes-hero__eyebrow-row[b-m1mmf6tvep] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 24px;
}

.sedes-hero__eyebrow-bar[b-m1mmf6tvep] {
    width: 32px;
    height: 1px;
    background: var(--color-brand-gold);
}

.sedes-hero__eyebrow[b-m1mmf6tvep] {
    font-size: 12px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--color-brand-gold);
}

.sedes-hero__title[b-m1mmf6tvep] {
    max-width: 880px;
    margin-bottom: 24px;
    color: var(--bg-paper);
}

.sedes-hero__lead[b-m1mmf6tvep] {
    max-width: 640px;
    color: rgba(var(--bg-paper-rgb), 0.85);
}


/* ─────────────────────────────────────
   SECTION primitive
   ───────────────────────────────────── */
.sedes-section[b-m1mmf6tvep] {
    padding: 96px 32px;
    position: relative;
    overflow: hidden;
}

@media (max-width: 768px) {
    .sedes-section[b-m1mmf6tvep] {
        padding: 64px 24px;
    }
    .sedes-hero[b-m1mmf6tvep] {
        padding: 80px 24px 56px;
    }
}


/* ─────────────────────────────────────
   MAPA VRAEM section
   ───────────────────────────────────── */
.sedes-mapa-section[b-m1mmf6tvep] {
    background: var(--bg-page);
}

.sedes-mapa-section__inner[b-m1mmf6tvep] {
    max-width: 1280px;
    margin: 0 auto;
}


/* ─────────────────────────────────────
   SEDES CARDS section · grid 3 cols
   ───────────────────────────────────── */
.sedes-cards-section[b-m1mmf6tvep] {
    background: var(--bg-page);
    padding-top: 0;
}

.sedes-cards-section__inner[b-m1mmf6tvep] {
    max-width: 1280px;
    margin: 0 auto;
}

.sedes-cards__grid[b-m1mmf6tvep] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.sedes-card[b-m1mmf6tvep] {
    padding: 0;
    overflow: hidden;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.sedes-card__photo[b-m1mmf6tvep] {
    aspect-ratio: 4 / 3;
    border-radius: 0;
    overflow: hidden;
    position: relative;
}

.sedes-card__photo-img[b-m1mmf6tvep] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.sedes-card__body[b-m1mmf6tvep] {
    padding: 28px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.sedes-card__head[b-m1mmf6tvep] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.sedes-card__name[b-m1mmf6tvep] {
    font-family: var(--font-display);
    font-size: 26px;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.15;
}

.sedes-card__years[b-m1mmf6tvep] {
    font-size: 12px;
    color: var(--color-brand-gold);
    letter-spacing: 0.06em;
    font-weight: 600;
    white-space: nowrap;
}

.sedes-card__desc[b-m1mmf6tvep] {
    font-size: 14px;
    color: var(--text-secondary);
    line-height: 1.55;
    margin-bottom: 20px;
}

.sedes-card__info[b-m1mmf6tvep] {
    display: grid;
    gap: 10px;
    font-size: 13px;
    color: var(--text-secondary);
    margin-bottom: 20px;
}

.sedes-card__info-row[b-m1mmf6tvep] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    line-height: 1.45;
}

.sedes-card__info-icon[b-m1mmf6tvep] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    height: 18px;
}

.sedes-card__actions[b-m1mmf6tvep] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: auto;
}

.sedes-card__btn-wa[b-m1mmf6tvep] {
    flex: 1;
    padding: 10px 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

@media (max-width: 960px) {
    .sedes-cards__grid[b-m1mmf6tvep] {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 640px) {
    .sedes-cards__grid[b-m1mmf6tvep] {
        grid-template-columns: 1fr;
    }
    .sedes-card__body[b-m1mmf6tvep] {
        padding: 22px;
    }
}

@media (max-width: 480px) {
    .sedes-hero[b-m1mmf6tvep] {
        padding: 72px 20px 48px;
    }
    .sedes-section[b-m1mmf6tvep] {
        padding: 56px 20px;
    }
    .sedes-card__body[b-m1mmf6tvep] {
        padding: 18px;
    }
    .sedes-card__name[b-m1mmf6tvep] {
        font-size: 22px;
    }
    .sedes-card__head[b-m1mmf6tvep] {
        flex-direction: column;
        align-items: flex-start;
        gap: 4px;
    }
}
/* /Pages/Public/TerminosCondiciones.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Términos y Condiciones · scoped styles
   ════════════════════════════════════════════════════════════════════
   Variant cuaderno · layout editorial · sidebar TOC + serif body
   ════════════════════════════════════════════════════════════════════ */

.terms-root[b-1tjbt99gxt] {
    background: var(--bg-page);
    color: var(--text-primary);
    min-height: 100vh;
}


/* ─────────────────────────────────────
   HERO
   ───────────────────────────────────── */
.terms-hero[b-1tjbt99gxt] {
    padding: 80px 32px 48px;
    background: var(--bg-paper);
    border-bottom: 1px solid var(--border-soft);
}

.terms-hero__inner[b-1tjbt99gxt] {
    max-width: 1080px;
    margin: 0 auto;
}

.terms-hero__title[b-1tjbt99gxt] {
    margin: 8px 0 12px;
}

.terms-hero__meta[b-1tjbt99gxt] {
    color: var(--text-muted);
    font-size: 14px;
    margin: 0;
}


/* ─────────────────────────────────────
   LAYOUT editorial
   ───────────────────────────────────── */
.terms-section[b-1tjbt99gxt] {
    padding: 64px 32px 96px;
}

.terms-layout[b-1tjbt99gxt] {
    max-width: 1080px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 64px;
    align-items: flex-start;
}


/* ─── Sidebar TOC ─────────────────── */
.terms-toc[b-1tjbt99gxt] {
    position: sticky;
    top: 96px;
    align-self: start;
}

.terms-toc__inner[b-1tjbt99gxt] {
    padding: 24px;
    background: var(--bg-paper);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
}

.terms-toc__eyebrow[b-1tjbt99gxt] {
    display: block;
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--color-brand-red);
    font-weight: 600;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--border-soft);
}

.terms-toc__list[b-1tjbt99gxt] {
    list-style: decimal;
    padding-left: 20px;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.terms-toc__list li[b-1tjbt99gxt] {
    font-size: 13px;
    color: var(--text-secondary);
    padding-left: 4px;
}

.terms-toc__list li[b-1tjbt99gxt]::marker {
    color: var(--color-brand-gold);
    font-weight: 600;
}

.terms-toc__link[b-1tjbt99gxt] {
    color: var(--text-secondary);
    text-decoration: none;
    line-height: 1.5;
    transition: color 160ms ease-out;
    display: inline-block;
    padding: 2px 0;
}

.terms-toc__link:hover[b-1tjbt99gxt] {
    color: var(--color-brand-green);
}


/* ─── Body editorial ─────────────────── */
.terms-body[b-1tjbt99gxt] {
    max-width: 720px;
    font-family: var(--font-display);
    color: var(--text-primary);
}

.terms-block[b-1tjbt99gxt] {
    margin-bottom: 56px;
    scroll-margin-top: 96px;
}

.terms-block__title[b-1tjbt99gxt] {
    font-family: var(--font-display);
    font-size: 28px;
    font-weight: 600;
    line-height: 1.25;
    margin: 0 0 20px;
    color: var(--text-primary);
    padding-bottom: 12px;
    border-bottom: 1px solid var(--border-soft);
}

.terms-block__sub[b-1tjbt99gxt] {
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 700;
    color: var(--color-brand-green);
    margin: 24px 0 10px;
    letter-spacing: 0.01em;
}

.terms-block p[b-1tjbt99gxt] {
    font-family: var(--font-display);
    font-size: 17px;
    line-height: 1.7;
    color: var(--text-secondary);
    margin: 0 0 14px;
}

.terms-block strong[b-1tjbt99gxt] {
    color: var(--text-primary);
    font-weight: 600;
}

.terms-block ul[b-1tjbt99gxt] {
    font-family: var(--font-display);
    font-size: 17px;
    line-height: 1.7;
    color: var(--text-secondary);
    margin: 0 0 18px;
    padding-left: 22px;
}

.terms-block ul li[b-1tjbt99gxt] {
    margin-bottom: 6px;
}

.terms-block ul li[b-1tjbt99gxt]::marker {
    color: var(--color-brand-gold);
}


/* ─── Callout (neutro) ───────────────── */
.terms-callout[b-1tjbt99gxt] {
    background: var(--bg-paper);
    border-left: 3px solid var(--color-brand-green);
    border-radius: var(--radius-sm);
    padding: 18px 22px;
    margin: 16px 0 22px;
}

.terms-callout p[b-1tjbt99gxt] {
    margin: 0 0 6px;
    font-size: 16px;
    color: var(--text-primary);
}

.terms-callout p:last-child[b-1tjbt99gxt] {
    margin-bottom: 0;
}


/* ─── Nota importante (amarilla) ─────── */
.terms-note[b-1tjbt99gxt] {
    background: var(--color-brand-gold-soft);
    border-left: 4px solid var(--color-brand-gold);
    border-radius: var(--radius-sm);
    padding: 16px 20px;
    margin: 20px 0;
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 1.6;
    color: var(--text-primary);
}

.terms-note strong[b-1tjbt99gxt] {
    color: var(--color-brand-red);
}


/* ─── Botón aceptar ──────────────────── */
.terms-accept[b-1tjbt99gxt] {
    margin-top: 64px;
    padding-top: 32px;
    border-top: 1px solid var(--border-soft);
    display: flex;
    justify-content: flex-end;
}

.terms-accept__btn[b-1tjbt99gxt] {
    justify-content: center;
}


/* ─────────────────────────────────────
   RESPONSIVE
   ───────────────────────────────────── */
@media (max-width: 960px) {
    .terms-layout[b-1tjbt99gxt] {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .terms-toc[b-1tjbt99gxt] {
        display: none;
    }
}

@media (max-width: 768px) {
    .terms-hero[b-1tjbt99gxt] {
        padding: 64px 24px 40px;
    }

    .terms-section[b-1tjbt99gxt] {
        padding: 48px 24px 80px;
    }

    .terms-body[b-1tjbt99gxt] {
        max-width: 100%;
    }

    .terms-block[b-1tjbt99gxt] {
        margin-bottom: 48px;
    }

    .terms-block__title[b-1tjbt99gxt] {
        font-size: 26px;
    }
}

@media (max-width: 640px) {
    .terms-hero[b-1tjbt99gxt] {
        padding: 56px 20px 32px;
    }

    .terms-section[b-1tjbt99gxt] {
        padding: 40px 20px 72px;
    }

    .terms-block[b-1tjbt99gxt] {
        margin-bottom: 40px;
    }

    .terms-block__title[b-1tjbt99gxt] {
        font-size: 24px;
    }

    .terms-block p[b-1tjbt99gxt],
    .terms-block ul[b-1tjbt99gxt] {
        font-size: 16px;
    }

    .terms-accept[b-1tjbt99gxt] {
        justify-content: center;
    }

    .terms-accept__btn[b-1tjbt99gxt] {
        width: 100%;
    }
}

@media (max-width: 480px) {
    .terms-hero[b-1tjbt99gxt] {
        padding: 48px 16px 28px;
    }

    .terms-hero__title[b-1tjbt99gxt] {
        font-size: clamp(28px, 8vw, 36px);
    }

    .terms-section[b-1tjbt99gxt] {
        padding: 32px 16px 56px;
    }

    .terms-block[b-1tjbt99gxt] {
        margin-bottom: 32px;
    }

    .terms-block__title[b-1tjbt99gxt] {
        font-size: 22px;
        margin-bottom: 16px;
    }

    .terms-block p[b-1tjbt99gxt],
    .terms-block ul[b-1tjbt99gxt] {
        font-size: 15px;
        line-height: 1.65;
    }

    .terms-callout[b-1tjbt99gxt] {
        padding: 14px 16px;
    }

    .terms-callout p[b-1tjbt99gxt] {
        font-size: 15px;
    }

    .terms-note[b-1tjbt99gxt] {
        padding: 14px 16px;
    }
}
/* /Pages/Public/VidaEstudiantil.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · Vida Estudiantil page · scoped styles
   ════════════════════════════════════════════════════════════════════
   Componentes base (.btn, .card, .reveal, .photo-placeholder, .h1,
   .display-2, .body-lg, .tabular, .lift-on-hover, .wiggle-host,
   .float-y, .bob, .twinkle) viven en wwwroot/css/app.css.
   ════════════════════════════════════════════════════════════════════ */

.vida-root[b-f5vi41m6r2] {
    background: var(--bg-page);
    color: var(--text-primary);
}


/* ─────────────────────────────────────
   HERO asimétrico · banderines + collage
   ───────────────────────────────────────────── */
.vida-hero[b-f5vi41m6r2] {
    position: relative;
    padding: 100px 32px 64px;
    overflow: hidden;
    background: var(--bg-page);
}

.vida-hero__grid[b-f5vi41m6r2] {
    max-width: 1280px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    align-items: center;
    position: relative;
    z-index: 1;
}

.vida-hero__title[b-f5vi41m6r2] {
    margin-bottom: 24px;
    font-family: var(--font-display);
}

.vida-hero__word-em[b-f5vi41m6r2] {
    font-style: italic;
    color: var(--color-brand-red);
}

.vida-hero__lead[b-f5vi41m6r2] {
    margin-bottom: 36px;
    max-width: 480px;
}

.vida-hero__ctas[b-f5vi41m6r2] {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    align-items: center;
}


/* Collage floating photos */
.vida-hero__collage[b-f5vi41m6r2] {
    position: relative;
    aspect-ratio: 1 / 1;
}

.vida-hero__photo[b-f5vi41m6r2] {
    position: absolute;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: var(--shadow-warm-soft), 0 12px 32px rgba(var(--text-primary-rgb), 0.08);
}

.vida-hero__photo-img[b-f5vi41m6r2] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.vida-hero__photo--1[b-f5vi41m6r2] {
    top: 0;
    left: 10%;
    width: 55%;
    aspect-ratio: 3 / 4;
    animation-delay: 0s;
}

.vida-hero__photo--2[b-f5vi41m6r2] {
    top: 20%;
    right: 0;
    width: 50%;
    aspect-ratio: 4 / 3;
    animation-delay: 1.5s;
}

.vida-hero__photo--3[b-f5vi41m6r2] {
    bottom: 0;
    left: 0;
    width: 45%;
    aspect-ratio: 4 / 3;
    animation-delay: 2.8s;
}

.vida-hero__badge[b-f5vi41m6r2] {
    position: absolute;
    bottom: 8%;
    right: 8%;
    width: 90px;
    height: 90px;
    border-radius: 99px;
    background: var(--color-brand-gold);
    color: var(--color-brand-green);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-shadow: 0 12px 32px rgba(var(--color-brand-gold-rgb), 0.4);
    font-family: var(--font-display);
    text-align: center;
    z-index: 2;
}

.vida-hero__badge-line[b-f5vi41m6r2] {
    font-size: 11px;
    letter-spacing: 0.16em;
    font-weight: 700;
    line-height: 1.1;
}

.vida-hero__badge-year[b-f5vi41m6r2] {
    font-size: 22px;
    font-weight: 700;
    margin-top: 2px;
    line-height: 1;
}

@media (max-width: 960px) {
    .vida-hero__grid[b-f5vi41m6r2] {
        grid-template-columns: 1fr;
        gap: 48px;
    }
    .vida-hero__collage[b-f5vi41m6r2] {
        max-width: 480px;
        margin: 0 auto;
    }
}

@media (max-width: 768px) {
    .vida-hero[b-f5vi41m6r2] {
        padding: 72px 24px 48px;
    }
}

@media (max-width: 480px) {
    .vida-hero[b-f5vi41m6r2] {
        padding: 56px 20px 40px;
    }
    .vida-hero__collage[b-f5vi41m6r2] {
        max-width: 320px;
        aspect-ratio: 1 / 1.05;
    }
    .vida-hero__badge[b-f5vi41m6r2] {
        width: 72px;
        height: 72px;
    }
    .vida-hero__badge-year[b-f5vi41m6r2] {
        font-size: 18px;
    }
    .vida-hero__badge-line[b-f5vi41m6r2] {
        font-size: 9px;
    }
}


/* ─────────────────────────────────────
   SECTION primitive
   ───────────────────────────────────── */
.vida-section[b-f5vi41m6r2] {
    padding: 112px 32px;
    position: relative;
    overflow: hidden;
}

@media (max-width: 768px) {
    .vida-section[b-f5vi41m6r2] {
        padding: 80px 24px;
    }
}


/* ─────────────────────────────────────
   INTER CLUB · azul deep + starfield
   ───────────────────────────────────── */
.vida-interclub[b-f5vi41m6r2] {
    background: var(--color-brand-blue-deep);
    color: var(--bg-paper);
}

.vida-interclub__starfield[b-f5vi41m6r2] {
    position: absolute;
    inset: 0;
    opacity: 0.5;
    pointer-events: none;
}

.vida-interclub__star[b-f5vi41m6r2] {
    position: absolute;
    border-radius: 99px;
    background: var(--color-brand-gold);
}

.vida-interclub__inner[b-f5vi41m6r2] {
    max-width: 1280px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    align-items: center;
    position: relative;
    z-index: 1;
}

.vida-interclub__photo[b-f5vi41m6r2] {
    aspect-ratio: 4 / 5;
    border-radius: 12px;
    overflow: hidden;
    position: relative;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18); /* overlay neutro: sombra sobre fondo azul deep */
}

.vida-interclub__photo-img[b-f5vi41m6r2] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.vida-interclub__title[b-f5vi41m6r2] {
    color: var(--bg-paper);
    margin-bottom: 24px;
}

.vida-interclub__title-em[b-f5vi41m6r2] {
    font-style: italic;
    color: var(--color-brand-gold);
}

.vida-interclub__lead[b-f5vi41m6r2] {
    color: rgba(var(--bg-paper-rgb), 0.85);
    margin-bottom: 32px;
}

.vida-interclub__quote[b-f5vi41m6r2] {
    padding: 20px 24px;
    background: rgba(var(--color-brand-gold-rgb), 0.08);
    border: 1px solid rgba(var(--color-brand-gold-rgb), 0.3);
    border-radius: 8px;
}

.vida-interclub__quote-text[b-f5vi41m6r2] {
    font-family: var(--font-display);
    font-style: italic;
    font-size: 18px;
    line-height: 1.5;
    color: var(--bg-paper);
    margin: 0;
}

.vida-interclub__quote-cite[b-f5vi41m6r2] {
    font-family: var(--font-body);
    font-style: normal;
    font-size: 11px;
    letter-spacing: 0.16em;
    color: var(--color-brand-gold);
    font-weight: 600;
    margin-top: 14px;
    text-transform: uppercase;
}

@media (max-width: 960px) {
    .vida-interclub__inner[b-f5vi41m6r2] {
        grid-template-columns: 1fr;
        gap: 48px;
    }
}


/* ─────────────────────────────────────
   ACTIVIDADES · 4 cols / 8 cards
   ───────────────────────────────────── */
.vida-activities__inner[b-f5vi41m6r2] {
    max-width: 1280px;
    margin: 0 auto;
}

.vida-activities__header[b-f5vi41m6r2] {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 48px;
}

.vida-activities__title[b-f5vi41m6r2] {
    max-width: 720px;
}

.vida-activities__title-em[b-f5vi41m6r2] {
    font-style: italic;
}

.vida-activities__grid[b-f5vi41m6r2] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

.vida-act[b-f5vi41m6r2] {
    padding: 24px;
    height: 100%;
    position: relative;
    overflow: hidden;
}

.vida-act__stripe[b-f5vi41m6r2] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
}

.vida-act__icon[b-f5vi41m6r2] {
    width: 44px;
    height: 44px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 18px;
    margin-top: 8px;
}

.vida-act__cat[b-f5vi41m6r2] {
    font-size: 10px;
    letter-spacing: 0.14em;
    font-weight: 600;
    margin-bottom: 6px;
    text-transform: uppercase;
}

.vida-act__title[b-f5vi41m6r2] {
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 600;
    margin-bottom: 8px;
    color: var(--text-primary);
}

.vida-act__body[b-f5vi41m6r2] {
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.55;
}

@media (max-width: 1100px) {
    .vida-activities__grid[b-f5vi41m6r2] {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 600px) {
    .vida-activities__grid[b-f5vi41m6r2] {
        grid-template-columns: 1fr;
    }
}


/* ─────────────────────────────────────
   GALERÍA · grid masonry
   ───────────────────────────────────── */
.vida-gallery[b-f5vi41m6r2] {
    background: var(--bg-paper);
}

.vida-gallery__inner[b-f5vi41m6r2] {
    max-width: 1280px;
    margin: 0 auto;
}

.vida-gallery__title[b-f5vi41m6r2] {
    margin-bottom: 48px;
}

.vida-gallery__title-em[b-f5vi41m6r2] {
    font-style: italic;
}

.vida-gallery__grid[b-f5vi41m6r2] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: 200px;
    gap: 12px;
}

.vida-gallery__tile[b-f5vi41m6r2] {
    border-radius: 6px;
    height: 100%;
    overflow: hidden;
    position: relative;
}

.vida-gallery__tile-img[b-f5vi41m6r2] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s ease;
}

.vida-gallery__tile:hover .vida-gallery__tile-img[b-f5vi41m6r2] {
    transform: scale(1.04);
}

.vida-gallery__tile-tag[b-f5vi41m6r2] {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 28px 14px 12px;
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--bg-paper);
    background: linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, 0.75) 100%);
    pointer-events: none;
    z-index: 1;
}

.vida-gallery__tile--span1to3[b-f5vi41m6r2] {
    grid-row: span 2;
    grid-column: 1 / 3;
}

.vida-gallery__tile--span2to3[b-f5vi41m6r2] {
    grid-row: span 2;
    grid-column: 2 / 3;
}

@media (max-width: 880px) {
    .vida-gallery__grid[b-f5vi41m6r2] {
        grid-template-columns: 1fr 1fr;
    }
    .vida-gallery__tile--span1to3[b-f5vi41m6r2],
    .vida-gallery__tile--span2to3[b-f5vi41m6r2] {
        grid-column: auto;
        grid-row: auto;
    }
}


/* ─────────────────────────────────────
   CTA final
   ───────────────────────────────────── */
.vida-cta__inner[b-f5vi41m6r2] {
    max-width: 920px;
    margin: 0 auto;
    text-align: center;
}

.vida-cta__title[b-f5vi41m6r2] {
    margin-bottom: 16px;
}

.vida-cta__lead[b-f5vi41m6r2] {
    margin: 0 auto 32px;
    max-width: 560px;
}
/* /Shared/Sava/AdminBadge.razor.rz.scp.css */
.admin-badge[b-ulr2uu8kk2] {
    font-size: 11px;
    padding: 4px 10px;
    border-radius: 99px;
    font-weight: 600;
    letter-spacing: 0.02em;
    display: inline-block;
    white-space: nowrap;
}
/* /Shared/Sava/AdminPageHeader.razor.rz.scp.css */
.admin-page-header[b-yml1ubl9me] {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 28px;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--border-soft);
    flex-wrap: wrap;
    gap: 16px;
    position: relative;
}

.admin-page-header__deco[b-yml1ubl9me] {
    position: absolute;
    pointer-events: none;
}

.admin-page-header__deco--1[b-yml1ubl9me] {
    top: -8px;
    left: -16px;
}

.admin-page-header__deco--2[b-yml1ubl9me] {
    top: 4px;
    left: 220px;
}

.admin-page-header__main[b-yml1ubl9me] {
    flex: 1;
    min-width: 0;
}

.admin-page-header__eyebrow[b-yml1ubl9me] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}

.admin-page-header__bar[b-yml1ubl9me] {
    width: 24px;
    height: 1px;
    background: var(--color-brand-red);
}

.admin-page-header__eyebrow-label[b-yml1ubl9me] {
    font-family: var(--font-body);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-brand-red);
}

.admin-page-header__title[b-yml1ubl9me] {
    font-family: var(--font-display);
    font-size: 32px;
    font-weight: 600;
    letter-spacing: -0.01em;
    margin: 0;
}

.admin-page-header__actions[b-yml1ubl9me] {
    display: flex;
    gap: 10px;
    align-items: center;
}
/* /Shared/Sava/BrandLockup.razor.rz.scp.css */
.sava-lockup[b-1i1uzx06fm] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.sava-lockup__name[b-1i1uzx06fm] {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 20px;
    letter-spacing: 0.01em;
}

.sava-lockup__sub[b-1i1uzx06fm] {
    font-family: var(--font-body);
    font-size: 9.5px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    margin-top: 2px;
    font-weight: 600;
}
/* /Shared/Sava/DashboardBarChart.razor.rz.scp.css */
/* ════════════════════════════════════════════
   SAVA · Dashboard · Bar chart (scoped)
   ════════════════════════════════════════════ */

.dash-barchart[b-o8scedqsy8] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    height: 220px;
    padding: 12px 0;
}

.dash-barchart__group[b-o8scedqsy8] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    flex: 1;
}

.dash-barchart__bars[b-o8scedqsy8] {
    display: flex;
    align-items: flex-end;
    gap: 4px;
    height: 180px;
}

.dash-barchart__bar[b-o8scedqsy8] {
    width: 14px;
    border-radius: 3px;
    transform-origin: bottom center;
    animation: dash-bar-rise-b-o8scedqsy8 800ms cubic-bezier(.2, .7, .2, 1) both;
}

.dash-barchart__bar--inicial[b-o8scedqsy8] {
    background: var(--color-brand-gold);
}

.dash-barchart__bar--primaria[b-o8scedqsy8] {
    background: var(--color-brand-red);
}

.dash-barchart__bar--secundaria[b-o8scedqsy8] {
    background: var(--color-brand-blue);
}

.dash-barchart__label[b-o8scedqsy8] {
    font-size: 11px;
    color: var(--text-muted);
    font-weight: 600;
    letter-spacing: 0.08em;
}

@keyframes dash-bar-rise-b-o8scedqsy8 {
    from {
        transform: scaleY(0);
        opacity: 0;
    }

    to {
        transform: scaleY(1);
        opacity: 1;
    }
}
/* /Shared/Sava/DashboardDonut.razor.rz.scp.css */
/* ════════════════════════════════════════════
   SAVA · Dashboard · Donut (scoped)
   ════════════════════════════════════════════ */

.dash-donut[b-joo45y5ubn] {
    display: flex;
    justify-content: center;
    position: relative;
}

.dash-donut__svg[b-joo45y5ubn] {
    transform: rotate(-90deg);
}

.dash-donut__svg circle[b-joo45y5ubn] {
    transition: stroke-dasharray 800ms ease-out, stroke-dashoffset 800ms ease-out;
}

.dash-donut__center[b-joo45y5ubn] {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}

.dash-donut__total[b-joo45y5ubn] {
    font-family: var(--font-display);
    font-size: 32px;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1;
}

.dash-donut__label[b-joo45y5ubn] {
    font-size: 11px;
    letter-spacing: 0.14em;
    color: var(--text-muted);
    font-weight: 600;
    margin-top: 4px;
}
/* /Shared/Sava/HomeNivelBlock.razor.rz.scp.css */
/* HomeNivelBlock · split foto/texto con número watermark */

.home-nivel[b-tl8la6lfea] {
    display: grid;
    grid-template-columns: 5fr 7fr;
    gap: 48px;
    align-items: center;
    background: var(--bg-paper);
    border-radius: 12px;
    padding: 32px;
    border: 1px solid var(--border-soft);
    position: relative;
    overflow: hidden;
}

.home-nivel--flipped[b-tl8la6lfea] {
    grid-template-columns: 7fr 5fr;
}

.home-nivel__watermark[b-tl8la6lfea] {
    position: absolute;
    right: -16px;
    top: -32px;
    font-family: var(--font-display);
    font-size: 200px;
    font-weight: 700;
    opacity: 0.07;
    line-height: 0.9;
    pointer-events: none;
}

.home-nivel--flipped .home-nivel__watermark[b-tl8la6lfea] {
    left: -16px;
    right: auto;
}

.home-nivel__photo[b-tl8la6lfea] {
    aspect-ratio: 4/3;
    border-radius: 8px;
    order: 1;
    position: relative;
    overflow: hidden;
}

.home-nivel__photo-img[b-tl8la6lfea] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.home-nivel--flipped .home-nivel__photo[b-tl8la6lfea] {
    order: 2;
}

.home-nivel__badge[b-tl8la6lfea] {
    position: absolute;
    top: 16px;
    right: 16px;
    color: var(--bg-paper);
    padding: 6px 12px;
    border-radius: 99px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
}

.home-nivel__content[b-tl8la6lfea] {
    order: 2;
    position: relative;
}

.home-nivel--flipped .home-nivel__content[b-tl8la6lfea] {
    order: 1;
}

.home-nivel__divider[b-tl8la6lfea] {
    display: flex;
    align-items: baseline;
    gap: 14px;
    margin-bottom: 14px;
}

.home-nivel__divider-label[b-tl8la6lfea] {
    font-family: var(--font-display);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.08em;
}

.home-nivel__divider-line[b-tl8la6lfea] {
    height: 1px;
    flex: 1;
    background: var(--border-soft);
}

.home-nivel__title[b-tl8la6lfea] {
    font-family: var(--font-display);
    font-size: 36px;
    font-weight: 600;
    margin-bottom: 18px;
}

.home-nivel__body[b-tl8la6lfea] {
    color: var(--text-secondary);
    font-size: 16px;
    line-height: 1.65;
    margin-bottom: 24px;
}

.home-nivel__areas[b-tl8la6lfea] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 24px;
}

.home-nivel__area[b-tl8la6lfea] {
    font-size: 12px;
    padding: 5px 12px;
    border: 1px solid;
    border-radius: 99px;
    font-weight: 500;
}

.home-nivel__meta[b-tl8la6lfea] {
    display: flex;
    align-items: center;
    gap: 20px;
    font-size: 13px;
    color: var(--text-muted);
}

.home-nivel__meta-item[b-tl8la6lfea] {
    display: flex;
    align-items: center;
    gap: 6px;
}

@media (max-width: 880px) {
    .home-nivel[b-tl8la6lfea],
    .home-nivel--flipped[b-tl8la6lfea] {
        grid-template-columns: 1fr;
        gap: 32px;
    }
    .home-nivel__photo[b-tl8la6lfea],
    .home-nivel--flipped .home-nivel__photo[b-tl8la6lfea] {
        order: 1;
    }
    .home-nivel__content[b-tl8la6lfea],
    .home-nivel--flipped .home-nivel__content[b-tl8la6lfea] {
        order: 2;
    }
}
/* /Shared/Sava/SavaSiteFooter.razor.rz.scp.css */
.sava-site-footer[b-mzn5qfwsjg] {
    background: var(--color-brand-green);
    color: var(--bg-paper);
    padding-top: 80px;
    padding-bottom: 24px;
}

.sava-site-footer__inner[b-mzn5qfwsjg] {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 32px;
}

.sava-site-footer__grid[b-mzn5qfwsjg] {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr 1.1fr;
    gap: 48px;
}

.sava-site-footer__col[b-mzn5qfwsjg] {
    /* nada — solo placeholder de grid item */
}

.sava-site-footer__brand[b-mzn5qfwsjg] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
}

.sava-site-footer__brand-img[b-mzn5qfwsjg] {
    width: 56px;
    height: auto;
    display: block;
    flex-shrink: 0;
}

.sava-site-footer__brand-name[b-mzn5qfwsjg] {
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 600;
    color: var(--bg-paper);
}

.sava-site-footer__brand-sub[b-mzn5qfwsjg] {
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    opacity: 0.6;
}

.sava-site-footer__quote[b-mzn5qfwsjg] {
    font-family: var(--font-display);
    font-style: italic;
    font-size: 18px;
    opacity: 0.85;
    max-width: 320px;
    margin-top: 24px;
    line-height: 1.45;
}

.sava-site-footer__head[b-mzn5qfwsjg] {
    font-family: var(--font-body);
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--color-brand-gold);
    margin: 0 0 18px;
}

.sava-site-footer__list[b-mzn5qfwsjg] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 10px;
    font-size: 14px;
    opacity: 0.85;
}

.sava-site-footer__list a[b-mzn5qfwsjg],
.sava-site-footer__list a:visited[b-mzn5qfwsjg] {
    color: inherit;
    text-decoration: none;
    transition: opacity 160ms ease-out;
}

.sava-site-footer__list a:hover[b-mzn5qfwsjg] {
    opacity: 1;
    color: var(--color-brand-gold);
}

.sava-site-footer__contact[b-mzn5qfwsjg] {
    font-size: 14px;
    opacity: 0.85;
    line-height: 1.7;
}

.sava-site-footer__bottom[b-mzn5qfwsjg] {
    margin-top: 64px;
    padding-top: 24px;
    border-top: 1px solid rgba(var(--color-brand-gold-rgb), 0.25);
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 13px;
    opacity: 0.7;
    flex-wrap: wrap;
    gap: 16px;
}

.sava-site-footer__bottom-links[b-mzn5qfwsjg] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 20px;
    justify-content: flex-end;
}

.sava-site-footer__bottom-links a[b-mzn5qfwsjg],
.sava-site-footer__bottom-links a:visited[b-mzn5qfwsjg] {
    color: inherit;
    text-decoration: none;
    white-space: nowrap;
}

.sava-site-footer__bottom-links a:hover[b-mzn5qfwsjg] {
    color: var(--color-brand-gold);
    opacity: 1;
}

@media (max-width: 880px) {
    .sava-site-footer__grid[b-mzn5qfwsjg] {
        grid-template-columns: 1fr 1fr;
        gap: 32px;
    }

    .sava-site-footer__bottom[b-mzn5qfwsjg] {
        flex-direction: column;
        align-items: flex-start;
    }

    .sava-site-footer__bottom-links[b-mzn5qfwsjg] {
        gap: 6px 16px;
        justify-content: flex-start;
        font-size: 12.5px;
    }
}

@media (max-width: 480px) {
    .sava-site-footer__grid[b-mzn5qfwsjg] {
        grid-template-columns: 1fr;
    }

    .sava-site-footer__bottom-links[b-mzn5qfwsjg] {
        gap: 6px 14px;
        font-size: 12px;
    }
}
/* /Shared/Sava/SavaSiteHeader.razor.rz.scp.css */
.sava-site-header[b-9ora0cahdr] {
    position: sticky;
    top: 0;
    z-index: 50;
    background: transparent;
    border-bottom: 1px solid transparent;
    transition: background 220ms ease-out, backdrop-filter 220ms ease-out, border-color 220ms ease-out;
}

.sava-site-header.scrolled[b-9ora0cahdr] {
    background: rgba(var(--bg-page-rgb), 0.92);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--border-soft);
}

.sava-site-header__inner[b-9ora0cahdr] {
    max-width: 1320px;
    margin: 0 auto;
    padding: 16px 32px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
}

.sava-site-header__logo[b-9ora0cahdr] {
    display: block;
    color: inherit;
    text-decoration: none;
    line-height: 0;
}

.sava-site-header__logo-img[b-9ora0cahdr] {
    height: 44px;
    width: auto;
    display: block;
}

.sava-site-header__nav[b-9ora0cahdr] {
    display: flex;
    align-items: center;
    gap: 28px;
}

.sava-site-header__item[b-9ora0cahdr] {
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 500;
    color: var(--text-primary);
    position: relative;
    padding: 8px 0;
    text-decoration: none;
    transition: color 160ms ease-out;
}

.sava-site-header__item:hover[b-9ora0cahdr] {
    color: var(--color-brand-red);
}

/* NavLink agrega .active al item que matchea la ruta actual */
.sava-site-header__item.active[b-9ora0cahdr] {
    color: var(--color-brand-red);
}

.sava-site-header__item.active[b-9ora0cahdr]::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 2px;
    background: var(--color-brand-red);
}

.sava-site-header__actions[b-9ora0cahdr] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.sava-site-header__portal[b-9ora0cahdr] {
    padding: 10px 18px;
    text-decoration: none;
}

/* ── Hamburger button (oculto en desktop) ────────── */
.sava-site-header__burger[b-9ora0cahdr] {
    display: none;
    width: 40px;
    height: 40px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--border-soft);
    border-radius: 6px;
    background: var(--bg-surface);
    color: var(--text-primary);
    cursor: pointer;
    transition: background 160ms ease-out, border-color 160ms ease-out;
}

.sava-site-header__burger:hover[b-9ora0cahdr] {
    background: var(--bg-page);
    border-color: var(--border-medium);
}

/* Cuando el drawer está abierto, ocultamos el hamburger del header
   (el cierre se hace con la X dentro del drawer panel o el backdrop). */
.sava-site-header.is-menu-open .sava-site-header__burger[b-9ora0cahdr] {
    opacity: 0;
    pointer-events: none;
}

/* ── Drawer (oculto en desktop) ──────────────────── */
.sava-site-header__drawer[b-9ora0cahdr] {
    display: none;
    position: fixed;
    inset: 0;
    top: 0;
    background: rgba(var(--text-primary-rgb), 0.4);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    z-index: 60;
    opacity: 0;
    pointer-events: none;
    transition: opacity 220ms ease-out;
}

.sava-site-header.is-menu-open .sava-site-header__drawer[b-9ora0cahdr] {
    opacity: 1;
    pointer-events: auto;
}

.sava-site-header__drawer-panel[b-9ora0cahdr] {
    position: absolute;
    top: 0;
    right: 0;
    height: 100vh;
    width: min(340px, 86vw);
    background: var(--bg-paper);
    border-left: 1px solid var(--border-soft);
    padding: 24px 24px 28px;
    overflow-y: auto;
    transform: translateX(100%);
    transition: transform 280ms cubic-bezier(0.2, 0.7, 0.2, 1);
    box-shadow: -16px 0 48px rgba(var(--text-primary-rgb), 0.18);
    display: flex;
    flex-direction: column;
}

.sava-site-header.is-menu-open .sava-site-header__drawer-panel[b-9ora0cahdr] {
    transform: translateX(0);
}

/* La pauta cuaderno de fondo se mantiene detrás del contenido */
.sava-site-header__drawer-panel > *:not(.hero-bd)[b-9ora0cahdr] {
    position: relative;
    z-index: 1;
}

/* ── Header del drawer (logo + botón cerrar) ── */
.sava-site-header__drawer-head[b-9ora0cahdr] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 28px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--border-soft);
}

.sava-site-header__drawer-logo[b-9ora0cahdr] {
    height: 38px;
    width: auto;
    display: block;
}

.sava-site-header__drawer-close[b-9ora0cahdr] {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--border-soft);
    border-radius: 6px;
    background: var(--bg-surface);
    color: var(--text-primary);
    cursor: pointer;
    transition: background 160ms ease-out, border-color 160ms ease-out, color 160ms ease-out;
}

.sava-site-header__drawer-close:hover[b-9ora0cahdr] {
    background: var(--bg-page);
    border-color: var(--border-medium);
    color: var(--color-brand-red);
}

/* ── Navegación ── */
.sava-site-header__drawer-nav[b-9ora0cahdr] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.sava-site-header__drawer-item[b-9ora0cahdr] {
    display: flex;
    align-items: baseline;
    gap: 14px;
    padding: 13px 14px;
    text-decoration: none;
    border-radius: 8px;
    position: relative;
    transition: background 140ms ease-out;
}

.sava-site-header__drawer-num[b-9ora0cahdr] {
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 500;
    color: var(--color-brand-gold);
    letter-spacing: 0.04em;
    min-width: 20px;
    transition: color 140ms ease-out;
}

.sava-site-header__drawer-label[b-9ora0cahdr] {
    font-family: var(--font-display);
    font-size: 21px;
    font-weight: 600;
    color: var(--text-primary);
    letter-spacing: -0.01em;
    transition: color 140ms ease-out;
}

.sava-site-header__drawer-item:hover[b-9ora0cahdr] {
    background: var(--bg-page);
}

.sava-site-header__drawer-item:hover .sava-site-header__drawer-label[b-9ora0cahdr],
.sava-site-header__drawer-item:hover .sava-site-header__drawer-num[b-9ora0cahdr] {
    color: var(--color-brand-red);
}

.sava-site-header__drawer-item.active[b-9ora0cahdr] {
    background: rgba(var(--color-brand-red-rgb), 0.07);
}

.sava-site-header__drawer-item.active[b-9ora0cahdr]::before {
    content: "";
    position: absolute;
    left: 0;
    top: 8px;
    bottom: 8px;
    width: 3px;
    border-radius: 2px;
    background: var(--color-brand-red);
}

.sava-site-header__drawer-item.active .sava-site-header__drawer-label[b-9ora0cahdr] {
    color: var(--color-brand-red);
}

/* ── Footer del drawer (Portal + datos institucionales) ── */
.sava-site-header__drawer-footer[b-9ora0cahdr] {
    margin-top: auto;
    padding-top: 24px;
}

.sava-site-header__drawer-cta[b-9ora0cahdr] {
    width: 100%;
    justify-content: center;
    text-decoration: none;
    padding: 14px 20px;
    font-size: 15px;
}

.sava-site-header__drawer-legal[b-9ora0cahdr] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid var(--border-soft);
    font-size: 11px;
    color: var(--text-muted);
    letter-spacing: 0.04em;
}

.sava-site-header__drawer-legal > :first-child[b-9ora0cahdr] {
    color: var(--color-brand-green);
    font-weight: 600;
}

/* ── Responsive ──────────────────────────────────── */
@media (max-width: 960px) {
    .sava-site-header__nav[b-9ora0cahdr] {
        display: none;
    }
    .sava-site-header__burger[b-9ora0cahdr] {
        display: inline-flex;
    }
    .sava-site-header__drawer[b-9ora0cahdr] {
        display: block;
    }
}

@media (max-width: 640px) {
    .sava-site-header__inner[b-9ora0cahdr] {
        padding: 14px 20px;
        gap: 16px;
    }
    .sava-site-header__portal[b-9ora0cahdr] {
        display: none;
    }
    .sava-site-header__logo-img[b-9ora0cahdr] {
        height: 38px;
    }
}

@media (max-width: 380px) {
    .sava-site-header__logo-img[b-9ora0cahdr] {
        height: 32px;
    }
}
/* /Shared/Sava/SedesMapaVraem.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · SedesMapaVraem · mapa estilizado del valle
   ════════════════════════════════════════════════════════════════════ */

.sedes-mapa[b-5npmx9i4f2] {
    position: relative;
    width: 100%;
    max-width: 1280px;
    height: 360px;
    margin: 0 auto;
    background: linear-gradient(135deg, var(--color-brand-green-soft) 0%, rgba(var(--color-brand-green-rgb), 0.08) 100%);
    border-radius: var(--radius-xl);
    border: 1px solid var(--border-soft);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sedes-mapa__svg[b-5npmx9i4f2] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.sedes-mapa__pin[b-5npmx9i4f2] {
    position: absolute;
    transform: translate(-50%, -100%);
    display: flex;
    flex-direction: column;
    align-items: center;
    z-index: 2;
}

.sedes-mapa__pin-label[b-5npmx9i4f2] {
    background: var(--bg-paper);
    border: 1px solid var(--border-soft);
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: 8px;
    white-space: nowrap;
    box-shadow: 0 1px 3px rgba(var(--text-primary-rgb), 0.06);
}

.sedes-mapa__pin-dot[b-5npmx9i4f2] {
    width: 14px;
    height: 14px;
    border-radius: 99px;
    background: var(--color-brand-red);
    border: 3px solid var(--bg-paper);
    box-shadow: 0 2px 6px rgba(var(--text-primary-rgb), 0.18), 0 1px 2px rgba(var(--text-primary-rgb), 0.12);
}

.sedes-mapa__tag[b-5npmx9i4f2] {
    position: absolute;
    bottom: 16px;
    left: 16px;
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.08em;
    color: var(--color-brand-green);
    background: var(--bg-paper);
    padding: 4px 8px;
    border-radius: 2px;
    z-index: 2;
}

@media (max-width: 768px) {
    .sedes-mapa[b-5npmx9i4f2] {
        height: 280px;
    }
    .sedes-mapa__pin-label[b-5npmx9i4f2] {
        font-size: 11px;
        padding: 3px 8px;
    }
}
/* /Shared/Sava/StatCard.razor.rz.scp.css */
.stat-card[b-443lfalix6] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: 8px;
    padding: 24px;
    height: 100%;
    transition: border-color 200ms ease-out, box-shadow 200ms ease-out, transform 200ms ease-out;
}

.stat-card__label[b-443lfalix6] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 600;
    margin-bottom: 14px;
}

.stat-card__num[b-443lfalix6] {
    font-family: var(--font-display);
    font-size: 38px;
    font-weight: 600;
    line-height: 1;
    margin-bottom: 12px;
}

.stat-card__delta[b-443lfalix6] {
    font-size: 12px;
    font-weight: 600;
}

.stat-card__delta--up[b-443lfalix6] {
    color: var(--state-success);
}

.stat-card__delta--down[b-443lfalix6] {
    color: var(--state-danger);
}

.stat-card__delta-arrow[b-443lfalix6] {
    margin-right: 2px;
}

.stat-card__delta-vs[b-443lfalix6] {
    color: var(--text-muted);
    font-weight: 400;
    margin-left: 4px;
}
/* /Shared/Sava/TablonFeedPost.razor.rz.scp.css */
/* ════════════════════════════════════════════
   SAVA · Tablón · Feed post (scoped)
   ════════════════════════════════════════════ */

.feed-post[b-q3uovxhipz] {
    background: var(--bg-surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    padding: 0;
    overflow: hidden;
    box-shadow: var(--shadow-warm-sm);
}

.feed-post__ribbon[b-q3uovxhipz] {
    padding: 8px 20px;
    font-size: 11px;
    letter-spacing: 0.14em;
    font-weight: 700;
}

.feed-post__inner[b-q3uovxhipz] {
    padding: 20px;
}

/* ── Header ─────────────────────────── */
.feed-post__header[b-q3uovxhipz] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
}

.feed-post__avatar[b-q3uovxhipz] {
    width: 44px;
    height: 44px;
    border-radius: 99px;
    color: var(--bg-paper);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-size: 16px;
    font-weight: 700;
    flex-shrink: 0;
}

.feed-post__author[b-q3uovxhipz] {
    flex: 1;
    min-width: 0;
}

.feed-post__author-name[b-q3uovxhipz] {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-primary);
}

.feed-post__author-meta[b-q3uovxhipz] {
    font-size: 12px;
    color: var(--text-muted);
}

.feed-post__menu-btn[b-q3uovxhipz] {
    background: transparent;
    border: none;
    color: var(--text-muted);
    padding: 6px;
    cursor: pointer;
}

/* ── Body text ──────────────────────── */
.feed-post__body[b-q3uovxhipz] {
    font-size: 15px;
    line-height: 1.65;
    color: var(--text-primary);
    margin-bottom: 16px;
}

/* ── Celebration ────────────────────── */
.feed-post__celebration[b-q3uovxhipz] {
    position: relative;
    padding: 24px;
    margin-bottom: 16px;
    background: linear-gradient(135deg, var(--color-brand-gold-soft), #FFF8E1);
    border: 1px solid var(--color-brand-gold);
    border-radius: var(--radius-lg);
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 18px;
    align-items: center;
    overflow: hidden;
}

.feed-post__celeb-spark[b-q3uovxhipz] {
    position: absolute;
    color: var(--color-brand-gold);
    pointer-events: none;
}

.feed-post__celeb-medal[b-q3uovxhipz] {
    position: relative;
    width: 72px;
    height: 72px;
    border-radius: 99px;
    background: linear-gradient(135deg, var(--color-brand-gold), #B97A0F);
    color: var(--bg-paper);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-weight: 700;
    box-shadow: 0 8px 24px rgba(217, 164, 65, 0.4);
}

.feed-post__celeb-medal-label[b-q3uovxhipz] {
    font-size: 10px;
    margin-top: 2px;
    letter-spacing: 0.1em;
}

.feed-post__celeb-info[b-q3uovxhipz] {
    position: relative;
}

.feed-post__celeb-eyebrow[b-q3uovxhipz] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-brand-gold);
    font-weight: 600;
    margin-bottom: 4px;
}

.feed-post__celeb-name[b-q3uovxhipz] {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 600;
    color: var(--text-primary);
}

.feed-post__celeb-grade[b-q3uovxhipz] {
    font-size: 13px;
    color: var(--text-secondary);
    margin-top: 4px;
}

.feed-post__celeb-rank[b-q3uovxhipz] {
    position: relative;
    font-family: var(--font-display);
    font-size: 56px;
    font-weight: 700;
    color: var(--color-brand-gold);
    opacity: 0.6;
    line-height: 1;
}

/* ── Photo grid ─────────────────────── */
.feed-post__photogrid[b-q3uovxhipz] {
    display: grid;
    grid-template-columns: 2fr 1fr;
    grid-template-rows: 1fr 1fr;
    gap: 4px;
    height: 280px;
    margin-bottom: 16px;
    border-radius: var(--radius-md);
    overflow: hidden;
}

.feed-post__photo[b-q3uovxhipz] {
    position: relative;
}

.feed-post__photo--lead[b-q3uovxhipz] {
    grid-row: 1 / 3;
}

.feed-post__photo-overlay[b-q3uovxhipz] {
    position: absolute;
    inset: 0;
    background: rgba(28, 25, 23, 0.55);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 700;
    color: var(--bg-paper);
}

/* ── Event countdown ────────────────── */
.feed-post__event[b-q3uovxhipz] {
    position: relative;
    padding: 22px;
    margin-bottom: 16px;
    background: linear-gradient(135deg, var(--color-brand-blue), var(--color-brand-blue-deep));
    color: var(--bg-paper);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.feed-post__event-rays[b-q3uovxhipz] {
    position: absolute;
    top: -60px;
    right: -60px;
    width: 200px;
    height: 200px;
    background: repeating-conic-gradient(from 0deg, rgba(217, 164, 65, 0.12) 0deg 1.5deg, transparent 1.5deg 14deg);
    mask-image: radial-gradient(circle, black, transparent 70%);
    -webkit-mask-image: radial-gradient(circle, black, transparent 70%);
}

.feed-post__event-body[b-q3uovxhipz] {
    position: relative;
}

.feed-post__event-title[b-q3uovxhipz] {
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 600;
    color: var(--bg-paper);
    margin-bottom: 6px;
}

.feed-post__event-meta[b-q3uovxhipz] {
    font-size: 13px;
    opacity: 0.8;
    margin-bottom: 18px;
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
}

.feed-post__event-meta span[b-q3uovxhipz] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.feed-post__event-countdown[b-q3uovxhipz] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    max-width: 360px;
}

.feed-post__event-cell[b-q3uovxhipz] {
    text-align: center;
    padding: 12px 8px;
    background: rgba(0, 0, 0, 0.2);
    border-radius: var(--radius-md);
    border: 1px solid rgba(217, 164, 65, 0.2);
}

.feed-post__event-num[b-q3uovxhipz] {
    font-family: var(--font-display);
    font-size: 28px;
    font-weight: 700;
    color: var(--color-brand-gold);
    line-height: 1;
}

.feed-post__event-unit[b-q3uovxhipz] {
    font-size: 9px;
    letter-spacing: 0.14em;
    color: rgba(217, 164, 65, 0.85);
    font-weight: 600;
    margin-top: 4px;
}

/* ── Birthdays ──────────────────────── */
.feed-post__birthdays[b-q3uovxhipz] {
    display: grid;
    gap: 10px;
    margin-bottom: 16px;
}

.feed-post__bday[b-q3uovxhipz] {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 16px;
    border-radius: var(--radius-md);
}

.feed-post__bday-avatar[b-q3uovxhipz] {
    width: 44px;
    height: 44px;
    border-radius: 99px;
    color: var(--bg-paper);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-size: 14px;
    font-weight: 700;
    flex-shrink: 0;
}

.feed-post__bday-info[b-q3uovxhipz] {
    flex: 1;
}

.feed-post__bday-name[b-q3uovxhipz] {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-primary);
}

.feed-post__bday-meta[b-q3uovxhipz] {
    font-size: 12px;
    color: var(--text-muted);
}

.feed-post__bday-btn[b-q3uovxhipz] {
    padding: 6px 14px;
    color: var(--bg-paper);
    border: none;
    border-radius: 99px;
    font-size: 12px;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
}

/* ── Tags ───────────────────────────── */
.feed-post__tags[b-q3uovxhipz] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 12px;
}

.feed-post__tag[b-q3uovxhipz] {
    font-size: 12px;
    font-weight: 600;
    padding: 3px 10px;
    border-radius: 99px;
}

/* ── Reactions ──────────────────────── */
.feed-post__reactions[b-q3uovxhipz] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 12px;
    border-top: 1px solid var(--border-soft);
    gap: 8px;
    flex-wrap: wrap;
}

.feed-post__reactions-left[b-q3uovxhipz] {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.feed-post__react-btn[b-q3uovxhipz] {
    padding: 8px 14px;
    border-radius: 99px;
    background: transparent;
    font-size: 13px;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    transition: all 180ms cubic-bezier(.2, .7, .2, 1);
}

.feed-post__react-btn--ghost[b-q3uovxhipz] {
    border: none;
    color: var(--text-secondary);
}

.feed-post__react-btn--ghost:hover[b-q3uovxhipz] {
    background: var(--bg-page);
}

.feed-post__reactions-right[b-q3uovxhipz] {
    display: flex;
    gap: 4px;
}

.feed-post__emoji-btn[b-q3uovxhipz] {
    width: 30px;
    height: 30px;
    border-radius: 99px;
    font-size: 14px;
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: transform 180ms cubic-bezier(.2, .7, .2, 1);
}

.feed-post__emoji-btn:hover[b-q3uovxhipz] {
    transform: translateY(-2px);
}
/* /Shared/Sava/TablonStoryCircle.razor.rz.scp.css */
/* ════════════════════════════════════════════
   SAVA · Tablón · Story circle (scoped)
   ════════════════════════════════════════════ */

.story-item[b-72hges6ttv] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    min-width: 76px;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 4px;
}

.story-ring[b-72hges6ttv] {
    width: 68px;
    height: 68px;
    border-radius: 99px;
    padding: 3px;
    transition: transform 220ms cubic-bezier(.2, .7, .2, 1);
}

.story-item:hover .story-ring[b-72hges6ttv] {
    transform: scale(1.08);
}

.story-inner[b-72hges6ttv] {
    width: 100%;
    height: 100%;
    border-radius: 99px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 700;
}

.story-inner__tag[b-72hges6ttv] {
    line-height: 1;
}

.story-label[b-72hges6ttv] {
    font-size: 11px;
    font-weight: 600;
    color: var(--text-secondary);
    text-align: center;
    max-width: 76px;
    line-height: 1.2;
}
/* /Shared/Sava/Ticker.razor.rz.scp.css */
.sava-ticker__item[b-880bm0cgs8] {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 0 8px;
    white-space: nowrap;
    font-size: 14px;
    font-weight: 600;
    font-family: var(--font-body);
    letter-spacing: 0.02em;
}
/* /Shared/Sava/WhatsAppFloat.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════
   SAVA · WhatsApp floating button
   Fun pero institucional · pulse expansivo · scale en hover ·
   tooltip en desktop · oculto label en mobile.
   ════════════════════════════════════════════════════════════════════ */

.wa-float[b-lz1edyleke] {
    position: fixed;
    bottom: 24px;
    right: 24px;
    width: 60px;
    height: 60px;
    background: var(--color-whatsapp);
    color: var(--bg-surface);
    border-radius: 99px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    z-index: 40;
    box-shadow:
        0 8px 20px rgba(var(--color-whatsapp-dark-rgb), 0.40),
        0 2px 4px rgba(var(--text-primary-rgb), 0.10);
    transition:
        transform 240ms cubic-bezier(0.34, 1.4, 0.64, 1),
        box-shadow 240ms ease-out;
    cursor: pointer;
}

.wa-float:hover[b-lz1edyleke],
.wa-float:focus-visible[b-lz1edyleke] {
    transform: scale(1.08) rotate(-4deg);
    box-shadow:
        0 12px 28px rgba(var(--color-whatsapp-dark-rgb), 0.50),
        0 4px 8px rgba(var(--text-primary-rgb), 0.14);
    outline: none;
}

.wa-float:active[b-lz1edyleke] {
    transform: scale(0.96);
    transition-duration: 120ms;
}

.wa-float__icon[b-lz1edyleke] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
    z-index: 2;
}

.wa-float__icon svg[b-lz1edyleke] {
    display: block;
    filter: drop-shadow(0 1px 2px rgba(var(--text-primary-rgb), 0.12));
}

/* ── Pulse ring expansivo · llama atención sin gritar ── */
.wa-float__pulse[b-lz1edyleke] {
    position: absolute;
    inset: 0;
    border-radius: 99px;
    background: var(--color-whatsapp);
    opacity: 0;
    animation: wa-float-pulse-b-lz1edyleke 2600ms ease-out infinite;
    pointer-events: none;
    z-index: 1;
}

.wa-float__pulse[b-lz1edyleke]::before {
    content: '';
    position: absolute;
    inset: -2px;
    border-radius: 99px;
    background: var(--color-whatsapp);
    opacity: 0;
    animation: wa-float-pulse-b-lz1edyleke 2600ms ease-out 800ms infinite;
}

@keyframes wa-float-pulse-b-lz1edyleke {
    0% {
        transform: scale(1);
        opacity: 0.55;
    }
    70%, 100% {
        transform: scale(1.9);
        opacity: 0;
    }
}

/* ── Tooltip label (solo desktop) ── */
.wa-float__label[b-lz1edyleke] {
    position: absolute;
    right: calc(100% + 14px);
    top: 50%;
    background: var(--text-primary);
    color: var(--bg-paper);
    padding: 8px 14px;
    border-radius: 99px;
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.01em;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transform: translateY(-50%) translateX(6px);
    transition:
        opacity 180ms ease-out,
        transform 180ms cubic-bezier(0.2, 0.7, 0.2, 1);
    box-shadow: 0 6px 16px rgba(var(--text-primary-rgb), 0.18);
}

.wa-float__label[b-lz1edyleke]::after {
    content: '';
    position: absolute;
    right: -4px;
    top: 50%;
    width: 8px;
    height: 8px;
    background: var(--text-primary);
    transform: translateY(-50%) rotate(45deg);
}

.wa-float:hover .wa-float__label[b-lz1edyleke],
.wa-float:focus-visible .wa-float__label[b-lz1edyleke] {
    opacity: 1;
    transform: translateY(-50%) translateX(0);
}

/* ── Reduced motion · respeta preferencia del usuario ── */
@media (prefers-reduced-motion: reduce) {
    .wa-float__pulse[b-lz1edyleke],
    .wa-float__pulse[b-lz1edyleke]::before {
        animation: none;
        opacity: 0;
    }
    .wa-float:hover[b-lz1edyleke],
    .wa-float:focus-visible[b-lz1edyleke] {
        transform: none;
    }
}

/* ── Mobile · más compacto, sin label, esquina más cercana ── */
@media (max-width: 640px) {
    .wa-float[b-lz1edyleke] {
        bottom: 18px;
        right: 18px;
        width: 54px;
        height: 54px;
    }
    .wa-float__icon svg[b-lz1edyleke] {
        width: 26px;
        height: 26px;
    }
    .wa-float__label[b-lz1edyleke] {
        display: none;
    }
}

@media (max-width: 380px) {
    .wa-float[b-lz1edyleke] {
        bottom: 14px;
        right: 14px;
        width: 50px;
        height: 50px;
    }
    .wa-float__icon svg[b-lz1edyleke] {
        width: 24px;
        height: 24px;
    }
}
