﻿/* =========================================================
   EL PLUMERO Â· ProducciÃ³n 2026-08-19
   Refactor de layout, formularios, reportes y responsive.
   Capa final: corrige sin alterar lÃ³gica ni datos.
   ========================================================= */

:root{
  --pl-navy:#08295a;
  --pl-blue:#135fbf;
  --pl-blue-2:#2f7fe3;
  --pl-gold:#f2c21a;
  --pl-bg:#f4f8fc;
  --pl-line:#d7e3f0;
  --pl-text:#14233b;
  --pl-muted:#60718b;
  --pl-radius:12px;
}

/* 1) Eliminar huecos estructurales sin ocultar contenido */
body.is-authenticated:not(.report-print-body) #appMain,
body.is-authenticated:not(.report-print-body) #appMain .module,
body.is-authenticated:not(.report-print-body) #appMain .module > section,
body.is-authenticated:not(.report-print-body) #appMain .module > .card{
  min-height:0!important;
  height:auto!important;
  max-height:none!important;
}
body.is-authenticated:not(.report-print-body) #appMain .module{
  display:block!important;
  padding-bottom:10px!important;
}
body.is-authenticated:not(.report-print-body) #appMain .module > *{
  margin-top:0!important;
  margin-bottom:12px!important;
}
body.is-authenticated:not(.report-print-body) #appMain .module > *:last-child{margin-bottom:0!important}
body.is-authenticated:not(.report-print-body) #appMain .card:empty,
body.is-authenticated:not(.report-print-body) #appMain section:empty{display:none!important}

/* 2) Ficha de matrÃ­cula: compacta, legible y alineada */
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-editor{
  padding:14px!important;
  border:1px solid var(--pl-line)!important;
  border-radius:var(--pl-radius)!important;
  background:#fff!important;
  box-shadow:0 8px 22px rgba(8,41,90,.06)!important;
  overflow:visible!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-editor .list-card-head{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(260px,420px)!important;
  align-items:end!important;
  gap:12px!important;
  margin:0 0 10px!important;
  padding:0 0 10px!important;
  border-bottom:1px solid var(--pl-line)!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-editor .list-card-head h3{
  margin:0 0 2px!important;
  color:var(--pl-navy)!important;
  font-size:1.05rem!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-editor .list-card-head small{
  color:var(--pl-muted)!important;
  font-size:.78rem!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-tabs{
  display:flex!important;
  gap:4px!important;
  overflow-x:auto!important;
  padding:0 0 8px!important;
  margin:0 0 10px!important;
  border-bottom:1px solid var(--pl-line)!important;
  scrollbar-width:thin;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-tabs button{
  flex:0 0 auto!important;
  min-height:34px!important;
  padding:6px 10px!important;
  border:1px solid #c9d9ea!important;
  border-radius:8px!important;
  background:#f7faff!important;
  color:#244d7d!important;
  font-size:.76rem!important;
  font-weight:750!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-tabs button.active{
  background:var(--pl-navy)!important;
  border-color:var(--pl-navy)!important;
  color:#fff!important;
  box-shadow:inset 0 -3px 0 var(--pl-gold)!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-tab-panel{
  margin:0!important;
  padding:0!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-form .form-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:9px 12px!important;
  align-items:start!important;
  margin:0!important;
  padding:0!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-form label{
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  justify-content:flex-start!important;
  gap:4px!important;
  min-width:0!important;
  margin:0!important;
  color:#264464!important;
  font-size:.72rem!important;
  font-weight:750!important;
  line-height:1.2!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-form label.full{grid-column:1/-1!important}
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-form :is(input:not([type=checkbox]):not([type=radio]),select,textarea){
  width:100%!important;
  min-width:0!important;
  min-height:35px!important;
  height:35px!important;
  margin:0!important;
  padding:6px 9px!important;
  border:1px solid #c9d9e9!important;
  border-radius:7px!important;
  background:#fff!important;
  color:var(--pl-text)!important;
  font-size:.78rem!important;
  line-height:1.2!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-form textarea{
  height:auto!important;
  min-height:64px!important;
  resize:vertical!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-form .check-row{
  flex-direction:row!important;
  align-items:center!important;
  align-self:end!important;
  min-height:35px!important;
  padding:6px 8px!important;
  border:1px solid #d9e5f1!important;
  border-radius:7px!important;
  background:#f8fbfe!important;
  font-weight:650!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-form .check-row input{
  width:16px!important;
  height:16px!important;
  flex:0 0 16px!important;
  margin:0 6px 0 0!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .form-actions{
  display:flex!important;
  flex-wrap:wrap!important;
  justify-content:flex-end!important;
  gap:8px!important;
  margin-top:12px!important;
  padding-top:10px!important;
  border-top:1px solid var(--pl-line)!important;
}

/* 3) Formularios generales: ritmo visual consistente */
body.is-authenticated:not(.report-print-body) #appMain :is(.form-grid,.filter-grid,.report-controls,.report-options,.report-massive-options,.table-tools){
  gap:9px 12px!important;
  align-items:end!important;
}
body.is-authenticated:not(.report-print-body) #appMain :is(.form-grid,.filter-grid) > label{
  min-width:0!important;
  margin:0!important;
}
body.is-authenticated:not(.report-print-body) #appMain :is(input:not([type=checkbox]):not([type=radio]),select){
  max-width:100%!important;
}
body.is-authenticated:not(.report-print-body) #appMain textarea{max-width:100%!important}

/* 4) Tarjetas y tablas: menos aire improductivo */
body.is-authenticated:not(.report-print-body) #appMain :is(.card,.list-card,.panel-listado){
  padding:14px!important;
  border-radius:12px!important;
}
body.is-authenticated:not(.report-print-body) #appMain :is(.list-card-head,.module-head){
  margin-bottom:10px!important;
}
body.is-authenticated:not(.report-print-body) #appMain .table-wrap{
  width:100%!important;
  max-width:100%!important;
  overflow:auto!important;
  overscroll-behavior-inline:contain;
}
body.is-authenticated:not(.report-print-body) #appMain table{
  min-width:0!important;
}
body.is-authenticated:not(.report-print-body) #appMain th,
body.is-authenticated:not(.report-print-body) #appMain td{
  padding:7px 8px!important;
  line-height:1.25!important;
  vertical-align:middle!important;
}

/* 5) Reportes / informes: vista previa tipo hoja Carta */
body.is-authenticated:not(.report-print-body) #module-informes .module-head-actions,
body.is-authenticated:not(.report-print-body) #module-ficha-integral .module-head-actions,
body.is-authenticated:not(.report-print-body) #module-utp .module-head-actions{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:7px!important;
  align-items:center!important;
}
.report-preview-toolbar{
  display:flex!important;
  flex-wrap:wrap!important;
  justify-content:flex-end!important;
  gap:8px!important;
  padding:10px 14px!important;
  background:#fff!important;
  border-bottom:1px solid var(--pl-line)!important;
}
.report-print-body{
  background:#edf3f9!important;
}
.report-print-body .report-print-root{
  width:min(100%,215.9mm)!important;
  max-width:215.9mm!important;
  margin:16px auto!important;
  background:transparent!important;
}
.report-print-body .report-print-page{
  width:100%!important;
  min-height:279.4mm!important;
  height:auto!important;
  max-height:none!important;
  padding:12mm!important;
  margin:0 auto 14px!important;
  background:#fff!important;
  border:1px solid #dfe7ef!important;
  box-shadow:0 12px 30px rgba(8,41,90,.10)!important;
  overflow:visible!important;
}
.report-print-body .report-print-page :is(table,img,svg,canvas){max-width:100%!important}
.report-print-body .report-print-page table{width:100%!important;table-layout:auto!important}
.report-print-body .report-print-page tr{break-inside:avoid;page-break-inside:avoid}

/* Resumen del informe: fila clara y sin huecos */
body.is-authenticated:not(.guardian-portal-only) #module-informes .report-insights{
  padding:14px!important;
  margin-bottom:12px!important;
}
body.is-authenticated:not(.guardian-portal-only) #module-informes .report-insights .layout-insight-grid{
  gap:0!important;
  align-items:stretch!important;
}
body.is-authenticated:not(.guardian-portal-only) #module-informes .report-insights .layout-insight{
  min-height:112px!important;
  padding:10px 14px!important;
  align-content:center!important;
}
body.is-authenticated:not(.guardian-portal-only) #module-informes .report-insights .institutional-info-note{
  margin-top:12px!important;
  padding:10px 13px!important;
}

/* 6) Botones: tamaÃ±o consistente y sin cortes */
body.is-authenticated:not(.report-print-body) #appMain :is(.btn-primary,.btn-soft,.btn-ghost){
  min-height:36px!important;
  height:auto!important;
  padding:7px 11px!important;
  line-height:1.15!important;
  white-space:normal!important;
}

/* 7) Responsive real */
@media (max-width:1180px){
  body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-form .form-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media (max-width:900px){
  body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-editor .list-card-head{grid-template-columns:1fr!important;align-items:start!important}
  body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-form .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body.is-authenticated:not(.report-print-body) #appMain{padding-left:12px!important;padding-right:12px!important}
}
@media (max-width:620px){
  body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-editor{padding:10px!important}
  body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-form .form-grid{grid-template-columns:1fr!important;gap:8px!important}
  body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-form label.full{grid-column:auto!important}
  body.is-authenticated:not(.report-print-body) #appMain :is(.card,.list-card,.panel-listado){padding:11px!important}
  body.is-authenticated:not(.report-print-body) #appMain .module-head-actions,
  body.is-authenticated:not(.report-print-body) #appMain .form-actions{width:100%!important;display:grid!important;grid-template-columns:1fr!important}
  body.is-authenticated:not(.report-print-body) #appMain :is(.btn-primary,.btn-soft,.btn-ghost){width:100%!important}
  .report-preview-toolbar{display:grid!important;grid-template-columns:1fr 1fr!important}
  .report-print-body .report-print-root{width:100%!important;margin:0!important;padding:8px!important}
  .report-print-body .report-print-page{min-height:0!important;padding:8mm!important;border-radius:0!important}
}

/* 8) ImpresiÃ³n/exportaciÃ³n PDF: Carta 8.5x11, contenido Ãºtil solamente */
@page{size:Letter portrait;margin:12mm}
@media print{
  html,body{background:#fff!important;width:auto!important;max-width:100%!important}
  body{margin:0!important;padding:0!important}
  .topbar,.nav-scroll,.no-print,.mobile-menu-toggle,.sidebar-resize-handle,.report-preview-toolbar,.module-head-actions,.form-actions.no-print{display:none!important}
  #appMain,.report-print-root{width:100%!important;max-width:100%!important;margin:0!important;padding:0!important}
  .report-print-page,.report-paper,.academic-report,.boletin-paper,.certificate-paper,.ficha-integral-print{
    width:100%!important;
    max-width:100%!important;
    min-height:0!important;
    height:auto!important;
    max-height:none!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    box-shadow:none!important;
    overflow:visible!important;
  }
  table{width:100%!important;max-width:100%!important;border-collapse:collapse!important}
  thead{display:table-header-group!important}
  tfoot{display:table-footer-group!important}
  tr,.ficha-card,.report-grade-box,.utp-report-section{break-inside:avoid!important;page-break-inside:avoid!important}
  img,svg,canvas{max-width:100%!important;height:auto!important}
  a[href]:after{content:""!important}
}

/* =========================================================
   EL PLUMERO - Ajuste visual final 2026-08-20
   Correcciones seguras: responsive, tablas, botones y marca.
   ========================================================= */

:root{
  --pl-navy:#102a5c;
  --pl-navy-2:#073b83;
  --pl-gold:#ffcf21;
  --pl-gold-soft:#fff4bf;
  --pl-surface:#ffffff;
  --pl-soft:#f4f8fc;
  --pl-line:#d7e3f0;
  --pl-text:#14233b;
  --pl-muted:#60718b;
  --pl-danger:#b91c1c;
}

html,
body{
  max-width:100%;
  overflow-x:hidden;
}

body.is-authenticated:not(.report-print-body){
  background:var(--pl-soft)!important;
  color:var(--pl-text)!important;
}

body.is-authenticated:not(.report-print-body) .topbar{
  background:linear-gradient(100deg,var(--pl-navy) 0%,var(--pl-navy-2) 72%,#0b4b98 100%)!important;
  border-bottom:4px solid var(--pl-gold)!important;
}

body.is-authenticated:not(.report-print-body) .logo-institucional,
body.is-login .login-educadmaule-brand img{
  object-fit:contain!important;
  background:#fff!important;
}

body.is-authenticated:not(.report-print-body) #appMain{
  max-width:100%!important;
  overflow-x:clip!important;
}

body.is-authenticated:not(.report-print-body) .module.active{
  max-width:100%!important;
  overflow-x:visible!important;
}

body.is-authenticated:not(.report-print-body) .module-head,
body.is-authenticated:not(.report-print-body) .module-head.module-hero{
  border:1px solid rgba(16,42,92,.12)!important;
  border-left:6px solid var(--pl-gold)!important;
  background:linear-gradient(135deg,#ffffff 0%,#f7fbff 100%)!important;
  box-shadow:0 10px 24px rgba(16,42,92,.06)!important;
}

body.is-authenticated:not(.report-print-body) .module-head h1,
body.is-authenticated:not(.report-print-body) .module-head h2{
  color:var(--pl-navy)!important;
}

body.is-authenticated:not(.report-print-body) .module-head p,
body.is-authenticated:not(.report-print-body) .module-head small{
  color:var(--pl-muted)!important;
}

body.is-authenticated:not(.report-print-body) :is(.table-wrap,.grade-table-wrap,.permission-table-wrap,.attendance-grid-wrap,.ficha-table-wrapper){
  position:relative!important;
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  overflow-x:auto!important;
  overflow-y:visible!important;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
  background:#fff!important;
  border:1px solid var(--pl-line)!important;
  border-radius:10px!important;
}

body.is-authenticated:not(.report-print-body) :is(.students-table,.courses-table,.daily-attendance-table,#gradeSpreadsheet){
  width:max-content!important;
  min-width:100%!important;
  max-width:none!important;
  table-layout:auto!important;
}

body.is-authenticated:not(.report-print-body) :is(.students-table,.courses-table,#gradeSpreadsheet) th,
body.is-authenticated:not(.report-print-body) :is(.students-table,.courses-table,#gradeSpreadsheet) td{
  min-width:118px!important;
}

body.is-authenticated:not(.report-print-body) .students-table :is(th,td):first-child,
body.is-authenticated:not(.report-print-body) #gradeSpreadsheet :is(th,td):nth-child(2),
body.is-authenticated:not(.report-print-body) .daily-attendance-table :is(th,td):nth-child(2),
body.is-authenticated:not(.report-print-body) .grade-table-wrap td.student-cell{
  position:sticky!important;
  left:0!important;
  z-index:3!important;
  min-width:210px!important;
  max-width:280px!important;
  background:#fff!important;
  box-shadow:1px 0 0 var(--pl-line)!important;
}

body.is-authenticated:not(.report-print-body) .daily-attendance-table th,
body.is-authenticated:not(.report-print-body) .daily-attendance-table td{
  min-width:42px!important;
  text-align:center!important;
}

body.is-authenticated:not(.report-print-body) .daily-attendance-table :is(th,td):first-child{
  min-width:54px!important;
}

body.is-authenticated:not(.report-print-body) .daily-attendance-table :is(th,td):nth-child(2){
  text-align:left!important;
}

body.is-authenticated:not(.report-print-body) th{
  background:#edf5ff!important;
  color:#183b67!important;
  white-space:normal!important;
}

body.is-authenticated:not(.report-print-body) td{
  overflow-wrap:anywhere;
}

body.is-authenticated:not(.report-print-body) .empty-state,
body.is-authenticated:not(.report-print-body) td[colspan]{
  color:#405670!important;
  background:#f8fbff!important;
}

body.is-authenticated:not(.report-print-body) td[colspan]{
  min-height:72px!important;
  padding:20px 14px!important;
  text-align:center!important;
  font-weight:700!important;
}

body.is-authenticated:not(.report-print-body) :is(.btn-primary,.btn-soft,.btn-ghost,.btn-danger,button){
  max-width:100%;
  border-radius:8px!important;
  letter-spacing:0!important;
}

body.is-authenticated:not(.report-print-body) .btn-primary{
  background:var(--pl-navy)!important;
  border-color:var(--pl-navy)!important;
  color:#fff!important;
}

body.is-authenticated:not(.report-print-body) .btn-primary:hover{
  background:#0b3f91!important;
}

body.is-authenticated:not(.report-print-body) .btn-soft,
body.is-authenticated:not(.report-print-body) .btn-ghost{
  background:#fff!important;
  border-color:#bfd0e3!important;
  color:var(--pl-navy)!important;
}

body.is-authenticated:not(.report-print-body) .btn-soft.active,
body.is-authenticated:not(.report-print-body) .nav-btn.active{
  background:linear-gradient(135deg,var(--pl-gold-soft),#fff)!important;
  border-color:var(--pl-gold)!important;
  color:var(--pl-navy)!important;
}

body.is-authenticated:not(.report-print-body) .btn-danger{
  background:#fee2e2!important;
  border-color:#fecaca!important;
  color:var(--pl-danger)!important;
}

body.is-authenticated:not(.report-print-body) :is(.module-actions-inline,.module-head-actions,.form-actions,.table-actions,.list-card-actions,.report-actions){
  display:flex!important;
  flex-wrap:wrap!important;
  gap:8px!important;
  align-items:center!important;
}

body.is-authenticated:not(.report-print-body) #module-inicio .school-module-tile.modern-module-tile{
  border-color:rgba(16,42,92,.16)!important;
  border-left:5px solid var(--pl-gold)!important;
  background:linear-gradient(135deg,#ffffff 0%,#f7fbff 100%)!important;
  color:var(--pl-navy)!important;
}

body.is-authenticated:not(.report-print-body) #module-inicio .school-module-icon{
  background:var(--pl-navy)!important;
  color:var(--pl-gold)!important;
}

body.is-authenticated:not(.report-print-body) #module-inicio .school-module-tile small,
body.is-authenticated:not(.report-print-body) #module-inicio .school-module-tile p{
  color:#4b617c!important;
}

body.is-authenticated:not(.report-print-body) #appMain :is(.form-grid,.filter-grid,.mini-toolbar,.user-toolbar,.report-controls,.report-options){
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr))!important;
  gap:10px!important;
  align-items:end!important;
}

body.is-authenticated:not(.report-print-body) #appMain label{
  min-width:0!important;
}

body.is-authenticated:not(.report-print-body) #appMain :is(input:not([type=checkbox]):not([type=radio]),select,textarea){
  width:100%!important;
  min-width:0!important;
  border-radius:8px!important;
}

body.is-authenticated:not(.report-print-body) #appMain select[multiple],
body.is-authenticated:not(.report-print-body) #appMain .registro-native-multi{
  min-height:132px!important;
  white-space:normal!important;
}

.report-print-body .report-print-root{
  box-sizing:border-box!important;
}

.report-print-body .report-print-page{
  box-sizing:border-box!important;
  color:#111827!important;
}

.report-print-body .report-print-page *{
  box-sizing:border-box!important;
}

.report-print-body .report-print-page :is(h1,h2,h3){
  color:var(--pl-navy)!important;
  letter-spacing:0!important;
}

.report-print-body .report-print-page :is(.academic-report-header,.report-header,.utp-academic-head){
  border-bottom:2px solid var(--pl-gold)!important;
}

.report-print-body .report-print-page :is(.table-wrap,.report-grade-table,.academic-report-table-scroll){
  overflow:visible!important;
  border:0!important;
  box-shadow:none!important;
}

@media (max-width:900px){
  body.is-authenticated:not(.report-print-body) .topbar{
    min-height:78px!important;
  }

  body.is-authenticated:not(.report-print-body) #appMain{
    padding-left:12px!important;
    padding-right:12px!important;
  }

  body.is-authenticated:not(.report-print-body) .module-head,
  body.is-authenticated:not(.report-print-body) .module-head.module-hero{
    padding:13px!important;
  }

  body.is-authenticated:not(.report-print-body) :is(.students-table,.courses-table,#gradeSpreadsheet) th,
  body.is-authenticated:not(.report-print-body) :is(.students-table,.courses-table,#gradeSpreadsheet) td{
    min-width:104px!important;
  }
}

@media (max-width:620px){
  body.is-authenticated:not(.report-print-body) #appMain{
    padding-left:10px!important;
    padding-right:10px!important;
  }

  body.is-authenticated:not(.report-print-body) .module-head,
  body.is-authenticated:not(.report-print-body) .module-head.module-hero{
    margin-bottom:12px!important;
  }

  body.is-authenticated:not(.report-print-body) .module-head h1,
  body.is-authenticated:not(.report-print-body) .module-head h2{
    font-size:1.2rem!important;
    line-height:1.15!important;
  }

  body.is-authenticated:not(.report-print-body) .module-head p{
    font-size:.82rem!important;
  }

  body.is-authenticated:not(.report-print-body) :is(.module-actions-inline,.module-head-actions,.form-actions,.table-actions,.list-card-actions,.report-actions){
    display:grid!important;
    grid-template-columns:1fr!important;
    width:100%!important;
  }

  body.is-authenticated:not(.report-print-body) :is(.btn-primary,.btn-soft,.btn-ghost,.btn-danger){
    width:100%!important;
    min-height:40px!important;
    justify-content:center!important;
  }

  body.is-authenticated:not(.report-print-body) .floating-home-btn{
    width:44px!important;
    min-width:44px!important;
    height:40px!important;
    padding:0!important;
    right:10px!important;
    bottom:10px!important;
    border-radius:10px!important;
  }

  body.is-authenticated:not(.report-print-body) .floating-home-btn span{
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    overflow:hidden!important;
    clip:rect(0 0 0 0)!important;
  }

  body.is-authenticated:not(.report-print-body) #module-inicio .modern-tile-grid,
  body.is-authenticated:not(.report-print-body) #module-inicio .grid-modulos{
    grid-template-columns:1fr!important;
  }

  body.is-authenticated:not(.report-print-body) #module-inicio .school-module-tile.modern-module-tile{
    min-height:136px!important;
    padding:14px!important;
  }

  body.is-authenticated:not(.report-print-body) .students-table :is(th,td):first-child,
  body.is-authenticated:not(.report-print-body) #gradeSpreadsheet :is(th,td):nth-child(2),
  body.is-authenticated:not(.report-print-body) .daily-attendance-table :is(th,td):nth-child(2),
  body.is-authenticated:not(.report-print-body) .grade-table-wrap td.student-cell{
    min-width:170px!important;
    max-width:220px!important;
  }
}

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

@media print{
  .report-print-body{
    background:#fff!important;
  }

  .report-print-body .report-print-root,
  .report-print-body .report-print-page{
    width:100%!important;
    max-width:100%!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    box-shadow:none!important;
  }
}

/* Ajuste especifico: tabla mensual de asistencia usa su propio wrapper. */
body.is-authenticated:not(.report-print-body) .daily-attendance-table-wrap{
  position:relative!important;
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  overflow-x:auto!important;
  overflow-y:visible!important;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
  background:#fff!important;
  border:1px solid var(--pl-line)!important;
  border-radius:10px!important;
}

body.is-authenticated:not(.report-print-body) .daily-attendance-table-wrap .daily-attendance-table{
  width:max-content!important;
  min-width:100%!important;
  max-width:none!important;
}

