/* ============================================================
   CAT'S MINER — Escuela Virtual
   Hoja de estilos única. Amarillo #FFD234 y negro de la marca.
   ============================================================ */

:root{
  --amarillo:#FFD234;
  --amarillo-osc:#E8B800;
  --amarillo-tenue:#FFF6D6;
  --negro:#141414;
  --negro-2:#1E1E1E;
  --negro-3:#2A2A2A;
  --gris-900:#333;
  --gris-700:#5A5A5A;
  --gris-500:#8A8A8A;
  --gris-300:#D7D7D7;
  --gris-100:#F1F1F0;
  --gris-50:#F8F8F7;
  --blanco:#FFFFFF;
  --verde:#1F9D55;
  --verde-suave:#E4F5EC;
  --rojo:#C63737;
  --rojo-suave:#FCEAEA;
  --azul:#2563C9;
  --azul-suave:#E7EFFC;
  --radio:12px;
  --radio-s:8px;
  --sombra:0 1px 2px rgba(0,0,0,.06), 0 4px 14px rgba(0,0,0,.06);
  --sombra-alta:0 10px 40px rgba(0,0,0,.16);
  --lateral:264px;
  --fuente:"Barlow",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --fuente-titulo:"Barlow Condensed","Barlow Semi Condensed",var(--fuente);
}

