/* ABP Asistencia Escolar v1.8 — mobile-first presentation only.
   Desktop retains original layout. Nothing in this file changes attendance logic. */
.abp-mobile-filterbar,.abp-mobile-sheet-head,.abp-mobile-sheet-footer,.abp-mobile-back,.abp-mobile-section-toggle,.abp-mobile-group-title{display:none}
.abp-mobile-filter-sheet{display:contents}
@media (max-width:760px){
  html{overflow-x:hidden}body{overflow-x:hidden;background:#f3f6fa}
  #app [hidden]{display:none!important} /* Never reveal role-restricted elements */
  #app{max-width:100vw;overflow-x:clip}
  #app .workspace{width:100%;min-width:0;padding-bottom:calc(84px + env(safe-area-inset-bottom))}
  #app .sidebar{height:calc(64px + env(safe-area-inset-bottom))!important;min-height:0!important;padding:6px 8px calc(5px + env(safe-area-inset-bottom))!important;background:#fff!important;border-top:1px solid #dce5ef!important;box-shadow:0 -6px 24px #17395c11!important}
  #app .sidebar #navigation{height:100%;width:100%;max-width:520px;gap:1px;padding:0;display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible}
  #app .sidebar #navigation button{min-width:0;min-height:49px!important;padding:4px 2px!important;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:1px;color:#62748a!important;font-size:10px!important;font-weight:750;border-radius:10px;white-space:normal;text-align:center;line-height:1.1}
  #app .sidebar #navigation button span{font-size:23px!important;line-height:1.1}
  #app .sidebar #navigation button.active{color:#17609e!important;background:#e8f3ff!important}
  #app .topbar{background:white;border-bottom:1px solid #e5edf5;padding:10px 14px 10px!important;min-height:76px;align-items:center!important;gap:8px!important;position:sticky;top:0;z-index:5}
  #app .topbar .eyebrow{font-size:9px;letter-spacing:.12em;line-height:1.2}
  #app .topbar .welcome{font-size:10px!important;font-weight:650;line-height:1.25;max-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  #app .topbar h1{font-size:21px!important;line-height:1.15;letter-spacing:-.02em;margin:3px 0 0}
  #app #pageSubtitle{display:none}
  #app .top-actions{gap:7px!important;align-items:center!important;flex-shrink:0}
  #app #enableNotices,#app #logoutMobile{display:none!important}
  #app .bell-button{width:38px;height:38px;border-radius:12px;font-size:21px}
  #app .notice-panel{top:73px;left:10px;right:10px;width:auto;max-height:75dvh;overflow-y:auto;z-index:25}
  #app main{padding:12px 12px 20px!important;min-width:0}
  #app .panel{padding:13px;border-radius:15px;border:1px solid #e4ebf3;box-shadow:none}
  #app .panel h2{font-size:16px}
  #app .home-hero{padding:12px 16px!important;margin-bottom:12px;border-radius:15px;min-height:70px;background:linear-gradient(125deg,#164468,#22648c)}
  #app .home-hero .eyebrow{font-size:9px;color:#d2ecff}
  #app .home-hero h2{font-size:16px!important;margin:3px 0 2px;line-height:1.25}
  #app .home-hero p{font-size:10px;line-height:1.3;margin:0;max-width:270px;opacity:.9}
  #app .home-hero .hero-mark{display:none!important}
  #app #page-resumen{display:none}
  #app #page-resumen.active{display:flex;flex-direction:column;gap:0}
  #app #page-resumen .home-hero{order:0}
  #app #page-resumen #metrics{order:1}
  #app #page-resumen .home-grid{order:2}
  #app #page-resumen .page-actions{order:3}
  #app #page-resumen>.columns{order:4}
  #app #page-resumen>.info-bar{order:5}
  #app #page-resumen .metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 15px}
  #app #page-resumen .metric{padding:9px 10px;min-height:68px;border-radius:13px;box-shadow:none}
  #app #page-resumen .metric strong{font-size:23px!important;margin:0;line-height:1.3}
  #app #page-resumen .metric .metric-label{font-size:10px}
  #app #page-resumen .metric small{font-size:9px;line-height:1.3;display:block}
  #app .home-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:15px}
  #app .home-card,#app .home-card-wide{min-height:83px!important;display:flex!important;flex-direction:row!important;gap:9px!important;align-items:center!important;text-align:left!important;padding:11px 10px!important;border-radius:14px!important;box-shadow:none!important}
  #app .home-card .card-icon{width:36px!important;height:36px!important;flex:0 0 36px;font-size:19px!important;border-radius:11px!important}
  #app .home-card>span:nth-child(2){display:flex;flex-direction:column;align-items:flex-start;min-width:0}
  #app .home-card b{font-size:10.6px!important;line-height:1.25;word-break:normal}
  #app .home-card small{display:none!important}
  #app .home-card em{font-size:9px!important;line-height:1.2;font-weight:650;margin-top:5px;white-space:normal}
  #app .home-card .card-arrow{display:none!important}
  #app .home-card-wide{grid-column:auto!important}
  #app .home-card-wide>span:nth-child(2){align-items:flex-start!important}
  #app .abp-mobile-group-title{display:block;font-size:12px;font-weight:850;color:#546b85;margin:0 0 8px}
  #app #page-resumen>.page-actions{padding:10px 12px;background:white;border:1px solid #e1eaf2;border-radius:13px;gap:8px;margin-bottom:10px;justify-content:flex-start}
  #app #page-resumen>.page-actions label{max-width:none;min-width:140px;flex:1}
  #app #page-resumen>.page-actions button{flex:1;white-space:normal}
  #app #page-resumen>.columns{gap:10px}
  #app #page-resumen>.columns .panel:not(.abp-mobile-expanded){padding:0;border:0;background:transparent}
  #app .abp-mobile-collapse:not(.abp-mobile-expanded)>:not(.abp-mobile-section-toggle){display:none!important}
  #app .abp-mobile-collapse .abp-mobile-section-toggle{width:100%;border:1px solid #dce7f1;border-radius:12px;padding:13px;background:white;color:#164b7a;font-size:13px;font-weight:850;display:flex;align-items:center;justify-content:space-between;text-align:left;gap:9px}
  #app .abp-mobile-collapse .abp-mobile-section-toggle::after{content:'+';font-size:22px;font-weight:400;line-height:1}
  #app .abp-mobile-collapse.abp-mobile-expanded .abp-mobile-section-toggle{margin-bottom:12px}
  #app .abp-mobile-collapse.abp-mobile-expanded .abp-mobile-section-toggle::after{content:'−'}
  #app .abp-mobile-filterbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 11px;background:white;border:1px solid #dfe8f2;border-radius:14px;margin-bottom:11px;min-height:56px}
  #app .abp-mobile-filterbar strong{display:block;font-size:12px;line-height:1.15;color:#1b4162}
  #app .abp-mobile-filterbar small{display:block;max-width:200px;margin-top:3px;font-size:10px;color:#6a8299;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  #app .abp-mobile-filterbar button{flex:none;font-size:12px;min-height:36px;padding:8px 11px}
  #app .abp-mobile-filterbar button[aria-expanded=true]{background:#ddefff}
  #app .abp-mobile-filter-sheet{display:none!important}
  #app .page.abp-filters-open .abp-mobile-filter-sheet{display:block!important;position:fixed;bottom:0;left:0;right:0;z-index:50;background:#fff;border-radius:20px 20px 0 0;box-shadow:0 -15px 50px #122b4a33;padding:0 16px calc(14px + env(safe-area-inset-bottom));max-height:min(89dvh,760px);overflow:auto;overscroll-behavior:contain;animation:abpRise .18s ease-out}
  #app .page.abp-filters-open .abp-mobile-sheet-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:16px 0 11px;background:white;border-bottom:1px solid #e3ebf3;margin-bottom:12px;font-size:17px;font-weight:850}
  #app .abp-mobile-sheet-head button{width:35px;height:35px;min-height:35px;border:0;border-radius:11px;background:#eef4f9;color:#244867;font-size:21px}
  #app .page.abp-filters-open .abp-mobile-sheet-footer{display:flex;position:sticky;bottom:-1px;background:white;padding:12px 0 2px;border-top:1px solid #e1eaf2;z-index:2}
  #app .abp-mobile-sheet-footer button{flex:1;min-height:43px;font-size:13px}
  #app .abp-mobile-filter-sheet>.page-actions{display:flex!important;flex-direction:column;gap:11px;align-items:stretch;justify-content:stretch;margin:0 0 12px}
  #app .abp-mobile-filter-sheet .search-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%}
  #app .abp-mobile-filter-sheet .search-row label{min-width:0!important;width:100%!important;max-width:none!important}
  #app .abp-mobile-filter-sheet .search-row .button-line{grid-column:span 2}
  #app .abp-mobile-filter-sheet .page-actions>label{width:100%;min-width:0;max-width:none}
  #app .abp-mobile-filter-sheet .page-actions>.btn{width:100%;max-width:100%}
  #app .abp-mobile-filter-sheet .filter-panel{padding:11px;border-radius:11px;margin:0 0 12px}
  #app .abp-mobile-filter-sheet .filter-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  #app .abp-mobile-filter-sheet .filter-options label{padding:8px 5px;font-size:11px;display:flex}
  #app .abp-mobile-filter-sheet label{font-size:12px}
  #app .abp-mobile-filter-sheet input,#app .abp-mobile-filter-sheet select{min-height:43px}
  body.abp-mobile-drawer-open{overflow:hidden}
  .abp-mobile-backdrop{display:none;position:fixed;inset:0;background:rgba(14,36,59,.42);z-index:49;touch-action:none}
  body.abp-mobile-drawer-open .abp-mobile-backdrop{display:block}
  @keyframes abpRise{from{transform:translateY(12px);opacity:.65}to{transform:translateY(0);opacity:1}}
  #app .abp-mobile-back{display:inline-flex;border:0;border-radius:8px;background:#eef4fa;color:#225580;min-height:35px;padding:6px 9px;font-size:11px;font-weight:850;gap:5px;align-items:center;margin-bottom:8px}
  #app #page-resumen .abp-mobile-back{display:none}
  #app .summary-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px}
  #app .summary-metrics .metric{padding:11px;border-radius:12px;min-height:80px}
  #app .summary-metrics .metric strong{font-size:23px!important}
  #app #page-estadistica .metrics,#app #page-informe .metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  #app #page-estadistica .metric,#app #page-informe .metric{padding:11px;min-width:0}
  #app #page-estadistica .metric strong,#app #page-informe .metric strong{font-size:24px}
  #app #page-informe .table-scroll{max-height:55dvh;overflow-y:auto;border:none}
  #app #page-informe .table-scroll table{min-width:0!important;display:block}
  #app #page-informe .table-scroll thead{display:none}
  #app #page-informe .table-scroll tbody{display:grid;gap:9px}
  #app #page-informe .table-scroll tbody tr{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:12px;border:1px solid #e0e8f1;border-radius:13px;background:white;min-width:0}
  #app #page-informe .table-scroll tbody td{padding:0;text-align:left;display:flex;flex-direction:column;border:0;min-width:0;white-space:normal;overflow-wrap:anywhere;font-size:12px}
  #app #page-informe .table-scroll tbody td::before{content:attr(data-abp-label);font-size:9px;color:#74889b;font-weight:800;text-transform:uppercase;letter-spacing:.03em}
  #app #page-informe .table-scroll tbody td:nth-child(2){grid-column:1/-1;font-size:14px;font-weight:850;color:#173f68;order:-2}
  #app #page-informe .table-scroll tbody td:nth-child(1){grid-column:1/-1;order:-1;font-size:10px}
  #app .matrix-wrap{max-height:50dvh;border:1px solid #e1eaf2;scrollbar-width:thin}
  #app .matrix-wrap table{min-width:580px}
  #app .chart-hold{overflow-x:auto}
  #app .chart-hold canvas{max-width:100%;height:auto!important}
  #app #page-estadistica .printable,#app #page-matriz .printable,#app #page-informe .printable{padding:13px}
  #app .report-brand h2,#app .printable>h2{font-size:15px;line-height:1.25}
  #app .report-brand img{max-width:55px;max-height:44px}
  #app .report-total-panel{padding:12px;font-size:11px;border-radius:11px}
  #app .table-scroll{max-width:100%;max-height:48dvh}
  #app .table-scroll th,#app .table-scroll td{padding:8px 9px}
  #app .form-inline-registration{grid-template-columns:1fr 1fr;gap:8px}
  #app .form-inline-registration label:nth-child(2){grid-column:span 2}
  #app #page-alumnos>.panel:first-child{margin-bottom:12px}
  #app #page-alumnos>.page-actions{gap:8px}
  #app #page-alumnos>.page-actions .search-row{display:grid;grid-template-columns:1fr 1fr;gap:9px}
  #app #page-alumnos>.page-actions .search-row label{min-width:0!important}
  #app .scan-layout{gap:10px}
  #app .scanner-panel{padding:12px}
  #app .scanner-panel .btn{white-space:normal}
  #app .directory-list{max-height:none}
  #app .directory-item{padding:12px}
  #app .stack{gap:12px}
  #app #page-ajustes .columns,#app #page-justificaciones .columns{gap:10px}
  #app #page-ajustes .lower,#app #page-alumnos .lower{margin-top:12px}
  #app .footer{display:none}
  #app .btn{min-height:40px}
  #app .page.active{scroll-margin-top:80px}
  #app .abp-settings-footer{margin-top:10px}
}
@media print {
  .abp-mobile-back,.abp-mobile-filterbar,.abp-mobile-sheet-head,.abp-mobile-sheet-footer,.abp-mobile-backdrop,.abp-mobile-section-toggle,.abp-mobile-group-title{display:none!important}
  #app .abp-mobile-filter-sheet{display:none!important}
  #app .printable .table-scroll{max-height:none!important;overflow:visible!important}
  #app .abp-mobile-collapse:not(.abp-mobile-expanded)>:not(.abp-mobile-section-toggle){display:initial!important}
}
@media print {
  /* Restitute institutional table formatting even if the PDF is requested on a phone. */
  #app #page-informe .table-scroll table{display:table!important;min-width:0!important}
  #app #page-informe .table-scroll thead{display:table-header-group!important}
  #app #page-informe .table-scroll tbody{display:table-row-group!important}
  #app #page-informe .table-scroll tbody tr{display:table-row!important;padding:0!important;border:0!important;background:transparent!important}
  #app #page-informe .table-scroll tbody td{display:table-cell!important;white-space:normal!important;padding:5px!important;border:1px solid #d8e1ea!important;font-size:10px!important}
  #app #page-informe .table-scroll tbody td::before{display:none!important}
}