/* Problema 2: Asignaturas no debe convertir 148 tarjetas en una pagina interminable. */
@media (max-width:760px){
  body.is-authenticated:not(.report-print-body) #module-asignaturas .subject-list-card{
    max-height:calc(100vh - var(--topbar-height, 78px) - 120px)!important;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch;
  }

  body.is-authenticated:not(.report-print-body) #module-asignaturas .subject-card-grid.subject-card-dashboard{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
    max-height:none!important;
    overflow:visible!important;
  }

  body.is-authenticated:not(.report-print-body) #module-asignaturas .subject-card.subject-course-card{
    min-height:0!important;
    height:auto!important;
    padding:10px 11px!important;
    gap:7px!important;
    border-left-width:4px!important;
  }

  body.is-authenticated:not(.report-print-body) #module-asignaturas .subject-card.subject-course-card :is(p,small){
    margin:0!important;
    line-height:1.25!important;
  }

  body.is-authenticated:not(.report-print-body) #module-asignaturas .subject-card.subject-course-card .subject-card-meta,
  body.is-authenticated:not(.report-print-body) #module-asignaturas .subject-card.subject-course-card .subject-flags,
  body.is-authenticated:not(.report-print-body) #module-asignaturas .subject-card.subject-course-card .subject-card-actions{
    display:flex!important;
    flex-wrap:wrap!important;
    gap:5px!important;
  }

  body.is-authenticated:not(.report-print-body) #module-asignaturas .subject-filter-bar,
  body.is-authenticated:not(.report-print-body) #module-asignaturas .subject-stats-row{
    max-height:none!important;
  }
}

/* Problema 3: Configuracion en movil se divide en paneles manejables. */
@media (max-width:760px){
  body.is-authenticated:not(.report-print-body) #module-configuracion .config-grid-main,
  body.is-authenticated:not(.report-print-body) #module-configuracion .admin-control-center,
  body.is-authenticated:not(.report-print-body) #module-configuracion .config-inner-modules,
  body.is-authenticated:not(.report-print-body) #module-configuracion .config-table{
    max-height:calc(100vh - var(--topbar-height, 78px) - 96px)!important;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
  }

  body.is-authenticated:not(.report-print-body) #module-configuracion .config-grid-main{
    display:block!important;
  }

  body.is-authenticated:not(.report-print-body) #module-configuracion .config-form{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:9px!important;
  }

  body.is-authenticated:not(.report-print-body) #module-configuracion .config-card,
  body.is-authenticated:not(.report-print-body) #module-configuracion .admin-control-center,
  body.is-authenticated:not(.report-print-body) #module-configuracion .config-quick-grid,
  body.is-authenticated:not(.report-print-body) #module-configuracion .config-summary{
    margin-bottom:10px!important;
  }

  body.is-authenticated:not(.report-print-body) #module-configuracion .config-quick-grid,
  body.is-authenticated:not(.report-print-body) #module-configuracion .config-summary{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
  }

  body.is-authenticated:not(.report-print-body) #module-configuracion .config-inner-modules :is(.section-link-grid,.grid-modulos){
    grid-template-columns:1fr!important;
  }
}

/* Problema 4: Usuarios y Registro de Usuarios en movil con tabs y jefaturas mas claras. */
@media (max-width:760px){
  body.is-authenticated:not(.report-print-body) :is(#module-usuarios,#module-registro-usuarios) .usuarios-tabs,
  body.is-authenticated:not(.report-print-body) :is(#module-usuarios,#module-registro-usuarios) .registro-tabs{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:7px!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
  }

  body.is-authenticated:not(.report-print-body) :is(#module-usuarios,#module-registro-usuarios) .usuarios-tabs button,
  body.is-authenticated:not(.report-print-body) :is(#module-usuarios,#module-registro-usuarios) .registro-tabs button{
    width:100%!important;
    min-width:0!important;
    min-height:42px!important;
    padding:8px 6px!important;
    white-space:normal!important;
    line-height:1.15!important;
  }

  body.is-authenticated:not(.report-print-body) :is(#module-usuarios,#module-registro-usuarios) .docente-headship-panel,
  body.is-authenticated:not(.report-print-body) :is(#module-usuarios,#module-registro-usuarios) fieldset.full{
    width:100%!important;
    min-width:0!important;
    overflow:visible!important;
    padding:10px!important;
  }

  body.is-authenticated:not(.report-print-body) :is(#module-usuarios,#module-registro-usuarios) .check-row{
    min-width:0!important;
    width:100%!important;
    justify-content:flex-start!important;
    white-space:normal!important;
    overflow:visible!important;
  }

  body.is-authenticated:not(.report-print-body) :is(#module-usuarios,#module-registro-usuarios) .form-grid{
    grid-template-columns:1fr!important;
  }
}

/* Problema 4b: evitar cortes verticales en botones compactos de Usuarios/Registro. */
@media (max-width:760px){
  body.is-authenticated:not(.report-print-body) :is(#module-usuarios,#module-registro-usuarios) :is(.btn-primary,.btn-soft,.btn-ghost,.btn-danger,.action-save,.module-save-btn){
    height:auto!important;
    min-height:44px!important;
    padding-top:9px!important;
    padding-bottom:9px!important;
    line-height:1.2!important;
    white-space:normal!important;
    align-items:center!important;
  }

  body.is-authenticated:not(.report-print-body) #module-registro-usuarios .registro-password-field{
    height:auto!important;
    min-height:0!important;
    overflow:visible!important;
  }

  body.is-authenticated:not(.report-print-body) #module-registro-usuarios .registro-password-control{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:stretch!important;
    gap:6px!important;
    height:auto!important;
    min-height:44px!important;
  }

  body.is-authenticated:not(.report-print-body) #module-registro-usuarios .registro-password-control .btn-soft{
    width:auto!important;
    min-width:104px!important;
  }
}
/* Problema 4c: override directo para botones de Usuarios/Registro en movil. */
@media (max-width:760px){
  body.is-authenticated:not(.report-print-body) #module-usuarios button.btn-primary,
  body.is-authenticated:not(.report-print-body) #module-usuarios button.btn-soft,
  body.is-authenticated:not(.report-print-body) #module-usuarios button.btn-ghost,
  body.is-authenticated:not(.report-print-body) #module-registro-usuarios button.btn-primary,
  body.is-authenticated:not(.report-print-body) #module-registro-usuarios button.btn-soft,
  body.is-authenticated:not(.report-print-body) #module-registro-usuarios button.btn-ghost{
    display:flex!important;
    min-height:44px!important;
    height:auto!important;
    padding:9px 10px!important;
    line-height:1.2!important;
    white-space:normal!important;
    align-items:center!important;
    justify-content:center!important;
  }

  body.is-authenticated:not(.report-print-body) #module-registro-usuarios label.registro-password-field{
    display:grid!important;
    gap:6px!important;
    height:auto!important;
    min-height:0!important;
    overflow:visible!important;
  }
}
/* Problema 4d: alto logico final para botones compactos. */
@media (max-width:760px){
  body.is-authenticated:not(.report-print-body) #appMain #module-usuarios button.btn-primary,
  body.is-authenticated:not(.report-print-body) #appMain #module-usuarios button.btn-soft,
  body.is-authenticated:not(.report-print-body) #appMain #module-usuarios button.btn-ghost,
  body.is-authenticated:not(.report-print-body) #appMain #module-registro-usuarios button.btn-primary,
  body.is-authenticated:not(.report-print-body) #appMain #module-registro-usuarios button.btn-soft,
  body.is-authenticated:not(.report-print-body) #appMain #module-registro-usuarios button.btn-ghost{
    min-block-size:46px!important;
    block-size:auto!important;
    box-sizing:border-box!important;
  }
}
/* Problema 4e: altura suficiente para botones con icono + texto. */
@media (max-width:760px){
  body.is-authenticated:not(.report-print-body) #appMain #module-usuarios button.btn-primary,
  body.is-authenticated:not(.report-print-body) #appMain #module-usuarios button.btn-soft,
  body.is-authenticated:not(.report-print-body) #appMain #module-usuarios button.btn-ghost,
  body.is-authenticated:not(.report-print-body) #appMain #module-registro-usuarios button.btn-primary,
  body.is-authenticated:not(.report-print-body) #appMain #module-registro-usuarios button.btn-soft,
  body.is-authenticated:not(.report-print-body) #appMain #module-registro-usuarios button.btn-ghost{
    min-block-size:62px!important;
  }

  body.is-authenticated:not(.report-print-body) #module-registro-usuarios label.registro-password-field{
    min-block-size:86px!important;
  }
}
/* Problema 5: botones de acciones UTP sin texto cortado en movil. */
@media (max-width:760px){
  body.is-authenticated:not(.report-print-body) #appMain #module-utp :is(.module-actions-inline,.form-actions,.report-actions,.table-actions) > button,
  body.is-authenticated:not(.report-print-body) #appMain #module-utp button:is(.btn-primary,.btn-soft,.btn-ghost,.action-save,.action-report,.module-save-btn){
    display:flex!important;
    min-block-size:62px!important;
    block-size:auto!important;
    height:auto!important;
    padding:9px 10px!important;
    line-height:1.2!important;
    white-space:normal!important;
    align-items:center!important;
    justify-content:center!important;
    box-sizing:border-box!important;
  }
}
/* Problema 6: pista visual de desplazamiento horizontal en tablas amplias. */
@media (max-width:760px){
  body.is-authenticated:not(.report-print-body) #appMain :is(.table-wrap,.grade-table-wrap,.daily-attendance-table-wrap,.monthly-attendance-table-wrap,.permission-table-wrap,.academic-report-table-scroll,.achievement-table-scroll,.registro-users-table-wrap,.ficha-table-wrapper){
    background:
      linear-gradient(90deg, rgba(255,255,255,0), rgba(16,42,92,.16)) right center / 26px 100% no-repeat,
      #fff!important;
    box-shadow:inset -10px 0 12px -12px rgba(16,42,92,.75)!important;
    scrollbar-width:thin;
  }

  body.is-authenticated:not(.report-print-body) #appMain :is(.table-wrap,.grade-table-wrap,.daily-attendance-table-wrap,.monthly-attendance-table-wrap,.permission-table-wrap,.academic-report-table-scroll,.achievement-table-scroll,.registro-users-table-wrap,.ficha-table-wrapper)::-webkit-scrollbar{
    height:8px;
  }

  body.is-authenticated:not(.report-print-body) #appMain :is(.table-wrap,.grade-table-wrap,.daily-attendance-table-wrap,.monthly-attendance-table-wrap,.permission-table-wrap,.academic-report-table-scroll,.achievement-table-scroll,.registro-users-table-wrap,.ficha-table-wrapper)::-webkit-scrollbar-thumb{
    background:#b8c7dc;
    border-radius:999px;
  }
}
/* Validacion final: tarjetas de inicio y botones de accion con respiracion movil. */
@media (max-width:760px){
  body.is-authenticated:not(.report-print-body) #module-inicio .school-module-tile.modern-module-tile{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
  }

  body.is-authenticated:not(.report-print-body) #module-inicio .school-module-tile.modern-module-tile *{
    min-width:0!important;
    max-width:100%!important;
    overflow-wrap:anywhere!important;
  }

  body.is-authenticated:not(.report-print-body) #appMain :is(#module-usuarios,#module-registro-usuarios,#module-utp) button:is(.btn-primary,.btn-soft,.btn-ghost,.action-save,.action-report,.module-save-btn){
    min-block-size:84px!important;
  }

  body.is-authenticated:not(.report-print-body) #appMain :is(#module-usuarios,#module-registro-usuarios,#module-utp) button:is(.btn-primary,.btn-soft,.btn-ghost,.action-save,.action-report,.module-save-btn) i{
    line-height:1!important;
  }

  body.is-authenticated:not(.report-print-body) #module-registro-usuarios label.registro-password-field{
    min-block-size:112px!important;
  }
}
/* Validacion final: grid interno de tarjetas Inicio contenido en movil. */
@media (max-width:760px){
  body.is-authenticated:not(.report-print-body) #module-inicio .school-module-tile.modern-module-tile{
    grid-template-columns:42px minmax(0,1fr)!important;
    column-gap:10px!important;
    padding-inline:10px!important;
  }

  body.is-authenticated:not(.report-print-body) #module-inicio .school-module-tile.modern-module-tile .school-module-icon{
    width:42px!important;
    min-width:42px!important;
    max-width:42px!important;
  }
}
/* =========================================================
   Informes, Niveles de Logro y Compendio UTP - ajuste visual 2026-08-20
   Solo capa visual/responsive/impresion; no altera datos ni calculos.
   ========================================================= */
body.is-authenticated:not(.report-print-body) #module-informes,
body.is-authenticated:not(.report-print-body) #module-utp{
  --report-blue:#08295a;
  --report-blue-2:#135fbf;
  --report-yellow:#f2c21a;
  --report-line:#d7e3f0;
  --report-soft:#f5f9fe;
  width:100%!important;
  max-width:none!important;
}
body.is-authenticated:not(.report-print-body) #module-informes > *,
body.is-authenticated:not(.report-print-body) #module-utp > *{
  max-width:none!important;
}
body.is-authenticated:not(.report-print-body) #module-informes :is(.module-head,.module-hero),
body.is-authenticated:not(.report-print-body) #module-utp :is(.module-head,.module-hero){
  margin-bottom:10px!important;
}
body.is-authenticated:not(.report-print-body) #module-informes .module-head-actions,
body.is-authenticated:not(.report-print-body) #module-utp .module-head-actions{
  display:flex!important;
  flex-wrap:wrap!important;
  justify-content:flex-end!important;
  gap:6px!important;
}
body.is-authenticated:not(.report-print-body) #module-informes .module-head-actions button,
body.is-authenticated:not(.report-print-body) #module-utp .module-head-actions button{
  min-height:34px!important;
  padding:7px 10px!important;
}
body.is-authenticated:not(.report-print-body) #module-informes .report-workspace,
body.is-authenticated:not(.report-print-body) #module-utp .utp-analytics-shell,
body.is-authenticated:not(.report-print-body) #module-utp .utp-compact-shell{
  width:100%!important;
  display:grid!important;
  gap:10px!important;
  margin:0 0 10px!important;
}
body.is-authenticated:not(.report-print-body) #module-informes .report-config-card,
body.is-authenticated:not(.report-print-body) #module-informes .report-observation-editor,
body.is-authenticated:not(.report-print-body) #module-informes .achievement-report-sheet,
body.is-authenticated:not(.report-print-body) #module-utp .utp-panel,
body.is-authenticated:not(.report-print-body) #module-utp .utp-analytics-report,
body.is-authenticated:not(.report-print-body) #module-utp .utp-dashboard-section{
  border:1px solid var(--report-line)!important;
  border-radius:8px!important;
  background:#fff!important;
  box-shadow:0 8px 20px rgba(8,41,90,.05)!important;
  padding:12px!important;
}
body.is-authenticated:not(.report-print-body) #module-informes .report-filter-grid,
body.is-authenticated:not(.report-print-body) #module-utp .utp-analytics-filters,
body.is-authenticated:not(.report-print-body) #module-utp .utp-report-filters,
body.is-authenticated:not(.report-print-body) #module-utp .utp-risk-filter-bar,
body.is-authenticated:not(.report-print-body) #module-informes .achievement-filters{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr))!important;
  gap:8px!important;
  align-items:end!important;
  margin:0!important;
}
body.is-authenticated:not(.report-print-body) #module-informes :is(.report-filter-grid,.achievement-filters,.report-observation-grid) label,
body.is-authenticated:not(.report-print-body) #module-utp :is(.utp-analytics-filters,.utp-report-filters,.utp-risk-filter-bar) label{
  min-width:0!important;
  margin:0!important;
}
body.is-authenticated:not(.report-print-body) #module-informes :is(select,input,textarea),
body.is-authenticated:not(.report-print-body) #module-utp :is(select,input,textarea){
  width:100%!important;
  min-width:0!important;
}
body.is-authenticated:not(.report-print-body) #module-informes .report-inline-actions,
body.is-authenticated:not(.report-print-body) #module-utp .utp-report-actions,
body.is-authenticated:not(.report-print-body) #module-utp .utp-compact-access{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:6px!important;
  justify-content:flex-end!important;
  margin-top:8px!important;
}
body.is-authenticated:not(.report-print-body) #module-informes .report-insights .layout-insight-grid,
body.is-authenticated:not(.report-print-body) #module-informes .achievement-kpis,
body.is-authenticated:not(.report-print-body) #module-utp .utp-analytics-kpis,
body.is-authenticated:not(.report-print-body) #module-utp .utp-compact-kpis,
body.is-authenticated:not(.report-print-body) #module-utp .utp-achievement-summary{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important;
  gap:8px!important;
  margin:8px 0!important;
}
body.is-authenticated:not(.report-print-body) #module-informes .achievement-report-meta,
body.is-authenticated:not(.report-print-body) #module-informes .academic-report-student-grid,
body.is-authenticated:not(.report-print-body) #module-informes .academic-report-summary,
body.is-authenticated:not(.report-print-body) #module-informes .academic-report-period-summary{
  grid-template-columns:repeat(auto-fit,minmax(155px,1fr))!important;
  gap:7px!important;
}
body.is-authenticated:not(.report-print-body) #module-informes .achievement-chart-grid,
body.is-authenticated:not(.report-print-body) #module-informes .report-course-top,
body.is-authenticated:not(.report-print-body) #module-utp .utp-analytics-report-grid{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr))!important;
  gap:10px!important;
}
body.is-authenticated:not(.report-print-body) #module-utp .utp-dashboard-flow{
  display:grid!important;
  gap:10px!important;
}
body.is-authenticated:not(.report-print-body) #module-utp .utp-dashboard-section h4,
body.is-authenticated:not(.report-print-body) #module-informes .achievement-report-sheet h3,
body.is-authenticated:not(.report-print-body) #module-informes .academic-report-section h2{
  margin:0 0 8px!important;
  color:var(--report-blue)!important;
  font-size:1rem!important;
  line-height:1.2!important;
  border-left:4px solid var(--report-yellow)!important;
  padding-left:8px!important;
}
body.is-authenticated:not(.report-print-body) #module-informes :is(.table-wrap,.academic-report-table-scroll,.achievement-table-scroll),
body.is-authenticated:not(.report-print-body) #module-utp :is(.table-wrap,.utp-table-wrap,.smart-table){
  width:100%!important;
  max-width:100%!important;
  overflow:auto!important;
  margin:0!important;
  border-radius:8px!important;
}
body.is-authenticated:not(.report-print-body) #module-informes table,
body.is-authenticated:not(.report-print-body) #module-utp table{
  width:100%!important;
  min-width:0!important;
  table-layout:auto!important;
  border-collapse:collapse!important;
}
body.is-authenticated:not(.report-print-body) #module-informes th,
body.is-authenticated:not(.report-print-body) #module-informes td,
body.is-authenticated:not(.report-print-body) #module-utp th,
body.is-authenticated:not(.report-print-body) #module-utp td{
  padding:6px 8px!important;
  font-size:.82rem!important;
  line-height:1.22!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}
body.is-authenticated:not(.report-print-body) #module-informes th,
body.is-authenticated:not(.report-print-body) #module-utp th{
  background:#08295a!important;
  color:#fff!important;
}
body.is-authenticated:not(.report-print-body) #module-informes .achievement-report-sheet{
  margin:0!important;
  width:100%!important;
}
body.is-authenticated:not(.report-print-body) #module-informes .achievement-screen-header{
  display:grid!important;
  grid-template-columns:70px minmax(0,1fr) 70px!important;
  align-items:center!important;
  gap:12px!important;
  padding:12px!important;
  border:1px solid var(--report-line)!important;
  border-radius:8px!important;
  background:#fff!important;
}
body.is-authenticated:not(.report-print-body) #module-informes .achievement-screen-logo img,
body.is-authenticated:not(.report-print-body) #module-informes .achievement-report-logo img{
  max-width:64px!important;
  max-height:64px!important;
  object-fit:contain!important;
}
body.is-authenticated:not(.report-print-body) #module-informes .achievement-results-card{margin-top:10px!important}
body.is-authenticated:not(.report-print-body) #module-informes .achievement-analysis-grid,
body.is-authenticated:not(.report-print-body) #module-informes .achievement-analysis-editor,
body.is-authenticated:not(.report-print-body) #module-informes .report-observation-grid{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr))!important;
  gap:8px!important;
}
body.is-authenticated:not(.report-print-body) #module-informes .report-paper,
body.is-authenticated:not(.report-print-body) #module-informes .academic-grade-report,
body.is-authenticated:not(.report-print-body) #module-utp #utpPrintableReport{
  width:100%!important;
  max-width:none!important;
  margin:10px 0!important;
}
body.is-authenticated:not(.report-print-body) #module-utp .utp-analytics-header,
body.is-authenticated:not(.report-print-body) #module-utp .utp-compact-title{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:12px!important;
  padding:12px!important;
  border-radius:8px!important;
  background:#08295a!important;
  color:#fff!important;
}
body.is-authenticated:not(.report-print-body) #module-utp .utp-analytics-header h2,
body.is-authenticated:not(.report-print-body) #module-utp .utp-compact-title h2{color:#fff!important;margin:0!important}
body.is-authenticated:not(.report-print-body) #module-utp .utp-analytics-header span,
body.is-authenticated:not(.report-print-body) #module-utp .utp-compact-title span{color:#ffe58a!important}
body.is-authenticated:not(.report-print-body) #module-utp .utp-view-hidden{display:none!important}
body.is-authenticated:not(.report-print-body) #module-utp .utp-achievement-summary article{
  border:1px solid var(--report-line)!important;
  border-left:5px solid var(--report-yellow)!important;
  border-radius:8px!important;
  padding:10px!important;
  background:#fff!important;
}
body.is-authenticated:not(.report-print-body) #module-utp .utp-achievement-summary .level-i{border-left-color:#c33f49!important}
body.is-authenticated:not(.report-print-body) #module-utp .utp-achievement-summary .level-e{border-left-color:#f2c21a!important}
body.is-authenticated:not(.report-print-body) #module-utp .utp-achievement-summary .level-a{border-left-color:#168a4a!important}
body.is-authenticated:not(.report-print-body) #module-utp .utp-achievement-summary span{display:block;color:#60718b;font-size:.76rem;font-weight:750;text-transform:uppercase}
body.is-authenticated:not(.report-print-body) #module-utp .utp-achievement-summary b{font-size:1.55rem;color:#08295a}

@media (max-width:760px){
  body.is-authenticated:not(.report-print-body) #module-informes .achievement-screen-header{grid-template-columns:50px minmax(0,1fr)!important}
  body.is-authenticated:not(.report-print-body) #module-informes .achievement-screen-logo.secondary{display:none!important}
  body.is-authenticated:not(.report-print-body) #module-informes .module-head-actions,
  body.is-authenticated:not(.report-print-body) #module-utp .module-head-actions,
  body.is-authenticated:not(.report-print-body) #module-informes .report-inline-actions,
  body.is-authenticated:not(.report-print-body) #module-utp .utp-report-actions{justify-content:stretch!important}
  body.is-authenticated:not(.report-print-body) #module-informes .module-head-actions button,
  body.is-authenticated:not(.report-print-body) #module-utp .module-head-actions button,
  body.is-authenticated:not(.report-print-body) #module-informes .report-inline-actions button,
  body.is-authenticated:not(.report-print-body) #module-utp .utp-report-actions button{flex:1 1 140px!important}
}