*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0;max-width:100%;overflow-x:hidden}
body{
  font-family:var(--fuente);
  font-size:15px; line-height:1.55;
  color:var(--negro); background:var(--gris-50);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4{margin:0;line-height:1.2;font-weight:700;letter-spacing:-.01em}
h1{font-size:1.6rem} h2{font-size:1.25rem} h3{font-size:1.02rem}
p{margin:0 0 .8em}
[hidden]{display:none!important}

/* ---------------- utilidades ---------------- */
.oculto{display:none!important}
.fila{display:flex;align-items:center;gap:12px}
.fila-sep{display:flex;align-items:center;justify-content:space-between;gap:12px}
.crece{flex:1;min-width:0}
.centrado{text-align:center}
.silencio{color:var(--gris-700);font-size:.9rem}
.mini{font-size:.8rem;color:var(--gris-700)}
.truncar{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mt{margin-top:16px}.mt-l{margin-top:28px}.mb{margin-bottom:16px}

/* ---------------- botones ---------------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:10px 18px;border:1px solid transparent;border-radius:var(--radio-s);
  background:var(--negro);color:#fff;font-weight:600;font-size:.92rem;
  cursor:pointer;transition:.15s transform,.15s background,.15s box-shadow;
  text-decoration:none;white-space:nowrap;
}
.btn:hover{background:var(--negro-3)}
.btn:active{transform:translateY(1px)}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-primario{background:var(--amarillo);color:var(--negro)}
.btn-primario:hover{background:var(--amarillo-osc)}
.btn-linea{background:transparent;border-color:var(--gris-300);color:var(--negro)}
.btn-linea:hover{background:var(--gris-100)}
.btn-peligro{background:var(--rojo)}
.btn-peligro:hover{background:#a92c2c}
.btn-sm{padding:6px 12px;font-size:.84rem}
.btn-bloque{width:100%}
.btn-icono{
  width:34px;height:34px;padding:0;border-radius:8px;background:transparent;
  border:1px solid var(--gris-300);color:var(--gris-700);
}
.btn-icono:hover{background:var(--gris-100);color:var(--negro)}

/* ---------------- tarjetas ---------------- */
.tarjeta{
  background:var(--blanco);border:1px solid var(--gris-300);
  border-radius:var(--radio);box-shadow:var(--sombra);
}
.tarjeta-cuerpo{padding:20px}
.tarjeta-cab{
  padding:16px 20px;border-bottom:1px solid var(--gris-300);
  display:flex;align-items:center;justify-content:space-between;gap:12px;
}

/* ---------------- formularios ---------------- */
.campo{margin-bottom:14px}
.campo label{display:block;font-size:.84rem;font-weight:600;margin-bottom:6px;color:var(--gris-900)}
.campo .ayuda{font-size:.78rem;color:var(--gris-700);margin-top:5px}
input[type=text],input[type=email],input[type=password],input[type=tel],
input[type=date],input[type=datetime-local],input[type=number],input[type=url],
select,textarea{
  width:100%;padding:10px 12px;border:1px solid var(--gris-300);
  border-radius:var(--radio-s);background:var(--blanco);
  transition:.15s border-color,.15s box-shadow;
}
input:focus,select:focus,textarea:focus{
  outline:none;border-color:var(--amarillo-osc);
  box-shadow:0 0 0 3px rgba(255,210,52,.28);
}
textarea{resize:vertical;min-height:88px}
.rejilla-2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.rejilla-3{display:grid;grid-template-columns:repeat(3,1fr);gap:0 16px}
@media(max-width:720px){.rejilla-2,.rejilla-3{grid-template-columns:1fr}}

/* ---------------- avisos ---------------- */
.aviso{
  padding:11px 14px;border-radius:var(--radio-s);font-size:.9rem;
  border:1px solid transparent;margin-bottom:14px;
}
.aviso-error{background:var(--rojo-suave);border-color:#f0c2c2;color:#8e2020}
.aviso-ok{background:var(--verde-suave);border-color:#bfe4cf;color:#136b3a}
.aviso-info{background:var(--azul-suave);border-color:#c5d8f5;color:#1b4a9c}
.aviso-alerta{background:var(--amarillo-tenue);border-color:#f0dc9a;color:#6b5300}

/* ---------------- etiquetas ---------------- */
.etiqueta{
  display:inline-flex;align-items:center;gap:5px;
  padding:3px 9px;border-radius:99px;font-size:.75rem;font-weight:600;
  background:var(--gris-100);color:var(--gris-900);white-space:nowrap;
}
.etiqueta-ok{background:var(--verde-suave);color:#136b3a}
.etiqueta-vivo{background:#FDE7E7;color:#B02020}
.etiqueta-espera{background:var(--amarillo-tenue);color:#6b5300}
.etiqueta-info{background:var(--azul-suave);color:#1b4a9c}
.punto-vivo{
  width:7px;height:7px;border-radius:50%;background:#E23B3B;
  animation:latir 1.4s infinite;
}
@keyframes latir{0%,100%{opacity:1}50%{opacity:.25}}

/* ============================================================
   LOGIN
   ============================================================ */
.login-pantalla{
  min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr;
  background:var(--negro);
}
.login-arte{
  position:relative;display:flex;flex-direction:column;justify-content:space-between;
  padding:44px;color:#fff;overflow:hidden;
  background:
    linear-gradient(180deg,rgba(20,20,20,.55) 0%,rgba(20,20,20,.86) 100%),
    var(--amarillo);
  background-size:cover;background-position:center;
}
.login-arte::after{
  content:"";position:absolute;inset:auto -10% -22% -10%;height:320px;
  background:radial-gradient(ellipse at center,rgba(255,210,52,.32),transparent 68%);
  pointer-events:none;
}
.login-marca{display:flex;align-items:center;gap:14px;position:relative;z-index:1}
.login-marca img{height:52px;width:auto}
.login-lema{position:relative;z-index:1;max-width:420px}
.login-lema h2{font-family:var(--fuente-titulo);font-size:2.9rem;line-height:1.04;
  margin-bottom:14px;text-transform:uppercase;letter-spacing:.005em;text-wrap:balance}
.login-lema h2 span{color:var(--amarillo)}
.login-lema p{color:#D8D8D8;font-size:.98rem;margin:0}
.login-datos{
  position:relative;z-index:1;display:flex;gap:34px;flex-wrap:wrap;
  border-top:1px solid rgba(255,255,255,.16);padding-top:22px;
}
.login-datos b{display:block;font-family:var(--fuente-titulo);font-size:1.9rem;
  color:var(--amarillo);line-height:1;font-variant-numeric:tabular-nums}
.login-datos span{font-size:.8rem;color:#B5B5B5}

.login-panel{
  background:var(--blanco);display:flex;align-items:center;justify-content:center;
  padding:40px 32px;
}
.login-caja{width:100%;max-width:376px}
.login-caja h1{font-size:1.62rem;margin-bottom:6px;text-wrap:balance}
.login-caja .sub{color:var(--gris-700);margin-bottom:26px;font-size:.94rem}
.login-pie{margin-top:24px;font-size:.82rem;color:var(--gris-700);text-align:center}
.login-logo-movil{display:none}
@media(max-width:900px){
  .login-pantalla{grid-template-columns:1fr}
  .login-arte{display:none}
  .login-logo-movil{display:flex;justify-content:center;margin-bottom:26px}
  .login-logo-movil img{height:62px;width:auto}
  .login-panel{min-height:100vh;background:var(--gris-50)}
  .login-caja{background:#fff;padding:28px 24px;border-radius:16px;box-shadow:var(--sombra-alta)}
}

/* ============================================================
   ESTRUCTURA CON BARRA LATERAL
   ============================================================ */
.marco{display:flex;min-height:100vh}

.lateral{
  width:var(--lateral);flex-shrink:0;background:var(--negro);color:#EDEDED;
  display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;z-index:40;
  transition:transform .22s ease;
}
.lateral-cab{padding:20px 18px 16px;border-bottom:1px solid rgba(255,255,255,.09)}
.lateral-cab img{height:40px;width:auto}

/* tarjeta de identidad: foto, nombre y SEDE */
.identidad{
  margin:16px 14px;padding:14px;border-radius:var(--radio);
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);
}
.identidad .fila{gap:11px}
.avatar{
  width:44px;height:44px;border-radius:50%;object-fit:cover;flex-shrink:0;
  background:var(--amarillo);color:var(--negro);
  display:flex;align-items:center;justify-content:center;
  font-weight:700;font-size:.95rem;border:2px solid var(--amarillo);
}
.avatar-lg{width:92px;height:92px;font-size:1.7rem}
.avatar-sm{width:30px;height:30px;font-size:.72rem;border-width:1.5px}
.identidad-nombre{font-weight:650;font-size:.92rem;color:#fff}
.identidad-rol{font-size:.75rem;color:#9E9E9E}
.chip-sede{
  margin-top:11px;display:flex;align-items:center;gap:7px;
  padding:6px 10px;border-radius:99px;background:var(--amarillo);
  color:var(--negro);font-size:.76rem;font-weight:700;
}
.chip-sede svg{width:13px;height:13px;flex-shrink:0}

.menu{flex:1;overflow-y:auto;padding:6px 10px 16px}
.menu-titulo{
  font-size:.68rem;text-transform:uppercase;letter-spacing:.09em;
  color:#7C7C7C;padding:16px 10px 7px;font-weight:700;
}
.menu a{
  display:flex;align-items:center;gap:11px;padding:10px 11px;margin-bottom:2px;
  border-radius:var(--radio-s);color:#CFCFCF;text-decoration:none;
  font-size:.9rem;font-weight:500;cursor:pointer;transition:.13s;
  border-left:3px solid transparent;
}
.menu a:hover{background:rgba(255,255,255,.07);color:#fff}
.menu a.activo{background:rgba(255,210,52,.14);color:var(--amarillo);border-left-color:var(--amarillo);font-weight:650}
.menu a svg{width:17px;height:17px;flex-shrink:0}
.menu .globo{
  margin-left:auto;background:var(--amarillo);color:var(--negro);
  border-radius:99px;padding:1px 7px;font-size:.7rem;font-weight:700;
}
.lateral-pie{padding:12px 14px 18px;border-top:1px solid rgba(255,255,255,.09)}
.btn-salir{
  width:100%;display:flex;align-items:center;gap:10px;padding:10px 11px;
  background:transparent;border:1px solid rgba(255,255,255,.16);
  border-radius:var(--radio-s);color:#CFCFCF;font-size:.88rem;
  font-weight:600;cursor:pointer;
}
.btn-salir:hover{background:rgba(198,55,55,.18);border-color:rgba(198,55,55,.5);color:#FF9C9C}
.btn-salir svg{width:16px;height:16px}

/* contenido */
.contenido{flex:1;margin-left:var(--lateral);min-width:0;display:flex;flex-direction:column}
.barra-sup{
  height:62px;background:var(--blanco);border-bottom:1px solid var(--gris-300);
  display:flex;align-items:center;gap:14px;padding:0 24px;
  position:sticky;top:0;z-index:30;
}
.barra-sup h1{font-size:1.12rem}
.hamburguesa{display:none;background:none;border:none;cursor:pointer;padding:6px}
.hamburguesa svg{width:22px;height:22px}
.vista{padding:24px;max-width:1180px;width:100%}

.velo{
  display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:39;
}
@media(max-width:1000px){
  .lateral{transform:translateX(-100%)}
  .lateral.abierta{transform:translateX(0)}
  .contenido{margin-left:0}
  .hamburguesa{display:block}
  .velo.visible{display:block}
  .vista{padding:16px}
}

@media(max-width:420px){
  body{font-size:14.5px}
  .login-panel{
    align-items:flex-start;padding:38px 14px 24px;
    padding-top:max(38px,calc(env(safe-area-inset-top) + 24px));
    padding-bottom:max(24px,env(safe-area-inset-bottom));
  }
  .login-caja{padding:24px 20px;border-radius:14px}
  .login-logo-movil{margin-bottom:20px}
  .login-logo-movil img{height:58px}
  .login-caja h1{font-size:1.48rem}
  .login-caja .sub{margin-bottom:22px}
  .barra-sup{
    height:58px;gap:8px;padding-left:max(10px,env(safe-area-inset-left));
    padding-right:max(10px,env(safe-area-inset-right));
  }
  .barra-sup h1{font-size:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .barra-sup .etiqueta{max-width:112px;overflow:hidden;text-overflow:ellipsis}
  .barra-sup #accionesBarra .btn{padding:8px 10px;font-size:.8rem}
  .hamburguesa{width:42px;height:42px;padding:9px;flex-shrink:0}
  .vista{
    padding:12px;padding-left:max(12px,env(safe-area-inset-left));
    padding-right:max(12px,env(safe-area-inset-right));
    padding-bottom:max(18px,env(safe-area-inset-bottom));
  }
  .tarjeta-cuerpo{padding:16px}
  .tarjeta-cab{padding:14px 16px;align-items:flex-start;flex-wrap:wrap}
  .fila-sep{flex-wrap:wrap}
  .metricas{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .metrica{padding:14px;min-width:0}
  .metrica .n{font-size:2rem}
  .metrica .t{line-height:1.25}
  .modulo{padding:12px;gap:11px;align-items:flex-start}
  .comentario.respuesta{margin-left:18px;padding-left:10px}
  .sesion{padding:13px;gap:12px;align-items:flex-start;flex-wrap:wrap}
  .sesion-fecha{width:56px}
  .sesion>.btn,.sesion>.fila{margin-left:68px}
  .modal-fondo{padding:8px}
  .modal{max-height:calc(100vh - 16px);border-radius:10px}
  .modal-cab{padding:14px 16px}
  .modal-cuerpo{padding:16px}
  .modal-pie{padding:12px 16px;flex-wrap:wrap}
  .modal-pie .btn{flex:1;min-width:120px}
  .btn{min-height:42px;padding:9px 14px}
  .btn-icono{width:40px;height:40px}
  .campo[style*="max-width:50%"]{max-width:100%!important}
  .vacio{padding:34px 16px}
  .brindis{width:max-content;max-width:calc(100% - 24px);bottom:max(12px,env(safe-area-inset-bottom));border-radius:12px;text-align:center}
}

/* ============================================================
   COMPONENTES
   ============================================================ */

/* métricas */
.metricas{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}
.metrica{
  background:var(--blanco);border:1px solid var(--gris-300);border-radius:var(--radio);
  padding:18px;box-shadow:var(--sombra);
}
.metrica .n{font-family:var(--fuente-titulo);font-size:2.5rem;font-weight:700;
  line-height:.98;letter-spacing:0;font-variant-numeric:tabular-nums}
.metrica .t{font-size:.82rem;color:var(--gris-700);margin-top:3px}
.metrica .barra-mini{margin-top:11px}

/* barra de progreso */
.progreso{height:8px;background:var(--gris-100);border-radius:99px;overflow:hidden}
.progreso i{
  display:block;height:100%;border-radius:99px;
  background:linear-gradient(90deg,var(--amarillo-osc),var(--amarillo));
  transition:width .5s cubic-bezier(.2,.8,.2,1);
}
.progreso-verde i{background:linear-gradient(90deg,#17864a,var(--verde))}
.progreso-etq{display:flex;justify-content:space-between;font-size:.8rem;margin-bottom:6px}
.progreso-etq b{font-weight:700}

/* tablas */
.tabla-envoltura{overflow-x:auto;border-radius:var(--radio)}
table.tabla{width:100%;border-collapse:collapse;background:var(--blanco);font-size:.89rem;
  font-variant-numeric:tabular-nums}
.tabla th{
  text-align:left;padding:11px 14px;background:var(--gris-50);
  font-size:.74rem;text-transform:uppercase;letter-spacing:.05em;
  color:var(--gris-700);font-weight:700;border-bottom:1px solid var(--gris-300);
  white-space:nowrap;
}
.tabla td{padding:11px 14px;border-bottom:1px solid var(--gris-100);vertical-align:middle}
.tabla tbody tr:hover{background:var(--gris-50)}
.tabla tbody tr:last-child td{border-bottom:none}

/* módulos del curso */
.modulos{display:flex;flex-direction:column;gap:10px}
.modulo{
  background:var(--blanco);border:1px solid var(--gris-300);border-radius:var(--radio);
  padding:14px 16px;display:flex;align-items:center;gap:14px;cursor:pointer;
  transition:.15s;
}
.modulo:hover{border-color:var(--amarillo-osc);box-shadow:var(--sombra)}
.modulo.hecho{background:#FBFDFB;border-color:#CBE7D7}
.modulo.actual{border-color:var(--amarillo);box-shadow:0 0 0 3px rgba(255,210,52,.22)}
.modulo-num{
  width:34px;height:34px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:var(--gris-100);color:var(--gris-700);font-weight:700;font-size:.85rem;
}
.modulo.hecho .modulo-num{background:var(--verde);color:#fff}
.modulo-tit{font-weight:600;font-size:.94rem}

/* reproductor */
.video-marco{
  position:relative;width:100%;padding-top:56.25%;
  background:#000;border-radius:var(--radio);overflow:hidden;
}
.video-marco iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video-vacio{
  position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;color:#777;gap:8px;font-size:.9rem;
}

/* comentarios */
.comentario{display:flex;gap:11px;padding:14px 0;border-bottom:1px solid var(--gris-100)}
.comentario:last-child{border-bottom:none}
.comentario.respuesta{margin-left:42px;padding-left:14px;border-left:2px solid var(--gris-100)}
.comentario-cab{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:3px}
.comentario-autor{font-weight:650;font-size:.88rem}
.comentario-texto{font-size:.91rem;white-space:pre-wrap;word-break:break-word}

/* compañeros */
.companeros{display:flex;flex-wrap:wrap;gap:8px}
.companero{
  display:flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;
  background:var(--blanco);border:1px solid var(--gris-300);
  border-radius:99px;font-size:.83rem;
}
.companero.yo{border-color:var(--amarillo);background:var(--amarillo-tenue);font-weight:650}

/* sesiones en vivo */
.sesion{
  background:var(--blanco);border:1px solid var(--gris-300);border-radius:var(--radio);
  padding:16px;display:flex;gap:16px;align-items:center;margin-bottom:11px;
}
.sesion.en-vivo{border-color:#F0BDBD;background:#FFFBFB}
.sesion-fecha{
  width:62px;flex-shrink:0;text-align:center;padding:8px 0;
  background:var(--negro);color:#fff;border-radius:var(--radio-s);
}
.sesion-fecha .d{font-family:var(--fuente-titulo);font-size:1.7rem;font-weight:700;
  line-height:.95;font-variant-numeric:tabular-nums}
.sesion-fecha .m{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--amarillo)}

/* pestañas */
.pestanas{display:flex;gap:4px;border-bottom:1px solid var(--gris-300);margin-bottom:20px;overflow-x:auto}
.pestanas button{
  padding:10px 15px;background:none;border:none;border-bottom:2px solid transparent;
  color:var(--gris-700);font-weight:600;font-size:.9rem;cursor:pointer;white-space:nowrap;
}
.pestanas button.activa{color:var(--negro);border-bottom-color:var(--amarillo)}

/* estado vacío */
.vacio{
  text-align:center;padding:48px 22px;color:var(--gris-700);
  border:1.5px dashed var(--gris-300);border-radius:var(--radio);background:var(--blanco);
}
.vacio svg{width:38px;height:38px;margin:0 auto 12px;color:var(--gris-500)}
.vacio h3{margin-bottom:6px;color:var(--negro)}

/* modal */
.modal-fondo{
  position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:60;
  display:flex;align-items:center;justify-content:center;padding:20px;
}
.modal{
  background:#fff;border-radius:var(--radio);width:100%;max-width:600px;
  max-height:90vh;overflow-y:auto;box-shadow:var(--sombra-alta);
}
.modal-cab{
  padding:18px 22px;border-bottom:1px solid var(--gris-300);
  display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:#fff;
}
.modal-cuerpo{padding:22px}
.modal-pie{
  padding:16px 22px;border-top:1px solid var(--gris-300);
  display:flex;justify-content:flex-end;gap:10px;position:sticky;bottom:0;background:#fff;
}

/* cargando */
.girando{
  width:34px;height:34px;margin:36px auto;border-radius:50%;
  border:3px solid var(--gris-300);border-top-color:var(--amarillo-osc);
  animation:giro .7s linear infinite;
}
@keyframes giro{to{transform:rotate(360deg)}}

/* mensaje flotante */
.brindis{
  position:fixed;bottom:22px;left:50%;transform:translateX(-50%);
  background:var(--negro);color:#fff;padding:11px 20px;border-radius:99px;
  font-size:.88rem;font-weight:600;z-index:80;box-shadow:var(--sombra-alta);
  animation:subir .25s ease;
}
.brindis.error{background:var(--rojo)}
@keyframes subir{from{opacity:0;transform:translate(-50%,14px)}to{opacity:1;transform:translate(-50%,0)}}

/* instalación como aplicación */
.pwa-instalar{
  position:fixed;right:18px;bottom:max(18px,env(safe-area-inset-bottom));z-index:55;
  display:flex;align-items:center;justify-content:center;gap:9px;
  padding:11px 16px;border:1px solid rgba(255,255,255,.16);border-radius:99px;
  background:var(--negro);color:#fff;box-shadow:var(--sombra-alta);
  font-weight:700;font-size:.86rem;cursor:pointer;
}
.pwa-instalar:hover{background:var(--negro-3)}
.pwa-instalar svg{width:19px;height:19px;fill:none;stroke:var(--amarillo);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.pwa-guia-fondo{
  position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.62);padding:18px;
  display:flex;align-items:center;justify-content:center;
}
.pwa-guia{position:relative;width:100%;max-width:390px;padding:26px;background:#fff;border-radius:18px;box-shadow:var(--sombra-alta)}
.pwa-guia img{border-radius:16px;margin-bottom:14px}.pwa-guia h2{font-size:1.35rem;margin-bottom:14px}
.pwa-guia ol{padding-left:22px;margin:0 0 16px}.pwa-guia li{margin-bottom:10px}.pwa-guia p{margin:0;color:var(--gris-700);font-size:.9rem}
.pwa-guia-cerrar{position:absolute;right:12px;top:10px;width:38px;height:38px;border:0;background:var(--gris-100);border-radius:50%;font-size:1.5rem;cursor:pointer}
.pwa-compartir{font-weight:800;color:var(--azul)}
@media(max-width:420px){
  .pwa-instalar{left:16px;right:16px;bottom:max(12px,env(safe-area-inset-bottom));border-radius:12px}
  .pwa-guia-fondo{align-items:flex-end;padding:10px;padding-bottom:max(10px,env(safe-area-inset-bottom))}
  .pwa-guia{padding:22px;border-radius:18px 18px 12px 12px}
}
@media(display-mode:standalone){.pwa-instalar{display:none!important}}

/* impresión */
@media print{
  .lateral,.barra-sup,.btn,.pestanas{display:none!important}
  .contenido{margin-left:0}
  body{background:#fff}
}

/* ---------------- foco visible y movimiento reducido ---------------- */
:where(a,button,input,select,textarea,[tabindex]):focus-visible{
  outline:2px solid var(--amarillo-osc);outline-offset:2px;border-radius:6px;
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important}
}
