
/* PATCH 54.6.2 - UI institucional responsive unificada
   Base visual común para paneles EOE, Preceptoría, Biblioteca, Laboratorio y EMTP.
   Mobile-first: botones táctiles, grillas adaptables y tablas con scroll seguro. */
:root{--inst-bg:#f5f7fb;--inst-side:#111827;--inst-card:#ffffff;--inst-text:#0f172a;--inst-muted:#64748b;--inst-line:#e5e7eb;--inst-blue:#2563eb;--inst-blue-soft:#eff6ff;--inst-radius:18px;--inst-shadow:0 10px 28px rgba(15,23,42,.08)}
html{scroll-behavior:smooth} *{box-sizing:border-box} body{overflow-x:hidden}
a[class*="btn"], .btn, button{touch-action:manipulation}
/* Navegación institucional estilo EOE */
.eoe-side nav a[href$="/logout"], .eoe-side nav a.logout-link{background:#dc2626;color:#fff;font-weight:800}.eoe-side nav a[href$="/logout"]:hover{background:#b91c1c}
.eoe-side nav a[href$="/panel"]{background:rgba(255,255,255,.10)}
@media(max-width:900px){
  .eoe-wrap{display:block;min-height:auto}.eoe-side{position:sticky;top:0;z-index:20;width:auto;padding:14px 14px 12px;border-bottom:1px solid rgba(255,255,255,.12)}
  .eoe-side h1{font-size:22px}.eoe-side p{margin:2px 0 0}.eoe-side nav{display:flex;gap:8px;overflow-x:auto;margin-top:12px;padding-bottom:3px;-webkit-overflow-scrolling:touch}.eoe-side nav a{white-space:nowrap;min-height:42px;display:inline-flex;align-items:center}.eoe-main{padding:18px 12px}.head{gap:10px;align-items:flex-start;flex-direction:column}.head .btn{width:100%;text-align:center}.card,.panel{border-radius:16px;padding:15px}table{min-width:720px}.panel{overflow:auto}
}
@media(max-width:560px){.eoe-main h1{font-size:25px}.card strong{font-size:30px}.btn{width:100%;text-align:center}.filters,.inline{display:grid;grid-template-columns:1fr}.filters input,.filters select,.inline select,.inline button{width:100%}}
/* Paneles que usan Views/layouts/base.php */
.pre-shell,.biblio-shell,.emtp-shell{width:100%;max-width:1180px;margin:0 auto;padding:0 8px 22px}.pre-hero,.biblio-hero,.emtp-hero{border-radius:22px!important}.pre-actions,.biblio-actions,.module-actions{gap:10px!important}.pre-btn,.biblio-btn,.module-link,.btn{min-height:44px!important}
/* Preceptor: evita bloques blancos lavados sobre fondo oscuro y mejora contraste */
.pre-section{background:linear-gradient(180deg,#ffffff,#f8fbff)!important;border-color:#dbeafe!important;color:#0f172a!important}.pre-section h2,.module-card h3,.course-card h4{color:#0f172a!important}.pre-section .lead,.module-card p,.course-card .meta{color:#475569!important}.module-card,.course-card{background:#ffffff!important;border-color:#cfe0fb!important;box-shadow:0 8px 22px rgba(15,23,42,.07)!important}.pre-note{background:#eef6ff!important;color:#1e3a8a!important}.pre-kpi{min-height:132px}
/* Biblioteca/EMTP: armoniza tarjetas claras y botones */
.biblio-card,.mod,.list-card{border-radius:18px!important;box-shadow:var(--inst-shadow)!important}.biblio-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.biblio-table{min-width:760px}.biblio-empty{white-space:normal}
/* Laboratorio standalone */
.lab-shell,.wrap{width:100%;max-width:1200px}.wrap{padding-left:14px!important;padding-right:14px!important}.actions{gap:10px!important}.actions .btn{min-height:44px!important}.panel{max-width:100%}
@media(max-width:820px){
  .pre-shell,.biblio-shell,.emtp-shell{padding:0 4px 18px}.pre-hero,.biblio-hero,.emtp-hero{padding:18px!important;border-radius:18px!important}.pre-hero h1,.biblio-hero h2,.emtp-hero h2{font-size:28px!important;line-height:1.1}.pre-meta,.biblio-kv,.grid4,.mod-grid,.list-grid,.pre-grid,.modules-grid,.course-grid,.biblio-grid4,.biblio-grid3{grid-template-columns:1fr!important}.pre-actions,.biblio-actions,.module-actions,.actions{display:grid!important;grid-template-columns:1fr 1fr}.pre-btn,.biblio-btn,.module-link,.actions .btn{width:100%;text-align:center;justify-content:center}.pre-section{padding:18px!important;border-radius:18px!important}.pre-kpi .value{font-size:32px!important}.biblio-card,.mod,.list-card,.module-card,.course-card{padding:16px!important}.biblio-table th,.biblio-table td{padding:10px!important}
}
@media(max-width:520px){
  .pre-actions,.biblio-actions,.module-actions,.actions{grid-template-columns:1fr!important}.topbar{position:relative}.pre-hero h1,.biblio-hero h2,.emtp-hero h2,h1{font-size:25px!important}.pre-meta-card strong,.biblio-stat .value,.stat .value,.value{font-size:18px!important}.pre-kpi{min-height:auto}.pre-kpi .value{font-size:30px!important}.pre-section h2{font-size:21px!important}.module-link,.pre-btn,.biblio-btn,.actions .btn{min-height:46px!important}.course-card,.module-card{border-radius:16px!important}
}