@media print{
  @page{size:Letter;margin:10mm}
  body.report-print-body:not(.report-landscape-document) #module-informes,
  body.report-print-body #module-utp,
  .report-pdf-render:not(.report-landscape-document) #module-informes,
  .report-pdf-render #module-utp{
    background:#fff!important;
    color:#111!important;
  }
  body.report-print-body #module-informes .no-print,
  body.report-print-body #module-utp .no-print,
  .report-pdf-render #module-informes .no-print,
  .report-pdf-render #module-utp .no-print,
  body.report-print-body :is(.topbar,#mainNav,.sidebar,.floating-home-btn,.statusbar,.module-head,.module-breadcrumb),
  .report-pdf-render :is(.topbar,#mainNav,.sidebar,.floating-home-btn,.statusbar,.module-head,.module-breadcrumb){display:none!important}
  body.report-print-body #module-informes :is(.report-print-page,.academic-grade-report,.achievement-report-page,.report-paper),
  body.report-print-body #module-utp :is(.report-print-page,.utp-academic-report,.head-teacher-report),
  .report-pdf-render #module-informes :is(.report-print-page,.academic-grade-report,.achievement-report-page,.report-paper),
  .report-pdf-render #module-utp :is(.report-print-page,.utp-academic-report,.head-teacher-report){
    width:100%!important;
    max-width:100%!important;
    min-height:0!important;
    height:auto!important;
    overflow:visible!important;
    box-shadow:none!important;
    border:0!important;
    margin:0!important;
    padding:0!important;
    background:#fff!important;
  }
  body.report-print-body #module-informes table,
  body.report-print-body #module-utp table,
  .report-pdf-render #module-informes table,
  .report-pdf-render #module-utp table{
    width:100%!important;
    min-width:0!important;
    table-layout:fixed!important;
    border-collapse:collapse!important;
  }
  body.report-print-body #module-informes th,
  body.report-print-body #module-informes td,
  body.report-print-body #module-utp th,
  body.report-print-body #module-utp td,
  .report-pdf-render #module-informes th,
  .report-pdf-render #module-informes td,
  .report-pdf-render #module-utp th,
  .report-pdf-render #module-utp td{
    padding:3.2pt 4pt!important;
    font-size:7.5pt!important;
    line-height:1.14!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    border:1px solid #cfd8e3!important;
  }
  body.report-print-body #module-informes th,
  body.report-print-body #module-utp th,
  .report-pdf-render #module-informes th,
  .report-pdf-render #module-utp th{
    background:#08295a!important;
    color:#fff!important;
    print-color-adjust:exact;
    -webkit-print-color-adjust:exact;
  }
  body.report-print-body #module-informes :is(.academic-report-header,.report-header,.certificate-head,.achievement-report-heading,.utp-academic-head),
  body.report-print-body #module-utp :is(.academic-report-header,.report-header,.certificate-head,.achievement-report-heading,.utp-academic-head),
  .report-pdf-render #module-informes :is(.academic-report-header,.report-header,.certificate-head,.achievement-report-heading,.utp-academic-head),
  .report-pdf-render #module-utp :is(.academic-report-header,.report-header,.certificate-head,.achievement-report-heading,.utp-academic-head){
    display:grid!important;
    grid-template-columns:60px minmax(0,1fr) 60px!important;
    gap:8px!important;
    align-items:center!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
  body.report-print-body #module-informes img,
  body.report-print-body #module-utp img,
  .report-pdf-render #module-informes img,
  .report-pdf-render #module-utp img{max-width:60px!important;max-height:60px!important;object-fit:contain!important}
  body.report-print-body #module-informes tr,
  body.report-print-body #module-utp tr,
  .report-pdf-render #module-informes tr,
  .report-pdf-render #module-utp tr{break-inside:avoid!important;page-break-inside:avoid!important}
  body.report-print-body #module-informes :is(.academic-report-signatures,.report-course-signatures,.certificate-signatures,.head-teacher-signatures),
  body.report-print-body #module-utp :is(.academic-report-signatures,.report-course-signatures,.certificate-signatures,.head-teacher-signatures),
  .report-pdf-render #module-informes :is(.academic-report-signatures,.report-course-signatures,.certificate-signatures,.head-teacher-signatures),
  .report-pdf-render #module-utp :is(.academic-report-signatures,.report-course-signatures,.certificate-signatures,.head-teacher-signatures){
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:16mm!important;
    margin-top:8mm!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
}

/* Menu principal continuo 2026-08-20: una sola grilla, sin categorias visuales. */
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio,
body.is-authenticated:not(.report-print-body) #module-inicio{
  width:100%!important;
  max-width:1560px!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .home-module-directory,
body.is-authenticated:not(.report-print-body) #module-inicio .home-module-directory{
  display:block!important;
  width:100%!important;
  margin:10px 0 0!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .main-menu-flat-panel,
body.is-authenticated:not(.report-print-body) #module-inicio .main-menu-flat-panel{
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .main-menu-flat-grid,
body.is-authenticated:not(.report-print-body) #module-inicio .main-menu-flat-grid,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .modern-tile-grid.unified-module-grid,
body.is-authenticated:not(.report-print-body) #module-inicio .modern-tile-grid.unified-module-grid{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:10px!important;
  align-items:stretch!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .main-menu-flat-grid .school-module-tile.modern-module-tile,
body.is-authenticated:not(.report-print-body) #module-inicio .main-menu-flat-grid .school-module-tile.modern-module-tile{
  width:100%!important;
  min-width:0!important;
  min-height:118px!important;
  height:100%!important;
  display:grid!important;
  grid-template-columns:42px minmax(0,1fr)!important;
  grid-template-rows:minmax(0,1fr) auto!important;
  column-gap:10px!important;
  row-gap:6px!important;
  align-items:start!important;
  padding:12px!important;
  text-align:left!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .main-menu-flat-grid .school-module-icon,
body.is-authenticated:not(.report-print-body) #module-inicio .main-menu-flat-grid .school-module-icon{
  width:42px!important;
  min-width:42px!important;
  height:42px!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .main-menu-flat-grid .school-module-content,
body.is-authenticated:not(.report-print-body) #module-inicio .main-menu-flat-grid .school-module-content{
  min-width:0!important;
  overflow:hidden!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .main-menu-flat-grid .school-module-label,
body.is-authenticated:not(.report-print-body) #module-inicio .main-menu-flat-grid .school-module-label{
  font-size:.96rem!important;
  line-height:1.16!important;
  overflow-wrap:anywhere!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .main-menu-flat-grid .school-module-description,
body.is-authenticated:not(.report-print-body) #module-inicio .main-menu-flat-grid .school-module-description{
  font-size:.75rem!important;
  line-height:1.25!important;
  display:-webkit-box!important;
  -webkit-line-clamp:2!important;
  -webkit-box-orient:vertical!important;
  overflow:hidden!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .main-menu-flat-grid .school-module-action,
body.is-authenticated:not(.report-print-body) #module-inicio .main-menu-flat-grid .school-module-action{
  grid-column:2!important;
  align-self:end!important;
  white-space:nowrap!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio :is(.module-section-bar,.module-section-count,.module-breadcrumb),
body.is-authenticated:not(.report-print-body) #module-inicio :is(.module-section-bar,.module-section-count,.module-breadcrumb){
  display:none!important;
}
@media (max-width:1180px){
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .main-menu-flat-grid,
  body.is-authenticated:not(.report-print-body) #module-inicio .main-menu-flat-grid,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .modern-tile-grid.unified-module-grid,
  body.is-authenticated:not(.report-print-body) #module-inicio .modern-tile-grid.unified-module-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}
@media (max-width:760px){
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .main-menu-flat-grid,
  body.is-authenticated:not(.report-print-body) #module-inicio .main-menu-flat-grid,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .modern-tile-grid.unified-module-grid,
  body.is-authenticated:not(.report-print-body) #module-inicio .modern-tile-grid.unified-module-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .main-menu-flat-grid .school-module-tile.modern-module-tile,
  body.is-authenticated:not(.report-print-body) #module-inicio .main-menu-flat-grid .school-module-tile.modern-module-tile{
    min-height:108px!important;
    padding:10px!important;
  }
}
@media (max-width:440px){
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .main-menu-flat-grid,
  body.is-authenticated:not(.report-print-body) #module-inicio .main-menu-flat-grid,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .modern-tile-grid.unified-module-grid,
  body.is-authenticated:not(.report-print-body) #module-inicio .modern-tile-grid.unified-module-grid{
    grid-template-columns:1fr!important;
  }
}

/* Matricula compacta 2026-08-20: formulario profesional en grilla de 5 columnas. */
body.is-authenticated:not(.report-print-body) #module-matriculas{
  width:100%!important;
  max-width:none!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .module-head{
  margin-bottom:8px!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-editor{
  margin:8px 0!important;
  padding:10px!important;
  border-radius:8px!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-editor .list-card-head{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(220px,320px)!important;
  gap:8px!important;
  align-items:end!important;
  margin:0 0 8px!important;
  padding:0!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-editor .list-card-head h3{
  margin:0!important;
  line-height:1.15!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-editor .list-card-head small{
  margin-top:2px!important;
  line-height:1.2!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-editor .list-card-head label{
  margin:0!important;
  gap:4px!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-tabs{
  display:grid!important;
  grid-template-columns:repeat(6,minmax(0,1fr))!important;
  gap:6px!important;
  margin:0 0 8px!important;
  padding:0!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-tabs button{
  min-width:0!important;
  min-height:34px!important;
  height:auto!important;
  padding:6px 8px!important;
  border-radius:7px!important;
  font-size:.82rem!important;
  line-height:1.12!important;
  white-space:normal!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-form,
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-tab-panel{
  margin:0!important;
  padding:0!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-tab-panel:not(.active){
  display:none!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-form .form-grid{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:7px!important;
  align-items:start!important;
  margin:0!important;
  padding:0!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-form label{
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:7px!important;
  gap:3px!important;
  border-radius:7px!important;
  font-size:.76rem!important;
  line-height:1.1!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-form label.full{
  grid-column:1/-1!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-form :is(input:not([type=checkbox]):not([type=radio]),select,textarea){
  width:100%!important;
  min-width:0!important;
  height:32px!important;
  min-height:32px!important;
  padding:5px 7px!important;
  font-size:.86rem!important;
  line-height:1.2!important;
  box-sizing:border-box!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-form textarea{
  height:auto!important;
  min-height:52px!important;
  resize:vertical!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-check-grid{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:7px!important;
  margin:0!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-form .check-row{
  min-width:0!important;
  min-height:38px!important;
  margin:0!important;
  padding:7px!important;
  gap:6px!important;
  border-radius:7px!important;
  align-items:center!important;
  line-height:1.15!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-form .check-row input{
  flex:0 0 auto!important;
  width:16px!important;
  height:16px!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .form-actions{
  position:static!important;
  margin-top:8px!important;
  padding:8px!important;
  min-height:0!important;
  gap:6px!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .list-table-card{
  margin-top:8px!important;
}
@media (max-width:1360px){
  body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-form .form-grid,
  body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-check-grid{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
  }
}
@media (max-width:1040px){
  body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-tabs{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
  body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-form .form-grid,
  body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-check-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}
@media (max-width:760px){
  body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-editor .list-card-head{
    grid-template-columns:1fr!important;
  }
  body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-tabs,
  body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-form .form-grid,
  body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-check-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media (max-width:520px){
  body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-editor{
    padding:8px!important;
  }
  body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-tabs,
  body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-form .form-grid,
  body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-check-grid{
    grid-template-columns:1fr!important;
  }
}

/* Calificaciones compactas 2026-08-20: tarjetas en grilla de 5 columnas. */
body.is-authenticated:not(.report-print-body) #module-calificaciones{
  width:100%!important;
  max-width:none!important;
}
body.is-authenticated:not(.report-print-body) #module-calificaciones .module-head{
  margin-bottom:8px!important;
}
body.is-authenticated:not(.report-print-body) #module-calificaciones .module-head-actions,
body.is-authenticated:not(.report-print-body) #module-calificaciones .module-actions-inline{
  gap:6px!important;
}
body.is-authenticated:not(.report-print-body) #module-calificaciones .module-head-actions button,
body.is-authenticated:not(.report-print-body) #module-calificaciones .module-actions-inline button{
  min-height:34px!important;
  padding:7px 9px!important;
  font-size:.8rem!important;
}
body.is-authenticated:not(.report-print-body) #module-calificaciones .grade-dashboard-compact{
  display:grid!important;
  gap:8px!important;
  margin:0 0 8px!important;
  padding:0!important;
  width:100%!important;
}
body.is-authenticated:not(.report-print-body) #module-calificaciones .grade-filters-row{
  display:grid!important;
  grid-template-columns:minmax(0,1.1fr) minmax(0,1.4fr)!important;
  gap:8px!important;
  align-items:stretch!important;
  margin:0!important;
}
body.is-authenticated:not(.report-print-body) #module-calificaciones .course-context,
body.is-authenticated:not(.report-print-body) #module-calificaciones .grade-filter-card,
body.is-authenticated:not(.report-print-body) #module-calificaciones .layout-insight-wrap,
body.is-authenticated:not(.report-print-body) #module-calificaciones .grade-sheet-card{
  margin:0!important;
  padding:10px!important;
  border-radius:8px!important;
  min-width:0!important;
}
body.is-authenticated:not(.report-print-body) #module-calificaciones .course-context{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:8px!important;
  align-items:end!important;
}
body.is-authenticated:not(.report-print-body) #module-calificaciones .course-context-main{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  gap:7px!important;
  align-items:end!important;
}
body.is-authenticated:not(.report-print-body) #module-calificaciones .course-context-meta{
  min-height:42px!important;
  padding:7px 8px!important;
  border-radius:7px!important;
}
body.is-authenticated:not(.report-print-body) #module-calificaciones .course-context-meta b,
body.is-authenticated:not(.report-print-body) #module-calificaciones .layout-insight b,
body.is-authenticated:not(.report-print-body) #module-calificaciones .metric b{
  line-height:1.1!important;
}
body.is-authenticated:not(.report-print-body) #module-calificaciones .course-context-meta small,
body.is-authenticated:not(.report-print-body) #module-calificaciones .layout-insight small,
body.is-authenticated:not(.report-print-body) #module-calificaciones .metric small{
  line-height:1.15!important;
}
body.is-authenticated:not(.report-print-body) #module-calificaciones .course-context-actions,
body.is-authenticated:not(.report-print-body) #module-calificaciones .grade-filter-toolbar{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:6px!important;
  align-items:end!important;
  margin:0!important;
}
body.is-authenticated:not(.report-print-body) #module-calificaciones .grade-filter-toolbar label{
  flex:1 1 170px!important;
  min-width:150px!important;
  margin:0!important;
  gap:4px!important;
}
body.is-authenticated:not(.report-print-body) #module-calificaciones :is(select,input:not([type=checkbox]):not([type=radio])){
  width:100%!important;
  min-width:0!important;
  height:32px!important;
  min-height:32px!important;
  padding:5px 7px!important;
  font-size:.86rem!important;
  line-height:1.2!important;
}
body.is-authenticated:not(.report-print-body) #module-calificaciones .pill{
  min-height:28px!important;
  padding:5px 8px!important;
  font-size:.76rem!important;
  line-height:1.1!important;
  align-items:center!important;
}
body.is-authenticated:not(.report-print-body) #module-calificaciones .grade-signal-row{
  margin:0!important;
  padding:0!important;
}
body.is-authenticated:not(.report-print-body) #module-calificaciones .layout-insight-wrap{
  display:grid!important;
  gap:7px!important;
}
body.is-authenticated:not(.report-print-body) #module-calificaciones .layout-insight-head h3{
  margin:0!important;
  font-size:.9rem!important;
  line-height:1.15!important;
}
body.is-authenticated:not(.report-print-body) #module-calificaciones .layout-insight-grid,
body.is-authenticated:not(.report-print-body) #module-calificaciones .grade-kpi-grid.kpi-card-grid{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:8px!important;
  align-items:stretch!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
}
body.is-authenticated:not(.report-print-body) #module-calificaciones .layout-insight,
body.is-authenticated:not(.report-print-body) #module-calificaciones .grade-kpi-grid.kpi-card-grid > *,
body.is-authenticated:not(.report-print-body) #module-calificaciones .metric{
  width:100%!important;
  min-width:0!important;
  min-height:82px!important;
  height:100%!important;
  margin:0!important;
  padding:9px!important;
  border-radius:8px!important;
  display:grid!important;
  align-content:start!important;
  gap:4px!important;
  overflow:hidden!important;
}
body.is-authenticated:not(.report-print-body) #module-calificaciones .layout-insight i{
  width:30px!important;
  height:30px!important;
  min-width:30px!important;
  font-size:.88rem!important;
  margin-bottom:2px!important;
}
body.is-authenticated:not(.report-print-body) #module-calificaciones .layout-insight span,
body.is-authenticated:not(.report-print-body) #module-calificaciones .layout-insight small,
body.is-authenticated:not(.report-print-body) #module-calificaciones .metric small{
  overflow:hidden!important;
  display:-webkit-box!important;
  -webkit-line-clamp:2!important;
  -webkit-box-orient:vertical!important;
}
body.is-authenticated:not(.report-print-body) #module-calificaciones .layout-insight b,
body.is-authenticated:not(.report-print-body) #module-calificaciones .metric b{
  font-size:1.18rem!important;
  overflow-wrap:anywhere!important;
}
body.is-authenticated:not(.report-print-body) #module-calificaciones .grade-sheet-card{
  margin-top:8px!important;
  padding:10px!important;
}
body.is-authenticated:not(.report-print-body) #module-calificaciones .grade-sheet-card h3{
  margin:0 0 6px!important;
  line-height:1.15!important;
}
body.is-authenticated:not(.report-print-body) #module-calificaciones .grade-spreadsheet-help{
  margin:0 0 6px!important;
  padding:7px 8px!important;
  line-height:1.2!important;
}
body.is-authenticated:not(.report-print-body) #module-calificaciones .grade-table-wrap{
  margin:0!important;
  width:100%!important;
}
@media (max-width:1360px){
  body.is-authenticated:not(.report-print-body) #module-calificaciones .layout-insight-grid,
  body.is-authenticated:not(.report-print-body) #module-calificaciones .grade-kpi-grid.kpi-card-grid{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
  }
}
@media (max-width:1120px){
  body.is-authenticated:not(.report-print-body) #module-calificaciones .grade-filters-row{
    grid-template-columns:1fr!important;
  }
  body.is-authenticated:not(.report-print-body) #module-calificaciones .layout-insight-grid,
  body.is-authenticated:not(.report-print-body) #module-calificaciones .grade-kpi-grid.kpi-card-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}
@media (max-width:760px){
  body.is-authenticated:not(.report-print-body) #module-calificaciones .course-context,
  body.is-authenticated:not(.report-print-body) #module-calificaciones .course-context-main{
    grid-template-columns:1fr!important;
  }
  body.is-authenticated:not(.report-print-body) #module-calificaciones .layout-insight-grid,
  body.is-authenticated:not(.report-print-body) #module-calificaciones .grade-kpi-grid.kpi-card-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media (max-width:520px){
  body.is-authenticated:not(.report-print-body) #module-calificaciones .layout-insight-grid,
  body.is-authenticated:not(.report-print-body) #module-calificaciones .grade-kpi-grid.kpi-card-grid{
    grid-template-columns:1fr!important;
  }
  body.is-authenticated:not(.report-print-body) #module-calificaciones .course-context,
  body.is-authenticated:not(.report-print-body) #module-calificaciones .grade-filter-card,
  body.is-authenticated:not(.report-print-body) #module-calificaciones .layout-insight-wrap,
  body.is-authenticated:not(.report-print-body) #module-calificaciones .grade-sheet-card{
    padding:8px!important;
  }
}

/* Compactacion general 2026-08-20: menos espacios en todos los modulos sin tocar datos ni funciones. */
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain{
  gap:8px!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module{
  gap:8px!important;
  padding-top:0!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module.active{
  display:grid!important;
  gap:8px!important;
  align-content:start!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.module-head,.module-hero){
  margin:0 0 8px!important;
  padding:10px 12px!important;
  min-height:0!important;
  border-radius:8px!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.module-head h1,.module-head h2,.module-hero h1,.module-hero h2){
  margin:0!important;
  line-height:1.15!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.module-head p,.module-hero p,.list-card-head small,.card p,.empty-state){
  margin-top:3px!important;
  margin-bottom:0!important;
  line-height:1.25!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.card,.list-card,.list-table-card,.panel-listado,.report-panel,.report-builder,.config-card,.course-context,.subject-summary,.layout-insight-wrap,.monthly-attendance-sheet,.head-teacher-workspace,.utp-panel,.admin-control-center,.command-center,.teacher-dashboard-home):not(.module-head){
  margin-top:0!important;
  margin-bottom:8px!important;
  padding:10px!important;
  border-radius:8px!important;
  min-height:0!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.list-card-head,.config-section-head,.report-panel-head,.table-tools,.mini-toolbar,.filters-row,.form-actions,.module-head-actions,.module-actions-inline,.data-actions,.bulk-actions,.course-context-actions,.monthly-attendance-actions){
  gap:6px!important;
  margin:0 0 8px!important;
  padding:0!important;
  min-height:0!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.form-grid,.filter-grid,.grid,.dashboard-grid,.config-grid,.report-card-grid,.utp-dashboard,.utp-kpi-grid,.utp-summary-kpis,.attendance-kpis,.attendance-live-kpis,.achievement-kpis,.academic-report-summary,.academic-report-period-summary,.guardian-summary,.head-teacher-kpis,.permission-summary,.users-summary-grid,.institution-strip,.portal-metrics,.subject-stats-row,.layout-insight-grid){
  gap:8px!important;
  margin-top:0!important;
  margin-bottom:8px!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(label,.field,.filter-field){
  min-height:0!important;
  margin:0!important;
  gap:4px!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(input:not([type=checkbox]):not([type=radio]),select,textarea){
  min-height:32px!important;
  padding-top:5px!important;
  padding-bottom:5px!important;
  box-sizing:border-box!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain textarea{
  min-height:56px!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(button,.btn-primary,.btn-soft,.btn-ghost,.btn-danger){
  min-height:32px!important;
  padding:6px 9px!important;
  border-radius:7px!important;
  line-height:1.15!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.table-wrap,.grade-table-wrap,.daily-attendance-table-wrap,.monthly-attendance-table-wrap,.permission-table-wrap,.academic-report-table-scroll,.achievement-table-scroll,.usuarios-table-desktop,.smart-table,.ficha-table-wrapper){
  margin:0!important;
  border-radius:8px!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(table th,table td){
  padding-top:6px!important;
  padding-bottom:6px!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.empty-state:empty,.card:empty,.list-card:empty,.panel-listado:empty,.form-actions:empty,.module-head-actions:empty,.table-tools:empty){
  display:none!important;
}
body.is-authenticated:not(.report-print-body) #module-asistencia{
  width:100%!important;
  max-width:none!important;
}
body.is-authenticated:not(.report-print-body) #module-asistencia .attendance-tabs{
  display:flex!important;
  gap:6px!important;
  margin:0 0 8px!important;
  padding:0!important;
}
body.is-authenticated:not(.report-print-body) #module-asistencia .attendance-tabs button{
  min-height:34px!important;
  padding:7px 10px!important;
}
body.is-authenticated:not(.report-print-body) #module-asistencia .monthly-attendance-panel,
body.is-authenticated:not(.report-print-body) #module-asistencia .daily-attendance-panel{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:7px!important;
  margin:0 0 8px!important;
  padding:10px!important;
  align-items:end!important;
}
body.is-authenticated:not(.report-print-body) #module-asistencia .monthly-attendance-actions,
body.is-authenticated:not(.report-print-body) #module-asistencia .daily-attendance-actions{
  grid-column:auto!important;
  display:flex!important;
  flex-wrap:wrap!important;
  gap:6px!important;
  margin:0!important;
}
body.is-authenticated:not(.report-print-body) #module-asistencia .monthly-attendance-title{
  margin:0 0 6px!important;
  line-height:1.15!important;
}
body.is-authenticated:not(.report-print-body) #module-asistencia .monthly-attendance-meta,
body.is-authenticated:not(.report-print-body) #module-asistencia .monthly-attendance-note{
  gap:6px!important;
  margin:0 0 6px!important;
  padding:7px 8px!important;
}
@media (max-width:1360px){
  body.is-authenticated:not(.report-print-body) #module-asistencia .monthly-attendance-panel,
  body.is-authenticated:not(.report-print-body) #module-asistencia .daily-attendance-panel{grid-template-columns:repeat(4,minmax(0,1fr))!important;}
}
@media (max-width:1040px){
  body.is-authenticated:not(.report-print-body) #module-asistencia .monthly-attendance-panel,
  body.is-authenticated:not(.report-print-body) #module-asistencia .daily-attendance-panel{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
}
@media (max-width:760px){
  body.is-authenticated:not(.report-print-body) #module-asistencia .monthly-attendance-panel,
  body.is-authenticated:not(.report-print-body) #module-asistencia .daily-attendance-panel{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media (max-width:520px){
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.card,.list-card,.list-table-card,.panel-listado,.report-panel,.report-builder,.config-card,.course-context,.subject-summary,.layout-insight-wrap,.monthly-attendance-sheet,.head-teacher-workspace,.utp-panel,.admin-control-center,.command-center,.teacher-dashboard-home):not(.module-head){
    padding:8px!important;
  }
  body.is-authenticated:not(.report-print-body) #module-asistencia .attendance-tabs,
  body.is-authenticated:not(.report-print-body) #module-asistencia .monthly-attendance-panel,
  body.is-authenticated:not(.report-print-body) #module-asistencia .daily-attendance-panel{grid-template-columns:1fr!important;}
}

