/* Paleta, estructura, componentes y adaptación responsive; detalles en README.md. */
.email-test-form{display:grid;grid-template-columns:minmax(190px,1fr) auto;gap:.45rem;margin-top:.55rem}.email-test-form .form-control{min-width:0}.email-account-form .field-notification_kinds>div{display:flex;flex-wrap:wrap;gap:.65rem 1rem;padding:.75rem;border:1px solid var(--line);border-radius:8px}.email-account-form .field-notification_kinds label{display:inline-flex;align-items:center;gap:.4rem;cursor:pointer}.email-account-form .field-notification_kinds input{margin:0}@media(max-width:700px){.email-test-form{grid-template-columns:1fr}.email-account-form .field-notification_kinds>div{display:grid}}
/* La cabecera crece sólo cuando su contenido accesible realmente lo necesita. */
.demo-environment-banner{display:flex;align-items:center;justify-content:center;gap:.6rem;min-height:34px;padding:.4rem 1rem;background:#fff2bd;color:#4d3c00;border-bottom:1px solid #e1c75b;font-size:.83rem;letter-spacing:.01em;text-align:center}.demo-environment-banner strong{letter-spacing:.08em}@media(max-width:600px){.demo-environment-banner{align-items:flex-start;flex-direction:column;gap:0;padding:.4rem .8rem}.demo-environment-banner span{font-size:.76rem}}
@media print{.demo-environment-banner{display:none!important}}
.topbar{height:auto!important;min-height:76px;gap:1rem;flex-wrap:wrap}
.user-menu em{display:block;color:#ffeb70;font-size:.72rem;font-style:normal;font-weight:700}.view-as-notice{margin:0 0 1rem;padding:.75rem 1rem;border:1px solid #d5ad00;border-radius:9px;background:#fff7cd;color:#4b3d00}
@media(max-width:700px){.topbar{flex-wrap:nowrap}.brand span{display:none}}
.brand-logo{display:block;width:40px;height:50px;object-fit:contain;flex:0 0 auto;filter:drop-shadow(0 2px 4px rgba(0,0,0,.18))}
.login-logo{display:block;width:min(322px,70%);height:auto;max-height:400px;object-fit:contain;margin-bottom:28px;filter:drop-shadow(0 12px 25px rgba(0,0,0,.22))}.login-logo-mobile{display:none;width:78px;height:96px;object-fit:contain;margin-bottom:8px}
@media(max-width:700px){.login-logo-mobile{display:block}}
.event-card{border-left:5px solid #7a8098;padding-left:12px}.event-type-examen{border-left-color:#c62828}.event-type-reunion{border-left-color:#1976d2}.event-type-actividad{border-left-color:#2e7d32}.event-type-acto{border-left-color:#7b1fa2}.event-type-otro{border-left-color:#616161}.membership-row{border-bottom:1px solid var(--line);padding:14px 0}.checkbox-field{align-content:center}
.schedule-slot-row{border-bottom:1px solid var(--line);padding:14px 0;display:grid;grid-template-columns:1.2fr 1fr 1fr auto;gap:14px;align-items:end}.schedule-slot-row select,.schedule-slot-row input{width:100%;border:1px solid #d9dce9;border-radius:9px;padding:10px 12px;background:#fff}.schedule-delete-field{display:none}.schedule-delete{color:#9b2636}.schedule-builder .panel-head{gap:16px;margin-bottom:12px}.schedule-builder .panel-head h2{margin-bottom:2px}.schedule-grid td{min-width:150px;vertical-align:top}.schedule-grid td strong,.schedule-grid td small{display:block}.schedule-grid td small{color:var(--muted)}
.skip-link{position:fixed;left:12px;top:-60px;z-index:100;background:#fff;color:var(--blue);padding:10px 14px;border-radius:8px;font-weight:800}.skip-link:focus{top:10px}*:focus-visible{outline:3px solid #f5d90a;outline-offset:3px}.sidebar a[aria-current="page"]{background:#e8eafd;color:var(--blue)}.table-input{min-width:90px;width:100%;padding:8px;border:1px solid #d9dce9;border-radius:7px}.actions{display:flex;gap:8px;flex-wrap:wrap}.warning{background:#fff6d8;color:#715900;padding:12px;border-radius:10px}.metric-note{color:var(--muted);font-size:13px}
.form-section{border:1px solid var(--line)}.form-section legend{padding:0 10px;color:var(--blue);font-size:18px;font-weight:800}.enrollment-form>.form-actions{margin-bottom:24px}.recipient-results{display:grid;gap:5px;max-height:320px;overflow:auto;border:1px solid var(--line);border-radius:9px;padding:8px;background:#fff}.recipient-result{display:flex;gap:9px;align-items:center;padding:8px;border-radius:7px;font-weight:500;cursor:pointer}.recipient-result:hover{background:#f0f2ff}.recipient-selected{display:flex;gap:6px;flex-wrap:wrap}.recipient-chip{background:#e8eafd;color:var(--blue);border-radius:999px;padding:5px 9px;font-size:12px}.event-date{font-size:12px;white-space:nowrap}
input[type=date]{cursor:pointer}input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer}
:root{--blue:#18226E;--blue-2:#26349a;--institution-primary-rgb:24,34,110;--ink:#1e2440;--muted:#6d738d;--line:#e4e6f0;--bg:#f5f6fb;--white:#fff;--success:#14795d;--shadow:0 12px 35px rgba(var(--institution-primary-rgb),.08)}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:var(--blue);text-decoration:none}button,input,select,textarea{font:inherit}.topbar{height:76px;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:20;box-shadow:0 5px 20px rgba(11,17,72,.25)}.brand{display:flex;gap:13px;align-items:center;color:#fff}.brand span:last-child{display:grid}.brand small,.user-menu small{opacity:.7}.logo-slot{display:grid;place-items:center;border:1px dashed rgba(255,255,255,.55);font-weight:800;letter-spacing:.08em}.logo-slot-small{width:46px;height:46px;border-radius:12px}.logo-slot-large{width:142px;height:142px;border-radius:30px;font-size:28px;background:rgba(255,255,255,.1)}.user-menu{display:grid;text-align:right}.nav-toggle{display:none;background:transparent;border:0;color:#fff;font-size:24px}.app-shell{display:grid;grid-template-columns:235px 1fr;min-height:calc(100vh - 112px)}.sidebar{background:#fff;border-right:1px solid var(--line);padding:22px 14px;display:flex;flex-direction:column;gap:5px}.sidebar a,.logout-form button{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:10px;color:#4d526b;font-weight:650;border:0;background:none;width:100%;cursor:pointer}.sidebar a:hover,.logout-form button:hover{color:var(--blue);background:#f0f2ff}.logout-form{margin-top:auto}.content{padding:36px;max-width:1450px;width:100%;margin:auto}.page-head{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:25px}.page-head h1{font-size:30px;line-height:1.2;margin:3px 0 5px}.page-head p{margin:0;color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:800;color:var(--blue)}.btn{border-radius:10px;padding:10px 16px;font-weight:750;border:1px solid transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.btn.primary{background:var(--blue);color:#fff}.btn.primary:hover{background:var(--blue-2)}.btn.secondary{background:#e8eafd;color:var(--blue)}.btn.ghost{background:#fff;border-color:var(--line);color:var(--ink)}.panel,.stat-card,.course-card{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.panel{padding:22px;margin-bottom:22px}.panel h2{margin:0 0 16px;font-size:18px}.panel-head{display:flex;justify-content:space-between;align-items:center}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}.stat-card{padding:20px;display:grid;gap:8px}.stat-card span{color:var(--muted);font-weight:650}.stat-card strong{font-size:34px;color:var(--blue)}.stat-card a{font-size:13px;font-weight:750}.stat-card.accent{background:var(--blue);color:#fff}.stat-card.accent span,.stat-card.accent strong,.stat-card.accent a{color:#fff}.list-stack{display:grid}.list-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;padding:14px 4px;border-bottom:1px solid var(--line);color:var(--ink)}.list-row:last-child{border:0}.list-row span:nth-child(2){display:grid}.list-row small{color:var(--muted)}.avatar{width:40px;height:40px;border-radius:12px;background:#e9ebfb;color:var(--blue);display:grid;place-items:center;font-weight:800}.filterbar,.import-form{display:flex;gap:10px;align-items:end;margin-bottom:18px}.filterbar input{flex:1;padding:10px 13px;border:1px solid var(--line);border-radius:9px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th{text-align:left;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.06em;padding:11px 12px;border-bottom:1px solid var(--line)}td{padding:14px 12px;border-bottom:1px solid var(--line)}tbody tr:last-child td{border-bottom:0}.badge{background:#eef0f7;color:#555b74;font-size:12px;font-weight:750;padding:4px 8px;border-radius:999px;display:inline-flex}.badge.success{background:#e5f5ef;color:var(--success)}.empty{text-align:center;padding:28px;color:var(--muted)}.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.course-card{padding:22px;color:var(--ink);transition:.2s}.course-card:hover{transform:translateY(-2px);border-color:#c9cdef}.course-card>div{display:flex;justify-content:space-between}.course-card h2{margin:25px 0 4px}.course-card p,.course-card small{color:var(--muted)}.code{font-weight:850;color:var(--blue);letter-spacing:.12em}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}dl{display:grid;grid-template-columns:140px 1fr;gap:9px;margin:0}dt{color:var(--muted)}dd{margin:0;font-weight:650}.contact{display:grid;padding:11px 0;border-bottom:1px solid var(--line)}.contact span,.contact small{color:var(--muted)}.form-panel{max-width:900px}.model-form,.search-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.field,.import-form label{display:grid;gap:6px;font-weight:650}.form-control,.model-form input,.model-form select,.model-form textarea,.search-grid input,.search-grid select{width:100%;border:1px solid #d9dce9;border-radius:9px;padding:10px 12px;background:#fff}.model-form input[type=checkbox]{width:auto}.errorlist{color:#a42335;margin:4px 0;padding-left:18px}.form-actions{grid-column:1/-1;display:flex;gap:10px;padding-top:10px}.thread{max-width:900px;display:grid;gap:14px}.message-bubble{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;max-width:82%;box-shadow:var(--shadow)}.message-bubble.mine{margin-left:auto;background:#eef0ff;border-color:#d6daf5}.message-bubble header{display:flex;justify-content:space-between;gap:20px;margin-bottom:10px}.message-bubble time,.message-bubble details{font-size:12px;color:var(--muted)}.attachment{display:block;margin-top:12px;background:#fff;border:1px solid var(--line);padding:9px;border-radius:9px}.template-links{display:flex;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:18px}.messages{margin-bottom:18px}.alert{padding:12px 15px;border-radius:10px;background:#e8f5ef;color:#11694f}.alert.error{background:#fdebed;color:#9b2636}code{color:var(--blue);font-weight:700}footer{text-align:center;font-size:12px;color:var(--muted);padding:10px}.login-layout{min-height:calc(100vh - 36px);display:grid;grid-template-columns:1.05fr .95fr}.login-brand{background:var(--blue);color:#fff;padding:9vw;display:flex;flex-direction:column;justify-content:center}.login-brand p{margin:28px 0 0;text-transform:uppercase;letter-spacing:.2em}.login-brand h1{font-size:54px;line-height:1.05;margin:8px 0 22px}.login-brand span:last-child{opacity:.78}.login-card{background:#fff;display:flex;flex-direction:column;justify-content:center;padding:10vw;gap:22px}.login-card h2{font-size:34px;margin:5px 0}.login-card p,.login-card small{color:var(--muted)}.stack-form{display:grid;gap:16px}.stack-form label{display:grid;gap:6px;font-weight:700}.stack-form input{padding:12px;border:1px solid var(--line);border-radius:9px}@media(max-width:1000px){.stat-grid{grid-template-columns:repeat(2,1fr)}.card-grid{grid-template-columns:repeat(2,1fr)}.content{padding:24px}.app-shell{grid-template-columns:78px 1fr}.sidebar span{display:none}.sidebar a,.logout-form button{justify-content:center;font-size:20px}}@media(max-width:700px){.topbar{padding:0 16px}.brand strong{font-size:13px}.user-menu{display:none}.nav-toggle{display:block}.app-shell{display:block}.sidebar{position:fixed;inset:76px auto 0 0;width:235px;z-index:15;transform:translateX(-100%);transition:.2s}.sidebar.open{transform:none}.sidebar span{display:inline}.sidebar a,.logout-form button{justify-content:flex-start;font-size:15px}.content{padding:20px 14px}.page-head{align-items:flex-start;flex-direction:column}.stat-grid,.card-grid,.detail-grid,.model-form,.search-grid{grid-template-columns:1fr}.filterbar,.import-form{align-items:stretch;flex-direction:column}.login-layout{grid-template-columns:1fr}.login-brand{display:none}.login-card{padding:28px}.message-bubble{max-width:96%}.form-actions{grid-column:auto}.stat-card strong{font-size:28px}}
/* El contenido autenticado ocupa el inicio del área y sólo se centra en horizontal. */
.content{margin:0 auto;align-self:start}
/* Mantiene la licencia y su acción contextual en una misma fila legible. */
.leave-entry{display:flex;align-items:center;justify-content:space-between;gap:14px}.leave-copy{display:grid}.leave-entry .leave-copy strong{color:var(--ink)}
/* Destaca el control al que se desplazó la pantalla después de un error. */
[aria-invalid="true"]{border-color:#a42335!important;box-shadow:0 0 0 3px rgba(164,35,53,.12)}.form-error-focus{background:#fff5f6;border-radius:10px;padding:8px}
/* Confirmaciones modales del cierre y publicación de boletines. */
.confirmation-dialog{z-index:60;width:min(620px,calc(100vw - 32px));max-height:82vh;overflow:auto;padding:24px;border:1px solid var(--line);border-radius:16px;background:#fff;color:var(--ink);box-shadow:0 24px 80px rgba(12,18,65,.32)}.confirmation-dialog::backdrop{background:rgba(20,25,55,.55)}.confirmation-dialog h2{margin-top:0;color:var(--blue)}.confirmation-dialog ul{max-height:260px;overflow:auto;padding-left:22px}.confirmation-dialog .actions{margin-top:20px}
/* Estados consistentes del tablero de boletines y controles de solo lectura. */
.btn.danger{background:#a42335;color:#fff}.btn.danger:hover{background:#821929}.badge.danger{background:#fdebed;color:#9b2636}.badge.warning{background:#fff3cd;color:#775a00}.badge.neutral{background:#e7e8ed;color:#4f5362}.alert.warning{background:#fff7db;color:#6f5500}.table-input:disabled,.form-control:disabled{cursor:not-allowed;background:#f1f2f6;color:#45495a;opacity:1}.muted{color:var(--muted)}
/* La estructura global evita desbordes y conserva una columna flexible. */
html,body{max-width:100%;overflow-x:hidden}.topbar,.app-shell{width:100%;max-width:100%}.app-shell{grid-template-columns:235px minmax(0,1fr)}.app-shell,.content{min-width:0}.content{max-width:1450px}
@media(max-width:1000px) and (min-width:701px){.app-shell{grid-template-columns:78px minmax(0,1fr)}}
/* Boletines: un flujo visual compacto y accesible. */
.report2-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.report2-action-card{display:block;color:var(--ink);margin:0;transition:transform .15s ease,border-color .15s ease}.report2-action-card:hover{transform:translateY(-2px);border-color:#b9bee0}.report2-action-card h2{margin:10px 0 5px}.report2-action-card p{margin:0;color:var(--muted)}.report2-step{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--blue);color:#fff;font-weight:850}.report2-stats{margin-bottom:22px}.report2-scheme-tabs{display:flex;flex-wrap:wrap;gap:8px}.report2-date-section{margin:24px 0}.report2-date-rows{display:grid;gap:10px}.report2-date-row{display:grid;grid-template-columns:140px 1fr 1fr;gap:14px;align-items:end;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fafbff}.report2-date-row strong{align-self:center}.report2-course-picker{margin:18px 0}.report2-course-picker>div,.report2-course-picker ul,.report2-course-picker #id_courses{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;list-style:none;padding:0}.report2-course-picker label,.form-section #id_courses label{display:inline-flex;align-items:center;gap:8px;font-weight:650;padding:9px;border:1px solid var(--line);border-radius:9px;background:#fff}.report2-designer-toolbar{position:sticky;top:84px;z-index:12;display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px;padding:12px 16px;border:1px solid #cbd0e8;border-radius:12px;background:#fff;box-shadow:0 8px 24px rgba(var(--institution-primary-rgb),.12)}.report2-designer-toolbar span{display:grid}.report2-designer-toolbar small{color:var(--muted)}.report2-designer-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,380px);gap:20px;align-items:start}.report2-live-preview{position:sticky;top:160px}.report2-common-subject-info{display:flex;align-items:center;gap:10px;margin-top:12px}.report2-common-subject-info .alert{flex:1;margin:0}.report2-attendance-card,.report2-block-card{margin-top:14px;padding:18px;border:1px solid var(--line);border-radius:14px;background:#fafbff}.report2-attendance-card{border-left:5px solid var(--success)}.report2-attendance-card h3{margin:8px 0 2px}.report2-attendance-card p{margin:0;color:var(--muted)}.report2-block-card h3,.report2-block-card h4{margin:0}.report2-topic-row{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:9px}.report2-preview-block{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:10px}.report2-preview-block strong,.report2-preview-block small{display:block}.report2-preview-block ul{padding-left:20px;margin-bottom:0}.report2-final-actions{justify-content:flex-end}.report2-dialog{z-index:100;width:min(620px,calc(100% - 30px));border:0;border-radius:16px;padding:24px;box-shadow:0 20px 70px #1118}.report2-dialog p{white-space:pre-line}.report2-dialog::backdrop{background:#1118}.report2-window-list{display:grid;gap:15px}.report2-window-card{padding:18px;border:1px solid var(--line);border-radius:14px;background:#fafbff}.report2-window-card h3{margin:0}.report2-window-card p{margin:3px 0;color:var(--muted)}.report2-scope-list{display:grid;gap:8px;margin:15px 0}.report2-scope-row{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff}.report2-scope-row span:first-child{display:grid}.report2-scope-row small{color:var(--muted)}.report2-window-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;border-top:1px solid var(--line);padding-top:13px}.report2-grade-table-wrap{max-width:100%;overflow:auto;max-height:70vh;border:1px solid var(--line);border-radius:12px}.report2-grade-table{border-collapse:separate;border-spacing:0;min-width:max-content}.report2-grade-table th,.report2-grade-table td{min-width:135px;max-width:170px;padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;vertical-align:top}.report2-grade-table thead th{position:sticky;top:0;z-index:3;background:#eef0ff}.report2-grade-table .report2-student-column{position:sticky;left:0;z-index:2;min-width:200px;max-width:240px;background:#fafbff;text-align:left}.report2-grade-table thead .report2-student-column{z-index:4;background:#e8eafd}.report2-grade-table th small,.report2-grade-table th em{display:block;color:var(--muted);font-size:11px;font-style:normal}.report2-grade-table td select{margin-top:5px;max-width:150px}.report2-sticky-save{position:sticky;left:0;bottom:10px;width:max-content;padding:10px;margin-top:15px;border:1px solid var(--line);border-radius:12px;background:#fffd;backdrop-filter:blur(6px)}.report2-published-report{max-width:900px;margin:auto}.report2-published-report>header{text-align:center;border-bottom:2px solid var(--blue);padding-bottom:18px}.report2-published-report section{margin-top:22px}.report2-published-report table{width:100%;border-collapse:collapse}.report2-published-report th,.report2-published-report td{border:1px solid var(--line);padding:9px}.report2-attendance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:9px}.report2-attendance-grid span{display:grid;padding:10px;border:1px solid var(--line);border-radius:9px}.report2-attendance-grid strong{font-size:20px;color:var(--blue)}
@media(max-width:900px){.report2-action-grid,.report2-designer-grid{grid-template-columns:1fr}.report2-live-preview{position:relative;top:auto}.report2-date-row{grid-template-columns:1fr 1fr}.report2-date-row strong{grid-column:1/-1}.report2-scope-row{grid-template-columns:1fr}.report2-window-footer{align-items:flex-start;flex-direction:column}.report2-designer-toolbar{top:80px}}
@media print{.topbar,.sidebar,footer,.report2-print-hide{display:none!important}.app-shell{display:block}.content{padding:0;max-width:none}.report2-published-report{border:0;box-shadow:none;margin:0}.report2-published-report section{break-inside:avoid}}

/* Encabezado institucional editable y presentación oficial de Boletines. */
.report2-institution-form{max-width:900px;margin-inline:auto}.report2-institution-form .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.report2-institution-form label{display:grid;gap:6px;font-weight:650}.report2-institution-form label small{color:var(--muted);font-weight:500}.report2-institution-form .span-2{grid-column:1/-1}.report2-institution-extra-list{display:grid;gap:10px}.report2-institution-extra-row{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(240px,1.2fr) auto;gap:12px;align-items:end;padding:12px;border:1px solid var(--line);border-radius:11px;background:#fafbff}.report2-institution-preview{text-align:center}.report2-institution-preview h2{margin:8px 0 3px}.report2-institution-preview p{margin:2px 0}.report2-institution-preview hr{margin:18px 0;border:0;border-top:2px solid var(--blue)}.report2-student-header-example,.report2-student-header{display:grid;gap:5px;margin-top:14px;padding:12px 14px;border:1px solid var(--line);border-radius:9px;text-align:left}.report2-official-header>h1{margin:0 0 4px;font-size:23px}.report2-official-header>p{margin:2px 0}.report2-official-header>h2{margin:18px 0 8px;color:var(--blue)}.report2-student-header p{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin:0}.report2-student-header p:first-child{display:block}.report2-student-header p strong:not(:first-child){margin-left:auto}.report2-period-label{margin-top:12px!important}.report2-grade-block table th:not(:first-child),.report2-grade-block table td:not(:first-child){width:22%;text-align:center}
.report2-official-header{position:relative;min-height:95px}.report2-report-logo{position:absolute;top:0;left:0;width:72px;height:auto;object-fit:contain}.report2-institution-copy{min-height:89px;padding:0 82px;text-align:center}.report2-institution-copy h1{margin:0 0 4px;font-size:23px}.report2-institution-copy p{margin:2px 0}.report2-grade-block table{border:1px solid var(--blue);border-collapse:collapse}.report2-grade-block thead th{background:#eef0ff;color:var(--blue);font-weight:800}.report2-grade-block tbody tr:last-child td{border-bottom:1px solid var(--blue)}
@media(max-width:700px){.report2-institution-form .form-grid,.report2-institution-extra-row{grid-template-columns:1fr}.report2-institution-form .span-2{grid-column:auto}.report2-student-header p{display:grid}.report2-student-header p strong:not(:first-child){margin:6px 0 0}}
@media(max-width:600px){.report2-report-logo{position:static;width:60px;margin-bottom:8px}.report2-institution-copy{min-height:0;padding:0}}
.report2-publication-groups,.report2-publication-periods{display:grid;gap:14px}.report2-publication-course h2{margin-bottom:2px}.report2-publication-period{display:grid;grid-template-columns:minmax(220px,1fr) auto minmax(300px,auto);gap:16px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fafbff}.report2-publication-period>div:first-child{display:grid}.report2-publication-period small{color:var(--muted)}.report2-publication-period .actions,.report2-publication-summary .actions,td .actions{justify-content:flex-end;flex-wrap:wrap}.report2-publication-period form,.report2-publication-summary form,td .actions form{margin:0}.report2-publication-summary{display:flex;justify-content:space-between;align-items:center;gap:20px}.report2-publication-summary p{margin:8px 0 0}.report2-publication-summary .alert{margin-top:12px}
@media(max-width:950px){.report2-publication-period{grid-template-columns:1fr}.report2-publication-period .actions{justify-content:flex-start}.report2-publication-summary{align-items:flex-start;flex-direction:column}}

/* Formularios de mensajería: campos breves compactos y editor con ancho útil. */
.message-compose-panel,.message-model-panel{width:100%;max-width:1100px}
.message-compose-form,.message-model-form{align-items:start}
.message-compose-form>.errorlist,.message-model-form>.errorlist{grid-column:1/-1}
.message-compose-form{
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-template-areas:
    "recipients courses"
    "include include"
    "subject template"
    "body body"
    "prevent prevent"
    "scheduled attachments"
    "actions actions";
}
.message-compose-form .field-recipients{grid-area:recipients}
.message-compose-form .field-courses{grid-area:courses}
.message-compose-form .field-include_course_teacher{grid-area:include}
.message-compose-form .field-subject{grid-area:subject}
.message-compose-form .field-template{grid-area:template}
.message-compose-form .field-body{grid-area:body}
.message-compose-form .field-prevent_replies{grid-area:prevent}
.message-compose-form .field-scheduled_for{grid-area:scheduled}
.message-compose-form .field-attachments{grid-area:attachments}
.message-compose-form .form-actions{grid-area:actions}
.message-compose-form .field,
.message-model-form .field{min-width:0;align-self:start;align-content:start}
.message-compose-form .field-subject input,
.message-compose-form .field-template select,
.message-model-form .field-subject input{height:46px}
.message-compose-form .field-template select{min-height:46px;max-height:46px}
.message-compose-form .field-body .rich-editor{min-height:250px}
.family-message-compose{
  grid-template-areas:
    "recipients recipients"
    "subject subject"
    "body body"
    "actions actions";
}
.message-model-form{
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-template-areas:
    "name level"
    "subject subject"
    "body body"
    "active active"
    "actions actions";
}
.message-model-form-no-level{
  grid-template-areas:
    "name name"
    "subject subject"
    "body body"
    "active active"
    "actions actions";
}
.message-model-form .field-name{grid-area:name}
.message-model-form .field-level{grid-area:level}
.message-model-form .field-subject{grid-area:subject}
.message-model-form .field-body{grid-area:body}
.message-model-form .field-active{grid-area:active}
.message-model-form .form-actions{grid-area:actions}
.message-model-form .field-body .rich-editor{min-height:240px}
@media(max-width:700px){
  .message-compose-form,
  .family-message-compose{
    grid-template-columns:1fr;
    grid-template-areas:
      "recipients"
      "courses"
      "include"
      "subject"
      "template"
      "body"
      "prevent"
      "scheduled"
      "attachments"
      "actions";
  }
  .message-model-form,
  .message-model-form-no-level{
    grid-template-columns:1fr;
    grid-template-areas:
      "name"
      "level"
      "subject"
      "body"
      "active"
      "actions";
  }
}

/* Mensajería: conserva los saltos escritos y ofrece selección clara de cursos. */
.message-body{white-space:pre-wrap;overflow-wrap:anywhere}
.technical-value{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;overflow-wrap:anywhere;word-break:break-word}
.recipient-search-control{position:relative}
.recipient-search-control .recipient-search{padding-right:42px}
.recipient-search-control .recipient-search::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}
.recipient-search-clear{position:absolute;top:50%;right:9px;display:grid;place-items:center;width:26px;height:26px;transform:translateY(-50%);border:0;border-radius:50%;background:#e8eafd;color:var(--blue);font-size:20px;line-height:1;cursor:pointer}
.recipient-search-clear:hover{background:#d9ddfa}
.course-message-picker{display:grid;gap:9px;max-height:320px;overflow:auto;border:1px solid var(--line);border-radius:9px;padding:9px;background:#fff}
.course-message-options{display:grid;gap:5px}
.course-message-option{display:flex;align-items:center;gap:9px;padding:8px;border-radius:7px;font-weight:600}
.course-message-option:hover{background:#f0f2ff}
.course-message-option input{flex:0 0 auto}
.course-message-option-all{border-bottom:1px solid var(--line);border-radius:0;color:var(--blue);font-weight:800}
.course-message-summary{color:var(--muted);padding:2px 8px 4px}

/* Campana privada y estados de lectura de la bandeja de mensajes. */
.notification-center{position:relative;margin-left:auto}
.notification-center>summary{position:relative;display:grid;place-items:center;width:38px;height:42px;border:0;border-radius:0;background:transparent;color:#fff;cursor:pointer;list-style:none}
.notification-center>summary::-webkit-details-marker{display:none}
.notification-center>summary:hover,.notification-center[open]>summary{background:transparent;opacity:.82}
.notification-bell-icon{display:block;width:25px;height:25px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}
.notification-count{position:absolute;top:-7px;right:-7px;display:grid;place-items:center;min-width:21px;height:21px;padding:0 5px;border:2px solid var(--blue);border-radius:999px;background:#d62f45;color:#fff;font-size:11px;line-height:1}
.notification-menu{position:absolute;top:50px;right:0;z-index:40;width:min(390px,calc(100vw - 28px));overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);box-shadow:0 18px 55px rgba(11,17,72,.25)}
.notification-menu>header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line)}
.notification-menu>header small{color:var(--muted)}
.notification-list{display:grid;max-height:470px;overflow:auto}
.notification-item{display:grid;grid-template-columns:34px minmax(0,1fr) 10px;gap:10px;align-items:start;padding:13px 15px;border-bottom:1px solid var(--line);color:var(--ink)}
.notification-item:last-child{border-bottom:0}
.notification-item:hover{background:#f5f6ff}
.notification-item.unread{background:#eef0ff}
.notification-item>span:nth-child(2){display:grid;gap:2px}
.notification-item small{color:var(--muted);font-size:11px}
.notification-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#e8eafd;color:var(--blue);font-weight:800}
.notification-item i{width:8px;height:8px;margin-top:6px;border-radius:50%;background:#2974d1}
.inbox-thread.unread{margin-inline:-10px;padding-inline:14px;border-radius:10px;background:#eef0ff}
.inbox-thread.unread strong{color:var(--blue)}
.inbox-state{display:flex!important;align-items:center;justify-content:flex-end;gap:9px}
.badge.unread{background:#dce7ff;color:#1756a9}
.nav-message-link,.nav-report2-link,.nav-art-link,.nav-regular-certificate-link{position:relative}
.unread-message-dot,.unread-report2-dot,.unread-art-dot,.unread-regular-certificate-dot{flex:0 0 8px;width:8px;height:8px;margin-left:auto;border-radius:50%;background:#d62f45;box-shadow:0 0 0 2px #fff}
@media(max-width:700px){.notification-center{margin-left:auto}.notification-menu{position:fixed;top:70px;right:8px}.inbox-state{align-items:flex-end;flex-direction:column}.inbox-state b{display:none}}
/* El paginador conserva botones amplios sin desplazar las tablas en móvil. */
.pagination {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  justify-content: center;
  margin-top: 1rem;
}

/* Encabezados ordenables: el texto conserva contraste y la flecha comunica el sentido. */
.sortable-heading{display:inline-flex;align-items:center;gap:6px;color:inherit;text-decoration:none;white-space:nowrap}
.sortable-heading span{display:inline-grid;place-items:center;min-width:18px;color:var(--blue);font-size:13px}
.sortable-heading:hover,.sortable-heading:focus-visible{color:var(--blue);text-decoration:underline;text-underline-offset:3px}
.teacher-list-toolbar{display:flex;justify-content:flex-end;margin-bottom:12px}.teacher-list-search{display:flex;align-items:center;gap:7px;width:min(100%,420px)}.teacher-list-search input[type=search]{min-width:0;flex:1;height:38px;padding:7px 11px;border:1px solid #d9dce9;border-radius:9px;background:#fff}.teacher-list-search .btn{min-height:38px;padding:7px 11px;font-size:13px}@media(max-width:560px){.teacher-list-search{width:100%;flex-wrap:wrap}.teacher-list-search input[type=search]{flex-basis:100%}}
.personnel-access-search{margin:0 0 16px auto;width:min(100%,620px)}.personnel-access-actions{justify-content:space-between;margin-bottom:12px}.personnel-access-confirm-list{display:grid;gap:7px;max-height:280px;overflow:auto;margin:15px 0;padding:12px;border:1px solid var(--line);border-radius:10px}.personnel-access-confirm-list span{padding-bottom:7px;border-bottom:1px solid var(--line)}.personnel-access-confirm-list span:last-child{padding-bottom:0;border-bottom:0}@media(max-width:560px){.personnel-access-actions{align-items:stretch;flex-direction:column}.personnel-access-actions .btn{width:100%}}

/* Ayuda contextual reutilizable: permanece sobre la pantalla y conserva datos. */
.screen-help-button{position:fixed;right:24px;bottom:24px;z-index:38;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:9px 14px;border:2px solid #fff;border-radius:24px;background:var(--blue);color:#fff;font-weight:800;box-shadow:0 8px 24px rgba(var(--institution-primary-rgb),.28);cursor:pointer}.screen-help-button>span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#fff;color:var(--blue);font-size:16px}.screen-help-button small{padding:2px 6px;border-radius:9px;background:#ffe36b;color:#3e3300;font-size:10px;text-transform:uppercase;letter-spacing:.04em}.screen-help-button:hover,.screen-help-button:focus-visible{background:var(--blue-2);transform:translateY(-1px)}.screen-help-dialog{z-index:100;width:min(760px,calc(100vw - 32px));height:min(760px,84vh);height:min(760px,84dvh);max-width:none;max-height:none;margin:auto;padding:0;border:1px solid #cbd0e8;border-radius:17px;background:#fff;color:var(--ink);overflow:hidden;box-shadow:0 26px 90px rgba(9,14,55,.4)}.screen-help-dialog::backdrop{background:rgba(16,20,48,.62);backdrop-filter:blur(2px)}.screen-help-shell{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;height:100%}.screen-help-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:22px 24px 15px;border-bottom:1px solid var(--line)}.screen-help-header h2{margin:4px 0;color:var(--blue)}.screen-help-header small{color:var(--muted)}.screen-help-close{display:grid;place-items:center;flex:0 0 auto;width:38px;height:38px;border:0;border-radius:50%;background:#eef0ff;color:var(--blue);font-size:28px;line-height:1;cursor:pointer}.screen-help-close:hover,.screen-help-close:focus-visible{background:var(--blue);color:#fff}.screen-help-index{display:flex;gap:7px;padding:10px 24px;border-bottom:1px solid var(--line);overflow-x:auto;background:#f8f9ff;scrollbar-width:thin}.screen-help-index a{flex:0 0 auto;padding:6px 9px;border-radius:8px;color:var(--blue);font-size:12px;font-weight:750}.screen-help-index a:hover,.screen-help-index a:focus-visible{background:#e5e8ff}.screen-help-scroll{min-height:0;padding:5px 24px 24px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.screen-help-scroll section{padding-top:18px;scroll-margin-top:8px}.screen-help-scroll h3{margin:0 0 8px;color:var(--blue);font-size:18px}.screen-help-scroll p{margin:0;line-height:1.55}.screen-help-scroll ol,.screen-help-scroll ul{margin:8px 0 0;padding-left:22px}.screen-help-scroll li{margin:7px 0;line-height:1.45}.screen-help-role-note{margin-top:13px!important;padding:12px 14px;border-left:4px solid var(--blue);border-radius:8px;background:#eef0ff}.screen-help-scroll dl{display:grid;gap:9px;margin:10px 0 0}.screen-help-scroll dl>div{padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#fafbff}.screen-help-scroll dt{font-weight:800;color:var(--blue)}.screen-help-scroll dd{margin:3px 0 0;line-height:1.45}.screen-help-tips{margin-top:18px;padding:16px 18px!important;border:1px solid #ead88c;border-radius:11px;background:#fff8dc}.screen-help-example{margin-top:15px;padding:16px 18px!important;border:1px solid #b9ddd3;border-radius:11px;background:#eef9f5}.screen-help-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 24px;border-top:1px solid var(--line);background:#fff}.screen-help-footer span{color:var(--muted);font-size:12px}.screen-help-footer .btn{flex:0 0 auto}

/* Ayudas breves de campo generadas desde los textos que ya posee el formulario. */
label.has-field-help{position:relative;padding-right:29px}.field-help-button{position:absolute;top:0;right:0;z-index:3;display:grid;place-items:center;width:22px;height:22px;padding:0;border:1px solid #b9bee0;border-radius:50%;background:#eef0ff;color:var(--blue);font-size:12px;font-weight:900;line-height:1;cursor:pointer}.field-help-button:hover,.field-help-button:focus-visible,.field-help-button[aria-expanded="true"]{border-color:var(--blue);background:var(--blue);color:#fff}.field-help-popover{position:absolute;top:28px;right:0;z-index:45;width:min(290px,calc(100vw - 54px));padding:10px 12px;border:1px solid #c6cae4;border-radius:9px;background:#fff;color:var(--ink);font-size:12px;font-weight:500;line-height:1.4;box-shadow:0 10px 28px rgba(var(--institution-primary-rgb),.2)}.field-help-popover[hidden]{display:none}

@media(max-width:700px){.screen-help-button{right:14px;bottom:14px}.screen-help-dialog{width:calc(100vw - 18px);height:calc(100vh - 22px);height:calc(100dvh - 22px);border-radius:13px}.screen-help-header{padding:18px 17px 13px}.screen-help-index{padding:8px 17px}.screen-help-scroll{padding:3px 17px 18px}.screen-help-footer{align-items:flex-start;padding:11px 17px}.screen-help-footer span{max-width:68%}}
@media print{.screen-help-button,.screen-help-dialog,.field-help-button,.field-help-popover{display:none!important}}

/* Auditoría de mensajes: filtros compactos y conversaciones separadas de la bandeja propia. */
.message-audit-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.message-audit-filters label{display:grid;gap:6px;font-weight:700}.message-audit-filters input,.message-audit-filters select{width:100%;padding:10px 12px;border:1px solid #d9dce9;border-radius:9px;background:#fff}.message-audit-list{display:grid;gap:14px}.message-audit-row{padding:17px;border:1px solid var(--line);border-radius:13px;background:#fbfbfe}.message-audit-heading,.message-audit-footer{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.message-audit-heading>div{display:flex;align-items:center;gap:10px;min-width:0;flex-wrap:wrap}.message-audit-heading h2{margin:0;font-size:17px;overflow-wrap:anywhere}.message-audit-heading time{flex:0 0 auto;color:var(--muted);font-size:12px}.message-audit-people{margin:10px 0 7px;color:var(--muted);font-size:13px}.message-audit-excerpt{padding:10px 12px;border-left:3px solid #c9cdef;background:#fff;white-space:pre-line}.message-audit-footer{align-items:center;margin-top:12px}.message-audit-footer .btn{padding:7px 11px;font-size:12px}.message-audit-summary{display:flex;gap:7px;flex-wrap:wrap}.badge.search{background:#fff2bd;color:#6b5100}.audit-thread .message-bubble{width:100%;max-width:100%;scroll-margin-top:130px}.audit-readonly-note{max-width:900px;margin-top:18px;border-left:5px solid var(--blue)}.audit-readonly-note p{margin:5px 0 0;color:var(--muted)}.audit-match-navigation{position:sticky;top:88px;z-index:8;display:flex;align-items:center;gap:10px;max-width:900px;margin:0 0 16px;padding:12px 15px;border:1px solid #d5c36f;border-radius:12px;background:#fff8d8;box-shadow:var(--shadow)}.audit-match-navigation span{margin-left:auto;color:var(--muted);font-weight:700}.audit-match-navigation .btn{padding:7px 11px}.audit-subject-match{max-width:900px;border-left:5px solid #d5ad00;background:#fff8d8}.audit-search-match{border-color:#e0ca5f}.audit-search-current{animation:audit-target-pulse 1.6s ease-out;box-shadow:0 0 0 4px rgba(245,217,10,.42),var(--shadow)}.message-body mark.audit-search-term{padding:1px 2px;border-radius:3px;background:#ffe75a;color:#1e2440}@keyframes audit-target-pulse{0%,35%{background:#fff5b8}100%{background:#fff}}
@media(max-width:850px){.message-audit-filters{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.message-audit-filters{grid-template-columns:1fr}.message-audit-heading,.message-audit-footer{align-items:flex-start;flex-direction:column}.message-audit-heading>div{align-items:flex-start;flex-direction:column}.audit-match-navigation{top:78px;flex-wrap:wrap}.audit-match-navigation span{margin-left:0;margin-right:auto}}

/* Base permanente WCAG 2.2 AA: no cambia la identidad institucional; mejora
   contraste, foco, tamaño de objetivos, reflujo y preferencias del sistema. */
:root{--muted:#666c84}
html{scroll-padding-top:96px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{overflow-wrap:anywhere}
*:focus-visible{outline:3px solid #fff!important;outline-offset:2px!important;box-shadow:0 0 0 5px var(--blue)!important}
.topbar *:focus-visible,.login-brand *:focus-visible{box-shadow:0 0 0 5px #f5d90a!important}
.view-as-button:focus{outline:3px solid #fff}
.btn,.nav-toggle,.notification-center>summary,.screen-help-close{min-width:44px;min-height:44px}
.btn:disabled,.btn[aria-disabled="true"]{cursor:not-allowed;opacity:.48;filter:grayscale(.25)}
.app-shell.focus-shell{grid-template-columns:minmax(0,1fr);min-height:calc(100vh - 36px);min-height:calc(100dvh - 36px)}
.focus-shell .content{max-width:1200px;padding-top:28px}
input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="color"]),select,textarea{min-height:44px}
input[type="checkbox"],input[type="radio"]{width:24px!important;height:24px!important;min-width:24px;min-height:24px;margin:0;accent-color:var(--blue)}
.field-help-button{width:24px;height:24px}
.editor-toolbar button,.recipient-search-clear{min-width:44px;min-height:44px}
.table-wrap[tabindex="0"],.wide-grade-scroll[tabindex="0"],.report2-grade-table-wrap[tabindex="0"]{scrollbar-gutter:stable;scroll-padding:8px}
.content a:not(.btn):not(.course-card):not(.list-row):not(.report2-action-card):not(.notification-item){text-decoration:underline;text-decoration-thickness:.08em;text-underline-offset:.18em}
.content a:not(.btn):not(.course-card):not(.list-row):not(.report2-action-card):not(.notification-item):hover{text-decoration-thickness:.14em}

@media(max-width:400px){
  .content{padding:18px 10px}
  .panel{padding:16px}
  .page-head h1{font-size:25px}
  .form-actions,.actions{align-items:stretch;flex-direction:column}
  .form-actions .btn,.actions .btn{width:100%}
  dl{grid-template-columns:1fr}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}
  .course-card:hover,.screen-help-button:hover{transform:none}
}

@media(forced-colors:active){
  .btn,.panel,.stat-card,.course-card,.badge,.alert,input,select,textarea,dialog{border:1px solid CanvasText}
  .unread-message-dot,.unread-report2-dot,.unread-art-dot,.unread-regular-certificate-dot,.notification-item i{background:CanvasText}
  *:focus-visible{outline:3px solid Highlight!important;box-shadow:none!important}
}

/* El acceso y las páginas de error usan un único título principal. */
.login-brand-primary{align-items:stretch;text-align:center}
.login-brand-primary .login-brand-content{display:grid;width:100%;justify-items:center}
.login-brand-primary .login-logo{margin-right:auto;margin-left:auto}
.login-brand-primary .login-tagline{display:block;width:min(520px,100%);margin:0 auto;font-size:clamp(16px,1.35vw,21px);font-weight:500;line-height:1.5;text-align:center;text-wrap:balance}
.tagline-settings-panel{max-width:760px}.tagline-settings-form{max-width:680px}.login-tagline-admin-preview{display:flex;align-items:center;flex-direction:column;justify-content:center;gap:18px;max-width:760px;min-height:430px;padding:38px;border-radius:16px;background:var(--blue);color:#fff;text-align:center;box-shadow:var(--shadow)}.login-tagline-admin-preview .eyebrow{color:#fff}.login-tagline-admin-preview img{display:block;max-width:55%;height:auto;object-fit:contain;filter:drop-shadow(0 8px 18px rgba(0,0,0,.22))}.login-tagline-admin-preview p{max-width:560px;margin:0;font-size:19px;line-height:1.5;text-wrap:balance}
.login-card h1{font-size:34px;margin:5px 0}
.login-card a:not(.btn){text-decoration:underline;text-decoration-thickness:.08em;text-underline-offset:.18em}

/* ART prioriza lectura rápida de teléfonos sin apartarse del diseño institucional. */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.art-information{display:grid;gap:26px;max-width:1050px}
.art-description{max-width:900px;font-size:1.05rem;line-height:1.75;color:var(--ink)}
.art-description p{margin:0 0 .8rem}
.art-phones{display:grid;gap:10px;padding:22px;border-left:6px solid var(--blue);border-radius:12px;background:#eef0ff;color:var(--blue)}
.art-phones p{display:grid;gap:3px;margin:0;font-size:clamp(1.15rem,2vw,1.45rem);line-height:1.4;overflow-wrap:anywhere}
.art-phones strong{font-size:inherit}
.art-phones strong span{font-size:.82em}
.art-phone-number{display:block;font-size:1.08em;font-weight:800;letter-spacing:.02em}
.art-institution{padding-top:5px;border-top:1px solid var(--line)}
.art-institution h2{font-size:1.15rem}
.art-claim-number{padding:18px 20px;border:2px solid var(--blue);border-radius:12px;background:#f7f8ff}
.art-claim-number h2{margin:0 0 5px;color:var(--blue)}
.art-claim-number strong{display:block;font-size:1.35rem;overflow-wrap:anywhere}
.art-personnel-search{margin-top:18px}
.art-claim-form{display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:8px;min-width:310px;align-items:center}
.art-claim-form .btn{padding:9px 12px}
.art-claim-field{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center}
.art-claim-field input[readonly]{background:#f1f2f6;color:#45495a;cursor:default}
.art-claim-edit-actions{display:flex;gap:6px}
.art-claim-help{position:relative}
.art-claim-help summary{display:grid;place-items:center;width:28px;height:28px;border:1px solid #c7cbe0;border-radius:50%;background:#eef0ff;color:var(--blue);font-weight:850;cursor:pointer;list-style:none}
.art-claim-help summary::-webkit-details-marker{display:none}
.art-claim-help summary:hover,.art-claim-help summary:focus-visible{border-color:var(--blue);background:var(--blue);color:#fff}
.art-claim-help p{position:absolute;right:0;z-index:12;width:min(300px,70vw);margin:7px 0 0;padding:10px 12px;border:1px solid #cbd0e8;border-radius:9px;background:#fff;color:var(--ink);font-size:12px;font-weight:600;line-height:1.45;box-shadow:var(--shadow)}
@media(max-width:700px){.art-phones{padding:17px}.art-institution dl{grid-template-columns:1fr}.art-institution dd{margin-bottom:8px}.art-claim-form{grid-template-columns:1fr;min-width:220px}.art-claim-edit-actions{flex-wrap:wrap}}

/* Constancias: selección clara, editor compacto y documento integrado. */
.certificate-issue-form{align-items:start}.certificate-student-summary{display:grid;gap:5px;align-self:stretch;padding:14px 16px;border:1px solid #cbd0e8;border-left:5px solid var(--blue);border-radius:10px;background:#f7f8ff}.certificate-student-summary strong{color:var(--blue)}.certificate-date-wording{grid-column:1/-1;margin:0;padding:10px 13px;border-radius:9px;background:#eef0ff;color:var(--blue);font-weight:700}.certificate-format-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:0;padding:9px;border:1px solid #cbd0e8;border-bottom:0;border-radius:10px 10px 0 0;background:#f5f6fb}.certificate-format-toolbar>div{display:flex;flex-wrap:wrap;gap:5px;padding-right:8px;border-right:1px solid #d9dcec}.certificate-format-toolbar>div:last-child{border-right:0}.certificate-format-toolbar button{min-height:42px;padding:7px 11px;border:1px solid #cbd0e8;border-radius:7px;background:#fff;color:var(--blue);font:inherit;font-weight:700;cursor:pointer}.certificate-format-toolbar button:hover{background:#e9ecff}.certificate-format-toolbar button:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.certificate-rich-editor{min-height:300px;padding:18px;border:1px solid #cbd0e8;border-radius:0 0 10px 10px;background:#fff;line-height:1.7}.certificate-rich-editor:focus-visible{border-color:var(--blue);outline:3px solid rgba(var(--institution-primary-rgb),.2)}.certificate-rich-editor[aria-invalid=true]{border-color:#a21d2d;box-shadow:0 0 0 3px rgba(162,29,45,.15)}.certificate-rich-editor p,.certificate-rich-editor div{margin:0 0 16px}.certificate-marker-groups{display:grid;gap:14px;margin-top:20px}.certificate-marker-groups section{padding:14px;border:1px solid var(--line);border-radius:10px;background:#fafbff}.certificate-marker-groups h3{margin:0 0 10px;color:var(--blue);font-size:15px}.certificate-marker-toolbar{display:flex;flex-wrap:wrap;gap:7px}.certificate-marker-toolbar .btn{min-height:40px;padding:7px 11px}.certificate-settings-form textarea{width:100%;min-height:260px;line-height:1.6}.certificate-viewer-panel{padding:28px}.certificate-document{position:relative;display:flex;flex-direction:column;min-height:920px;max-width:850px;margin:auto;padding:52px 64px 34px;background:#fff;color:#151a30;box-shadow:0 10px 35px rgba(18,24,68,.12)}.certificate-document-header{display:grid;grid-template-columns:90px 1fr 90px;align-items:center;color:var(--blue);text-align:center}.certificate-document-header img{width:76px;height:auto}.certificate-document-header div{display:grid;font-size:13px;line-height:1.45}.certificate-document>h2{margin:34px 0 52px;color:var(--blue);font-size:25px;text-align:center}.certificate-document-body{font-size:17px;line-height:1.75;text-align:justify}.certificate-document-body p,.certificate-document-body div{margin:0 0 22px}.certificate-document-body ul,.certificate-document-body ol{margin:0 0 22px;padding-left:28px}.certificate-document-body blockquote{margin:0 20px 22px;padding-left:14px;border-left:3px solid #cbd0e8}.certificate-signatures{display:grid;grid-template-columns:1fr 1fr;gap:55px;margin:55px 25px 0;text-align:center;color:var(--muted);font-size:12px}.certificate-signature-block{display:flex;flex-direction:column}.certificate-signature-visual{display:flex;align-items:flex-end;justify-content:center;min-height:122px}.certificate-signature-visual img{display:block;width:92px;height:auto;max-height:118px;object-fit:contain}.certificate-signature-block>span{display:block;min-height:25px;padding-top:8px;border-top:1px solid var(--blue)}.certificate-document footer{margin-top:auto;color:var(--muted);font-size:10px;text-align:center}
.certificate-level-nav{display:flex;flex-wrap:wrap;gap:9px;margin:-8px 0 18px}.certificate-request-policy{border-left:5px solid var(--blue)}.certificate-policy-form,.certificate-family-request-form{align-items:end}.certificate-policy-form .checkbox-row{min-height:46px}.certificate-pending-list{display:grid;gap:10px;margin-top:15px}.certificate-pending-list article{display:grid;gap:4px;padding:14px 16px;border:1px solid #d9dcec;border-left:5px solid #d3a300;border-radius:10px;background:#fffdf2}.certificate-pending-list article strong{color:var(--blue)}.certificate-pending-list article span{color:var(--muted);font-size:14px}.inline-form{display:inline}.inline-form .btn{white-space:nowrap}
@media(max-width:700px){.certificate-marker-toolbar{max-height:210px;overflow:auto}.certificate-viewer-panel{padding:10px;overflow:auto}.certificate-document{min-width:650px;min-height:850px;padding:42px 48px}}
@media print{body{background:#fff}.topbar,.sidebar,.page-head,.screen-help-button,.screen-help-dialog,body>footer{display:none!important}.app-shell,.content{display:block!important;max-width:none!important;margin:0!important;padding:0!important}.certificate-viewer-panel{margin:0!important;padding:0!important;border:0!important;box-shadow:none!important}.certificate-document{min-height:270mm;max-width:none;margin:0;padding:18mm 20mm;box-shadow:none}.certificate-document footer{display:block!important}}
/* En la impresión de constancias se aísla el documento completo. Los avisos
   posteriores a la emisión y cualquier control de la aplicación no ocupan
   espacio ni pueden aparecer por encima de la hoja institucional. */
@media print{
  body.certificate-print-page .skip-link,
  body.certificate-print-page .messages,
  body.certificate-print-page .content>*:not(.certificate-viewer-panel),
  body.certificate-print-page .certificate-viewer-panel>h2{display:none!important}
  body.certificate-print-page .certificate-viewer-panel,
  body.certificate-print-page .certificate-document{display:block!important}
}
.nav-icon{flex:0 0 auto;min-width:20px;text-align:center}
@media(max-width:1000px){.sidebar .nav-icon{display:inline}.sidebar .nav-label{display:none}}
@media(max-width:700px){.sidebar .nav-label{display:inline}}

/* Archivo salarial: jerarquía año/mes y estados legibles sin depender del color. */
.payslip-filter-form{grid-template-columns:minmax(16rem,2fr) repeat(3,minmax(9rem,1fr)) auto;align-items:end}
.payslip-year,.payslip-month{margin-top:.8rem;overflow:clip;border:1px solid var(--line);border-radius:.8rem;background:#fff}
.payslip-year>summary,.payslip-month>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:3rem;padding:.75rem 1rem;cursor:pointer}
.payslip-year>summary{background:var(--blue);color:#fff}.payslip-month>summary{background:#f4f6ff;color:var(--blue)}
.payslip-year-content{padding:0 .8rem .8rem}.payslip-status,.payslip-result{display:inline-block;padding:.2rem .55rem;border:1px solid currentColor;border-radius:999px;font-weight:750}
.payslip-status.viewed,.payslip-result.uploaded{background:#eefaf2;color:#176b35}.payslip-status.unseen,.payslip-result.rejected{background:#fff2f2;color:#9d1c1c}.payslip-result.duplicate{background:#fff8db;color:#745300}
.payslip-status.status-emitido{background:#eefaf2;color:#176b35}.payslip-status.status-borrador{background:#eef0f7;color:#4e5771}.payslip-status.status-rectificativo{background:#eaf3ff;color:#174f91}.payslip-status.status-anulado{background:#fff2f2;color:#9d1c1c}.payslip-document-summary code{overflow-wrap:anywhere}
.payslip-recipient-summary{display:flex;align-items:center;gap:.7rem;margin-bottom:.8rem;padding:.72rem .9rem;border:1px solid;border-radius:.75rem}.payslip-recipient-summary.has-pending{border-color:#e2bd5c;background:#fff9e8;color:#624700}.payslip-recipient-summary.is-complete{border-color:#abd7bd;background:#eef9f3;color:#175f37}.payslip-recipient-summary-icon{display:grid;place-items:center;flex:0 0 1.8rem;width:1.8rem;height:1.8rem;border-radius:50%;color:#fff;font-size:.85rem;font-weight:900}.payslip-recipient-summary.has-pending .payslip-recipient-summary-icon{background:#745300}.payslip-recipient-summary.is-complete .payslip-recipient-summary-icon{background:#176b35}.payslip-recipient-summary>div{display:grid;gap:.05rem}.payslip-recipient-summary strong{font-size:.95rem}.payslip-recipient-summary span:last-child{font-size:.82rem}
.payslip-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,25rem),1fr));gap:.7rem;padding:.8rem}.payslip-card{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:.75rem;row-gap:.55rem;align-items:center;min-height:7.6rem;padding:.82rem;border:1px solid var(--line);border-left:4px solid #a9aec4;border-radius:.7rem;background:#fff;box-shadow:0 4px 12px rgba(var(--institution-primary-rgb),.05)}.payslip-card.is-pending{border-left-color:#c38300;background:#fffdfa}.payslip-card.is-confirmed{border-left-color:#268052}.payslip-card.is-void{border-left-color:#a51f31;background:#fffafa}.payslip-card-document{display:grid;grid-template-columns:2.35rem minmax(0,1fr);gap:.65rem;align-items:start}.payslip-card-icon{display:grid;place-items:center;width:2.35rem;height:2.75rem;border-radius:.4rem;background:#eef0ff;color:var(--blue);font-size:.62rem;font-weight:900;letter-spacing:.04em}.payslip-card-document h3{margin:0 0 .15rem;color:var(--ink);font-size:1rem}.payslip-card-document p{margin:0;color:var(--blue);font-size:.78rem;font-weight:750;overflow-wrap:anywhere}.payslip-card-document small{display:block;margin-top:.15rem;color:var(--muted);font-size:.72rem}.payslip-card-reception{display:flex;grid-row:2;grid-column:1;align-items:center;flex-wrap:wrap;gap:.35rem .55rem}.payslip-card-state{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .5rem;border:1px solid currentColor;border-radius:999px;font-size:.74rem;font-weight:800}.payslip-card-state.pending{background:#fff6d9;color:#745300}.payslip-card-state.confirmed{background:#eefaf2;color:#176b35}.payslip-card-state.void{background:#fff2f2;color:#9d1c1c}.payslip-card-state.inactive{background:#eef0f7;color:#4e5771}.payslip-card-reception small{color:var(--muted);font-size:.72rem}.payslip-card-action{grid-row:1/3;grid-column:2;align-self:center;min-height:2.6rem;padding:.55rem .8rem;white-space:nowrap}
.payslip-recipient-message{grid-column:1/-1;margin-top:.2rem;color:var(--blue);font-weight:800;white-space:pre-line}.payslip-acknowledgement-panel{max-width:none}.payslip-acknowledgement-heading{display:flex;align-items:center;gap:.55rem;margin-bottom:1rem}.payslip-acknowledgement-heading h2{margin:0}.payslip-acknowledgement-help{position:relative}.payslip-acknowledgement-help>summary{display:grid;place-items:center;width:1.45rem;height:1.45rem;border:1px solid var(--blue);border-radius:50%;color:var(--blue);font-weight:900;line-height:1;cursor:pointer;list-style:none}.payslip-acknowledgement-help>summary::-webkit-details-marker{display:none}.payslip-acknowledgement-help>summary:hover,.payslip-acknowledgement-help>summary:focus-visible,.payslip-acknowledgement-help[open]>summary{background:var(--blue);color:#fff}.payslip-acknowledgement-help>p{position:absolute;z-index:5;top:1.8rem;left:0;width:min(32rem,calc(100vw - 4rem));margin:0;padding:.75rem .9rem;border:1px solid #c6cae4;border-radius:.6rem;background:#fff;color:var(--ink);font-size:.85rem;font-weight:500;box-shadow:0 10px 28px rgba(var(--institution-primary-rgb),.2)}.payslip-confirmation-option{display:flex;grid-column:1/-1;align-items:center;gap:.65rem;font-weight:650}.payslip-confirmation-option input{flex:0 0 auto;margin:0}.payslip-confirmation-option span{min-width:0}
.payslip-upload-progress progress{width:100%;height:1rem;accent-color:var(--blue)}
.job-progress-panel progress{width:100%;height:1.15rem;accent-color:var(--blue)}.job-progress-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}.job-status{font-weight:750}.job-status-completado{color:#176b35}.job-status-error,.job-status-con_errores{color:#9d1c1c}.job-status-procesando,.job-status-pendiente{color:var(--blue)}
.document-preparing progress{width:100%;height:1rem;accent-color:var(--blue)}
.payslip-upload-metrics{display:flex;flex-wrap:wrap;gap:.65rem;margin:1rem 0}.payslip-upload-metrics>span{padding:.45rem .75rem;border:1px solid var(--line);border-radius:999px}
.payslip-result.failed,.payslip-result.processing{background:#fff3cd;color:#694600}
.payslip-upload-results{max-height:34rem;margin-top:1rem;overflow:auto}
.payslip-viewer-panel{padding:1rem}.payslip-viewer-panel h2{margin:.25rem 0 1rem}.payslip-pdf-viewer{overflow:hidden;border:1px solid var(--line);border-radius:.7rem;background:#eef0f7}.payslip-pdf-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.8rem;min-height:3.5rem;padding:.5rem .7rem;border-bottom:1px solid var(--line);background:#fff}.payslip-pdf-page-count{color:var(--muted);font-size:.86rem;font-weight:750}.payslip-pdf-zoom-controls{display:flex;align-items:center;gap:.35rem}.payslip-pdf-control{display:grid;place-items:center;min-width:2.75rem;min-height:2.75rem;padding:.35rem;font-size:1.25rem;line-height:1}.payslip-pdf-fit-width{min-height:2.75rem;padding:.45rem .75rem}.payslip-pdf-zoom-label{min-width:4.4rem;color:var(--ink);font-size:.86rem;font-weight:800;text-align:center}.payslip-pdf-status{margin:0;padding:1rem;background:#fff;color:var(--muted);font-weight:700;text-align:center}.payslip-pdf-stage{width:100%;height:75vh;height:75dvh;min-height:34rem;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;background:#e7e9f2}.payslip-pdf-stage:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}.payslip-pdf-pages{display:flex;flex-direction:column;align-items:center;gap:1rem;width:max-content;min-width:100%;padding:1rem}.payslip-pdf-page{flex:none;width:max-content;overflow:hidden;background:#fff;box-shadow:0 5px 18px rgba(18,25,67,.18)}.payslip-pdf-canvas{display:block;background:#fff}.payslip-pdf-viewer.has-pdf-error .payslip-pdf-toolbar,.payslip-pdf-viewer.has-pdf-error .payslip-pdf-stage{display:none}.payslip-pdf-viewer.has-pdf-error .payslip-pdf-status{color:#8d1b28}
@media(max-width:720px){.payslip-filter-form{grid-template-columns:1fr}}
@media(max-width:600px){.payslip-year-content{padding:0 .45rem .45rem}.payslip-card-grid{padding:.55rem}.payslip-card{grid-template-columns:1fr;grid-template-rows:auto;gap:.65rem;min-height:0}.payslip-card-reception{grid-row:auto;grid-column:1}.payslip-card-action{grid-row:auto;grid-column:1;width:100%}.payslip-recipient-summary{align-items:flex-start}.payslip-confirmation-option{align-items:flex-start}.payslip-confirmation-option input{margin-top:.25rem}.payslip-viewer-panel{padding:.6rem}.payslip-pdf-toolbar{align-items:flex-start;flex-direction:column}.payslip-pdf-zoom-controls{justify-content:space-between;width:100%}.payslip-pdf-stage{height:68vh;height:68dvh;min-height:28rem}.payslip-pdf-pages{gap:.65rem;padding:.65rem}}

/* El boletín anual conserva una primera columna cómoda y distribuye los
   períodos de forma uniforme sin ensanchar toda la aplicación. */
.report2-annual-report{max-width:1120px}.report2-annual-table-wrap{max-width:100%;overflow:auto;border:1px solid var(--blue);border-radius:8px;scrollbar-gutter:stable}.report2-annual-table{min-width:760px;border:0!important}.report2-annual-table th:first-child,.report2-annual-table td:first-child{width:42%;min-width:290px;text-align:left}.report2-annual-table th:not(:first-child),.report2-annual-table td:not(:first-child){width:auto;min-width:118px;text-align:center}.report2-annual-grade-cell{font-weight:650;color:#22284b}.report2-annual-table-wrap:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
@media(max-width:700px){.report2-annual-table{min-width:680px}.report2-annual-table th:first-child,.report2-annual-table td:first-child{min-width:245px}}
@media print{.report2-annual-table-wrap{overflow:visible;border:0}.report2-annual-table{min-width:0}.report2-annual-table th:first-child,.report2-annual-table td:first-child{min-width:0}}

/* Inicio personalizado: jerarquiza contexto, pendientes, agenda y cursos sin
   repetir la bandeja de mensajes ni las métricas técnicas del tablero previo. */
.dashboard-page .content{max-width:1520px}
.dashboard-hero{position:relative;display:flex;align-items:center;justify-content:space-between;min-height:230px;margin-bottom:22px;overflow:hidden;border-radius:24px;background:linear-gradient(135deg,var(--blue) 0%,var(--blue-2) 100%);color:#fff;box-shadow:0 18px 45px rgba(var(--institution-primary-rgb),.18)}
.dashboard-hero::after{position:absolute;inset:auto -8% -55% 35%;height:230px;border-radius:50%;background:rgba(255,255,255,.06);content:""}
.dashboard-hero-copy{position:relative;z-index:2;padding:38px 42px}.dashboard-kicker{display:block;margin-bottom:9px;color:#ffed70;font-size:12px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.dashboard-hero h1{margin:0 0 8px;font-size:clamp(30px,3.2vw,48px);line-height:1.08}.dashboard-hero p{margin:0;color:rgba(255,255,255,.8);font-size:16px}.dashboard-hero>img{position:absolute;z-index:1;right:30px;width:190px;height:auto;opacity:.19;filter:saturate(.75)}
.dashboard-account{display:inline-block;margin-top:8px;color:rgba(255,255,255,.72);font-size:12px;font-weight:750}
.dashboard-hero-metrics{display:flex;gap:12px;margin-top:25px}.dashboard-hero-metrics span{display:flex;align-items:baseline;gap:6px;padding:8px 13px;border:1px solid rgba(255,255,255,.25);border-radius:999px;background:rgba(255,255,255,.09);font-size:12px}.dashboard-hero-metrics strong{font-size:18px}
.dashboard-announcement,.dashboard-announcement-empty{display:flex;align-items:center;gap:16px;margin-bottom:22px;padding:18px 20px;border:1px solid #e3c91a;border-radius:16px;background:#fffceb}.dashboard-announcement-icon{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:50%;background:#f5d90a;color:var(--blue);font-size:20px;font-weight:900}.dashboard-announcement>div{flex:1}.dashboard-announcement h2{margin:1px 0 4px;font-size:18px}.dashboard-announcement p{margin:0;color:#4f4a29}.dashboard-announcement small{display:block;margin-top:5px;color:#716a38}.dashboard-announcement-empty{justify-content:space-between;color:var(--muted)}
.dashboard-section{margin-bottom:24px;padding:22px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 10px 30px rgba(var(--institution-primary-rgb),.06)}.dashboard-section-head{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:16px}.dashboard-section-head h2{margin:1px 0 0;font-size:21px}.dashboard-section-head>a{font-weight:750}.dashboard-section-count{padding:5px 10px;border-radius:999px;background:#eef0ff;color:var(--blue);font-size:12px;font-weight:800}
.dashboard-task-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.dashboard-task{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:11px;align-items:center;min-height:82px;padding:14px;border:1px solid var(--line);border-left:4px solid #a9aec4;border-radius:12px;color:var(--ink);transition:transform .16s ease,border-color .16s ease}.dashboard-task:hover{transform:translateY(-2px);border-color:#b7bce0}.dashboard-task>span:first-child{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:#eef0ff;color:var(--blue);font-weight:900}.dashboard-task>span:nth-child(2){display:grid;gap:2px}.dashboard-task small{color:var(--muted);line-height:1.35}.dashboard-task>b{color:var(--blue);font-size:18px}.dashboard-task-warning{border-left-color:#d39100}.dashboard-task-info{border-left-color:#3977c5}.dashboard-all-clear{display:flex;align-items:center;gap:13px;padding:17px;border-radius:12px;background:#edf8f3;color:#176744}.dashboard-all-clear>span{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#d7efe3;font-size:20px;font-weight:900}.dashboard-all-clear p{margin:2px 0 0;color:#4a745f}
.dashboard-action-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:11px}.dashboard-action-card{display:grid;grid-template-columns:44px 1fr;grid-template-rows:auto auto;gap:1px 11px;align-items:center;min-height:82px;padding:13px;border:1px solid var(--line);border-radius:13px;color:var(--ink);transition:background .16s ease,transform .16s ease}.dashboard-action-card:hover{transform:translateY(-2px);background:#f7f8ff}.dashboard-action-card>span{display:grid;grid-row:1/3;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--blue);color:#fff;font-size:18px}.dashboard-action-card small{overflow:hidden;color:var(--muted);font-size:11px;line-height:1.25;text-overflow:ellipsis}
.dashboard-main-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.7fr);gap:22px}.dashboard-main-grid>.dashboard-section:only-child{grid-column:1/-1}.dashboard-agenda-grid{display:grid;grid-template-columns:repeat(5,minmax(125px,1fr));overflow:auto;border:1px solid var(--line);border-radius:12px}.dashboard-agenda-day{min-height:190px;border-right:1px solid var(--line)}.dashboard-agenda-day:last-child{border-right:0}.dashboard-agenda-day>header{display:grid;grid-template-columns:1fr auto;gap:1px 8px;padding:10px 11px;border-bottom:1px solid var(--line);background:#f7f8fc}.dashboard-agenda-day>header strong{text-transform:capitalize}.dashboard-agenda-day>header span{font-weight:800}.dashboard-agenda-day>header small{grid-column:1/-1;color:var(--blue);font-weight:800}.dashboard-agenda-day.is-today>header{background:#e8ebff;color:var(--blue)}.dashboard-agenda-day>div{display:grid;gap:7px;padding:8px}.dashboard-event{display:grid;gap:1px;padding:8px;border-left:3px solid #6774bf;border-radius:7px;background:#f4f5fc;color:var(--ink);font-size:12px}.dashboard-event small{color:var(--muted);font-size:10px}.dashboard-no-event{padding:12px 3px;color:#9296a8;font-size:11px;text-align:center}.dashboard-event.event-type-examen{border-left-color:#b5283b;background:#fff1f3}.dashboard-event.event-type-reunion{border-left-color:#3278bf;background:#eef6ff}.dashboard-event.event-type-acto{border-left-color:#a37600;background:#fff9df}.dashboard-event.event-type-actividad{border-left-color:#1b7b56;background:#eefaf5}
.dashboard-schedule-list{display:grid}.dashboard-schedule-list>a{display:grid;grid-template-columns:52px 1fr;gap:10px;padding:12px 2px;border-bottom:1px solid var(--line);color:var(--ink)}.dashboard-schedule-list>a:last-child{border-bottom:0}.dashboard-schedule-list time{color:var(--blue);font-weight:850}.dashboard-schedule-list span{display:grid}.dashboard-schedule-list small{color:var(--muted)}
.dashboard-course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.dashboard-course-card{display:flex;flex-direction:column;min-height:205px;padding:18px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,#fff,#fafbff)}.dashboard-course-card>div{display:flex;align-items:center;justify-content:space-between;gap:8px}.dashboard-course-level,.dashboard-attendance-state{font-size:11px;font-weight:800}.dashboard-course-level{color:var(--blue);text-transform:uppercase}.dashboard-attendance-state{color:#9a5900}.dashboard-attendance-state.complete{color:#19714f}.dashboard-course-card h3{margin:24px 0 5px;font-size:19px}.dashboard-course-card p{margin:0 0 4px;color:var(--muted)}.dashboard-course-card>small{margin-bottom:17px;color:var(--muted)}.dashboard-course-card>.btn{align-self:flex-start;margin-top:auto}.dashboard-empty-courses{grid-column:1/-1;padding:26px;color:var(--muted);text-align:center}.dashboard-empty-courses p{margin:4px 0 0}
.dashboard-announcement-dialog{width:min(780px,calc(100vw - 28px));padding:0;border:0;border-radius:18px;box-shadow:0 24px 75px rgba(15,21,70,.35)}.dashboard-announcement-dialog::backdrop{background:rgba(14,19,55,.58)}.dashboard-announcement-form{padding:24px}.dashboard-announcement-form>header{display:flex;grid-column:1/-1;justify-content:space-between;gap:20px;margin-bottom:4px}.dashboard-announcement-form>header h2{margin:2px 0}.dashboard-announcement-form>header p{margin:0;color:var(--muted)}.dashboard-announcement-body{grid-column:1/-1}.dashboard-announcement-form .field>textarea{min-height:115px}.dashboard-announcement-form .field>input[type=checkbox]{justify-self:start}.dashboard-announcement-form>.form-section{grid-column:1/-1;border:0;border-top:1px solid var(--line);padding-top:18px}.dashboard-announcement-form>.form-section h3{margin:0}.dashboard-announcement-form>.form-section .list-stack{max-height:230px;overflow:auto}.dashboard-announcement-form>.form-section .list-row{grid-template-columns:1fr}.dashboard-announcement-form>.form-section .list-row>span{display:grid}
@media(max-width:1150px){.dashboard-task-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-action-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-main-grid{grid-template-columns:1fr}.dashboard-course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.dashboard-page .content{padding-top:18px}.dashboard-hero{min-height:220px;border-radius:18px}.dashboard-hero-copy{padding:30px 24px}.dashboard-hero>img{right:-38px;width:180px}.dashboard-hero p{max-width:78%}.dashboard-hero-metrics{flex-wrap:wrap}.dashboard-section{padding:17px}.dashboard-task-grid,.dashboard-action-grid,.dashboard-course-grid{grid-template-columns:1fr}.dashboard-agenda-grid{grid-template-columns:repeat(5,minmax(145px,1fr))}.dashboard-announcement{align-items:flex-start;flex-wrap:wrap}.dashboard-announcement>.btn{margin-left:58px}.dashboard-announcement-form{grid-template-columns:1fr}.dashboard-announcement-body,.dashboard-announcement-form>header{grid-column:auto}}
@media(max-width:700px){.import-history-table{min-width:900px}}
@media(prefers-reduced-motion:reduce){.dashboard-task,.dashboard-action-card{transition:none}}

/* Identidad propia de la plataforma: pie interno y cierre visual del ingreso. */
.app-shell{min-height:calc(100vh - 158px);min-height:calc(100dvh - 158px)}
.app-shell.focus-shell{min-height:calc(100vh - 82px);min-height:calc(100dvh - 82px)}
.platform-footer{display:flex;min-height:82px;align-items:center;justify-content:center;padding:4px 20px;border-top:1px solid #dce0ea;background:#f1f3f8}
.platform-identity{display:grid;justify-items:center;gap:2px;color:#666b80;line-height:1}
.platform-logo-frame{display:grid;place-items:center;width:180px;height:60px}
.platform-logo{display:block;width:180px;max-width:100%;height:60px;object-fit:contain}
.platform-version{font-size:10px;font-weight:650;letter-spacing:.02em;line-height:1.2}
.login-page .login-layout{min-height:100vh;min-height:100dvh}
.login-platform-footer{display:flex;min-height:82px;align-items:center;justify-content:center;margin-top:4px;padding:6px 16px;border:1px solid #dce0ea;border-radius:12px;background:#f1f3f8}
.art-description a{font-weight:700;text-decoration:underline;text-decoration-thickness:.08em;text-underline-offset:.18em;overflow-wrap:anywhere}
@media(max-width:700px){.app-shell{min-height:calc(100vh - 146px);min-height:calc(100dvh - 146px)}.app-shell.focus-shell{min-height:calc(100vh - 70px);min-height:calc(100dvh - 70px)}.platform-footer{min-height:70px;padding:4px 16px}.platform-logo-frame{width:144px;height:48px}.platform-logo{width:144px;height:48px}.platform-version{font-size:9px}.login-platform-footer{min-height:70px;padding-block:4px}}
@media print{.platform-footer{display:none!important}}

/* Remuneraciones ANSES: cobertura visible, carga breve y resultados monetarios. */
.anses-range-form{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.anses-range-form h2{margin:4px 0}.anses-range-form p{margin:0;color:var(--muted)}.anses-range-fields{display:flex;align-items:flex-end;gap:12px}.anses-range-fields .field{display:grid;gap:6px;min-width:130px}.anses-range-fields .btn{min-height:42px}.anses-coverage{display:flex;align-items:center;justify-content:space-between;gap:24px;border-left:6px solid #b47b00}.anses-coverage.is-ready{border-left-color:#16845b;background:#f3fbf7}.anses-coverage.is-incomplete{background:#fff9e9}.anses-coverage h2{margin:4px 0}.anses-coverage p{margin:0;color:var(--muted)}.anses-missing-periods{margin-top:10px}.anses-missing-periods summary{cursor:pointer;color:var(--blue);font-weight:750}.anses-missing-periods p{margin-top:7px}.anses-coverage dl{display:grid;grid-template-columns:repeat(3,minmax(135px,1fr));gap:12px;margin:0}.anses-coverage dl>div{padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:#fff}.anses-coverage dt{color:var(--muted);font-size:12px;font-weight:750}.anses-coverage dd{margin:3px 0 0;color:var(--blue);font-weight:850}.anses-upload-form{max-width:760px}.anses-upload-form .field{display:grid;gap:7px}.anses-result-note{margin:0 0 16px;padding:12px 14px;border-left:4px solid var(--blue);border-radius:8px;background:#eef0ff}.anses-result-table th:nth-child(n+2),.anses-result-table td:nth-child(n+2){text-align:right;font-variant-numeric:tabular-nums}.anses-result-table tbody th{white-space:nowrap}.btn[disabled]{cursor:not-allowed;opacity:.55}
@media(max-width:760px){.anses-range-form{align-items:stretch;flex-direction:column}.anses-range-fields{display:grid;grid-template-columns:1fr 1fr}.anses-range-fields .btn{grid-column:1/-1}.anses-coverage{align-items:stretch;flex-direction:column}.anses-coverage dl{grid-template-columns:1fr}.anses-result-table{min-width:600px}}

/* Auditor conserva toda la lectura administrativa sin controles de escritura activos. */
.auditor-read-only-notice{margin-bottom:18px;border:1px solid #bfc5e8;border-left:5px solid var(--blue);background:#eef0ff;color:#20285f}.auditor-read-only-form{position:relative}.auditor-read-only-form :is(input,select,textarea,button):disabled{cursor:not-allowed;opacity:.68}.auditor-read-only-form :is(input,select,textarea):disabled{background:#f3f4f8;color:#555b74}.read-only-auditor main form[method="post" i]:not([data-auditor-self-service]) :is(button,input[type="submit"],input[type="button"],input[type="reset"],input[type="image"],input[type="file"]){display:none!important}

/* Retiro de alumnos: identidad verificable, alcance por rol y evidencia reservada. */
.pickup-authorization-panel{margin-top:20px}.pickup-authorization-head{align-items:flex-start}.pickup-authorization-head h2{margin-bottom:4px}.pickup-authorization-head p{margin:0}.pickup-authorization-list{gap:12px}.pickup-authorization-row{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(300px,1.2fr) auto;gap:18px;align-items:center;padding:16px;border:1px solid var(--line);border-left:5px solid var(--blue);border-radius:12px;background:#fff}.pickup-authorization-identity{display:flex;align-items:center;gap:11px}.pickup-authorization-identity>span:last-child{display:grid;gap:3px}.pickup-authorization-identity small{color:var(--muted)}.pickup-authorization-details,.pickup-confirmation-summary,.evidence-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;margin:0}.pickup-authorization-details>div,.pickup-confirmation-summary>div,.evidence-summary-grid>div{min-width:0}.pickup-authorization-details dt,.pickup-confirmation-summary dt,.evidence-summary-grid dt{color:var(--muted);font-size:12px;font-weight:750}.pickup-authorization-details dd,.pickup-confirmation-summary dd,.evidence-summary-grid dd{margin:2px 0 0;overflow-wrap:anywhere}.pickup-authorization-actions{justify-content:flex-end}.pickup-confirmation-dialog{width:min(680px,calc(100vw - 28px))}.pickup-confirmation-dialog form{display:grid;gap:16px}.pickup-confirmation-summary{margin:16px 0;padding:14px;border-radius:10px;background:#f5f6fc}.pickup-confirmation-statement{padding:12px 14px;border-left:4px solid var(--blue);border-radius:8px;background:#eef0ff}.pickup-history-table{min-width:1050px}.evidence-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.evidence-event-card{border-left:5px solid var(--blue)}.evidence-payload{max-height:340px;overflow:auto;padding:14px;border-radius:8px;background:#12162e;color:#f3f4ff;font-size:12px;white-space:pre-wrap;word-break:break-word}.break-anywhere{overflow-wrap:anywhere}
@media(max-width:980px){.pickup-authorization-row{grid-template-columns:1fr}.pickup-authorization-actions{justify-content:flex-start}.evidence-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.pickup-authorization-head{align-items:stretch;flex-direction:column}.pickup-authorization-head .actions,.pickup-authorization-head .btn{width:100%}.pickup-authorization-row{gap:13px;padding:13px}.pickup-authorization-details,.pickup-confirmation-summary,.evidence-summary-grid{grid-template-columns:1fr}.pickup-authorization-actions{align-items:stretch;flex-direction:column}.pickup-authorization-actions .btn{width:100%}.pickup-confirmation-dialog{max-height:calc(100dvh - 24px);overflow:auto}.pickup-history-table{min-width:980px}}

/* Ficha médica anual: datos sensibles separados del legajo y edición progresiva. */
.student-medical-card{margin-top:20px;border-left:5px solid var(--blue)}.student-medical-card-head{align-items:center}.student-medical-card-head h2{margin:3px 0}.student-medical-card-head p{margin:0 0 10px}.medical-status-detail{display:block;margin-top:7px;color:var(--muted)}
.medical-page-head{margin-bottom:16px}.medical-year-nav{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:16px}.medical-year-nav>span{margin-right:4px;color:var(--muted);font-size:13px;font-weight:800}.medical-year-nav .btn{min-height:36px;padding:7px 12px}.medical-sensitive-notice{border-left:5px solid #975600;background:#fff8e8}.medical-record-form,.medical-area-list{display:grid;gap:14px}.medical-section-heading{margin:10px 0 2px}.medical-section-heading h2{margin:3px 0}.medical-section-heading p{margin:0;color:var(--muted)}
.medical-area{margin:0;padding:0;overflow:clip}.medical-area>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:58px;padding:14px 18px;cursor:pointer;color:var(--ink);font-weight:850;list-style-position:inside}.medical-area[open]>summary{border-bottom:1px solid var(--line);background:#f8f9ff}.medical-area-body{display:grid;gap:14px;padding:18px}.medical-condition-list{display:grid;gap:10px}.medical-condition-row{display:grid;grid-template-columns:minmax(240px,1fr) minmax(240px,1fr) auto;gap:10px;align-items:end;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fbfcff}.medical-condition-row .field,.medical-area-clarifications{display:grid;gap:6px}.medical-condition-row .field>span,.medical-area-clarifications>span{font-weight:750}.medical-remove-condition{min-height:42px}.medical-area-clarifications{margin-top:4px}.medical-area-clarifications small{color:var(--muted)}
.medical-medications{display:grid;gap:14px}.medical-medications .medical-section-heading{margin:0}.medical-medication-list{display:grid;gap:12px}.medical-medication-row{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr)) auto;gap:12px;align-items:end;padding:16px;border:1px solid var(--line);border-left:4px solid var(--blue);border-radius:11px;background:#fbfcff}.medical-medication-row .field{display:grid;gap:6px}.medical-medication-row .field>span{font-weight:750}.medical-medication-checkbox{display:flex!important;grid-column:1/3;align-items:center;align-self:center;gap:9px}.medical-medication-checkbox input{width:auto}.medical-medication-instructions{grid-column:1/-2}.medical-medication-row>.btn{grid-column:-2/-1}.medical-form-actions{justify-content:flex-end;margin:4px 0 20px}.medical-confirmation-dialog{width:min(680px,calc(100vw - 28px))}.medical-confirmation-dialog::backdrop{background:rgba(13,18,53,.58)}.medical-read-list{display:grid;gap:6px;margin:0;padding-left:22px}.medical-read-note{margin-top:12px;padding:12px;border-left:4px solid var(--blue);border-radius:8px;background:#f4f6ff}.medical-read-note p{margin:5px 0 0}.medical-read-summary h2{margin-top:0}.medical-read-medication{align-items:flex-start}.medical-read-medication>span{display:grid;gap:3px}.medical-history-table{min-width:880px}.table-secondary{display:block;color:var(--muted)}
@media(max-width:900px){.medical-condition-row{grid-template-columns:1fr 1fr}.medical-condition-row>.btn{grid-column:1/-1;justify-self:start}.medical-medication-row{grid-template-columns:1fr 1fr}.medical-medication-checkbox,.medical-medication-instructions{grid-column:1/-1}.medical-medication-row>.btn{grid-column:1/-1;justify-self:start}}
@media(max-width:600px){.student-medical-card-head,.medical-page-head{align-items:stretch;flex-direction:column}.student-medical-card-head .btn,.medical-page-head .btn{width:100%}.medical-condition-row,.medical-medication-row{grid-template-columns:1fr}.medical-condition-row>.btn,.medical-medication-checkbox,.medical-medication-instructions,.medical-medication-row>.btn{grid-column:1}.medical-condition-row>.btn,.medical-medication-row>.btn{width:100%}.medical-area>summary{align-items:flex-start;flex-direction:column}.medical-area-body{padding:13px}.medical-form-actions{align-items:stretch;flex-direction:column}.medical-form-actions .btn{width:100%}.medical-confirmation-dialog{max-height:calc(100dvh - 24px);overflow:auto}}

/* Perfil del alumno: navegación única por áreas y seguimiento documental. */
.student-profile-tabs{display:none;gap:6px;margin-bottom:20px;padding:6px;overflow-x:auto;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:var(--shadow);scrollbar-width:thin}.student-profile--tabs-ready .student-profile-tabs,.detail-tabs-ready .detail-tab-list{display:flex}.student-profile-tabs button{flex:0 0 auto;min-height:40px;padding:8px 13px;border:1px solid transparent;border-radius:9px;background:transparent;color:#515771;font-weight:750;cursor:pointer;white-space:nowrap}.student-profile-tabs button:hover{background:#f0f2ff;color:var(--blue)}.student-profile-tabs button[aria-selected=true]{border-color:#c9cdef;background:#e8eafd;color:var(--blue)}.student-profile-tabs button:focus-visible{outline:3px solid rgba(var(--institution-primary-rgb),.22);outline-offset:1px}.student-profile--tabs-ready .student-profile-panel[hidden]{display:none!important}.student-profile-panel{scroll-margin-top:100px}.student-profile-panel>.panel:last-child,.student-profile-panel>.detail-grid:last-child>.panel{margin-bottom:0}.student-profile-observation{margin:0;white-space:normal}.student-documentation-panel .panel-head h2{margin-bottom:3px}.student-documentation-panel .panel-head p{margin:0}.student-documentation-row{grid-template-columns:auto minmax(0,1fr) auto}.student-documentation-actions{justify-content:flex-end;flex-wrap:wrap}.student-communications-panel p{margin:-8px 0 16px}.student-medical-card,.pickup-authorization-panel{margin-top:0}
.student-academic-overview{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:0;border-left:5px solid var(--blue)}.student-academic-overview h2{margin:3px 0 4px}.student-academic-overview p{margin:0;color:var(--muted)}.student-academic-overview .student-previous-course{display:flex;align-items:center;gap:7px;margin-top:10px;font-size:13px}.student-previous-course span{color:var(--muted)}.student-previous-course strong{color:var(--ink)}.student-academic-metrics{display:grid;grid-template-columns:repeat(3,minmax(105px,1fr));gap:8px}.student-academic-metrics>div{display:grid;gap:2px;min-width:0;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#f7f8ff;text-align:center}.student-academic-metrics strong{color:var(--blue);font-size:22px}.student-academic-metrics span{color:var(--muted);font-size:12px;font-weight:750}.student-academic-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.35fr);gap:20px}.student-academic-grid>.panel{min-width:0;margin-top:0}.student-subject-list{display:grid;gap:8px}.student-subject-list article{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#fbfbfe}.student-subject-list article>span:nth-child(2){display:grid;gap:2px}.student-subject-list small{color:var(--muted)}.student-subject-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:#e8eafd;color:var(--blue);font-weight:850}.student-attendance-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.student-attendance-summary>div{display:grid;align-content:center;gap:2px;min-height:70px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#fafbff;text-align:center}.student-attendance-summary>div.is-primary{grid-row:span 2;min-height:148px;background:var(--blue);color:#fff}.student-attendance-summary strong{font-size:20px}.student-attendance-summary .is-primary strong{font-size:28px}.student-attendance-summary span{font-size:11px;font-weight:750;line-height:1.3}.student-attendance-detail{margin-top:14px}.student-attendance-detail>summary{width:max-content;color:var(--blue);font-weight:800;cursor:pointer}.student-attendance-detail .table-wrap{margin-top:10px}.student-attendance-detail td:last-child{display:flex;align-items:center;flex-wrap:wrap;gap:5px}.student-attendance-detail td small{display:block;width:100%;color:var(--muted)}.student-grades-panel{margin-top:20px}.student-grades-panel>.panel-head{align-items:flex-start}.student-grade-periods{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.student-grade-blocks{display:grid;gap:10px}.student-grade-block{overflow:hidden;border:1px solid var(--line);border-radius:11px;background:#fff}.student-grade-block>summary{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;align-items:center;gap:12px;padding:13px 15px;background:#f6f7fc;cursor:pointer;list-style:none}.student-grade-block>summary::-webkit-details-marker{display:none}.student-grade-block>summary::after{color:var(--blue);font-size:18px;font-weight:900;content:'⌄'}.student-grade-block[open]>summary::after{transform:rotate(180deg)}.student-grade-block>summary>span:first-child{display:grid;gap:2px}.student-grade-block>summary small{color:var(--muted)}.student-grade-block-state{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:6px}.student-grade-table-wrap{border-top:1px solid var(--line)}.student-grade-table-wrap table{margin:0;border:0}.student-grade-table-wrap th:first-child,.student-grade-table-wrap td:first-child{min-width:220px;text-align:left}.student-grade-value{min-width:125px;text-align:center;font-weight:800}.student-grades-empty{display:grid;gap:4px;padding:28px}.student-grades-empty strong{color:var(--ink)}.student-grades-empty span{color:var(--muted)}.student-school-secondary{grid-template-columns:minmax(520px,1.35fr) minmax(280px,.65fr);margin-top:20px}.student-school-secondary>.panel{min-width:0;margin-top:0}.student-school-secondary table{min-width:520px}
@media(max-width:760px){.student-profile-tabs{margin-inline:-4px}.student-documentation-row{grid-template-columns:auto minmax(0,1fr)}.student-documentation-actions{grid-column:1/-1;justify-content:flex-start;padding-left:53px}}
@media(max-width:520px){.student-documentation-row{grid-template-columns:1fr}.student-documentation-row>.avatar{display:none}.student-documentation-actions{padding-left:0}.student-documentation-actions .btn{width:100%}}
@media(max-width:1050px){.student-academic-overview{align-items:stretch;flex-direction:column}.student-academic-grid{grid-template-columns:1fr}.student-school-secondary{grid-template-columns:1fr}}
@media(max-width:700px){.student-academic-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.student-academic-metrics>div{padding:10px 6px}.student-attendance-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.student-attendance-summary>div.is-primary{grid-row:auto;grid-column:1/-1;min-height:88px}.student-grades-panel>.panel-head{align-items:stretch;flex-direction:column}.student-grades-panel>.panel-head .btn{width:100%}}
@media(max-width:700px){.student-grade-block>summary{grid-template-columns:1fr auto}.student-grade-block-state{grid-row:2;grid-column:1/-1;justify-content:flex-start}}
@media(max-width:480px){.student-academic-metrics{grid-template-columns:1fr}.student-subject-list article{grid-template-columns:38px minmax(0,1fr)}.student-subject-list article>.badge{grid-column:2;justify-self:start}.student-attendance-summary{grid-template-columns:1fr}.student-attendance-summary>div.is-primary{grid-column:auto}}

/* Seguimiento de aprendizajes y calificaciones informativas por curso. */
.learning-tracking-panel{min-width:0}.learning-tracking-head{align-items:flex-end}.learning-tracking-head h2{margin:3px 0}.learning-subject-selector{display:grid;grid-template-columns:minmax(180px,280px) auto;align-items:end;gap:7px}.learning-subject-selector label{grid-column:1/-1;color:var(--muted);font-size:12px;font-weight:800}.learning-subject-selector select{min-width:0}.learning-gradebook-wrap{max-height:65vh;border:1px solid var(--line);border-radius:11px}.learning-gradebook{min-width:760px;border:0}.learning-gradebook thead th{min-width:126px;text-align:center;vertical-align:middle}.learning-gradebook thead tr:first-child th{background:#e8eafd;color:var(--blue)}.learning-gradebook thead tr:nth-child(2) th{background:#f4f5ff;font-size:12px;white-space:normal}.learning-gradebook .learning-student-column,.learning-gradebook tbody th{position:sticky;left:0;z-index:2;min-width:210px;text-align:left}.learning-gradebook .learning-student-column{z-index:3;background:#e8eafd}.learning-gradebook tbody th{background:#fff}.learning-grade-value,.learning-average-value,.learning-final-value{text-align:center;font-weight:800}.learning-grade-value a{display:inline-flex;min-width:34px;justify-content:center}.learning-average-column,.learning-average-value{background:#fff9df}.learning-final-column,.learning-final-value{background:#f2f8f2}.learning-average-note{margin:11px 0 0}.learning-empty{margin-top:12px}.assessment-course-configurations table{min-width:920px}.assessment-course-configurations th:first-child{min-width:230px;text-align:left}.assessment-course-configurations th:first-child small{display:block;margin-top:3px;color:var(--muted);font-weight:500}.assessment-course-configurations select{min-width:190px}.assessment-course-configurations .errorlist{margin:6px 0 0;padding-left:18px;color:#9b2636;font-size:12px}.grade-correction-reason{display:grid;gap:6px;margin-top:18px}.student-learning-subjects{display:grid;gap:9px}.student-learning-subject{overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#fff}.student-learning-subject>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 13px;background:#f7f8ff;cursor:pointer;list-style:none}.student-learning-subject>summary::-webkit-details-marker{display:none}.student-learning-subject .table-wrap{border-top:1px solid var(--line)}.student-learning-subject table{margin:0;border:0}.student-learning-subject th,.student-learning-subject td{padding:9px 11px}.student-learning-panel{min-width:0}
.learning-toolbar{display:flex;align-items:flex-end;justify-content:flex-end;gap:10px;flex-wrap:wrap}.learning-evaluation-list{margin:18px 0 22px;padding:16px;border:1px solid var(--line);border-radius:12px;background:#fafbff}.section-heading h3{margin:0 0 3px}.section-heading p{margin:0}.learning-evaluation-cards{display:grid;gap:9px;margin-top:12px}.learning-evaluation-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 13px;border:1px solid var(--line);border-radius:10px;background:#fff}.learning-evaluation-card>div:first-child{display:grid;gap:4px}.learning-evaluation-card small{color:var(--muted)}.learning-grid-heading{margin:18px 0 10px}.learning-absence-help{margin-bottom:16px}.learning-absence-help p{margin:0}.grade-entry-table{min-width:720px}.grade-entry-table th:first-child{min-width:220px}.grade-entry-table td:first-child small{display:block;margin-top:4px}.grade-value-input{min-width:150px}.absence-toggle{display:inline-flex;align-items:center;gap:7px;font-weight:800;white-space:nowrap}.absence-toggle input{width:18px;height:18px}.absence-suggestion{color:#8a6410}.grade-entry-table input:disabled,.grade-entry-table select:disabled{background:#f1f2f5;color:var(--muted)}
@media(max-width:760px){.learning-tracking-head{align-items:stretch;flex-direction:column}.learning-toolbar{align-items:stretch;flex-direction:column}.learning-toolbar>.actions,.learning-toolbar>.actions .btn{width:100%}.learning-subject-selector{grid-template-columns:1fr;width:100%}.learning-subject-selector label{grid-column:auto}.learning-subject-selector .btn{width:100%}.learning-evaluation-card{align-items:stretch;flex-direction:column}.learning-evaluation-card .actions,.learning-evaluation-card .actions .btn{width:100%}}

/* Licencias: pantalla independiente del legajo y orden visual estable. */
.teacher-leave-list{display:grid;gap:18px}.teacher-leave-panel{max-width:1180px}.teacher-leave-form{display:grid;gap:18px}.teacher-leave-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"type article" "start end";gap:18px 24px}.teacher-leave-grid .field{display:grid;align-content:start;gap:6px;min-width:0}.teacher-leave-grid .field>span{font-weight:750}.teacher-leave-grid select,.teacher-leave-grid input{width:100%}.teacher-leave-type{grid-area:type}.teacher-leave-article{grid-area:article}.teacher-leave-start{grid-area:start}.teacher-leave-end{grid-area:end}.teacher-leave-actions{display:flex;gap:10px;align-items:center}.teacher-leave-actions .btn{min-width:190px}
@media(max-width:650px){.teacher-leave-grid{grid-template-columns:1fr;grid-template-areas:"type" "article" "start" "end";gap:14px}.teacher-leave-actions{align-items:stretch;flex-direction:column}.teacher-leave-actions .btn{width:100%}}

/* Formularios institucionales: editor documental, distribución y respuesta. */
.institutional-publish-action{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:18px;padding:15px;border:1px solid #c9cdef;border-radius:11px;background:#f4f5ff}.institutional-publish-action p{margin:3px 0;color:var(--muted)}.institutional-publish-action form{margin:0}.institutional-document-settings{margin-bottom:18px}.institutional-document-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(270px,340px);gap:18px;align-items:start}.institutional-marker-sidebar{position:sticky;top:90px;display:grid;gap:16px}.institutional-marker-list{display:flex;flex-wrap:wrap;gap:7px}.institutional-fillable-list{display:grid;gap:8px}.institutional-fillable-list>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.institutional-format-toolbar{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 12px;padding:8px;border:1px solid var(--line);border-radius:10px;background:#f5f6fc}.institutional-format-toolbar button{min-height:34px;padding:6px 9px;border:1px solid #cbd0e8;border-radius:7px;background:#fff;color:var(--ink);cursor:pointer}.institutional-rich-editor{min-height:440px;padding:32px;border:1px solid #cfd3e4;border-radius:10px;background:#fff;line-height:1.65}.institutional-rich-editor:focus{border-color:var(--blue);outline:3px solid rgba(var(--institution-primary-rgb),.12)}.institutional-field-management{margin-top:18px}.institutional-field-management form{margin:0}.institutional-document-preview{overflow:auto}.institutional-document-sheet{max-width:900px;min-height:280px;margin:12px auto;padding:clamp(24px,5vw,58px);border:1px solid #dfe1ea;border-radius:6px;background:#fff;box-shadow:0 8px 28px #1d234814;color:var(--ink);line-height:1.7}.institutional-document-sheet p:first-child{margin-top:0}.institutional-document-sheet p:last-child{margin-bottom:0}.document-student-value{padding:0 3px;border-bottom:1px solid var(--blue);color:var(--blue);font-weight:750}.document-answer-field{display:inline-grid;min-width:210px;max-width:100%;gap:5px;margin:5px 7px;padding:9px 11px;border:1px solid #cfd3e4;border-radius:9px;background:#fafbff;vertical-align:middle;text-indent:0}.document-answer-field>label{color:var(--ink);font-size:13px;font-weight:750}.document-answer-field input:not([type=checkbox]):not([type=radio]),.document-answer-field select,.document-answer-field textarea{width:100%;min-width:0;padding:9px 10px;border:1px solid #c9cede;border-radius:7px;background:#fff;color:var(--ink)}.document-answer-field textarea{min-height:90px;resize:vertical}.document-answer-field>div,.document-answer-field>ul:not(.errorlist){display:grid;gap:6px;margin:0;padding:0;list-style:none}.document-answer-field>div label,.document-answer-field>ul:not(.errorlist) label{display:flex;align-items:center;gap:7px}.document-field-help{color:var(--muted);font-size:12px}.institutional-document-readonly .document-answer-field{background:#f4f5f8}.institutional-document-readonly input:disabled,.institutional-document-readonly select:disabled,.institutional-document-readonly textarea:disabled{color:var(--ink);opacity:1;-webkit-text-fill-color:var(--ink)}.institutional-campaign-form .field-target_courses,.institutional-campaign-form .field-target_students,.institutional-campaign-form .field-selected_responders{grid-column:1/-1}.institutional-campaign-form ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px;max-height:290px;margin:0;padding:10px;overflow:auto;border:1px solid var(--line);border-radius:10px;list-style:none}.institutional-campaign-form li label{display:flex;align-items:flex-start;gap:8px;padding:6px;font-weight:550}.institutional-campaign-help{border-left:5px solid var(--blue)}.institutional-campaign-help p{margin:4px 0 0;color:var(--muted)}.institutional-response-form{display:grid;gap:18px}.institutional-form-instructions{max-width:900px}.institutional-form-task{grid-template-columns:auto minmax(0,1fr) auto}
@media(max-width:850px){.institutional-document-workspace{grid-template-columns:1fr}.institutional-marker-sidebar{position:static}.institutional-document-sheet{padding:24px}.document-answer-field{display:grid;width:100%;margin:8px 0}}
@media(max-width:700px){.institutional-form-task{grid-template-columns:1fr}.institutional-publish-action{align-items:stretch;flex-direction:column}.institutional-publish-action .btn{width:100%}.institutional-campaign-form .field-target_courses,.institutional-campaign-form .field-target_students,.institutional-campaign-form .field-selected_responders{grid-column:auto}}

/* Editor directo de campos: controles tipográficos y configuración sin navegación. */
.institutional-editor-panel{min-width:0}.institutional-format-toolbar{display:grid;gap:7px}.institutional-format-toolbar>div{display:flex;align-items:center;flex-wrap:wrap;gap:5px}.institutional-format-toolbar label{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:4px 7px;border:1px solid #cbd0e8;border-radius:7px;background:#fff;font-size:12px;font-weight:750}.institutional-format-toolbar select{min-height:28px;border:1px solid #d6d9e8;border-radius:5px;background:#fff}.institutional-format-toolbar input[type=color]{width:34px;height:28px;padding:2px;border:1px solid #d6d9e8;border-radius:5px;background:#fff;cursor:pointer}.institutional-field-type-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.institutional-field-type-list .btn{min-height:42px;padding:8px;text-align:center}.institutional-fillable-list>div{padding:10px 0;border-bottom:1px solid var(--line)}.institutional-fillable-list>div:last-child{border-bottom:0}.institutional-fillable-list>div>span:first-child{display:grid;min-width:0}.institutional-fillable-list small{color:var(--muted)}.institutional-fillable-list .btn{min-height:34px;padding:6px 9px}.institutional-field-dialog{width:min(620px,calc(100vw - 28px));padding:0;border:0;border-radius:16px;box-shadow:0 24px 75px rgba(15,21,70,.35)}.institutional-field-dialog::backdrop{background:rgba(14,19,55,.58)}.institutional-field-dialog>form{display:grid;gap:15px;padding:22px}.institutional-field-dialog header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.institutional-field-dialog h2{margin:3px 0 0}.institutional-field-dialog .dialog-close{width:38px;height:38px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font-size:24px;cursor:pointer}.institutional-required-option{display:flex;align-items:center;gap:9px;font-weight:750}.institutional-required-option input{width:18px;height:18px;margin:0}.institutional-field-dialog-errors{padding:10px 12px;border-radius:8px;background:#fdebed;color:#9b2636}.institutional-field-dialog-errors ul{margin:0;padding-left:20px}.document-current-file{display:block;padding:7px 9px;border-radius:7px;background:#e8eafd;font-size:12px;font-weight:750;overflow-wrap:anywhere}.document-answer-field input[type=file]{max-width:100%}.document-answer-field input[type=checkbox]{width:20px;height:20px}.institutional-document-readonly input[type=file]{display:none}
@media(max-width:520px){.institutional-field-type-list{grid-template-columns:1fr}.institutional-format-toolbar>div{align-items:stretch}.institutional-format-toolbar label{justify-content:space-between;flex:1 1 145px}.institutional-field-dialog{max-height:calc(100dvh - 24px);overflow:auto}.institutional-field-dialog .form-actions{align-items:stretch;flex-direction:column}.institutional-field-dialog .btn{width:100%}}

/* Campos visuales del editor y controles documentales sin título visible. */
.institutional-editor-field{position:relative;display:inline-flex;min-width:10em;max-width:100%;margin:.08em .12em;border:.5px solid rgba(45,55,105,.2);border-radius:.28em;background:rgba(248,249,255,.45);font:inherit;line-height:inherit;text-indent:0;vertical-align:baseline;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}
.institutional-editor-field:hover{border-color:rgba(var(--institution-primary-rgb),.48);background:#fff}
.institutional-editor-field:focus{border-color:var(--blue);outline:0;box-shadow:0 0 0 .12em rgba(var(--institution-primary-rgb),.17)}
.institutional-editor-field-control{display:inline-flex;align-items:center;width:100%;min-height:1.7em;padding:.12em .38em;color:#73788e;font:inherit;line-height:inherit;white-space:normal}
.institutional-editor-field--PARRAFO{width:min(100%,32em);vertical-align:top}
.institutional-editor-field--PARRAFO .institutional-editor-field-control{align-items:flex-start;min-height:4.2em}
.institutional-editor-field--CASILLA{min-width:auto}
.institutional-editor-field--CASILLA .institutional-editor-field-control{width:auto;min-width:1.7em;padding:.18em}
.institutional-editor-field--ARCHIVO .institutional-editor-field-control{justify-content:center;background:rgba(244,245,252,.7)}
.institutional-editor-field-options{display:inline-grid;align-items:start;gap:.18em}
.institutional-editor-field-options>span{display:flex;align-items:center;gap:.3em}
.institutional-editor-check,.institutional-editor-radio{display:inline-block;flex:0 0 auto;width:.82em;height:.82em;border:.5px solid rgba(45,55,105,.45);background:#fff}
.institutional-editor-radio{border-radius:50%}
.institutional-editor-field-select::after{content:"⌄";margin-left:auto;padding-left:.6em;color:#565c74}
.institutional-editor-field-required{position:absolute;top:-.42em;right:.08em;color:#b52337;font-size:.65em;line-height:1}

.document-answer-field{display:inline-grid;min-width:10em;max-width:100%;gap:.22em;margin:.08em .12em;padding:0;border:0;border-radius:0;background:transparent;color:inherit;font:inherit;line-height:inherit;vertical-align:baseline;text-indent:0}
.document-answer-field--PARRAFO{display:inline-grid;width:min(100%,32em);vertical-align:top}
.document-answer-field--CASILLA{min-width:auto}
.document-answer-field.document-answer-field input:not([type=checkbox]):not([type=radio]),.document-answer-field select,.document-answer-field textarea{width:100%;min-width:0;min-height:1.7em;padding:.12em .38em;border:.5px solid rgba(45,55,105,.24);border-radius:.28em;background:rgba(255,255,255,.82);color:var(--ink);font:inherit;line-height:inherit}
.document-answer-field textarea{min-height:4.2em;resize:vertical}
.document-answer-field input[type=checkbox],.document-answer-field input[type=radio]{width:.9em!important;height:.9em!important;min-width:.9em;min-height:.9em;margin:.12em;accent-color:var(--blue)}
.document-answer-field>div,.document-answer-field>ul:not(.errorlist){gap:.18em;font:inherit}
.document-answer-field>div label,.document-answer-field>ul:not(.errorlist) label{gap:.3em;font:inherit}
.document-field-help{color:var(--muted);font-size:.72em;line-height:1.25}
.document-answer-field:focus-within{box-shadow:0 0 0 .12em rgba(var(--institution-primary-rgb),.12)}
@media(max-width:850px){.institutional-editor-field,.document-answer-field{max-width:100%}.institutional-editor-field--PARRAFO,.document-answer-field--PARRAFO{width:100%}}

/* Barra de formato compacta, agrupada e inspirada en la cinta de Word. */
.institutional-format-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:4px 0;padding:6px;overflow:visible;background:#f7f8fc}
.institutional-format-toolbar>.institutional-format-group{display:flex;align-items:center;flex:0 0 auto;flex-wrap:nowrap;gap:2px;width:auto;min-width:0;padding:0 7px}
.institutional-format-toolbar>.institutional-format-group:first-child{padding-left:0}
.institutional-format-toolbar>.institutional-format-group:last-child{padding-right:0}
.institutional-format-toolbar>.institutional-format-group+.institutional-format-group{border-left:1px solid #d9dcea}
.institutional-rich-editor{font-weight:400}
.institutional-format-toolbar button,.institutional-format-toolbar .institutional-color-tool,.institutional-format-toolbar .institutional-highlight-tool{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;min-height:34px;padding:0;border:1px solid transparent;border-radius:5px;background:transparent;color:var(--ink);cursor:pointer;white-space:nowrap}
.institutional-format-toolbar button:hover,.institutional-format-toolbar .institutional-color-tool:hover,.institutional-format-toolbar .institutional-highlight-tool:hover{border-color:#cbd0e8;background:#fff}
.institutional-format-toolbar button:focus-visible,.institutional-format-toolbar label:focus-within{outline:2px solid var(--blue);outline-offset:1px}
.institutional-format-toolbar button.is-active{border-color:#bfc5e8;background:#e7eafd;color:var(--blue);box-shadow:inset 0 0 0 1px rgba(var(--institution-primary-rgb),.08)}
.institutional-format-toolbar button:disabled{cursor:default;opacity:.38}
.institutional-format-toolbar button svg,.institutional-highlight-tool svg{width:19px;height:19px;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.institutional-format-toolbar button svg circle{fill:currentColor;stroke:none}
.institutional-format-toolbar button svg text{fill:currentColor;stroke:none;font-size:6px;font-weight:800}
.institutional-format-text button{font-size:18px}
.institutional-font-size-tool{display:inline-flex;align-items:center;height:34px;min-height:34px;padding:0;border:0;background:transparent}
.institutional-format-toolbar .institutional-font-size-tool select{width:78px;height:32px;min-height:32px;padding:3px 20px 3px 7px;border:1px solid #cbd0e8;border-radius:5px;background-color:#fff;font-weight:700}
.institutional-format-toolbar .institutional-color-tool,.institutional-format-toolbar .institutional-highlight-tool{position:relative}
.institutional-format-toolbar .institutional-color-tool input,.institutional-format-toolbar .institutional-highlight-tool select{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.institutional-letter-color{position:relative;padding-bottom:3px;font-size:18px;font-weight:750;line-height:1}
.institutional-letter-color::after{position:absolute;right:-2px;bottom:0;left:-2px;height:3px;border-radius:2px;background:var(--institutional-text-color,#1e2440);content:""}
.institutional-highlight-tool::after{position:absolute;right:6px;bottom:3px;left:6px;height:3px;border-radius:2px;background:var(--institutional-highlight-color,#fff59d);content:""}
.institutional-tool-chevron{position:absolute;right:2px;bottom:1px;font-size:9px;line-height:1;pointer-events:none}
@media(max-width:760px){.institutional-format-toolbar>.institutional-format-group,.institutional-format-toolbar>.institutional-format-values{justify-content:flex-start;width:auto;padding:0 6px;border-top:0}.institutional-format-toolbar>.institutional-format-group+.institutional-format-group{padding-top:0;border-top:0;border-left:1px solid #d9dcea}}
@media(max-width:520px){.institutional-format-toolbar>.institutional-format-group{width:auto}.institutional-format-toolbar .institutional-font-size-tool,.institutional-format-toolbar .institutional-color-tool,.institutional-format-toolbar .institutional-highlight-tool{flex:0 0 auto;justify-content:center}}

/* La constancia reutiliza la cinta visual compacta sin sumar comandos. */
.certificate-format-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:4px 0;padding:6px;overflow:visible;background:#f7f8fc}
.certificate-format-toolbar>.certificate-format-group{display:flex;align-items:center;flex:0 0 auto;flex-wrap:nowrap;gap:2px;width:auto;min-width:0;padding:0 7px;border-right:0}
.certificate-format-toolbar>.certificate-format-group:first-child{padding-left:0}
.certificate-format-toolbar>.certificate-format-group:last-child{padding-right:0}
.certificate-format-toolbar>.certificate-format-group+.certificate-format-group{border-left:1px solid #d9dcea}
.certificate-format-toolbar button{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;min-height:34px;padding:0;border:1px solid transparent;border-radius:5px;background:transparent;color:var(--ink);font:inherit;font-weight:700;cursor:pointer;white-space:nowrap}
.certificate-format-toolbar button:hover{border-color:#cbd0e8;background:#fff}
.certificate-format-toolbar button:focus-visible{outline:2px solid var(--blue);outline-offset:1px}
.certificate-format-toolbar button.is-active{border-color:#bfc5e8;background:#e7eafd;color:var(--blue);box-shadow:inset 0 0 0 1px rgba(var(--institution-primary-rgb),.08)}
.certificate-format-toolbar button:disabled{cursor:default;opacity:.38}
.certificate-format-toolbar button svg{width:19px;height:19px;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.certificate-format-toolbar button svg circle{fill:currentColor;stroke:none}
.certificate-format-toolbar button svg text{fill:currentColor;stroke:none;font-size:6px;font-weight:800}
.certificate-format-text button{font-size:18px}
.certificate-rich-editor{font-weight:400}
@media(max-width:520px){.certificate-format-toolbar>.certificate-format-group{width:auto;padding:0 6px}}

/* El área editable no usa la clase genérica ``field``: su peso 650 hace que
   el motor contenteditable confunda una selección normal con negrita. */
.message-body-field{display:grid;align-self:start;align-content:start;gap:6px;min-width:0;font-weight:normal}
.message-body-field>span{font-weight:750}
.message-thread-closed{display:grid;gap:6px;border-left:5px solid var(--blue);background:#f4f5ff}
.message-thread-closed .badge{justify-self:start}
.message-thread-closed p,.message-thread-closed small{margin:0}
.message-thread-closed small{color:var(--muted)}

/* Agenda institucional y académica. */
.agenda-filters{padding-block:16px}
.agenda-filters .inline-form{display:flex;align-items:end;flex-wrap:wrap;gap:12px}
.agenda-filters label{display:grid;gap:6px;min-width:190px;font-weight:700}
.agenda-event-grid{display:grid;gap:12px}
.agenda-event-card{display:grid;grid-template-columns:86px minmax(0,1fr) auto;align-items:center;gap:18px;padding:18px;border:1px solid var(--line);border-left:5px solid var(--blue);border-radius:14px;background:#fff}
.agenda-event-card.event-type-examen_esc,.agenda-event-card.event-type-examen_oral{border-left-color:#b5283b}
.agenda-event-card.event-type-recuperatorio{border-left-color:#c05a19}
.agenda-event-card.event-type-trabajo_pr{border-left-color:#8a4f9e}
.agenda-event-card.event-type-reunion{border-left-color:#3278bf}
.agenda-event-card.event-type-actividad{border-left-color:#1b7b56}
.agenda-event-card.event-type-acto{border-left-color:#a37600}
.agenda-event-card.event-type-celebracion{border-left-color:#6f4ab1}
.agenda-event-date{display:grid;justify-items:center;padding-right:14px;border-right:1px solid var(--line);text-transform:capitalize}
.agenda-event-date strong{color:var(--blue);font-size:30px;line-height:1}
.agenda-event-date span,.agenda-event-date small{color:var(--muted);font-size:13px}
.agenda-event-body{display:grid;gap:5px;min-width:0}
.agenda-event-body h2,.agenda-event-body p{margin:0}
.agenda-event-body h2{font-size:20px}
.agenda-event-meta{display:flex;flex-wrap:wrap;gap:6px}
.agenda-month-panel{display:grid;gap:14px}
.agenda-month-head{display:flex;align-items:center;justify-content:space-between;gap:16px}
.agenda-month-head h2,.agenda-month-hint{margin:0}
.agenda-month-navigation{display:flex;gap:8px;flex-wrap:wrap}
.agenda-month-hint{color:var(--muted);font-size:14px}
.agenda-month-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
.agenda-month-grid{display:grid;grid-template-columns:repeat(7,minmax(118px,1fr));min-width:826px;background:var(--line);gap:1px}
.agenda-month-weekday{padding:9px 10px;background:#f4f5fa;color:var(--muted);font-size:12px;font-weight:800;text-align:center;text-transform:uppercase;letter-spacing:.04em}
.agenda-month-day{min-height:128px;padding:9px;background:#fff}
.agenda-month-day.is-outside{background:#f8f9fc;color:#999dae}
.agenda-month-day>time{display:grid;place-items:center;width:28px;height:28px;margin-bottom:6px;border-radius:50%;font-size:13px;font-weight:800}
.agenda-month-day.is-today>time{background:var(--blue);color:#fff}
.agenda-month-events{display:grid;gap:5px}
.agenda-month-event{display:block;overflow:hidden;padding:5px 6px;border-left:3px solid #6774bf;border-radius:5px;background:#f4f5fc;color:var(--ink);font-size:11px;font-weight:700;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}
.agenda-month-event span{color:var(--muted);font-size:10px}
.agenda-month-event.event-type-examen_esc,.agenda-month-event.event-type-examen_oral{border-left-color:#b5283b;background:#fff1f3}
.agenda-month-event.event-type-recuperatorio{border-left-color:#c05a19;background:#fff4eb}
.agenda-month-event.event-type-trabajo_pr{border-left-color:#8a4f9e;background:#f8effb}
.agenda-month-event.event-type-reunion{border-left-color:#3278bf;background:#eef6ff}
.agenda-month-event.event-type-actividad{border-left-color:#1b7b56;background:#eefaf5}
.agenda-month-event.event-type-acto{border-left-color:#a37600;background:#fff9df}
.agenda-month-event.event-type-celebracion{border-left-color:#6f4ab1;background:#f4f0ff}
.agenda-form{display:grid;gap:18px}
.agenda-form [hidden]{display:none!important}
.agenda-form select[multiple]{width:100%;min-height:120px}
.agenda-student-picker{overflow:hidden;border:1px solid #d9dce9;border-radius:12px;background:#fff}
.agenda-student-picker-toolbar{display:flex;align-items:center;gap:10px;padding:12px;border-bottom:1px solid var(--line);background:#f8f9fd}
.agenda-student-picker-toolbar>input{min-width:180px;flex:1}
.agenda-student-picker-toolbar .actions{display:flex;gap:8px;flex-wrap:wrap}
.agenda-student-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;max-height:310px;overflow:auto;padding:6px}
.agenda-student-options>div{min-width:0;border-radius:8px}
.agenda-student-options>div:hover,.agenda-student-options>div.is-selected{background:#eef0ff}
.agenda-student-options label{display:flex;align-items:center;gap:10px;min-height:42px;padding:8px 10px;cursor:pointer;font-weight:650}
.agenda-student-options input{flex:0 0 auto;width:18px;height:18px;margin:0;accent-color:var(--blue)}
.agenda-student-picker-footer{display:flex;justify-content:space-between;gap:12px;padding:9px 12px;border-top:1px solid var(--line);font-size:13px;font-weight:650}
.agenda-form .field.full{grid-column:1/-1}
.status-borrador{background:#eef0f7;color:var(--muted)}
.status-reprogramado{background:#fff0c7;color:#785600}
.status-cancelado{background:#fde6e9;color:#a3182c}
.status-realizado{background:#e4f5ec;color:#176c49}
.event-card.event-type-examen_esc,.event-card.event-type-examen_oral{border-left-color:#b5283b}
.event-card.event-type-recuperatorio{border-left-color:#c05a19}
.event-card.event-type-trabajo_pr{border-left-color:#8a4f9e}
.event-card.event-type-celebracion{border-left-color:#6f4ab1}
.dashboard-event.event-type-examen_esc,.dashboard-event.event-type-examen_oral{border-left-color:#b5283b;background:#fff1f3}
.dashboard-event.event-type-recuperatorio{border-left-color:#c05a19;background:#fff4eb}
.dashboard-event.event-type-trabajo_pr{border-left-color:#8a4f9e;background:#f8effb}
.dashboard-event.event-type-celebracion{border-left-color:#6f4ab1;background:#f4f0ff}
@media(max-width:720px){.agenda-event-card{grid-template-columns:64px minmax(0,1fr)}.agenda-event-card>.btn{grid-column:1/-1}.agenda-event-date{padding-right:8px}.agenda-event-date strong{font-size:25px}.agenda-filters .inline-form,.agenda-filters label{width:100%}.agenda-month-head{align-items:flex-start;flex-direction:column}.agenda-month-navigation,.agenda-month-navigation .btn{width:100%}.agenda-month-navigation .btn{flex:1}.agenda-student-picker-toolbar{align-items:stretch;flex-direction:column}.agenda-student-picker-toolbar .actions,.agenda-student-picker-toolbar .btn{width:100%}.agenda-student-options{grid-template-columns:1fr}.agenda-student-picker-footer{align-items:flex-start;flex-direction:column}}
.guardian-alert{display:grid;gap:8px;margin-top:10px;padding:12px;border:1px solid #e3b64c;border-left:4px solid #c28a08;border-radius:10px;background:#fff9e8;color:var(--ink)}
.guardian-alert-importante{border-color:#d7a52e;border-left-color:#9d6900;background:#fff7dc}
.guardian-alert-critica{border-color:#e5a9b2;border-left-color:#a42335;background:#fff0f2}
.guardian-alert>span:first-child{display:flex;justify-content:space-between;gap:10px;align-items:start}
.guardian-alert p{margin:0;white-space:pre-wrap}
.guardian-alert small{color:#626980}
.guardian-alert-flags{display:flex;flex-wrap:wrap;gap:6px}
.guardian-alert .btn,.guardian-alert-add{justify-self:start}
.guardian-alert-add{margin-top:10px}
.guardian-alert-form-panel .model-form{margin-top:18px}
.guardian-alert-account-scope{margin:14px 0 0}
.guardian-alert-form-panel .field-reason{grid-column:1/-1}
@media(max-width:760px){.guardian-alert>span:first-child{display:grid}.guardian-alert-form-panel .field-reason{grid-column:auto}}

/* La grilla laboral agrupa por sala/curso con secciones nativas accesibles. */
.staff-position-course{margin-top:12px;border:1px solid var(--line);border-radius:12px;background:#fff;overflow:clip}
.staff-position-course>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 15px;cursor:pointer;background:#f4f6ff;color:var(--blue);list-style:none}
.staff-position-course>summary::-webkit-details-marker{display:none}
.staff-position-course>summary::after{content:'⌄';font-size:22px;line-height:1;transform:rotate(-90deg)}
.staff-position-course[open]>summary::after{transform:none}
.staff-position-course>summary span{font-size:13px;color:var(--muted)}
.staff-position-course>summary:focus-visible{outline:3px solid var(--blue);outline-offset:-3px}
.staff-position-course-content{padding:0 12px 12px}
.staff-position-vacancies{margin:12px 0 0}
@media(max-width:600px){.staff-position-course>summary{align-items:flex-start;flex-direction:column;gap:3px}.staff-position-course-content{padding:0 6px 10px}}
