/* Escuela El Plumero: minimal blue/white/yellow UI layer. */
:root {
  --pl-blue: #0b4f96;
  --pl-blue-dark: #073a74;
  --pl-blue-soft: #eaf3ff;
  --pl-yellow: #f8c32d;
  --pl-ink: #10233f;
  --pl-muted: #65748a;
  --pl-line: #d8e3f0;
  --pl-page: #f6f9fd;
}

@media screen {
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .sidebar-planner-shortcut {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    width: calc(100% - 28px) !important;
    max-width: 220px !important;
    min-height: 40px !important;
    margin: 8px 14px 0 !important;
    padding: 9px 12px !important;
    border: 1px solid #e3b419 !important;
    border-radius: 8px !important;
    background: var(--pl-yellow) !important;
    color: var(--pl-blue-dark) !important;
    font-size: .86rem !important;
    font-weight: 850 !important;
    line-height: 1.1 !important;
    box-shadow: 0 8px 18px rgba(248, 195, 45, .25) !important;
    cursor: pointer !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .sidebar-planner-shortcut[hidden] {
    display: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .sidebar-planner-shortcut i {
    color: var(--pl-blue) !important;
    font-size: .95rem !important;
    flex: 0 0 auto !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .sidebar-planner-shortcut:is(:hover, :focus-visible, .active) {
    background: var(--pl-blue) !important;
    border-color: var(--pl-blue) !important;
    color: #fff !important;
    outline: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .sidebar-planner-shortcut:is(:hover, :focus-visible, .active) i {
    color: var(--pl-yellow) !important;
  }

  @media (min-width: 901px) {
    body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar .brand-row {
      align-content: start !important;
    }

    body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .sidebar-planner-shortcut {
      grid-column: 1 / -1 !important;
      justify-self: center !important;
    }
  }

  @media (max-width: 900px) {
    body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .sidebar-planner-shortcut {
      width: auto !important;
      max-width: 100% !important;
      min-height: 36px !important;
      margin: 0 !important;
      padding: 8px 10px !important;
      font-size: .78rem !important;
    }
  }
}

@media screen {
  body.is-login:not(.is-authenticated) {
    background: var(--pl-page) !important;
    color: var(--pl-ink) !important;
  }

  body.is-login:not(.is-authenticated) section#loginScreen.login-screen {
    box-sizing: border-box !important;
    width: 100vw !important;
    max-width: 100vw !important;
    min-height: 100dvh !important;
    overflow-x: hidden !important;
    background: linear-gradient(135deg, rgba(11, 79, 150, .10), transparent 44%), linear-gradient(180deg, #fff, var(--pl-page)) !important;
  }

  body.is-login:not(.is-authenticated) .login-photo-brand,
  body.is-login:not(.is-authenticated) .login-panel {
    box-sizing: border-box !important;
    border-radius: 8px !important;
    border: 1px solid var(--pl-line) !important;
    box-shadow: 0 16px 34px rgba(16, 35, 63, .11) !important;
  }

  body.is-login:not(.is-authenticated) .login-photo-brand {
    background: linear-gradient(135deg, rgba(7, 58, 116, .94), rgba(11, 79, 150, .88)) !important;
    color: #fff !important;
  }

  body.is-login:not(.is-authenticated) .login-panel {
    width: min(100%, 430px) !important;
    max-width: min(100%, 430px) !important;
    background: rgba(255, 255, 255, .96) !important;
  }

  body.is-login:not(.is-authenticated) :is(.login-panel, .login-photo-brand) {
    min-width: 0 !important;
    overflow-wrap: anywhere;
  }

  body.is-login:not(.is-authenticated) .login-input-shell,
  body.is-login:not(.is-authenticated) .login-submit,
  body.is-login:not(.is-authenticated) .btn-guardian-access {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 46px !important;
    border-radius: 8px !important;
  }

  body.is-login:not(.is-authenticated) .login-input-shell {
    border: 1px solid var(--pl-line) !important;
    background: #fff !important;
    box-shadow: none !important;
    overflow: hidden !important;
  }

  body.is-login:not(.is-authenticated) .login-input-shell:focus-within {
    border-color: var(--pl-blue) !important;
    outline: 3px solid rgba(11, 79, 150, .14) !important;
  }

  body.is-login:not(.is-authenticated) .login-submit {
    background: var(--pl-blue) !important;
    color: #fff !important;
    box-shadow: 0 10px 20px rgba(11, 79, 150, .20) !important;
  }

  body.is-login:not(.is-authenticated) .btn-guardian-access {
    background: var(--pl-yellow) !important;
    color: #192b44 !important;
    border: 1px solid #e4b016 !important;
  }

  body.is-login:not(.is-authenticated) .login-form .btn-guardian-access::before,
  body.is-login:not(.is-authenticated) .login-form .btn-guardian-access::after,
  body.is-login.guardian-login:not(.is-authenticated) .login-form .btn-guardian-access::before,
  body.is-login.guardian-login:not(.is-authenticated) .login-form .btn-guardian-access::after {
    content: none !important;
    display: none !important;
  }

  body.is-login:not(.is-authenticated) :is(.login-submit, .btn-guardian-access) > i {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-family: "FluentSystemIcons", "Font Awesome 6 Free", sans-serif !important;
    line-height: 1 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) {
    --primary: var(--pl-blue);
    --primary-dark: var(--pl-blue-dark);
    --accent: var(--pl-yellow);
    background: var(--pl-page) !important;
    color: var(--pl-ink) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar {
    background: #fff !important;
    color: var(--pl-ink) !important;
    border-bottom: 1px solid var(--pl-line) !important;
    box-shadow: 0 8px 22px rgba(16, 35, 63, .08) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar :is(.brand-copy b, .brand-copy small, .active-module-card, .platform-developer-credit) {
    color: var(--pl-ink) !important;
    -webkit-text-fill-color: currentColor !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar {
    border-color: var(--pl-line) !important;
    background: #fff !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar :is(.categoria-menu, .nav-btn) {
    display: flex !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 44px !important;
    justify-content: flex-start !important;
    gap: 10px !important;
    padding: 10px 12px !important;
    border: 1px solid var(--pl-line) !important;
    border-radius: 8px !important;
    background: #fff !important;
    color: var(--pl-ink) !important;
    text-align: left !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    box-shadow: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar :is(.categoria-menu, .nav-btn) i {
    flex: 0 0 auto !important;
    color: var(--pl-blue) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar :is(.categoria-menu, .nav-btn):is(:hover, :focus-visible) {
    border-color: var(--pl-blue) !important;
    background: var(--pl-blue-soft) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar :is(.categoria-menu, .nav-btn).activa {
    border-color: var(--pl-blue) !important;
    background: var(--pl-blue) !important;
    color: #fff !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar :is(.categoria-menu, .nav-btn).activa i {
    color: var(--pl-yellow) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar .actions button,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .mobile-menu-toggle {
    border-radius: 8px !important;
    border: 1px solid #cfe0f3 !important;
    background: var(--pl-blue-soft) !important;
    color: var(--pl-blue-dark) !important;
    box-shadow: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain {
    background: var(--pl-page) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.card, .panel, .section-panel, .list-card, .table-wrap, .course-context, .layout-insight-wrap, .report-workspace, .report-control-panel, .subject-summary, .utp-panel, .monthly-attendance-sheet, .guardian-yellow-card, .config-card, .admin-control-center) {
    border-radius: 8px !important;
    border: 1px solid var(--pl-line) !important;
    background: #fff !important;
    box-shadow: 0 8px 22px rgba(16, 35, 63, .07) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.module-head, .list-card-head) {
    background: transparent !important;
    box-shadow: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(h1, h2, h3, h4) {
    color: var(--pl-ink) !important;
    letter-spacing: 0 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio :is(.modern-tile, .module-card, .menu-card, .app-module-card, button[class*="module"], a[class*="module"]) {
    border-radius: 8px !important;
    border: 1px solid var(--pl-line) !important;
    background: #fff !important;
    color: var(--pl-ink) !important;
    box-shadow: 0 8px 20px rgba(16, 35, 63, .07) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(button, .btn, .btn-primary, .btn-secondary, .btn-soft, .action-save, .action-button) {
    min-height: 38px !important;
    border-radius: 8px !important;
    font-weight: 750 !important;
    letter-spacing: 0 !important;
    box-shadow: none !important;
    overflow-wrap: anywhere !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.btn-primary, .action-save, button.primary) {
    background: var(--pl-blue) !important;
    border-color: var(--pl-blue) !important;
    color: #fff !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: 40px !important;
    max-width: 100% !important;
    border: 1px solid var(--pl-line) !important;
    border-radius: 8px !important;
    background: #fff !important;
    color: var(--pl-ink) !important;
    box-shadow: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(input, select, textarea):focus {
    border-color: var(--pl-blue) !important;
    outline: 3px solid rgba(11, 79, 150, .14) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.table-wrap, .table-scroll, .report-grade-table, .academic-report-table-scroll, .achievement-table-scroll, .monthly-attendance-scroll) {
    max-width: 100% !important;
    overflow-x: auto !important;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.mini-toolbar, .filters-row, .report-filter-grid, .form-grid, .layout-insight-grid, .main-menu-flat-grid) {
    gap: 12px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(table:not(.report-table), .data-table) th {
    background: var(--pl-blue-soft) !important;
    color: var(--pl-blue-dark) !important;
    font-weight: 800 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(table:not(.report-table), .data-table) :is(th, td) {
    border-bottom: 1px solid #e6edf5 !important;
    padding: 11px 12px !important;
  }

}

@media screen {
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body),
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio {
    background: #fff !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio {
    padding-top: 10px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .module-head.module-compact-head-executive,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .module-hero,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .home-header {
    border: 0 !important;
    border-bottom: 1px solid #e7edf5 !important;
    border-radius: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
    color: var(--pl-ink) !important;
  }

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

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .home-header-brand {
    width: 54px !important;
    height: 54px !important;
    min-width: 54px !important;
    min-height: 54px !important;
    padding: 0 !important;
    border: 1px solid #e7edf5 !important;
    border-radius: 8px !important;
    background: #fff !important;
    box-shadow: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .home-header-brand img {
    max-width: 40px !important;
    max-height: 40px !important;
    filter: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .home-header h1 {
    margin: 0 !important;
    color: #152235 !important;
    font-size: 1.28rem !important;
    font-weight: 800 !important;
    line-height: 1.18 !important;
    letter-spacing: 0 !important;
    text-shadow: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .home-header p,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .home-header p strong {
    color: #667085 !important;
    font-size: .88rem !important;
    font-weight: 650 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .home-header-meta {
    display: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .home-section-quick-nav {
    gap: 8px !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 .home-section-quick-nav button {
    min-height: 32px !important;
    padding: 7px 12px !important;
    border: 1px solid #dfe7f1 !important;
    border-radius: 7px !important;
    background: #fff !important;
    color: #344054 !important;
    font-size: .82rem !important;
    font-weight: 700 !important;
    box-shadow: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .home-section-quick-nav button:is(:hover, :focus-visible, .active) {
    border-color: #b9c7d8 !important;
    background: #f8fafc !important;
    color: var(--pl-blue-dark) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .home-module-directory {
    display: grid !important;
    gap: 22px !important;
    width: 100% !important;
    padding: 0 0 32px !important;
    margin: 0 !important;
    background: #fff !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .home-module-section {
    display: grid !important;
    gap: 10px !important;
    padding: 0 !important;
    border: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .home-section-title {
    display: flex !important;
    align-items: baseline !important;
    gap: 10px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .home-section-title > span {
    display: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .home-section-title h2 {
    margin: 0 !important;
    color: #182230 !important;
    font-size: 1.05rem !important;
    font-weight: 780 !important;
    line-height: 1.25 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .home-section-title small {
    color: #667085 !important;
    font-size: .82rem !important;
    font-weight: 500 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .unified-module-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)) !important;
    gap: 10px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .school-module-tile.modern-module-tile {
    min-height: 112px !important;
    padding: 14px !important;
    border: 1px solid #e4eaf2 !important;
    border-radius: 8px !important;
    background: #fff !important;
    color: #182230 !important;
    box-shadow: none !important;
    transition: border-color .16s ease, background-color .16s ease, transform .16s ease !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .school-module-tile.modern-module-tile::before,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .school-module-tile.modern-module-tile::after {
    content: none !important;
    display: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .school-module-tile.modern-module-tile:is(:hover, :focus-visible) {
    border-color: #b9c7d8 !important;
    background: #fbfcfe !important;
    box-shadow: none !important;
    transform: translateY(-1px) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .school-module-icon {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    border: 1px solid #e4eaf2 !important;
    border-radius: 8px !important;
    background: #fff !important;
    color: #1268c4 !important;
    box-shadow: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .school-module-label {
    color: #182230 !important;
    font-size: .98rem !important;
    font-weight: 780 !important;
    line-height: 1.2 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .school-module-description {
    color: #667085 !important;
    font-size: .82rem !important;
    font-weight: 520 !important;
    line-height: 1.28 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .school-module-action {
    color: #1268c4 !important;
    font-size: .82rem !important;
    font-weight: 720 !important;
  }
}

@media screen and (max-width: 640px) {
  body.is-login:not(.is-authenticated) section#loginScreen.login-screen {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    padding: 12px !important;
    margin: 0 !important;
  }

  body.is-login:not(.is-authenticated) section#loginScreen.login-screen > .login-panel.modern-login-card {
    position: relative !important;
    inset: auto !important;
    transform: none !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 430px !important;
    margin: 8px auto 0 !important;
    padding: 20px 14px !important;
    align-self: center !important;
  }

  body.is-login:not(.is-authenticated) :is(.login-form, .login-field-group, .login-field-label) {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.main-menu-flat-grid, .layout-insight-grid, .report-filter-grid) {
    grid-template-columns: 1fr !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar .brand-copy small,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar .platform-developer-credit {
    display: none !important;
  }
}

/* Escuela El Plumero: inicio, menu lateral y estilos compartidos 2026. */
@media screen {
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) {
    --pl-blue: #1476cf;
    --pl-blue-dark: #0b2a5b;
    --pl-blue-mid: #1a8bdd;
    --pl-blue-soft: #eef7ff;
    --pl-yellow: #fff2cc;
    --pl-yellow-strong: #f6c453;
    --pl-ink: #152033;
    --pl-muted: #5f6f86;
    --pl-line: #d7e5f4;
    --pl-page: #f4f8fc;
    --preview-sidebar-width: clamp(220px, 15.5vw, 260px);
    background: var(--pl-page) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar {
    background: #fff !important;
    border-right: 1px solid var(--pl-line) !important;
    border-bottom: 0 !important;
    box-shadow: 12px 0 28px rgba(21, 32, 51, .08) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand {
    align-items: start !important;
    padding: 26px 22px 18px !important;
    gap: 12px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-logo,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-logo img {
    width: 64px !important;
    height: 64px !important;
    object-fit: contain !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-copy b {
    color: var(--pl-ink) !important;
    font-size: .98rem !important;
    line-height: 1.18 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-copy small,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .platform-developer-credit,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .active-module-card {
    display: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar {
    background: #fff !important;
    border-right: 1px solid var(--pl-line) !important;
    box-shadow: 10px 0 28px rgba(21, 32, 51, .06) !important;
    padding: 150px 20px 24px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar::after {
    content: "Curso activo\A" attr(data-year);
    white-space: pre-line;
    position: fixed;
    left: 20px;
    bottom: 88px;
    width: calc(var(--preview-sidebar-width) - 40px);
    min-height: 76px;
    padding: 18px 16px;
    border: 1px solid #cfe0f3;
    border-radius: 8px;
    background: #f3f8ff;
    color: var(--pl-muted);
    font-size: .78rem;
    font-weight: 800;
    line-height: 1.45;
    pointer-events: none;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar :is(.categoria-menu, .nav-btn) {
    min-height: 48px !important;
    margin: 0 0 10px !important;
    padding: 10px 12px !important;
    border: 0 !important;
    border-radius: 8px !important;
    background: transparent !important;
    color: var(--pl-ink) !important;
    box-shadow: none !important;
    font-size: .9rem !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar :is(.categoria-menu, .nav-btn) i {
    width: 34px !important;
    height: 34px !important;
    display: inline-grid !important;
    place-items: center !important;
    border-radius: 8px !important;
    background: #f3f7fc !important;
    color: var(--pl-blue) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar :is(.categoria-menu, .nav-btn):is(:hover, :focus-visible) {
    background: var(--pl-blue-soft) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar :is(.categoria-menu, .nav-btn).activa {
    background: #f7fbff !important;
    color: var(--pl-blue-dark) !important;
    box-shadow: inset 4px 0 0 var(--pl-blue) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar .actions {
    position: fixed !important;
    left: 20px !important;
    bottom: 28px !important;
    width: calc(var(--preview-sidebar-width) - 40px) !important;
    padding: 0 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar .actions .icon-btn {
    width: 100% !important;
    min-height: 48px !important;
    justify-content: center !important;
    border: 1px solid #f1b9b9 !important;
    background: #fff8f6 !important;
    color: #a71919 !important;
    border-radius: 8px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar .actions #globalStudentSearchBtn,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar .actions #myAccountBtn {
    display: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain {
    background:
      radial-gradient(circle at 58% 4%, rgba(26, 139, 221, .10), transparent 23%),
      linear-gradient(180deg, #f7fbff 0%, #eef4fa 100%) !important;
    padding: 0 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio {
    padding: clamp(14px, 1.4vw, 24px) !important;
    background: transparent !important;
  }

  .plumero-home-shell {
    display: grid;
    gap: 16px;
    width: 100%;
    max-width: 1680px;
    margin: 0 auto;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .module-compact-head-executive {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: stretch;
    min-height: 160px !important;
    padding: 0 !important;
    border: 1px solid var(--pl-line) !important;
    border-left: 8px solid #2397b8 !important;
    border-radius: 8px !important;
    background: linear-gradient(105deg, #fff 0%, #fff 62%, #f4f9ff 100%) !important;
    box-shadow: 0 16px 34px rgba(21, 32, 51, .08) !important;
    overflow: hidden;
  }

  #module-inicio .module-compact-title {
    padding: 24px 30px !important;
  }

  #module-inicio .home-header-copy {
    display: grid;
    gap: 10px;
  }

  #module-inicio .home-kicker {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--pl-blue-dark);
    font-size: 1rem;
    font-weight: 900;
  }

  #module-inicio .home-kicker i {
    width: 52px;
    height: 52px;
    display: inline-grid;
    place-items: center;
    border-radius: 50%;
    background: #edf5ff;
    color: var(--pl-blue);
  }

  #module-inicio .home-header-copy h1 {
    margin: -2px 0 0 !important;
    color: var(--pl-blue-dark) !important;
    font-size: clamp(2rem, 3vw, 2.6rem) !important;
    line-height: 1.05 !important;
    font-weight: 900 !important;
  }

  #module-inicio .home-header-copy p {
    width: fit-content;
    margin: 0 !important;
    padding: 10px 14px;
    border: 1px solid #cfe0f3;
    border-radius: 8px;
    background: #f7fbff;
    color: var(--pl-ink) !important;
    font-weight: 800;
  }

  #module-inicio .home-header-copy p b,
  #module-inicio .home-header-copy small {
    color: var(--pl-muted) !important;
  }

  #module-inicio .home-header-copy small {
    font-size: .9rem;
    font-weight: 750;
  }

  #module-inicio .home-header-mark {
    align-self: center;
    justify-self: end;
    padding-right: 36px;
    color: rgba(21, 32, 51, .08);
    font-size: clamp(4rem, 10vw, 8rem);
    font-weight: 900;
    letter-spacing: 0;
  }

  #module-inicio .home-header-mark span {
    display: inline-block;
    margin-left: 10px;
    transform: translateY(10px);
  }

  #module-inicio .home-header-date {
    align-self: end;
    justify-self: end;
    padding: 0 30px 22px 0;
    color: var(--pl-muted);
    font-weight: 900;
    text-transform: capitalize;
  }

  #module-inicio .home-header-date b {
    margin-right: 8px;
    color: var(--pl-blue-dark);
    text-transform: uppercase;
    font-size: .78rem;
  }

  #module-inicio .module-compact-year,
  #module-inicio .module-compact-actions {
    display: none !important;
  }

  #module-inicio .home-stat-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
  }

  #module-inicio .home-stat-card,
  #module-inicio .home-main-panel,
  #module-inicio .home-side-panel {
    border: 1px solid var(--pl-line);
    border-left: 6px solid var(--pl-blue);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 14px 30px rgba(21, 32, 51, .07);
  }

  #module-inicio .home-stat-card {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    min-height: 110px;
    padding: 18px;
  }

  #module-inicio .home-stat-icon {
    width: 56px;
    height: 56px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    background: #f2f7fd;
    color: var(--pl-blue-dark);
    font-size: 1.35rem;
  }

  #module-inicio .home-stat-card span:not(.home-stat-icon) {
    color: var(--pl-blue-dark);
    font-size: .78rem;
    font-weight: 900;
    text-transform: uppercase;
  }

  #module-inicio .home-stat-card b {
    display: block;
    color: #116bd6;
    font-size: 1.62rem;
    line-height: 1;
  }

  #module-inicio .home-stat-card small {
    color: var(--pl-muted);
    font-weight: 800;
  }

  #module-inicio .home-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(270px, 360px);
    gap: 18px;
    align-items: start;
  }

  #module-inicio .home-main-panel,
  #module-inicio .home-side-panel {
    padding: 22px;
  }

  #module-inicio .home-panel-head {
    display: grid;
    gap: 8px;
    padding-bottom: 18px;
    margin-bottom: 18px;
    border-bottom: 1px solid #e7edf5;
  }

  #module-inicio .home-panel-head span {
    color: var(--pl-blue-dark);
    font-size: .78rem;
    font-weight: 900;
    text-transform: uppercase;
  }

  #module-inicio .home-panel-head h2 {
    margin: 0 !important;
    color: var(--pl-ink) !important;
    font-size: 1.45rem !important;
    line-height: 1.1 !important;
  }

  #module-inicio .home-panel-head small {
    color: var(--pl-muted);
    font-weight: 650;
  }

  #module-inicio .home-feature-grid,
  #module-inicio .unified-module-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
    gap: 14px !important;
  }

  #module-inicio .school-module-tile.modern-module-tile {
    min-height: 150px !important;
    display: grid !important;
    grid-template-rows: auto minmax(0, 1fr) auto !important;
    align-items: start !important;
    padding: 18px !important;
    border: 1px solid var(--pl-line) !important;
    border-left: 5px solid var(--pl-blue) !important;
    border-radius: 8px !important;
    background: #fff !important;
    color: var(--pl-ink) !important;
    box-shadow: none !important;
    text-align: left !important;
  }

  #module-inicio .school-module-tile.modern-module-tile:is(:hover, :focus-visible) {
    border-color: #b7d7f5 !important;
    border-left-color: var(--pl-blue-mid) !important;
    background: #fbfdff !important;
    transform: translateY(-2px) !important;
  }

  #module-inicio .school-module-icon {
    width: 50px !important;
    height: 50px !important;
    border: 0 !important;
    border-radius: 8px !important;
    background: #f3f7fd !important;
    color: var(--pl-blue-dark) !important;
    font-size: 1.1rem !important;
  }

  #module-inicio .school-module-content {
    display: grid;
    gap: 10px;
  }

  #module-inicio .school-module-eyebrow {
    color: var(--pl-blue-dark);
    font-size: .74rem;
    font-weight: 900;
    text-transform: uppercase;
  }

  #module-inicio .school-module-label {
    color: var(--pl-ink) !important;
    font-size: 1rem !important;
    font-weight: 900 !important;
  }

  #module-inicio .school-module-description {
    color: var(--pl-muted) !important;
    font-size: .88rem !important;
    line-height: 1.55 !important;
  }

  #module-inicio .school-module-action {
    width: fit-content;
    min-height: 34px;
    display: inline-flex !important;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border: 1px solid #efd59d;
    border-radius: 8px;
    background: #fff8ec;
    color: #794600 !important;
    font-size: .82rem !important;
    font-weight: 900 !important;
  }

  #module-inicio .home-module-directory {
    display: grid !important;
    gap: 18px !important;
    padding: 0 !important;
    background: transparent !important;
  }

  #module-inicio .home-module-section {
    display: grid !important;
    gap: 12px !important;
    padding: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
  }

  #module-inicio .home-section-title {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    margin: 0 !important;
  }

  #module-inicio .home-section-title h2 {
    margin: 0 !important;
    font-size: 1.08rem !important;
  }

  #module-inicio .home-section-title small {
    padding: 9px 12px;
    border-radius: 8px;
    background: var(--pl-blue-soft);
    color: var(--pl-blue-dark);
    font-weight: 900;
  }

  #module-inicio .home-summary-list {
    display: grid;
    gap: 12px;
  }

  #module-inicio .home-summary-list article {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    min-height: 64px;
    align-items: center;
    padding: 14px;
    border: 1px solid var(--pl-line);
    border-left: 5px solid var(--pl-blue);
    border-radius: 8px;
    background: #fff;
  }

  #module-inicio .home-summary-list span {
    color: #5b746c;
    font-size: .82rem;
    font-weight: 900;
  }

  #module-inicio .home-summary-list b {
    color: #15261f;
    font-size: .9rem;
  }

  #module-inicio .home-live-panel {
    background: linear-gradient(180deg, #fff, #fffdf5) !important;
    border-left-color: var(--pl-yellow-strong);
  }

  #module-inicio .home-live-panel .btn-primary {
    width: 100%;
    justify-content: center;
    background: var(--pl-blue) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-category-panel {
    padding: clamp(14px, 1.4vw, 24px) !important;
    background: transparent !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .panel-categoria {
    display: grid;
    gap: 16px;
    max-width: 1680px;
    margin: 0 auto;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .category-panel-head {
    border: 1px solid var(--pl-line) !important;
    border-left: 8px solid var(--pl-blue) !important;
    border-radius: 8px !important;
    background: #fff !important;
    box-shadow: 0 16px 34px rgba(21, 32, 51, .08) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .grid-modulos {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)) !important;
    gap: 14px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .config-section-picker {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 10px !important;
    padding: 10px !important;
    border: 1px solid var(--pl-line) !important;
    border-radius: 8px !important;
    background: #fff !important;
    box-shadow: 0 10px 22px rgba(21, 32, 51, .06) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .config-section-picker button {
    min-height: 48px !important;
    justify-content: center !important;
    gap: 8px !important;
    border: 1px solid transparent !important;
    border-radius: 8px !important;
    background: #f7fbff !important;
    color: var(--pl-blue-dark) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .config-section-picker button.active {
    border-color: #b9d7f4 !important;
    background: var(--pl-blue) !important;
    color: #fff !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .config-panel-card {
    border-radius: 8px !important;
  }
}

@media screen and (min-width: 981px) {
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain {
    margin-left: var(--preview-sidebar-width) !important;
    width: calc(100vw - var(--preview-sidebar-width)) !important;
    max-width: calc(100vw - var(--preview-sidebar-width)) !important;
  }
}

@media screen and (max-width: 1180px) {
  #module-inicio .home-stat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #module-inicio .home-dashboard-grid {
    grid-template-columns: 1fr;
  }
}

@media screen and (max-width: 980px) {
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar {
    min-height: 64px !important;
    width: 100% !important;
    padding: 8px 12px !important;
    border-bottom: 1px solid var(--pl-line) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand {
    padding: 0 !important;
    align-items: center !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-logo,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-logo img {
    width: 42px !important;
    height: 42px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .mobile-menu-toggle {
    display: grid !important;
    place-items: center !important;
    background: var(--pl-blue) !important;
    color: #fff !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar {
    padding: 86px 16px 22px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar::after,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar .actions {
    display: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain {
    margin-left: 0 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    padding-top: 64px !important;
  }
}

@media screen and (max-width: 720px) {
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio {
    padding: 12px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio .module-compact-head-executive {
    grid-template-columns: 1fr;
    min-height: 0 !important;
  }

  #module-inicio .module-compact-title {
    padding: 18px !important;
  }

  #module-inicio .home-header-mark {
    display: none;
  }

  #module-inicio .home-header-date {
    justify-self: start;
    padding: 0 18px 18px;
  }

  #module-inicio .home-stat-grid,
  #module-inicio .home-feature-grid,
  #module-inicio .unified-module-grid,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .config-section-picker {
    grid-template-columns: 1fr !important;
  }

  #module-inicio .home-main-panel,
  #module-inicio .home-side-panel {
    padding: 16px;
  }

  #module-inicio .school-module-tile.modern-module-tile {
    min-height: 134px !important;
  }
}

/* Escuela El Plumero: módulos operativos con el diseño aprobado. */
@media screen {
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) :is(#module-calificaciones, #module-asistencia, #module-estudiantes, #module-informes) {
    padding: clamp(14px, 1.4vw, 24px) !important;
    background: transparent !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) :is(#module-calificaciones, #module-asistencia, #module-estudiantes, #module-informes) > :not(.module-head) {
    max-width: 1680px;
    margin-left: auto;
    margin-right: auto;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) :is(#module-calificaciones, #module-asistencia, #module-estudiantes, #module-informes) .module-head {
    max-width: 1680px;
    margin: 0 auto 16px !important;
    border: 1px solid var(--pl-line) !important;
    border-left: 8px solid var(--pl-blue) !important;
    border-radius: 8px !important;
    background: #fff !important;
    box-shadow: 0 16px 34px rgba(21, 32, 51, .08) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) :is(#module-calificaciones, #module-asistencia, #module-estudiantes, #module-informes) .module-head h1 {
    color: var(--pl-blue-dark) !important;
    font-size: clamp(1.55rem, 2.2vw, 2.1rem) !important;
    font-weight: 900 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) :is(#module-calificaciones, #module-asistencia, #module-estudiantes, #module-informes) .module-head p {
    color: var(--pl-muted) !important;
    font-weight: 700 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) :is(#module-calificaciones, #module-asistencia, #module-estudiantes, #module-informes) :is(.card, .course-context, .layout-insight-wrap, .report-workspace, .monthly-attendance-panel, .monthly-attendance-sheet, .grade-dashboard-compact) {
    border: 1px solid var(--pl-line) !important;
    border-radius: 8px !important;
    background: #fff !important;
    box-shadow: 0 14px 30px rgba(21, 32, 51, .07) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) :is(#module-calificaciones, #module-asistencia, #module-estudiantes, #module-informes) :is(.mini-toolbar, .grade-filter-toolbar, .student-filter-bar, .report-filter-grid, .monthly-attendance-panel, .daily-attendance-panel, .report-inline-actions, .data-actions, .form-actions) {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: end !important;
    gap: 12px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) :is(#module-calificaciones, #module-asistencia, #module-estudiantes, #module-informes) :is(label, .search-field) {
    min-width: min(220px, 100%) !important;
    flex: 1 1 220px;
    color: var(--pl-blue-dark) !important;
    font-size: .82rem !important;
    font-weight: 900 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) :is(#module-calificaciones, #module-asistencia, #module-estudiantes, #module-informes) :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
    min-height: 42px !important;
    border: 1px solid var(--pl-line) !important;
    border-radius: 8px !important;
    background: #fff !important;
    color: var(--pl-ink) !important;
    box-shadow: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) :is(#module-calificaciones, #module-asistencia, #module-estudiantes, #module-informes) :is(input, select, textarea):focus {
    border-color: var(--pl-blue) !important;
    outline: 3px solid rgba(20, 118, 207, .14) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) :is(#module-calificaciones, #module-asistencia, #module-estudiantes, #module-informes) :is(.btn-primary, button.btn-primary) {
    background: var(--pl-blue) !important;
    color: #fff !important;
    border: 1px solid var(--pl-blue) !important;
    border-radius: 8px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) :is(#module-calificaciones, #module-asistencia, #module-estudiantes, #module-informes) :is(.btn-soft, .btn-ghost, button.btn-soft, button.btn-ghost) {
    background: #f7fbff !important;
    color: var(--pl-blue-dark) !important;
    border: 1px solid #cfe0f3 !important;
    border-radius: 8px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) :is(#module-calificaciones, #module-asistencia, #module-estudiantes, #module-informes) .btn-accent {
    background: var(--pl-yellow) !important;
    color: #6e4b00 !important;
    border: 1px solid #efd59d !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) :is(#module-calificaciones, #module-asistencia, #module-estudiantes, #module-informes) :is(.table-wrap, .grade-table-wrap, .daily-attendance-table-wrap, .report-grade-table) {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    border: 1px solid #e5edf6 !important;
    border-radius: 8px !important;
    background: #fff !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) :is(#module-calificaciones, #module-asistencia, #module-estudiantes, #module-informes) table {
    border-collapse: separate !important;
    border-spacing: 0 !important;
    min-width: 760px;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) :is(#module-calificaciones, #module-asistencia, #module-estudiantes, #module-informes) th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--pl-blue-soft) !important;
    color: var(--pl-blue-dark) !important;
    font-size: .78rem !important;
    font-weight: 900 !important;
    text-transform: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) :is(#module-calificaciones, #module-asistencia, #module-estudiantes, #module-informes) :is(td, th) {
    border-bottom: 1px solid #e7edf5 !important;
    padding: 11px 12px !important;
    vertical-align: middle !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) :is(#module-calificaciones, #module-asistencia, #module-estudiantes, #module-informes) tr:nth-child(even) td {
    background: #fbfdff !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) :is(#module-calificaciones, #module-asistencia, #module-estudiantes, #module-informes) .empty-state {
    border: 1px dashed #bdd5ee !important;
    border-radius: 8px !important;
    background: #f8fbff !important;
    color: var(--pl-muted) !important;
  }

  /* Calificaciones */
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-calificaciones .grade-dashboard-compact {
    display: grid !important;
    gap: 14px !important;
    padding: 16px !important;
    margin-bottom: 16px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-calificaciones .grade-filters-row {
    display: grid !important;
    grid-template-columns: minmax(260px, .8fr) minmax(0, 1.2fr) !important;
    gap: 14px !important;
    align-items: stretch !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-calificaciones .grade-filter-card {
    box-shadow: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-calificaciones .grade-kpi-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)) !important;
    gap: 12px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-calificaciones .grade-sheet-card {
    padding: 18px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-calificaciones .grade-sheet-card h3 {
    margin: 0 0 12px !important;
    color: var(--pl-blue-dark) !important;
    font-size: 1.24rem !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-calificaciones .grade-spreadsheet-help {
    padding: 12px 14px !important;
    border: 1px solid #efd59d !important;
    border-radius: 8px !important;
    background: #fffaf0 !important;
    color: #71501a !important;
    font-weight: 750 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-calificaciones .grade-cell :is(input, select) {
    min-width: 58px !important;
    min-height: 38px !important;
    text-align: center !important;
    font-weight: 850 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-calificaciones .grade-low {
    color: #b42318 !important;
    background: #fff5f5 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-calificaciones .grade-mid {
    color: #946200 !important;
    background: #fffaf0 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-calificaciones .grade-high {
    color: #067647 !important;
    background: #f0fff8 !important;
  }

  /* Asistencia */
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-tabs {
    max-width: 1680px;
    margin: 0 auto 12px !important;
    padding: 8px !important;
    border: 1px solid var(--pl-line) !important;
    border-radius: 8px !important;
    background: #fff !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-tabs button {
    background: var(--pl-blue) !important;
    color: #fff !important;
    border-radius: 8px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-panel {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(150px, 1fr)) !important;
    gap: 12px !important;
    padding: 16px !important;
    margin-bottom: 14px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-actions {
    grid-column: 1 / -1;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-sheet {
    padding: 18px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .monthly-attendance-title {
    color: var(--pl-blue-dark) !important;
    font-size: 1.22rem !important;
    font-weight: 900 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .monthly-attendance-note {
    margin: 12px 0 !important;
    padding: 12px 14px !important;
    border: 1px solid #efd59d !important;
    border-radius: 8px !important;
    background: #fffaf0 !important;
    color: #71501a !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-input {
    width: 42px !important;
    min-width: 42px !important;
    min-height: 36px !important;
    padding: 0 !important;
    text-align: center !important;
    font-weight: 900 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-att-cell.is-present input,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-att-cell.is-present {
    background: #f0fff8 !important;
    color: #067647 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-att-cell.is-absent input,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-att-cell.is-absent {
    background: #fff5f5 !important;
    color: #b42318 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-att-cell.is-justified input,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-att-cell.is-justified {
    background: #fff4ce !important;
    color: #8a5a00 !important;
  }

  /* Estudiantes */
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-estudiantes .compact-editor,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-estudiantes .students-card {
    padding: 18px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-estudiantes .student-filter-bar {
    margin: 12px 0 16px !important;
    padding: 12px !important;
    border: 1px solid #e5edf6 !important;
    border-radius: 8px !important;
    background: #fbfdff !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-estudiantes .student-icon-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 7px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-estudiantes .icon-only-btn {
    width: 38px !important;
    min-width: 38px !important;
    height: 38px !important;
    min-height: 38px !important;
    padding: 0 !important;
    display: inline-grid !important;
    place-items: center !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-estudiantes .students-table .is-inactive td {
    color: #7a8699 !important;
    background: #f7f8fa !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-estudiantes .students-table .student-position-cell {
    width: 56px !important;
    text-align: center !important;
    font-weight: 900 !important;
    color: var(--pl-blue-dark) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-estudiantes .student-order-actions {
    display: inline-flex !important;
    gap: 4px !important;
    margin-left: 6px !important;
    vertical-align: middle !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-estudiantes .student-order-actions .icon-only-btn {
    width: 28px !important;
    min-width: 28px !important;
    height: 28px !important;
    min-height: 28px !important;
    font-size: .72rem !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-estudiantes .students-table tr[draggable="true"] {
    cursor: grab !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-estudiantes .students-table tr.is-dragging td {
    opacity: .55 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-estudiantes .students-table tr.is-drop-target td {
    box-shadow: inset 0 2px 0 #0ea5e9 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) :is(#module-estudiantes, #module-matriculas) tr.is-retired .student-name-text {
    text-decoration: line-through !important;
    text-decoration-thickness: 2px !important;
    color: #7a8699 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) :is(#module-estudiantes, #module-matriculas) .student-status-tag {
    display: inline-flex !important;
    align-items: center !important;
    margin-left: 8px !important;
    padding: 3px 7px !important;
    border: 1px solid #f3b5b5 !important;
    border-radius: 999px !important;
    background: #fff2f2 !important;
    color: #a71919 !important;
    font-size: .68rem !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    vertical-align: middle !important;
  }

  /* Reportes */
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-informes .report-center-categories {
    max-width: 1680px;
    margin: 0 auto 12px !important;
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(155px, 1fr)) !important;
    gap: 8px !important;
    padding: 8px !important;
    border: 1px solid var(--pl-line) !important;
    border-radius: 8px !important;
    background: #fff !important;
    box-shadow: 0 10px 22px rgba(21, 32, 51, .06) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-informes .report-center-categories button {
    min-height: 44px !important;
    justify-content: center !important;
    gap: 8px !important;
    border: 1px solid transparent !important;
    border-radius: 8px !important;
    background: #f7fbff !important;
    color: var(--pl-blue-dark) !important;
    box-shadow: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-informes .report-center-categories button.active {
    background: var(--pl-blue) !important;
    color: #fff !important;
    border-color: var(--pl-blue) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-informes .report-workspace {
    display: grid !important;
    gap: 12px !important;
    padding: 14px !important;
    margin-bottom: 16px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-informes .report-config-head {
    display: grid !important;
    grid-template-columns: 48px minmax(0, 1fr) !important;
    gap: 12px !important;
    align-items: center !important;
    margin-bottom: 14px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-informes .report-config-head > span {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    background: var(--pl-blue-soft);
    color: var(--pl-blue);
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-informes .report-config-head h3 {
    margin: 0 !important;
    color: var(--pl-blue-dark) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-informes .report-paper,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-informes .academic-grade-report {
    border-radius: 8px !important;
    box-shadow: 0 14px 30px rgba(21, 32, 51, .08) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-informes :is(.report-paper, .academic-grade-report) table {
    min-width: 0 !important;
    width: 100% !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-informes :is(.report-paper, .academic-grade-report) th {
    position: static !important;
  }
}

@media screen and (max-width: 1180px) {
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-calificaciones .grade-filters-row,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-panel {
    grid-template-columns: 1fr 1fr !important;
  }
}

@media screen and (max-width: 720px) {
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) :is(#module-calificaciones, #module-asistencia, #module-estudiantes, #module-informes) {
    padding: 12px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) :is(#module-calificaciones, #module-asistencia, #module-estudiantes, #module-informes) :is(.module-head, .card, .course-context, .report-workspace, .monthly-attendance-panel, .monthly-attendance-sheet, .grade-dashboard-compact) {
    padding: 14px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-calificaciones .grade-filters-row,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-panel,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-informes .report-center-categories {
    grid-template-columns: 1fr !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) :is(#module-calificaciones, #module-asistencia, #module-estudiantes, #module-informes) :is(label, .search-field) {
    flex-basis: 100% !important;
    min-width: 0 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) :is(#module-calificaciones, #module-asistencia, #module-estudiantes, #module-informes) table {
    min-width: 680px;
  }
}

/* Menu institucional azul responsive solicitado. */
@media screen {
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) {
    --pl-nav-blue: #0d3f91;
    --pl-nav-blue-dark: #083274;
    --pl-nav-yellow: #ffd73f;
    --pl-nav-pill: #f8fbff;
    --preview-sidebar-width: clamp(244px, 17vw, 286px);
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar {
    background: var(--pl-nav-blue) !important;
    color: #fff !important;
    border-right: 0 !important;
    border-bottom: 4px solid var(--pl-nav-yellow) !important;
    box-shadow: 0 16px 34px rgba(8, 50, 116, .18) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand {
    color: #fff !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-logo {
    background: #fff !important;
    border: 1px solid rgba(255, 255, 255, .55) !important;
    border-radius: 4px !important;
    padding: 7px !important;
    box-shadow: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-copy b {
    color: #fff !important;
    font-size: 1.12rem !important;
    font-weight: 900 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar {
    background: var(--pl-nav-blue) !important;
    border: 0 !important;
    box-shadow: 10px 0 26px rgba(8, 50, 116, .20) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar::after {
    content: "Año escolar\A" attr(data-year);
    border: 1px solid rgba(255, 255, 255, .28) !important;
    background: rgba(255, 255, 255, .12) !important;
    color: #fff !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar :is(.categoria-menu, .nav-btn) {
    min-height: 46px !important;
    border: 1px solid rgba(255, 255, 255, .18) !important;
    border-radius: 8px !important;
    background: rgba(255, 255, 255, .08) !important;
    color: #fff !important;
    font-weight: 900 !important;
    justify-content: flex-start !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar :is(.categoria-menu, .nav-btn) i {
    background: rgba(255, 255, 255, .16) !important;
    color: var(--pl-nav-yellow) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar :is(.categoria-menu, .nav-btn):is(:hover, :focus-visible) {
    background: rgba(255, 255, 255, .18) !important;
    border-color: rgba(255, 255, 255, .38) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar :is(.categoria-menu, .nav-btn).activa {
    background: var(--pl-nav-pill) !important;
    color: var(--pl-nav-blue) !important;
    border-color: #fff !important;
    box-shadow: inset 5px 0 0 var(--pl-nav-yellow), 0 8px 18px rgba(0, 0, 0, .10) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar :is(.categoria-menu, .nav-btn).activa i {
    background: #edf5ff !important;
    color: var(--pl-nav-blue) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar .actions .icon-btn {
    border-color: rgba(255, 255, 255, .24) !important;
    background: rgba(255, 255, 255, .11) !important;
    color: #fff !important;
  }
}

@media screen and (min-width: 981px) {
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar {
    width: var(--preview-sidebar-width) !important;
    min-height: 150px !important;
    padding: 18px 18px 14px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand {
    padding: 0 !important;
    align-items: center !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-logo,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-logo img {
    width: 74px !important;
    height: 66px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar {
    width: var(--preview-sidebar-width) !important;
    padding: 170px 16px 24px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    overflow-y: auto !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar :is(.categoria-menu, .nav-btn) {
    width: 100% !important;
    margin: 0 !important;
    padding: 9px 11px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar .actions {
    left: 16px !important;
    bottom: 24px !important;
    width: calc(var(--preview-sidebar-width) - 32px) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar::after {
    left: 16px !important;
    bottom: 84px !important;
    width: calc(var(--preview-sidebar-width) - 32px) !important;
    min-height: 66px !important;
    padding: 13px 15px !important;
  }
}

@media screen and (max-width: 980px) {
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar {
    min-height: 66px !important;
    padding: 9px 10px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-logo,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-logo img {
    width: 48px !important;
    height: 48px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .mobile-menu-toggle {
    background: var(--pl-nav-yellow) !important;
    color: var(--pl-nav-blue-dark) !important;
    border-radius: 8px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar {
    position: fixed !important;
    top: 66px !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 900 !important;
    width: 100vw !important;
    height: 60px !important;
    padding: 8px 10px !important;
    display: flex !important;
    flex-direction: row !important;
    gap: 8px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    transform: none !important;
    border-bottom: 4px solid var(--pl-nav-yellow) !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar::-webkit-scrollbar {
    height: 7px;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, .55);
    border-radius: 999px;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar::after {
    display: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar :is(.categoria-menu, .nav-btn) {
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: none !important;
    min-width: max-content !important;
    min-height: 40px !important;
    margin: 0 !important;
    padding: 8px 13px !important;
    background: #fff !important;
    color: var(--pl-nav-blue) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar :is(.categoria-menu, .nav-btn) i {
    display: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar :is(.categoria-menu, .nav-btn).activa {
    background: var(--pl-nav-yellow) !important;
    border-color: var(--pl-nav-yellow) !important;
    color: var(--pl-nav-blue-dark) !important;
    box-shadow: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain {
    padding-top: 126px !important;
  }
}

@media screen and (max-width: 560px) {
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-copy b {
    max-width: 145px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar {
    height: 56px !important;
    padding: 7px 8px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar :is(.categoria-menu, .nav-btn) {
    min-height: 38px !important;
    padding: 8px 11px !important;
    font-size: .83rem !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain {
    padding-top: 122px !important;
  }
}

/* Correccion estructural: sidebar real en escritorio y drawer en movil. */
@media screen {
  html,
  body {
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) {
    --pl-sidebar-width: 250px;
    --pl-mobile-topbar-height: 64px;
    --preview-sidebar-width: var(--pl-sidebar-width);
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) *,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) *::before,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) *::after {
    box-sizing: border-box;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .app-shell {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 100dvh !important;
    overflow-x: hidden !important;
    background: var(--pl-page, #f6f9fd) !important;
  }

  body.is-authenticated.menu-open:not(.guardian-portal-only):not(.report-print-body) {
    overflow: hidden !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar {
    background: var(--pl-nav-blue, #0d3f91) !important;
    color: #fff !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-row {
    width: 100% !important;
    min-width: 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand {
    min-width: 0 !important;
    width: 100% !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    color: #fff !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-logo {
    flex: 0 0 auto !important;
    display: grid !important;
    place-items: center !important;
    background: #fff !important;
    border-radius: 6px !important;
    border: 1px solid rgba(255, 255, 255, .72) !important;
    padding: 6px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-logo img {
    display: block !important;
    object-fit: contain !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-copy {
    min-width: 0 !important;
    display: grid !important;
    gap: 3px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-copy b {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    font-weight: 900 !important;
    line-height: 1.12 !important;
    white-space: normal !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-copy small {
    color: rgba(255, 255, 255, .82) !important;
    -webkit-text-fill-color: rgba(255, 255, 255, .82) !important;
    display: block !important;
    font-size: .76rem !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .platform-developer-credit {
    color: rgba(255, 255, 255, .82) !important;
    -webkit-text-fill-color: rgba(255, 255, 255, .82) !important;
    font-size: .74rem !important;
    text-align: center !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar {
    background: var(--pl-nav-blue, #0d3f91) !important;
    color: #fff !important;
    border: 0 !important;
    box-shadow: none !important;
    overscroll-behavior: contain !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar :is(.categoria-menu, .nav-btn) {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar :is(.categoria-menu, .nav-btn) span {
    min-width: 0 !important;
    overflow-wrap: anywhere !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain {
    min-width: 0 !important;
    overflow-x: hidden !important;
    background: var(--pl-page, #f6f9fd) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: hidden !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.module-head, .module-hero, .category-panel-head, .card, .panel, .list-card, .list-table-card, .panel-listado, .course-context, .report-workspace, .matricula-editor, .matricula-list, form, .form-grid, .filters-row, .filter-grid) {
    max-width: 100% !important;
    min-width: 0 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.table-wrap, .smart-table, .grade-table-wrap, .monthly-attendance-table-wrap, .daily-attendance-table-wrap, .academic-report-table-scroll, .achievement-table-scroll, .permission-table-wrap, .registro-users-table-wrap, .ficha-table-wrapper, .utp-critical-table-wrap, .guardian-table-wrap) {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain table {
    width: max-content !important;
    min-width: min(720px, 100%) !important;
    max-width: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.form-actions, .module-actions-inline, .module-head-actions, .module-hero-actions, .list-card-actions, .table-actions, .report-actions, .bulk-actions, .matricula-tabs) {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-matriculas :is(.module-actions-inline, .module-hero-actions, .form-actions, .matricula-tabs) > :is(button, a, label) {
    flex: 1 1 168px !important;
    min-width: min(168px, 100%) !important;
    max-width: 100% !important;
  }
}

@media screen and (min-width: 981px) {
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar {
    position: fixed !important;
    inset: 0 auto auto 0 !important;
    width: var(--pl-sidebar-width) !important;
    height: 142px !important;
    min-height: 142px !important;
    padding: 18px 16px 12px !important;
    z-index: 1000 !important;
    border-bottom: 4px solid var(--pl-nav-yellow, #ffd73f) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .mobile-menu-toggle {
    display: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-row {
    height: 100% !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand {
    padding: 0 !important;
    flex: 0 0 auto !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-logo,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-logo img {
    width: 58px !important;
    height: 58px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-copy b {
    font-size: 1rem !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .active-module-card,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar .actions #globalStudentSearchBtn,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar .actions #myAccountBtn {
    display: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .platform-developer-credit {
    position: fixed !important;
    left: 16px !important;
    bottom: 22px !important;
    width: calc(var(--pl-sidebar-width) - 32px) !important;
    display: block !important;
    z-index: 1002 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar .actions {
    position: fixed !important;
    left: 16px !important;
    bottom: 52px !important;
    width: calc(var(--pl-sidebar-width) - 32px) !important;
    display: flex !important;
    padding: 0 !important;
    z-index: 1002 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar .actions #logoutBtn {
    width: 100% !important;
    min-height: 42px !important;
    justify-content: center !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar {
    position: fixed !important;
    inset: 142px auto 0 0 !important;
    width: var(--pl-sidebar-width) !important;
    height: calc(100dvh - 142px) !important;
    padding: 14px 14px 112px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    transform: none !important;
    z-index: 999 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar::after {
    content: none !important;
    display: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain {
    margin-left: var(--pl-sidebar-width) !important;
    width: calc(100% - var(--pl-sidebar-width)) !important;
    max-width: calc(100% - var(--pl-sidebar-width)) !important;
    min-height: 100dvh !important;
    padding: 14px !important;
  }

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

@media screen and (max-width: 980px) {
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar {
    position: fixed !important;
    inset: 0 0 auto 0 !important;
    width: 100% !important;
    height: var(--pl-mobile-topbar-height) !important;
    min-height: var(--pl-mobile-topbar-height) !important;
    padding: 8px 12px !important;
    z-index: 1200 !important;
    border-bottom: 4px solid var(--pl-nav-yellow, #ffd73f) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-row {
    flex-direction: row !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .mobile-menu-toggle {
    display: grid !important;
    place-items: center !important;
    flex: 0 0 42px !important;
    width: 42px !important;
    height: 42px !important;
    min-height: 42px !important;
    background: var(--pl-nav-yellow, #ffd73f) !important;
    color: var(--pl-nav-blue-dark, #083274) !important;
    border: 0 !important;
    border-radius: 8px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand {
    flex: 1 1 auto !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-logo,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-logo img {
    width: 42px !important;
    height: 42px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-copy b {
    max-width: none !important;
    font-size: .96rem !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-copy small,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .active-module-card,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .platform-developer-credit,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar .actions {
    display: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .app-shell::before {
    content: "" !important;
    position: fixed !important;
    inset: var(--pl-mobile-topbar-height) 0 0 0 !important;
    z-index: 1180 !important;
    background: rgba(5, 20, 44, .42) !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transition: opacity .2s ease !important;
  }

  body.is-authenticated.menu-open:not(.guardian-portal-only):not(.report-print-body) .app-shell::before {
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar {
    position: fixed !important;
    top: var(--pl-mobile-topbar-height) !important;
    left: 0 !important;
    right: auto !important;
    bottom: 0 !important;
    width: min(86vw, 310px) !important;
    height: calc(100dvh - var(--pl-mobile-topbar-height)) !important;
    padding: 14px 12px 18px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    transform: translateX(-105%) !important;
    transition: transform .2s ease !important;
    border-right: 1px solid rgba(255, 255, 255, .16) !important;
    border-bottom: 0 !important;
    z-index: 1190 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar.open,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar.open {
    transform: translateX(0) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar::after {
    content: none !important;
    display: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar :is(.categoria-menu, .nav-btn) {
    flex: 0 0 auto !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 44px !important;
    padding: 10px 12px !important;
    background: rgba(255, 255, 255, .09) !important;
    color: #fff !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar :is(.categoria-menu, .nav-btn) i {
    display: inline-grid !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar :is(.categoria-menu, .nav-btn).activa {
    background: #fff !important;
    color: var(--pl-nav-blue, #0d3f91) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain {
    margin-left: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 100dvh !important;
    padding: calc(var(--pl-mobile-topbar-height) + 12px) 12px 14px !important;
  }

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

@media screen and (max-width: 620px) {
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain {
    padding-inline: 10px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.module-head, .module-hero, .category-panel-head) {
    grid-template-columns: 1fr !important;
    grid-template-areas: "title" "session" "actions" "summary" !important;
    padding: 12px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.form-actions, .module-actions-inline, .module-head-actions, .module-hero-actions, .list-card-actions, .table-actions, .report-actions, .bulk-actions, .matricula-tabs) {
    justify-content: stretch !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.form-actions, .module-actions-inline, .module-head-actions, .module-hero-actions, .list-card-actions, .table-actions, .report-actions, .bulk-actions, .matricula-tabs) > :is(button, a, label, select) {
    flex: 1 1 140px !important;
  }
}

/* Diseño final Escuela El Plumero: sidebar blanco y panel principal minimalista. */
@media screen {
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) {
    --pl-sidebar-width: 250px;
    --pl-mobile-topbar-height: 64px;
    --pl-final-bg: #f4f8fd;
    --pl-final-card: #ffffff;
    --pl-final-ink: #071f55;
    --pl-final-muted: #71809b;
    --pl-final-line: #dde8f5;
    --pl-final-blue: #1d73e8;
    --pl-final-yellow: #ffca38;
    background: var(--pl-final-bg) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .app-shell,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain {
    background: var(--pl-final-bg) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar {
    background: #fff !important;
    color: var(--pl-final-ink) !important;
    border-color: var(--pl-final-line) !important;
    box-shadow: 8px 0 24px rgba(15, 42, 82, .06) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand {
    color: var(--pl-final-ink) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-logo {
    background: #fff !important;
    border: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-copy b {
    color: var(--pl-final-ink) !important;
    -webkit-text-fill-color: var(--pl-final-ink) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-copy small,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .platform-developer-credit {
    color: var(--pl-final-muted) !important;
    -webkit-text-fill-color: var(--pl-final-muted) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar :is(.categoria-menu, .nav-btn) {
    min-height: 44px !important;
    border: 0 !important;
    border-radius: 8px !important;
    background: transparent !important;
    color: #53627d !important;
    font-weight: 760 !important;
    box-shadow: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar :is(.categoria-menu, .nav-btn) i {
    width: 24px !important;
    color: #65728f !important;
    background: transparent !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar :is(.categoria-menu, .nav-btn):is(:hover, :focus-visible) {
    background: #eef5ff !important;
    color: var(--pl-final-blue) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar :is(.categoria-menu, .nav-btn).activa {
    background: #eaf3ff !important;
    color: var(--pl-final-blue) !important;
    box-shadow: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar :is(.categoria-menu, .nav-btn).activa i {
    color: var(--pl-final-blue) !important;
    background: transparent !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar .actions #logoutBtn {
    border: 0 !important;
    background: #fff !important;
    color: #53627d !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.card, .panel, .list-card, .list-table-card, .panel-listado, .course-context, .report-workspace, .monthly-attendance-sheet, .grade-dashboard-compact, .matricula-editor, .home-main-panel, .home-side-panel, .home-stat-card, .school-module-tile) {
    border: 1px solid var(--pl-final-line) !important;
    border-radius: 8px !important;
    background: #fff !important;
    box-shadow: 0 12px 28px rgba(15, 42, 82, .06) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(h1, h2, h3, h4) {
    color: var(--pl-final-ink) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.btn-primary, button.btn-primary, .school-module-action, .home-frequent-actions button:hover) {
    background: var(--pl-final-yellow) !important;
    border-color: var(--pl-final-yellow) !important;
    color: #071f55 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio.plumero-home-shell,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-inicio {
    background: transparent !important;
  }

  #module-inicio .plumero-home-shell {
    display: grid !important;
    gap: 16px !important;
    max-width: 1240px !important;
    margin: 0 auto !important;
  }

  #module-inicio .module-compact-head-executive {
    min-height: 60px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    grid-template-columns: minmax(0, 1fr) auto auto !important;
  }

  #module-inicio .home-header-copy h1 {
    margin: 0 !important;
    font-size: clamp(1.75rem, 3vw, 2.5rem) !important;
    line-height: 1.05 !important;
  }

  #module-inicio .home-header-copy p {
    margin: 4px 0 0 !important;
    color: var(--pl-final-muted) !important;
    font-weight: 700 !important;
  }

  #module-inicio .module-compact-year {
    align-self: start !important;
  }

  #module-inicio .module-year-control {
    border: 1px solid var(--pl-final-line) !important;
    border-radius: 8px !important;
    background: #fff !important;
    padding: 8px 10px !important;
    box-shadow: 0 8px 20px rgba(15, 42, 82, .05) !important;
  }

  #module-inicio .module-compact-actions {
    display: none !important;
  }

  #module-inicio .home-stat-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 12px !important;
  }

  #module-inicio .home-stat-card {
    display: grid !important;
    grid-template-columns: 54px minmax(0, 1fr) !important;
    align-items: center !important;
    min-height: 118px !important;
    padding: 18px !important;
  }

  #module-inicio .home-stat-icon {
    width: 50px !important;
    height: 50px !important;
    border-radius: 50% !important;
    display: grid !important;
    place-items: center !important;
    background: #eaf3ff !important;
    color: var(--pl-final-blue) !important;
  }

  #module-inicio .home-stat-card:nth-child(2) .home-stat-icon { background: #e6f8ef !important; color: #159b69 !important; }
  #module-inicio .home-stat-card:nth-child(3) .home-stat-icon { background: #fff1df !important; color: #e46f1a !important; }
  #module-inicio .home-stat-card:nth-child(4) .home-stat-icon { background: #f0eaff !important; color: #7357d9 !important; }

  #module-inicio .home-stat-card b {
    font-size: 1.35rem !important;
    color: var(--pl-final-ink) !important;
  }

  #module-inicio .home-dashboard-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 280px !important;
    gap: 14px !important;
  }

  #module-inicio .home-main-panel,
  #module-inicio .home-side-panel {
    padding: 16px !important;
  }

  #module-inicio .home-directory-panel {
    display: none !important;
  }

  #module-inicio .home-activity-panel {
    grid-column: 1 / -1 !important;
  }

  #module-inicio .home-feature-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
  }

  #module-inicio .school-module-tile.home-feature-card {
    min-height: 124px !important;
    padding: 14px !important;
    display: grid !important;
    grid-template-columns: 54px minmax(0, 1fr) auto !important;
    gap: 14px !important;
    align-items: start !important;
  }

  #module-inicio .school-module-icon {
    width: 50px !important;
    height: 50px !important;
    border-radius: 8px !important;
    background: #eaf3ff !important;
    color: var(--pl-final-blue) !important;
  }

  #module-inicio .school-module-action {
    align-self: start !important;
    border-radius: 8px !important;
    padding: 9px 14px !important;
  }

  #module-inicio .home-frequent-actions,
  #module-inicio .home-activity-list {
    display: grid !important;
    gap: 12px !important;
  }

  #module-inicio .home-frequent-actions button,
  #module-inicio .home-activity-list article {
    display: grid !important;
    grid-template-columns: 42px minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 12px !important;
    min-height: 64px !important;
    padding: 12px !important;
    border: 1px solid var(--pl-final-line) !important;
    border-radius: 8px !important;
    background: #fff !important;
    color: var(--pl-final-ink) !important;
    text-align: left !important;
  }

  #module-inicio .home-frequent-actions button > i:first-child,
  #module-inicio .home-activity-list article > i {
    width: 38px !important;
    height: 38px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 8px !important;
    background: #eef5ff !important;
    color: var(--pl-final-blue) !important;
  }
}

@media screen and (min-width: 981px) {
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar {
    height: 150px !important;
    min-height: 150px !important;
    border-right: 1px solid var(--pl-final-line) !important;
    border-bottom: 0 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand {
    display: grid !important;
    justify-items: center !important;
    text-align: center !important;
    gap: 8px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-logo,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-logo img {
    width: 74px !important;
    height: 74px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar {
    inset: 150px auto 0 0 !important;
    height: calc(100dvh - 150px) !important;
    padding: 12px 14px 118px !important;
    border-right: 1px solid var(--pl-final-line) !important;
  }
}

@media screen and (max-width: 980px) {
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar {
    background: #fff !important;
    color: var(--pl-final-ink) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar :is(.categoria-menu, .nav-btn) {
    color: #53627d !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar :is(.categoria-menu, .nav-btn).activa {
    background: #eaf3ff !important;
    color: var(--pl-final-blue) !important;
  }

  #module-inicio .home-stat-grid,
  #module-inicio .home-feature-grid,
  #module-inicio .home-dashboard-grid {
    grid-template-columns: 1fr !important;
  }
}

@media screen and (max-width: 760px) {
  #module-inicio .home-stat-grid {
    grid-template-columns: 1fr !important;
  }

  #module-inicio .school-module-tile.home-feature-card {
    grid-template-columns: 46px minmax(0, 1fr) !important;
  }

  #module-inicio .school-module-action {
    grid-column: 2 !important;
    justify-self: start !important;
  }
}

/* Correccion de visibilidad: sidebar completo desde tablet/escritorio. */
@media screen and (min-width: 768px) {
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar {
    position: fixed !important;
    inset: 0 auto auto 0 !important;
    display: block !important;
    width: var(--pl-sidebar-width, 250px) !important;
    height: 150px !important;
    min-height: 150px !important;
    padding: 18px 16px 12px !important;
    z-index: 1000 !important;
    border-right: 1px solid var(--pl-final-line, #dde8f5) !important;
    border-bottom: 0 !important;
    background: #fff !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar {
    position: fixed !important;
    inset: 150px auto 0 0 !important;
    display: flex !important;
    flex-direction: column !important;
    width: var(--pl-sidebar-width, 250px) !important;
    height: calc(100dvh - 150px) !important;
    padding: 12px 14px 118px !important;
    gap: 8px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    transform: none !important;
    visibility: visible !important;
    opacity: 1 !important;
    z-index: 999 !important;
    border-right: 1px solid var(--pl-final-line, #dde8f5) !important;
    background: #fff !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .mobile-menu-toggle {
    display: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain {
    margin-left: var(--pl-sidebar-width, 250px) !important;
    width: calc(100% - var(--pl-sidebar-width, 250px)) !important;
    max-width: calc(100% - var(--pl-sidebar-width, 250px)) !important;
    padding: 14px !important;
  }
}

@media screen and (max-width: 767px) {
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar {
    position: fixed !important;
    inset: 0 0 auto 0 !important;
    display: block !important;
    width: 100% !important;
    height: var(--pl-mobile-topbar-height, 64px) !important;
    min-height: var(--pl-mobile-topbar-height, 64px) !important;
    z-index: 1200 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar {
    position: fixed !important;
    top: var(--pl-mobile-topbar-height, 64px) !important;
    left: 0 !important;
    bottom: 0 !important;
    display: flex !important;
    width: min(86vw, 310px) !important;
    height: calc(100dvh - var(--pl-mobile-topbar-height, 64px)) !important;
    transform: translateX(-105%) !important;
    visibility: visible !important;
    opacity: 1 !important;
    z-index: 1190 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar.open,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar.open {
    transform: translateX(0) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain {
    margin-left: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: calc(var(--pl-mobile-topbar-height, 64px) + 12px) 10px 14px !important;
  }
}

/* Rescate visual del menu: evita items colapsados u ocultos por estilos heredados. */
@media screen and (min-width: 768px) {
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) {
    --pl-sidebar-width: 250px !important;
    --pl-sidebar-head: 188px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar {
    width: var(--pl-sidebar-width) !important;
    height: var(--pl-sidebar-head) !important;
    min-height: var(--pl-sidebar-head) !important;
    max-height: var(--pl-sidebar-head) !important;
    overflow: hidden !important;
    padding: 24px 18px 16px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-row {
    height: auto !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    justify-items: center !important;
    align-items: start !important;
    gap: 10px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    justify-items: center !important;
    gap: 8px !important;
    padding: 0 !important;
    text-align: center !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-logo,
  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-logo img {
    width: 78px !important;
    height: 78px !important;
    display: block !important;
    object-fit: contain !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-copy {
    display: grid !important;
    justify-items: center !important;
    gap: 4px !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-copy b {
    display: block !important;
    max-width: 190px !important;
    font-size: 1rem !important;
    line-height: 1.1 !important;
    white-space: normal !important;
    overflow: visible !important;
    text-align: center !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-copy small {
    display: block !important;
    color: #6f7b91 !important;
    font-size: .78rem !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar {
    top: var(--pl-sidebar-head) !important;
    bottom: 0 !important;
    left: 0 !important;
    width: var(--pl-sidebar-width) !important;
    height: calc(100dvh - var(--pl-sidebar-head)) !important;
    min-height: 0 !important;
    padding: 12px 14px 128px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 6px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    background: #fff !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link {
    position: static !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    display: grid !important;
    grid-template-columns: 28px minmax(0, 1fr) !important;
    align-items: center !important;
    justify-content: start !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 42px !important;
    height: auto !important;
    margin: 0 !important;
    padding: 9px 12px !important;
    border: 0 !important;
    border-radius: 8px !important;
    background: transparent !important;
    color: #53627d !important;
    font-size: .9rem !important;
    font-weight: 760 !important;
    line-height: 1.15 !important;
    text-align: left !important;
    box-shadow: none !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link i {
    display: inline-grid !important;
    width: 24px !important;
    height: 24px !important;
    place-items: center !important;
    color: #65728f !important;
    background: transparent !important;
    font-size: 1rem !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link span {
    display: block !important;
    min-width: 0 !important;
    color: inherit !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link.activa {
    background: #eaf3ff !important;
    color: #1d73e8 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link.activa i {
    color: #1d73e8 !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .platform-developer-credit {
    left: 18px !important;
    bottom: 74px !important;
    width: calc(var(--pl-sidebar-width) - 36px) !important;
    color: #6f7b91 !important;
    text-align: left !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar .actions {
    left: 18px !important;
    bottom: 20px !important;
    width: calc(var(--pl-sidebar-width) - 36px) !important;
  }

  body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain,
  body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain {
    margin-left: var(--pl-sidebar-width) !important;
    width: calc(100% - var(--pl-sidebar-width)) !important;
    max-width: calc(100% - var(--pl-sidebar-width)) !important;
  }
}

/* Regla final de visibilidad: gana a estilos antiguos que dejaban el menu sin textos. */
html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link {
  position: static !important;
  display: grid !important;
  grid-template-columns: 28px minmax(0, 1fr) !important;
  align-items: center !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 42px !important;
  height: auto !important;
  margin: 0 !important;
  padding: 9px 12px !important;
  border: 0 !important;
  border-radius: 8px !important;
  transform: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  color: #53627d !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
  text-align: left !important;
}

html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link i,
html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link span {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  min-width: 0 !important;
  color: inherit !important;
}

html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link i {
  display: inline-grid !important;
  width: 24px !important;
  height: 24px !important;
  place-items: center !important;
  color: #65728f !important;
}

html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link span {
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
}

html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link.activa {
  color: #1d73e8 !important;
  background: #eaf3ff !important;
  box-shadow: inset 4px 0 0 #1d73e8 !important;
}

html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link.activa,
html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link.activa {
  color: #1d73e8 !important;
  background: #eaf3ff !important;
  box-shadow: inset 4px 0 0 #1d73e8 !important;
}

@media screen and (max-width: 767px) {
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar {
    padding: 12px 14px 96px !important;
    gap: 6px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    background: #fff !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link {
    min-height: 44px !important;
    font-size: .9rem !important;
  }
}

/* Anchos criticos con valores literales para evitar variables heredadas en cero. */
@media screen and (min-width: 768px) {
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar,
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar {
    position: fixed !important;
    inset: 0 auto 0 0 !important;
    width: 250px !important;
    min-width: 250px !important;
    max-width: 250px !important;
    height: 188px !important;
    min-height: 188px !important;
    max-height: 188px !important;
    display: block !important;
    overflow: hidden !important;
    background: #fff !important;
    z-index: 1100 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar,
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar {
    position: fixed !important;
    inset: 188px auto 0 0 !important;
    width: 250px !important;
    min-width: 250px !important;
    max-width: 250px !important;
    height: calc(100dvh - 188px) !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 6px !important;
    padding: 12px 14px 128px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    transform: none !important;
    visibility: visible !important;
    opacity: 1 !important;
    background: #fff !important;
    border-right: 1px solid #dde8f5 !important;
    z-index: 1050 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain {
    position: relative !important;
    top: 0 !important;
    margin-left: 250px !important;
    width: calc(100% - 250px) !important;
    max-width: calc(100% - 250px) !important;
    min-width: 0 !important;
    padding: 14px !important;
    overflow-x: hidden !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar .platform-developer-credit,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar .platform-developer-credit,
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar .platform-developer-credit {
    position: fixed !important;
    left: 18px !important;
    bottom: 74px !important;
    display: block !important;
    width: 214px !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    color: #6f7b91 !important;
    -webkit-text-fill-color: #6f7b91 !important;
    opacity: 1 !important;
    font-size: .72rem !important;
    font-weight: 650 !important;
    line-height: 1.2 !important;
    text-align: left !important;
    white-space: normal !important;
    z-index: 1120 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar .actions {
    position: fixed !important;
    left: 18px !important;
    bottom: 20px !important;
    display: flex !important;
    width: 214px !important;
    min-width: 214px !important;
    max-width: 214px !important;
    margin: 0 !important;
    padding: 0 !important;
    z-index: 1120 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar .actions #logoutBtn,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar .actions #logoutBtn,
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar .actions #logoutBtn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    width: 214px !important;
    min-width: 214px !important;
    max-width: 214px !important;
    min-height: 42px !important;
    margin: 0 !important;
    padding: 10px 14px !important;
    border: 1px solid #f0b8b8 !important;
    border-radius: 8px !important;
    background: #fff8f8 !important;
    color: #a61b1b !important;
    -webkit-text-fill-color: #a61b1b !important;
    font-size: .86rem !important;
    font-weight: 760 !important;
    line-height: 1.1 !important;
    box-shadow: none !important;
    opacity: 1 !important;
    visibility: visible !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar .actions #logoutBtn i,
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar .actions #logoutBtn span {
    display: inline-flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    color: inherit !important;
    -webkit-text-fill-color: currentColor !important;
  }
}

@media screen and (max-width: 767px) {
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar {
    width: min(86vw, 310px) !important;
    min-width: min(86vw, 310px) !important;
    max-width: min(86vw, 310px) !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain {
    margin-left: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }
}

/* Correccion final de espaciado: elimina el hueco superior heredado por cabeceras fijas antiguas. */
@media screen and (min-width: 768px) {
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain,
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain {
    position: relative !important;
    top: 0 !important;
    margin-top: 0 !important;
    padding-top: 14px !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module,
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module.active,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module.active,
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module,
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module.active {
    margin-top: 0 !important;
    padding-top: 0 !important;
    min-height: 0 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module.active > .module-head,
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module.active > .module-head.module-compact-head,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module.active > .module-head,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module.active > .module-head.module-compact-head,
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module.active > .module-head,
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module.active > .module-head.module-compact-head {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 12px !important;
    border-radius: 8px !important;
    box-sizing: border-box !important;
  }
}

@media screen and (max-width: 767px) {
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain,
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain {
    margin-top: 0 !important;
    padding-top: calc(var(--pl-mobile-topbar-height, 64px) + 10px) !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module,
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module.active,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module.active,
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module,
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module.active {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module.active > .module-head,
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module.active > .module-head.module-compact-head,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module.active > .module-head,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module.active > .module-head.module-compact-head,
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module.active > .module-head,
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module.active > .module-head.module-compact-head {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 10px !important;
    border-radius: 8px !important;
    box-sizing: border-box !important;
  }
}

/* Paleta final Escuela El Plumero: azul, blanco y amarillo aplicada a todos los modulos. */
@media screen {
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) {
    --pl-brand-blue: #0d4592;
    --pl-brand-blue-2: #176bd8;
    --pl-brand-blue-dark: #071f55;
    --pl-brand-yellow: #ffca38;
    --pl-brand-yellow-2: #ffd94d;
    --pl-brand-bg: #f4f8fd;
    --pl-brand-card: #ffffff;
    --pl-brand-line: #d6e4f4;
    --pl-brand-muted: #536583;
    background: var(--pl-brand-bg) !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain,
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain {
    background: var(--pl-brand-bg) !important;
    color: var(--pl-brand-blue-dark) !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.module-head, .module-hero, .module-compact-head, .category-panel-head),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.module-head, .module-hero, .module-compact-head, .category-panel-head),
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.module-head, .module-hero, .module-compact-head, .category-panel-head) {
    border: 1px solid rgba(255, 255, 255, .22) !important;
    border-bottom: 4px solid var(--pl-brand-yellow) !important;
    border-radius: 8px !important;
    background: linear-gradient(100deg, var(--pl-brand-blue) 0%, #1259bd 62%, var(--pl-brand-blue-2) 100%) !important;
    color: #fff !important;
    box-shadow: 0 10px 24px rgba(13, 69, 146, .16) !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.module-head, .module-hero, .module-compact-head, .category-panel-head) :is(h1, h2, h3, p, small, span, b, label),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.module-head, .module-hero, .module-compact-head, .category-panel-head) :is(h1, h2, h3, p, small, span, b, label),
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.module-head, .module-hero, .module-compact-head, .category-panel-head) :is(h1, h2, h3, p, small, span, b, label) {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.module-head-icon, .module-section-icon, .module-icon, .module-badge),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.module-head-icon, .module-section-icon, .module-icon, .module-badge) {
    border: 1px solid rgba(255, 255, 255, .34) !important;
    background: rgba(255, 255, 255, .14) !important;
    color: #fff !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.card, .panel, .section-panel, .list-card, .list-table-card, .panel-listado, .course-context, .report-workspace, .report-control-panel, .subject-summary, .utp-panel, .monthly-attendance-panel, .monthly-attendance-sheet, .grade-dashboard-compact, .matricula-editor, .matricula-list, .config-card, .admin-control-center, .home-main-panel, .home-side-panel, .home-stat-card, .school-module-tile, form),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.card, .panel, .section-panel, .list-card, .list-table-card, .panel-listado, .course-context, .report-workspace, .report-control-panel, .subject-summary, .utp-panel, .monthly-attendance-panel, .monthly-attendance-sheet, .grade-dashboard-compact, .matricula-editor, .matricula-list, .config-card, .admin-control-center, .home-main-panel, .home-side-panel, .home-stat-card, .school-module-tile, form) {
    border: 1px solid var(--pl-brand-line) !important;
    border-radius: 8px !important;
    background: var(--pl-brand-card) !important;
    color: var(--pl-brand-blue-dark) !important;
    box-shadow: 0 10px 24px rgba(13, 69, 146, .07) !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.mini-toolbar, .filters-row, .filter-grid, .form-grid, .table-tools, .module-actions-inline, .module-head-actions, .module-hero-actions, .form-actions, .bulk-actions, .matricula-tabs, .report-filter-grid),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.mini-toolbar, .filters-row, .filter-grid, .form-grid, .table-tools, .module-actions-inline, .module-head-actions, .module-hero-actions, .form-actions, .bulk-actions, .matricula-tabs, .report-filter-grid) {
    gap: 10px !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(button, .btn, .btn-primary, .btn-soft, .btn-ghost, .action-save, .action-button, a.btn-primary, a.btn-soft):not(.danger):not(.btn-danger):not(.logout-btn),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(button, .btn, .btn-primary, .btn-soft, .btn-ghost, .action-save, .action-button, a.btn-primary, a.btn-soft):not(.danger):not(.btn-danger):not(.logout-btn) {
    border-radius: 8px !important;
    font-weight: 800 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.btn-primary, button.btn-primary, .action-save, .action-button.primary, .module-save-btn, .school-module-action),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.btn-primary, button.btn-primary, .action-save, .action-button.primary, .module-save-btn, .school-module-action) {
    border: 1px solid #efb90f !important;
    background: linear-gradient(180deg, var(--pl-brand-yellow-2), var(--pl-brand-yellow)) !important;
    color: var(--pl-brand-blue-dark) !important;
    -webkit-text-fill-color: var(--pl-brand-blue-dark) !important;
    box-shadow: 0 8px 18px rgba(255, 202, 56, .22) !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.btn-soft, .btn-ghost, button.btn-soft, button.btn-ghost, .module-account-btn, .module-home-btn):not(.btn-danger),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.btn-soft, .btn-ghost, button.btn-soft, button.btn-ghost, .module-account-btn, .module-home-btn):not(.btn-danger) {
    border: 1px solid rgba(255, 255, 255, .36) !important;
    background: rgba(255, 255, 255, .08) !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head :is(select, input),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module-head :is(select, input) {
    border: 1px solid rgba(255, 255, 255, .45) !important;
    background: #fff !important;
    color: var(--pl-brand-blue-dark) !important;
    -webkit-text-fill-color: var(--pl-brand-blue-dark) !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
    border: 1px solid #cbdcf0 !important;
    border-radius: 8px !important;
    background: #fff !important;
    color: var(--pl-brand-blue-dark) !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(input, select, textarea):focus,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(input, select, textarea):focus {
    border-color: var(--pl-brand-blue-2) !important;
    box-shadow: 0 0 0 3px rgba(23, 107, 216, .14) !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.table-wrap, .table-scroll, .smart-table, .grade-table-wrap, .monthly-attendance-table-wrap, .daily-attendance-table-wrap, .academic-report-table-scroll, .achievement-table-scroll, .permission-table-wrap, .registro-users-table-wrap, .ficha-table-wrapper, .utp-critical-table-wrap, .guardian-table-wrap),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.table-wrap, .table-scroll, .smart-table, .grade-table-wrap, .monthly-attendance-table-wrap, .daily-attendance-table-wrap, .academic-report-table-scroll, .achievement-table-scroll, .permission-table-wrap, .registro-users-table-wrap, .ficha-table-wrapper, .utp-critical-table-wrap, .guardian-table-wrap) {
    border: 1px solid var(--pl-brand-line) !important;
    border-radius: 8px !important;
    background: #fff !important;
    overflow-x: auto !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(table:not(.report-table), .data-table, .smart-table) th,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(table:not(.report-table), .data-table, .smart-table) th {
    background: #eaf3ff !important;
    color: var(--pl-brand-blue-dark) !important;
    border-bottom: 1px solid var(--pl-brand-line) !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(table:not(.report-table), .data-table, .smart-table) :is(td, th),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(table:not(.report-table), .data-table, .smart-table) :is(td, th) {
    border-color: #e2edf8 !important;
  }
}

@media screen and (max-width: 767px) {
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.module-head, .module-hero, .module-compact-head, .category-panel-head),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.module-head, .module-hero, .module-compact-head, .category-panel-head) {
    gap: 10px !important;
    padding: 12px !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.module-actions-inline, .module-head-actions, .module-hero-actions, .form-actions, .bulk-actions, .matricula-tabs),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.module-actions-inline, .module-head-actions, .module-hero-actions, .form-actions, .bulk-actions, .matricula-tabs) {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: flex-start !important;
    width: 100% !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.module-actions-inline, .module-head-actions, .module-hero-actions, .form-actions, .bulk-actions, .matricula-tabs) > :is(button, a, label, select),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.module-actions-inline, .module-head-actions, .module-hero-actions, .form-actions, .bulk-actions, .matricula-tabs) > :is(button, a, label, select) {
    flex: 1 1 150px !important;
    min-width: 0 !important;
  }
}

/* Listas extensas de Asistencia y Calificaciones: scroll interno y encabezados fijos. */
@media screen {
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-calificaciones .grade-table-wrap,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-calificaciones .grade-table-wrap,
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-table-wrap,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-table-wrap {
    display: block !important;
    max-height: min(66vh, 680px) !important;
    overflow: auto !important;
    overscroll-behavior: contain !important;
    scrollbar-gutter: stable both-edges !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-calificaciones .grade-table-wrap table,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-calificaciones .grade-table-wrap table,
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-table,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-table {
    width: max-content !important;
    min-width: 100% !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-calificaciones .grade-table-wrap thead th,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-calificaciones .grade-table-wrap thead th,
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-table thead th,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-table thead th {
    position: sticky !important;
    top: 0 !important;
    z-index: 8 !important;
    background: #eaf3ff !important;
    box-shadow: inset 0 -1px 0 var(--pl-brand-line, #d6e4f4) !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-calificaciones .grade-table-wrap :is(th:nth-child(1), td:nth-child(1)),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-calificaciones .grade-table-wrap :is(th:nth-child(1), td:nth-child(1)),
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-table :is(th:nth-child(1), td:nth-child(1)),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-table :is(th:nth-child(1), td:nth-child(1)) {
    position: sticky !important;
    left: 0 !important;
    z-index: 7 !important;
    min-width: 48px !important;
    background: #fff !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-calificaciones .grade-table-wrap :is(th:nth-child(2), td:nth-child(2)),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-calificaciones .grade-table-wrap :is(th:nth-child(2), td:nth-child(2)),
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-table :is(th:nth-child(2), td:nth-child(2)),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-table :is(th:nth-child(2), td:nth-child(2)) {
    position: sticky !important;
    left: 48px !important;
    z-index: 7 !important;
    min-width: 220px !important;
    max-width: 320px !important;
    background: #fff !important;
    box-shadow: 1px 0 0 var(--pl-brand-line, #d6e4f4) !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-calificaciones .grade-table-wrap thead :is(th:nth-child(1), th:nth-child(2)),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-calificaciones .grade-table-wrap thead :is(th:nth-child(1), th:nth-child(2)),
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-table thead :is(th:nth-child(1), th:nth-child(2)),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-table thead :is(th:nth-child(1), th:nth-child(2)) {
    z-index: 12 !important;
    background: #eaf3ff !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-table tfoot td,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-table tfoot td {
    position: sticky !important;
    bottom: 0 !important;
    z-index: 6 !important;
    background: #f8fbff !important;
    box-shadow: inset 0 1px 0 var(--pl-brand-line, #d6e4f4) !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-actions,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 8px !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-actions > button,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-actions > button {
    min-height: 42px !important;
    white-space: normal !important;
  }
}

@media screen and (max-width: 767px) {
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-calificaciones .grade-table-wrap,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-calificaciones .grade-table-wrap,
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-table-wrap,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-table-wrap {
    max-height: calc(100dvh - 260px) !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-calificaciones .grade-table-wrap :is(th:nth-child(2), td:nth-child(2)),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-calificaciones .grade-table-wrap :is(th:nth-child(2), td:nth-child(2)),
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-table :is(th:nth-child(2), td:nth-child(2)),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-table :is(th:nth-child(2), td:nth-child(2)) {
    min-width: 170px !important;
    max-width: 210px !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-actions > button,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-actions > button {
    flex: 1 1 180px !important;
  }
}

/* Compendio UTP: ocultar el menu interno y usar todo el ancho disponible. */
@media screen {
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-compact-shell.utp-reference-layout,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-compact-shell.utp-reference-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 0 !important;
    width: 100% !important;
    max-width: none !important;
    margin-inline: 0 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-side-menu,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-side-menu {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    border: 0 !important;
    white-space: nowrap !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-main-board,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-main-board {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-main-board > .utp-compact-title,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-main-board > .utp-compact-title {
    width: 100% !important;
    box-sizing: border-box !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-reference-layout .utp-risk-filter-bar,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-reference-layout .utp-risk-filter-bar {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(160px, 1fr)) !important;
    gap: 10px !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-reference-layout .utp-risk-filter-bar label,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-reference-layout .utp-risk-filter-bar label {
    min-width: 0 !important;
    width: 100% !important;
  }
}

@media screen and (max-width: 767px) {
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-reference-layout .utp-risk-filter-bar,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-reference-layout .utp-risk-filter-bar {
    grid-template-columns: 1fr !important;
  }
}

/* Asistencia: acciones legibles y alineadas sin recortes. */
@media screen {
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-actions,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-actions {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    padding-bottom: 2px !important;
    scrollbar-width: thin !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-actions > button,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-actions > button {
    flex: 0 0 auto !important;
    min-width: max-content !important;
    min-height: 40px !important;
    padding: 9px 12px !important;
    white-space: nowrap !important;
    color: var(--pl-brand-blue-dark, #071f55) !important;
    -webkit-text-fill-color: var(--pl-brand-blue-dark, #071f55) !important;
    text-shadow: none !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-actions > button.btn-soft,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-actions > button.btn-soft {
    border-color: #b9d2ee !important;
    background: #f8fbff !important;
    color: var(--pl-brand-blue-dark, #071f55) !important;
    -webkit-text-fill-color: var(--pl-brand-blue-dark, #071f55) !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-actions > button.btn-primary,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-actions > button.btn-primary {
    border-color: #efb90f !important;
    background: linear-gradient(180deg, var(--pl-brand-yellow-2, #ffd94d), var(--pl-brand-yellow, #ffca38)) !important;
    color: var(--pl-brand-blue-dark, #071f55) !important;
    -webkit-text-fill-color: var(--pl-brand-blue-dark, #071f55) !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-actions > button:disabled,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-actions > button:disabled {
    opacity: .62 !important;
    cursor: not-allowed !important;
  }
}

@media screen and (max-width: 767px) {
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-actions,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-actions {
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-actions > button,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-actions > button {
    flex: 0 0 auto !important;
    min-width: max-content !important;
    white-space: nowrap !important;
    line-height: 1.1 !important;
  }
}

/* Menu lateral principal compacto en computador, sin ocultar accesos. */
@media screen and (min-width: 768px) {
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body),
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) {
    --pl-sidebar-head: 128px !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar,
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar {
    height: var(--pl-sidebar-head) !important;
    min-height: var(--pl-sidebar-head) !important;
    max-height: var(--pl-sidebar-head) !important;
    padding: 9px 14px 8px !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-row,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-row {
    gap: 6px !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand {
    gap: 5px !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-logo,
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-logo img,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-logo,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-logo img {
    width: 62px !important;
    height: 56px !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-copy b,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-copy b {
    max-width: 198px !important;
    font-size: .92rem !important;
    line-height: 1.05 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-copy small,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .brand-copy small {
    font-size: .7rem !important;
    line-height: 1.05 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar,
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar {
    top: var(--pl-sidebar-head) !important;
    height: calc(100dvh - var(--pl-sidebar-head)) !important;
    padding: 6px 12px 8px !important;
    gap: 1px !important;
    overflow-y: hidden !important;
    overflow-x: hidden !important;
    scrollbar-width: none !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar::-webkit-scrollbar,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar::-webkit-scrollbar {
    width: 0 !important;
    height: 0 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link,
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link {
    grid-template-columns: 24px minmax(0, 1fr) !important;
    min-height: 23px !important;
    height: 23px !important;
    padding: 3px 8px !important;
    border-radius: 7px !important;
    font-size: .72rem !important;
    line-height: 1.05 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link i,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link i {
    width: 18px !important;
    height: 18px !important;
    font-size: .78rem !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link span,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link span {
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .platform-developer-credit,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .platform-developer-credit {
    left: 14px !important;
    bottom: 50px !important;
    width: calc(var(--pl-sidebar-width, 250px) - 28px) !important;
    font-size: .66rem !important;
    line-height: 1.1 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar .actions,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar .actions {
    left: 14px !important;
    bottom: 10px !important;
    width: calc(var(--pl-sidebar-width, 250px) - 28px) !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar .actions :is(button, a),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) .topbar .actions :is(button, a) {
    min-height: 34px !important;
    padding: 7px 10px !important;
    font-size: .78rem !important;
  }
}

@media screen and (max-width: 767px) {
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar,
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar {
    overflow-y: auto !important;
    padding-bottom: 96px !important;
  }
}

/* Informe Pedagogico: filtros compactos, tarjetas livianas y sin informacion repetida. */
@media screen {
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp :is(.utp-report-builder, .head-teacher-report-builder),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp :is(.utp-report-builder, .head-teacher-report-builder) {
    width: 100% !important;
    max-width: 100% !important;
    margin: 10px 0 !important;
    padding: 10px !important;
    border-left-width: 4px !important;
    border-radius: 8px !important;
    box-shadow: 0 8px 18px rgba(13, 69, 146, .06) !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp :is(.utp-report-builder, .head-teacher-report-builder) .list-card-head,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp :is(.utp-report-builder, .head-teacher-report-builder) .list-card-head {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
    margin: 0 0 8px !important;
    padding: 0 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp :is(.utp-report-builder, .head-teacher-report-builder) .list-card-head h3,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp :is(.utp-report-builder, .head-teacher-report-builder) .list-card-head h3 {
    margin: 0 !important;
    font-size: .95rem !important;
    line-height: 1.15 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp :is(.utp-report-builder, .head-teacher-report-builder) .list-card-head small,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp :is(.utp-report-builder, .head-teacher-report-builder) .list-card-head small {
    display: none !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp :is(.utp-report-builder, .head-teacher-report-builder) .utp-report-filters,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp :is(.utp-report-builder, .head-teacher-report-builder) .utp-report-filters {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(160px, 1fr)) !important;
    gap: 8px !important;
    margin: 0 !important;
    align-items: end !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp :is(.utp-report-builder, .head-teacher-report-builder) .utp-report-filters label,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp :is(.utp-report-builder, .head-teacher-report-builder) .utp-report-filters label {
    min-width: 0 !important;
    width: 100% !important;
    gap: 4px !important;
    color: var(--pl-brand-blue-dark, #071f55) !important;
    font-size: .72rem !important;
    line-height: 1.1 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp :is(.utp-report-builder, .head-teacher-report-builder) .utp-report-filters :is(select, input),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp :is(.utp-report-builder, .head-teacher-report-builder) .utp-report-filters :is(select, input) {
    width: 100% !important;
    min-height: 34px !important;
    padding: 6px 9px !important;
    font-size: .82rem !important;
    line-height: 1.15 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-report-builder .utp-report-save-inline,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-report-builder .utp-report-save-inline {
    min-height: 34px !important;
    padding: 7px 10px !important;
    align-self: end !important;
    justify-content: center !important;
    white-space: nowrap !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .head-teacher-report-builder .form-actions,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .head-teacher-report-builder .form-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    margin: 8px 0 10px !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .head-teacher-report-builder .form-actions button,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .head-teacher-report-builder .form-actions button {
    min-height: 32px !important;
    padding: 6px 10px !important;
    font-size: .8rem !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp :is(.utp-report-preview, .head-teacher-report),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp :is(.utp-report-preview, .head-teacher-report) {
    padding: 12px !important;
    border-radius: 8px !important;
    box-shadow: 0 8px 18px rgba(13, 69, 146, .06) !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-report-cover,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-report-cover {
    padding-bottom: 8px !important;
    margin-bottom: 10px !important;
    border-bottom-width: 2px !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-report-cover h1,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-report-cover h1 {
    margin: 2px 0 6px !important;
    font-size: 1.18rem !important;
    line-height: 1.15 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-report-cover h2,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-report-cover h2,
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .head-teacher-report header small,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .head-teacher-report header small {
    display: none !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-report-meta,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-report-meta {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 4px 8px !important;
    font-size: .72rem !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-report-section,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-report-section {
    margin-top: 10px !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-report-section h3,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-report-section h3 {
    margin-bottom: 6px !important;
    font-size: .88rem !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-report-kpis,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-report-kpis {
    grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)) !important;
    gap: 6px !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-report-kpis :is(article, .metric),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-report-kpis :is(article, .metric) {
    min-height: 58px !important;
    padding: 8px !important;
    border-radius: 8px !important;
  }
}

@media screen and (max-width: 900px) {
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp :is(.utp-report-builder, .head-teacher-report-builder) .utp-report-filters,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp :is(.utp-report-builder, .head-teacher-report-builder) .utp-report-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media screen and (max-width: 640px) {
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp :is(.utp-report-builder, .head-teacher-report-builder),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp :is(.utp-report-builder, .head-teacher-report-builder) {
    padding: 9px !important;
    margin: 8px 0 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp :is(.utp-report-builder, .head-teacher-report-builder) .utp-report-filters,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp :is(.utp-report-builder, .head-teacher-report-builder) .utp-report-filters,
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-report-meta,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-report-meta {
    grid-template-columns: 1fr !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-report-builder .utp-report-save-inline,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-utp .utp-report-builder .utp-report-save-inline {
    width: 100% !important;
  }
}

/* Asistencia: distribucion amplia, tabla compacta y sin scroll vertical interno. */
@media screen {
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia {
    overflow-x: hidden !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-panel,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-panel {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(150px, 1fr)) !important;
    align-items: end !important;
    gap: 10px !important;
    width: 100% !important;
    max-width: 1680px !important;
    padding: 12px !important;
    margin: 0 auto 12px !important;
    overflow: visible !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-panel > label,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-panel > label {
    min-width: 0 !important;
    width: 100% !important;
    flex: initial !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-panel :is(select, input),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-panel :is(select, input) {
    min-height: 38px !important;
    padding: 7px 10px !important;
    font-size: .9rem !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-actions,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-actions {
    grid-column: 1 / -1 !important;
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)) !important;
    align-items: stretch !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    overflow: visible !important;
    scrollbar-width: auto !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-actions > button,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-actions > button {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 38px !important;
    padding: 8px 10px !important;
    justify-content: center !important;
    white-space: normal !important;
    line-height: 1.15 !important;
    overflow-wrap: anywhere !important;
    font-size: .88rem !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-sheet,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-sheet {
    width: 100% !important;
    max-width: 1680px !important;
    padding: 12px !important;
    margin: 0 auto 18px !important;
    overflow: visible !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-table-wrap,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-table-wrap {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    max-height: none !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    overscroll-behavior: auto !important;
    scrollbar-gutter: auto !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-table,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-table {
    width: max-content !important;
    min-width: max(100%, 980px) !important;
    table-layout: auto !important;
    font-size: .82rem !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-table :is(th, td),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-table :is(th, td) {
    height: auto !important;
    min-height: 0 !important;
    padding: 5px 7px !important;
    line-height: 1.15 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-table thead th,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-table thead th {
    position: sticky !important;
    top: 0 !important;
    z-index: 15 !important;
    padding-block: 6px !important;
    background: #eaf3ff !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-table :is(th:nth-child(1), td:nth-child(1)),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-table :is(th:nth-child(1), td:nth-child(1)) {
    min-width: 42px !important;
    width: 42px !important;
    left: 0 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-table :is(th:nth-child(2), td:nth-child(2)),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-table :is(th:nth-child(2), td:nth-child(2)) {
    left: 42px !important;
    min-width: 190px !important;
    max-width: 240px !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-student-name,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-student-name {
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    font-weight: 800 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-input,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-input {
    width: 30px !important;
    min-width: 30px !important;
    min-height: 30px !important;
    height: 30px !important;
    padding: 0 !important;
    text-align: center !important;
    font-size: .84rem !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-table tfoot td,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-table tfoot td {
    position: static !important;
    bottom: auto !important;
    z-index: auto !important;
  }
}

@media screen and (max-width: 1100px) {
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-panel,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-panel {
    grid-template-columns: repeat(3, minmax(150px, 1fr)) !important;
  }
}

@media screen and (max-width: 720px) {
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-panel,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-panel {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    padding: 10px !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-actions,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-actions {
    grid-template-columns: 1fr !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-sheet,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-sheet {
    padding: 10px !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-table,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .daily-attendance-table {
    min-width: 860px !important;
    font-size: .78rem !important;
  }
}

/* Asistencia diaria: estilo plataforma tipo planilla mensual. */
@media screen {
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-panel,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-panel {
    grid-template-columns: minmax(150px, .9fr) minmax(150px, .75fr) minmax(120px, .55fr) minmax(420px, 2.2fr) !important;
    gap: 18px !important;
    align-items: end !important;
    max-width: 100% !important;
    padding: 18px 18px 10px !important;
    margin: 0 0 12px !important;
    border: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-panel > label,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-panel > label {
    display: grid !important;
    gap: 7px !important;
    color: #172b4d !important;
    font-size: .76rem !important;
    font-weight: 900 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-panel select,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-panel select {
    min-height: 38px !important;
    border: 1px solid #dce6f4 !important;
    border-radius: 6px !important;
    background: #fff !important;
    color: #263b5d !important;
    font-size: .82rem !important;
    font-weight: 700 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-actions,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-actions {
    grid-column: auto !important;
    display: grid !important;
    grid-template-columns: repeat(4, minmax(118px, 1fr)) !important;
    gap: 10px !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-actions > button,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-actions > button {
    min-height: 38px !important;
    border-radius: 5px !important;
    border: 1px solid #3280ff !important;
    background: #fff !important;
    color: #0f6ff2 !important;
    font-size: .75rem !important;
    font-weight: 900 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-actions > .attendance-save-platform,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-actions > .attendance-save-platform {
    border-color: #f4c400 !important;
    background: #ffd200 !important;
    color: #172036 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-utility,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-utility {
    grid-column: 1 / -1 !important;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    align-items: center !important;
    color: #64748b !important;
    font-size: .76rem !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-utility label,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-utility label {
    display: inline-flex !important;
    align-items: center !important;
    gap: 7px !important;
    margin: 0 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet {
    padding: 0 8px 14px !important;
    border: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-attendance-table-wrap,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-attendance-table-wrap {
    border: 1px solid #dbe5f1 !important;
    border-radius: 6px !important;
    background: #fff !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-attendance-table,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-attendance-table {
    border-collapse: separate !important;
    border-spacing: 0 !important;
    font-size: .76rem !important;
    color: #213653 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-attendance-table :is(th, td),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-attendance-table :is(th, td) {
    height: 31px !important;
    padding: 4px 6px !important;
    border-right: 1px solid #e5edf7 !important;
    border-bottom: 1px solid #e5edf7 !important;
    text-align: center !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-attendance-table thead th,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-attendance-table thead th {
    background: #f8fbff !important;
    color: #163255 !important;
    font-size: .72rem !important;
    font-weight: 900 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-attendance-table :is(th:nth-child(2), td:nth-child(2)),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-attendance-table :is(th:nth-child(2), td:nth-child(2)) {
    min-width: 170px !important;
    text-align: left !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-student-name,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-student-name {
    font-weight: 800 !important;
    color: #1d3556 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-student-name small,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-student-name small {
    display: block !important;
    margin-top: 2px !important;
    color: #8b98aa !important;
    font-size: .68rem !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-attendance-input,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-attendance-input {
    width: 100% !important;
    min-width: 24px !important;
    height: 28px !important;
    min-height: 28px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: inherit !important;
    font-size: .8rem !important;
    font-weight: 900 !important;
    box-shadow: none !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-att-cell.is-present,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-att-cell.is-present {
    background: #c8f3d4 !important;
    color: #0b6b36 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-att-cell.is-absent,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-att-cell.is-absent {
    background: #ffd7d7 !important;
    color: #aa1e24 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-att-cell.is-justified,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-att-cell.is-justified {
    background: #ffe6a8 !important;
    color: #8a5a00 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-att-cell.is-blocked,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-att-cell.is-blocked {
    background: #e8edf3 !important;
    color: #6b7a8f !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-legend,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-legend {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 28px !important;
    align-items: center !important;
    padding: 14px 8px 0 !important;
    color: #586b82 !important;
    font-size: .76rem !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-legend span,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-legend span {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-legend em,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-legend em {
    margin-left: auto !important;
    font-style: normal !important;
    color: #7b899a !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .legend-dot,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .legend-dot {
    width: 22px !important;
    height: 22px !important;
    display: inline-grid !important;
    place-items: center !important;
    border-radius: 999px !important;
    font-style: normal !important;
    font-size: .72rem !important;
    font-weight: 900 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .legend-dot.present,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .legend-dot.present { background: #bdf0cb !important; color: #0b6b36 !important; }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .legend-dot.absent,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .legend-dot.absent { background: #ffcaca !important; color: #9b1c1c !important; }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .legend-dot.justified,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .legend-dot.justified { background: #ffe29a !important; color: #805100 !important; }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .legend-dot.blocked,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .legend-dot.blocked { background: #e6ebf1 !important; color: #66778d !important; }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .legend-dot.retired,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .legend-dot.retired { background: #c9ced6 !important; color: #53606f !important; }
}

@media screen and (max-width: 1100px) {
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-panel,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-panel {
    grid-template-columns: repeat(3, minmax(140px, 1fr)) !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-actions,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-actions {
    grid-column: 1 / -1 !important;
  }
}

@media screen and (max-width: 720px) {
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-panel,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-panel,
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-actions,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-actions {
    grid-template-columns: 1fr !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-legend em,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-legend em {
    width: 100% !important;
    margin-left: 0 !important;
  }
}

/* Densidad compartida: mejor uso de espacio sin alterar funciones. */
@media screen {
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain {
    padding: clamp(8px, 1vw, 16px) !important;
    gap: 10px !important;
    overflow-x: hidden !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module.active,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module.active {
    display: grid !important;
    align-content: start !important;
    gap: 10px !important;
    width: 100% !important;
    max-width: none !important;
    padding: 0 !important;
    overflow-x: hidden !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.module-head, .module-hero, .module-compact-head, .category-panel-head),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.module-head, .module-hero, .module-compact-head, .category-panel-head) {
    width: 100% !important;
    max-width: 1680px !important;
    min-height: 0 !important;
    padding: clamp(10px, 1.1vw, 16px) !important;
    margin: 0 auto 8px !important;
    gap: 10px !important;
    align-items: center !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.module-head h1, .module-hero h1, .module-compact-head h1, .category-panel-head h1),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.module-head h1, .module-hero h1, .module-compact-head h1, .category-panel-head h1) {
    margin: 0 !important;
    font-size: clamp(1.12rem, 1.55vw, 1.65rem) !important;
    line-height: 1.15 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.module-head p, .module-hero p, .module-compact-head p, .category-panel-head p, .list-card-head small, .panel small),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.module-head p, .module-hero p, .module-compact-head p, .category-panel-head p, .list-card-head small, .panel small) {
    margin: 2px 0 0 !important;
    line-height: 1.25 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.card, .panel, .section-panel, .list-card, .list-table-card, .panel-listado, .course-context, .report-workspace, .report-control-panel, .subject-summary, .utp-panel, .monthly-attendance-panel, .monthly-attendance-sheet, .grade-dashboard-compact, .matricula-editor, .matricula-list, .config-card, .admin-control-center, .home-main-panel, .home-side-panel, .home-stat-card, .school-module-tile, form),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.card, .panel, .section-panel, .list-card, .list-table-card, .panel-listado, .course-context, .report-workspace, .report-control-panel, .subject-summary, .utp-panel, .monthly-attendance-panel, .monthly-attendance-sheet, .grade-dashboard-compact, .matricula-editor, .matricula-list, .config-card, .admin-control-center, .home-main-panel, .home-side-panel, .home-stat-card, .school-module-tile, form) {
    max-width: 1680px !important;
    padding: clamp(10px, 1.05vw, 16px) !important;
    margin-block: 0 10px !important;
    gap: 10px !important;
    border-radius: 8px !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.list-card-head, .panel-head, .section-head, .card-head, .home-panel-head),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.list-card-head, .panel-head, .section-head, .card-head, .home-panel-head) {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 8px !important;
    margin-bottom: 8px !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(h2, h3, h4),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(h2, h3, h4) {
    margin-block: 0 6px !important;
    line-height: 1.18 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.mini-toolbar, .filters-row, .filter-grid, .form-grid, .table-tools, .student-filter-bar, .grade-filter-toolbar, .report-filter-grid, .module-actions-inline, .module-head-actions, .module-hero-actions, .form-actions, .bulk-actions, .matricula-tabs, .report-inline-actions, .data-actions),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.mini-toolbar, .filters-row, .filter-grid, .form-grid, .table-tools, .student-filter-bar, .grade-filter-toolbar, .report-filter-grid, .module-actions-inline, .module-head-actions, .module-hero-actions, .form-actions, .bulk-actions, .matricula-tabs, .report-inline-actions, .data-actions) {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)) !important;
    align-items: end !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.module-actions-inline, .module-head-actions, .module-hero-actions, .form-actions, .bulk-actions, .matricula-tabs, .report-inline-actions, .data-actions) > :is(button, a, label, select, input),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.module-actions-inline, .module-head-actions, .module-hero-actions, .form-actions, .bulk-actions, .matricula-tabs, .report-inline-actions, .data-actions) > :is(button, a, label, select, input) {
    width: 100% !important;
    min-width: 0 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(label, .search-field),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(label, .search-field) {
    min-width: 0 !important;
    width: 100% !important;
    gap: 4px !important;
    font-size: .78rem !important;
    line-height: 1.18 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
    min-height: 36px !important;
    padding: 7px 10px !important;
    font-size: .9rem !important;
    line-height: 1.2 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain textarea,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain textarea {
    min-height: 76px !important;
    resize: vertical !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(button, .btn, .btn-primary, .btn-soft, .btn-ghost, .action-save, .action-button, a.btn-primary, a.btn-soft):not(.sidebar-toggle):not(.mobile-menu-btn):not(.logout-btn),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(button, .btn, .btn-primary, .btn-soft, .btn-ghost, .action-save, .action-button, a.btn-primary, a.btn-soft):not(.sidebar-toggle):not(.mobile-menu-btn):not(.logout-btn) {
    min-height: 36px !important;
    padding: 8px 11px !important;
    gap: 6px !important;
    line-height: 1.12 !important;
    font-size: .88rem !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.table-wrap, .table-scroll, .smart-table, .grade-table-wrap, .monthly-attendance-table-wrap, .daily-attendance-table-wrap, .academic-report-table-scroll, .achievement-table-scroll, .permission-table-wrap, .registro-users-table-wrap, .ficha-table-wrapper, .utp-critical-table-wrap, .guardian-table-wrap),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.table-wrap, .table-scroll, .smart-table, .grade-table-wrap, .monthly-attendance-table-wrap, .daily-attendance-table-wrap, .academic-report-table-scroll, .achievement-table-scroll, .permission-table-wrap, .registro-users-table-wrap, .ficha-table-wrapper, .utp-critical-table-wrap, .guardian-table-wrap) {
    max-width: 100% !important;
    padding: 0 !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(table:not(.report-table), .data-table, .smart-table) :is(th, td),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(table:not(.report-table), .data-table, .smart-table) :is(th, td) {
    padding: 7px 9px !important;
    line-height: 1.18 !important;
    font-size: .84rem !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(table:not(.report-table), .data-table, .smart-table) th,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(table:not(.report-table), .data-table, .smart-table) th {
    padding-block: 8px !important;
    font-size: .76rem !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.empty-state, .alert-box, .notice, .info-box),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.empty-state, .alert-box, .notice, .info-box) {
    padding: 12px !important;
    margin: 8px 0 !important;
    gap: 8px !important;
  }
}

@media screen and (min-width: 1180px) {
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.form-grid, .filter-grid, .filters-row, .mini-toolbar, .report-filter-grid),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.form-grid, .filter-grid, .filters-row, .mini-toolbar, .report-filter-grid) {
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)) !important;
  }
}

@media screen and (max-width: 760px) {
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain {
    padding: 8px !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module.active,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain .module.active {
    gap: 8px !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.module-head, .module-hero, .module-compact-head, .category-panel-head, .card, .panel, .section-panel, .list-card, .list-table-card, .panel-listado, .course-context, .report-workspace, .report-control-panel, .subject-summary, .utp-panel, .monthly-attendance-panel, .monthly-attendance-sheet, .grade-dashboard-compact, .matricula-editor, .matricula-list, .config-card, .admin-control-center, .home-main-panel, .home-side-panel, .home-stat-card, .school-module-tile, form),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.module-head, .module-hero, .module-compact-head, .category-panel-head, .card, .panel, .section-panel, .list-card, .list-table-card, .panel-listado, .course-context, .report-workspace, .report-control-panel, .subject-summary, .utp-panel, .monthly-attendance-panel, .monthly-attendance-sheet, .grade-dashboard-compact, .matricula-editor, .matricula-list, .config-card, .admin-control-center, .home-main-panel, .home-side-panel, .home-stat-card, .school-module-tile, form) {
    padding: 10px !important;
    margin-bottom: 8px !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.mini-toolbar, .filters-row, .filter-grid, .form-grid, .table-tools, .student-filter-bar, .grade-filter-toolbar, .report-filter-grid, .module-actions-inline, .module-head-actions, .module-hero-actions, .form-actions, .bulk-actions, .matricula-tabs, .report-inline-actions, .data-actions),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(.mini-toolbar, .filters-row, .filter-grid, .form-grid, .table-tools, .student-filter-bar, .grade-filter-toolbar, .report-filter-grid, .module-actions-inline, .module-head-actions, .module-hero-actions, .form-actions, .bulk-actions, .matricula-tabs, .report-inline-actions, .data-actions) {
    grid-template-columns: 1fr !important;
    gap: 7px !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea),
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(button, .btn, .btn-primary, .btn-soft, .btn-ghost, .action-save, .action-button, a.btn-primary, a.btn-soft):not(.sidebar-toggle):not(.mobile-menu-btn):not(.logout-btn),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #appMain :is(button, .btn, .btn-primary, .btn-soft, .btn-ghost, .action-save, .action-button, a.btn-primary, a.btn-soft):not(.sidebar-toggle):not(.mobile-menu-btn):not(.logout-btn) {
    width: 100% !important;
    min-height: 38px !important;
  }
}

/* Menu lateral agrupado y desplegable. */
@media screen {
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar {
    display: block !important;
    padding-inline: 12px !important;
    padding-bottom: 126px !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group {
    margin: 0 0 7px !important;
    padding: 0 !important;
    border: 1px solid #e4edf7 !important;
    border-radius: 8px !important;
    background: #fff !important;
    overflow: hidden !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group summary,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group summary {
    min-height: 38px !important;
    display: grid !important;
    grid-template-columns: 26px minmax(0, 1fr) 18px !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 7px 8px !important;
    color: var(--pl-blue-dark, #09265d) !important;
    font-size: .78rem !important;
    font-weight: 900 !important;
    line-height: 1.15 !important;
    cursor: pointer !important;
    list-style: none !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group summary::-webkit-details-marker,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group summary::-webkit-details-marker {
    display: none !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group summary > i:first-child,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group summary > i:first-child {
    width: 26px !important;
    height: 26px !important;
    display: inline-grid !important;
    place-items: center !important;
    border-radius: 7px !important;
    background: #eef6ff !important;
    color: var(--pl-blue, #1476cf) !important;
    font-size: .78rem !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group-caret,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group-caret {
    color: #55708f !important;
    font-size: .7rem !important;
    transition: transform .18s ease !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group[open] .sidebar-group-caret,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group[open] .sidebar-group-caret {
    transform: rotate(180deg) !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group[open],
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group[open] {
    border-color: #cfe0f3 !important;
    box-shadow: 0 6px 14px rgba(21, 32, 51, .05) !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group-items,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group-items {
    display: grid !important;
    gap: 4px !important;
    padding: 0 6px 7px 6px !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link {
    width: 100% !important;
    min-height: 34px !important;
    margin: 0 !important;
    padding: 6px 8px !important;
    display: grid !important;
    grid-template-columns: 24px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 8px !important;
    border-radius: 8px !important;
    color: #30415f !important;
    font-size: .82rem !important;
    font-weight: 800 !important;
    line-height: 1.15 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-home-link,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-home-link {
    margin: 0 0 8px !important;
    min-height: 38px !important;
    border: 1px solid #d8e7f7 !important;
    background: #f8fbff !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link i,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link i {
    width: 24px !important;
    height: 24px !important;
    border-radius: 7px !important;
    background: #f4f8fd !important;
    color: var(--pl-blue, #1476cf) !important;
    font-size: .76rem !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link span,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link span,
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group summary span,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group summary span {
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link:is(:hover, :focus-visible),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link:is(:hover, :focus-visible) {
    background: #eef6ff !important;
    color: var(--pl-blue-dark, #09265d) !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link.activa,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link.activa {
    background: var(--pl-yellow, #ffd73f) !important;
    color: #09265d !important;
    border-color: #efc52d !important;
    box-shadow: inset 4px 0 0 var(--pl-blue, #1476cf) !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link.activa i,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link.activa i {
    background: #fff7cf !important;
    color: #09265d !important;
  }
}

/* Override final Asistencia: barra responsive y look tipo plataforma. */
@media screen {
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-panel,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-panel {
    display: grid !important;
    grid-template-columns: minmax(118px, .72fr) minmax(118px, .72fr) minmax(96px, .55fr) minmax(400px, 2.4fr) !important;
    gap: 14px !important;
    align-items: end !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 18px 18px 12px !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
    overflow: visible !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-actions,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-actions {
    grid-column: auto !important;
    display: grid !important;
    grid-template-columns: repeat(4, minmax(94px, 1fr)) !important;
    gap: 8px !important;
    align-items: stretch !important;
    width: 100% !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-actions > button,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-actions > button {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 38px !important;
    padding: 7px 9px !important;
    border-radius: 5px !important;
    white-space: nowrap !important;
    font-size: clamp(.66rem, .78vw, .75rem) !important;
    line-height: 1.1 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-utility,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-utility {
    grid-column: 1 / -1 !important;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    align-items: center !important;
    padding-top: 2px !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 8px 14px !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
    overflow: visible !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-attendance-table-wrap,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-attendance-table-wrap {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    border: 1px solid #dbe5f1 !important;
    border-radius: 6px !important;
    background: #fff !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-attendance-table,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-attendance-table {
    width: max-content !important;
    min-width: 100% !important;
    table-layout: fixed !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    font-size: .74rem !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-attendance-table :is(th, td),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-attendance-table :is(th, td) {
    width: 28px !important;
    min-width: 28px !important;
    height: 31px !important;
    padding: 3px 4px !important;
    text-align: center !important;
    vertical-align: middle !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-attendance-table :is(th:nth-child(1), td:nth-child(1)),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-attendance-table :is(th:nth-child(1), td:nth-child(1)) {
    width: 36px !important;
    min-width: 36px !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-attendance-table :is(th:nth-child(2), td:nth-child(2)),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-attendance-table :is(th:nth-child(2), td:nth-child(2)) {
    width: clamp(140px, 18vw, 190px) !important;
    min-width: clamp(140px, 18vw, 190px) !important;
    max-width: clamp(140px, 18vw, 190px) !important;
    text-align: left !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-attendance-table :is(th:nth-last-child(1), td:nth-last-child(1), th:nth-last-child(2), td:nth-last-child(2), th:nth-last-child(3), td:nth-last-child(3)),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet .daily-attendance-table :is(th:nth-last-child(1), td:nth-last-child(1), th:nth-last-child(2), td:nth-last-child(2), th:nth-last-child(3), td:nth-last-child(3)) {
    width: 46px !important;
    min-width: 46px !important;
    font-weight: 900 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-legend,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-legend {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 18px 28px !important;
    align-items: center !important;
    padding: 14px 8px 0 !important;
  }
}

@media screen and (max-width: 980px) {
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-panel,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-panel {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-actions,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-actions {
    grid-column: 1 / -1 !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}

@media screen and (max-width: 640px) {
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-panel,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-panel {
    grid-template-columns: 1fr !important;
    padding: 12px 10px 8px !important;
    gap: 9px !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-actions,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 7px !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-actions > button,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-actions > button {
    white-space: normal !important;
    font-size: .72rem !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-utility > *,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-utility > * {
    width: 100% !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #module-asistencia .attendance-platform-sheet {
    padding-inline: 0 !important;
  }
}

@media screen and (max-width: 980px) {
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar {
    padding-inline: 12px !important;
  }
}

/* Menu lateral: acordeon unico y modulo activo amarillo. */
@media screen {
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group {
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group-items,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group-items {
    animation: sidebarGroupOpen .18s ease both !important;
    transform-origin: top !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link.activa,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link.activa,
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link.activa {
    border: 1px solid #e0ad00 !important;
    border-left: 5px solid #0b3768 !important;
    background: linear-gradient(180deg, #ffe66d 0%, #facc15 100%) !important;
    color: #071b3d !important;
    box-shadow: inset 0 -2px 0 rgba(11, 55, 104, .22), 0 6px 14px rgba(250, 204, 21, .26) !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link.activa i,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link.activa i,
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link.activa i {
    background: #0b3768 !important;
    color: #facc15 !important;
  }
}

/* Riesgo de repitencia provisional: alertas y ventana flotante no modal. */
@media screen {
  .student-risk-badges {
    align-items: center;
  }

  .repetition-risk-mark {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    min-height: 26px !important;
    padding: 4px 8px !important;
    border: 1px solid #dc2626 !important;
    border-radius: 999px !important;
    background: #dc2626 !important;
    color: #ffffff !important;
    font-size: .72rem !important;
    font-weight: 900 !important;
    line-height: 1.1 !important;
    cursor: pointer !important;
    box-shadow: 0 6px 14px rgba(220, 38, 38, .22) !important;
    transition: background .18s ease, box-shadow .18s ease, border-color .18s ease !important;
  }

  .repetition-risk-mark:hover,
  .repetition-risk-mark:focus-visible {
    background: #b91c1c !important;
    border-color: #991b1b !important;
    box-shadow: 0 8px 18px rgba(220, 38, 38, .32) !important;
  }

  tr.has-repetition-risk {
    background: #fff5f5 !important;
  }

  tr.has-repetition-risk > td:first-child {
    box-shadow: inset 4px 0 0 #dc2626 !important;
  }

  .repetition-risk-alert-dock {
    position: fixed;
    right: 16px;
    bottom: 78px;
    z-index: 12000;
    width: min(360px, calc(100vw - 24px));
    max-height: min(56vh, 420px);
    display: grid;
    gap: 8px;
    padding: 10px;
    overflow: auto;
    border: 1px solid #fecaca;
    border-radius: 10px;
    background: #ffffff;
    box-shadow: 0 18px 46px rgba(15, 23, 42, .22);
  }

  .repetition-risk-alert-dock header {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) 30px;
    gap: 8px;
    align-items: center;
    color: #7f1d1d;
  }

  .repetition-risk-alert-dock header > i {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    background: #dc2626;
    color: #fff;
  }

  .repetition-risk-alert-dock b,
  .repetition-risk-alert-dock span {
    display: block;
  }

  .repetition-risk-alert-dock span {
    color: #64748b;
    font-size: .76rem;
  }

  .repetition-risk-alert-dock button {
    width: 100%;
    display: grid;
    gap: 2px;
    margin-top: 6px;
    padding: 8px;
    border: 1px solid #fee2e2;
    border-radius: 8px;
    background: #fff7f7;
    color: #7f1d1d;
    text-align: left;
    cursor: pointer;
  }

  .repetition-risk-alert-dock .repetition-risk-alert-close {
    width: 30px;
    height: 30px;
    min-width: 30px;
    margin-top: 0;
    padding: 0;
    place-items: center;
    border-color: #fecaca;
    border-radius: 999px;
    background: #ffffff;
    color: #991b1b;
    font-size: 1.05rem;
    font-weight: 900;
    line-height: 1;
    text-align: center;
  }

  .repetition-risk-alert-dock .repetition-risk-alert-close:hover,
  .repetition-risk-alert-dock .repetition-risk-alert-close:focus-visible {
    background: #fee2e2;
    border-color: #fca5a5;
    outline: none;
  }

  .repetition-risk-window {
    position: fixed;
    z-index: 13000;
    width: min(560px, calc(100vw - 16px));
    max-height: min(78vh, 680px);
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    overflow: hidden;
    border: 1px solid #fecaca;
    border-radius: 10px;
    background: #ffffff;
    box-shadow: 0 24px 70px rgba(15, 23, 42, .30);
  }

  .repetition-risk-window-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 12px 14px;
    background: linear-gradient(135deg, #991b1b, #dc2626);
    color: #ffffff;
    cursor: move;
  }

  .repetition-risk-window-head span {
    display: block;
    font-size: .72rem;
    font-weight: 900;
    text-transform: uppercase;
  }

  .repetition-risk-window-head h2 {
    margin: 2px 0 0;
    color: #ffffff !important;
    font-size: 1rem;
    line-height: 1.15;
  }

  .repetition-risk-window-actions {
    display: flex;
    gap: 6px;
  }

  .repetition-risk-window-actions button {
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255,255,255,.45);
    border-radius: 8px;
    background: rgba(255,255,255,.16);
    color: #ffffff;
    font-size: 1.1rem;
    font-weight: 900;
    cursor: pointer;
  }

  .repetition-risk-window-body {
    min-height: 0;
    overflow: auto;
    padding: 14px;
    color: #0f172a;
  }

  .repetition-risk-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 12px;
  }

  .repetition-risk-summary article,
  .repetition-risk-window-body section {
    min-width: 0;
    padding: 10px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #f8fbff;
  }

  .repetition-risk-summary span {
    display: block;
    color: #64748b;
    font-size: .72rem;
    font-weight: 800;
  }

  .repetition-risk-summary b {
    display: block;
    margin-top: 3px;
    color: #071b3d;
    overflow-wrap: anywhere;
  }

  .repetition-risk-window-body h3 {
    margin: 0 0 7px !important;
    color: #7f1d1d !important;
    font-size: .88rem !important;
  }

  .repetition-risk-window-body ul {
    margin: 0;
    padding-left: 18px;
    color: #334155;
    line-height: 1.45;
  }

  .repetition-risk-table-wrap {
    max-width: 100%;
    overflow-x: auto;
  }

  .repetition-risk-window table {
    width: 100%;
    border-collapse: collapse;
    background: #ffffff;
  }

  .repetition-risk-window :is(th, td) {
    padding: 6px 7px !important;
    border-bottom: 1px solid #e5edf5 !important;
    font-size: .78rem !important;
    text-align: left;
  }

  .repetition-risk-note {
    margin: 10px 0 0;
    padding: 10px;
    border-left: 4px solid #dc2626;
    background: #fff7f7;
    color: #7f1d1d;
    font-size: .78rem;
    line-height: 1.35;
  }

  .repetition-risk-window.is-minimized {
    width: min(420px, calc(100vw - 16px));
    max-height: none;
  }

  .repetition-risk-window.is-minimized .repetition-risk-window-body {
    display: none;
  }
}

@media screen and (max-width: 640px) {
  .repetition-risk-alert-dock {
    right: 8px;
    left: 8px;
    bottom: 70px;
    width: auto;
    max-height: 42vh;
  }

  .repetition-risk-window {
    left: 8px !important;
    right: 8px !important;
    top: 74px !important;
    width: auto !important;
    max-height: calc(100vh - 86px);
  }

  .repetition-risk-window-head {
    cursor: default;
  }

  .repetition-risk-summary {
    grid-template-columns: 1fr;
  }
}

@keyframes sidebarGroupOpen {
  from {
    opacity: .45;
    transform: scaleY(.96);
  }
  to {
    opacity: 1;
    transform: scaleY(1);
  }
}

/* Acordeon lateral final: celeste con estado activo destacado. */
@media screen {
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group,
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group {
    border-color: #a5d8f5 !important;
    background: #dff3ff !important;
    box-shadow: none !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group summary,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group summary,
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group summary {
    border-radius: 8px !important;
    background: #dff3ff !important;
    color: #08245d !important;
    transition: background .2s ease, color .2s ease, box-shadow .2s ease, border-color .2s ease !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group summary:is(:hover, :focus-visible),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group summary:is(:hover, :focus-visible),
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group summary:is(:hover, :focus-visible) {
    background: #c8eaff !important;
    color: #071b3d !important;
    box-shadow: inset 0 0 0 1px #7dc8ef !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group[open] summary,
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group.is-active-group summary,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group[open] summary,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group.is-active-group summary,
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group[open] summary,
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group.is-active-group summary {
    background: linear-gradient(180deg, #a8e1ff 0%, #73c8f5 100%) !important;
    color: #071b3d !important;
    box-shadow: inset 5px 0 0 #0b3768, 0 7px 16px rgba(56, 163, 219, .24) !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group[open] summary > i:first-child,
  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group.is-active-group summary > i:first-child,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group[open] summary > i:first-child,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group.is-active-group summary > i:first-child,
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group[open] summary > i:first-child,
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group.is-active-group summary > i:first-child {
    background: #0b3768 !important;
    color: #dff3ff !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group[open] .sidebar-group-caret,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group[open] .sidebar-group-caret,
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group[open] .sidebar-group-caret {
    color: #0b3768 !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group-items,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group-items,
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .sidebar-group-items {
    padding: 7px 6px 8px !important;
    background: #dff3ff !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link,
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link {
    border: 1px solid transparent !important;
    background: #dff3ff !important;
    color: #08245d !important;
    transition: background .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link:is(:hover, :focus-visible),
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link:is(:hover, :focus-visible),
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link:is(:hover, :focus-visible) {
    border-color: #7dc8ef !important;
    background: #c8eaff !important;
    color: #071b3d !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link.activa,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link.activa,
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link.activa {
    border-color: #52b5e6 !important;
    border-left: 5px solid #0b3768 !important;
    background: linear-gradient(180deg, #a8e1ff 0%, #73c8f5 100%) !important;
    color: #071b3d !important;
    box-shadow: 0 7px 16px rgba(56, 163, 219, .24) !important;
  }

  html body.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link.activa span,
  html body.visual-modern.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link.activa span,
  html body.visual-classic.is-authenticated:not(.guardian-portal-only):not(.report-print-body) #mainNav.sidebar .categoria-menu.menu-module-link.activa span {
    color: #071b3d !important;
  }
}

