:root{
  --papel:#F3F5EF; --blanco:#FFFFFF; --tinta:#1B2A21; --tinta-2:#4A5A4F;
  --hass:#2C4A35; --hass-2:#3D6248; --pulpa:#E4ECB9; --pulpa-2:#F2F6DC;
  --lima:#8DAA2C; --hueso:#8B5B37; --linea:#CCD5C6;
  --rojo:#C2412D; --ambar:#D99A1E; --verde:#3E8E4E;
  --f-titulo:"Archivo","Arial Narrow",system-ui,sans-serif;
  --f-texto:"Public Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --r-s:6px; --r-m:12px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--papel);color:var(--tinta);font-family:var(--f-texto);font-size:17px;line-height:1.6}
h1,h2,h3,h4{font-family:var(--f-titulo);line-height:1.15;margin:0 0 .5em;color:var(--hass)}
h1{font-size:clamp(2rem,4.6vw,3.3rem);font-weight:800;font-stretch:112%;letter-spacing:-.01em}
h2{font-size:1.75rem;font-weight:750}
h3{font-size:1.3rem;font-weight:700}
h4{font-size:1.05rem;font-weight:700;margin-top:1.2em}
p{margin:0 0 1em}
a{color:var(--hass-2)}
button,input,textarea,select{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--lima);outline-offset:2px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- barra superior ---------- */
.top{position:sticky;top:0;z-index:20;background:var(--hass);color:#fff}
.top-in{max-width:1180px;margin:0 auto;padding:.6rem 1.25rem;display:flex;align-items:center;gap:1rem}
.marca{display:flex;align-items:center;gap:.6rem;font-family:var(--f-titulo);font-weight:800;font-size:1.05rem;text-decoration:none;color:#fff;background:none;border:0;cursor:pointer;padding:0}
.sello{width:34px;height:34px;border-radius:50%;background:var(--pulpa);color:var(--hass);display:grid;place-items:center;font-family:var(--f-titulo);font-weight:900;font-size:.95rem;letter-spacing:-.04em;box-shadow:inset 0 0 0 3px var(--hueso)}
.top .curso{opacity:.8;font-size:.92rem}
.top .esp{flex:1}
.top .quien{font-size:.9rem;opacity:.9;text-align:right;line-height:1.3}
.top .pct{font-family:var(--f-titulo);font-weight:800;font-size:1.1rem;background:var(--hass-2);padding:.15rem .6rem;border-radius:var(--r-s)}
@media (max-width:640px){.top .curso,.top .quien{display:none}}

main{max-width:1180px;margin:0 auto;padding:2rem 1.25rem 4rem}
.lect{max-width:72ch}

/* ---------- botones ---------- */
.btn{display:inline-flex;align-items:center;gap:.4rem;border:0;border-radius:var(--r-s);padding:.7rem 1.2rem;font-weight:700;cursor:pointer;background:var(--hass);color:#fff;text-decoration:none}
.btn:hover{background:var(--hass-2)}
.btn.sec{background:transparent;color:var(--hass);box-shadow:inset 0 0 0 2px var(--hass)}
.btn.sec:hover{background:var(--pulpa-2)}
.btn.lima{background:var(--lima);color:var(--tinta)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn.chico{padding:.4rem .8rem;font-size:.9rem}
.fila{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}

/* ---------- registro ---------- */
.registro{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:start;padding-top:2rem}
.registro .lead{font-size:1.15rem;color:var(--tinta-2);max-width:52ch}
.datos-curso{display:flex;gap:2rem;margin:1.5rem 0;flex-wrap:wrap}
.datos-curso div{border-left:3px solid var(--lima);padding-left:.8rem}
.datos-curso b{display:block;font-family:var(--f-titulo);font-size:1.6rem;color:var(--hass);line-height:1.1}
.datos-curso span{font-size:.88rem;color:var(--tinta-2)}
.form{background:var(--blanco);border:1px solid var(--linea);border-radius:var(--r-m);padding:1.6rem}
.campo{margin-bottom:1rem}
.campo label{display:block;font-weight:600;font-size:.95rem;margin-bottom:.3rem}
.campo input,.campo textarea{width:100%;padding:.65rem .75rem;border:1.5px solid var(--linea);border-radius:var(--r-s);background:#fff}
.campo textarea{min-height:92px;resize:vertical}
.campo input:focus,.campo textarea:focus{border-color:var(--hass-2);outline:none;box-shadow:0 0 0 3px var(--pulpa)}
.campo .ayuda{font-size:.82rem;color:var(--tinta-2);margin-top:.2rem}
.campo .falta{color:var(--rojo)}
.aviso{font-size:.85rem;color:var(--tinta-2)}
@media (max-width:860px){.registro{grid-template-columns:1fr;gap:1.5rem}}

/* ---------- línea de flujo (elemento firma) ---------- */
.flujo{position:relative;margin:2rem 0 2.5rem;padding:1.5rem 0 0}
.flujo .banda{position:absolute;left:3%;right:3%;top:calc(1.5rem + 33px);height:14px;border-radius:7px;
  background:repeating-linear-gradient(90deg,#B8C2B0 0 10px,#A9B4A1 10px 20px);box-shadow:inset 0 2px 0 rgba(0,0,0,.08)}
.flujo .avance{position:absolute;left:3%;top:calc(1.5rem + 33px);height:14px;border-radius:7px;background:var(--lima);transition:width .8s ease}
.flujo ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(7,1fr);position:relative}
.est{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.5rem}
.est button{width:80px;height:80px;border-radius:50%;border:4px solid var(--linea);background:var(--blanco);cursor:pointer;
  font-family:var(--f-titulo);font-weight:800;font-size:1.5rem;color:var(--hass);display:grid;place-items:center;position:relative}
.est.hecha button{background:var(--hass);border-color:var(--hass);color:var(--pulpa)}
.est.actual button{border-color:var(--lima);box-shadow:0 0 0 6px var(--pulpa)}
.est.bloq button{color:#9AA597;cursor:not-allowed;background:var(--papel)}
.est .nom{font-weight:700;font-size:.92rem;line-height:1.25;max-width:14ch}
.est .sub{font-size:.8rem;color:var(--tinta-2)}
.est .fruto{position:absolute;top:-30px;left:50%;transform:translateX(-50%)}
.fruto svg{display:block}
@media (prefers-reduced-motion:no-preference){.est.actual .fruto{animation:bote 2.4s ease-in-out infinite}}
@keyframes bote{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,-5px)}}
@media (max-width:860px){
  .flujo .banda,.flujo .avance{display:none}
  .flujo ol{grid-template-columns:1fr;gap:.6rem}
  .est{flex-direction:row;text-align:left;gap:1rem}
  .est button{width:56px;height:56px;font-size:1.15rem;flex:none}
  .est .fruto{display:none}
  .est .nom{max-width:none}
}

.hero-inicio{display:flex;justify-content:space-between;align-items:end;gap:2rem;flex-wrap:wrap}
.hero-inicio p{max-width:60ch;color:var(--tinta-2);font-size:1.08rem}
.siguiente{background:var(--blanco);border:1px solid var(--linea);border-left:6px solid var(--lima);border-radius:var(--r-m);padding:1.4rem 1.6rem;display:flex;gap:1.5rem;align-items:center;justify-content:space-between;flex-wrap:wrap}
.siguiente h3{margin:0}
.siguiente p{margin:.2rem 0 0;color:var(--tinta-2)}
.reglas{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin-top:2.5rem;border-top:1px solid var(--linea);padding-top:1.5rem}
.reglas h4{margin-top:0}
.reglas p{font-size:.95rem;color:var(--tinta-2)}
@media (max-width:760px){.reglas{grid-template-columns:1fr;gap:.5rem}}

/* ---------- lección ---------- */
.lec-cab{display:flex;justify-content:space-between;align-items:start;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem}
.migas{font-size:.9rem;color:var(--tinta-2);margin-bottom:.4rem}
.migas button{background:none;border:0;padding:0;color:var(--hass-2);text-decoration:underline;cursor:pointer;font-size:inherit}
.tabs{display:flex;gap:.25rem;border-bottom:2px solid var(--linea);margin-bottom:2rem;overflow-x:auto}
.tabs button{background:none;border:0;padding:.75rem 1.1rem;font-weight:700;color:var(--tinta-2);cursor:pointer;border-bottom:4px solid transparent;margin-bottom:-2px;white-space:nowrap;display:flex;gap:.5rem;align-items:center}
.tabs button[aria-selected="true"]{color:var(--hass);border-bottom-color:var(--lima)}
.tabs .ok{width:20px;height:20px;border-radius:50%;background:var(--verde);color:#fff;font-size:.75rem;display:grid;place-items:center}
.tabs .pend{width:20px;height:20px;border-radius:50%;border:2px solid var(--linea)}

.lec-grid{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:3rem}
.indice{position:sticky;top:80px;align-self:start;font-size:.92rem}
.indice h4{margin-top:0}
.indice ol{padding-left:1.2rem;margin:0}
.indice li{margin-bottom:.35rem}
.indice a{color:var(--tinta-2);text-decoration:none}
.indice a:hover{color:var(--hass);text-decoration:underline}
@media (max-width:960px){.lec-grid{grid-template-columns:1fr}.indice{display:none}}

.objetivos{background:var(--pulpa-2);border-radius:var(--r-m);padding:1.2rem 1.5rem;margin-bottom:2rem}
.objetivos h3{font-size:1.05rem;margin-bottom:.4rem}
.objetivos ul{margin:0;padding-left:1.2rem}
.seccion{margin-bottom:2.75rem;scroll-margin-top:90px}
.seccion > h3 .n{color:var(--lima);margin-right:.4rem}
.formula{font-family:var(--f-titulo);font-weight:700;font-size:1.25rem;color:var(--hass);background:var(--blanco);border-left:4px solid var(--hueso);padding:.6rem 1rem;border-radius:0 var(--r-s) var(--r-s) 0}
.callout{border:1.5px solid var(--hass-2);border-radius:var(--r-m);padding:1rem 1.2rem;background:var(--blanco);margin:1.2rem 0}
.dos{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin:1rem 0}
.dos > div{background:var(--blanco);border:1px solid var(--linea);border-radius:var(--r-m);padding:1rem 1.2rem}
.dos h4{margin-top:0}
.dos ul{margin:0;padding-left:1.1rem}
@media (max-width:640px){.dos{grid-template-columns:1fr}}
.tabla{width:100%;border-collapse:collapse;margin:1rem 0 1.4rem;font-size:.95rem;background:var(--blanco)}
.tabla th,.tabla td{border:1px solid var(--linea);padding:.55rem .7rem;text-align:left;vertical-align:top}
.tabla thead th{background:var(--hass);color:#fff;font-weight:700}
.tabla.foda th{width:22%}
.fases li{margin-bottom:.6rem}
.cascada{display:grid;gap:.4rem;margin:1rem 0 1.4rem}
.cascada div{display:grid;grid-template-columns:150px 110px 1fr;align-items:center;gap:1rem;background:var(--blanco);border:1px solid var(--linea);border-radius:var(--r-s);padding:.6rem 1rem}
.cascada div:nth-child(2){margin-left:1.5rem}.cascada div:nth-child(3){margin-left:3rem}.cascada div:nth-child(4){margin-left:4.5rem}
.cascada span{font-size:.82rem;color:var(--tinta-2)}
.cascada strong{color:var(--hass);font-family:var(--f-titulo)}
@media (max-width:640px){.cascada div{grid-template-columns:1fr;gap:.1rem;margin-left:0!important}}
.semaforo-leyenda{list-style:none;padding:0}
.dot{display:inline-block;width:14px;height:14px;border-radius:50%;margin-right:.5rem;vertical-align:-2px}
.dot.verde{background:var(--verde)}.dot.ambar{background:var(--ambar)}.dot.rojo{background:var(--rojo)}
.fin-lectura{border-top:1px solid var(--linea);padding-top:1.5rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}

/* ---------- widgets ---------- */
.widget{background:var(--blanco);border:1px solid var(--linea);border-radius:var(--r-m);padding:1.25rem 1.4rem;margin:1.5rem 0}
.widget > h4{margin-top:0;display:flex;gap:.5rem;align-items:center}
.widget > h4::before{content:"";width:10px;height:10px;border-radius:2px;background:var(--lima);transform:rotate(45deg)}
.widget .desc{font-size:.93rem;color:var(--tinta-2)}
.grid-in{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.8rem;margin:.8rem 0}
.grid-in > div{display:flex;flex-direction:column;justify-content:flex-end}
.grid-in label{font-size:.85rem;font-weight:600;display:block;margin-bottom:.2rem}
.grid-in input{width:100%;padding:.5rem .6rem;border:1.5px solid var(--linea);border-radius:var(--r-s)}
.resultado{background:var(--pulpa-2);border-radius:var(--r-s);padding:.8rem 1rem;margin-top:.6rem}
.resultado b{font-family:var(--f-titulo);font-size:1.25rem;color:var(--hass)}
.toggles{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:.8rem 0}
.toggles button{border:2px solid var(--hass);background:var(--hass);color:#fff;border-radius:999px;padding:.4rem .9rem;font-weight:700;cursor:pointer}
.toggles button[aria-pressed="false"]{background:#fff;color:var(--rojo);border-color:var(--rojo);text-decoration:line-through}
.toggles .mas{font-weight:800;color:var(--tinta-2)}
.efecto{font-family:var(--f-titulo);font-weight:800;font-size:1.6rem}
.mini-item{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.6rem 0;border-bottom:1px dashed var(--linea);flex-wrap:wrap}
.mini-item:last-child{border-bottom:0}
.mini-item .ops{display:flex;gap:.35rem}
.mini-item .ops button{border:1.5px solid var(--linea);background:#fff;border-radius:var(--r-s);padding:.3rem .7rem;cursor:pointer;font-weight:600;font-size:.9rem}
.mini-item .ops button.bien{background:var(--verde);border-color:var(--verde);color:#fff}
.mini-item .ops button.mal{background:var(--rojo);border-color:var(--rojo);color:#fff}
.retro{font-size:.88rem;width:100%}
.tablero{width:100%;border-collapse:collapse;font-size:.92rem}
.tablero th,.tablero td{border:1px solid var(--linea);padding:.35rem .5rem;text-align:center}
.tablero th{background:var(--hass);color:#fff}
.tablero input{width:70px;padding:.25rem;border:1.5px solid var(--linea);border-radius:4px;text-align:center}
.tablero select{padding:.25rem;border:1.5px solid var(--linea);border-radius:4px;max-width:130px}
.tablero td.v{background:#E3F1E4}.tablero td.a{background:#FBEFD5}.tablero td.r{background:#F6DCD7}
.wrap-x{overflow-x:auto}
.matriz td button{width:38px;height:38px;border-radius:50%;border:1.5px solid var(--linea);background:#fff;cursor:pointer;font-weight:800}
.matriz td button[data-n="3"],.matriz td button[data-n="4"]{background:var(--hass);color:#fff;border-color:var(--hass)}
.matriz td button[data-n="2"]{background:var(--pulpa)}
.matriz td button[data-n="1"]{background:var(--pulpa-2)}
.matriz tfoot td.riesgo{background:#F6DCD7;color:var(--rojo);font-weight:700}
.matriz tfoot td.okc{background:#E3F1E4;color:var(--verde);font-weight:700}
.capas{display:flex;gap:.4rem;flex-wrap:wrap;margin:.6rem 0}
.capas button{border:1.5px solid var(--hass);background:#fff;color:var(--hass);border-radius:var(--r-s);padding:.35rem .8rem;cursor:pointer;font-weight:700}
.capas button[aria-pressed="true"]{background:var(--hass);color:#fff}
.guion{background:var(--papel);border-radius:var(--r-s);padding:.9rem 1rem;min-height:120px}
.guion p{margin:.2rem 0}
.guion .k{color:var(--hueso);font-weight:600}
.guion .r{color:var(--hass-2);font-style:italic}
.foda-g{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}
.foda-g button{text-align:left;background:var(--papel);border:1.5px solid var(--linea);border-radius:var(--r-s);padding:.8rem;cursor:pointer}
.foda-g button[aria-expanded="true"]{background:var(--pulpa-2);border-color:var(--hass-2)}
.foda-g b{font-family:var(--f-titulo);color:var(--hass)}

/* ---------- práctica / quiz ---------- */
.actividad{margin-bottom:2.5rem}
.actividad .nota{background:var(--pulpa-2);padding:.8rem 1rem;border-radius:var(--r-s);font-size:.93rem}
.item-c{background:var(--blanco);border:1px solid var(--linea);border-radius:var(--r-s);padding:.9rem 1rem;margin-bottom:.6rem}
.item-c p{margin:0 0 .5rem;font-weight:600}
.item-c select{width:100%;max-width:320px;padding:.5rem;border:1.5px solid var(--linea);border-radius:var(--r-s);background:#fff}
.item-c.bien{border-left:5px solid var(--verde)}
.item-c.mal{border-left:5px solid var(--rojo)}
.item-c .corr{font-size:.88rem;color:var(--rojo);margin-top:.35rem}
.orden-l{list-style:none;padding:0;margin:0;max-width:520px}
.orden-l li{display:flex;align-items:center;gap:.6rem;background:var(--blanco);border:1px solid var(--linea);border-radius:var(--r-s);padding:.6rem .8rem;margin-bottom:.4rem}
.orden-l li span{flex:1;font-weight:600}
.orden-l button{border:1.5px solid var(--linea);background:#fff;border-radius:4px;width:34px;height:30px;cursor:pointer}
.marcador{display:inline-flex;align-items:baseline;gap:.4rem;font-family:var(--f-titulo);font-weight:800;font-size:1.4rem;padding:.3rem .9rem;border-radius:var(--r-s)}
.marcador.ok{background:#E3F1E4;color:var(--verde)}
.marcador.no{background:#F6DCD7;color:var(--rojo)}
.marcador small{font-size:.85rem;font-weight:600;font-family:var(--f-texto)}
.preg{background:var(--blanco);border:1px solid var(--linea);border-radius:var(--r-m);padding:1.1rem 1.3rem;margin-bottom:1rem}
.preg legend{font-weight:700;padding:0;margin-bottom:.6rem;float:left;width:100%}
.preg fieldset{border:0;margin:0;padding:0}
.preg .opc{display:flex;gap:.6rem;align-items:flex-start;padding:.45rem .6rem;border-radius:var(--r-s);cursor:pointer;clear:both}
.preg .opc:hover{background:var(--papel)}
.preg .opc input{margin-top:.35rem;accent-color:var(--hass)}
.preg .opc.correcta{background:#E3F1E4}
.preg .opc.incorrecta{background:#F6DCD7}
.preg .exp{font-size:.9rem;color:var(--tinta-2);margin:.5rem 0 0;padding-left:.6rem;border-left:3px solid var(--lima)}
.estado-req{display:grid;gap:.5rem;margin:1rem 0 1.5rem;padding:0;list-style:none}
.estado-req li{display:flex;gap:.6rem;align-items:center}
.chk{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:.8rem;flex:none;border:2px solid var(--linea)}
.chk.si{background:var(--verde);border-color:var(--verde);color:#fff}

/* ---------- examen / constancia ---------- */
.intentos{display:flex;gap:.5rem;margin:.5rem 0 1.5rem}
.intentos span{width:30px;height:8px;border-radius:4px;background:var(--linea)}
.intentos span.usado{background:var(--hueso)}
.progreso-ex{position:sticky;top:58px;background:var(--papel);padding:.6rem 0;z-index:5;font-weight:700;color:var(--tinta-2)}
.const-wrap{display:flex;flex-direction:column;align-items:center;gap:1.25rem}
.constancia{width:100%;max-width:1000px;aspect-ratio:1.414/1;background:#fff;position:relative;border:1px solid var(--linea);
  padding:4.5% 6%;display:grid;grid-template-rows:auto 1fr auto;color:var(--tinta);overflow:hidden}
.constancia::before{content:"";position:absolute;inset:14px;border:2px solid var(--hass);pointer-events:none}
.constancia::after{content:"";position:absolute;inset:20px;border:1px solid var(--lima);pointer-events:none}
.c-top{display:flex;justify-content:space-between;align-items:center}
.c-marca{display:flex;align-items:center;gap:.8rem}
.c-marca .sello{width:56px;height:56px;font-size:1.4rem}
.c-marca b{font-family:var(--f-titulo);font-size:1.25rem;color:var(--hass);display:block;line-height:1.1}
.c-marca span{font-size:.8rem;color:var(--tinta-2)}
.c-folio{text-align:right;font-size:.8rem;color:var(--tinta-2);line-height:1.4}
.c-folio b{color:var(--tinta);font-size:.95rem}
.c-cuerpo{align-self:center;text-align:center}
.c-cuerpo .tipo{font-family:var(--f-titulo);font-weight:800;font-stretch:115%;font-size:clamp(1.3rem,3.2vw,2.3rem);color:var(--hass);margin:0}
.c-cuerpo .otorga{margin:.4rem 0 .2rem;color:var(--tinta-2);font-size:clamp(.75rem,1.4vw,.95rem)}
.c-cuerpo .nombre{font-family:var(--f-titulo);font-weight:700;font-size:clamp(1.5rem,4vw,2.9rem);margin:.1rem 0;border-bottom:2px solid var(--hueso);display:inline-block;padding:0 1.5rem .1rem}
.c-cuerpo .emp{font-size:clamp(.75rem,1.4vw,.95rem);color:var(--tinta-2);margin-bottom:.8rem}
.c-cuerpo .por{font-size:clamp(.78rem,1.5vw,1rem);max-width:60ch;margin:0 auto}
.c-pie{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:1rem;font-size:clamp(.65rem,1.2vw,.82rem)}
.firma{text-align:center;border-top:1.5px solid var(--tinta);padding-top:.3rem;line-height:1.35}
.firma b{font-size:clamp(.72rem,1.3vw,.92rem)}
.c-sello{width:clamp(70px,11vw,110px);aspect-ratio:1;border-radius:50%;border:3px solid var(--hueso);display:grid;place-items:center;text-align:center;
  color:var(--hueso);font-family:var(--f-titulo);font-weight:800;font-size:clamp(.55rem,1vw,.72rem);line-height:1.15;padding:8px;transform:rotate(-8deg)}
.c-sello b{display:block;font-size:clamp(1rem,2vw,1.5rem)}
.c-verif{text-align:right;line-height:1.4;color:var(--tinta-2)}
.c-verif code{font-size:1.05em;color:var(--tinta);font-weight:700;letter-spacing:.04em}

.verificar{max-width:560px}
.ok-big{color:var(--verde)}.no-big{color:var(--rojo)}
.pie{border-top:1px solid var(--linea);margin-top:3rem;padding-top:1rem;font-size:.82rem;color:var(--tinta-2);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.pie button{background:none;border:0;color:var(--hass-2);text-decoration:underline;cursor:pointer;font-size:inherit;padding:0}
.toast{position:fixed;bottom:1.2rem;left:50%;transform:translateX(-50%);background:var(--tinta);color:#fff;padding:.7rem 1.2rem;border-radius:var(--r-s);z-index:50;font-weight:600}

/* ---------- impresión ---------- */
.imprimible{display:none}
@media print{
  @page{size:landscape;margin:0}
  body{background:#fff}
  body.print-const .top, body.print-const .pie, body.print-const .no-print, body.print-const main > *:not(.const-wrap){display:none!important}
  body.print-const main{padding:0;max-width:none}
  body.print-const .const-wrap > *:not(.constancia){display:none!important}
  body.print-const .constancia{border:0;max-width:none;width:100vw;height:100vh;aspect-ratio:auto}
  body.print-hoja > *:not(.imprimible){display:none!important}
  body.print-hoja .imprimible{display:block;padding:12mm}
  .imprimible h2{margin-bottom:.2rem}
  .imp-grid{display:grid;gap:4px;font-size:10pt}
  .imp-grid div{border:1px solid #777;padding:6px;white-space:pre-wrap}
  .imp-grid b{display:block;font-size:9pt;color:var(--hass);margin-bottom:3px}
  .canvas-g{grid-template-columns:repeat(10,1fr);grid-template-rows:repeat(2,minmax(55mm,auto)) minmax(35mm,auto)}
  * {-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* ============================================================
   v2 · figuras, juegos, acceso y panel
   ============================================================ */
.top .nav-top{display:flex;align-items:center;gap:.8rem;position:relative}
.top .nav-top > button{background:none;border:0;color:#fff;cursor:pointer;font-weight:600;padding:.3rem .5rem;border-radius:6px}
.top .nav-top > button:hover{background:var(--hass-2)}
.top .quien{text-align:right;line-height:1.25;font-size:.9rem}
.menu-u{position:absolute;right:0;top:calc(100% + 8px);background:#fff;border:1px solid var(--linea);border-radius:10px;box-shadow:0 10px 30px rgba(27,42,33,.18);display:flex;flex-direction:column;min-width:200px;overflow:hidden;z-index:30}
.menu-u button{background:none;border:0;text-align:left;padding:.75rem 1rem;cursor:pointer;color:var(--tinta)}
.menu-u button:hover{background:var(--pulpa-2)}
.btn.claro{color:#fff;box-shadow:inset 0 0 0 2px rgba(255,255,255,.6)}
.btn.claro:hover{background:var(--hass-2)}
.error{color:var(--rojo);font-weight:600;min-height:1.2em}
.login-arte .banner{border-radius:var(--r-m);margin-top:1rem;display:block;width:100%;height:auto}

/* figuras */
.fig{margin:1.2rem 0 1.4rem;background:var(--blanco);border:1px solid var(--linea);border-radius:var(--r-m);padding:1rem 1rem .6rem;position:relative;overflow:hidden}
.fig::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--lima)}
.fig svg{display:block;width:100%;height:auto;font-family:var(--f-texto)}
.fig figcaption{font-size:.85rem;color:var(--tinta-2);margin-top:.5rem;padding-left:.2rem}
.lec-banner{position:relative;border-radius:var(--r-m);overflow:hidden;margin-bottom:1.5rem;background:var(--hass)}
.lec-banner .banner{display:block;width:100%;height:auto;max-height:150px}
.lec-banner-txt{padding:.2rem 1.4rem 1.1rem;background:var(--hass)}
.lec-banner-txt h2{color:#fff;margin:0;font-size:clamp(1.3rem,3vw,2rem)}
.lec-banner-txt .migas{color:var(--pulpa)}
.lec-banner-txt .migas button{color:#fff}
.seccion > h3{display:flex;align-items:center;gap:.6rem}
.seccion > h3 .n{display:inline-grid;place-items:center;width:34px;height:34px;flex:none;border-radius:50% 50% 50% 8px;background:var(--hass);color:var(--pulpa);font-size:1rem;margin:0}
.indice .mini-ok{color:var(--verde);font-weight:800}
.tabs button small{font-weight:600;color:var(--tinta-2)}

/* tarjetas de lección en inicio */
.marcadores{display:flex;gap:1rem}
.marcadores div{background:var(--blanco);border:1px solid var(--linea);border-radius:var(--r-m);padding:.6rem 1rem;text-align:center;min-width:96px}
.marcadores b{display:block;font-family:var(--f-titulo);font-size:1.5rem;color:var(--hass)}
.marcadores span{font-size:.8rem;color:var(--tinta-2)}
.tarjetas-lec{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1rem;margin-top:2rem}
.tarjeta-lec{border:1px solid var(--linea);background:var(--blanco);border-radius:var(--r-m);overflow:hidden;text-align:left;cursor:pointer;padding:0;display:flex;flex-direction:column}
.tarjeta-lec:hover:not(:disabled){border-color:var(--hass-2);transform:translateY(-2px)}
.tarjeta-lec.bloq{opacity:.55;cursor:not-allowed}
.tl-arte svg{display:block;width:100%;height:auto}
.tl-txt{padding:.8rem 1rem 1rem;display:flex;flex-direction:column;gap:.3rem}
.tl-txt b{font-family:var(--f-titulo);color:var(--hass);line-height:1.2}
.tl-txt small{color:var(--tinta-2)}
.barra{display:block;height:8px;border-radius:4px;background:var(--pulpa-2);overflow:hidden;min-width:60px}
.barra > span{display:block;height:100%;background:var(--lima);border-radius:4px}
.barra.mini{width:90px;display:inline-block}
@media (prefers-reduced-motion:no-preference){.tarjeta-lec{transition:transform .15s}}

/* carta de juego */
.carta-juego{display:flex;align-items:center;gap:1rem;background:linear-gradient(100deg,var(--pulpa-2),#fff 70%);border:1.5px dashed var(--lima);border-radius:var(--r-m);padding:.9rem 1.1rem;margin:1.4rem 0 .4rem}
.carta-juego.jugado{border-style:solid;border-color:var(--linea);background:#fff}
.carta-juego.compacta{margin:.4rem 0 1rem}
.cj-ico{width:48px;height:48px;flex:none;border-radius:12px;background:var(--hass);color:var(--pulpa);display:grid;place-items:center;font-size:1.5rem;font-weight:800}
.cj-txt{flex:1;display:flex;flex-direction:column;line-height:1.3}
.cj-txt small{color:var(--tinta-2);font-size:.8rem}
.cj-txt b{font-family:var(--f-titulo);color:var(--hass)}
.cj-best{font-size:.82rem;color:var(--verde);font-weight:700}
.cj-best.pend{color:var(--hueso)}
@media (max-width:560px){.carta-juego{flex-wrap:wrap}.carta-juego .btn{width:100%;justify-content:center}}

/* modal de juego */
.jg-modal{position:fixed;inset:0;background:rgba(27,42,33,.6);z-index:60;display:grid;place-items:center;padding:1rem}
.jg-caja{background:var(--papel);width:min(760px,100%);max-height:94vh;overflow:auto;border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.jg-caja.chica{width:min(460px,100%);padding:1.5rem;background:#fff}
.jg-cab{display:flex;justify-content:space-between;align-items:center;background:var(--hass);color:#fff;padding:.9rem 1.3rem}
.jg-cab h3{color:#fff;margin:0}
.jg-tipo{font-size:.8rem;color:var(--pulpa)}
.jg-x{background:none;border:0;color:#fff;font-size:1.3rem;cursor:pointer;width:40px;height:40px;border-radius:50%}
.jg-x:hover{background:var(--hass-2)}
.jg-body{padding:1.3rem 1.4rem 1.6rem}
.jg-portada,.jg-fin{text-align:center}
.jg-ico{width:160px;height:auto;margin:.5rem auto 1rem;display:block}
.jg-mejor{color:var(--tinta-2)}
.jg-hud{display:flex;justify-content:space-between;gap:1rem;font-weight:700;color:var(--tinta-2);margin-bottom:1rem;font-size:.95rem;flex-wrap:wrap}
.jg-hud b{color:var(--hass);font-family:var(--f-titulo);font-size:1.1rem}
.jg-reloj.urge{color:var(--rojo)}
.jg-banda{position:relative;height:150px;background:#E6EBE2;border-radius:12px;overflow:hidden;margin-bottom:1rem}
.jg-rodillos{position:absolute;left:0;right:0;bottom:22px;height:26px;background:repeating-linear-gradient(90deg,#A9B4A1 0 22px,#97A38F 22px 26px);border-top:3px solid #7D8A76;border-bottom:3px solid #7D8A76}
.jg-pieza{position:absolute;left:4%;bottom:52px;max-width:42%;background:#C9A274;border:2px solid var(--hueso);border-radius:6px;padding:.55rem .8rem;font-weight:700;font-size:.92rem;line-height:1.25;color:var(--tinta);box-shadow:0 4px 0 rgba(0,0,0,.12)}
.jg-pieza.bien{background:#BFE3C4;border-color:var(--verde)}
.jg-pieza.mal{background:#F2C8C0;border-color:var(--rojo)}
.jg-tiempo{position:absolute;left:0;right:0;top:0;height:6px;background:rgba(0,0,0,.06)}
.jg-tiempo span{display:block;height:100%;width:100%;background:var(--lima)}
.jg-bins{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.6rem}
.jg-bin{border:0;border-radius:0 0 14px 14px;background:var(--hass);color:#fff;font-weight:800;padding:1rem .6rem;cursor:pointer;font-size:.95rem;display:flex;flex-direction:column;align-items:center;gap:.3rem;border-top:6px solid var(--lima)}
.jg-bin:hover{background:var(--hass-2)}
kbd{font-family:inherit;font-size:.75rem;background:rgba(255,255,255,.2);border-radius:4px;padding:0 .4rem}
.jg-retro{min-height:1.4em;text-align:center;font-weight:700;color:var(--hass);margin:.8rem 0 0}
.jg-memo{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem}
.jg-carta{position:relative;height:96px;border:0;padding:0;background:none;cursor:pointer;perspective:600px}
.jg-carta > span{position:absolute;inset:0;border-radius:10px;display:grid;place-items:center;padding:.5rem;backface-visibility:hidden;font-weight:700;font-size:.88rem;line-height:1.2}
.jg-reverso{background:var(--hass);color:var(--pulpa);font-family:var(--f-titulo);font-size:1.4rem!important;background-image:radial-gradient(circle at 30% 30%,var(--hass-2) 0 18px,transparent 19px)}
.jg-frente{background:#fff;border:2px solid var(--hass-2);color:var(--tinta);transform:rotateY(180deg)}
.jg-frente.b{background:var(--pulpa-2)}
.jg-carta .jg-reverso,.jg-carta .jg-frente{transition:transform .35s}
.jg-carta.abierta .jg-reverso{transform:rotateY(180deg)}
.jg-carta.abierta .jg-frente{transform:rotateY(0)}
.jg-carta.hecha .jg-frente{border-color:var(--verde);background:#DDF0DF}
@media (prefers-reduced-motion:reduce){.jg-carta .jg-reverso,.jg-carta .jg-frente{transition:none}}
.jg-frase{font-size:1.15rem;font-weight:600;text-align:center;min-height:3.2em;display:grid;place-items:center;margin:1rem 0 1.2rem}
.jg-v,.jg-f{border:0;border-radius:12px;padding:1rem 2rem;font-weight:800;font-size:1.05rem;cursor:pointer;color:#fff;display:flex;gap:.6rem;align-items:center}
.jg-v{background:var(--verde)}.jg-f{background:var(--rojo)}
.jg-hueco{border-bottom:3px solid var(--lima);color:var(--hass);padding:0 .3rem}
.jg-ops{display:grid;gap:.5rem;max-width:420px;margin:0 auto}
.jg-ops button{border:2px solid var(--linea);background:#fff;border-radius:10px;padding:.75rem;font-weight:700;cursor:pointer}
.jg-ops button:hover{border-color:var(--hass-2)}
.jg-ops button.bien{background:#DDF0DF;border-color:var(--verde)}.jg-ops button.mal{background:#F6DCD7;border-color:var(--rojo)}
.jg-orden{list-style:none;padding:0;margin:0 0 1rem}
.jg-orden li{display:flex;align-items:center;gap:.6rem;background:#fff;border:1.5px solid var(--linea);border-radius:10px;padding:.6rem .8rem;margin-bottom:.4rem}
.jg-orden li b{width:28px;height:28px;border-radius:50%;background:var(--pulpa);display:grid;place-items:center;flex:none}
.jg-orden li span{flex:1;font-weight:600}
.jg-orden li.bien{border-color:var(--verde);background:#EEF8EF}.jg-orden li.mal{border-color:var(--rojo);background:#FCEFEC}
.jg-orden button{border:1.5px solid var(--linea);background:#fff;border-radius:6px;width:36px;height:32px;cursor:pointer}
.jg-calc{justify-content:center;font-size:1.2rem;font-weight:700}
.jg-calc input{width:160px;padding:.6rem;border:2px solid var(--linea);border-radius:8px;font-size:1.2rem;text-align:center}
.jg-estrellas{display:flex;gap:.5rem;justify-content:center;margin:.5rem 0}
.jg-estrellas svg{width:54px;height:54px;fill:var(--linea)}
.jg-estrellas svg.on{fill:var(--ambar)}
.jg-pts{font-size:1.2rem}.jg-pts b{font-family:var(--f-titulo);font-size:2.6rem;color:var(--hass)}

/* ranking */
.podio{display:flex;justify-content:center;align-items:flex-end;gap:.6rem;margin:1.5rem 0}
.pod{display:flex;flex-direction:column;align-items:center;width:150px}
.pod-n{font-weight:700;text-align:center;font-size:.9rem}
.pod-p{color:var(--tinta-2);font-size:.85rem;margin-bottom:.3rem}
.pod-b{width:100%;display:grid;place-items:center;font-family:var(--f-titulo);font-size:2rem;font-weight:900;color:#fff;border-radius:10px 10px 0 0}
.p1 .pod-b{height:120px;background:var(--hass)}.p2 .pod-b{height:85px;background:var(--hass-2)}.p3 .pod-b{height:60px;background:var(--hueso)}
.pod.yo .pod-n{color:var(--lima)}
tr.yo td{background:var(--pulpa-2);font-weight:700}
.verif-ok{margin-top:1rem;border:2px solid var(--verde);background:#EEF8EF;border-radius:var(--r-m);padding:1rem 1.2rem}
.verif-ok h3{color:var(--verde);margin:0 0 .3rem}

/* constancia v2 */
.c-deco{position:absolute;left:0;bottom:0;width:20%;height:auto;pointer-events:none;transform:rotate(180deg)}
.c-verif small{font-size:.75em;word-break:break-all}

/* ---------- panel ---------- */
.adm{display:grid;grid-template-columns:220px 1fr;min-height:calc(100vh - 56px);background:linear-gradient(90deg,#fff 219px,var(--linea) 219px,var(--linea) 220px,transparent 220px)}
.adm-nav{background:transparent;padding:1.2rem .8rem;display:flex;flex-direction:column;gap:.2rem;position:sticky;top:56px;align-self:start;height:calc(100vh - 56px)}
.adm-nav button{background:none;border:0;text-align:left;padding:.7rem .9rem;border-radius:8px;font-weight:600;cursor:pointer;color:var(--tinta-2)}
.adm-nav button:hover{background:var(--pulpa-2)}
.adm-nav button[aria-current="page"]{background:var(--hass);color:#fff}
.adm-main{padding:1.8rem 2rem 4rem;max-width:1200px;width:100%}
@media (max-width:820px){.adm{grid-template-columns:1fr}.adm-nav{position:static;height:auto;flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--linea)}.adm-main{padding:1.2rem}}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1rem;margin:1rem 0 1.5rem}
.kpi{background:#fff;border:1px solid var(--linea);border-radius:var(--r-m);padding:1rem 1.2rem;display:flex;flex-direction:column;gap:.2rem;border-top:5px solid var(--lima)}
.kpi b{font-family:var(--f-titulo);font-size:2rem;color:var(--hass);line-height:1}
.kpi span{font-weight:600}.kpi small{color:var(--tinta-2)}
.kpi.alerta{border-top-color:var(--ambar)}
.dos-col{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:1.5rem}
@media (max-width:980px){.dos-col{grid-template-columns:1fr}}
.panel{background:#fff;border:1px solid var(--linea);border-radius:var(--r-m);padding:1.2rem 1.4rem;margin-bottom:1.5rem}
.panel h3{font-size:1.1rem}
.graf{width:100%;height:auto;font-family:var(--f-texto)}
.recientes{list-style:none;padding:0;margin:0}
.recientes li{display:grid;grid-template-columns:1.4fr 1.4fr 100px 50px 110px;gap:.8rem;align-items:center;padding:.55rem 0;border-bottom:1px dashed var(--linea);font-size:.93rem}
.recientes li small{color:var(--tinta-2)}
@media (max-width:700px){.recientes li{grid-template-columns:1fr 1fr}}
.link{background:none;border:0;padding:0;color:var(--hass-2);font-weight:700;cursor:pointer;text-align:left;text-decoration:underline}
.filtros{display:flex;flex-wrap:wrap;gap:.6rem;margin:1rem 0}
.filtros input,.filtros select,select[data-rg]{padding:.55rem .7rem;border:1.5px solid var(--linea);border-radius:8px;background:#fff}
.filtros input{flex:1;min-width:220px}
.adm-tabla tbody tr{cursor:pointer}
.adm-tabla tbody tr:hover td{background:var(--pulpa-2)}
.adm-tabla td{vertical-align:middle}
.adm-tabla small{color:var(--tinta-2)}
.adm-tabla tr.inactivo td{opacity:.55}
.riesgo-t{color:var(--ambar);font-weight:700}
.chip{display:inline-block;padding:.12rem .55rem;border-radius:999px;background:var(--pulpa);font-size:.8rem;font-weight:700;color:var(--hass)}
.chip.ok{background:#DDF0DF;color:var(--verde)}.chip.no{background:#F6DCD7;color:var(--rojo)}.chip.gris{background:#E8EBE5;color:var(--tinta-2)}
.ficha{display:flex;gap:1.2rem;align-items:center;background:#fff;border:1px solid var(--linea);border-radius:var(--r-m);padding:1.2rem 1.4rem;margin:.6rem 0 1rem}
.ficha-av{width:64px;height:64px;border-radius:50%;background:var(--hass);color:var(--pulpa);display:grid;place-items:center;font-family:var(--f-titulo);font-weight:800;font-size:1.4rem;flex:none}
.ficha-d{flex:1}.ficha-d h2{margin:0}.ficha-d p{margin:0;color:var(--tinta-2)}
.ficha-n{text-align:center}.ficha-n b{display:block;font-family:var(--f-titulo);font-size:2.2rem;color:var(--hass);line-height:1}.ficha-n span{font-size:.85rem;color:var(--tinta-2)}
.acciones{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.2rem}
.btn.peligro{color:var(--rojo);box-shadow:inset 0 0 0 2px var(--rojo)}
.btn.peligro:hover{background:#FCEFEC}
.btn.peligro-f{background:var(--rojo)}
.cred{background:#FFF8E6;border:2px solid var(--ambar);border-radius:var(--r-m);padding:1rem 1.2rem;margin-bottom:1rem}
.cred code,.tabla code{font-size:1.05em;font-weight:700;background:var(--pulpa-2);padding:.1rem .35rem;border-radius:4px}
.hoja-det{background:#fff;border:1px solid var(--linea);border-radius:var(--r-m);padding:.8rem 1.1rem;margin-bottom:.7rem}
.hoja-det summary{cursor:pointer;display:flex;gap:.6rem;align-items:center}
.hoja-det dl{margin:.8rem 0 0}
.hoja-det dt{font-weight:700;color:var(--hass);font-size:.9rem;margin-top:.6rem}
.hoja-det dd{margin:.2rem 0 0;padding:.5rem .7rem;background:var(--papel);border-radius:6px}
.ex-det{padding-left:1.2rem}
.ex-det li{margin-bottom:.6rem;padding:.4rem .6rem;border-radius:6px}
.ex-det li.bien{background:#EEF8EF}.ex-det li.mal{background:#FCEFEC}
.vacio{text-align:center;padding:3rem 1rem;background:#fff;border:1px dashed var(--linea);border-radius:var(--r-m)}
.tarjetas-acceso{display:none}
@media print{
  body.print-hoja .tarjetas-acceso{display:grid!important;grid-template-columns:1fr 1fr;gap:8mm;padding:10mm}
  .t-acc{border:1.5px dashed #777;padding:6mm;font-size:11pt;break-inside:avoid;line-height:1.6}
  .t-acc b{display:block;font-size:13pt;color:#2C4A35}.t-acc span{font-size:9pt;color:#555}.t-acc p{font-size:14pt;font-weight:700;margin:2mm 0}
  body.print-const .adm-nav{display:none!important}
  body.print-const .adm{display:block}
  body.print-const .adm-main{padding:0;max-width:none}
}

@media (max-width:640px){
  .top .nav-top .quien{display:block;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .top .nav-top .quien small,.top .nav-top .quien br{display:none}
  .marca > span:last-child{display:none}
  .adm{background:none}
}

/* logo OA */
.logo-chip{display:inline-flex;align-items:center;background:#fff;border-radius:8px;padding:4px 7px;flex:none}
.logo-chip img{height:26px;width:auto;display:block}
.logo-form{display:block;height:84px;width:auto;margin:0 auto 1rem}
.est-logo{width:62%;height:auto;display:block}
.est.bloq .est-logo{opacity:.4;filter:grayscale(1)}
.est.hecha button:has(.est-logo){background:#fff;border-color:var(--hass)}
.c-marca{flex-direction:column;align-items:flex-start;gap:.2rem}
.c-logo{height:clamp(42px,7vw,78px);width:auto;display:block}
.c-marca > span{font-size:clamp(.6rem,1.1vw,.78rem);color:var(--tinta-2);padding-left:.2rem}

/* recuperación de contraseña */
.recuperar{max-width:980px;margin:0 auto}
.recuperar .dos-col{align-items:start}
.codigo-rec{font-family:Consolas,"Courier New",monospace;font-size:clamp(1.5rem,5vw,2.2rem);font-weight:800;letter-spacing:.12em;text-align:center;background:#fff;border:2px dashed var(--hass-2);border-radius:var(--r-m);padding:1rem;margin:1rem 0;color:var(--hass);user-select:all}
.check{display:flex;gap:.5rem;align-items:center;font-weight:600}
.check input{width:20px;height:20px;accent-color:var(--hass)}
.aviso-sol{background:#FFF8E6;border:2px solid var(--ambar);border-radius:var(--r-m);padding:.9rem 1.2rem;margin-bottom:1.2rem}
.aviso-sol ul{margin:.4rem 0 0;padding-left:1.2rem}
.badge{display:inline-grid;place-items:center;min-width:22px;height:22px;border-radius:11px;background:var(--ambar);color:#fff;font-size:.78rem;font-weight:800;margin-left:.3rem;padding:0 6px}
.chip.alerta{background:#FBEFD5;color:#9A6A0C}

.campo select{width:100%;padding:.65rem .75rem;border:1.5px solid var(--linea);border-radius:var(--r-s);background:#fff}
.campo select:focus{border-color:var(--hass-2);outline:none;box-shadow:0 0 0 3px var(--pulpa)}

/* ---------- multimódulo ---------- */
.ruta-mod{display:grid;gap:1.5rem;margin-top:1.5rem}
.tarjeta-mod{display:grid;grid-template-columns:minmax(220px,340px) 1fr;background:#fff;border:1px solid var(--linea);border-radius:var(--r-m);overflow:hidden}
.tarjeta-mod.bloq{opacity:.65}
.tarjeta-mod.acreditado{border-left:6px solid var(--verde)}
.tm-arte{position:relative;background:var(--hass);display:flex;align-items:center}
.tm-arte svg{display:block;width:100%;height:auto}
.tm-n{position:absolute;left:14px;top:12px;width:44px;height:44px;border-radius:50%;background:var(--lima);color:var(--tinta);display:grid;place-items:center;font-family:var(--f-titulo);font-weight:900;font-size:1.4rem}
.tm-txt{padding:1.2rem 1.5rem;display:flex;flex-direction:column;gap:.5rem}
.tm-txt h3{margin:0;font-size:1.5rem}
.tm-txt small{color:var(--tinta-2)}
.tm-txt p{margin:0;color:var(--tinta-2);font-size:.95rem}
.tm-estado{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
@media (max-width:760px){.tarjeta-mod{grid-template-columns:1fr}}
.mod-sel{padding:.35rem .6rem;border-radius:8px;border:0;font-weight:700;color:var(--hass);background:var(--pulpa)}
/* widgets M2 */
.rango{width:100%;accent-color:var(--hass);margin:.4rem 0}
.lago-svg{width:100%;height:auto;border-radius:8px;display:block}
.lago-t{transition:opacity .3s}
@media (prefers-reduced-motion:reduce){.lago-t{transition:none}}
.porques{list-style:none;padding:0;margin:.6rem 0 1rem;display:grid;gap:.4rem}
.porques li{background:var(--papel);border-left:5px solid var(--lima);border-radius:6px;padding:.55rem .8rem;margin-left:calc(var(--i,0) * 1rem)}
.porques li span{display:block;font-size:.75rem;font-weight:800;color:var(--tinta-2)}
.porques li.prob{border-left-color:var(--rojo)}.porques li.raiz{border-left-color:var(--hass);background:var(--pulpa-2);font-weight:700}
.tabla.md input{width:58px;padding:.3rem;border:1.5px solid var(--linea);border-radius:5px;text-align:center}
.audit{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:center}
@media (max-width:640px){.audit{grid-template-columns:1fr}}
.audit-f{display:flex;align-items:center;gap:.35rem;margin-bottom:.45rem}
.audit-f span{flex:1;font-weight:700;font-size:.92rem}
.audit-f button{width:36px;height:34px;border-radius:6px;border:1.5px solid var(--linea);background:#fff;font-weight:800;cursor:pointer}
.audit-f button[aria-pressed="true"]{background:var(--hass);color:#fff;border-color:var(--hass)}
.radar{width:100%;max-width:340px;height:auto;font-family:var(--f-texto)}
.andon-w{display:grid;grid-template-columns:90px 1fr;gap:1.2rem;align-items:start}
.torreta{display:flex;flex-direction:column;align-items:center;gap:4px;padding-top:.3rem}
.torreta span{width:46px;height:34px;border-radius:8px 8px 4px 4px;display:block;box-shadow:inset 0 -6px 0 rgba(0,0,0,.12)}
.torreta i{width:10px;height:70px;background:#7D8A76;display:block}
@keyframes parpadeo{50%{opacity:.35}}
.andon-est{display:grid;gap:.5rem}
.ae{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;border-bottom:1px dashed var(--linea);padding-bottom:.4rem}
.ae b{width:100px}
.ae button{border:1.5px solid var(--linea);background:#fff;border-radius:6px;padding:.3rem .65rem;cursor:pointer;font-weight:700;font-size:.85rem}
.ae button[aria-pressed="true"]{background:var(--c);border-color:var(--c);color:#fff}
.ae small{color:var(--tinta-2)}
.instr{border:2px solid var(--hass);border-radius:6px;padding:.6rem;background:#fff;margin-top:.6rem}
.instr-cab{display:flex;gap:1rem;align-items:center;border-bottom:2px solid var(--hass);padding-bottom:.5rem;margin-bottom:.4rem}
.instr-cab img{height:40px}
.instr-cab b{display:block;color:var(--hass)}.instr-cab small{color:var(--tinta-2)}
.colores{list-style:none;padding:0}
.colores li{display:flex;align-items:center;gap:.6rem;margin-bottom:.35rem}
.colores span{width:34px;height:18px;border-radius:4px;flex:none}
