body{
    background:#f8f9fa;
    font-family: "Segoe UI", sans-serif;
}

:root{
    --sigia-rojo:#8B0000;
    --sigia-rojo-oscuro:#650000;
    --sigia-gris:#f3f5f7;
    --sigia-fondo:#eef2f6;
    --sigia-borde:rgba(33,37,41,.1);
    --sigia-texto:#212529;
    --sigia-texto-secundario:#6c757d;
    --sigia-radio:8px;
    --sigia-sombra:0 .75rem 1.75rem rgba(33,37,41,.08);
}

.btn-sigia{
    background:var(--sigia-rojo);
    border-color:var(--sigia-rojo);
    color:#fff;
    font-weight:600;
}

.btn-sigia:hover{
    background:var(--sigia-rojo-oscuro);
    border-color:var(--sigia-rojo-oscuro);
    color:#fff;
}

.btn{
    align-items:center;
    border-radius:var(--sigia-radio);
    display:inline-flex;
    font-weight:600;
    gap:.35rem;
    justify-content:center;
    min-height:40px;
}

.btn-sm{
    min-height:34px;
}

.form-control,
.form-select,
.input-group-text{
    border-color:var(--sigia-borde);
    border-radius:var(--sigia-radio);
    min-height:42px;
}

.input-group .form-control,
.input-group .form-select,
.input-group .input-group-text,
.input-group .btn{
    border-radius:0;
}

.input-group > :first-child{
    border-bottom-left-radius:var(--sigia-radio)!important;
    border-top-left-radius:var(--sigia-radio)!important;
}

.input-group > :last-child{
    border-bottom-right-radius:var(--sigia-radio)!important;
    border-top-right-radius:var(--sigia-radio)!important;
}

.form-control:focus,
.form-select:focus{
    border-color:rgba(139,0,0,.45);
    box-shadow:0 0 0 .2rem rgba(139,0,0,.12);
}

.form-label{
    color:#495057;
    font-size:.9rem;
    font-weight:700;
}

.alert{
    border:0;
    border-radius:var(--sigia-radio);
}

body > .container.mt-3:empty{
    display:none;
}

.password-toggle-group .password-toggle-button{
    align-items:center;
    display:inline-flex;
    justify-content:center;
    min-width:44px;
}

.password-toggle-group .invalid-feedback{
    width:100%;
}

.password-feedback{
    margin-top:.45rem;
}

.password-requirements{
    display:grid;
    gap:.15rem;
    font-size:.86rem;
    margin-top:.45rem;
}

.password-requirements li{
    align-items:center;
    display:flex;
    gap:.4rem;
}

.password-secure-message{
    color:#198754;
    font-size:.9rem;
    font-weight:700;
    margin-bottom:.45rem;
}

.password-strength-progress{
    height:.45rem;
}

.password-strength-label{
    font-weight:600;
}