/* Niveles de Logro 2026-08-20: filtros, tarjetas, reportes Carta y vista compacta. */
body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-screen-header{
  display:grid!important;
  grid-template-columns:62px minmax(0,1fr) 62px!important;
  gap:10px!important;
  align-items:center!important;
  margin:0 0 8px!important;
  padding:10px!important;
  border:1px solid #d7e3f0!important;
  border-radius:8px!important;
  background:#fff!important;
}
body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-screen-header h2,
body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-screen-header p{
  margin:0!important;
  line-height:1.14!important;
}
body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-screen-logo img{
  width:56px!important;
  height:56px!important;
  object-fit:contain!important;
}
body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-report-sheet{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:10px!important;
  display:grid!important;
  gap:8px!important;
}
body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-report-meta,
body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-kpis{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:7px!important;
  margin:0!important;
}
body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-report-meta>div,
body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-kpi{
  min-width:0!important;
  min-height:58px!important;
  margin:0!important;
  padding:8px!important;
  border-radius:7px!important;
  line-height:1.12!important;
}
body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-filters{
  display:grid!important;
  grid-template-columns:repeat(6,minmax(0,1fr))!important;
  gap:7px!important;
  margin:0!important;
  align-items:end!important;
}
body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-filters label{
  min-width:0!important;
  margin:0!important;
  gap:4px!important;
}
body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-filters :is(input,select){
  width:100%!important;
  height:32px!important;
  min-height:32px!important;
  padding:5px 7px!important;
}
body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-chart-grid{
  display:grid!important;
  grid-template-columns:minmax(0,1.45fr) minmax(220px,.55fr)!important;
  gap:8px!important;
  margin:0!important;
}
body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-report-sheet > .card,
body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-analysis,
body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-results-card{
  margin:0!important;
  padding:10px!important;
  border-radius:8px!important;
}
body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-report-sheet h3{
  margin:0 0 6px!important;
  padding-left:8px!important;
  border-left:4px solid #ffcf21!important;
  color:#08295a!important;
  line-height:1.15!important;
}
body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-table-scroll{
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  overflow:auto!important;
  border-radius:8px!important;
}
body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-results-table{
  width:100%!important;
  min-width:900px!important;
  table-layout:auto!important;
}
body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-results-table :is(th,td){
  padding:5px 7px!important;
  font-size:.78rem!important;
  line-height:1.16!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}
body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-analysis-grid,
body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-analysis-editor{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:7px!important;
  margin:0!important;
}
body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-analysis-grid article,
body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-analysis-editor label{
  min-width:0!important;
  margin:0!important;
  padding:8px!important;
}
body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-analysis-editor textarea{
  min-height:58px!important;
}
@media (max-width:1360px){
  body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-filters{grid-template-columns:repeat(4,minmax(0,1fr))!important;}
  body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-analysis-grid,
  body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-analysis-editor{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
}
@media (max-width:980px){
  body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-report-meta,
  body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-kpis,
  body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-filters{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-chart-grid{grid-template-columns:1fr!important;}
}
@media (max-width:560px){
  body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-screen-header{grid-template-columns:50px minmax(0,1fr)!important;}
  body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-screen-logo.secondary{display:none!important;}
  body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-report-meta,
  body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-kpis,
  body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-filters,
  body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-analysis-grid,
  body.is-authenticated:not(.report-print-body) :is(#module-niveles-logro,#module-informes) .achievement-analysis-editor{grid-template-columns:1fr!important;}
}
@media print{
  @page{size:letter landscape;margin:8mm}
  body.report-print-body :is(#module-niveles-logro,#module-informes) .achievement-report-page,
  .report-pdf-render :is(#module-niveles-logro,#module-informes) .achievement-report-page{
    width:100%!important;
    min-height:0!important;
    height:auto!important;
    max-height:none!important;
    padding:0!important;
    overflow:visible!important;
    box-shadow:none!important;
  }
  body.report-print-body :is(#module-niveles-logro,#module-informes) .achievement-report-content,
  .report-pdf-render :is(#module-niveles-logro,#module-informes) .achievement-report-content{
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
  }
  body.report-print-body :is(#module-niveles-logro,#module-informes) :is(.no-print,.module-head,.report-inner-tabs,.achievement-analysis-editor),
  .report-pdf-render :is(#module-niveles-logro,#module-informes) :is(.no-print,.module-head,.report-inner-tabs,.achievement-analysis-editor){
    display:none!important;
  }
  body.report-print-body :is(#module-niveles-logro,#module-informes) :is(.achievement-report-heading,.achievement-report-meta,.achievement-kpis,.achievement-chart-grid,.achievement-analysis-grid),
  .report-pdf-render :is(#module-niveles-logro,#module-informes) :is(.achievement-report-heading,.achievement-report-meta,.achievement-kpis,.achievement-chart-grid,.achievement-analysis-grid){
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
  body.report-print-body :is(#module-niveles-logro,#module-informes) .achievement-results-table,
  .report-pdf-render :is(#module-niveles-logro,#module-informes) .achievement-results-table{
    width:100%!important;
    min-width:0!important;
    table-layout:fixed!important;
  }
  body.report-print-body :is(#module-niveles-logro,#module-informes) .achievement-results-table :is(th,td),
  .report-pdf-render :is(#module-niveles-logro,#module-informes) .achievement-results-table :is(th,td){
    padding:3px 4px!important;
    font-size:8.5px!important;
    line-height:1.08!important;
    overflow-wrap:anywhere!important;
  }
}

/* Centro de Informes sticky 2026-08-20: encabezado fijo con acciones visibles. */
body.is-authenticated:not(.report-print-body) #module-informes > .module-head.module-hero:first-of-type{
  position:sticky!important;
  top:calc(var(--shell-topbar-height, 64px) + 8px)!important;
  z-index:1200!important;
  width:100%!important;
  max-width:none!important;
  margin:0 0 10px!important;
  background:#0b6ee8!important;
  background:linear-gradient(135deg,#1479f6,#0b5fc9)!important;
  box-shadow:0 10px 24px rgba(8,41,90,.18)!important;
  border:1px solid rgba(255,255,255,.18)!important;
  isolation:isolate!important;
}
body.is-authenticated:not(.report-print-body) #module-informes > .module-head.module-hero:first-of-type::after{
  content:""!important;
  position:absolute!important;
  left:0!important;
  right:0!important;
  bottom:-10px!important;
  height:10px!important;
  pointer-events:none!important;
  background:linear-gradient(180deg,rgba(15,23,42,.10),rgba(15,23,42,0))!important;
}
body.is-authenticated:not(.report-print-body) #module-informes > .module-head.module-hero:first-of-type .module-hero-content{
  min-width:0!important;
}
body.is-authenticated:not(.report-print-body) #module-informes > .module-head.module-hero:first-of-type .module-hero-actions{
  min-width:min(520px,48vw)!important;
  max-width:100%!important;
  display:flex!important;
  flex-wrap:wrap!important;
  justify-content:flex-end!important;
  align-items:center!important;
  gap:6px!important;
  margin:0!important;
}
body.is-authenticated:not(.report-print-body) #module-informes > .module-head.module-hero:first-of-type .module-hero-actions button{
  flex:0 0 auto!important;
  min-height:34px!important;
  padding:7px 10px!important;
  white-space:nowrap!important;
}
body.is-authenticated:not(.report-print-body) #module-informes > .module-head.module-hero:first-of-type + .report-workspace,
body.is-authenticated:not(.report-print-body) #module-informes > .module-head.module-hero:first-of-type + .card,
body.is-authenticated:not(.report-print-body) #module-informes > .module-head.module-hero:first-of-type + section{
  scroll-margin-top:150px!important;
}
@media (max-width:1100px){
  body.is-authenticated:not(.report-print-body) #module-informes > .module-head.module-hero:first-of-type{
    align-items:flex-start!important;
    gap:10px!important;
    padding:10px!important;
  }
  body.is-authenticated:not(.report-print-body) #module-informes > .module-head.module-hero:first-of-type .module-hero-actions{
    min-width:100%!important;
    justify-content:flex-start!important;
  }
}
@media (max-width:720px){
  body.is-authenticated:not(.report-print-body) #module-informes > .module-head.module-hero:first-of-type{
    top:calc(var(--shell-topbar-height, 88px) + 4px)!important;
    padding:9px!important;
  }
  body.is-authenticated:not(.report-print-body) #module-informes > .module-head.module-hero:first-of-type .module-hero-content h1,
  body.is-authenticated:not(.report-print-body) #module-informes > .module-head.module-hero:first-of-type .module-hero-content h2{
    font-size:1.2rem!important;
    line-height:1.08!important;
  }
  body.is-authenticated:not(.report-print-body) #module-informes > .module-head.module-hero:first-of-type .module-hero-content p{
    font-size:.82rem!important;
    line-height:1.18!important;
    display:-webkit-box!important;
    -webkit-line-clamp:2!important;
    -webkit-box-orient:vertical!important;
    overflow:hidden!important;
  }
  body.is-authenticated:not(.report-print-body) #module-informes > .module-head.module-hero:first-of-type .module-badge{
    min-height:24px!important;
    margin-bottom:4px!important;
    padding:3px 8px!important;
    font-size:.74rem!important;
  }
  body.is-authenticated:not(.report-print-body) #module-informes > .module-head.module-hero:first-of-type .module-hero-actions{
    overflow-x:auto!important;
    overflow-y:hidden!important;
    flex-wrap:nowrap!important;
    width:100%!important;
    padding:0 0 3px!important;
    scrollbar-width:thin!important;
    -webkit-overflow-scrolling:touch!important;
  }
  body.is-authenticated:not(.report-print-body) #module-informes > .module-head.module-hero:first-of-type .module-hero-actions button{
    min-height:32px!important;
    padding:6px 9px!important;
    font-size:.78rem!important;
  }
}
@media print{
  body.report-print-body #module-informes > .module-head.module-hero:first-of-type,
  .report-pdf-render #module-informes > .module-head.module-hero:first-of-type{
    display:none!important;
    position:static!important;
  }
}

