/* Academia de Alto Impacto — capa de mejoras del 07/10/2026 (Arcebot). Se carga la ÚLTIMA (inc/vista.php) para poder corregir a las demás.
   Todo es aditivo: para revertir basta con borrar este fichero (vista.php solo lo enlaza si existe). Sin estilos en línea (CSP). */

/* ---- 1. Las tablas y bloques de datos son legibles SIEMPRE ----
   El revelado por scroll (ap-vista, view()) dejaba las tablas largas a media opacidad hasta bajar casi toda la pantalla
   (contraste real de 2,2:1 en las listas de Administración). Las tablas, los bloques de datos y los formularios ya no se desvanecen. */
.ap .table-wrap,
.zona-admin .ac-bloque,
.zona-admin .stat,
.zona-admin .desc,
.zona-admin .fam__cab{animation:none !important;opacity:1 !important;translate:none !important;scale:none !important}

/* ---- 2. Anclas bajo la cabecera fija ---- */
.ap [id],.al-nav ~ main [id]{scroll-margin-top:84px}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}

/* ---- 3. Foco visible coherente en TODO el sitio (también las páginas públicas) ---- */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--focus,#ffb38f);outline-offset:3px}
html[data-zona="publica"] :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline-color:#ffb38f}

/* ---- 4. Zonas táctiles de 44 px en móvil (WCAG 2.5.5) ---- */
@media (max-width:900px),(pointer:coarse){
  .al-menu__l,.al-btn--sm,.nt-btn,.nta-menu__l,.cp-filtro,.btn--sm,.ps-lnk,.ps__col a,.ps__redes a,.ac-admin-menu a,.ap-icon-btn,.ap-user__btn,
  .ex-fav,.clave__ver,.ac-acciones .btn,.ac-acciones button,.al-nav .al-btn,.crumb a,.crumb--clara a{min-height:44px}
  .ap .clave__ver,.ap .ex-fav,.ap .btn,.ap .btn--sm,.ap .cp-filtro{min-height:44px}
  .ap .clave__ver,.ap .ex-fav{min-width:44px;width:44px}
  .al-nav .al-btn,.crumb a{display:inline-flex;align-items:center}
  .al-menu__l,.nta-menu__l,.nt-btn,.al-btn--sm{display:inline-flex;align-items:center}
  summary.al-menu__l{display:flex}
  .ap select,.ap input:not([type=checkbox],[type=radio],[type=hidden]),.ap textarea{min-height:44px}
  .ap input[type=checkbox],.ap input[type=radio]{width:22px;height:22px}
  .ap label:has(> input[type=checkbox]),.ap label:has(> input[type=radio]),.ac-check{display:flex;align-items:center;gap:.6rem;min-height:44px}
  .ng__dot{position:relative;min-width:44px}
  .ex-fav{min-width:44px}
  .ps__col li a{display:inline-flex;align-items:center}
  .crumb--clara a,.ap-pie a{display:inline-flex;align-items:center;min-height:44px}
}

