/*
==========================================
SGME
Sistema de Gestión de Matrículas Escolares
Versión 0.1
==========================================
*/

:root{

    /* Colores */

    --primary:#355CFF;
    --primary-dark:#2848d6;

    --background:#eef3fb;

    --glass:rgba(255,255,255,.68);

    --glass-border:rgba(255,255,255,.55);

    --text:#23304d;

    --text-light:#6b7280;

    --success:#22c55e;

    --warning:#f59e0b;

    --danger:#ef4444;

    --radius:22px;

}


/* Reset */

*{

    margin:0;

    padding:0;

    box-sizing:border-box;

    font-family:Segoe UI,Arial,sans-serif;

}


body{

    background:
    radial-gradient(circle at top left,#b9d7ff 0%,transparent 35%),
    radial-gradient(circle at bottom right,#d5c7ff 0%,transparent 35%),
    linear-gradient(135deg,#edf3ff,#f7faff);

    min-height:100vh;

    color:var(--text);

}

/* Las plantillas contienen CSS propio para impresión. Esta protección evita
   que sus reglas globales reemplacen el tema Glass mientras se editan o ven
   dentro del sistema; no se aplica al imprimir. */
@media screen{
    html:has(body.sgme-app-body),
    body.sgme-app-body{
        width:auto !important;
        min-height:100vh !important;
        margin:0 !important;
        background:
            radial-gradient(circle at top left,#b9d7ff 0%,transparent 35%),
            radial-gradient(circle at bottom right,#d5c7ff 0%,transparent 35%),
            linear-gradient(135deg,#edf3ff,#f7faff) !important;
        color:var(--text) !important;
    }
}


/* Tarjeta Glass */

.glass{

    background:var(--glass);

    border:1px solid var(--glass-border);

    backdrop-filter:blur(25px);

    -webkit-backdrop-filter:blur(25px);

    border-radius:var(--radius);

    box-shadow:0 25px 60px rgba(0,0,0,.10);

}


/* Botón principal */

.btn-primary{

    background:linear-gradient(135deg,var(--primary),#5d8cff);

    color:white;

    border:none;

    padding:14px 24px;

    border-radius:16px;

    cursor:pointer;

    transition:.25s;

    font-weight:600;

}


.btn-primary:hover{

    transform:translateY(-2px);

    box-shadow:0 15px 30px rgba(53,92,255,.35);

}


/* Inputs */

.input{

    width:100%;

    padding:14px;

    border-radius:16px;

    border:1px solid rgba(0,0,0,.08);

    background:rgba(255,255,255,.60);

    outline:none;

    transition:.25s;

}


.input:focus{

    border-color:var(--primary);

    box-shadow:0 0 0 4px rgba(53,92,255,.12);

}


/* Títulos */

.title{

    font-size:30px;

    font-weight:700;

}


.subtitle{

    color:var(--text-light);

    margin-top:8px;

} 
.install-page{
    min-height:100vh;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:30px;
}

.install-card{
    width:420px;
    max-width:100%;
    padding:34px;
}

.install-header{
    text-align:center;
    margin-bottom:28px;
}

.install-logo{
    width:76px;
    height:76px;
    margin:0 auto 16px;
    border-radius:24px;
    background:linear-gradient(135deg,var(--primary),#5d8cff);
    display:flex;
    align-items:center;
    justify-content:center;
    color:white;
    font-size:24px;
    font-weight:700;
    box-shadow:0 18px 40px rgba(53,92,255,.35);
}

.login-school-logo{
    width:104px;
    height:112px;
    margin:0 auto 16px;
}

.login-school-logo img{
    width:100%;
    height:100%;
    object-fit:contain;
    filter:drop-shadow(0 12px 20px rgba(15,23,42,.18));
}

.password-help{
    position:relative;
    display:inline-block;
}

.password-help summary{
    cursor:pointer;
    list-style:none;
}

.password-help summary::-webkit-details-marker{
    display:none;
}

.password-help summary:focus-visible{
    outline:3px solid rgba(53,92,255,.22);
    outline-offset:3px;
}

.password-help-bubble{
    position:absolute;
    z-index:10;
    left:50%;
    bottom:calc(100% + 14px);
    width:290px;
    max-width:calc(100vw - 48px);
    padding:14px 16px;
    border:1px solid rgba(53,92,255,.2);
    border-radius:15px;
    background:#fff;
    box-shadow:0 16px 36px rgba(35,48,77,.18);
    color:var(--text);
    font-size:14px;
    line-height:1.45;
    text-align:left;
    transform:translateX(-50%);
}

.password-help-bubble::after{
    content:"";
    position:absolute;
    top:100%;
    left:50%;
    width:12px;
    height:12px;
    background:#fff;
    border-right:1px solid rgba(53,92,255,.2);
    border-bottom:1px solid rgba(53,92,255,.2);
    transform:translate(-50%,-6px) rotate(45deg);
}

.message{
    margin-bottom:18px;
    padding:14px;
    border-radius:16px;
    background:rgba(255,255,255,.55);
    font-size:14px;
}
.app-layout{
    min-height:100vh;
    display:grid;
    grid-template-columns:280px 1fr;
    gap:24px;
    padding:24px;
}

.sidebar{
    padding:24px;
    min-height:calc(100vh - 48px);
}

.sidebar-logo{
    text-align:center;
    margin-bottom:32px;
}

.sidebar-logo strong{
    display:block;
    font-size:22px;
    margin-top:10px;
}

.sidebar-logo span{
    font-size:13px;
    color:var(--text-light);
}

.sidebar-school-logo{
    width:82px;
    height:88px;
    margin:0 auto 12px;
    display:flex;
    align-items:center;
    justify-content:center;
}

.sidebar-school-logo img{
    width:100%;
    height:100%;
    object-fit:contain;
    filter:drop-shadow(0 10px 16px rgba(15,23,42,.18));
}

.sidebar-menu{
    display:flex;
    flex-direction:column;
    gap:10px;
}

.sidebar-menu a{
    text-decoration:none;
    color:var(--text);
    padding:14px 16px;
    border-radius:16px;
    background:rgba(255,255,255,.35);
}

.sidebar-menu a:hover{
    background:rgba(255,255,255,.65);
}

.main-content{
    min-height:calc(100vh - 48px);
}
table{
    width:100%;
    border-collapse:separate;
    border-spacing:0 10px;
}

thead th{
    color:var(--text);
    font-size:14px;
    padding:12px;
}

tbody tr{
    background:rgba(255,255,255,.45);
}

tbody td{
    padding:14px 12px;
    border-top:1px solid rgba(255,255,255,.5);
    border-bottom:1px solid rgba(255,255,255,.5);
}

tbody td:first-child{
    border-radius:14px 0 0 14px;
}

tbody td:last-child{
    border-radius:0 14px 14px 0;
}

.message{
    background:rgba(255,255,255,.65);
    padding:14px 18px;
    border-radius:16px;
    margin:18px 0;
}
.btn-link{
    text-decoration:none;
    font-weight:600;
    color:var(--primary);
}

.btn-link.danger{
    color:var(--danger);
}

.table-actions{
    display:flex;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
    gap:8px;
}

.table-actions form{
    margin:0;
}

.btn-action{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    min-height:36px;
    padding:7px 12px;
    border:1px solid transparent;
    border-radius:11px;
    font:inherit;
    font-size:13px;
    font-weight:700;
    line-height:1;
    text-decoration:none;
    cursor:pointer;
    transition:transform .2s, box-shadow .2s, background .2s;
}

.btn-action:hover{
    transform:translateY(-1px);
}

.btn-action-edit{
    color:var(--primary);
    background:#eef3ff;
    border-color:#dbe5ff;
}

.btn-action-edit:hover{
    box-shadow:0 8px 18px rgba(53,92,255,.16);
}

.btn-action-danger{
    color:#b91c1c;
    background:#fef2f2;
    border-color:#fecaca;
}

.btn-action-danger:hover{
    background:#fee2e2;
    box-shadow:0 8px 18px rgba(239,68,68,.14);
}

.btn-action-success{
    color:#166534;
    background:#f0fdf4;
    border-color:#bbf7d0;
}

.btn-action-success:hover{
    background:#dcfce7;
    box-shadow:0 8px 18px rgba(22,101,52,.12);
}

.page-header-row{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
}

.oferta-filtros{
    max-width:320px;
    margin:28px 0 22px;
}

.oferta-filtros label{
    display:block;
    margin-bottom:8px;
    font-weight:700;
}

.oferta-grid{
    display:grid;
    grid-template-columns:minmax(190px,1.5fr) 110px 110px 90px 120px 110px;
    gap:14px;
    align-items:center;
}

.oferta-grid-header{
    padding:12px 16px;
    color:var(--text-light);
    font-size:12px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.04em;
}

.oferta-row{
    margin-bottom:10px;
    padding:14px 16px;
    border:1px solid rgba(255,255,255,.58);
    border-radius:16px;
    background:rgba(255,255,255,.46);
}

.oferta-curso small{
    display:block;
    margin-top:4px;
    color:var(--text-light);
}

.oferta-capacidad{
    min-width:0;
    padding:9px 10px;
}

.oferta-numero{
    text-align:center;
    font-weight:800;
}

.oferta-switch{
    display:flex;
    align-items:center;
    gap:8px;
    font-weight:700;
}

@media (max-width:1050px){
    .oferta-grid{
        grid-template-columns:1.5fr 100px 90px 90px 110px;
    }

    .oferta-grid > :nth-child(4),
    .oferta-grid-header > :nth-child(4){
        display:none;
    }
}

.datos-admin-section{margin-top:22px;padding:22px;border:1px solid rgba(53,92,255,.10);border-radius:20px;background:rgba(255,255,255,.48);}
.datos-admin-section .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.datos-admin-section label{display:block;margin-bottom:7px;font-weight:700;}
.buscar-rut{margin-top:7px;padding:0;border:0;background:transparent;cursor:pointer;}
@media(max-width:760px){.datos-admin-section .form-grid{grid-template-columns:1fr;}}

.menu-section{
    margin:22px 10px 8px;
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:var(--text-light);
    font-weight:700;
}

.sidebar-menu a{
    display:flex;
    align-items:center;
    gap:12px;
}

.sidebar-menu a i{
    font-size:18px;
    color:var(--primary);
}
.dashboard-card{
    display:block;
    padding:28px;
    text-decoration:none;
    color:inherit;
    background:rgba(255,255,255,.45);
    backdrop-filter:blur(20px);
    -webkit-backdrop-filter:blur(20px);
    border:1px solid rgba(255,255,255,.4);
    border-radius:22px;
    transition:.25s;
}

.dashboard-card h3{
    color:var(--text);
    margin-bottom:10px;
}

.dashboard-card p{
    color:var(--text-light);
    margin:0;
}

.dashboard-card:hover{
    transform:translateY(-6px);
    box-shadow:0 18px 40px rgba(0,0,0,.12);
}

.card{
    background:rgba(255,255,255,.58);
    border:1px solid rgba(255,255,255,.55);
    backdrop-filter:blur(24px);
    -webkit-backdrop-filter:blur(24px);
    border-radius:24px;
    padding:26px;
    box-shadow:0 18px 45px rgba(0,0,0,.08);
}

.card-hover{
    transition:.25s;
}

.card-hover:hover{
    transform:translateY(-5px);
    box-shadow:0 24px 55px rgba(0,0,0,.13);
}

.quick-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px;
    margin-top:24px;
}

.quick-card{
    text-decoration:none;
    color:var(--text);
}

.quick-card i{
    font-size:28px;
    color:var(--primary);
    margin-bottom:14px;
    display:block;
}

.stats-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px;
    margin-top:24px;
}

.badge{
    display:inline-block;
    padding:6px 12px;
    border-radius:999px;
    font-size:13px;
    font-weight:700;
}

.badge-success{
    background:#dcfce7;
    color:#166534;
}

.badge-warning{
    background:#fef3c7;
    color:#92400e;
}

.page-title{
    font-size:34px;
    font-weight:800;
    margin-bottom:8px;
}

.page-subtitle{
    color:var(--text-light);
    font-size:16px;
}

/* ==========================================
   BOTONES
========================================== */

.btn-primary,
.btn-secondary{

    display:inline-flex;
    align-items:center;
    justify-content:center;

    height:46px;

    padding:0 22px;

    border-radius:14px;

    font-weight:600;

    text-decoration:none;

    cursor:pointer;

    transition:.25s;

    font-size:15px;

}

.btn-primary{

    border:none;

    color:#fff;

    background:linear-gradient(135deg,var(--primary),#5d8cff);

}

.btn-primary:hover{

    transform:translateY(-2px);

    box-shadow:0 14px 30px rgba(53,92,255,.30);

}

.btn-secondary{

    background:white;

    color:var(--text);

    border:1px solid rgba(0,0,0,.08);

}

.btn-secondary:hover{

    border-color:var(--primary);

    color:var(--primary);

    background:#f8fbff;

}

.form-actions{

    display:flex;

    gap:12px;

    margin-top:30px;

}
/* ==========================================================
   TABLAS SGME
========================================================== */

.sgme-table{

    width:100%;

    border-collapse:collapse;

    table-layout:fixed;

    margin-top:20px;

}

.sgme-table thead th{

    padding:18px;

    font-size:15px;

    font-weight:700;

    color:var(--text);

}

.sgme-table tbody td{

    padding:20px 18px;

    border-top:1px solid rgba(0,0,0,.05);

    vertical-align:middle;

}

.sgme-table tbody tr{

    transition:.20s;

}

.sgme-table tbody tr:hover{

    background:rgba(77,110,255,.03);

}

.sgme-left{

    text-align:left;

}

.sgme-center{

    text-align:center;

}

.sgme-right{

    text-align:right;

}

/* ==========================================
   DASHBOARD V2
========================================== */

.dashboard-v2{
    animation:fadeUp .35s ease;
}

.dashboard-hero{
    display:flex;
    justify-content:space-between;
    align-items:center;
}

.kpi-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
    gap:18px;
}

.kpi-card{
    min-height:170px;
}

.kpi-icon{
    font-size:32px;
    margin-bottom:10px;
}

.kpi-card h3{
    color:var(--text-light);
    font-size:15px;
    margin-bottom:8px;
}

.kpi-card h1{
    font-size:42px;
    margin-bottom:4px;
}

.kpi-card p{
    color:var(--text-light);
}

.dashboard-grid-2{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
}

.chart-bars{
    display:flex;
    align-items:stretch;
    gap:12px;
    height:280px;
}

.enrollment-chart-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
}

.enrollment-chart-header .page-subtitle{
    margin-bottom:0;
}

.enrollment-current-total{
    min-width:145px;
    padding:13px 16px;
    border:1px solid rgba(53,92,255,.18);
    border-radius:16px;
    background:rgba(219,234,254,.58);
    text-align:right;
}

.enrollment-current-total span,
.enrollment-current-total small{
    display:block;
    color:var(--text-light);
    font-size:12px;
}

.enrollment-current-total strong{
    display:block;
    margin:3px 0;
    color:var(--primary);
    font-size:30px;
    line-height:1;
}

.enrollment-chart-legend{
    display:flex;
    flex-wrap:wrap;
    gap:10px 16px;
    margin:0 0 14px;
    color:var(--text-light);
    font-size:11px;
}

.enrollment-chart-legend span{
    display:inline-flex;
    align-items:center;
    gap:6px;
}

.enrollment-chart-legend i{
    width:10px;
    height:10px;
    border-radius:4px;
}

.legend-total{background:var(--primary)}
.legend-new{background:#f59e0b}
.legend-withdrawn{background:#dc2626}

.chart-bar-item{
    flex:1;
    text-align:center;
    display:grid;
    grid-template-rows:190px 2px 58px 28px;
}

.chart-positive{display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch}

.chart-value{
    font-size:12px;
    font-weight:700;
    margin-bottom:6px;
}

.chart-value small{
    display:block;
    color:var(--text-light);
    font-size:8px;
    font-weight:600;
}

.chart-monthly-enrolled{
    align-self:center;
    min-width:30px;
    margin:0 auto 5px;
    padding:3px 4px;
    border:1px solid rgba(245,158,11,.32);
    border-radius:8px;
    background:rgba(254,243,199,.9);
    color:#92400e;
    line-height:1.05;
}

.chart-monthly-enrolled strong,
.chart-monthly-enrolled small{
    display:block;
}

.chart-monthly-enrolled strong{
    font-size:10px;
}

.chart-monthly-enrolled small{
    margin-top:2px;
    font-size:8px;
}

.chart-monthly-enrolled.is-zero{
    border-color:rgba(148,163,184,.25);
    background:rgba(241,245,249,.7);
    color:#94a3b8;
}

.chart-bar{
    background:linear-gradient(135deg,var(--primary),#5d8cff);
    border-radius:14px 14px 6px 6px;
    box-shadow:0 12px 25px rgba(53,92,255,.22);
}

.chart-bar-future{
    height:6px;
    background:transparent;
}

.chart-zero-line{height:2px;background:rgba(100,116,139,.35)}
.chart-negative{display:flex;flex-direction:column;align-items:stretch;min-height:68px}
.chart-bar-retirados{background:linear-gradient(180deg,#ef4444,#b91c1c);border-radius:0 0 10px 10px;box-shadow:0 8px 18px rgba(220,38,38,.22)}
.chart-value-retirados{color:#b91c1c;font-size:12px;font-weight:800;margin-top:3px}

.chart-label{
    font-size:12px;
    margin-top:8px;
    color:var(--text-light);
}

.chart-label span,
.chart-label small{
    display:block;
}

.chart-label small{
    margin-top:1px;
    font-size:9px;
}

@media(max-width:600px){
    .enrollment-chart-header{
        flex-direction:column;
    }

    .enrollment-current-total{
        width:100%;
        text-align:left;
    }

    .chart-bars{
        gap:7px;
        overflow-x:auto;
    }

    .chart-bar-item{
        min-width:34px;
    }
}

.student-list-item.student-withdrawn,
.matricula-list-item.is-withdrawn{
    border:1px solid rgba(220,38,38,.35);
    background:rgba(254,226,226,.72) !important;
    color:#991b1b;
}

.student-withdrawn .student-number{
    background:rgba(220,38,38,.13);
    color:#b91c1c;
}

.student-withdrawn .priority-ticket{
    opacity:.45;
    cursor:not-allowed;
}

.withdrawn-state{
    color:#b91c1c;
    font-weight:800;
}

.withdrawal-date-field{
    width:min(320px,100%);
}

.withdrawal-date-field label{
    display:block;
}

.withdrawal-date-field label{
    margin-bottom:7px;
    font-weight:700;
}

.withdrawal-date-help{
    grid-column:1 / -1;
    color:var(--text-light);
    line-height:1.4;
}

.status-form:has(.withdrawal-date-field){
    display:grid;
    grid-template-columns:minmax(240px,320px) auto;
    align-items:flex-end;
    gap:14px;
    justify-content:start;
}

@media(max-width:600px){
    .status-form:has(.withdrawal-date-field){
        grid-template-columns:1fr;
    }

    .withdrawal-date-help{
        grid-column:auto;
    }
}

.course-row{
    display:grid;
    grid-template-columns:170px 1fr;
    gap:14px;
    align-items:center;
    margin-bottom:16px;
}

.course-row small{
    display:block;
    color:var(--text-light);
    margin-top:4px;
}

.progress-wrap{
    height:14px;
    background:#e5e7eb;
    border-radius:999px;
    overflow:hidden;
}

.progress-bar{
    height:14px;
    background:linear-gradient(135deg,var(--primary),#5d8cff);
    border-radius:999px;
}

.gender-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
}

.gender-card{
    background:rgba(255,255,255,.45);
    border-radius:20px;
    padding:28px;
    text-align:center;
}

.gender-icon{
    font-size:42px;
}

.gender-card h1{
    font-size:44px;
    margin:10px 0;
}

.gender-card p{
    color:var(--text-light);
}

.mini-card{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:14px;
    background:rgba(255,255,255,.45);
    border-radius:18px;
    padding:16px;
    margin-bottom:12px;
}

.mini-card p{
    color:var(--text-light);
    margin-top:4px;
}

.quick-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
}

.quick-actions a{
    text-decoration:none;
    color:var(--text);
    background:rgba(255,255,255,.45);
    border-radius:20px;
    padding:24px;
    display:flex;
    flex-direction:column;
    gap:10px;
    font-size:28px;
    transition:.25s;
}

.quick-actions a span{
    font-size:15px;
    font-weight:700;
}

.quick-actions a:hover{
    transform:translateY(-4px);
    box-shadow:0 18px 35px rgba(0,0,0,.10);
}

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

/* EDITOR DE PLANTILLAS */

.editor-toolbar{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    background:rgba(255,255,255,.55);
    padding:12px;
    border-radius:16px;
    margin:10px 0;
}

.editor-toolbar button,
.variable-btn{
    border:1px solid rgba(0,0,0,.08);
    background:#fff;
    border-radius:12px;
    padding:10px 14px;
    font-weight:700;
    cursor:pointer;
}

.editor-toolbar button:hover,
.editor-toolbar button:focus-visible{
    border-color:rgba(11,71,124,.35);
    background:rgba(255,255,255,.92);
    box-shadow:0 5px 14px rgba(11,71,124,.10);
}

.variable-btn-recommended{
    border-color:rgba(11,71,124,.28);
    background:rgba(219,234,254,.72);
    color:#0b477c;
}

.upload-resource-feedback{
    min-height:1.3em;
    margin-top:6px;
    color:#0b477c;
    font-size:.86rem;
    font-weight:600;
}

.document-editor{
    min-height:720px;
    background:white;
    border:1px solid rgba(0,0,0,.10);
    border-radius:18px;
    padding:35px;
    line-height:1.6;
    font-family:Arial, sans-serif;
    font-size:15px;
    outline:none;
}

/* En el editor las páginas se muestran continuas para evitar grandes zonas
   vacías. La paginación tamaño carta permanece activa en vista previa e impresión. */
.document-editor .doc-page{
    min-height:0 !important;
    height:auto !important;
    break-after:auto !important;
    page-break-after:auto !important;
}

.document-editor .doc-page + .doc-page{
    margin-top:16px;
    padding-top:16px;
    border-top:2px dashed #cbd5e1;
}

/* La vista previa del editor también se muestra de forma continua. Estas
   reglas no alcanzan la vista del documento generado ni su impresión. */
#previewContent .doc-page{
    min-height:0 !important;
    height:auto !important;
    break-after:auto !important;
    page-break-after:auto !important;
}

#previewContent .doc-page + .doc-page{
    margin-top:16px;
    padding-top:16px;
    border-top:2px dashed #cbd5e1;
}

.variable-btn{
    width:100%;
    text-align:left;
    margin-top:8px;
}

/* ==========================================
   DOCUMENTOS E IMPRESION
========================================== */

.documento-acciones{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
}

.documento-hoja{
    width:216mm;
    min-height:279mm;
    margin:0 auto;
    padding:18mm 18mm;
    background:#fff;
    color:#111827;
    box-shadow:0 20px 50px rgba(15,23,42,.12);
    font-family:Arial, Helvetica, sans-serif;
    font-size:11pt;
    line-height:1.45;
    box-sizing:border-box;
}

.documento-hoja table{
    width:100%;
    border-collapse:collapse;
}

.documento-hoja th,
.documento-hoja td{
    padding:6px 8px;
    vertical-align:top;
}

.documento-hoja img{
    max-width:100%;
    height:auto;
}

.documento-hoja .doc-firmas img{
    max-width:220px !important;
    max-height:85px !important;
}

.verificacion-publica{min-height:100vh;margin:0;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top left,rgba(59,130,246,.3),transparent 42%),linear-gradient(135deg,#0f172a,#1e3a5f);box-sizing:border-box}
.verificacion-card{width:min(720px,100%);padding:30px;border:1px solid rgba(255,255,255,.24);border-radius:26px;background:rgba(255,255,255,.9);box-shadow:0 25px 70px rgba(0,0,0,.3);backdrop-filter:blur(20px);box-sizing:border-box}
.verificacion-header{display:flex;align-items:center;gap:18px;margin-bottom:26px}.verificacion-header img{width:74px;height:74px;object-fit:contain}.verificacion-header h1{margin:0;color:#0f172a}.verificacion-header p{margin:5px 0 0;color:#475569}
.verificacion-form label{display:block;font-weight:700;margin-bottom:8px;color:#1e293b}.verificacion-form>div{display:flex;gap:10px}.verificacion-form input{flex:1;min-width:0;padding:13px 15px;border:1px solid #94a3b8;border-radius:13px;font:600 16px/1 Arial;text-transform:uppercase;letter-spacing:.08em}
.verificacion-resultado{margin-top:24px;padding:20px;border-radius:16px}.verificacion-resultado>strong{display:block;font-size:22px;margin-bottom:10px}.verificacion-resultado.es-valido{background:#ecfdf5;border:1px solid #6ee7b7;color:#065f46}.verificacion-resultado.no-valido{background:#fff1f2;border:1px solid #fda4af;color:#9f1239}.verificacion-resultado dl{margin:16px 0 0}.verificacion-resultado dl div{display:grid;grid-template-columns:145px 1fr;gap:12px;padding:8px 0;border-top:1px solid rgba(6,95,70,.15)}.verificacion-resultado dt{font-weight:700}.verificacion-resultado dd{margin:0}
.verificacion-confirmacion{display:grid;grid-template-columns:54px 1fr;align-items:start;gap:15px}.verificacion-confirmacion>span{display:flex;align-items:center;justify-content:center;width:50px;height:50px;border-radius:50%;background:#059669;color:#fff;font-size:29px;font-weight:900;box-shadow:0 8px 20px rgba(5,150,105,.22)}.verificacion-confirmacion strong{display:block;font-size:22px;margin:1px 0 7px}.verificacion-confirmacion p{margin:0;line-height:1.55}
@media(max-width:600px){.verificacion-card{padding:22px}.verificacion-form>div{flex-direction:column}.verificacion-header img{width:58px;height:58px}.verificacion-resultado dl div{grid-template-columns:1fr;gap:3px}}

.ficha-documento{
    --ficha-azul:#244d7c;
    --ficha-borde:#4674ad;
    font-family:Arial, Helvetica, sans-serif;
    font-size:8.4pt;
    line-height:1.25;
    color:#111827;
}

.ficha-encabezado{
    display:grid;
    grid-template-columns:42mm 1fr;
    min-height:34mm;
    margin-bottom:3mm;
    border:1px solid var(--ficha-borde);
}

.ficha-logo{
    display:flex;
    align-items:center;
    justify-content:center;
    padding:2mm;
    border-right:1px solid var(--ficha-borde);
}

.ficha-logo img{
    width:23mm;
    max-height:28mm;
    object-fit:contain;
}

.ficha-titulo{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    color:var(--ficha-azul);
}

.ficha-titulo h1{
    margin:0;
    font-size:18pt;
    line-height:1;
}

.ficha-titulo h2{
    margin:2mm 0 0;
    font-size:13pt;
}

.ficha-titulo p{
    margin:1.5mm 0 0;
    font-size:10pt;
    color:#111;
}

.ficha-seccion{
    margin:0 0 2.2mm;
    page-break-inside:avoid;
}

.ficha-seccion h3{
    margin:0;
    padding:1.5mm 1.8mm;
    border:1px solid var(--ficha-borde);
    background:#dce9f7;
    color:var(--ficha-azul);
    font-size:8.5pt;
    line-height:1.1;
}

.ficha-celdas{
    display:flex;
    flex-wrap:wrap;
    border-left:1px solid var(--ficha-borde);
}

.ficha-celda{
    min-height:11mm;
    padding:1.5mm;
    border-right:1px solid var(--ficha-borde);
    border-bottom:1px solid var(--ficha-borde);
    box-sizing:border-box;
}

.ficha-celda b,
.ficha-celda span{
    display:block;
}

.ficha-celda b{
    margin-bottom:1.2mm;
    font-size:7.6pt;
}

.ficha-celda.w20{width:20%;}
.ficha-celda.w25{width:25%;}
.ficha-celda.w40{width:40%;}
.ficha-celda.w50{width:50%;}
.ficha-celda.w100{width:100%;}
.ficha-observaciones{min-height:14mm;}

.ficha-compromiso{
    min-height:92mm;
    padding:3mm;
    border-right:1px solid var(--ficha-borde);
    border-bottom:1px solid var(--ficha-borde);
    font-size:8.4pt;
    color:#183b65;
}

.ficha-compromiso p{
    margin:0 0 3mm;
}

.ficha-firma{
    margin:16mm auto 0;
    text-align:center;
    color:#111;
}

.ficha-firma span{
    display:block;
    width:82mm;
    margin:0 auto 4mm;
    border-top:1px solid #111;
}

.ficha-firma p{
    margin:1mm 0;
}

.salto-pagina{
    page-break-after:always;
    break-after:page;
}

@media print{

    @page{
        size:Letter;
        margin:12mm;
    }

    body{
        background:#fff !important;
    }

    .sidebar,
    .topbar,
    .documento-acciones,
    .menu-section,
    .main-header{
        display:none !important;
    }

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

    .documento-pantalla{
        padding:0 !important;
        margin:0 !important;
        background:#fff !important;
        box-shadow:none !important;
        border:none !important;
    }

    .documento-hoja{
        width:192mm;
        min-height:255mm;
        margin:0 auto;
        padding:0;
        box-shadow:none;
        border:none;
    }

    .ficha-documento{
        width:100%;
    }

    .ficha-documento .salto-pagina{
        height:0;
        margin:0;
        page-break-after:always;
        break-after:page;
    }

    a{
        color:#000 !important;
        text-decoration:none !important;
    }
    .no-print{
    display:none !important;
}
}
.documento-en-edicion{outline:3px dashed var(--primary);outline-offset:8px;background:#fffef2!important;cursor:text}
.datos-ficha-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.datos-ficha-grid>div{background:rgba(255,255,255,.5);padding:10px 12px;border-radius:12px}.datos-ficha-grid small,.datos-ficha-grid strong{display:block}.datos-ficha-grid small{color:#64748b;margin-bottom:4px}@media(max-width:850px){.datos-ficha-grid{grid-template-columns:1fr}}
.sidebar-logout{margin-top:28px!important;color:#b91c1c!important;border:1px solid rgba(185,28,28,.18)!important}
.sidebar-year-form{padding:14px;border:1px solid rgba(255,255,255,.62);border-radius:16px;background:rgba(255,255,255,.34);backdrop-filter:blur(18px);margin-bottom:12px}.sidebar-year-form label{display:block;font-size:12px;font-weight:800;margin-bottom:6px;color:var(--text-light)}.sidebar-year-form .input{padding:9px 11px;margin:0;font-size:14px}
.btn-primary,.btn-secondary,.btn-danger,.btn-action{backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.58);box-shadow:0 10px 24px rgba(15,23,42,.10)}.btn-secondary{background:rgba(255,255,255,.55)}.btn-danger{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 22px;border-radius:14px;background:rgba(254,226,226,.72);color:#b91c1c;font-weight:700;cursor:pointer}.btn-action-edit{background:rgba(238,243,255,.72)}.btn-action-danger{background:rgba(254,242,242,.72)}.btn-action-success{background:rgba(240,253,244,.72)}
.btn-link{display:inline-flex;align-items:center;padding:7px 12px;border-radius:11px;background:rgba(255,255,255,.48);border:1px solid rgba(255,255,255,.62);box-shadow:0 7px 18px rgba(15,23,42,.08);backdrop-filter:blur(14px);text-decoration:none;color:var(--primary);font-weight:700}.btn-yellow{backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.5);box-shadow:0 10px 24px rgba(15,23,42,.12)}
.form-spaced{display:flex;flex-direction:column;gap:18px;margin-top:20px}.form-spaced>div{display:flex;flex-direction:column;gap:7px}.config-section{padding:22px;border-radius:18px;background:rgba(255,255,255,.34);border:1px solid rgba(255,255,255,.58);margin-top:18px}.config-section h2{margin-bottom:8px}.step-card{display:grid;grid-template-columns:46px 1fr;gap:16px;padding:20px;margin-top:18px;border-radius:17px;background:rgba(255,255,255,.48);border:1px solid rgba(255,255,255,.65)}.step-card>span{width:42px;height:42px;border-radius:14px;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800}.step-card h3,.step-card p{margin:0 0 10px}.table-responsive{overflow:auto;margin-top:18px}
.filtros-lista{padding:20px;margin:24px 0;display:grid;grid-template-columns:minmax(280px,1fr) auto auto;gap:14px;align-items:end}.student-list{display:flex;flex-direction:column;gap:12px;margin-top:18px}.student-list-item{display:grid;grid-template-columns:44px 44px minmax(220px,1.2fr) minmax(260px,1fr) auto;align-items:center;gap:16px;padding:16px 18px;border-radius:18px;background:rgba(255,255,255,.48);border:1px solid rgba(255,255,255,.68);box-shadow:0 10px 28px rgba(15,23,42,.07)}.student-number{width:38px;height:38px;border-radius:13px;background:rgba(11,71,124,.12);color:var(--primary);display:flex;align-items:center;justify-content:center;font-weight:800}.student-identity,.student-email{display:flex;flex-direction:column;gap:4px}.student-identity span,.student-email small{color:var(--text-light)}.lista-print-header{display:flex;justify-content:space-between;align-items:center}.lista-print-header p{color:var(--text-light)}.priority-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:18px 0;padding:16px 18px;border-radius:16px;background:rgba(219,234,254,.55);border:1px solid rgba(59,130,246,.18)}.priority-toolbar strong,.priority-toolbar small{display:block}.priority-toolbar small{margin-top:4px;color:var(--text-light)}.priority-ticket{position:relative;display:block!important;width:40px;height:40px;margin:0!important;cursor:pointer}.priority-ticket input{position:absolute;opacity:0;pointer-events:none}.priority-ticket span{display:flex;width:40px;height:40px;align-items:center;justify-content:center;border-radius:13px;border:2px solid #94a3b8;background:rgba(255,255,255,.7);color:transparent;font-size:21px;font-weight:900;transition:.2s}.priority-ticket input:checked+span{border-color:#16a34a;background:#dcfce7;color:#15803d;box-shadow:0 7px 18px rgba(22,163,74,.16)}.priority-ticket input:focus-visible+span{outline:3px solid rgba(37,99,235,.28);outline-offset:2px}.priority-state{color:#64748b}.priority-course-form:has(.priority-ticket input:checked) .priority-state{color:inherit}@media(max-width:900px){.filtros-lista{grid-template-columns:1fr}.student-list-item{grid-template-columns:44px 44px 1fr}.student-email,.student-list-item .btn-link{grid-column:3}.priority-toolbar{align-items:stretch;flex-direction:column}}
.student-list.sin-correo-institucional .student-list-item{grid-template-columns:44px 44px minmax(220px,1fr) auto}@media(max-width:900px){.student-list.sin-correo-institucional .student-list-item{grid-template-columns:44px 44px 1fr}.student-list.sin-correo-institucional .student-list-item .btn-link{grid-column:3}}
.student-list-admin .student-list-item{grid-template-columns:44px 44px 44px minmax(220px,1.2fr) minmax(260px,1fr) auto}.student-list-admin.sin-correo-institucional .student-list-item{grid-template-columns:44px 44px 44px minmax(220px,1fr) auto}.block-ticket input:checked+span{border-color:#dc2626;background:#fee2e2;color:#b91c1c;box-shadow:0 7px 18px rgba(220,38,38,.16)}.block-state{color:#64748b}.student-list-admin .student-blocked{border-color:rgba(220,38,38,.35);background:rgba(254,226,226,.35)}.student-list-admin .student-blocked .block-state{color:#b91c1c;font-weight:700}@media(max-width:900px){.student-list-admin .student-list-item,.student-list-admin.sin-correo-institucional .student-list-item{grid-template-columns:44px 44px 44px 1fr}.student-list-admin .student-email,.student-list-admin .student-list-item .btn-link{grid-column:4}}
.matricula-block-message{margin-top:18px!important;border-color:rgba(220,38,38,.35)!important;background:rgba(254,226,226,.72)!important;color:#991b1b!important}.matricula-block-message strong{color:#7f1d1d}
.autocomplete-status{margin-top:8px!important;padding:9px 11px!important;font-size:12px!important}.autocomplete-status.autocomplete-error{border-color:rgba(217,119,6,.3)!important;background:rgba(254,243,199,.72)!important;color:#92400e!important}
.condition-legend{display:flex;flex-wrap:wrap;gap:14px;margin:0 0 18px}.condition-legend-item{display:flex;align-items:center;gap:11px;min-width:250px;padding:12px 15px;border-radius:15px;background:rgba(255,255,255,.48);border:1px solid rgba(255,255,255,.7)}.condition-legend-item strong,.condition-legend-item small{display:block}.condition-legend-item small{margin-top:2px;color:var(--text-light)}.condition-legend-box{display:flex;width:35px;height:35px;flex:0 0 35px;align-items:center;justify-content:center;border-radius:11px;font-size:19px;font-weight:900}.condition-legend-priority{border:2px solid #16a34a;background:#dcfce7;color:#15803d}.condition-legend-ficom{border:2px solid #dc2626;background:#fee2e2;color:#b91c1c}.inline-delete-form{display:inline-block;margin-left:9px}.btn-link-danger{border:0;background:transparent;color:#b91c1c!important;font:inherit;font-weight:700!important;cursor:pointer;padding:0}
.student-list-readonly .student-list-item{grid-template-columns:44px minmax(220px,1.2fr) minmax(260px,1fr) auto}.student-list-readonly.sin-correo-institucional .student-list-item{grid-template-columns:44px minmax(220px,1fr) auto}@media(max-width:900px){.student-list-readonly .student-list-item,.student-list-readonly.sin-correo-institucional .student-list-item{grid-template-columns:44px 1fr}.student-list-readonly .student-email,.student-list-readonly .btn-link{grid-column:2}}
@media print{@page{size:Letter;margin:12mm}.no-print,.sidebar{display:none!important}.app-layout{display:block;padding:0}.main-content{min-height:0}.fichas-curso-page{box-shadow:none!important;border:0!important;background:#fff!important;padding:0!important}.student-list{gap:5px}.student-list-item{display:grid!important;grid-template-columns:32px 1.2fr 1fr!important;padding:8px 10px;border:1px solid #cbd5e1;box-shadow:none;background:#fff;break-inside:avoid}.student-number{width:27px;height:27px;border-radius:7px}.student-email{grid-column:auto!important}.page-title{font-size:20px}.page-subtitle{font-size:11px}}
.documento-hoja .doc-base p,.documento-hoja .doc-base div[contenteditable],.document-editor p{white-space:pre-wrap}
.card form:not(.oferta-grid) label{display:block;margin-bottom:7px;font-weight:700}.card form:not(.oferta-grid) .input{margin-bottom:16px}.card form:not(.oferta-grid) .form-actions{margin-top:22px}.card form:not(.oferta-grid) hr{margin:22px 0;border:0;border-top:1px solid rgba(148,163,184,.28)}
.course-checkbox-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.course-checkbox{display:flex!important;align-items:center;gap:12px;padding:15px;border-radius:15px;background:rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.68);cursor:pointer}.course-checkbox input{width:20px;height:20px}.course-checkbox span,.course-checkbox small{display:block}.course-checkbox small{color:var(--text-light);margin-top:3px}@media(max-width:900px){.course-checkbox-grid{grid-template-columns:1fr}}
.module-combobox{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:stretch;margin-top:7px}.module-combobox>span{display:flex;align-items:center;padding:0 15px;border:1px solid rgba(148,163,184,.35);border-right:0;border-radius:14px 0 0 14px;background:rgba(15,71,124,.1);color:var(--primary);font-weight:800}.module-combobox .input{margin:0!important;border-radius:0 14px 14px 0}.field-help{display:block;margin-top:7px;color:var(--text-light);line-height:1.45}
.course-checkbox.course-checkbox-disabled{cursor:not-allowed;opacity:.68;background:rgba(148,163,184,.18);border-color:rgba(148,163,184,.35)}.course-checkbox.course-checkbox-disabled small{color:#b42318;font-weight:600}

/* Separación consistente entre títulos, explicaciones y contenido. */
.title,.page-title{line-height:1.2}
.title+.subtitle,.page-title+.page-subtitle{display:block;margin-top:10px;margin-bottom:20px;line-height:1.55}
h2+.page-subtitle,h3+.page-subtitle{display:block;margin-top:8px;margin-bottom:18px;line-height:1.5}
.card>h1+p,.card>h2+p,.card>h3+p,.glass>h1+p,.glass>h2+p,.glass>h3+p,.verificacion-header h1+p,.step-card h3+p{margin-top:8px;margin-bottom:18px;line-height:1.5}
.page-header-row .page-title+.page-subtitle{margin-bottom:0}

.export-filter-card{padding:22px}.export-filter-card label{display:block;margin-bottom:9px}.export-fields-toolbar{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:12px;margin-top:8px;text-align:left}.export-fields-toolbar .form-actions{justify-content:flex-start;margin:0}.export-fields-toolbar h2{margin-bottom:5px}.export-field-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.export-field-group{min-width:0;padding:20px;border:1px solid rgba(255,255,255,.68);border-radius:20px}.export-field-group legend{padding:0 10px;font-weight:800;color:var(--primary)}.export-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.export-field-option{display:flex;align-items:center;gap:10px;padding:11px 12px;background:rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.7);border-radius:13px;cursor:pointer}.export-field-option:hover{background:rgba(255,255,255,.72)}.export-field-option input{width:19px;height:19px;flex:0 0 auto;accent-color:var(--primary)}.export-submit-row{justify-content:flex-end;margin-top:4px}@media(max-width:900px){.export-field-groups{grid-template-columns:1fr}.export-field-grid{grid-template-columns:1fr}}
.document-email-dialog{width:min(620px,calc(100vw - 32px));max-height:90vh;margin:auto;padding:0;border:0;border-radius:22px;background:rgba(255,255,255,.94);color:var(--text);box-shadow:0 30px 90px rgba(15,23,42,.35);overflow:auto}.document-email-dialog::backdrop{background:rgba(15,23,42,.55);backdrop-filter:blur(5px)}.document-email-dialog form{padding:28px}.document-email-dialog .form-actions{justify-content:flex-end;flex-wrap:wrap}
.alert{margin:18px 0;padding:14px 18px;border-radius:16px;border:1px solid rgba(255,255,255,.58);backdrop-filter:blur(16px)}.alert-danger{color:#991b1b;background:rgba(254,226,226,.72);border-color:rgba(248,113,113,.28)}
.config-link-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}.config-link-grid .step-card{text-decoration:none;color:inherit;margin:0}.config-link-grid .step-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(15,23,42,.10)}@media(max-width:800px){.config-link-grid{grid-template-columns:1fr}}.autorizacion-texto{white-space:normal;line-height:1.65;text-align:justify}
.notification-variable-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.notification-variable{display:flex;flex-direction:column;align-items:flex-start!important;gap:2px;text-align:left}.notification-variable small{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;opacity:.75;text-transform:none}
.notification-message-panel{padding:24px!important;border-width:1px!important;box-shadow:0 14px 34px rgba(15,23,42,.07)}.notification-matricula-panel{background:rgba(220,252,231,.46)!important;border-color:rgba(22,163,74,.24)!important}.notification-retiro-panel{background:rgba(254,226,226,.46)!important;border-color:rgba(220,38,38,.22)!important}.notification-matricula-panel>h3{color:#166534}.notification-retiro-panel>h3{color:#991b1b}
.config-tab-content{margin-top:4px;padding:1px 0}.config-tab-content>form,.config-tab-content>.config-section{animation:config-panel-in .18s ease-out}@keyframes config-panel-in{from{opacity:.35;transform:translateY(4px)}to{opacity:1;transform:none}}
.config-submenu{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 22px;padding:12px;border-radius:16px;background:rgba(255,255,255,.34);border:1px solid rgba(255,255,255,.6)}
.filtros-lista{grid-template-columns:minmax(280px,1fr) auto;gap:16px}.course-change-form{display:flex;flex-direction:column;gap:12px;margin-top:14px;padding:16px;border-radius:16px;background:rgba(255,255,255,.4);border:1px solid rgba(255,255,255,.62)}.course-change-form>div{display:flex;flex-direction:column;gap:7px}.course-change-form .input{margin:0!important}.course-change-form .btn-secondary{align-self:flex-start}.status-form{margin:4px 0 18px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px;align-items:start}.form-grid>.form-full,.form-grid>h3,.form-grid>p,.form-grid>hr{grid-column:1/-1}.form-grid>br{display:none}.input{box-sizing:border-box}input.input,select.input{min-height:48px}textarea.input{min-height:120px;resize:vertical;line-height:1.5}select.input{appearance:auto}.form-actions{flex-wrap:wrap;align-items:center}@media(max-width:760px){.form-grid{grid-template-columns:1fr}.form-grid>.form-full,.form-grid>h3,.form-grid>p,.form-grid>hr{grid-column:1}}
.turno-control{display:flex;align-items:center;gap:18px;padding:18px;border-radius:18px;background:rgba(255,255,255,.48);margin:16px 0}.turno-control strong{font-size:52px;color:var(--primary)}.turno-control span{font-size:20px}.turno-tv-preview{width:100%;height:210px;margin:16px 0 18px;border-radius:18px;overflow:hidden;border:1px solid rgba(255,255,255,.72);box-shadow:0 16px 38px rgba(15,23,42,.14);background:#063b70}.turno-tv-preview iframe{display:block;width:100%;height:100%;border:0}.turnos-tv{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 15% 15%,rgba(250,204,21,.25),transparent 25%),linear-gradient(145deg,#063b70,#0b477c);padding:clamp(10px,4vw,76px);box-sizing:border-box;overflow:hidden}.turnos-tv-card{width:min(1100px,92vw);padding:clamp(16px,3.2vw,52px);background:rgba(255,255,255,.78);text-align:center;box-sizing:border-box}.turnos-tv-card header{display:flex;justify-content:center;align-items:center;gap:clamp(10px,1.8vw,28px)}.turnos-tv-card header img{width:clamp(48px,7vw,110px);height:clamp(52px,7.5vw,120px);object-fit:contain}.turnos-tv-card header h1{font-size:clamp(20px,3vw,48px);margin:0}.turnos-tv-card header p{font-size:clamp(11px,1.45vw,23px);margin:.3em 0 0}.turnos-tv-card section{margin:clamp(14px,3vw,48px) 0}.turnos-tv-card section p{font-size:clamp(15px,2vw,30px);margin:0 0 .35em}.turnos-tv-card section strong{display:block;font-size:clamp(72px,13vw,200px);line-height:.95;color:var(--primary)}.turnos-tv-card section h2{font-size:clamp(24px,4vw,62px);margin:.32em 0}.turnos-tv-card footer{font-size:clamp(12px,1.6vw,26px);color:var(--text-light)}.turnos-tv-embed{padding:8px}.turnos-tv-embed .turnos-tv-card{width:96vw;padding:10px 16px;border-radius:14px}.turnos-tv-embed .turnos-tv-card header{gap:9px}.turnos-tv-embed .turnos-tv-card header img{width:38px;height:42px}.turnos-tv-embed .turnos-tv-card header h1{font-size:16px}.turnos-tv-embed .turnos-tv-card header p{font-size:9px}.turnos-tv-embed .turnos-tv-card section{margin:5px 0}.turnos-tv-embed .turnos-tv-card section p{font-size:11px;margin:0}.turnos-tv-embed .turnos-tv-card section strong{font-size:58px}.turnos-tv-embed .turnos-tv-card section h2{font-size:20px;margin:2px 0}.turnos-tv-embed .turnos-tv-card footer{font-size:9px}
.turno-control{display:flex;align-items:center;gap:18px;padding:18px;border-radius:18px;background:rgba(255,255,255,.48);margin:16px 0}.turno-control strong{font-size:52px;color:var(--primary)}.turno-control span{font-size:20px}.turno-screen-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.turno-screen-header h2{font-size:20px;margin:0;line-height:1.2}.turno-screen-header .btn-secondary{flex:0 0 auto;white-space:nowrap;min-height:38px;padding:0 12px;font-size:12px}.turno-screen-card>.page-subtitle{margin-top:8px;margin-bottom:0}.turno-screen-card .turno-tv-preview{margin-bottom:0}.turno-tv-preview{width:100%;height:210px;margin:16px 0 18px;border-radius:18px;overflow:hidden;border:1px solid rgba(255,255,255,.72);box-shadow:0 16px 38px rgba(15,23,42,.14);background:#063b70}.turno-tv-preview iframe{display:block;width:100%;height:100%;border:0}.turnos-tv{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 15% 15%,rgba(250,204,21,.25),transparent 25%),linear-gradient(145deg,#063b70,#0b477c);padding:clamp(10px,4vw,76px);box-sizing:border-box;overflow:hidden}.turnos-tv-card{width:min(1100px,92vw);padding:clamp(16px,3.2vw,52px);background:rgba(255,255,255,.78);text-align:center;box-sizing:border-box}.turnos-tv-card header{display:flex;justify-content:center;align-items:center;gap:clamp(10px,1.8vw,28px)}.turnos-tv-card header img{width:clamp(48px,7vw,110px);height:clamp(52px,7.5vw,120px);object-fit:contain}.turnos-tv-card header h1{font-size:clamp(20px,3vw,48px);margin:0}.turnos-tv-card header p{font-size:clamp(11px,1.45vw,23px);margin:.3em 0 0}.turnos-tv-card section{margin:clamp(14px,3vw,48px) 0}.turnos-tv-card section p{font-size:clamp(15px,2vw,30px);margin:0 0 .35em}.turnos-tv-card section strong{display:block;font-size:clamp(72px,13vw,200px);line-height:.95;color:var(--primary)}.turnos-tv-card section h2{font-size:clamp(24px,4vw,62px);margin:.32em 0}.turnos-tv-card footer{font-size:clamp(12px,1.6vw,26px);color:var(--text-light)}.turnos-tv-embed{padding:8px}.turnos-tv-embed .turnos-tv-card{width:96vw;padding:10px 16px;border-radius:14px}.turnos-tv-embed .turnos-tv-card header{gap:9px}.turnos-tv-embed .turnos-tv-card header img{width:38px;height:42px}.turnos-tv-embed .turnos-tv-card header h1{font-size:16px}.turnos-tv-embed .turnos-tv-card header p{font-size:9px}.turnos-tv-embed .turnos-tv-card section{margin:5px 0}.turnos-tv-embed .turnos-tv-card section p{font-size:11px;margin:0}.turnos-tv-embed .turnos-tv-card section strong{font-size:58px}.turnos-tv-embed .turnos-tv-card section h2{font-size:20px;margin:2px 0}.turnos-tv-embed .turnos-tv-card footer{font-size:9px}
.consulta-dashboard-grid{align-items:stretch}.consulta-access-card{display:flex;align-items:center;gap:20px;text-decoration:none;color:inherit;transition:.2s}.consulta-access-card:hover{transform:translateY(-3px);box-shadow:0 18px 38px rgba(15,23,42,.11)}.consulta-access-card>i{font-size:48px;color:var(--primary)}.consulta-access-card h2{margin-bottom:8px}@media(max-width:760px){.turno-screen-header{flex-direction:column}.dashboard-grid-2{grid-template-columns:1fr}}
.backup-panel{padding:28px}.backup-panel-header{display:flex;align-items:center;gap:16px}.backup-panel-icon{display:flex;width:54px;height:54px;align-items:center;justify-content:center;border-radius:17px;background:rgba(22,163,74,.13);color:#15803d;font-size:27px}.backup-panel-header h2{margin:0}.backup-contents{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:22px 0}.backup-contents>div{display:flex;flex-direction:column;gap:7px;padding:18px;border-radius:17px;background:rgba(255,255,255,.48);border:1px solid rgba(255,255,255,.68)}.backup-contents i{font-size:25px;color:var(--primary)}.backup-contents small{color:var(--text-light);line-height:1.45}@media(max-width:850px){.backup-contents{grid-template-columns:1fr}}
.config-check-row{display:flex!important;align-items:center;gap:12px;padding:13px 15px;border-radius:14px;background:rgba(255,255,255,.48);border:1px solid rgba(255,255,255,.65)}.config-check-row input{width:20px;height:20px}.config-check-row span,.config-check-row small{display:block}.config-check-row small{margin-top:3px;color:var(--text-light)}.search-pagination-form{display:flex;gap:12px;align-items:end;margin-bottom:24px}.search-pagination-form>div{flex:1}.search-pagination-form .input{margin-bottom:0!important}.pagination-wrap{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:24px;padding:16px;border-radius:17px;background:rgba(255,255,255,.42);border:1px solid rgba(255,255,255,.65)}.pagination-wrap p{margin:0;color:var(--text-light);font-weight:650}.pagination-links{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.pagination-link{display:inline-flex;align-items:center;justify-content:center;min-width:39px;min-height:39px;padding:0 12px;border-radius:12px;text-decoration:none;color:var(--primary);font-weight:750;background:rgba(255,255,255,.58);border:1px solid rgba(255,255,255,.72)}.pagination-link.active{color:#fff;background:var(--primary);box-shadow:0 8px 18px rgba(11,71,124,.22)}.pagination-link.disabled{pointer-events:none;opacity:.42}.pagination-ellipsis{padding:0 3px;color:var(--text-light)}@media(max-width:760px){.search-pagination-form,.pagination-wrap{align-items:stretch;flex-direction:column}.pagination-links{justify-content:center}}
.field-disabled{opacity:.52}.field-disabled .input{background:rgba(226,232,240,.65)!important;cursor:not-allowed}
.input-readonly{background:rgba(226,232,240,.72)!important;color:#475569!important;cursor:not-allowed;border-color:rgba(100,116,139,.22)!important}