/* Cabecera institucional global: aplica el diseno azul a todos los apartados. */
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > .module-head.module-hero,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > .module-hero,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .category-panel-head{
  position:relative!important;
  display:grid!important;
  grid-template-columns:minmax(280px,1fr) minmax(260px,max-content)!important;
  align-items:end!important;
  gap:18px!important;
  width:100%!important;
  min-height:128px!important;
  margin:0 0 18px!important;
  padding:18px 16px 16px!important;
  border:1px solid rgba(255,255,255,.30)!important;
  border-top:5px solid #ffd21f!important;
  border-radius:8px!important;
  background:linear-gradient(115deg,#183d9a 0%,#285ed0 54%,#75a2f2 100%)!important;
  color:#fff!important;
  box-shadow:0 10px 24px rgba(12,55,128,.20)!important;
  overflow:hidden!important;
  isolation:isolate!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > .module-head.module-hero::before,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > .module-hero::before,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .category-panel-head::before{
  content:""!important;
  position:absolute!important;
  right:18px!important;
  top:12px!important;
  width:128px!important;
  height:86px!important;
  background:none!important;
  opacity:0!important;
  filter:brightness(0) invert(1)!important;
  transform:rotate(-8deg)!important;
  pointer-events:none!important;
  z-index:0!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > .module-head.module-hero > *,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > .module-hero > *,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .category-panel-head > *{
  position:relative!important;
  z-index:1!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero-content{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:flex-end!important;
  min-width:0!important;
  gap:8px!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero :is(h1,h2),
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero :is(h1,h2),
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .category-panel-head :is(h1,h2){
  margin:0!important;
  color:#fff!important;
  font-size:1.82rem!important;
  line-height:1.05!important;
  font-weight:800!important;
  letter-spacing:0!important;
  overflow-wrap:anywhere!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero p,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero p,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .category-panel-head p{
  order:3!important;
  max-width:min(820px,100%)!important;
  margin:0!important;
  color:#fff!important;
  font-size:.88rem!important;
  line-height:1.35!important;
  font-weight:500!important;
  text-shadow:0 1px 1px rgba(9,26,69,.15)!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero .module-badge,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero .module-badge{
  order:2!important;
  display:inline-flex!important;
  align-items:center!important;
  gap:8px!important;
  width:max-content!important;
  max-width:100%!important;
  min-height:32px!important;
  margin:0!important;
  padding:5px 15px!important;
  border:1px solid rgba(255,255,255,.42)!important;
  border-radius:999px!important;
  background:rgba(18,58,143,.50)!important;
  color:#fff!important;
  font-size:.98rem!important;
  line-height:1.15!important;
  font-weight:700!important;
  box-shadow:none!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero .module-badge i,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero .module-badge i{
  font-size:.86rem!important;
  color:#fff!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero .module-hero-actions,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero .module-hero-actions{
  display:flex!important;
  flex-wrap:wrap!important;
  justify-content:flex-end!important;
  align-items:flex-end!important;
  align-content:flex-end!important;
  gap:8px!important;
  min-width:0!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero .module-hero-actions :is(button,a),
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero .module-hero-actions :is(button,a){
  min-height:44px!important;
  max-width:100%!important;
  padding:10px 13px!important;
  border:1px solid rgba(255,255,255,.62)!important;
  border-radius:8px!important;
  background:rgba(255,255,255,.92)!important;
  color:#124f9f!important;
  font-size:.98rem!important;
  line-height:1.1!important;
  font-weight:800!important;
  letter-spacing:0!important;
  box-shadow:0 8px 18px rgba(7,42,102,.12)!important;
  white-space:nowrap!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero .module-hero-actions :is(button,a).btn-primary,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero .module-hero-actions :is(button,a).btn-primary{
  background:#0f68c7!important;
  border-color:#0f68c7!important;
  color:#fff!important;
}
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero .module-hero-actions :is(button,a):hover,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero .module-hero-actions :is(button,a):hover{
  transform:translateY(-1px)!important;
  box-shadow:0 12px 24px rgba(7,42,102,.18)!important;
}
@media (max-width:1100px){
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > .module-head.module-hero,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > .module-hero,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .category-panel-head{
    grid-template-columns:1fr!important;
    align-items:start!important;
    min-height:0!important;
  }
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero .module-hero-actions,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero .module-hero-actions{
    justify-content:flex-start!important;
  }
}
@media (max-width:720px){
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > .module-head.module-hero,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > .module-hero,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .category-panel-head{
    padding:14px 12px!important;
    border-radius:8px!important;
  }
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero :is(h1,h2),
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero :is(h1,h2),
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .category-panel-head :is(h1,h2){
    font-size:1.45rem!important;
  }
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero .module-hero-actions,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero .module-hero-actions{
    overflow-x:auto!important;
    overflow-y:hidden!important;
    flex-wrap:nowrap!important;
    justify-content:flex-start!important;
    width:100%!important;
    padding-bottom:3px!important;
    scrollbar-width:thin!important;
  }
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero .module-hero-actions :is(button,a),
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero .module-hero-actions :is(button,a){
    min-height:38px!important;
    padding:8px 10px!important;
    font-size:.84rem!important;
  }
}

/* Matriculas: observaciones en tarjetas alineadas 2026-08-21. */
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-tab-panel[data-tab="observaciones"] .form-grid{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-tab-panel[data-tab="observaciones"] .form-grid label.full{
  grid-column:auto!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-tab-panel[data-tab="observaciones"] .form-grid label:has(textarea){
  min-height:112px!important;
  display:flex!important;
  flex-direction:column!important;
}
body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-tab-panel[data-tab="observaciones"] .form-grid label:has(textarea) textarea{
  flex:1 1 auto!important;
  min-height:74px!important;
}
@media (max-width:980px){
  body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-tab-panel[data-tab="observaciones"] .form-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media (max-width:620px){
  body.is-authenticated:not(.report-print-body) #module-matriculas .matricula-tab-panel[data-tab="observaciones"] .form-grid{
    grid-template-columns:1fr!important;
  }
}

/* Centro de Informes: impresion Carta limpia y sin cortes 2026-08-21. */
@page{size:Letter portrait;margin:12mm}
@media print{
  html,body{width:auto!important;max-width:100%!important;margin:0!important;padding:0!important;background:#fff!important;color:#172033!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  body.report-landscape-document{width:auto!important}
  body.report-print-body :is(.topbar,#mainNav,.sidebar,.floating-home-btn,.statusbar,.module-head,.module-breadcrumb,.report-inner-tabs,.report-preview-toolbar,.no-print,.form-actions.no-print,.table-tools.no-print),
  .report-pdf-render :is(.topbar,#mainNav,.sidebar,.floating-home-btn,.statusbar,.module-head,.module-breadcrumb,.report-inner-tabs,.report-preview-toolbar,.no-print,.form-actions.no-print,.table-tools.no-print){display:none!important}
  body.report-print-body:not(.report-landscape-document) #module-informes,
  body.report-print-body:not(.report-landscape-document) .report-print-root,
  .report-pdf-render:not(.report-landscape-document) #module-informes,
  .report-pdf-render .report-print-root{width:100%!important;max-width:100%!important;margin:0!important;padding:0!important;background:#fff!important;overflow:visible!important}
  body.report-print-body:not(.report-landscape-document) #module-informes :is(.report-print-page,.academic-report-print-page,.report-one-page-wrapper),
  .report-pdf-render #module-informes :is(.report-print-page,.academic-report-print-page,.report-one-page-wrapper){width:100%!important;max-width:100%!important;min-height:255mm!important;height:auto!important;max-height:none!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:#fff!important;overflow:visible!important;break-after:page!important;page-break-after:always!important}
  body.report-print-body:not(.report-landscape-document) #module-informes .report-print-page:last-child,
  .report-pdf-render #module-informes .report-print-page:last-child{break-after:auto!important;page-break-after:auto!important}
  body.report-print-body #module-informes .report-print-page > :is(.academic-grade-report,.report-paper,.achievement-report-page,.pedagogical-matrix-report,.report-one-page-letter,.report-fit-content),
  .report-pdf-render #module-informes .report-print-page > :is(.academic-grade-report,.report-paper,.achievement-report-page,.pedagogical-matrix-report,.report-one-page-letter,.report-fit-content){width:100%!important;max-width:100%!important;margin:0!important;padding:0!important;box-shadow:none!important;border-radius:0!important;overflow:visible!important;transform-origin:top left!important}
  body.report-print-body #module-informes :is(table,.table-wrap,.academic-report-table-scroll,.report-grade-table,.achievement-table-scroll),
  .report-pdf-render #module-informes :is(table,.table-wrap,.academic-report-table-scroll,.report-grade-table,.achievement-table-scroll){width:100%!important;max-width:100%!important;min-width:0!important;overflow:visible!important}
  body.report-print-body #module-informes table,
  .report-pdf-render #module-informes table{border-collapse:collapse!important;table-layout:fixed!important}
  body.report-print-body #module-informes thead,
  .report-pdf-render #module-informes thead{display:table-header-group!important}
  body.report-print-body #module-informes tfoot,
  .report-pdf-render #module-informes tfoot{display:table-footer-group!important}
  body.report-print-body #module-informes tbody,
  .report-pdf-render #module-informes tbody{break-inside:auto!important;page-break-inside:auto!important}
  body.report-print-body #module-informes tr,
  .report-pdf-render #module-informes tr{break-inside:avoid!important;page-break-inside:avoid!important}
  body.report-print-body #module-informes :is(th,td),
  .report-pdf-render #module-informes :is(th,td){overflow-wrap:anywhere!important;word-break:break-word!important;white-space:normal!important;vertical-align:top!important}
  body.report-print-body #module-informes :is(img,svg,canvas),
  .report-pdf-render #module-informes :is(img,svg,canvas){max-width:100%!important;height:auto!important;break-inside:avoid!important;page-break-inside:avoid!important}
  body.report-print-body #module-informes :is(.report-header,.academic-report-header,.achievement-report-heading,.certificate-head,.report-logo,.achievement-report-logo,.certificate-logo,.report-student,.academic-report-student-grid,.academic-report-summary,.academic-report-period-summary,.report-summary-line,.report-grade-box,.report-note-grid>div,.report-signatures,.report-course-signatures,.academic-report-footer,.report-footer),
  .report-pdf-render #module-informes :is(.report-header,.academic-report-header,.achievement-report-heading,.certificate-head,.report-logo,.achievement-report-logo,.certificate-logo,.report-student,.academic-report-student-grid,.academic-report-summary,.academic-report-period-summary,.report-summary-line,.report-grade-box,.report-note-grid>div,.report-signatures,.report-course-signatures,.academic-report-footer,.report-footer){break-inside:avoid!important;page-break-inside:avoid!important}
}


/* Ficha Integral: tarjetas reorganizadas en filas horizontales 2026-08-21. */
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-alumno{
  gap:12px!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-alumno > .ficha-grid:not(.ficha-kpi-grid):not(.two){
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  align-items:stretch!important;
  gap:10px!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-grid.two{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  align-items:stretch!important;
  gap:10px!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-card{
  display:flex!important;
  flex-direction:column!important;
  min-width:0!important;
  height:100%!important;
  padding:13px!important;
  overflow:hidden!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-card h3{
  flex:0 0 auto!important;
  min-height:34px!important;
  margin:0 0 9px!important;
  line-height:1.18!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-card p{
  margin:4px 0!important;
  font-size:.84rem!important;
  line-height:1.28!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-table-wrapper{
  flex:1 1 auto!important;
  min-height:0!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-grid.two .ficha-card{
  min-height:230px!important;
}
@media (max-width:1280px){
  body.is-authenticated:not(.report-print-body) #module-ficha .ficha-alumno > .ficha-grid:not(.ficha-kpi-grid):not(.two){
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  body.is-authenticated:not(.report-print-body) #module-ficha .ficha-grid.two{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media (max-width:760px){
  body.is-authenticated:not(.report-print-body) #module-ficha .ficha-alumno > .ficha-grid:not(.ficha-kpi-grid):not(.two),
  body.is-authenticated:not(.report-print-body) #module-ficha .ficha-grid.two{
    grid-template-columns:1fr!important;
  }
  body.is-authenticated:not(.report-print-body) #module-ficha .ficha-grid.two .ficha-card{
    min-height:0!important;
  }
}

/* Ficha Integral: tablero horizontal limpio 2026-08-21. */
body.is-authenticated:not(.report-print-body) #module-ficha{
  width:100%!important;
  max-width:none!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .course-context{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:end!important;
  gap:12px!important;
  padding:12px!important;
  margin:0 0 14px!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .course-context-main{
  display:grid!important;
  grid-template-columns:minmax(240px,320px) minmax(210px,260px) minmax(0,1fr)!important;
  align-items:end!important;
  gap:10px!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .course-context-main label{
  min-width:0!important;
  margin:0!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .course-context-main select{
  width:100%!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .course-context-meta{
  min-height:40px!important;
  padding:8px 10px!important;
  border:1px solid rgba(20,121,246,.16)!important;
  border-radius:8px!important;
  background:#f8fbff!important;
  color:#27466b!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .course-context-actions{
  display:flex!important;
  justify-content:flex-end!important;
  align-items:center!important;
  gap:8px!important;
  flex-wrap:wrap!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-alumno{
  width:100%!important;
  max-width:none!important;
  gap:14px!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-header{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:16px!important;
  min-height:96px!important;
  padding:16px 18px!important;
  border-radius:8px!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-header h2{
  margin:4px 0 6px!important;
  font-size:1.35rem!important;
  line-height:1.15!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-header p{
  margin:0!important;
  line-height:1.35!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-kpi-grid{
  display:block!important;
  width:100%!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-kpi-grid .layout-insight-wrap{
  width:100%!important;
  margin:0!important;
  padding:12px!important;
  border-radius:8px!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-kpi-grid .layout-insight-head{
  margin:0 0 8px!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-kpi-grid .layout-insight-head h3{
  font-size:.92rem!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-kpi-grid .layout-insight-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:10px!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-kpi-grid .layout-insight{
  display:grid!important;
  grid-template-columns:38px minmax(0,1fr)!important;
  align-items:center!important;
  gap:10px!important;
  min-height:66px!important;
  padding:10px 12px!important;
  border-radius:8px!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-kpi-grid .layout-insight i{
  width:34px!important;
  height:34px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:8px!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-kpi-grid .layout-insight span,
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-kpi-grid .layout-insight small{
  display:block!important;
  white-space:normal!important;
  line-height:1.2!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-kpi-grid .layout-insight b{
  display:block!important;
  font-size:1.08rem!important;
  line-height:1.1!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-alumno > .ficha-grid:not(.ficha-kpi-grid):not(.two){
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-grid.two{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-card{
  border-radius:8px!important;
  border-color:rgba(20,121,246,.18)!important;
  box-shadow:0 10px 24px rgba(15,23,42,.08)!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-card h3{
  font-size:.94rem!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-card p{
  display:grid!important;
  grid-template-columns:max-content minmax(0,1fr)!important;
  gap:6px!important;
  align-items:start!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-card p strong{
  color:#153a63!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-alumno > .ficha-card{
  width:100%!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-alumno > .ficha-card .ficha-table-wrapper table{
  min-width:1040px!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-grid.two .ficha-table-wrapper table{
  min-width:520px!important;
}
@media (max-width:1280px){
  body.is-authenticated:not(.report-print-body) #module-ficha .course-context,
  body.is-authenticated:not(.report-print-body) #module-ficha .ficha-header{
    grid-template-columns:1fr!important;
  }
  body.is-authenticated:not(.report-print-body) #module-ficha .course-context-main{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  body.is-authenticated:not(.report-print-body) #module-ficha .course-context-meta{
    grid-column:1 / -1!important;
  }
  body.is-authenticated:not(.report-print-body) #module-ficha .ficha-kpi-grid .layout-insight-grid,
  body.is-authenticated:not(.report-print-body) #module-ficha .ficha-alumno > .ficha-grid:not(.ficha-kpi-grid):not(.two),
  body.is-authenticated:not(.report-print-body) #module-ficha .ficha-grid.two{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media (max-width:760px){
  body.is-authenticated:not(.report-print-body) #module-ficha .course-context-main,
  body.is-authenticated:not(.report-print-body) #module-ficha .ficha-kpi-grid .layout-insight-grid,
  body.is-authenticated:not(.report-print-body) #module-ficha .ficha-alumno > .ficha-grid:not(.ficha-kpi-grid):not(.two),
  body.is-authenticated:not(.report-print-body) #module-ficha .ficha-grid.two{
    grid-template-columns:1fr!important;
  }
  body.is-authenticated:not(.report-print-body) #module-ficha .course-context-actions{
    justify-content:stretch!important;
  }
  body.is-authenticated:not(.report-print-body) #module-ficha .course-context-actions button{
    flex:1 1 180px!important;
  }
  body.is-authenticated:not(.report-print-body) #module-ficha .ficha-card p{
    grid-template-columns:1fr!important;
  }
}

/* Ficha Integral: resumen profesional compacto en 4 tarjetas 2026-08-21. */
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-summary-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:10px!important;
  align-items:stretch!important;
  margin:0!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-summary-card{
  min-height:0!important;
  padding:12px!important;
  background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%)!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-summary-card h3,
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-grades-card h3{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  min-height:0!important;
  margin:0 0 8px!important;
  padding:0 0 8px!important;
  border-bottom:1px solid rgba(20,121,246,.14)!important;
  color:#0b3d80!important;
  font-size:.9rem!important;
  font-weight:850!important;
  line-height:1.15!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-svg-icon{
  flex:0 0 22px!important;
  width:22px!important;
  height:22px!important;
  padding:4px!important;
  border-radius:7px!important;
  fill:#0f55aa!important;
  background:#eaf3ff!important;
  box-shadow:inset 0 0 0 1px rgba(20,121,246,.12)!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-summary-card p{
  display:grid!important;
  grid-template-columns:max-content minmax(0,1fr)!important;
  gap:4px!important;
  align-items:start!important;
  margin:0!important;
  padding:4px 0!important;
  border-bottom:1px dashed rgba(15,61,128,.10)!important;
  color:#233d5f!important;
  font-size:.78rem!important;
  line-height:1.22!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-summary-card p:last-child{
  border-bottom:0!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-summary-card p b{
  color:#123b68!important;
  font-weight:850!important;
  white-space:nowrap!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-summary-card p span{
  min-width:0!important;
  overflow-wrap:anywhere!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-summary-card p.is-important{
  margin:3px 0!important;
  padding:6px 7px!important;
  border:1px solid rgba(20,121,246,.18)!important;
  border-radius:7px!important;
  background:#edf6ff!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-summary-card p.is-important b,
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-summary-card p.is-important span{
  color:#073b83!important;
  font-weight:850!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-grades-card{
  width:100%!important;
  margin:0!important;
  padding:12px!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-grades-card .ficha-table-wrapper{
  width:100%!important;
  max-width:100%!important;
  overflow-x:auto!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-grades-card table{
  width:100%!important;
  min-width:1040px!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-kpi-grid{
  margin:0!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-kpi-grid .layout-insight-wrap{
  padding:10px!important;
}
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-header{
  min-height:84px!important;
  padding:14px 16px!important;
}
@media (max-width:1280px){
  body.is-authenticated:not(.report-print-body) #module-ficha .ficha-summary-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media (max-width:760px){
  body.is-authenticated:not(.report-print-body) #module-ficha .ficha-summary-grid{
    grid-template-columns:1fr!important;
  }
  body.is-authenticated:not(.report-print-body) #module-ficha .ficha-summary-card p{
    grid-template-columns:1fr!important;
    gap:2px!important;
  }
}

/* Ficha Integral: evitar tarjetas KPI duplicadas; destacados quedan dentro de las 4 tarjetas. */
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-kpi-grid{
  display:none!important;
}

/* Informes academicos: hoja Carta real en visualizacion, impresion y PDF 2026-08-21. */
body.is-authenticated:not(.report-print-body) #module-informes .academic-grade-report:not(.report-secondary-view),
body.is-authenticated:not(.report-print-body) #module-informes .report-paper:not(.report-secondary-view) {
  width: min(100%, 216mm) !important;
  max-width: 216mm !important;
  min-height: 279mm !important;
  margin: 12px auto !important;
  box-sizing: border-box !important;
}

body.is-authenticated:not(.report-print-body) #module-informes .academic-grade-report:not(.report-secondary-view) {
  padding: 8px !important;
  overflow: hidden !important;
}

body.is-authenticated:not(.report-print-body) #module-informes .academic-report-table-scroll,
body.is-authenticated:not(.report-print-body) #module-informes .academic-grade-table {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  overflow: visible !important;
}

body.report-print-body:not(.report-landscape-document) #module-informes,
body.report-print-body:not(.report-landscape-document) .report-print-root,
.report-pdf-render:not(.report-landscape-document) #module-informes,
.report-pdf-render:not(.report-landscape-document) .report-print-root {
  width: 216mm !important;
  max-width: 216mm !important;
  margin: 0 auto !important;
  padding: 0 !important;
  background: #fff !important;
  overflow: visible !important;
}

body.report-print-body:not(.report-landscape-document) #module-informes :is(.report-print-page,.academic-report-print-page,.report-one-page-wrapper),
.report-pdf-render:not(.report-landscape-document) #module-informes :is(.report-print-page,.academic-report-print-page,.report-one-page-wrapper) {
  width: 216mm !important;
  max-width: 216mm !important;
  height: 279mm !important;
  min-height: 279mm !important;
  max-height: 279mm !important;
  margin: 0 auto !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: #fff !important;
  overflow: hidden !important;
  break-after: page !important;
  page-break-after: always !important;
}

body.report-print-body:not(.report-landscape-document) #module-informes .report-print-page:last-child,
.report-pdf-render:not(.report-landscape-document) #module-informes .report-print-page:last-child {
  break-after: auto !important;
  page-break-after: auto !important;
}

body.report-print-body:not(.report-landscape-document) #module-informes .report-print-page > :is(.academic-grade-report,.report-paper,.report-one-page-letter,.report-fit-content),
.report-pdf-render:not(.report-landscape-document) #module-informes .report-print-page > :is(.academic-grade-report,.report-paper,.report-one-page-letter,.report-fit-content) {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  box-shadow: none !important;
  transform-origin: top left !important;
}

@media print {
  body.report-print-body:not(.report-landscape-document) #module-informes,
  body.report-print-body:not(.report-landscape-document) .report-print-root {
    width: 216mm !important;
    max-width: 216mm !important;
    margin: 0 auto !important;
  }
}
/* Ficha Integral: bloqueo definitivo de SVG gigantes 2026-08-21. */
body.is-authenticated #module-ficha .ficha-card h3 svg,
body.is-authenticated #module-ficha .ficha-svg-icon,
body.is-authenticated #module-ficha svg.ficha-svg-icon,
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-card h3 svg,
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-svg-icon,
body.is-authenticated:not(.report-print-body) #module-ficha svg.ficha-svg-icon {
  display: inline-block !important;
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  max-width: 18px !important;
  min-height: 18px !important;
  max-height: 18px !important;
  flex: 0 0 18px !important;
  flex-shrink: 0 !important;
  align-self: center !important;
  font-size: 18px !important;
  line-height: 18px !important;
  object-fit: contain !important;
  overflow: visible !important;
  vertical-align: -3px !important;
  fill: #075bbf !important;
}

body.is-authenticated #module-ficha .ficha-card h3 svg *,
body.is-authenticated #module-ficha .ficha-svg-icon *,
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-card h3 svg *,
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-svg-icon * {
  vector-effect: non-scaling-stroke;
}

body.is-authenticated #module-ficha .ficha-card h3,
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-card h3 {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  min-height: 22px !important;
  max-height: none !important;
  margin: 0 0 6px !important;
  line-height: 1.15 !important;
}

body.is-authenticated #module-ficha .ficha-card h3 span,
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-card h3 span {
  min-width: 0 !important;
  line-height: 1.15 !important;
}

body.is-authenticated #module-ficha .ficha-summary-grid,
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-summary-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 8px !important;
  align-items: stretch !important;
  margin: 0 !important;
}

body.is-authenticated #module-ficha .ficha-summary-card,
body.is-authenticated:not(.report-print-body) #module-ficha .ficha-summary-card {
  min-height: 0 !important;
  padding: 9px 10px !important;
}

@media (max-width: 1100px) {
  body.is-authenticated #module-ficha .ficha-summary-grid,
  body.is-authenticated:not(.report-print-body) #module-ficha .ficha-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 680px) {
  body.is-authenticated #module-ficha .ficha-summary-grid,
  body.is-authenticated:not(.report-print-body) #module-ficha .ficha-summary-grid {
    grid-template-columns: 1fr !important;
  }
}
/* Centro de Informes unificado: categorias internas compactas 2026-08-21. */
body.is-authenticated:not(.report-print-body) #module-informes .report-center-categories{
  width:100%!important;
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:8px!important;
  margin:8px 0 10px!important;
}
body.is-authenticated:not(.report-print-body) #module-informes .report-center-categories button{
  min-width:0!important;
  min-height:42px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:8px!important;
  padding:8px 10px!important;
  border:1px solid rgba(23,104,196,.22)!important;
  border-radius:8px!important;
  background:#f7fbff!important;
  color:#102a5c!important;
  font-size:.82rem!important;
  font-weight:800!important;
  line-height:1.15!important;
  cursor:pointer!important;
}
body.is-authenticated:not(.report-print-body) #module-informes .report-center-categories button i{
  width:18px!important;
  height:18px!important;
  min-width:18px!important;
  display:inline-grid!important;
  place-items:center!important;
  color:#1768c4!important;
  font-size:16px!important;
}
body.is-authenticated:not(.report-print-body) #module-informes .report-center-categories button.active{
  border-color:#1768c4!important;
  background:#1768c4!important;
  color:#fff!important;
  box-shadow:0 8px 18px rgba(23,104,196,.16)!important;
}
body.is-authenticated:not(.report-print-body) #module-informes .report-center-categories button.active i{
  color:#fff!important;
}
@media(max-width:980px){
  body.is-authenticated:not(.report-print-body) #module-informes .report-center-categories{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media(max-width:560px){
  body.is-authenticated:not(.report-print-body) #module-informes .report-center-categories{grid-template-columns:1fr!important;}
}
/* Portal del Apoderado amarillo solo lectura 2026-08-21. */
body.is-authenticated.guardian-portal-only #module-ficha .guardian-yellow-portal,
body.is-authenticated.guardian-portal-only .guardian-yellow-portal {
  --guardian-yellow: #f6c500;
  --guardian-yellow-soft: #fff7cf;
  --guardian-ink: #06233f;
  --guardian-muted: #64748b;
  --guardian-line: #dbe3ee;
  --guardian-bg: #f4f7fb;
  width: 100%;
  color: var(--guardian-ink);
  background: var(--guardian-bg);
  border: 1px solid var(--guardian-line);
  border-radius: 12px;
  padding: 14px;
  box-shadow: 0 12px 28px rgba(6, 35, 63, .08);
}

.guardian-yellow-portal *,
.guardian-yellow-portal *::before,
.guardian-yellow-portal *::after { box-sizing: border-box; }

.guardian-yellow-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  background: #ffffff;
  border: 1px solid var(--guardian-line);
  border-left: 6px solid var(--guardian-yellow);
  border-radius: 10px;
  padding: 14px 16px;
}

.guardian-yellow-hero h2 {
  margin: 0;
  font-size: clamp(1.05rem, 2vw, 1.45rem);
  line-height: 1.15;
  letter-spacing: 0;
}

.guardian-yellow-hero p,
.guardian-yellow-hero span,
.guardian-readonly-note {
  margin: 4px 0 0;
  color: var(--guardian-muted);
  font-size: .86rem;
}

.guardian-yellow-hero strong {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 88px;
  border-radius: 999px;
  padding: 8px 12px;
  background: var(--guardian-yellow-soft);
  border: 1px solid var(--guardian-yellow);
  font-size: 1.15rem;
  color: var(--guardian-ink);
}

.guardian-yellow-toolbar {
  display: grid;
  grid-template-columns: minmax(190px, 1.4fr) repeat(2, minmax(120px, .8fr));
  gap: 8px;
  margin: 10px 0;
}

.guardian-yellow-toolbar label {
  display: grid;
  gap: 4px;
  margin: 0;
  color: var(--guardian-muted);
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
}

.guardian-yellow-toolbar select {
  width: 100%;
  min-height: 34px;
  border: 1px solid var(--guardian-line);
  border-bottom: 3px solid var(--guardian-yellow);
  border-radius: 8px;
  background: #ffffff;
  color: var(--guardian-ink);
  padding: 6px 9px;
  font-size: .9rem;
}

.guardian-child-strip,
.guardian-yellow-tabs,
.guardian-main-cards,
.guardian-yellow-grid {
  display: grid;
  gap: 8px;
}

.guardian-child-strip {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  margin: 0 0 10px;
}

.guardian-child-strip button {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--guardian-line);
  border-left: 5px solid var(--guardian-yellow);
  border-radius: 9px;
  background: #ffffff;
  color: var(--guardian-ink);
  padding: 8px 10px;
  text-align: left;
  font-weight: 800;
  cursor: pointer;
}

.guardian-child-strip button.active,
.guardian-child-strip button:focus-visible {
  outline: 2px solid rgba(246, 197, 0, .45);
  background: var(--guardian-yellow-soft);
}

.guardian-yellow-tabs {
  grid-template-columns: repeat(auto-fit, minmax(128px, 1fr));
  margin: 8px 0 10px;
}

.guardian-yellow-tabs a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  border: 1px solid var(--guardian-line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--guardian-ink);
  padding: 7px 8px;
  font-size: .82rem;
  font-weight: 800;
  text-decoration: none;
}

.guardian-yellow-tabs a:hover,
.guardian-yellow-tabs a:focus-visible {
  border-color: var(--guardian-yellow);
  background: var(--guardian-yellow-soft);
}

.guardian-main-cards {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 10px;
}

.guardian-main-cards > article,
.guardian-yellow-card {
  background: #ffffff;
  border: 1px solid var(--guardian-line);
  border-top: 4px solid var(--guardian-yellow);
  border-radius: 10px;
  padding: 10px;
  min-width: 0;
  overflow: hidden;
}

.guardian-main-cards h3,
.guardian-yellow-title h3 {
  margin: 0;
  font-size: .86rem;
  line-height: 1.2;
  color: var(--guardian-ink);
  letter-spacing: 0;
}

.guardian-main-cards strong {
  display: block;
  margin-top: 4px;
  font-size: 1.38rem;
  line-height: 1.1;
  color: var(--guardian-ink);
}

.guardian-main-cards span,
.guardian-main-cards small,
.guardian-yellow-list span,
.guardian-annotation-list span {
  display: block;
  color: var(--guardian-muted);
  font-size: .78rem;
  line-height: 1.25;
}

.guardian-yellow-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
}

.guardian-yellow-card.wide { grid-column: 1 / -1; }

.guardian-yellow-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--guardian-line);
}

.guardian-yellow-title span {
  flex-shrink: 0;
  border-radius: 999px;
  background: var(--guardian-yellow-soft);
  border: 1px solid var(--guardian-yellow);
  color: var(--guardian-ink);
  padding: 3px 8px;
  font-size: .76rem;
  font-weight: 900;
}

.guardian-yellow-list,
.guardian-annotation-list,
.guardian-data-list {
  display: grid;
  gap: 6px;
}

.guardian-yellow-list article,
.guardian-annotation-list article {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr);
  gap: 8px;
  align-items: start;
  border: 1px solid #edf1f7;
  border-radius: 8px;
  padding: 7px;
  background: #fbfdff;
}

.guardian-yellow-list time,
.guardian-annotation-list time {
  display: inline-flex;
  justify-content: center;
  border-radius: 7px;
  background: var(--guardian-yellow-soft);
  color: var(--guardian-ink);
  padding: 4px 5px;
  font-size: .75rem;
  font-weight: 900;
}

.guardian-table-wrap {
  width: 100%;
  overflow-x: auto;
  border: 1px solid var(--guardian-line);
  border-radius: 8px;
}

.guardian-table-wrap table {
  width: 100%;
  min-width: 520px;
  border-collapse: collapse;
  font-size: .82rem;
}

.guardian-table-wrap th {
  background: #08294a;
  color: #ffffff;
  padding: 7px;
  text-align: left;
}

.guardian-table-wrap td {
  border-top: 1px solid #edf1f7;
  padding: 7px;
  vertical-align: top;
}

.guardian-table-wrap td:last-child,
.guardian-table-wrap th:last-child { text-align: right; }

.guardian-attendance-tiles {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
}

.guardian-attendance-tiles article {
  border: 1px solid #edf1f7;
  border-radius: 8px;
  background: #fbfdff;
  padding: 8px;
}

.guardian-attendance-tiles b {
  display: block;
  font-size: 1.18rem;
  line-height: 1;
}

.guardian-attendance-tiles span,
.guardian-data-list dt {
  color: var(--guardian-muted);
  font-size: .74rem;
  font-weight: 800;
  text-transform: uppercase;
}

.guardian-data-list {
  margin: 0;
}

.guardian-data-list div {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  gap: 8px;
  border-bottom: 1px solid #edf1f7;
  padding: 6px 0;
}

.guardian-data-list dd,
.guardian-data-list dt {
  margin: 0;
  min-width: 0;
}

.guardian-schedule-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 7px;
}

.guardian-schedule-grid article {
  border: 1px solid #edf1f7;
  border-radius: 8px;
  padding: 8px;
  background: #fbfdff;
}

.guardian-schedule-grid h4 {
  margin: 0 0 5px;
  font-size: .82rem;
  color: var(--guardian-ink);
}

.guardian-empty {
  margin: 0;
  border: 1px dashed var(--guardian-line);
  border-radius: 8px;
  color: var(--guardian-muted);
  background: #fbfdff;
  padding: 10px;
  font-size: .86rem;
}

body.is-authenticated.guardian-portal-only .guardian-yellow-portal .guardian-quick-actions,
body.is-authenticated.guardian-portal-only .guardian-yellow-portal [onclick*="print"],
body.is-authenticated.guardian-portal-only .guardian-yellow-portal [onclick*="Print"],
body.is-authenticated.guardian-portal-only .guardian-yellow-portal [onclick*="export"],
body.is-authenticated.guardian-portal-only .guardian-yellow-portal [onclick*="Export"],
body.is-authenticated.guardian-portal-only .guardian-yellow-portal [onclick*="edit"],
body.is-authenticated.guardian-portal-only .guardian-yellow-portal [onclick*="delete"],
body.is-authenticated.guardian-portal-only .guardian-yellow-portal [onclick*="new"],
body.is-authenticated.guardian-portal-only .guardian-yellow-portal [onclick*="config"],
body.is-authenticated.guardian-portal-only .guardian-yellow-portal [aria-label*="Imprimir"],
body.is-authenticated.guardian-portal-only .guardian-yellow-portal [aria-label*="PDF"],
body.is-authenticated.guardian-portal-only .guardian-yellow-portal [aria-label*="Word"],
body.is-authenticated.guardian-portal-only .guardian-yellow-portal [aria-label*="Excel"],
body.is-authenticated.guardian-portal-only .guardian-yellow-portal [aria-label*="Editar"],
body.is-authenticated.guardian-portal-only .guardian-yellow-portal [aria-label*="Eliminar"],
body.is-authenticated.guardian-portal-only .guardian-yellow-portal [aria-label*="Agregar"],
body.is-authenticated.guardian-portal-only .guardian-yellow-portal [aria-label*="ConfiguraciÃ³n"] {
  display: none !important;
}

@media (max-width: 980px) {
  .guardian-yellow-toolbar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .guardian-yellow-toolbar label:first-child { grid-column: 1 / -1; }
  .guardian-main-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .guardian-yellow-grid { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  body.is-authenticated.guardian-portal-only #module-ficha .guardian-yellow-portal,
  body.is-authenticated.guardian-portal-only .guardian-yellow-portal { padding: 10px; }
  .guardian-yellow-hero { grid-template-columns: 1fr; }
  .guardian-yellow-hero strong { justify-content: flex-start; width: fit-content; }
  .guardian-yellow-toolbar,
  .guardian-main-cards,
  .guardian-yellow-tabs,
  .guardian-child-strip { grid-template-columns: 1fr; }
  .guardian-data-list div { grid-template-columns: 1fr; gap: 2px; }
  .guardian-yellow-list article,
  .guardian-annotation-list article { grid-template-columns: 46px minmax(0, 1fr); }
}
/* Portal del Apoderado paleta invertida 2026-08-21. */
body.is-authenticated.guardian-portal-only #module-ficha .guardian-yellow-portal,
body.is-authenticated.guardian-portal-only .guardian-yellow-portal {
  --guardian-yellow: #f6c500;
  --guardian-yellow-soft: #fff2a8;
  --guardian-blue: #06233f;
  --guardian-blue-soft: #0b3158;
  --guardian-ink: #06233f;
  --guardian-muted: #5e6b7c;
  --guardian-line: #d8e1ec;
  --guardian-bg: #f5f7fb;
  background: var(--guardian-bg);
  border-color: #d8e1ec;
  box-shadow: 0 12px 28px rgba(6, 35, 63, .08);
}

body.is-authenticated.guardian-portal-only .guardian-yellow-hero {
  background: var(--guardian-yellow);
  border-color: #e2b600;
  border-left-color: var(--guardian-blue);
  color: var(--guardian-blue);
}

body.is-authenticated.guardian-portal-only .guardian-yellow-hero h2,
body.is-authenticated.guardian-portal-only .guardian-yellow-hero p,
body.is-authenticated.guardian-portal-only .guardian-yellow-hero span {
  color: var(--guardian-blue);
}

body.is-authenticated.guardian-portal-only .guardian-yellow-hero strong {
  background: var(--guardian-blue);
  border-color: var(--guardian-blue);
  color: #ffffff;
}

body.is-authenticated.guardian-portal-only .guardian-yellow-toolbar select {
  border-color: var(--guardian-line);
  border-bottom-color: var(--guardian-blue);
  background: #ffffff;
  color: var(--guardian-blue);
}

body.is-authenticated.guardian-portal-only .guardian-child-strip button {
  border-left-color: var(--guardian-blue);
  color: var(--guardian-blue);
}

body.is-authenticated.guardian-portal-only .guardian-child-strip button.active,
body.is-authenticated.guardian-portal-only .guardian-child-strip button:focus-visible {
  outline-color: rgba(6, 35, 63, .3);
  background: var(--guardian-yellow);
  border-color: #e2b600;
  border-left-color: var(--guardian-blue);
  color: var(--guardian-blue);
}

body.is-authenticated.guardian-portal-only .guardian-yellow-tabs a:hover,
body.is-authenticated.guardian-portal-only .guardian-yellow-tabs a:focus-visible {
  border-color: var(--guardian-blue);
  background: var(--guardian-yellow);
  color: var(--guardian-blue);
}

body.is-authenticated.guardian-portal-only .guardian-main-cards > article,
body.is-authenticated.guardian-portal-only .guardian-yellow-card {
  border-top-color: var(--guardian-yellow);
  box-shadow: 0 8px 20px rgba(6, 35, 63, .06);
}

body.is-authenticated.guardian-portal-only .guardian-main-cards > article:nth-child(odd),
body.is-authenticated.guardian-portal-only .guardian-yellow-card:nth-child(odd) {
  border-top-color: var(--guardian-blue);
}

body.is-authenticated.guardian-portal-only .guardian-main-cards strong {
  color: var(--guardian-blue);
}

body.is-authenticated.guardian-portal-only .guardian-yellow-title {
  border-bottom-color: #e7edf5;
}

body.is-authenticated.guardian-portal-only .guardian-yellow-title h3 {
  color: var(--guardian-blue);
}

body.is-authenticated.guardian-portal-only .guardian-yellow-title span,
body.is-authenticated.guardian-portal-only .guardian-yellow-list time,
body.is-authenticated.guardian-portal-only .guardian-annotation-list time {
  background: var(--guardian-blue);
  border-color: var(--guardian-blue);
  color: #ffffff;
}

body.is-authenticated.guardian-portal-only .guardian-table-wrap th {
  background: var(--guardian-yellow);
  color: var(--guardian-blue);
}

body.is-authenticated.guardian-portal-only .guardian-attendance-tiles article,
body.is-authenticated.guardian-portal-only .guardian-schedule-grid article,
body.is-authenticated.guardian-portal-only .guardian-yellow-list article,
body.is-authenticated.guardian-portal-only .guardian-annotation-list article {
  background: #ffffff;
  border-color: #e5ebf3;
}

body.is-authenticated.guardian-portal-only .guardian-attendance-tiles b {
  color: var(--guardian-blue);
}

body.is-authenticated.guardian-portal-only .guardian-empty {
  background: #ffffff;
  border-color: #d8e1ec;
}
/* Portal del Apoderado referencia visual estudiante seleccionado 2026-08-22. */
@media (min-width: 981px) {
  body.is-authenticated.guardian-portal-only .guardian-yellow-portal {
    display: grid;
    grid-template-columns: 232px minmax(0, 1fr);
    grid-template-areas:
      "hero hero"
      "nav toolbar"
      "nav selected"
      "nav children"
      "nav cards"
      "nav content";
    column-gap: 16px;
    row-gap: 10px;
    align-items: start;
  }

  body.is-authenticated.guardian-portal-only .guardian-yellow-hero { grid-area: hero; }
  body.is-authenticated.guardian-portal-only .guardian-yellow-toolbar { grid-area: toolbar; margin: 0; }
  body.is-authenticated.guardian-portal-only .guardian-selected-student { grid-area: selected; }
  body.is-authenticated.guardian-portal-only .guardian-child-strip { grid-area: children; }
  body.is-authenticated.guardian-portal-only .guardian-yellow-tabs { grid-area: nav; }
  body.is-authenticated.guardian-portal-only .guardian-main-cards { grid-area: cards; }
  body.is-authenticated.guardian-portal-only .guardian-yellow-grid { grid-area: content; }

  body.is-authenticated.guardian-portal-only .guardian-yellow-tabs {
    position: sticky;
    top: 84px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 0;
    padding: 10px;
    border: 1px solid var(--guardian-line);
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 10px 24px rgba(6, 35, 63, .07);
  }

  body.is-authenticated.guardian-portal-only .guardian-yellow-tabs a {
    justify-content: flex-start;
    min-height: 38px;
    border-color: transparent;
    padding: 8px 10px;
  }

  body.is-authenticated.guardian-portal-only .guardian-yellow-tabs a:first-child {
    background: var(--guardian-yellow);
    color: var(--guardian-blue);
    border-color: #e2b600;
  }
}

body.is-authenticated.guardian-portal-only .guardian-selected-student {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 52px;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border: 1px solid #e2b600;
  border-left: 6px solid var(--guardian-yellow);
  border-radius: 12px;
  background: linear-gradient(90deg, rgba(246, 197, 0, .2), #ffffff 58%);
  box-shadow: 0 10px 24px rgba(6, 35, 63, .07);
}

body.is-authenticated.guardian-portal-only .guardian-selected-student span {
  display: block;
  color: var(--guardian-muted);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}

body.is-authenticated.guardian-portal-only .guardian-selected-student h3 {
  margin: 3px 0 2px;
  color: var(--guardian-blue);
  font-size: clamp(1.18rem, 2vw, 1.7rem);
  line-height: 1.12;
  letter-spacing: 0;
}

body.is-authenticated.guardian-portal-only .guardian-selected-student p {
  margin: 0;
  color: var(--guardian-blue-soft);
  font-size: .92rem;
  font-weight: 750;
}

body.is-authenticated.guardian-portal-only .guardian-selected-student > i {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border-radius: 999px;
  background: var(--guardian-blue);
  color: #ffffff;
  font-size: 1.35rem;
}

body.is-authenticated.guardian-portal-only .guardian-child-strip button {
  min-height: 66px;
  display: grid;
  align-content: center;
  gap: 2px;
}

body.is-authenticated.guardian-portal-only .guardian-child-strip button small {
  color: var(--guardian-muted);
  font-weight: 700;
}

body.is-authenticated.guardian-portal-only .guardian-child-strip button.active small {
  color: var(--guardian-blue);
}

@media (max-width: 980px) {
  body.is-authenticated.guardian-portal-only .guardian-selected-student {
    margin-bottom: 10px;
  }
}

@media (max-width: 640px) {
  body.is-authenticated.guardian-portal-only .guardian-selected-student {
    grid-template-columns: 1fr;
    padding: 12px;
  }
  body.is-authenticated.guardian-portal-only .guardian-selected-student > i {
    display: none;
  }
}
/* Portal del Apoderado sin sidebar global 2026-08-22. */
body.is-authenticated.guardian-portal-only {
  overflow-x: hidden;
  background: #f5f7fb !important;
}

body.is-authenticated.guardian-portal-only .topbar,
body.is-authenticated.guardian-portal-only #mainNav,
body.is-authenticated.guardian-portal-only #mobileMenuToggle,
body.is-authenticated.guardian-portal-only #activeModuleCard,
body.is-authenticated.guardian-portal-only .sidebar-resize-handle,
body.is-authenticated.guardian-portal-only .nav-scroll {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

body.is-authenticated.guardian-portal-only #appMain {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin-left: 0 !important;
  padding: clamp(10px, 2vw, 22px) !important;
  padding-top: clamp(10px, 2vw, 22px) !important;
  background: #f5f7fb !important;
}

body.is-authenticated.guardian-portal-only #module-ficha {
  width: 100% !important;
  max-width: min(100%, 1500px) !important;
  margin: 0 auto !important;
  padding: 0 !important;
}

body.is-authenticated.guardian-portal-only #module-ficha > * {
  width: 100% !important;
  max-width: 100% !important;
}

body.is-authenticated.guardian-portal-only .guardian-yellow-portal {
  width: 100% !important;
  max-width: 100% !important;
}

@media (max-width: 980px) {
  body.is-authenticated.guardian-portal-only #appMain {
    padding: 8px !important;
  }
  body.is-authenticated.guardian-portal-only .guardian-yellow-portal {
    border-radius: 10px;
  }
}
/* Portal del Apoderado calificaciones oficiales y menu fijo 2026-08-22. */
body.is-authenticated.guardian-portal-only .guardian-yellow-tabs {
  z-index: 30;
}

@media (min-width: 981px) {
  body.is-authenticated.guardian-portal-only .guardian-yellow-tabs {
    top: 10px !important;
    max-height: calc(100vh - 20px);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
}

@media (max-width: 980px) {
  body.is-authenticated.guardian-portal-only .guardian-yellow-tabs {
    position: sticky;
    top: 0;
    z-index: 30;
    padding: 8px;
    border: 1px solid var(--guardian-line);
    border-radius: 10px;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 8px 20px rgba(6, 35, 63, .08);
  }
}

body.is-authenticated.guardian-portal-only .guardian-official-grades {
  border-top-color: var(--guardian-yellow) !important;
  background: #ffffff;
}

body.is-authenticated.guardian-portal-only .guardian-official-report-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  margin: 0 0 10px;
  padding: 12px 14px;
  border: 1px solid #e2b600;
  border-left: 6px solid var(--guardian-yellow);
  border-radius: 10px;
  background: linear-gradient(90deg, rgba(246, 197, 0, .24), #ffffff 62%);
}

body.is-authenticated.guardian-portal-only .guardian-official-report-head span {
  display: block;
  color: var(--guardian-muted);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}

body.is-authenticated.guardian-portal-only .guardian-official-report-head h4 {
  margin: 3px 0 2px;
  color: var(--guardian-blue);
  font-size: 1.08rem;
  line-height: 1.14;
  letter-spacing: 0;
}

body.is-authenticated.guardian-portal-only .guardian-official-report-head p {
  margin: 0;
  color: var(--guardian-blue-soft);
  font-size: .84rem;
  font-weight: 750;
}

body.is-authenticated.guardian-portal-only .guardian-official-report-head strong {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 86px;
  min-height: 42px;
  border-radius: 999px;
  background: var(--guardian-yellow);
  border: 1px solid #e2b600;
  color: var(--guardian-blue);
  font-size: .95rem;
  font-weight: 950;
  white-space: nowrap;
}

body.is-authenticated.guardian-portal-only .guardian-official-table {
  border-color: #d9e2ef;
  background: #ffffff;
}

body.is-authenticated.guardian-portal-only .guardian-official-table table {
  min-width: 720px;
  font-size: .82rem;
}

body.is-authenticated.guardian-portal-only .guardian-official-table th {
  background: var(--guardian-yellow) !important;
  color: var(--guardian-blue) !important;
  border-right: 1px solid rgba(6, 35, 63, .14);
  font-weight: 950;
  text-transform: uppercase;
}

body.is-authenticated.guardian-portal-only .guardian-official-table td {
  background: #ffffff;
  border-top: 1px solid #e8eef6;
  color: var(--guardian-blue);
}

body.is-authenticated.guardian-portal-only .guardian-official-table tr:nth-child(even) td {
  background: #fffdf2;
}

body.is-authenticated.guardian-portal-only .guardian-official-table .academic-grade-mark,
body.is-authenticated.guardian-portal-only .guardian-official-table .report-grade-badge {
  min-width: 30px;
  height: 26px;
  border-radius: 6px;
  border: 1px solid #d8e1ec;
  background: #ffffff;
  color: var(--guardian-blue);
  font-weight: 900;
}

body.is-authenticated.guardian-portal-only .guardian-official-table .academic-grade-mark:not(.is-empty),
body.is-authenticated.guardian-portal-only .guardian-official-table .report-grade-badge:not(.empty) {
  border-color: #e2b600;
  background: var(--guardian-yellow-soft);
}

body.is-authenticated.guardian-portal-only .guardian-official-table td:last-child {
  color: var(--guardian-blue);
  font-weight: 950;
}

@media (max-width: 640px) {
  body.is-authenticated.guardian-portal-only .guardian-official-report-head {
    grid-template-columns: 1fr;
  }
  body.is-authenticated.guardian-portal-only .guardian-official-report-head strong {
    justify-content: flex-start;
    width: fit-content;
    padding-inline: 12px;
  }
}
/* Login moderno Nombre del Colegio 2026-08-22. */
body.is-login:not(.is-authenticated) {
  --login-blue: #06275a;
  --login-blue-deep: #021a3f;
  --login-yellow: #ffc400;
  --login-yellow-dark: #eba900;
  --login-white: #ffffff;
  --login-muted: #65748a;
  min-height: 100vh;
  overflow-x: hidden;
  background: #061f49 !important;
}

body.is-login:not(.is-authenticated) .modern-plumero-login,
body.visual-modern.is-login:not(.is-authenticated) .modern-plumero-login,
body.visual-classic.is-login:not(.is-authenticated) .modern-plumero-login {
  position: relative !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1.1fr) minmax(360px, .9fr) !important;
  align-items: center !important;
  gap: clamp(28px, 5vw, 76px) !important;
  width: 100% !important;
  min-height: 100vh !important;
  padding: clamp(22px, 4vw, 70px) clamp(18px, 5vw, 96px) !important;
  overflow: hidden !important;
  background:
    linear-gradient(90deg, rgba(2, 26, 63, .95) 0%, rgba(6, 39, 90, .82) 38%, rgba(6, 39, 90, .25) 100%),
    url('../assets/fondo-aerea-colegio-login.jpg') center / cover no-repeat !important;
  isolation: isolate;
}

body.is-login:not(.is-authenticated) .modern-plumero-login::before {
  content: "" !important;
  position: absolute !important;
  inset: auto -16vw -38vh 36vw !important;
  width: 74vw !important;
  height: 92vh !important;
  border-radius: 50% 0 0 0 !important;
  background: linear-gradient(135deg, rgba(255, 196, 0, .98), rgba(255, 196, 0, .7)) !important;
  transform: rotate(-8deg) !important;
  z-index: -1 !important;
}

body.is-login:not(.is-authenticated) .modern-plumero-login::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background: radial-gradient(circle at 76% 14%, rgba(255,255,255,.42), transparent 24%), linear-gradient(180deg, rgba(255,255,255,0), rgba(2,26,63,.16)) !important;
  z-index: -2 !important;
}

body.is-login:not(.is-authenticated) .login-photo-brand {
  display: grid !important;
  align-items: center !important;
  min-width: 0 !important;
  color: var(--login-white) !important;
}

body.is-login:not(.is-authenticated) .login-photo-content {
  width: min(620px, 100%) !important;
  text-align: center !important;
  margin-inline: auto !important;
}

body.is-login:not(.is-authenticated) .login-photo-logo {
  width: clamp(94px, 9vw, 142px) !important;
  height: clamp(112px, 11vw, 166px) !important;
  object-fit: contain !important;
  filter: drop-shadow(0 18px 30px rgba(0,0,0,.28)) !important;
  margin-bottom: clamp(16px, 2vw, 24px) !important;
}

body.is-login:not(.is-authenticated) .login-photo-content > span {
  display: block !important;
  color: var(--login-yellow) !important;
  font-size: clamp(1rem, 1.7vw, 1.55rem) !important;
  font-weight: 950 !important;
  letter-spacing: .32em !important;
  text-transform: uppercase !important;
}

body.is-login:not(.is-authenticated) .login-photo-content > strong {
  display: block !important;
  margin-top: 4px !important;
  color: #ffffff !important;
  font-size: clamp(3.4rem, 7.4vw, 6.3rem) !important;
  line-height: .94 !important;
  font-weight: 1000 !important;
  letter-spacing: .02em !important;
  text-transform: uppercase !important;
  text-shadow: 0 18px 34px rgba(0,0,0,.32) !important;
}

body.is-login:not(.is-authenticated) .login-photo-content > i {
  display: block !important;
  width: min(180px, 36vw) !important;
  height: 6px !important;
  margin: clamp(18px, 2vw, 26px) auto !important;
  border-radius: 999px !important;
  background: var(--login-yellow) !important;
  box-shadow: 0 0 0 1px rgba(255,255,255,.15) !important;
}

body.is-login:not(.is-authenticated) .login-photo-content p {
  margin: 0 auto !important;
  max-width: 420px !important;
  color: #ffffff !important;
  font-size: clamp(1.25rem, 2vw, 1.85rem) !important;
  line-height: 1.18 !important;
  font-weight: 750 !important;
}

body.is-login:not(.is-authenticated) .login-photo-content p b { color: var(--login-yellow) !important; }

body.is-login:not(.is-authenticated) .login-modern-values {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 16px !important;
  margin-top: clamp(42px, 6vw, 88px) !important;
}

body.is-login:not(.is-authenticated) .login-modern-values span {
  display: grid !important;
  gap: 10px !important;
  justify-items: center !important;
  color: #ffffff !important;
  font-size: .9rem !important;
  font-weight: 850 !important;
}

body.is-login:not(.is-authenticated) .login-modern-values i {
  display: grid !important;
  place-items: center !important;
  width: 46px !important;
  height: 46px !important;
  color: var(--login-yellow) !important;
  font-size: 1.65rem !important;
}

body.is-login:not(.is-authenticated) .modern-login-card,
body.visual-modern.is-login:not(.is-authenticated) .modern-login-card,
body.visual-classic.is-login:not(.is-authenticated) .modern-login-card {
  justify-self: center !important;
  width: min(100%, 520px) !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: clamp(28px, 4vw, 52px) !important;
  border: 1px solid rgba(255,255,255,.78) !important;
  border-radius: 34px !important;
  background: rgba(255,255,255,.96) !important;
  color: var(--login-blue) !important;
  box-shadow: 0 28px 70px rgba(2, 26, 63, .22) !important;
  backdrop-filter: blur(14px) !important;
  display: grid !important;
  gap: 18px !important;
}

body.is-login:not(.is-authenticated) #loginLogo {
  width: 96px !important;
  height: 112px !important;
  margin: 0 auto 4px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: transparent !important;
}

body.is-login:not(.is-authenticated) #loginLogo img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
}

body.is-login:not(.is-authenticated) .login-title-block {
  display: grid !important;
  gap: 8px !important;
  text-align: center !important;
}

body.is-login:not(.is-authenticated) .login-panel h1 {
  margin: 0 !important;
  color: var(--login-blue) !important;
  font-size: clamp(2rem, 3.6vw, 3rem) !important;
  line-height: 1.05 !important;
  font-weight: 1000 !important;
  letter-spacing: 0 !important;
}

body.is-login:not(.is-authenticated) .login-panel .login-title-block p {
  margin: 0 !important;
  color: var(--login-muted) !important;
  font-size: 1.18rem !important;
}

body.is-login:not(.is-authenticated) .login-title-block::after {
  content: "" !important;
  width: 86px !important;
  height: 4px !important;
  margin: 14px auto 4px !important;
  border-radius: 999px !important;
  background: var(--login-yellow) !important;
}

body.is-login:not(.is-authenticated) .login-form,
body.visual-modern.is-login:not(.is-authenticated) .login-form,
body.visual-classic.is-login:not(.is-authenticated) .login-form {
  display: grid !important;
  gap: 16px !important;
  margin: 0 !important;
}

body.is-login:not(.is-authenticated) .login-field-group { display: grid !important; gap: 16px !important; }
body.is-login:not(.is-authenticated) .login-field-label { display: grid !important; gap: 8px !important; color: var(--login-blue) !important; font-weight: 850 !important; }
body.is-login:not(.is-authenticated) .login-label-text { position: static !important; width: auto !important; height: auto !important; clip: auto !important; overflow: visible !important; font-size: .95rem !important; }

body.is-login:not(.is-authenticated) .login-input-shell,
body.is-login.guardian-login:not(.is-authenticated) .login-input-shell {
  display: grid !important;
  grid-template-columns: 50px minmax(0, 1fr) !important;
  align-items: center !important;
  min-height: 58px !important;
  border: 1px solid #cbd5e1 !important;
  border-radius: 13px !important;
  background: #ffffff !important;
  box-shadow: 0 8px 18px rgba(6,39,90,.04) inset !important;
}

body.is-login:not(.is-authenticated) .password-field.login-input-shell { grid-template-columns: 50px minmax(0, 1fr) 46px !important; }
body.is-login:not(.is-authenticated) .login-input-shell:focus-within { border-color: var(--login-yellow-dark) !important; box-shadow: 0 0 0 4px rgba(255,196,0,.18) !important; }
body.is-login:not(.is-authenticated) .login-input-shell > i { color: var(--login-blue) !important; font-size: 1.15rem !important; justify-self: center !important; background: transparent !important; }
body.is-login:not(.is-authenticated) .login-input-shell input:not([type=checkbox]) { width: 100% !important; min-height: 56px !important; border: 0 !important; outline: 0 !important; background: transparent !important; color: var(--login-blue) !important; font-size: 1rem !important; }
body.is-login:not(.is-authenticated) .login-input-shell input::placeholder { color: #8b98ac !important; }
body.is-login:not(.is-authenticated) .password-toggle { width: 38px !important; height: 38px !important; min-width: 38px !important; border: 0 !important; background: transparent !important; color: var(--login-blue) !important; box-shadow: none !important; }

body.is-login:not(.is-authenticated) .login-options-row {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  margin: 0 !important;
}

body.is-login:not(.is-authenticated) .login-remember { display: inline-flex !important; align-items: center !important; gap: 8px !important; color: #334564 !important; font-size: .92rem !important; }
body.is-login:not(.is-authenticated) .login-remember input { width: 20px !important; height: 20px !important; accent-color: var(--login-yellow) !important; }
body.is-login:not(.is-authenticated) .login-forgot-link { color: #064da2 !important; text-decoration: none !important; font-size: .9rem !important; font-weight: 750 !important; }
body.is-login:not(.is-authenticated) .login-staff-hint { display: none !important; }

body.is-login:not(.is-authenticated) .login-submit,
body.is-login:not(.is-authenticated) .login-form .btn-primary {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 12px !important;
  min-height: 60px !important;
  margin-top: 6px !important;
  border: 0 !important;
  border-radius: 13px !important;
  background: linear-gradient(135deg, var(--login-yellow), #ffb000) !important;
  color: #111827 !important;
  font-size: 1.08rem !important;
  font-weight: 950 !important;
  box-shadow: 0 12px 22px rgba(235, 169, 0, .32) !important;
}

body.is-login:not(.is-authenticated) .login-submit:hover { transform: translateY(-1px) !important; }
body.is-login:not(.is-authenticated) .btn-guardian-access { display: none !important; }

body.is-login:not(.is-authenticated) .login-secure-separator {
  display: grid !important;
  grid-template-columns: 1fr auto auto 1fr !important;
  align-items: center !important;
  gap: 12px !important;
  color: #586880 !important;
  font-size: .9rem !important;
  font-weight: 800 !important;
  margin-top: 8px !important;
}

body.is-login:not(.is-authenticated) .login-secure-separator span { height: 1px !important; background: #d7deea !important; }
body.is-login:not(.is-authenticated) .login-secure-separator i { color: var(--login-yellow-dark) !important; }
body.is-login:not(.is-authenticated) #loginHelp { min-height: 18px !important; color: #b91c1c !important; text-align: center !important; }
body.is-login:not(.is-authenticated) .guardian-login-notice { margin: 0 !important; }

body.is-login:not(.is-authenticated) .login-modern-note {
  display: grid !important;
  grid-template-columns: 34px minmax(0, 1fr) !important;
  gap: 12px !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 14px 16px !important;
  border-radius: 13px !important;
  background: #f4f7fb !important;
  color: #334564 !important;
  font-size: .92rem !important;
  line-height: 1.28 !important;
}

body.is-login:not(.is-authenticated) .login-modern-note i { color: var(--login-blue) !important; font-size: 1.25rem !important; }

body.is-login:not(.is-authenticated) :is(.login-educadmaule-brand,.login-feature-list,.login-value-bar,.login-motto-line,.login-trust-strip,.login-platform-watermark,.demo-access-note) {
  display: none !important;
}

@media (max-width: 980px) {
  body.is-login:not(.is-authenticated) .modern-plumero-login,
  body.visual-modern.is-login:not(.is-authenticated) .modern-plumero-login,
  body.visual-classic.is-login:not(.is-authenticated) .modern-plumero-login {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
    align-content: start !important;
    padding: 20px !important;
    min-height: 100svh !important;
  }
  body.is-login:not(.is-authenticated) .modern-plumero-login::before { inset: auto -38vw -50vh 18vw !important; width: 110vw !important; height: 72vh !important; }
  body.is-login:not(.is-authenticated) .login-photo-content { text-align: left !important; width: min(100%, 520px) !important; }
  body.is-login:not(.is-authenticated) .login-photo-logo { width: 74px !important; height: 88px !important; margin-bottom: 8px !important; }
  body.is-login:not(.is-authenticated) .login-photo-content > strong { font-size: clamp(2.4rem, 11vw, 4rem) !important; }
  body.is-login:not(.is-authenticated) .login-photo-content > i { margin-inline: 0 !important; }
  body.is-login:not(.is-authenticated) .login-modern-values { display: none !important; }
  body.is-login:not(.is-authenticated) .modern-login-card { justify-self: stretch !important; width: 100% !important; border-radius: 24px !important; }
}

@media (max-width: 560px) {
  body.is-login:not(.is-authenticated) .modern-plumero-login { padding: 12px !important; }
  body.is-login:not(.is-authenticated) .login-photo-content p { font-size: 1rem !important; }
  body.is-login:not(.is-authenticated) .modern-login-card { padding: 20px !important; border-radius: 20px !important; }
  body.is-login:not(.is-authenticated) #loginLogo { width: 72px !important; height: 84px !important; }
  body.is-login:not(.is-authenticated) .login-panel h1 { font-size: 1.8rem !important; }
  body.is-login:not(.is-authenticated) .login-panel .login-title-block p { font-size: 1rem !important; }
  body.is-login:not(.is-authenticated) .login-options-row { align-items: flex-start !important; flex-direction: column !important; }
  body.is-login:not(.is-authenticated) .login-secure-separator { grid-template-columns: 1fr auto auto 1fr !important; }
}
/* Login moderno responsive compacto 2026-08-22. */
body.is-login:not(.is-authenticated) #guardianAccessBtn,
body.is-login:not(.is-authenticated) .login-form .btn-guardian-access,
body.is-login:not(.is-authenticated) .guardian-login-notice,
body.is-login:not(.is-authenticated) .login-platform-watermark,
body.is-login:not(.is-authenticated) .login-educadmaule-brand,
body.is-login:not(.is-authenticated) .login-feature-list,
body.is-login:not(.is-authenticated) .login-value-bar,
body.is-login:not(.is-authenticated) .login-motto-line,
body.is-login:not(.is-authenticated) .login-trust-strip,
body.is-login:not(.is-authenticated) .demo-access-note {
  display: none !important;
  visibility: hidden !important;
  width: 0 !important;
  height: 0 !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

body.is-login:not(.is-authenticated) #loginLogo,
body.is-login:not(.is-authenticated) .modern-login-card #loginLogo {
  display: grid !important;
  place-items: center !important;
  width: clamp(68px, 8vw, 96px) !important;
  height: clamp(78px, 9vw, 112px) !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 auto 2px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  animation: none !important;
}

body.is-login:not(.is-authenticated) #loginLogo img,
body.is-login:not(.is-authenticated) .modern-login-card #loginLogo img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
}

body.is-login:not(.is-authenticated) #loginLogo::before,
body.is-login:not(.is-authenticated) #loginLogo::after,
body.is-login:not(.is-authenticated) .login-field-label::before,
body.is-login:not(.is-authenticated) .login-field-label::after {
  content: none !important;
  display: none !important;
}

body.is-login:not(.is-authenticated) .modern-login-card,
body.visual-modern.is-login:not(.is-authenticated) .modern-login-card,
body.visual-classic.is-login:not(.is-authenticated) .modern-login-card {
  align-self: center !important;
  width: min(100%, 520px) !important;
  max-width: 520px !important;
  padding: clamp(22px, 3vw, 44px) !important;
  gap: 13px !important;
  overflow: hidden !important;
}

body.is-login:not(.is-authenticated) .login-title-block { gap: 5px !important; }
body.is-login:not(.is-authenticated) .login-title-block::after { width: 70px !important; height: 4px !important; margin: 8px auto 2px !important; }
body.is-login:not(.is-authenticated) .login-panel h1 { font-size: clamp(1.72rem, 3vw, 2.7rem) !important; line-height: 1.05 !important; color: var(--login-blue) !important; }
body.is-login:not(.is-authenticated) .login-panel .login-title-block p { font-size: clamp(.96rem, 1.5vw, 1.15rem) !important; line-height: 1.25 !important; }
body.is-login:not(.is-authenticated) .login-form { gap: 12px !important; margin: 0 !important; }
body.is-login:not(.is-authenticated) .login-field-group { gap: 11px !important; }
body.is-login:not(.is-authenticated) .login-field-label { gap: 6px !important; padding-left: 0 !important; }
body.is-login:not(.is-authenticated) .login-input-shell { min-height: 50px !important; grid-template-columns: 42px minmax(0,1fr) !important; }
body.is-login:not(.is-authenticated) .password-field.login-input-shell { grid-template-columns: 42px minmax(0,1fr) 40px !important; }
body.is-login:not(.is-authenticated) .login-input-shell input:not([type=checkbox]) { min-height: 48px !important; height: 48px !important; padding: 0 8px !important; }
body.is-login:not(.is-authenticated) .password-toggle { width: 34px !important; height: 34px !important; min-width: 34px !important; }
body.is-login:not(.is-authenticated) .login-submit { min-height: 52px !important; margin-top: 2px !important; }
body.is-login:not(.is-authenticated) .login-modern-note { padding: 12px 14px !important; font-size: .86rem !important; }
body.is-login:not(.is-authenticated) .login-secure-separator { margin-top: 4px !important; gap: 10px !important; }
body.is-login:not(.is-authenticated) #loginHelp:empty { display: none !important; min-height: 0 !important; }

@media (max-width: 980px) {
  body.is-login:not(.is-authenticated) .modern-plumero-login,
  body.visual-modern.is-login:not(.is-authenticated) .modern-plumero-login,
  body.visual-classic.is-login:not(.is-authenticated) .modern-plumero-login {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    align-content: center !important;
    justify-items: center !important;
    min-height: 100svh !important;
    height: auto !important;
    padding: 14px !important;
    overflow-y: auto !important;
    background:
      linear-gradient(180deg, rgba(2, 26, 63, .78), rgba(2, 26, 63, .72)),
      url('../assets/fondo-aerea-colegio-login.jpg') center / cover no-repeat !important;
  }
  body.is-login:not(.is-authenticated) .login-photo-brand { display: none !important; }
  body.is-login:not(.is-authenticated) .modern-plumero-login::before { display: none !important; }
}

@media (max-width: 560px) {
  body.is-login:not(.is-authenticated) .modern-plumero-login { padding: 10px !important; align-content: start !important; }
  body.is-login:not(.is-authenticated) .modern-login-card,
  body.visual-modern.is-login:not(.is-authenticated) .modern-login-card,
  body.visual-classic.is-login:not(.is-authenticated) .modern-login-card {
    width: min(100%, 430px) !important;
    max-width: 430px !important;
    min-height: auto !important;
    padding: 16px 18px !important;
    border-radius: 24px !important;
    gap: 10px !important;
  }
  body.is-login:not(.is-authenticated) #loginLogo { width: 58px !important; height: 68px !important; margin-bottom: 0 !important; }
  body.is-login:not(.is-authenticated) .login-panel h1 { font-size: 1.55rem !important; }
  body.is-login:not(.is-authenticated) .login-panel .login-title-block p { font-size: .92rem !important; }
  body.is-login:not(.is-authenticated) .login-title-block::after { width: 58px !important; height: 3px !important; margin-top: 6px !important; }
  body.is-login:not(.is-authenticated) .login-label-text { font-size: .86rem !important; }
  body.is-login:not(.is-authenticated) .login-input-shell { min-height: 46px !important; grid-template-columns: 38px minmax(0,1fr) !important; }
  body.is-login:not(.is-authenticated) .password-field.login-input-shell { grid-template-columns: 38px minmax(0,1fr) 36px !important; }
  body.is-login:not(.is-authenticated) .login-input-shell input:not([type=checkbox]) { min-height: 44px !important; height: 44px !important; font-size: .92rem !important; }
  body.is-login:not(.is-authenticated) .login-options-row { flex-direction: row !important; align-items: center !important; justify-content: space-between !important; gap: 8px !important; }
  body.is-login:not(.is-authenticated) .login-remember,
  body.is-login:not(.is-authenticated) .login-forgot-link { font-size: .82rem !important; }
  body.is-login:not(.is-authenticated) .login-submit { min-height: 48px !important; border-radius: 12px !important; }
  body.is-login:not(.is-authenticated) .login-secure-separator { font-size: .82rem !important; }
  body.is-login:not(.is-authenticated) .login-modern-note { grid-template-columns: 24px minmax(0,1fr) !important; padding: 10px 12px !important; font-size: .8rem !important; }
}

@media (max-width: 380px), (max-height: 740px) {
  body.is-login:not(.is-authenticated) .modern-plumero-login { padding: 8px !important; }
  body.is-login:not(.is-authenticated) .modern-login-card { padding: 12px 14px !important; border-radius: 20px !important; gap: 8px !important; }
  body.is-login:not(.is-authenticated) #loginLogo { width: 46px !important; height: 54px !important; }
  body.is-login:not(.is-authenticated) .login-panel h1 { font-size: 1.38rem !important; }
  body.is-login:not(.is-authenticated) .login-panel .login-title-block p { font-size: .84rem !important; }
  body.is-login:not(.is-authenticated) .login-field-group { gap: 8px !important; }
  body.is-login:not(.is-authenticated) .login-input-shell { min-height: 42px !important; }
  body.is-login:not(.is-authenticated) .login-input-shell input:not([type=checkbox]) { min-height: 40px !important; height: 40px !important; }
  body.is-login:not(.is-authenticated) .login-submit { min-height: 44px !important; }
  body.is-login:not(.is-authenticated) .login-modern-note { display: none !important; }
}
/* Configuracion: tarjetas uniformes 5 por fila 2026-08-22. */
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion {
  width: 100% !important;
  max-width: none !important;
  align-content: start !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .admin-control-center,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-inner-modules,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-hero,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-table {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 0 10px !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .admin-control-grid,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-quick-grid,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-summary,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-module-grid,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-role-summary,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .logo-config {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 10px !important;
  align-items: stretch !important;
  width: 100% !important;
  max-width: 100% !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .admin-control-card,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-quick-card,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-summary > article,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-module-card,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-role-summary > span,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .logo-config > article {
  box-sizing: border-box !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 126px !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 11px !important;
  border-radius: 10px !important;
  display: grid !important;
  align-content: start !important;
  justify-items: stretch !important;
  gap: 8px !important;
  overflow: hidden !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .admin-control-card {
  grid-template-columns: 34px minmax(0, 1fr) !important;
  grid-template-rows: auto 1fr auto !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-quick-card {
  grid-template-columns: 34px minmax(0, 1fr) !important;
  align-items: start !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .admin-control-card > i,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-quick-card > i,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-module-card > i {
  width: 34px !important;
  height: 34px !important;
  min-width: 34px !important;
  max-width: 34px !important;
  min-height: 34px !important;
  max-height: 34px !important;
  font-size: .98rem !important;
  flex-shrink: 0 !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .admin-control-card div,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-quick-card div,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-module-card span {
  min-width: 0 !important;
  display: grid !important;
  gap: 3px !important;
  align-content: start !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .admin-control-card span,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .admin-control-card b,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .admin-control-card small,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-quick-card b,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-quick-card small,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-summary span,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-summary b,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-summary small,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-module-card b,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-module-card small,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-role-summary b,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .logo-config b {
  min-width: 0 !important;
  max-width: 100% !important;
  overflow-wrap: anywhere !important;
  text-align: left !important;
  line-height: 1.18 !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .admin-control-card span,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-summary span {
  font-size: .66rem !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .admin-control-card b,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-summary b,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-role-summary b {
  font-size: .98rem !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .admin-control-card small,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-quick-card small,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-summary small,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-module-card small {
  font-size: .68rem !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 3 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .admin-control-card button,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-module-card button {
  grid-column: 1 / -1 !important;
  align-self: end !important;
  justify-self: stretch !important;
  min-height: 30px !important;
  width: 100% !important;
  padding: 0 8px !important;
  border-radius: 8px !important;
  white-space: nowrap !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-grid,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-grid-main,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-grid-users {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 10px !important;
  width: 100% !important;
  max-width: 100% !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-card {
  margin: 0 0 10px !important;
}

@media (max-width: 1024px) {
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .admin-control-grid,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-quick-grid,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-summary,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-module-grid,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-role-summary,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .logo-config {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 760px) {
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .admin-control-grid,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-quick-grid,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-summary,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-module-grid,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-role-summary,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .logo-config {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .admin-control-card,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-quick-card,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-summary > article,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-module-card,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-role-summary > span,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .logo-config > article {
    min-height: 112px !important;
    padding: 10px !important;
  }
}

@media (max-width: 460px) {
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .admin-control-grid,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-quick-grid,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-summary,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-module-grid,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .config-role-summary,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-configuracion .logo-config {
    grid-template-columns: 1fr !important;
  }
}
/* Login principal: acceso visible a apoderados y contraste 2026-08-22. */
body.is-login:not(.is-authenticated) .login-form #guardianAccessBtn,
body.is-login:not(.is-authenticated) .login-form .btn-guardian-access {
  display: flex !important;
  visibility: visible !important;
  width: 100% !important;
  height: auto !important;
  min-width: 0 !important;
  min-height: 48px !important;
  margin: 0 !important;
  padding: 0 14px !important;
  overflow: visible !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  border: 1px solid rgba(255, 196, 0, .9) !important;
  border-radius: 12px !important;
  background: linear-gradient(135deg, #ffc400, #ffb000) !important;
  color: #06275a !important;
  box-shadow: 0 10px 20px rgba(235, 169, 0, .22) !important;
  text-decoration: none !important;
  font-size: .96rem !important;
  font-weight: 950 !important;
  line-height: 1.15 !important;
  text-align: center !important;
}

body.is-login.guardian-login:not(.is-authenticated) .login-form #guardianAccessBtn,
body.is-login.guardian-login:not(.is-authenticated) .login-form .btn-guardian-access {
  border-color: #cbd5e1 !important;
  background: #ffffff !important;
  color: #06275a !important;
  box-shadow: 0 8px 18px rgba(6, 39, 90, .08) !important;
}

body.is-login:not(.is-authenticated) .login-form #guardianAccessBtn i,
body.is-login:not(.is-authenticated) .login-form .btn-guardian-access i {
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  max-width: 18px !important;
  min-height: 18px !important;
  max-height: 18px !important;
  display: inline-grid !important;
  place-items: center !important;
  flex-shrink: 0 !important;
  font-size: .98rem !important;
}

body.is-login:not(.is-authenticated) .login-form #guardianAccessBtn span,
body.is-login:not(.is-authenticated) .login-form .btn-guardian-access span {
  min-width: 0 !important;
  color: inherit !important;
  overflow-wrap: anywhere !important;
}

body.is-login:not(.is-authenticated) .modern-plumero-login {
  background:
    linear-gradient(90deg, rgba(2, 26, 63, .98) 0%, rgba(6, 39, 90, .9) 34%, rgba(6, 39, 90, .42) 100%),
    url('../assets/fondo-aerea-colegio-login.jpg') center / cover no-repeat !important;
}

body.is-login:not(.is-authenticated) .login-photo-content,
body.is-login:not(.is-authenticated) .login-photo-content * {
  opacity: 1 !important;
}

body.is-login:not(.is-authenticated) .login-photo-content > span {
  color: #ffc400 !important;
  text-shadow: 0 2px 12px rgba(0, 0, 0, .45) !important;
}

body.is-login:not(.is-authenticated) .login-photo-content > strong {
  color: #ffffff !important;
  text-shadow: 0 16px 34px rgba(0, 0, 0, .62), 0 2px 0 rgba(0, 0, 0, .18) !important;
}

body.is-login:not(.is-authenticated) .login-photo-content > i {
  background: #ffc400 !important;
  box-shadow: 0 0 0 1px rgba(255,255,255,.2), 0 8px 20px rgba(0,0,0,.22) !important;
}

body.is-login:not(.is-authenticated) .login-photo-content p {
  color: #ffffff !important;
  text-shadow: 0 3px 16px rgba(0, 0, 0, .55) !important;
}

body.is-login:not(.is-authenticated) .login-photo-content p b {
  color: #ffc400 !important;
}

body.is-login:not(.is-authenticated) .login-modern-values {
  display: grid !important;
  opacity: 1 !important;
}

body.is-login:not(.is-authenticated) .login-modern-values span {
  color: #ffffff !important;
  text-shadow: 0 2px 10px rgba(0, 0, 0, .55) !important;
}

body.is-login:not(.is-authenticated) .login-modern-values i {
  color: #ffc400 !important;
  text-shadow: 0 3px 14px rgba(0, 0, 0, .45) !important;
}

@media (max-width: 980px) {
  body.is-login:not(.is-authenticated) .login-photo-brand { display: none !important; }
  body.is-login:not(.is-authenticated) .login-form #guardianAccessBtn,
  body.is-login:not(.is-authenticated) .login-form .btn-guardian-access {
    min-height: 46px !important;
    font-size: .9rem !important;
  }
}

@media (max-width: 420px), (max-height: 740px) {
  body.is-login:not(.is-authenticated) .login-form #guardianAccessBtn,
  body.is-login:not(.is-authenticated) .login-form .btn-guardian-access {
    min-height: 42px !important;
    padding-inline: 10px !important;
    font-size: .82rem !important;
  }
}
/* Login principal: legibilidad fuerte y boton apoderados visible 2026-08-22. */
body.is-login:not(.is-authenticated) .modern-plumero-login,
body.visual-modern.is-login:not(.is-authenticated) .modern-plumero-login,
body.visual-classic.is-login:not(.is-authenticated) .modern-plumero-login {
  background:
    linear-gradient(90deg, rgba(1, 18, 48, .96) 0%, rgba(3, 34, 78, .9) 42%, rgba(3, 34, 78, .44) 100%),
    url('../assets/fondo-aerea-colegio-login.jpg') center / cover no-repeat !important;
}

body.is-login:not(.is-authenticated) .login-photo-brand {
  opacity: 1 !important;
  filter: none !important;
}

body.is-login:not(.is-authenticated) .login-photo-content {
  position: relative !important;
  z-index: 1 !important;
  padding: clamp(16px, 2vw, 26px) !important;
  border-radius: 18px !important;
  background: linear-gradient(180deg, rgba(1, 18, 48, .18), rgba(1, 18, 48, .34)) !important;
  border: 1px solid rgba(255, 255, 255, .08) !important;
  opacity: 1 !important;
  filter: none !important;
}

body.is-login:not(.is-authenticated) .login-photo-content > span,
body.is-login:not(.is-authenticated) .login-photo-content > strong,
body.is-login:not(.is-authenticated) .login-photo-content p,
body.is-login:not(.is-authenticated) .login-modern-values span,
body.is-login:not(.is-authenticated) .login-modern-values b {
  opacity: 1 !important;
  filter: none !important;
  mix-blend-mode: normal !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  text-shadow: 0 3px 8px rgba(0, 0, 0, .88), 0 12px 28px rgba(0, 0, 0, .7) !important;
}

body.is-login:not(.is-authenticated) .login-photo-content > span {
  color: #ffd32a !important;
  -webkit-text-fill-color: #ffd32a !important;
  font-weight: 1000 !important;
}

body.is-login:not(.is-authenticated) .login-photo-content > strong {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  font-weight: 1000 !important;
  text-shadow: 0 4px 10px rgba(0, 0, 0, .95), 0 18px 34px rgba(0, 0, 0, .75) !important;
}

body.is-login:not(.is-authenticated) .login-photo-content p {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  font-weight: 900 !important;
}

body.is-login:not(.is-authenticated) .login-photo-content p b,
body.is-login:not(.is-authenticated) .login-modern-values i {
  color: #ffd32a !important;
  -webkit-text-fill-color: #ffd32a !important;
  opacity: 1 !important;
  filter: none !important;
  text-shadow: 0 3px 10px rgba(0, 0, 0, .78) !important;
}

body.is-login:not(.is-authenticated) .login-photo-content > i {
  opacity: 1 !important;
  background: #ffd32a !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.55), 0 0 0 1px rgba(255,255,255,.25) !important;
}

body.is-login:not(.is-authenticated) .login-modern-values {
  display: grid !important;
  opacity: 1 !important;
  filter: none !important;
}

body.is-login:not(.is-authenticated) .login-modern-values span {
  font-weight: 950 !important;
}

body.is-login:not(.is-authenticated) #guardianAccessBtn,
body.is-login:not(.is-authenticated) .login-form #guardianAccessBtn,
body.is-login:not(.is-authenticated) .login-form .btn-guardian-access {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: relative !important;
  width: 100% !important;
  min-height: 50px !important;
  max-height: none !important;
  height: auto !important;
  padding: 0 14px !important;
  color: #06275a !important;
  -webkit-text-fill-color: #06275a !important;
  background: linear-gradient(135deg, #ffd32a, #ffb000) !important;
  border: 1px solid #e7ad00 !important;
  border-radius: 12px !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 9px !important;
  font-size: .96rem !important;
  font-weight: 1000 !important;
  line-height: 1.15 !important;
  text-decoration: none !important;
  overflow: visible !important;
  box-shadow: 0 10px 20px rgba(235, 169, 0, .28) !important;
}

body.is-login:not(.is-authenticated) #guardianAccessBtn span,
body.is-login:not(.is-authenticated) .login-form #guardianAccessBtn span,
body.is-login:not(.is-authenticated) .login-form .btn-guardian-access span {
  display: inline !important;
  visibility: visible !important;
  opacity: 1 !important;
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  color: #06275a !important;
  -webkit-text-fill-color: #06275a !important;
  overflow: visible !important;
  clip: auto !important;
  white-space: normal !important;
  text-align: center !important;
}

body.is-login:not(.is-authenticated) #guardianAccessBtn i,
body.is-login:not(.is-authenticated) .login-form #guardianAccessBtn i {
  color: #06275a !important;
  -webkit-text-fill-color: #06275a !important;
  opacity: 1 !important;
}

body.is-login.guardian-login:not(.is-authenticated) #guardianAccessBtn,
body.is-login.guardian-login:not(.is-authenticated) .login-form #guardianAccessBtn {
  background: #ffffff !important;
  color: #06275a !important;
  -webkit-text-fill-color: #06275a !important;
}

@media (max-width: 980px) {
  body.is-login:not(.is-authenticated) .login-photo-content {
    display: none !important;
  }
}
/* Barra superior sticky para todos los modulos 2026-08-22. */
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > .module-head.module-hero,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > .module-hero {
  position: sticky !important;
  top: 0 !important;
  z-index: 80 !important;
  display: grid !important;
  grid-template-columns: minmax(220px, 1fr) minmax(0, auto) !important;
  align-items: center !important;
  gap: 12px !important;
  width: 100% !important;
  min-height: 58px !important;
  margin: 0 0 12px !important;
  padding: 8px 14px !important;
  border: 0 !important;
  border-bottom: 3px solid #ffd21f !important;
  border-radius: 0 !important;
  background: #07377e !important;
  color: #ffffff !important;
  box-shadow: 0 8px 18px rgba(3, 22, 52, .18) !important;
  overflow: visible !important;
  isolation: isolate !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > .module-head.module-hero::before,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > .module-hero::before,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > .module-head.module-hero::after,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > .module-hero::after {
  display: none !important;
  content: none !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > .module-head.module-hero + *,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > .module-hero + * {
  margin-top: 0 !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero-content {
  display: grid !important;
  grid-template-columns: minmax(0, auto) auto !important;
  align-items: center !important;
  justify-content: start !important;
  gap: 8px 12px !important;
  min-width: 0 !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero :is(h1,h2),
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero :is(h1,h2) {
  margin: 0 !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  font-size: clamp(1.35rem, 2.1vw, 2rem) !important;
  line-height: 1.05 !important;
  font-weight: 950 !important;
  letter-spacing: 0 !important;
  text-shadow: none !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero p,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero p {
  display: none !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero .module-badge,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero .module-badge {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  width: auto !important;
  max-width: 180px !important;
  min-height: 28px !important;
  margin: 0 !important;
  padding: 4px 10px !important;
  border: 1px solid rgba(255, 210, 31, .58) !important;
  border-radius: 999px !important;
  background: rgba(255, 210, 31, .12) !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  font-size: .78rem !important;
  line-height: 1 !important;
  font-weight: 850 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero .module-badge i,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero .module-badge i {
  color: #ffd21f !important;
  -webkit-text-fill-color: #ffd21f !important;
  font-size: .78rem !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero .module-hero-actions,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero .module-hero-actions {
  display: flex !important;
  flex-wrap: nowrap !important;
  justify-content: flex-end !important;
  align-items: center !important;
  gap: 6px !important;
  min-width: 0 !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scrollbar-width: thin !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero .module-hero-actions :is(button,a),
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero .module-hero-actions :is(button,a) {
  flex: 0 0 auto !important;
  min-height: 34px !important;
  max-height: 34px !important;
  max-width: 220px !important;
  padding: 7px 11px !important;
  border: 1px solid rgba(255, 255, 255, .52) !important;
  border-radius: 6px !important;
  background: rgba(255, 255, 255, .94) !important;
  color: #07377e !important;
  -webkit-text-fill-color: #07377e !important;
  box-shadow: none !important;
  font-size: .82rem !important;
  line-height: 1 !important;
  font-weight: 900 !important;
  letter-spacing: 0 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  text-decoration: none !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero .module-hero-actions :is(button,a).btn-primary,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero .module-hero-actions :is(button,a).btn-primary {
  background: #0f68c7 !important;
  border-color: #2e91ef !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero .module-hero-actions :is(button,a):hover,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero .module-hero-actions :is(button,a):hover {
  transform: none !important;
  filter: brightness(1.03) !important;
}

@media (max-width: 900px) {
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > .module-head.module-hero,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > .module-hero {
    grid-template-columns: 1fr !important;
    align-items: start !important;
    gap: 7px !important;
    padding: 8px 10px !important;
  }
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero-content {
    grid-template-columns: minmax(0, 1fr) auto !important;
    width: 100% !important;
  }
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero .module-hero-actions,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero .module-hero-actions {
    justify-content: flex-start !important;
    width: 100% !important;
  }
}

@media (max-width: 560px) {
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > .module-head.module-hero,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > .module-hero {
    top: 0 !important;
    min-height: 0 !important;
    padding: 7px 8px !important;
  }
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero :is(h1,h2),
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero :is(h1,h2) {
    font-size: 1.18rem !important;
  }
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero .module-badge,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero .module-badge {
    display: none !important;
  }
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero .module-hero-actions :is(button,a),
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero .module-hero-actions :is(button,a) {
    min-height: 32px !important;
    max-height: 32px !important;
    padding: 6px 9px !important;
    font-size: .76rem !important;
  }
}
/* Barra superior sticky compacta alineada a la referencia 2026-08-22. */
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain {
  overflow: visible !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module.active {
  overflow: visible !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > .module-head.module-hero,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > .module-hero {
  position: sticky !important;
  top: var(--topbar-height, 0px) !important;
  z-index: 120 !important;
  grid-template-columns: minmax(180px, 1fr) minmax(280px, auto) !important;
  min-height: 48px !important;
  margin: 0 0 10px !important;
  padding: 6px 10px !important;
  border-bottom: 3px solid #ffd21f !important;
  background: #07377e !important;
  box-shadow: 0 6px 14px rgba(3, 22, 52, .16) !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero-content {
  grid-template-columns: minmax(0, auto) auto !important;
  gap: 8px !important;
  align-items: center !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero :is(h1,h2),
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero :is(h1,h2) {
  font-size: clamp(1.28rem, 1.75vw, 1.72rem) !important;
  line-height: 1 !important;
  max-width: 100% !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero .module-badge,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero .module-badge {
  min-height: 24px !important;
  padding: 3px 8px !important;
  font-size: .72rem !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero .module-hero-actions,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero .module-hero-actions {
  justify-self: end !important;
  align-self: center !important;
  width: auto !important;
  max-width: min(100%, 720px) !important;
  gap: 5px !important;
  padding-bottom: 2px !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero .module-hero-actions :is(button,a),
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero .module-hero-actions :is(button,a) {
  min-height: 30px !important;
  max-height: 30px !important;
  max-width: 190px !important;
  padding: 5px 9px !important;
  border-radius: 5px !important;
  font-size: .76rem !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero .module-hero-actions :is(button,a) i,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero .module-hero-actions :is(button,a) i,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero .module-hero-actions :is(button,a) .btn-icon,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero .module-hero-actions :is(button,a) .btn-icon {
  width: 16px !important;
  height: 16px !important;
  min-width: 16px !important;
  font-size: .78rem !important;
  flex-shrink: 0 !important;
}

@media (max-width: 900px) {
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > .module-head.module-hero,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > .module-hero {
    top: var(--topbar-height, 0px) !important;
    grid-template-columns: 1fr !important;
    min-height: 0 !important;
    padding: 7px 9px !important;
  }
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero .module-hero-actions,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero .module-hero-actions {
    justify-self: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}

@media (max-width: 560px) {
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero :is(h1,h2),
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero :is(h1,h2) {
    font-size: 1.08rem !important;
  }
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero .module-hero-actions :is(button,a),
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero .module-hero-actions :is(button,a) {
    min-height: 30px !important;
    max-height: 30px !important;
    font-size: .72rem !important;
  }
}
/* Correccion barra modulos sin huecos 2026-08-22. */
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module.active {
  padding-top: 0 !important;
  margin-top: 0 !important;
  align-content: start !important;
  overflow: visible !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > .module-head.module-hero,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > .module-hero {
  position: sticky !important;
  top: 0 !important;
  z-index: 60 !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, auto) !important;
  align-items: center !important;
  gap: 10px !important;
  width: 100% !important;
  min-height: 46px !important;
  height: auto !important;
  margin: 0 0 8px !important;
  padding: 6px 10px !important;
  border: 0 !important;
  border-bottom: 3px solid #ffd21f !important;
  border-radius: 0 !important;
  background: #07377e !important;
  color: #ffffff !important;
  box-shadow: 0 4px 10px rgba(3, 22, 52, .14) !important;
  transform: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  overflow: visible !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > .module-head.module-hero + *,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > .module-hero + *,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module .students-card,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module .list-table-card:first-of-type,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module .card:first-of-type {
  margin-top: 0 !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero-content {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  min-width: 0 !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero :is(h1,h2),
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero :is(h1,h2) {
  display: block !important;
  margin: 0 !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  font-size: clamp(1.2rem, 1.7vw, 1.7rem) !important;
  line-height: 1 !important;
  font-weight: 950 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero p,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero p {
  display: none !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero .module-badge,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero .module-badge {
  flex: 0 0 auto !important;
  min-height: 24px !important;
  max-width: 170px !important;
  padding: 3px 8px !important;
  border: 1px solid rgba(255, 210, 31, .55) !important;
  background: rgba(255, 210, 31, .12) !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  font-size: .72rem !important;
  white-space: nowrap !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero .module-hero-actions,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero .module-hero-actions {
  display: flex !important;
  flex-wrap: nowrap !important;
  justify-content: flex-end !important;
  align-items: center !important;
  gap: 5px !important;
  min-width: 0 !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero .module-hero-actions :is(button,a),
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero .module-hero-actions :is(button,a) {
  flex: 0 0 auto !important;
  min-height: 30px !important;
  max-height: 30px !important;
  padding: 5px 9px !important;
  border-radius: 5px !important;
  font-size: .76rem !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .student-filter-bar,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .mini-toolbar,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .filters-row,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .table-tools {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

@media (max-width: 900px) {
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > .module-head.module-hero,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > .module-hero {
    grid-template-columns: 1fr !important;
    gap: 6px !important;
  }
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero .module-hero-actions,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero .module-hero-actions {
    justify-content: flex-start !important;
    width: 100% !important;
  }
}

@media (max-width: 560px) {
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head.module-hero .module-badge,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-hero .module-badge {
    display: none !important;
  }
}
/* Encabezados compactos sin espacio blanco superior 2026-08-22. */
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > :is(section, .card, .panel-listado, .module-head, .module-hero, .module-breadcrumb, nav),
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.achievement-report-sheet, .academic-grade-report, .report-paper, .report-builder, .report-panel) {
  margin-top: 0 !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(
  .achievement-screen-header,
  .achievement-report-heading,
  .academic-report-header,
  .report-header,
  .certificate-head,
  .utp-academic-head,
  .utp-analytics-header,
  .head-teacher-workspace-head
) {
  min-height: 0 !important;
  height: auto !important;
  max-height: none !important;
  margin-top: 0 !important;
  margin-bottom: 8px !important;
  padding: 8px 10px !important;
  align-items: center !important;
  align-content: center !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(#module-niveles-logro, #module-informes) .achievement-screen-header {
  display: grid !important;
  grid-template-columns: 44px minmax(0, 1fr) 44px !important;
  gap: 8px !important;
  width: 100% !important;
  min-height: 0 !important;
  height: auto !important;
  padding: 7px 10px !important;
  border: 1px solid #d7e3f0 !important;
  border-radius: 7px !important;
  background: #ffffff !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .achievement-screen-header > div {
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .achievement-screen-header :is(span, h1, h2, h3, p, small) {
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.08 !important;
  min-height: 0 !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .achievement-screen-header span {
  display: block !important;
  color: #36527a !important;
  font-size: .68rem !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  text-transform: uppercase !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .achievement-screen-header h2 {
  color: #07377e !important;
  font-size: clamp(1rem, 1.25vw, 1.16rem) !important;
  font-weight: 900 !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .achievement-screen-header p {
  color: #36527a !important;
  font-size: .74rem !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.achievement-screen-logo, .achievement-report-logo, .report-logo) {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 44px !important;
  min-width: 44px !important;
  max-width: 44px !important;
  min-height: 0 !important;
  height: 44px !important;
  max-height: 44px !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.achievement-screen-logo, .achievement-report-logo, .report-logo) img,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.academic-report-header, .report-header, .certificate-head, .utp-academic-head) img {
  display: block !important;
  width: auto !important;
  max-width: 44px !important;
  min-width: 0 !important;
  height: auto !important;
  max-height: 44px !important;
  min-height: 0 !important;
  object-fit: contain !important;
  flex-shrink: 0 !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .achievement-screen-logo.secondary {
  justify-self: end !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.achievement-report-sheet, .academic-grade-report, .report-paper) > :first-child {
  margin-top: 0 !important;
}

@media (max-width: 700px) {
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(#module-niveles-logro, #module-informes) .achievement-screen-header {
    grid-template-columns: 38px minmax(0, 1fr) 38px !important;
    padding: 6px 8px !important;
  }
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.achievement-screen-logo, .achievement-report-logo, .report-logo) {
    width: 38px !important;
    min-width: 38px !important;
    max-width: 38px !important;
    height: 38px !important;
    max-height: 38px !important;
  }
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.achievement-screen-logo, .achievement-report-logo, .report-logo) img,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.academic-report-header, .report-header, .certificate-head, .utp-academic-head) img {
    max-width: 38px !important;
    max-height: 38px !important;
  }
}
/* Barra superior uniforme para todos los modulos 2026-08-22. */
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain {
  padding-top: 0 !important;
  overflow: visible !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module.active {
  overflow: visible !important;
  scroll-margin-top: calc(var(--topbar-height, 0px) + 58px) !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > :is(.module-head, .module-hero, .category-panel-head) {
  position: sticky !important;
  top: 0 !important;
  z-index: 180 !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) max-content !important;
  align-items: center !important;
  gap: 10px !important;
  width: 100% !important;
  min-height: 46px !important;
  height: auto !important;
  max-height: none !important;
  margin: 0 0 10px !important;
  padding: 6px 10px !important;
  border: 0 !important;
  border-bottom: 3px solid #ffd21f !important;
  border-radius: 0 !important;
  background: #07377e !important;
  color: #ffffff !important;
  box-shadow: 0 5px 14px rgba(3, 22, 52, .16) !important;
  overflow: visible !important;
  transform: none !important;
  opacity: 1 !important;
  visibility: visible !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > :is(.module-head, .module-hero, .category-panel-head)::before,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > :is(.module-head, .module-hero, .category-panel-head)::after {
  display: none !important;
  content: none !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > :is(.module-head, .module-hero, .category-panel-head) > :first-child,
body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > :is(.module-head, .module-hero, .category-panel-head) .module-hero-content {
  display: flex !important;
  align-items: center !important;
  gap: 9px !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  overflow: hidden !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > :is(.module-head, .module-hero, .category-panel-head) :is(h1, h2) {
  display: block !important;
  flex: 0 1 auto !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  font-size: clamp(1.14rem, 1.55vw, 1.62rem) !important;
  line-height: 1 !important;
  font-weight: 950 !important;
  letter-spacing: 0 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > :is(.module-head, .module-hero, .category-panel-head) :is(p, small) {
  display: none !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > :is(.module-head, .module-hero, .category-panel-head) .module-badge {
  flex: 0 0 auto !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
  max-width: 180px !important;
  min-height: 24px !important;
  height: 24px !important;
  margin: 0 !important;
  padding: 3px 8px !important;
  border: 1px solid rgba(255, 210, 31, .55) !important;
  border-radius: 999px !important;
  background: rgba(255, 210, 31, .12) !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  font-size: .7rem !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > :is(.module-head, .module-hero, .category-panel-head) :is(.module-actions-inline, .module-head-actions, .module-hero-actions, .form-actions, .list-card-actions, .report-actions) {
  justify-self: end !important;
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 5px !important;
  min-width: 0 !important;
  width: auto !important;
  max-width: min(62vw, 760px) !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scrollbar-width: thin !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > :is(.module-head, .module-hero, .category-panel-head) :is(button, a, select) {
  flex: 0 0 auto !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > :is(.module-head, .module-hero, .category-panel-head) :is(button, a):not(.module-breadcrumb button) {
  min-height: 30px !important;
  max-height: 30px !important;
  padding: 5px 9px !important;
  border-radius: 5px !important;
  font-size: .75rem !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > :is(.module-head, .module-hero, .category-panel-head) :is(button, a) :is(i, svg, .btn-icon) {
  width: 16px !important;
  height: 16px !important;
  min-width: 16px !important;
  max-width: 16px !important;
  min-height: 16px !important;
  max-height: 16px !important;
  flex-shrink: 0 !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.list-card-head, .panel-head, .card-head, .section-head, .toolbar-head, .report-panel-head) {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px !important;
  min-height: 38px !important;
  height: auto !important;
  margin: 0 0 8px !important;
  padding: 7px 10px !important;
  border: 0 !important;
  border-bottom: 2px solid #ffd21f !important;
  border-radius: 0 !important;
  background: #07377e !important;
  color: #ffffff !important;
  box-shadow: none !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.list-card-head, .panel-head, .card-head, .section-head, .toolbar-head, .report-panel-head) :is(h1, h2, h3, h4, p, span, strong) {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  line-height: 1.1 !important;
}

body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > :is(.module-head, .module-hero, .category-panel-head) + * {
  margin-top: 0 !important;
}

@media (max-width: 900px) {
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > :is(.module-head, .module-hero, .category-panel-head) {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 6px !important;
    min-height: 0 !important;
    padding: 7px 9px !important;
  }
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > :is(.module-head, .module-hero, .category-panel-head) :is(.module-actions-inline, .module-head-actions, .module-hero-actions, .form-actions, .list-card-actions, .report-actions) {
    justify-self: stretch !important;
    justify-content: flex-start !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}

@media (max-width: 560px) {
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > :is(.module-head, .module-hero, .category-panel-head) :is(h1, h2) {
    font-size: 1.05rem !important;
  }
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > :is(.module-head, .module-hero, .category-panel-head) .module-badge {
    display: none !important;
  }
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module > :is(.module-head, .module-hero, .category-panel-head) :is(button, a):not(.module-breadcrumb button) {
    min-height: 29px !important;
    max-height: 29px !important;
    font-size: .7rem !important;
  }
}
/* Portal Apoderado: identidad visual familiar amarilla, separada del portal funcionario 2026-08-24. */
body.is-authenticated.guardian-portal-only {
  --guardian-family-yellow: #ffd21f;
  --guardian-family-yellow-soft: #fff7c7;
  --guardian-family-blue: #073b8e;
  --guardian-family-blue-2: #0b5ed7;
  --guardian-family-ink: #14213d;
  --guardian-family-line: #f1d779;
  background: #fff9df !important;
}

body.is-authenticated.guardian-portal-only #appShell,
body.is-authenticated.guardian-portal-only #appMain,
body.is-authenticated.guardian-portal-only #module-ficha {
  background:
    linear-gradient(180deg, rgba(255, 210, 31, .34), rgba(255, 255, 255, .94) 42%),
    #fff9df !important;
}

body.is-authenticated.guardian-portal-only .topbar {
  background: var(--guardian-family-yellow) !important;
  border-bottom: 3px solid var(--guardian-family-blue) !important;
  color: var(--guardian-family-ink) !important;
}

body.is-authenticated.guardian-portal-only .module-head {
  display: none !important;
}

body.is-authenticated.guardian-portal-only #module-ficha .guardian-yellow-portal,
body.is-authenticated.guardian-portal-only .guardian-yellow-portal {
  --guardian-yellow: var(--guardian-family-yellow) !important;
  --guardian-yellow-soft: var(--guardian-family-yellow-soft) !important;
  --guardian-ink: var(--guardian-family-ink) !important;
  max-width: 1240px !important;
  margin: 0 auto !important;
  padding: clamp(12px, 2.2vw, 24px) !important;
  background: transparent !important;
  color: var(--guardian-family-ink) !important;
}

body.is-authenticated.guardian-portal-only .guardian-yellow-hero {
  border: 2px solid var(--guardian-family-line) !important;
  border-left: 12px solid var(--guardian-family-yellow) !important;
  background:
    linear-gradient(135deg, #fff7bc 0%, #ffffff 54%, #eaf3ff 100%) !important;
  box-shadow: 0 18px 34px rgba(7, 59, 142, .13) !important;
  color: var(--guardian-family-ink) !important;
}

body.is-authenticated.guardian-portal-only .guardian-yellow-hero h2 {
  color: var(--guardian-family-blue) !important;
}

body.is-authenticated.guardian-portal-only .guardian-yellow-hero span,
body.is-authenticated.guardian-portal-only .guardian-yellow-hero p {
  color: #334155 !important;
}

body.is-authenticated.guardian-portal-only .guardian-yellow-hero strong,
body.is-authenticated.guardian-portal-only .guardian-yellow-title span,
body.is-authenticated.guardian-portal-only .guardian-yellow-list time {
  background: var(--guardian-family-yellow) !important;
  border-color: #e0b900 !important;
  color: #3f3000 !important;
}

body.is-authenticated.guardian-portal-only .guardian-yellow-toolbar,
body.is-authenticated.guardian-portal-only .guardian-selected-student,
body.is-authenticated.guardian-portal-only .guardian-child-strip,
body.is-authenticated.guardian-portal-only .guardian-main-cards > article,
body.is-authenticated.guardian-portal-only .guardian-yellow-card {
  border-color: var(--guardian-family-line) !important;
  background: #ffffff !important;
  box-shadow: 0 12px 26px rgba(7, 59, 142, .08) !important;
}

body.is-authenticated.guardian-portal-only .guardian-selected-student {
  border-left: 8px solid var(--guardian-family-yellow) !important;
}

body.is-authenticated.guardian-portal-only .guardian-yellow-card {
  border-top: 5px solid var(--guardian-family-yellow) !important;
}

body.is-authenticated.guardian-portal-only .guardian-yellow-card:nth-child(even) {
  background: #fffdf2 !important;
}

body.is-authenticated.guardian-portal-only .guardian-yellow-title h3,
body.is-authenticated.guardian-portal-only .guardian-selected-student h3,
body.is-authenticated.guardian-portal-only .guardian-main-cards b {
  color: var(--guardian-family-blue) !important;
}

body.is-authenticated.guardian-portal-only .guardian-yellow-tabs {
  background: #ffffff !important;
  border: 1px solid var(--guardian-family-line) !important;
  box-shadow: 0 10px 22px rgba(7, 59, 142, .08) !important;
}

body.is-authenticated.guardian-portal-only .guardian-yellow-tabs a {
  border-color: #dbe7fb !important;
  background: #f6faff !important;
  color: var(--guardian-family-blue) !important;
}

body.is-authenticated.guardian-portal-only .guardian-yellow-tabs a:hover,
body.is-authenticated.guardian-portal-only .guardian-yellow-tabs a:focus-visible,
body.is-authenticated.guardian-portal-only .guardian-yellow-tabs a:first-child {
  border-color: #e0b900 !important;
  background: var(--guardian-family-yellow) !important;
  color: #2f2600 !important;
}

body.is-authenticated.guardian-portal-only .guardian-yellow-toolbar select,
body.is-authenticated.guardian-portal-only .guardian-table-wrap table,
body.is-authenticated.guardian-portal-only .guardian-official-table table {
  border-color: var(--guardian-family-line) !important;
}

body.is-authenticated.guardian-portal-only .guardian-official-table th {
  background: var(--guardian-family-blue) !important;
  color: #ffffff !important;
}

body.is-authenticated.guardian-portal-only .guardian-empty,
body.is-authenticated.guardian-portal-only .guardian-readonly-note {
  border-color: var(--guardian-family-line) !important;
  background: var(--guardian-family-yellow-soft) !important;
  color: #574100 !important;
}