/* ---- 5. Microinteracciones: la pulsación se nota ---- */
@media (prefers-reduced-motion:no-preference){
  .btn,.al-btn,.nt-btn,.ap-nav__a,.ap-icon-btn,.pl-btn{transition:transform .12s ease,background-color .2s ease,box-shadow .2s ease,border-color .2s ease}
  .btn:active,.al-btn:active,.nt-btn:active,.ap-nav__a:active,.ap-icon-btn:active,.pl-btn:active{transform:translateY(1px) scale(.985)}
  @media (hover:hover){
    .pcard,.mod,.ev{transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
  }
}

/* ---- 6. Alto contraste y colores forzados (accesibilidad) ---- */
@media (prefers-contrast:more){
  .ap{--line:currentColor;--muted:var(--ink)}
  .ap .chip,.ap .btn--line,.ap .pcard,.ap .table-wrap{border-color:currentColor}
}
@media (forced-colors:active){
  .ap .chip,.ap .btn,.ap .ap-nav__a,.ap .pcard,.ap .ac-cifras>div{border:1px solid ButtonText}
  .ap-deco,.px__fondo{display:none}
  .ap .prog__bar{forced-color-adjust:auto}
}

/* ---- 7. Impresión limpia (clases, notas y el certificado) ---- */
@media print{
  .ap-deco,.ap-top,.ap-nav,.ps,.ap-pie,.saltar,.ck,.ex-fab,.ex-barra,.ex-toast,.player-bar,.lp__lado,.ac-vecinas,.lp__acc,.al-nav,[data-cookies-abrir],.vercomo,.cp-vercomo-fila{display:none !important}
  body,.ap{background:#fff !important;color:#000 !important}
  .ap *{color:#000 !important;box-shadow:none !important;text-shadow:none !important}
  .ap a[href^="http"]:not(.btn)::after{content:" (" attr(href) ")";font-size:.8em;word-break:break-all}
  .wrap{max-width:none !important;padding-inline:0 !important}
  .mj-solo-pantalla{display:none !important}
}

/* ---- 8. Rendimiento de pintado: el pie y las listas largas no se calculan hasta acercarse ---- */
.ps{content-visibility:auto;contain-intrinsic-size:auto 560px}

/* ---- 9. Tarjetas de masterclass: el título es h2 en /masterclass.php (orden de encabezados correcto) y h3 en la portada ---- */
.mx-card__t h2{margin-top:.9rem;font-size:clamp(1.7rem,3.2vw,2.5rem);font-weight:800;line-height:1.1;color:#fff}

/* ---- 10. Sin saltos de diseño (CLS): el editor reserva su altura mientras carga el árbol y el botón Día/Noche reserva su sitio ---- */
.ap .ed__cuerpo{min-height:min(72vh,720px)}
.ap .ap-tema[hidden]{display:inline-flex !important;visibility:hidden}

/* ---- 11. Administración: actividad y sistema (gráficos en SVG, avisos y filtros) ---- */
.ap .mj-alerta{display:flex;flex-wrap:wrap;gap:.3rem .8rem;align-items:center;padding:.7rem 1rem;border-radius:14px 5px 14px 5px;border:1px solid var(--line);border-left:5px solid var(--accent-t);background:var(--card);font-size:.92rem;font-weight:600}
.ap .mj-alerta--error{border-left-color:var(--err);background:var(--err-bg)}
.ap .mj-alerta--aviso{border-left-color:var(--warn);background:var(--warn-bg)}
.ap .mj-alerta--info{border-left-color:var(--violeta)}
.ap .mj-rango{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ap .mj-graf{width:100%;height:auto;max-height:230px;display:block}
.ap .mj-bar{fill:var(--accent)}
.ap .mj-eje{stroke:var(--line);stroke-width:1}
.ap .mj-lbl{fill:var(--muted);font:600 11px var(--font)}
.ap .mj-cod{white-space:normal;word-break:break-word}
.ap .ac-bloques--2{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}
.ap .mj-lista{display:grid;gap:.5rem;margin:.6rem 0 1rem}
.ap .mj-lista li{display:flex;flex-wrap:wrap;gap:.4rem .8rem;align-items:center}

/* ---- 12. Alumno: primeros pasos, próximo directo y certificado ---- */
.ap .mj-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.ap .mj-pasos{display:grid;gap:.7rem;padding:1rem 1.2rem 1.1rem;border-radius:28px 10px 28px 10px;border:1px solid var(--line);border-left:5px solid #F05613;background:linear-gradient(135deg,var(--card),var(--card2))}
.ap .mj-pasos__cab{display:flex;align-items:center;gap:.7rem}
.ap .mj-pasos__cab h2{display:flex;align-items:center;gap:.5rem;font-size:1.1rem;flex:1}
.ap .mj-pasos__cab h2 .ico{color:var(--accent-t)}
.ap .mj-pasos__n{font-size:.82rem;font-weight:800;color:var(--muted)}
.ap .mj-pasos__x{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:var(--muted);cursor:pointer}
.ap .mj-pasos__x:hover{background:var(--accent-soft);color:var(--ink)}
.ap .mj-pasos__bar{width:100%;height:8px;border-radius:99px;overflow:hidden;appearance:none;-webkit-appearance:none;border:0;background:var(--surface)}
.ap .mj-pasos__bar::-webkit-progress-bar{background:var(--surface);border-radius:99px}
.ap .mj-pasos__bar::-webkit-progress-value{background:linear-gradient(90deg,#F05613,#ff7a3d);border-radius:99px}
.ap .mj-pasos__bar::-moz-progress-bar{background:linear-gradient(90deg,#F05613,#ff7a3d);border-radius:99px}
.ap .mj-pasos__l{display:grid;gap:.45rem}
.ap .mj-pasos__l li{display:flex;gap:.6rem;align-items:flex-start;font-weight:600;font-size:.95rem}
.ap .mj-pasos__i{display:inline-grid;place-items:center;flex:none;width:1.5rem;height:1.5rem;color:var(--muted)}
.ap .mj-pasos__l li.is-hecho{color:var(--muted);text-decoration:line-through;text-decoration-thickness:1px}
.ap .mj-pasos__l li.is-hecho .mj-pasos__i{color:var(--ok)}
.ap .mj-pasos .btn{justify-self:start}
.ap .mj-prox{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1rem;padding:.8rem 1.1rem;border-radius:999px 22px 999px 22px;border:1px solid var(--line);background:linear-gradient(135deg,var(--card),var(--card2))}
.ap .mj-prox__ic{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#F05613,#ff7a3d);color:#1b0628;font-size:1.25rem}
.ap .mj-prox__t{display:grid;flex:1 1 220px;min-width:0;line-height:1.3}
.ap .mj-prox__t small{font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-t)}
.ap .mj-prox__t b{font-size:1rem}
.ap .mj-prox__t span{font-size:.85rem;color:var(--muted)}
.ap .mj-prox__c{font-weight:800;font-size:.9rem;font-variant-numeric:tabular-nums;color:var(--accent-t)}
@media (max-width:639px){.ap .mj-prox{border-radius:26px 10px 26px 10px}}

/* ---- 13. Menú de administración: ya no se esconden pestañas a la derecha (12 secciones) ---- */
@media (min-width:900px){
  .ac-admin-menu{flex-wrap:wrap;overflow-x:visible}
  .ac-admin-menu a{padding-inline:.8rem}
}
@media (max-width:899px){
  .ac-admin-menu{-webkit-mask-image:linear-gradient(90deg,#000 90%,transparent);mask-image:linear-gradient(90deg,#000 90%,transparent);scroll-snap-type:x proximity}
  .ac-admin-menu a{scroll-snap-align:center}
}

/* ---- 14. Más zonas táctiles (móvil): editor, Focus News y sus formularios ---- */
@media (max-width:900px),(pointer:coarse){
  .ap .ed-asa,.ap .ed-chev,.ap .ed-mini{min-width:44px;min-height:44px}
  html .nta-menu__l,html .nt-btn,html .nt-buscar__q,html .nt-buscar button,html .nt-btn--sm{min-height:44px}
  html .nta-menu__l{display:inline-flex;align-items:center}
}