.login-sigia{
    min-height:100vh;
    background:linear-gradient(135deg,#f7f8fa 0%,#edf1f5 100%);
}

.login-card{
    max-width:480px;
    width:100%;
    border-radius:18px;
}

.login-logo{
    width:112px;
    height:112px;
    object-fit:contain;
}

.login-title{
    color:#202428;
    font-size:1.45rem;
    font-weight:700;
    line-height:1.25;
}

.login-sigla{
    color:var(--sigia-rojo);
    font-size:1.1rem;
    font-weight:700;
}

.login-lema{
    color:#5d6670;
    font-size:.9rem;
    font-weight:600;
    letter-spacing:0;
}

.login-link{
    color:var(--sigia-rojo);
    text-decoration:none;
}

.login-footer{
    color:#6c757d;
    font-size:.9rem;
}

.panel-sigia{
    background:linear-gradient(135deg,#f7f8fa 0%,#eef2f6 100%);
}

.panel-header{
    background:#fff;
}

.panel-logo{
    width:64px;
    height:64px;
    object-fit:contain;
}

.panel-brand{
    color:var(--sigia-rojo);
    font-size:1.65rem;
    font-weight:800;
}

.panel-subtitle,
.panel-label{
    color:#6c757d;
    font-size:.9rem;
}

.panel-card,
.formulario-card{
    border-radius:var(--sigia-radio);
    transition:box-shadow .2s ease, transform .2s ease;
}

.panel-formularios{
    background:rgba(255,255,255,.72);
    border:1px solid rgba(139,0,0,.08);
    border-radius:12px;
    padding:1.25rem;
}

.panel-section-header{
    border-bottom:1px solid rgba(33,37,41,.08);
    padding-bottom:1rem;
}

.panel-section-kicker{
    color:var(--sigia-rojo);
    font-size:.85rem;
    font-weight:700;
    letter-spacing:0;
    text-transform:uppercase;
}

.panel-section-badge{
    background:#ffc107;
    border:1px solid #d39e00;
    color:#212529;
    font-size:.9rem;
    padding:.65rem .85rem;
}

.formulario-card:hover{
    box-shadow:0 1rem 2rem rgba(0,0,0,.12)!important;
    transform:translateY(-3px);
}

.formulario-icono{
    align-items:center;
    background:#f1f3f5;
    border-radius:12px;
    color:var(--sigia-rojo);
    display:flex;
    font-size:1.8rem;
    height:56px;
    justify-content:center;
    width:56px;
}

.formulario-icono-alumno{
    background:#eef6ff;
    color:#0d6efd;
}

.estudio-section-title{
    align-items:center;
    display:flex;
    gap:.75rem;
}

.estudio-section-number{
    align-items:center;
    background:var(--sigia-rojo);
    border-radius:50%;
    color:#fff;
    display:inline-flex;
    flex:0 0 auto;
    font-weight:800;
    height:36px;
    justify-content:center;
    width:36px;
}

.estudio-subcard{
    background:#f8f9fa;
    border:1px solid rgba(33,37,41,.08);
    border-radius:12px;
    padding:1rem;
}

.estudio-check{
    background:#f8f9fa;
    border:1px solid rgba(33,37,41,.08);
    border-radius:10px;
    padding: .85rem .85rem .85rem 2.5rem;
}

.progress-expediente{
    height:28px;
    border-radius:999px;
}

.avisos-lista .list-group-item{
    background:transparent;
}

.admin-sigia{
    background:var(--sigia-fondo);
    display:flex;
}

.admin-sidebar{
    background:#fff;
    border-right:1px solid var(--sigia-borde);
    flex:0 0 280px;
    min-height:100vh;
    padding:1.25rem;
}

.admin-sidebar-brand{
    align-items:center;
    border-bottom:1px solid rgba(33,37,41,.08);
    display:flex;
    gap:.85rem;
    padding-bottom:1.25rem;
}

.admin-sidebar-brand img{
    height:54px;
    object-fit:contain;
    width:54px;
}

.admin-sidebar-brand strong{
    color:var(--sigia-rojo);
    display:block;
    font-size:1.25rem;
}

.admin-sidebar-brand span{
    color:#6c757d;
    display:block;
    font-size:.85rem;
}

.admin-menu{
    display:grid;
    gap:.5rem;
    margin-top:1.25rem;
}

.admin-menu-link{
    align-items:center;
    border-radius:8px;
    color:#343a40;
    display:flex;
    font-weight:700;
    gap:.75rem;
    padding:.85rem 1rem;
    text-decoration:none;
    transition:background-color .2s ease, color .2s ease;
}

.admin-menu-link i{
    align-items:center;
    display:inline-flex;
    flex:0 0 22px;
    font-size:1.1rem;
    justify-content:center;
}

.admin-menu-link.active,
.admin-menu-link:hover{
    background:rgba(139,0,0,.08);
    color:var(--sigia-rojo);
}

.admin-content{
    flex:1 1 auto;
    min-width:0;
}

.admin-main{
    padding:1.5rem;
}

.sigia-institutional-header{
    align-items:center;
    background:#fff;
    border-bottom:1px solid var(--sigia-borde);
    display:grid;
    gap:1rem;
    grid-template-columns:minmax(76px, 112px) minmax(260px, 1fr) minmax(300px, 390px);
    padding:1rem 1.5rem;
}

.sigia-header-logo{
    align-items:center;
    display:flex;
}

.sigia-header-logo img{
    height:auto;
    max-height:68px;
    max-width:100%;
    object-fit:contain;
}

.sigia-header-title{
    min-width:0;
}

.sigia-header-acronym{
    color:var(--sigia-rojo);
    font-size:1.45rem;
    font-weight:800;
    letter-spacing:0;
    line-height:1;
}

.sigia-header-system{
    color:#212529;
    font-size:1.15rem;
    font-weight:800;
    letter-spacing:0;
    line-height:1.25;
}

.sigia-header-motto{
    color:#6c757d;
    font-size:.86rem;
    font-weight:600;
    letter-spacing:0;
}

.sigia-header-actions{
    align-items:center;
    display:flex;
    gap:.75rem;
    justify-content:flex-end;
    min-width:0;
}

.sigia-notification-button{
    align-items:center;
    background:#fff;
    border:1px solid rgba(139,0,0,.16);
    color:var(--sigia-rojo);
    display:inline-flex;
    height:42px;
    justify-content:center;
    position:relative;
    width:42px;
}

.sigia-notification-dot{
    background:#ffc107;
    border:2px solid #fff;
    border-radius:50%;
    height:10px;
    position:absolute;
    right:8px;
    top:8px;
    width:10px;
}

.sigia-notification-badge{font-size:.62rem;position:absolute;right:-7px;top:-7px;}

.sigia-notification-trigger{
    align-items:center;
    background:#fff;
    border:1px solid rgba(33,37,41,.16);
    border-radius:.8rem;
    color:#343a40;
    cursor:pointer;
    display:inline-flex;
    flex:0 0 auto;
    gap:.55rem;
    height:52px;
    justify-content:center;
    max-width:100%;
    padding:.3rem .65rem .3rem .35rem;
    text-decoration:none;
    transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease;
}

.sigia-notification-trigger:hover{
    background:#f8f9fa;
    border-color:rgba(139,0,0,.35);
    color:var(--sigia-rojo);
}

.sigia-notification-trigger:focus-visible{
    box-shadow:0 0 0 .22rem rgba(139,0,0,.18);
    outline:2px solid var(--sigia-rojo);
    outline-offset:2px;
}

.sigia-notification-trigger-icon{
    align-items:center;
    background:rgba(139,0,0,.08);
    border-radius:.65rem;
    display:inline-flex;
    flex:0 0 42px;
    font-size:1.15rem;
    height:42px;
    justify-content:center;
    overflow:visible;
    position:relative;
    width:42px;
}

.sigia-notification-trigger-badge{
    align-items:center;
    background:#dc3545;
    border:2px solid #fff;
    border-radius:50%;
    color:#fff;
    display:flex;
    font-size:.58rem;
    font-weight:700;
    height:23px;
    justify-content:center;
    line-height:1;
    min-width:23px;
    padding:0 2px;
    position:absolute;
    right:1px;
    top:1px;
    white-space:nowrap;
    z-index:1;
}

.sigia-notification-trigger-label{
    font-size:.82rem;
    font-weight:700;
    line-height:1.1;
    white-space:nowrap;
}

@media (max-width:575.98px){
    .sigia-notification-trigger{
        padding:4px;
        width:52px;
    }

    .sigia-notification-trigger-label{
        position:absolute;
        width:1px;
        height:1px;
        padding:0;
        margin:-1px;
        overflow:hidden;
        clip:rect(0,0,0,0);
        white-space:nowrap;
        border:0;
    }
}

.sigia-notification-menu{
    border:0;
    min-width:0;
    padding:.75rem;
    width:min(380px,calc(100vw - 1.5rem));
}
.sigia-notification-list{max-height:430px;overflow-y:auto;}
.sigia-notification-item{border-top:1px solid rgba(33,37,41,.08);display:grid;gap:.65rem;grid-template-columns:auto minmax(0,1fr);padding:.75rem;position:relative;}
.sigia-notification-item.is-unread{background:#fff5f5;border-left:3px solid var(--sigia-rojo);}
.sigia-notification-item-icon{font-size:1.15rem;}
.sigia-notification-copy{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;}
.min-w-0{min-width:0;}

.sigia-notification-title{
    color:#212529;
    font-weight:800;
    margin-bottom:.35rem;
}

.sigia-notification-future{
    border-top:1px solid rgba(33,37,41,.08);
    display:grid;
    gap:.25rem;
    padding-top:.75rem;
}

.sigia-notification-future span{
    color:#6c757d;
    font-size:.78rem;
}

.sigia-header-user-card{
    align-items:center;
    background:#f8f9fa;
    border:1px solid var(--sigia-borde);
    border-radius:var(--sigia-radio);
    display:flex;
    gap:.85rem;
    justify-content:space-between;
    padding:.8rem;
    width:100%;
}

.dashboard-welcome{
    border-left:5px solid var(--sigia-rojo)!important;
}

.dashboard-system-status{
    align-items:center;
    background:#eaf6ee;
    border:1px solid rgba(25,135,84,.16);
    border-radius:8px;
    color:#198754;
    display:inline-flex;
    font-weight:800;
    gap:.5rem;
    padding:.65rem .9rem;
}

.dashboard-dashboard-controls{
    min-width:180px;
}

.dashboard-dashboard-controls .form-label,
.dashboard-chart-filter .form-label{
    color:#6c757d;
    font-size:.82rem;
    font-weight:700;
}

.dashboard-chart-filter{
    min-width:190px;
}

.dashboard-metric-card{
    background:#fff;
    border:1px solid rgba(33,37,41,.08);
    border-radius:var(--sigia-radio);
    color:#212529;
    display:flex;
    gap:1rem;
    height:100%;
    padding:1rem;
    text-decoration:none;
    transition:box-shadow .2s ease, transform .2s ease;
}

.dashboard-metric-link{
    cursor:pointer;
}

.dashboard-metric-link:hover,
.dashboard-metric-link:focus-visible{
    box-shadow:var(--sigia-sombra);
    color:#212529;
    transform:translateY(-2px);
}

.dashboard-metric-link:focus-visible{
    outline:3px solid rgba(139,0,0,.25);
    outline-offset:2px;
}

.dashboard-metric-indicator{
    cursor:default;
}

.dashboard-metric-icon{
    align-items:center;
    border-radius:var(--sigia-radio);
    display:flex;
    flex:0 0 54px;
    font-size:1.65rem;
    height:54px;
    justify-content:center;
}

.dashboard-metric-content{
    display:grid;
    gap:.12rem;
    min-width:0;
}

.dashboard-metric-title{
    color:#6c757d;
    font-size:.86rem;
    font-weight:700;
}

.dashboard-metric-content strong{
    color:#212529;
    font-size:1.8rem;
    line-height:1.1;
}

.dashboard-metric-content strong.dashboard-metric-date{
    font-size:1.05rem;
    line-height:1.25;
}

.dashboard-metric-description{
    color:#6c757d;
    font-size:.84rem;
}

.dashboard-card-red .dashboard-metric-icon{
    background:rgba(139,0,0,.1);
    color:var(--sigia-rojo);
}

.dashboard-card-blue .dashboard-metric-icon{
    background:rgba(13,110,253,.1);
    color:#0d6efd;
}

.dashboard-card-green .dashboard-metric-icon{
    background:rgba(25,135,84,.1);
    color:#198754;
}

.dashboard-card-yellow .dashboard-metric-icon{
    background:rgba(255,193,7,.22);
    color:#997404;
}

.dashboard-card-purple .dashboard-metric-icon{
    background:rgba(111,66,193,.1);
    color:#6f42c1;
}

.dashboard-card-gray .dashboard-metric-icon{
    background:rgba(108,117,125,.12);
    color:#6c757d;
}

.dashboard-quick-actions{
    display:flex;
    flex-wrap:wrap;
    gap:.75rem;
}

.dashboard-quick-actions .btn{
    align-items:center;
    display:inline-flex;
    min-height:42px;
}

.dashboard-chart-card{
    min-height:100%;
}

.dashboard-chart-wrap{
    height:290px;
    position:relative;
}

.dashboard-chart-wrap-sm{
    height:245px;
}

.dashboard-chart-fallback{
    align-items:center;
    background:#f8f9fa;
    border:1px dashed rgba(33,37,41,.18);
    border-radius:8px;
    color:#6c757d;
    display:flex;
    flex-direction:column;
    gap:.5rem;
    inset:0;
    justify-content:center;
    padding:1rem;
    position:absolute;
    text-align:center;
}

.dashboard-chart-fallback i{
    color:var(--sigia-rojo);
    font-size:2rem;
}

.dashboard-news-card{
    background:#fff;
}

.dashboard-empty-news{
    align-items:center;
    background:#f8f9fa;
    border:1px dashed rgba(33,37,41,.18);
    border-radius:var(--sigia-radio);
    color:#6c757d;
    display:flex;
    gap:.75rem;
    padding:1rem;
}

.dashboard-empty-news i{
    color:#198754;
    font-size:1.5rem;
}

.dashboard-news-list{
    display:grid;
    gap:.85rem;
}

.dashboard-news-item{
    align-items:flex-start;
    background:#f8f9fa;
    border:1px solid rgba(33,37,41,.08);
    border-radius:var(--sigia-radio);
    display:flex;
    gap:.75rem;
    padding:.9rem;
}

.dashboard-news-item i{
    font-size:1.35rem;
    line-height:1;
    margin-top:.15rem;
}

.dashboard-news-item strong,
.dashboard-news-item span{
    display:block;
}

.dashboard-news-item span,
.dashboard-news-future li{
    color:#6c757d;
    font-size:.86rem;
}

.dashboard-news-future{
    border-top:1px solid rgba(33,37,41,.08);
    padding-top:1rem;
}

.dashboard-news-future li{
    align-items:center;
    display:flex;
}

.sigia-header-user-copy{
    display:grid;
    gap:.1rem;
    min-width:0;
}

.sigia-header-user-copy strong{
    color:#212529;
    font-size:.96rem;
    line-height:1.2;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.sigia-header-welcome,
.sigia-header-role,
.sigia-header-date{
    color:#6c757d;
    font-size:.78rem;
    line-height:1.25;
}

.sigia-header-date{
    align-items:flex-start;
    display:flex;
}

.sigia-header-date-lines{
    display:grid;
    gap:.05rem;
}

.sigia-header-role{
    color:var(--sigia-rojo);
    font-weight:700;
}

.sigia-header-logout{
    flex:0 0 auto;
    white-space:nowrap;
}

.admin-page-heading{
    background:#fff;
    border:1px solid rgba(33,37,41,.08);
    border-radius:var(--sigia-radio);
    padding:1rem;
}

.admin-toolbar{
    background:#fff;
    border:1px solid rgba(33,37,41,.08);
    border-radius:var(--sigia-radio);
    padding:1rem;
}

.admin-toolbar-form{
    flex:1 1 auto;
    min-width:0;
}

.admin-toolbar-field{
    display:grid;
    gap:.35rem;
}

.admin-toolbar-field .form-label{
    margin-bottom:0;
}

.admin-toolbar-search{
    flex:1 1 360px;
    min-width:240px;
}

.admin-toolbar-role{
    flex:0 1 220px;
    min-width:180px;
}

.admin-toolbar .form-control,
.admin-toolbar .form-select,
.admin-toolbar .input-group-text,
.admin-toolbar-control{
    height:42px;
    min-height:42px;
}

.admin-toolbar .input-group .form-control{
    flex:1 1 auto;
    min-width:0;
}

.admin-toolbar-control{
    align-items:center;
    display:inline-flex;
    justify-content:center;
    white-space:nowrap;
}

.admin-toolbar-actions{
    flex:0 0 auto;
}

.admin-counter{
    align-items:center;
    background:#f8f9fa;
    border:1px solid rgba(33,37,41,.08);
    border-radius:var(--sigia-radio);
    display:flex;
    gap:.5rem;
    justify-content:center;
    min-height:42px;
    padding:.35rem .85rem;
}

.admin-counter span{
    color:var(--sigia-rojo);
    font-size:1.35rem;
    font-weight:800;
    line-height:1;
}

.admin-counter small{
    color:#6c757d;
    font-weight:600;
    line-height:1.1;
}

.admin-table thead th{
    background:#f8f9fa;
    color:#495057;
    font-size:.85rem;
    letter-spacing:0;
    text-transform:uppercase;
    vertical-align:middle;
}

.admin-table{
    min-width:920px;
}

.admin-table th,
.admin-table td{
    white-space:nowrap;
    vertical-align:middle;
}

.admin-table td:first-child,
.admin-table td:nth-child(2){
    white-space:normal;
}

.admin-actions .btn{
    align-items:center;
    display:inline-flex;
    height:34px;
    justify-content:center;
    padding:0;
    width:34px;
}

.page-link{
    border-color:var(--sigia-borde);
    color:var(--sigia-rojo);
    font-weight:700;
    min-height:38px;
}

.page-item.active .page-link{
    background:var(--sigia-rojo);
    border-color:var(--sigia-rojo);
}

.modal-content{
    border:0;
    border-radius:var(--sigia-radio);
}

.text-bg-purple{
    background:#6f42c1!important;
    color:#fff!important;
}

.bitacora-toolbar .admin-toolbar-control{
    min-width:112px;
}

.bitacora-table{
    min-width:1180px;
}

.bitacora-description{
    max-width:360px;
    min-width:260px;
    white-space:normal!important;
}

.backup-note{
    align-items:center;
    background:#eaf6ee;
    border:1px solid rgba(25,135,84,.16);
    border-radius:var(--sigia-radio);
    color:#198754;
    display:inline-flex;
    font-weight:800;
    gap:.5rem;
    padding:.65rem .9rem;
}

.backup-table{
    min-width:1040px;
}

.backup-actions .btn{
    height:34px;
    padding:0;
    width:34px;
}

.config-form{
    max-width:1180px;
}

.config-logo-box{
    align-items:center;
    background:#f8f9fa;
    border:1px solid var(--sigia-borde);
    border-radius:var(--sigia-radio);
    display:flex;
    gap:1rem;
    min-height:132px;
    padding:1rem;
}

.config-logo-preview{
    background:#fff;
    border:1px solid var(--sigia-borde);
    border-radius:var(--sigia-radio);
    flex:0 0 auto;
    height:88px;
    object-fit:contain;
    padding:.5rem;
    width:112px;
}

.config-color-control .form-control-color{
    flex:0 0 74px;
    min-height:42px;
    padding:.35rem;
}

.config-color-control .input-group-text{
    color:#495057;
    font-weight:700;
    min-width:110px;
}

.stats-filter-form{
    flex:1 1 auto;
    min-width:0;
}

.stats-filter-grid{
    display:grid;
    gap:.85rem;
    grid-template-columns:repeat(4, minmax(150px, 1fr));
}

.stats-export-actions{
    display:flex;
    flex:0 0 auto;
    flex-wrap:wrap;
    gap:.65rem;
    justify-content:flex-end;
}

.stats-filter-card .form-select,
.stats-filter-card .btn{
    min-height:42px;
}

.stats-metric-card{
    min-height:118px;
}

.stats-summary-list{
    display:grid;
    gap:1rem;
}

.stats-summary-table{
    border:1px solid rgba(33,37,41,.08);
    border-radius:var(--sigia-radio);
    overflow:hidden;
}

.stats-summary-table h3{
    background:#f8f9fa;
    border-bottom:1px solid rgba(33,37,41,.08);
    color:#343a40;
    font-size:.92rem;
    font-weight:800;
    margin:0;
    padding:.75rem .9rem;
}

.stats-summary-table .table th{
    color:#495057;
    font-size:.78rem;
    text-transform:uppercase;
}

.stats-summary-table .table td,
.stats-summary-table .table th{
    padding:.65rem .85rem;
}

.pagination{
    row-gap:.35rem;
}

@media (max-width: 991.98px){
    .admin-sigia{
        display:block;
    }

    .admin-sidebar{
        border-bottom:1px solid var(--sigia-borde);
        border-right:0;
        min-height:auto;
        padding:1rem;
        width:100%;
    }

    .admin-sidebar-brand{
        justify-content:center;
        padding-bottom:.9rem;
    }

    .admin-menu{
        display:flex;
        flex-wrap:wrap;
        justify-content:center;
        margin-top:.9rem;
    }

    .admin-menu-link{
        flex:1 1 220px;
        justify-content:center;
        max-width:280px;
        min-height:44px;
        padding:.7rem .9rem;
        text-align:center;
    }

    .sigia-institutional-header{
        grid-template-columns:76px minmax(0, 1fr);
        padding:1rem;
    }

    .sigia-header-actions{
        grid-column:1 / -1;
        justify-content:center;
    }

    .sigia-header-user-card{
        flex:1 1 auto;
        max-width:720px;
    }

    .sigia-header-logo img{
        max-height:64px;
    }

    .admin-main{
        padding:1.25rem;
    }

    .dashboard-metric-card{
        padding:.95rem;
    }

    .dashboard-chart-wrap{
        height:270px;
    }

    .dashboard-chart-wrap-sm{
        height:240px;
    }

    .stats-filter-grid{
        grid-template-columns:repeat(2, minmax(180px, 1fr));
    }
}

@media (max-width: 575.98px){
    .sigia-institutional-header{
        grid-template-columns:1fr;
        padding:1rem;
        text-align:center;
    }

    .sigia-header-logo{
        justify-content:center;
    }

    .sigia-header-logo img{
        max-height:60px;
    }

    .sigia-header-acronym{
        font-size:1.25rem;
    }

    .sigia-header-system{
        font-size:1rem;
    }

    .sigia-header-user-card{
        align-items:stretch;
        flex-direction:column;
        text-align:left;
    }

    .sigia-header-actions{
        align-items:stretch;
        flex-direction:column;
    }

    .sigia-notification-button{
        width:100%;
    }

    .sigia-header-logout{
        width:100%;
    }

    .admin-sidebar{
        padding:.85rem;
    }

    .admin-sidebar-brand{
        align-items:center;
        gap:.65rem;
        justify-content:flex-start;
        padding-bottom:.75rem;
    }

    .admin-sidebar-brand img{
        height:46px;
        width:46px;
    }

    .admin-sidebar-brand strong{
        font-size:1.08rem;
    }

    .admin-menu{
        gap:.45rem;
    }

    .admin-menu-link{
        flex:1 1 100%;
        justify-content:flex-start;
        max-width:none;
        min-height:42px;
        padding:.65rem .8rem;
    }

    .admin-page-heading{
        padding:.9rem;
    }

    .admin-page-heading h2{
        font-size:1.15rem;
    }

    .dashboard-quick-actions .btn{
        justify-content:center;
        width:100%;
    }

    .dashboard-chart-wrap,
    .dashboard-chart-wrap-sm{
        height:235px;
    }

    .dashboard-metric-card{
        align-items:center;
        gap:.85rem;
        min-height:104px;
    }

    .dashboard-metric-icon{
        flex-basis:48px;
        font-size:1.45rem;
        height:48px;
    }

    .dashboard-metric-content strong{
        font-size:1.55rem;
    }

    .dashboard-dashboard-controls,
    .dashboard-chart-filter,
    .dashboard-chart-filter .form-select{
        width:100%;
    }

    .stats-filter-grid{
        grid-template-columns:1fr;
    }

    .stats-export-actions,
    .stats-export-actions .btn{
        width:100%;
    }

    .admin-main{
        padding:1rem;
    }

    .admin-toolbar{
        padding:.85rem;
    }

    .admin-toolbar-form,
    .admin-toolbar-field,
    .admin-toolbar-actions,
    .admin-toolbar-control,
    .admin-counter,
    .admin-toolbar-actions .btn{
        width:100%;
    }

    .admin-toolbar-search,
    .admin-toolbar-role{
        flex-basis:100%;
        min-width:0;
    }

    .admin-toolbar-actions{
        align-items:stretch!important;
    }

    .admin-counter{
        justify-content:center;
    }

    .js-usuario-form > .col-12.d-flex{
        align-items:stretch;
        flex-direction:column-reverse;
    }

    .js-usuario-form > .col-12.d-flex .btn{
        width:100%;
    }

    .config-logo-box{
        align-items:stretch;
        flex-direction:column;
    }

    .config-logo-preview{
        height:110px;
        width:100%;
    }

    .config-actions{
        align-items:stretch;
        flex-direction:column-reverse;
    }

    .config-actions .btn{
        width:100%;
    }

    .backup-note{
        justify-content:center;
        width:100%;
    }

    .admin-actions{
        justify-content:flex-start!important;
    }

    .panel-card .table-responsive{
        border-radius:0 0 12px 12px;
    }

    .pagination .page-link{
        min-width:38px;
        text-align:center;
    }
}

@media (max-width: 430px){
    .card-body.p-4{
        padding:1rem!important;
    }

    .sigia-institutional-header{
        padding:.85rem;
    }

    .sigia-header-user-card{
        padding:.75rem;
    }

    .dashboard-chart-card h2,
    .dashboard-news-card h2{
        font-size:1rem;
        line-height:1.25;
    }
}
.ts-chart-wrap{
    position: relative;
    min-height: 260px;
}

.ts-photo-placeholder{
    align-items: center;
    background: #eef2f7;
    border: 1px solid #d8dee8;
    border-radius: 50%;
    color: #8490a3;
    display: inline-flex;
    font-size: 1.35rem;
    height: 42px;
    justify-content: center;
    width: 42px;
}

.ts-photo-large{
    font-size: 3rem;
    height: 96px;
    width: 96px;
}

.ts-progress{
    min-width: 100px;
    height: .55rem;
}

.ts-clickable-card{
    cursor: pointer;
    transition: transform .18s ease, box-shadow .18s ease;
}

.ts-clickable-card:hover,
.ts-clickable-card:focus-within{
    box-shadow: 0 .6rem 1.4rem rgba(31, 45, 61, .14) !important;
    transform: translateY(-3px);
}

.ts-actions-column{
    width: 88px;
    white-space: nowrap;
}

.ts-quick-data small{
    font-size: .78rem;
}

.ts-answer-list dt,
.ts-answer-list dd{
    border-bottom: 1px solid #edf0f4;
    padding-bottom: .55rem;
    padding-top: .55rem;
    overflow-wrap: anywhere;
}

.ts-timeline{
    border-left: 3px solid var(--sigia-rojo);
    margin-left: .75rem;
    padding-left: 1.5rem;
}

.ts-timeline-item{
    background: #fff;
    border-radius: .75rem;
    box-shadow: 0 .125rem .5rem rgba(0,0,0,.08);
    margin-bottom: 1rem;
    padding: 1rem;
    position: relative;
}

.ts-timeline-item::before{
    background: var(--sigia-rojo);
    border: 3px solid #fff;
    border-radius: 50%;
    content: "";
    height: 15px;
    left: -2.05rem;
    position: absolute;
    top: 1.15rem;
    width: 15px;
}

.ts-timeline-item time{
    color: #6c757d;
    display: block;
    font-size: .8rem;
    margin-bottom: .35rem;
}

.ts-student-photo{
    align-items: center;
    background: #eef2f7;
    border: 1px solid #d8dee8;
    border-radius: .65rem;
    color: #8490a3;
    display: inline-flex;
    font-size: 4rem;
    height: 150px;
    justify-content: center;
    width: 120px;
}

.ts-expediente-header{
    overflow: hidden;
}

.ts-health-description{
    overflow-wrap: anywhere;
    white-space: normal;
}

.ts-general-information{
    max-width: 100%;
    min-width: 0;
}

.ts-info-block{
    border: 1px solid rgba(139,0,0,.13);
    border-radius: .9rem;
    box-shadow: 0 .3rem .9rem rgba(33,37,41,.07);
    min-width: 0;
    overflow: hidden;
}

.ts-info-block-header{
    align-items: center;
    background: linear-gradient(135deg, var(--sigia-rojo), var(--sigia-rojo-oscuro));
    color: #fff;
    display: flex;
    gap: .7rem;
    min-height: 58px;
    padding: .9rem 1.1rem;
}

.ts-info-block-header i{
    align-items: center;
    background: rgba(255,255,255,.15);
    border-radius: .6rem;
    display: inline-flex;
    flex: 0 0 2.25rem;
    font-size: 1.05rem;
    height: 2.25rem;
    justify-content: center;
}

.ts-info-block-header h5{
    font-size: 1rem;
    font-weight: 700;
    margin: 0;
}

.ts-technical-sheet{
    margin: 0;
}

.ts-technical-row{
    align-items: start;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(145px, 38%) minmax(0, 1fr);
    margin: 0;
    padding: .8rem 1.1rem;
}

.ts-technical-row:nth-child(odd){
    background: #fff;
}

.ts-technical-row:nth-child(even){
    background: #f6f7f9;
}

.ts-technical-row dt{
    color: #5d6570;
    font-size: .86rem;
    font-weight: 600;
    margin: 0;
}

.ts-technical-row dd{
    color: #212529;
    font-weight: 600;
    margin: 0;
    min-width: 0;
    overflow-wrap: anywhere;
    text-align: left;
    white-space: pre-wrap;
}

.ts-form-record{
    border-radius: 1rem;
    min-width: 0;
    overflow: hidden;
}

.ts-form-record-summary{
    align-items: center;
    background: linear-gradient(135deg, #fff, #faf7f7);
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: 1.15rem 1.25rem;
}

.ts-form-record-icon{
    align-items: center;
    background: rgba(139,0,0,.1);
    border-radius: .8rem;
    color: var(--sigia-rojo);
    display: inline-flex;
    flex: 0 0 2.8rem;
    font-size: 1.25rem;
    height: 2.8rem;
    justify-content: center;
}

.ts-form-record-detail{
    background: #f4f6f8;
    border-top: 1px solid rgba(33,37,41,.08);
    padding: 1.25rem;
}

.ts-form-consultation > [class*="col-"]{
    min-width: 0;
}

.ts-form-topic-card{
    border: 1px solid rgba(139,0,0,.12);
    border-radius: .85rem;
    box-shadow: 0 .2rem .65rem rgba(33,37,41,.06);
    min-width: 0;
    overflow: hidden;
}

.ts-form-topic-header{
    align-items: center;
    background: linear-gradient(135deg, var(--sigia-rojo), var(--sigia-rojo-oscuro));
    color: #fff;
    display: flex;
    gap: .7rem;
    min-height: 55px;
    padding: .85rem 1rem;
}

.ts-form-topic-header i{
    align-items: center;
    background: rgba(255,255,255,.15);
    border-radius: .55rem;
    display: inline-flex;
    flex: 0 0 2.1rem;
    height: 2.1rem;
    justify-content: center;
}

.ts-form-topic-header h5{
    font-size: .98rem;
    font-weight: 700;
    line-height: 1.3;
    margin: 0;
}

.ts-representation-answers,
.ts-representation-answers .ts-technical-sheet,
.ts-representation-answers .ts-technical-row,
.ts-representation-answers .ts-technical-row dd{
    height: auto;
    max-height: none;
    overflow: visible;
}

.ts-representation-answers .ts-technical-row{
    align-items: start;
    min-width: 0;
}

.ts-representation-answers .ts-technical-row dt,
.ts-representation-answers .ts-technical-row dd{
    min-width: 0;
    overflow-wrap: anywhere;
    text-overflow: clip;
    white-space: normal;
    word-break: break-word;
}

@media (max-width:575.98px){
    .ts-technical-row{
        gap: .2rem;
        grid-template-columns: minmax(0,1fr);
        padding: .8rem 1rem;
    }

    .ts-technical-row dt{
        font-size: .78rem;
    }

    .ts-form-record-summary{
        align-items: stretch;
        flex-direction: column;
        padding: 1rem;
    }

    .ts-form-record-summary > .btn{
        width: 100%;
    }

    .ts-form-record-detail{
        padding: .85rem;
    }
}

.ts-expediente-section{
    display: none;
}

.ts-expediente-section.active{
    animation: ts-section-in .18s ease;
    display: block;
}

.ts-expediente-dashboard,
.ts-expediente-section,
.ts-expediente-module-heading{
    max-width: 100%;
    min-width: 0;
}

.ts-dashboard-grid > [class*="col-"]{
    min-width: 0;
}

.ts-dashboard-card{
    --ts-card-accent: var(--sigia-rojo);
    background: linear-gradient(145deg, #fff 0%, #fafbfc 100%);
    border: 1px solid rgba(33,37,41,.1);
    border-top: 4px solid var(--ts-card-accent);
    border-radius: 1rem;
    box-shadow: 0 .35rem 1rem rgba(33,37,41,.08);
    color: #212529;
    cursor: pointer;
    font: inherit;
    min-height: 245px;
    overflow: hidden;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.ts-dashboard-card:hover,
.ts-dashboard-card:focus-visible{
    border-color: var(--ts-card-accent);
    box-shadow: 0 .7rem 1.5rem rgba(33,37,41,.13);
    outline: 0;
    transform: translateY(-3px);
}

.ts-dashboard-card-primary{--ts-card-accent:#8b0000}
.ts-dashboard-card-info{--ts-card-accent:#0d6efd}
.ts-dashboard-card-secondary{--ts-card-accent:#6c757d}
.ts-dashboard-card-warning{--ts-card-accent:#d28100}
.ts-dashboard-card-success{--ts-card-accent:#198754}
.ts-dashboard-card-danger{--ts-card-accent:#b02a37}

.ts-dashboard-card-heading{
    align-items: center;
    display: flex;
    gap: .85rem;
    margin-bottom: 1.15rem;
    min-width: 0;
}

.ts-dashboard-card-heading > :last-child,
.ts-dashboard-card-summary strong{
    overflow-wrap: anywhere;
}

.ts-dashboard-icon{
    align-items: center;
    background: rgba(139,0,0,.08);
    background: color-mix(in srgb, var(--ts-card-accent) 11%, white);
    border-radius: .8rem;
    color: var(--ts-card-accent);
    display: inline-flex;
    flex: 0 0 2.75rem;
    font-size: 1.3rem;
    height: 2.75rem;
    justify-content: center;
}

.ts-dashboard-card-summary{
    display: grid;
    gap: .75rem;
    margin-bottom: 1rem;
}

.ts-dashboard-card-summary > span{
    border-bottom: 1px solid rgba(33,37,41,.08);
    display: block;
    padding-bottom: .65rem;
}

.ts-dashboard-card-summary small{
    color: #6c757d;
    display: block;
    margin-bottom: .15rem;
}

.ts-dashboard-card-summary strong{
    display: block;
    line-height: 1.35;
}

.ts-dashboard-card-link{
    color: var(--ts-card-accent);
    font-weight: 700;
}

.ts-dashboard-back{
    max-width: 100%;
    white-space: normal;
}

@media (max-width:575.98px){
    .ts-dashboard-card{
        min-height: 0;
    }

    .ts-dashboard-card .card-body{
        padding: 1.15rem !important;
    }

    .ts-dashboard-card-heading{
        align-items: flex-start;
    }
}

@media (prefers-reduced-motion:reduce){
    .ts-dashboard-card{
        transition: none;
    }
}

.ts-main-menu-offcanvas{
    max-width: 88vw;
    width: 310px !important;
}

.ts-main-menu-offcanvas .admin-menu{
    display: block;
}

.ts-main-menu-offcanvas .admin-menu-link{
    justify-content: flex-start;
    max-width: none;
    width: 100%;
}

@media (min-width:768px) and (max-width:991.98px){
    .ts-main-navigation{
        display: flex;
    }
    .ts-main-navigation > .admin-sidebar{
        border-bottom: 0;
        border-right: 1px solid var(--sigia-borde);
        min-height: 100vh;
        padding: .75rem;
        width: 220px;
    }
    .ts-main-navigation > .admin-sidebar .admin-menu{
        display: block;
        margin-top: .75rem;
    }
    .ts-main-navigation > .admin-sidebar .admin-menu-link{
        justify-content: flex-start;
        max-width: none;
        text-align: left;
        width: 100%;
    }
    .ts-main-navigation > .admin-sidebar .admin-sidebar-brand{
        justify-content: flex-start;
    }
}

@keyframes ts-section-in{
    from{opacity:0; transform:translateY(3px)}
    to{opacity:1; transform:none}
}

.ts-integral-profile{
    background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(240,244,249,.96));
    border-left: 5px solid var(--sigia-rojo) !important;
}

.ts-health-documents{
    display: grid;
    gap: .75rem;
    min-width: 0;
}

.ts-health-document{
    align-items: center;
    background: #f8f9fa;
    border: 1px solid rgba(33,37,41,.1);
    border-radius: .75rem;
    display: grid;
    gap: .85rem;
    grid-template-columns: auto minmax(0,1fr) auto;
    min-width: 0;
    padding: .85rem 1rem;
}

.ts-health-document-icon{
    align-items: center;
    background: rgba(176,42,55,.1);
    border-radius: .6rem;
    color: #b02a37;
    display: inline-flex;
    flex: 0 0 2.5rem;
    font-size: 1.25rem;
    height: 2.5rem;
    justify-content: center;
    width: 2.5rem;
}

.ts-health-document-data{
    min-width: 0;
}

.ts-health-document-data strong,
.ts-health-document-data small{
    display: block;
    overflow-wrap: anywhere;
    white-space: normal;
}

.ts-health-document-data small{
    margin-top: .2rem;
}

.ts-health-document-button{
    white-space: nowrap;
}

.ts-medical-form,
.ts-medical-history{
    border-radius: .9rem;
    min-width: 0;
    overflow: hidden;
}

.ts-medical-card-header{
    align-items: center;
    background: linear-gradient(135deg, var(--sigia-rojo), var(--sigia-rojo-oscuro));
    color: #fff;
    display: flex;
    justify-content: space-between;
    padding: 1rem 1.25rem;
}

.ts-medical-card-header p{
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .06em;
    opacity: .8;
    text-transform: uppercase;
}

.ts-medical-card-header > i{
    font-size: 1.7rem;
}

.ts-medical-history-table{
    min-width: 1050px;
}

.ts-medical-history-table thead th{
    background: #f0f2f5;
    border-bottom: 2px solid rgba(139,0,0,.18);
    color: #41464b;
    font-size: .78rem;
    letter-spacing: .02em;
    padding: .85rem;
    vertical-align: middle;
}

.ts-medical-history-table td{
    padding: .85rem;
    vertical-align: top;
}

.ts-medical-long-text{
    max-width: 320px;
    min-width: 210px;
    overflow-wrap: anywhere;
    white-space: normal;
    word-break: break-word;
}

@media (max-width:575.98px){
    .ts-health-document{
        align-items: start;
        grid-template-columns: auto minmax(0,1fr);
        padding: .8rem;
    }

    .ts-health-document-button{
        grid-column: 1 / -1;
        white-space: normal;
        width: 100%;
    }
}

.oa-metric-icon{
    align-items:center;
    background:rgba(139,0,0,.1);
    border-radius:.8rem;
    color:var(--sigia-rojo);
    display:inline-flex;
    flex:0 0 3rem;
    font-size:1.35rem;
    height:3rem;
    justify-content:center;
}
.oa-tabs{gap:.5rem; overflow-x:auto; flex-wrap:nowrap; padding-bottom:.25rem}
.oa-tabs .nav-link{color:var(--sigia-rojo); font-weight:700; white-space:nowrap}
.oa-tabs .nav-link.active{background:var(--sigia-rojo)}
.oa-wrap{max-width:260px; overflow-wrap:anywhere; white-space:normal!important}
@media(max-width:575.98px){
    .oa-metrics .card-body{padding:.85rem}
    .oa-metrics .fs-3{font-size:1.45rem!important}
    .oa-tabs{margin-left:-.25rem; margin-right:-.25rem}
    .oa-form .modal-footer{align-items:stretch; flex-direction:column-reverse}
    .oa-form .modal-footer .btn{width:100%}
}

.sigia-pagination{
    max-width:100%;
    overflow:hidden;
}

.sigia-pagination .pagination{
    flex-wrap:nowrap;
    gap:.25rem;
}

.sigia-pagination .page-link{
    align-items:center;
    border-radius:.5rem;
    display:inline-flex;
    justify-content:center;
    min-height:2.45rem;
    min-width:2.45rem;
    padding:.4rem .65rem;
}

.sigia-pagination .page-link:focus-visible{
    box-shadow:0 0 0 .25rem rgba(139,0,0,.25);
    outline:2px solid transparent;
}

.sigia-pagination .page-item.active .page-link{
    background-color:var(--sigia-rojo);
    border-color:var(--sigia-rojo);
}

.sigia-pagination-ellipsis{
    background:transparent!important;
    border-color:transparent!important;
    color:#6c757d!important;
    pointer-events:none;
}

.sigia-pagination-mobile-status{
    display:none;
    font-weight:600;
    padding:0 .75rem;
    text-align:center;
    white-space:nowrap;
}

@media (max-width:767.98px){
    .sigia-pagination .pagination{gap:.15rem}
    .sigia-pagination .page-link{min-height:2.35rem;min-width:2.35rem;padding:.35rem .5rem}
}

@media (max-width:575.98px){
    .sigia-pagination-number,
    .sigia-pagination-control:first-child,
    .sigia-pagination-control:last-child{display:none}
    .sigia-pagination-mobile-status{display:list-item}
    .sigia-pagination .pagination{justify-content:space-between!important}
}

@media print{
    .admin-sidebar,
    .sigia-institutional-header,
    .admin-page-heading,
    .ts-expediente-section:not(#resumen),
    #resumen .btn,
    .ts-expediente-header .btn{
        display: none !important;
    }

    .admin-content,
    .admin-main{
        margin: 0 !important;
        padding: 0 !important;
        width: 100% !important;
    }

}
