:root{
    --seiell-primary:#2b6cb0;
    --seiell-primary-2:#5aa7ff;
    --seiell-primary-dark:#1f4b99;
    --seiell-primary-soft:#eef5ff;
    --seiell-surface:#ffffff;
    --seiell-surface-soft:#fbfdff;
    --seiell-border:#d9e8fb;
    --seiell-text:#1f2937;
    --seiell-muted:#6b7280;
    --seiell-shadow:0 12px 28px rgba(43,108,176,0.10);
    --seiell-shadow-hover:0 16px 34px rgba(43,108,176,0.14);
}

body{
    background:linear-gradient(180deg,#f4f8ff 0%,#f8fbff 100%) !important;
    color:var(--seiell-text);
}

.header-top,
.sticky-header,
.header-seiell,
.navbar-custom,
.topbar{
    background:linear-gradient(135deg,var(--seiell-primary),var(--seiell-primary-2)) !important;
    color:#fff !important;
    box-shadow:0 10px 24px rgba(43,108,176,0.18) !important;
}

.header-top,
.sticky-header,
.header-seiell{
    border-bottom:none !important;
}

.header-top .title-main,
.header-top .sub-info,
.header-top .header-text-dark,
.header-top .brand-row,
.header-top .title-main i,
.header-seiell .brand-title,
.header-seiell .brand-sub,
.header-seiell .fw-bold,
.header-seiell .small,
.sticky-header .fw-bold,
.sticky-header .small,
.navbar-custom .text-white,
.navbar-custom .brand-sub,
.navbar-custom .brand-title{
    color:#fff !important;
}

.badge-soft,
.badge-soft-header,
.badge-soft-observador,
.badge-soft-asistencia,
.badge-soft-calificaciones,
.top-chip,
.anio-chip,
.year-chip,
.context-chip,
.mini-kpi,
.materia-info,
.pill{
    background:rgba(255,255,255,0.16) !important;
    border:1px solid rgba(255,255,255,0.30) !important;
    color:#fff !important;
    box-shadow:none !important;
}

.btn-nav,
.btn-nav-soft,
.btn-volver,
.nav-btn-circle,
.btn-exit,
.btn-light.rounded-circle.shadow-sm{
    background:#fff !important;
    color:var(--seiell-primary-dark) !important;
    border:1px solid var(--seiell-border) !important;
    box-shadow:0 8px 18px rgba(43,108,176,0.12) !important;
    text-decoration:none !important;
    transition:transform .2s ease, box-shadow .2s ease, background-color .2s ease !important;
}

.btn-nav:hover,
.btn-nav-soft:hover,
.btn-volver:hover,
.nav-btn-circle:hover,
.btn-exit:hover,
.btn-light.rounded-circle.shadow-sm:hover{
    background:#f7fbff !important;
    color:var(--seiell-primary) !important;
    transform:translateY(-1px);
}

.panel-top,
.subject-card,
.card,
.hero-box,
.table-card,
.student-row,
.student-card,
.card-grado,
.tabs-card,
.timeline-card,
.panel-card,
.empty-box,
.welcome-section,
.stats-card,
.search-results-box{
    background:linear-gradient(180deg,var(--seiell-surface) 0%,var(--seiell-surface-soft) 100%) !important;
    border:1px solid var(--seiell-border) !important;
    box-shadow:var(--seiell-shadow) !important;
}

.card-header,
.card-grado .card-header,
.modal-footer.bg-light,
.modal-footer.bg-white{
    background:linear-gradient(180deg,#ffffff 0%,#f7fbff 100%) !important;
    border-bottom:1px solid var(--seiell-border) !important;
}

.card-menu{
    background:linear-gradient(180deg,var(--seiell-surface) 0%,var(--seiell-surface-soft) 100%) !important;
    border:1px solid var(--seiell-border) !important;
    box-shadow:var(--seiell-shadow) !important;
}

.card-menu:hover,
.student-card:hover,
.student-row:hover,
.card-grado:hover,
.kpi-card:hover{
    box-shadow:var(--seiell-shadow-hover) !important;
}

.theme-asistencia,
.theme-observador,
.theme-calificaciones,
.theme-excusas,
.theme-restaurante,
.theme-reportes{
    border:1px solid var(--seiell-border) !important;
}

.theme-asistencia .icon-box,
.theme-observador .icon-box,
.theme-calificaciones .icon-box,
.theme-excusas .icon-box,
.theme-restaurante .icon-box,
.theme-reportes .icon-box,
.btn-disparo-rapido,
.btn-main-submit{
    background:linear-gradient(135deg,var(--seiell-primary),var(--seiell-primary-2)) !important;
    color:#fff !important;
    border:none !important;
    box-shadow:0 10px 24px rgba(43,108,176,0.18) !important;
}

.card-menu .card-btn,
.card-menu .btn-outline-primary,
.card-menu .btn-outline-warning,
.card-menu .btn-outline-danger,
.card-menu .btn-outline-info,
.card-menu .btn-outline-success,
.card-menu .btn-outline-orange{
    background:linear-gradient(135deg,var(--seiell-primary),var(--seiell-primary-2)) !important;
    border-color:transparent !important;
    color:#fff !important;
}

.kpi-card{
    border-left:4px solid var(--seiell-primary) !important;
    background:linear-gradient(180deg,var(--seiell-surface) 0%,var(--seiell-surface-soft) 100%) !important;
}

.kpi-red,
.kpi-orange,
.kpi-yellow,
.kpi-gray{
    border-left-color:var(--seiell-primary) !important;
}

.kpi-red .kpi-number,
.kpi-orange .kpi-number,
.kpi-yellow .kpi-number,
.kpi-gray .kpi-number,
.panel-top-title,
.subject-label,
.hero-title,
.section-title{
    color:var(--seiell-primary) !important;
}

.bg-soft-danger,
.bg-soft-warning,
.bg-soft-blue,
.bg-soft-info{
    background:var(--seiell-primary-soft) !important;
    color:var(--seiell-primary-dark) !important;
    border:1px solid var(--seiell-border) !important;
}

.nivel-bachillerato .card-grado::before,
.nivel-primaria .card-grado::before,
.nivel-sede .card-grado::before{
    background:linear-gradient(135deg,var(--seiell-primary),var(--seiell-primary-2)) !important;
}

.btn-ia{
    background:var(--seiell-primary-dark) !important;
    color:#fff !important;
}

.footer-app,
.footer-seiell,
.footer-legal,
.footer-note,
.seiell-global-footer,
footer.mt-5.pb-4.bg-white.border-top{
    background:#fff !important;
    border-top:1px solid var(--seiell-border) !important;
}

.seiell-global-footer{
    margin-top:auto;
    padding:18px 0;
    text-align:center;
    color:var(--seiell-muted) !important;
    font-size:.92rem;
}

.seiell-global-footer .container{
    display:flex;
    justify-content:center;
    align-items:center;
}

.seiell-global-footer strong{
    color:var(--seiell-primary-dark) !important;
}

footer .text-success,
footer .badge.bg-success-subtle,
footer .alert.alert-warning,
footer .alert.alert-warning strong{
    color:var(--seiell-primary-dark) !important;
}

footer .alert.alert-warning{
    background:var(--seiell-primary-soft) !important;
    border:1px solid var(--seiell-border) !important;
}

.seiell-page-shell{
    max-width:1180px;
    margin:0 auto;
    padding:1.5rem;
}

.seiell-brand-hero{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    padding:1.25rem 1.5rem;
    border-radius:24px;
    background:linear-gradient(135deg,var(--seiell-primary),var(--seiell-primary-2));
    color:#fff;
    box-shadow:0 16px 34px rgba(43,108,176,0.16);
}

.seiell-brand-copy{
    display:flex;
    align-items:center;
    gap:1rem;
    min-width:0;
}

.seiell-brand-logo{
    width:68px;
    height:68px;
    border-radius:18px;
    object-fit:contain;
    padding:10px;
    background:rgba(255,255,255,0.15);
    border:1px solid rgba(255,255,255,0.28);
    flex-shrink:0;
}

.seiell-brand-kicker{
    font-size:.75rem;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
    opacity:.88;
}

.seiell-brand-title{
    margin:0;
    font-size:1.55rem;
    font-weight:800;
    line-height:1.15;
}

.seiell-brand-text p{
    margin:.35rem 0 0;
    max-width:760px;
    opacity:.9;
}

.seiell-brand-actions{
    display:flex;
    align-items:center;
    gap:.65rem;
    flex-wrap:wrap;
    justify-content:flex-end;
}

@media (max-width: 768px){
    .seiell-brand-hero{
        padding:1rem 1.1rem;
    }

    .seiell-brand-copy{
        width:100%;
    }

    .seiell-brand-actions{
        width:100%;
        justify-content:flex-start;
    }
}
