:root{color-scheme:light dark;--fuente:Bahnschrift,"Archivo Narrow","Arial Narrow",Impact,sans-serif;--mono:ui-monospace,Consolas,"Courier New",monospace}
[data-tema=dia]{--fondo:#cfccc4;--papel:#f6f1e3;--tinta:#141414;--suave:#5b574c;--acento:#ff5a1f;--acento-t:#141414;--cinta:#ffc800;--sombra:#141414;--ok:#0b7a43;--mal:#c0300a}
[data-tema=noche]{--fondo:#0d0d0d;--papel:#1a1a17;--tinta:#ffd21a;--suave:#b39b2c;--acento:#ff5a1f;--acento-t:#0d0d0d;--cinta:#ffd21a;--sombra:#ffd21a;--ok:#7bd88f;--mal:#ff7a59}
[data-tema=cielo]{--fondo:#0a3a8c;--papel:#0e47a8;--tinta:#ffffff;--suave:#bcd3f5;--acento:#ffd21a;--acento-t:#0a3a8c;--cinta:#ffffff;--sombra:#ffffff;--ok:#b5f0c4;--mal:#ffc2a8}
*{box-sizing:border-box}
body{margin:0;background:var(--fondo);color:var(--tinta);font:16px/1.4 system-ui,sans-serif}
.cinta{height:14px;background:repeating-linear-gradient(-45deg,var(--cinta) 0 14px,var(--sombra) 14px 28px)}
header.top{max-width:1300px;margin:auto;padding:22px 16px 6px}
h1{font:800 clamp(34px,6vw,64px)/.95 var(--fuente);text-transform:uppercase;letter-spacing:-.5px;margin:0}
h1 em{font-style:normal;background:var(--acento);color:var(--acento-t);padding:0 .15em}
.sub{max-width:68ch;margin:10px 0 14px;color:var(--suave)}
.modos{display:flex;gap:8px;flex-wrap:wrap}
.modos button{min-height:44px;padding:0 18px;border:2px solid var(--sombra);background:var(--papel);color:var(--tinta);font:700 15px var(--fuente);text-transform:uppercase;letter-spacing:1px;cursor:pointer}
.modos button[aria-pressed=true]{background:var(--acento);color:var(--acento-t);box-shadow:3px 3px 0 var(--sombra)}
.pantallas{display:flex;flex-wrap:wrap;gap:34px 30px;justify-content:center;padding:26px 16px;max-width:1500px;margin:auto}
figure{margin:0;width:340px;max-width:100%}
figcaption{font:700 14px var(--fuente);text-transform:uppercase;letter-spacing:1.5px;margin:0 0 8px}
figcaption small{display:block;font:400 13px system-ui;text-transform:none;letter-spacing:0;color:var(--suave)}
.movil{border:3px solid var(--sombra);background:var(--papel);height:100dvh;max-height:900px;display:flex;flex-direction:column;box-shadow:8px 8px 0 var(--sombra);overflow:hidden}
.barra{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;background:var(--sombra);color:var(--papel)}
.logo{font:800 22px var(--fuente);text-transform:uppercase;letter-spacing:.5px}
.logo i{font-style:normal;color:var(--acento)}
.reloj{font:600 13px var(--mono);letter-spacing:1px}
.cuerpo{flex:1;overflow:auto;padding:12px}
nav.menu{display:flex;border-top:3px solid var(--sombra)}
nav.menu a{text-decoration:none;flex:1;text-align:center;padding:12px 0 9px;font:700 12px var(--fuente);text-transform:uppercase;letter-spacing:1px;color:var(--suave);border-bottom:5px solid transparent}
nav.menu a.on{color:var(--tinta);border-bottom-color:var(--acento)}
h2{font:800 26px/1 var(--fuente);text-transform:uppercase;margin:4px 0 8px}
h3{font:700 13px var(--fuente);text-transform:uppercase;letter-spacing:1.5px;margin:14px 0 6px;border-bottom:2px solid var(--sombra);padding-bottom:3px}
p{margin:4px 0}
.s{color:var(--suave);font-size:13px}
.mono{font-family:var(--mono)}
.gran{font:800 56px/.9 var(--fuente)}
.cuadros{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cuadro{border:3px solid var(--sombra);padding:8px 10px;background:var(--papel)}
.cuadro.ac{background:var(--acento);color:var(--acento-t);box-shadow:4px 4px 0 var(--sombra)}
.cuadro.ancho{grid-column:1/3}
.cuadro b{display:block;font:800 40px/1 var(--fuente)}
.cuadro span{font:700 12px var(--fuente);text-transform:uppercase;letter-spacing:1px}
.btn{display:block;text-align:center;border:3px solid var(--sombra);background:var(--sombra);color:var(--papel);font:800 17px var(--fuente);text-transform:uppercase;letter-spacing:1.5px;padding:12px;margin:10px 0;box-shadow:4px 4px 0 var(--acento)}
.btn.o{background:transparent;color:var(--tinta);box-shadow:none}
.btn.ac{background:var(--acento);color:var(--acento-t);box-shadow:4px 4px 0 var(--sombra)}
.etq{display:inline-block;background:var(--cinta);color:#141414;font:800 11px var(--fuente);text-transform:uppercase;letter-spacing:1px;padding:2px 7px;margin-right:4px}
.etq.n{background:var(--sombra);color:var(--papel)}
/* ticket de fichar: dos mitades con muescas y línea de corte */
.ticket{position:relative;border:3px solid var(--sombra);background:var(--papel);margin:10px 0 12px;box-shadow:4px 4px 0 var(--sombra)}
.ticket .arriba{padding:9px 12px 8px}
.ticket .abajo{padding:8px 12px 9px;border-top:3px dashed var(--sombra);font:12px var(--mono);display:flex;justify-content:space-between;gap:8px}
.ticket::before,.ticket::after{content:"";position:absolute;top:calc(100% - 46px);width:16px;height:16px;border-radius:50%;background:var(--fondo);border:3px solid var(--sombra)}
.ticket::before{left:-11px}.ticket::after{right:-11px}
.ticket .t{font:800 21px/1.05 var(--fuente);text-transform:uppercase}
.sello{position:absolute;right:10px;top:8px;transform:rotate(-7deg);border:3px double var(--mal);color:var(--mal);font:800 15px var(--fuente);text-transform:uppercase;letter-spacing:2px;padding:1px 8px;background:var(--papel)}
.sello.ok{border-color:var(--ok);color:var(--ok)}
.modo{display:flex;border:3px solid var(--sombra);margin:0 0 10px;background:var(--papel)}
.modo span{flex:1;text-align:center;padding:7px 0;font:800 14px var(--fuente);text-transform:uppercase;letter-spacing:1.5px;border-right:3px solid var(--sombra)}
.modo span:last-child{border-right:0}
.modo .on{background:var(--acento);color:var(--acento-t)}
.orden{display:flex;gap:8px;margin:0 0 10px}
.orden span{flex:1;border:3px solid var(--sombra);padding:6px 8px;font:700 12px var(--fuente);text-transform:uppercase;letter-spacing:1px;display:flex;justify-content:space-between}
.hoja{background:var(--papel);border-top:3px solid var(--sombra)}
.opt{display:flex;justify-content:space-between;border-bottom:1px solid var(--suave);padding:6px 0;font-size:14px}
.opt.on b{color:var(--acento)}
.opt.on::after{content:"●";color:var(--acento)}
.opt b{font-weight:600}
.tachado{text-decoration:line-through;opacity:.55}
.riel{display:grid;grid-template-columns:66px 1fr;gap:8px}
.dia{font:800 15px/1.1 var(--fuente);text-transform:uppercase;border-right:3px solid var(--sombra);padding-top:12px}
.dia b{display:block;font-size:28px}
.dia.hoy{color:var(--acento)}
.fila{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.dato{display:flex;justify-content:space-between;border-bottom:1px dashed var(--suave);padding:4px 0;font:13px var(--mono)}
.dato b{font-weight:700}
.marca{background:var(--cinta);color:#141414;padding:0 3px}
.anuncio{border:2px dashed var(--suave);color:var(--suave);text-align:center;font:12px var(--mono);padding:12px;margin:10px 0}
.carnet{border:3px solid var(--sombra);background:var(--papel);box-shadow:5px 5px 0 var(--sombra);margin:6px 0 12px;overflow:hidden}
.carnet .cab{background:var(--acento);color:var(--acento-t);font:800 14px var(--fuente);text-transform:uppercase;letter-spacing:2px;padding:6px 10px;display:flex;justify-content:space-between}
.carnet .cu{padding:10px;display:grid;grid-template-columns:76px 1fr;gap:10px}
.carnet .foto{border:3px solid var(--sombra);height:92px;display:grid;place-items:center;font:700 11px var(--fuente);text-transform:uppercase;text-align:center;background:repeating-linear-gradient(45deg,transparent 0 6px,rgba(128,128,128,.25) 6px 7px)}
.barras{height:34px;margin:0 10px 10px;background:repeating-linear-gradient(90deg,var(--tinta) 0 3px,transparent 3px 5px,var(--tinta) 5px 6px,transparent 6px 10px,var(--tinta) 10px 14px,transparent 14px 16px)}
.parte{display:grid;grid-template-columns:22px 1fr auto;gap:8px;align-items:center;border-bottom:2px solid var(--sombra);padding:8px 0}
.caja{width:20px;height:20px;border:3px solid var(--sombra);display:grid;place-items:center;font:800 14px var(--fuente)}
.item{display:grid;grid-template-columns:40px 1fr;gap:8px;border-bottom:2px solid var(--sombra);padding:9px 0}
.item .n{font:800 30px/1 var(--fuente);color:var(--acento)}
.item .t{font:800 17px/1.1 var(--fuente);text-transform:uppercase}
.mina{display:grid;grid-template-columns:repeat(7,1fr);border:3px solid var(--sombra);background:var(--sombra);gap:2px;margin:8px 0}
.mina span{aspect-ratio:1;display:grid;place-items:center;background:var(--papel);font:800 17px var(--fuente);box-shadow:inset -3px -3px 0 rgba(128,128,128,.4),inset 3px 3px 0 rgba(255,255,255,.45)}
.mina .a{box-shadow:none;background:var(--fondo)}
.mina .u{color:#2a6fd6}.mina .d{color:var(--ok)}.mina .m{color:var(--mal)}.mina .f{color:var(--acento)}
.tablas{max-width:1100px;margin:10px auto 50px;padding:0 16px}
.tablas h2{font-size:30px;margin-top:26px}
.tablas table{border-collapse:collapse;width:100%;font-size:14px}
.tablas th,.tablas td{border:2px solid var(--sombra);padding:8px;text-align:left;vertical-align:top}
.tablas th{background:var(--acento);color:var(--acento-t);font:800 14px var(--fuente);text-transform:uppercase;letter-spacing:1px}
ul,ol{padding-left:20px}
li{margin:4px 0}
code{font-family:var(--mono)}

/* ---- la app de verdad ---- */
html,body{height:100%}
body{display:flex;flex-direction:column;align-items:center}
#app{width:100%;max-width:520px}
@media(min-width:600px){#app{margin:16px 0}}
@media(max-width:599px){.movil{max-height:none;border-width:0;box-shadow:none}}
a{color:inherit}
a.ticket{display:block;text-decoration:none;color:inherit}
.ticket .t{font-size:19px}
.ticket .arriba{padding-right:12px}
input[type=search],select{width:100%;min-height:44px;border:3px solid var(--sombra);background:var(--papel);color:var(--tinta);font:600 15px var(--fuente);padding:6px 10px;border-radius:0}
.busca{display:flex;gap:8px;margin:0 0 8px}
.orden{display:grid;grid-template-columns:1fr auto;gap:8px}
.orden button,.chip{font:700 12px var(--fuente);text-transform:uppercase;letter-spacing:1px;border:3px solid var(--sombra);background:var(--papel);color:var(--tinta);padding:6px 10px;min-height:44px;cursor:pointer}
.chip{min-height:0;padding:3px 8px;margin:0 4px 4px 0;border-width:2px}
.chip.on{background:var(--acento);color:var(--acento-t)}
.chip.off{text-decoration:line-through;opacity:.55}
.chip[disabled]{opacity:.45;cursor:not-allowed}
.receta{margin:8px 0;border:2px solid var(--tinta);padding:6px 10px}
.receta summary{cursor:pointer}
.receta pre{overflow-x:auto;font-size:13px}
.activos{margin:6px 0}
.seccion{font:800 14px var(--fuente);text-transform:uppercase;letter-spacing:1.5px;border-bottom:3px solid var(--sombra);margin:14px 0 6px;padding-bottom:3px}
.vacio{border:3px dashed var(--suave);padding:18px;text-align:center;color:var(--suave);margin:16px 0}
.cargando{padding:30px;text-align:center;font:700 16px var(--fuente);text-transform:uppercase;letter-spacing:2px}
.hoja-fondo{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:50;display:flex;justify-content:center;align-items:flex-end}
.hoja{background:var(--papel);color:var(--tinta);border:3px solid var(--sombra);width:100%;max-width:520px;max-height:90dvh;overflow:auto;padding:12px}
.hoja h3{margin-top:14px}
.opt{cursor:pointer;min-height:40px;align-items:center}
.fila{display:flex;justify-content:space-between;gap:8px;align-items:center}
.txt{white-space:pre-wrap;font-size:14px}
a.btn{text-decoration:none}
button.btn{width:100%;font-family:var(--fuente);cursor:pointer}
.intro{margin:8px 0 12px}.cuenta{margin:6px 0}.ticket.primero{margin-top:6px}.arriba.bajo-sello{padding-top:34px}.ticket .t.grande{font-size:24px}.areas{margin-top:8px}
.ticket .t{font-size:16px}.ticket .t.grande{font-size:21px}
/* ---- deslizar, afinidad, pestañas, avisos ---- */
.cuerpo{overflow-x:hidden}
.swipe-wrap{position:relative}
.swipe-bg{display:none;position:absolute;top:10px;bottom:12px;left:0;right:0;align-items:center;padding:0 16px;font:800 18px var(--fuente);text-transform:uppercase;background:var(--sombra);color:var(--papel);flex-direction:column;justify-content:center}
.swipe-bg.ver{display:flex}
.swipe-bg.der{background:var(--acento);color:var(--acento-t);align-items:flex-start}
.swipe-bg.lejos{background:var(--ok);color:#fff;align-items:flex-start}
.swipe-bg.izq{background:var(--mal);color:#fff;align-items:flex-end}
.swipe-bg small{font:600 12px var(--mono);text-transform:none}
.swipe-card{transition:transform .2s;position:relative;z-index:1;touch-action:pan-y;background:var(--papel)}
.ticket.apagada{opacity:.6}
.ticket .pct{position:absolute;top:8px;right:8px;border:3px solid var(--sombra);font:800 20px/1 var(--fuente);padding:4px 6px;min-width:46px;text-align:center;background:var(--papel)}
.ticket .pct small{font-size:12px}
.ticket .pct.hi{background:var(--acento);color:var(--acento-t)}
.ticket .pct.lo{opacity:.6}
.ticket .arriba{padding-right:62px}
.chips{margin:4px 0 0}
.chips .etq{margin:0 4px 4px 0}
.etq.ok{background:var(--ok);color:#fff;border-color:var(--ok)}
.etq.bot{background:transparent;color:inherit;cursor:pointer;font-family:var(--fuente)}
.etq.bot.n{background:var(--sombra);color:var(--papel)}
.motivo{margin-top:2px}
.kw{margin:0 0 6px}
.pest{display:flex;border:3px solid var(--sombra);margin-bottom:8px}
.pest button,.pest a{flex:1;text-align:center;padding:8px 0;font:800 13px var(--fuente);text-transform:uppercase;letter-spacing:1px;border:0;border-right:3px solid var(--sombra);background:transparent;color:var(--tinta);cursor:pointer;text-decoration:none}
.pest button:last-child,.pest a:last-child{border-right:0}
.pest .on{background:var(--acento);color:var(--acento-t)}
.acciones{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.acciones.compartir{margin-top:8px}
.acciones .wa{text-align:center;text-decoration:none;color:inherit}
.acciones .wa::before{content:'';display:inline-block;width:.7em;height:.7em;border-radius:50%;background:#25d366;margin-right:.45em;vertical-align:.05em}
.parte{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:start;border-bottom:2px solid var(--sombra);padding:10px 0}
.parte .t2{font:800 16px var(--fuente);text-transform:uppercase;text-decoration:none}
.parte select{margin-top:6px}
.sugerir{display:grid;gap:8px;margin:8px 0}.sugerir input[type=text]{width:100%;min-height:44px;border:3px solid var(--sombra);background:var(--papel);color:var(--tinta);font:600 15px var(--fuente);padding:6px 10px;border-radius:0}.sugerir .trampa{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.sugerir .s.bien{color:var(--tinta);font-weight:700}.sugerir .btn{width:100%;margin:2px 0}
textarea{width:100%;border:3px solid var(--sombra);background:var(--papel);color:var(--tinta);font:14px var(--mono);padding:8px;border-radius:0;margin:4px 0}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:84px;z-index:60;background:var(--sombra);color:var(--papel);border:3px solid var(--acento);padding:10px 14px;display:flex;gap:14px;align-items:center;font:700 14px var(--fuente);text-transform:uppercase;box-shadow:4px 4px 0 var(--acento)}
.toast button{background:var(--acento);color:var(--acento-t);border:0;font:800 13px var(--fuente);text-transform:uppercase;padding:6px 10px;cursor:pointer}
/* color por organismo */
.ticket[data-src]{border-left:14px solid var(--src,var(--sombra))}
.cuad-src{display:inline-block;width:10px;height:10px;background:var(--src,var(--suave));margin-right:5px;border:1px solid rgba(0,0,0,.35);vertical-align:0}
.etq.org{display:inline-flex;align-items:center;font-weight:800}
.chip .cuad-src{margin-right:4px}
a.logo{text-decoration:none;color:inherit}.logo .suf{color:var(--papel);opacity:.85}
.qr{background:#fff;padding:8px;border:3px solid var(--sombra);margin:8px 0;text-align:center}.qr svg{width:100%;max-width:280px;height:auto}
.resumen{margin-top:4px}.req{margin:4px 0;padding-left:18px;font-size:14px}.req li{margin:3px 0}
.combo{position:relative;flex:1}
.combo input[type=search]{padding-right:52px}
.flecha{position:absolute;top:0;right:0;bottom:0;width:46px;border:0;border-left:3px solid var(--sombra);background:transparent;color:var(--tinta);font:800 18px var(--fuente);cursor:pointer}
.desplegable{position:absolute;left:0;right:0;top:100%;z-index:30;background:var(--papel);border:3px solid var(--sombra);box-shadow:4px 4px 0 var(--sombra);max-height:260px;overflow:auto}
.desplegable button{display:block;width:100%;text-align:left;padding:11px 12px;min-height:44px;border:0;border-bottom:1px solid var(--suave);background:transparent;color:var(--tinta);font:700 15px var(--fuente);text-transform:uppercase;letter-spacing:1px;cursor:pointer}
.desplegable button:first-child{background:var(--acento);color:var(--acento-t)}
.busca{align-items:flex-start}
/* ---- taquilla, juegos y anuncio ---- */
.item{display:grid;grid-template-columns:40px 1fr;gap:8px;border-bottom:2px solid var(--sombra);padding:10px 0}
.item .n{font:800 28px/1 var(--fuente);color:var(--acento)}
.item .t2{font:800 17px/1.1 var(--fuente);text-transform:uppercase}
h2 small{font:700 14px var(--fuente);color:var(--acento)}
.bm-barra{display:flex;justify-content:space-between;margin:6px 0}
.bm{display:grid;gap:2px;background:var(--sombra);border:3px solid var(--sombra);margin:8px 0;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:manipulation}
.bm.c8{grid-template-columns:repeat(8,minmax(0,1fr))}.bm.c10{grid-template-columns:repeat(10,minmax(0,1fr))}.bm.c12{grid-template-columns:repeat(12,minmax(0,1fr))}
.bm-cel{aspect-ratio:1;display:grid;place-items:center;padding:0;border:0;border-radius:0;background:var(--papel);color:var(--tinta);font:800 17px var(--fuente);cursor:pointer;box-shadow:inset -3px -3px 0 rgba(128,128,128,.45),inset 3px 3px 0 rgba(255,255,255,.5)}
.bm-cel.ab{box-shadow:none;background:var(--fondo)}
.bm-cel.n1{color:#2a6fd6}.bm-cel.n2{color:var(--ok)}.bm-cel.n3{color:var(--mal)}.bm-cel.n4{color:#6a3fb5}.bm-cel.n5,.bm-cel.n6,.bm-cel.n7,.bm-cel.n8{color:var(--aviso,#a8420f)}
.bm-cel.flag{color:var(--acento)}.bm-cel.falsa{color:var(--mal);text-decoration:line-through}
.bm-cel.bomba{color:var(--tinta)}.bm-cel.boom{background:var(--mal);color:#fff}
.bm-msg{border:3px solid var(--sombra);padding:10px;font:800 16px var(--fuente);text-transform:uppercase;text-align:center;margin:8px 0}
.bm-msg.ok{background:var(--ok);color:#fff}.bm-msg.mal{background:var(--mal);color:#fff}
.anuncio-fuera{width:100%;max-width:520px;margin:8px auto 24px;text-align:center}
.anuncio-fuera small{display:block;font:600 11px var(--fuente);letter-spacing:2px;text-transform:uppercase;color:var(--suave)}
.anuncio-fuera ins{display:block;min-height:100px}
/* efectos del buscaminas */
@keyframes estalla{0%{transform:scale(.2) rotate(0);background:var(--aviso,#ff9f43);color:#fff}45%{transform:scale(1.7) rotate(120deg);background:var(--mal);color:#fff}100%{transform:scale(1) rotate(0)}}
@keyframes sacude{0%,100%{transform:translate(0,0)}15%{transform:translate(-5px,2px)}30%{transform:translate(5px,-3px)}45%{transform:translate(-4px,-2px)}60%{transform:translate(4px,3px)}80%{transform:translate(-2px,1px)}}
@keyframes onda{0%,100%{transform:scale(1)}40%{transform:scale(1.3);background:var(--ok);color:#fff}}
@keyframes guino{0%,100%{transform:none}30%{transform:rotate(-9deg) scale(1.15)}65%{transform:rotate(7deg) scale(1.08)}}
.bm.sacude{animation:sacude .55s ease-out}
.bm-cel.estalla{animation:estalla .5s ease-out both}
.bm-cel.onda{animation:onda .6s ease-in-out both}
.bm-cel.guino{animation:guino .7s ease-in-out;box-shadow:inset -3px -3px 0 rgba(128,128,128,.45),inset 3px 3px 0 rgba(255,255,255,.5),0 0 0 2px var(--acento)}
.bm-msg.mal{animation:sacude .5s ease-out}
@media (prefers-reduced-motion:reduce){.bm,.bm-cel,.bm-msg{animation:none!important}}
.bm-cel{min-width:0;min-height:0;overflow:hidden;line-height:1}
.bm{overflow:hidden}
/* los símbolos van como pseudoelemento absoluto: no cuentan para el tamaño de la casilla (con la fuente de reserva descuadraban las filas) */
.bm-cel{position:relative}
.bm-cel.bomba::before,.bm-cel.flag::before,.bm-cel.falsa::before{position:absolute;inset:0;display:grid;place-items:center;font-size:17px;line-height:1}
.bm-cel.bomba::before{content:"✸"}.bm-cel.flag::before,.bm-cel.falsa::before{content:"⚑"}
/* ---- páginas del servidor (guías, organismos, ofertas) ---- */
body.doc{display:block}
.pag{width:100%;max-width:760px;margin:16px auto;border:3px solid var(--sombra);background:var(--papel);box-shadow:7px 7px 0 var(--sombra)}
@media(max-width:799px){.pag{margin:0 auto;border-width:0 0 3px;box-shadow:none}}
.pag .menu a{text-decoration:none}
/* la cabecera y la navegación se quedan a la vista, como en la app: la lectura es larga */
body.doc .barra{position:sticky;top:0;z-index:5}
body.doc nav.menu{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:760px;background:var(--papel);z-index:5;border-left:3px solid var(--sombra);border-right:3px solid var(--sombra)}
body.doc .pag{padding-bottom:58px}
.pie{padding:14px 18px;font:600 13px var(--fuente);text-align:center;color:var(--suave);border-top:3px solid var(--sombra)}.pie a{color:var(--tinta)}
@media(max-width:799px){body.doc nav.menu{border-left:0;border-right:0}}
.texto{padding:16px 18px 24px;line-height:1.6;font-size:17px}
.texto h1{font:800 30px/1.1 var(--fuente);text-transform:uppercase;margin:6px 0 12px}
.texto h2{font:800 22px/1.15 var(--fuente);text-transform:uppercase;margin:24px 0 8px;border-bottom:3px solid var(--sombra);padding-bottom:3px}
.texto a{color:var(--acento);text-underline-offset:3px}
.texto ul,.texto ol{padding-left:22px}.texto li{margin:5px 0}
.texto .lista{list-style:none;padding:0}.texto .lista li{border-bottom:2px solid var(--sombra);padding:10px 0}
.texto table.ficha{border-collapse:collapse;width:100%;margin:12px 0;font-size:15px}
.texto table.ficha th,.texto table.ficha td{border-bottom:1px solid var(--suave);padding:6px 4px;text-align:left;vertical-align:top}
.texto table.ficha th{width:34%;font:700 13px var(--fuente);text-transform:uppercase;letter-spacing:1px;color:var(--suave)}
.texto .btn{display:block;text-decoration:none;color:var(--acento-t)}.texto .btn.o{color:var(--tinta)}
.anuncio-pagina{padding:0 18px 20px;text-align:center}
.anuncio-pagina small{display:block;font:600 11px var(--fuente);letter-spacing:2px;text-transform:uppercase;color:var(--suave)}
.anuncio-pagina ins{display:block;min-height:100px}
.parte textarea{width:100%;margin-top:6px}.parte input[type=date]{margin-left:6px}

.lectura{margin:-4px 0 12px;padding:8px 10px;border:1px dashed currentColor;border-radius:8px;opacity:.85}
.en-bases{margin:-4px 0 10px}.en-bases .chip{font-size:.85em}

/* 🎫 candidaturas como tickets (Ficha → Candidaturas) */
.ticket.cand .arriba{padding-right:48px}
.ticket.cand .t{display:block;color:inherit;text-decoration:none;margin:2px 0 8px}
.ticket.cand select,.ticket.cand textarea{width:100%;margin-top:6px}
.ticket.cand .quitar-cand{position:absolute;top:8px;right:8px;z-index:1}

/* 🖥️ Pantalla ancha (PC, app.js ancho()): menú arriba, otras pantallas centradas y Ofertas en tres columnas */
#app.ancho{max-width:none;margin:0;height:100dvh}
.movil.ancho{height:100dvh;max-height:none;border-width:0;box-shadow:none}
.movil.ancho .barra{order:-2;padding:10px 18px}
.movil.ancho nav.menu{order:-1;border-top:0;border-bottom:3px solid var(--sombra);justify-content:flex-start}
.movil.ancho nav.menu a{flex:none;padding:10px 24px 7px}
.movil.ancho .cuerpo{padding:16px max(16px,calc(50% - 380px))}
.movil.ancho .cuerpo.con-tres{padding:0;overflow:hidden}
.barra .vista{margin:0 14px 0 auto;background:transparent;border:2px solid var(--papel);color:var(--papel);font:700 12px var(--fuente);text-transform:uppercase;letter-spacing:1px;padding:4px 10px;cursor:pointer}
.tres{display:grid;grid-template-columns:280px minmax(400px,1fr) minmax(440px,1.15fr);height:100%}
.tres .col{overflow:auto;padding:12px 16px;min-width:0}
.tres .col-filtros{border-right:3px solid var(--sombra)}
.tres .col-lista{background:var(--fondo)}
.tres .col-ficha{border-left:3px solid var(--sombra)}
.tres [data-act=abrir-filtros]{display:none}
.tres .col-lista .ticket{cursor:pointer}
.tres .col-lista .ticket.sel{outline:4px solid var(--acento);outline-offset:3px}
.tres .col-ficha>.vacio{margin-top:40px}

/* 🗂️ Tablero de candidaturas (pantalla ancha) */
.movil.ancho .cuerpo:has(.tablero){padding:16px 20px}
.tablero{display:grid;grid-template-columns:repeat(6,minmax(150px,1fr));gap:12px;padding:12px;background:var(--fondo);border:3px solid var(--sombra);margin:8px 0 16px}
.colk{min-height:140px;padding:4px;border:3px dashed transparent}
.colk.encima{border-color:var(--acento);background:rgba(255,90,31,.08)}
.colk h3{margin:0 0 8px;display:flex;justify-content:space-between;gap:6px}
.colk h3 span{font:12px var(--mono)}
.mini{border:3px solid var(--sombra);border-left:10px solid var(--src,var(--sombra));background:var(--papel);padding:7px 9px;margin:0 0 8px;box-shadow:3px 3px 0 var(--sombra);cursor:grab}
.mini:active{cursor:grabbing}
.mini.sel{outline:4px solid var(--acento);outline-offset:2px}
.mini.apagada{opacity:.6}
.mini b{display:block;font:800 13px/1.1 var(--fuente);text-transform:uppercase}
.mini small{display:block;margin-top:3px;font:11px var(--mono);color:var(--suave)}
.mini .cita{display:inline-block;margin-top:5px;background:var(--acento);color:var(--acento-t);font:700 11px var(--mono);padding:1px 5px}

/* 🎫 Tickets también en las páginas del servidor (guías, organismos, páginas por ciudad/tema) y en la Taquilla */
.tickets{list-style:none;padding:0;margin:12px 0}
.tickets li{margin:0}
a.enlace-ticket,.texto a.enlace-ticket{display:block;text-decoration:none;color:var(--tinta)}
a.enlace-ticket:hover .t,a.enlace-ticket:focus-visible .t{text-decoration:underline;text-decoration-color:var(--acento);text-underline-offset:3px}
.texto .ticket .t{display:block;font:800 18px/1.1 var(--fuente);text-transform:uppercase}
.texto .ticket .arriba .s{margin:4px 0 0;line-height:1.4}
.texto .ticket .sello,.ticket.producto .pct{position:absolute;top:10px;right:12px}
.texto .ticket .arriba{padding-right:92px}
.cabecera-guia{margin:6px 0 18px}
.cabecera-guia h1{margin:2px 0 6px}
.ticket.producto .arriba{padding-right:64px}
.ticket.producto .pct{color:var(--acento);background:var(--papel)}
.chips-enlace{display:flex;flex-wrap:wrap;gap:6px}
.chips-enlace .chip{text-decoration:none;color:var(--tinta)}
button.enlace{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer}
.legal{margin-top:14px}
.pie{line-height:1.8}

/* 🖥️ Páginas del servidor (guías, organismos, legales…) en pantalla ancha: como la app (app.js ancho()). Menú arriba, barra a todo
   lo ancho y el texto centrado. Con «Ver como en el móvil» (pc.vista) pagina.js pone .vista-movil y se queda el marco de móvil. */
@media (min-width: 1100px) and (pointer: fine) {
  body.doc:not(.vista-movil) { background: var(--papel); }
  body.doc:not(.vista-movil) .pag { max-width: none; margin: 0; border: 0; box-shadow: none; display: flex; flex-direction: column; min-height: 100dvh; padding-bottom: 0; }
  body.doc:not(.vista-movil) .barra { order: -2; padding: 10px 18px; }
  body.doc:not(.vista-movil) nav.menu { order: -1; position: static; transform: none; left: auto; width: auto; max-width: none; border: 0;
    border-bottom: 3px solid var(--sombra); justify-content: flex-start; }
  body.doc:not(.vista-movil) nav.menu a { flex: none; padding: 10px 24px 7px; }
  body.doc:not(.vista-movil) main.texto, body.doc:not(.vista-movil) .pie, body.doc:not(.vista-movil) .anuncio-pagina {
    width: 100%; max-width: 760px; margin-left: auto; margin-right: auto; box-sizing: border-box; }
}
.texto ul.tickets{padding-left:0}

/* 🎮 /juegos: una ficha por juego y los votos de los próximos */
.ticket.juego .arriba{padding-left:74px;min-height:64px;position:relative}
.ticket.juego .emoji-juego{position:absolute;left:12px;top:10px;font-size:46px;line-height:1}
.votos{display:flex;gap:8px;margin:10px 0 2px}
.voto{border:2px solid var(--sombra);background:var(--papel);color:var(--tinta);font:700 16px var(--fuente);padding:5px 12px;cursor:pointer;box-shadow:2px 2px 0 var(--sombra)}
.voto[aria-pressed=true]{background:var(--acento);color:var(--acento-t)}
.voto.fallo{border-color:var(--mal)}
/* menú de 6: en móviles estrechos, letra algo menor para que quepa */
@media (max-width: 430px){nav.menu a{font-size:11px;letter-spacing:.4px}}
.ticket.juego .sello{position:static;display:inline-block;margin:10px 0 0 86px;transform:rotate(-3deg);font-size:13px}

/* 💣 buscaminas tumbado (pantalla apaisada): 14, 18 columnas; el ancho, el que deja entrar el tablero entero en el alto de la ventana */
.bm.c14{grid-template-columns:repeat(14,minmax(0,1fr))}.bm.c18{grid-template-columns:repeat(18,minmax(0,1fr))}
.bm.tumbado{margin-left:auto;margin-right:auto}
.bm.tumbado.c10{max-width:calc((100dvh - 330px) * 1.25)}
.bm.tumbado.c14{max-width:calc((100dvh - 330px) * 1.4)}
.bm.tumbado.c18{max-width:calc((100dvh - 330px) * 1.5)}

/* 🏃 La hora de salir (web/js/salir.js) */
.caja-salir{position:relative;border:3px solid var(--sombra);background:var(--papel);box-shadow:4px 4px 0 var(--sombra);touch-action:none;user-select:none;-webkit-user-select:none;margin:12px 0}
.lienzo-salir{display:block;width:100%;aspect-ratio:160/88;image-rendering:pixelated;image-rendering:crisp-edges;object-fit:contain}
.marcador-salir{position:absolute;left:6px;top:6px;font:700 11px/1.3 var(--mono);background:var(--papel);border:2px solid var(--sombra);padding:2px 6px;max-width:calc(100% - 58px)}
.aviso-salir{position:absolute;inset:0;display:grid;place-content:center;text-align:center;gap:6px;padding:14px;background:rgba(246,241,227,.84);pointer-events:none}
.aviso-salir[hidden]{display:none}
.aviso-salir b{font:800 20px/1.1 var(--fuente);text-transform:uppercase}
.aviso-salir small{font-size:14px}
.aviso-salir .nuevo-record{color:var(--acento);font-weight:800;font-size:16px}
.mini-salir{position:absolute;right:6px;width:40px;height:40px;border:2px solid var(--sombra);background:var(--papel);font-size:18px;cursor:pointer}
.mini-salir.completa{top:6px}
.mini-salir.agachar-mini{bottom:6px;display:none}
.mandos-salir{display:grid;grid-template-columns:2fr 1fr;gap:8px;margin:0 0 10px}
/* a pantalla completa (móvil girado o ⛶): todo el juego, sin nada más */
body.apaisado .caja-salir,.caja-salir:fullscreen{position:fixed;inset:0;z-index:1000;margin:0;border:0;box-shadow:none;display:grid;place-items:center;background:var(--papel)}
body.apaisado .lienzo-salir,.caja-salir:fullscreen .lienzo-salir{width:100%;height:100%;aspect-ratio:auto}
body.apaisado .mini-salir.agachar-mini,.caja-salir:fullscreen .mini-salir.agachar-mini{display:block;width:64px;height:64px;font-size:28px}
.marcador-salir,.mini-salir{z-index:2}
body.apaisado .lienzo-salir,.caja-salir:fullscreen .lienzo-salir{width:min(100vw,calc(100dvh * 160 / 88));height:auto;aspect-ratio:160/88}

/* 🗑️ Canasta de papel (RA): vídeo de la cámara y 3D a pantalla completa; encima, la capa con marcador y avisos */
.ca-video,.ca-lienzo{display:none}
body.jugando .ca-video:not([hidden]),body.jugando .ca-lienzo{display:block;position:fixed;inset:0;width:100vw;height:100dvh;object-fit:cover;z-index:900}
body.jugando .ca-lienzo{z-index:901;background:transparent}
.ca-capa{position:fixed;inset:0;z-index:902;touch-action:none;user-select:none;-webkit-user-select:none;color:#fff;font-family:var(--fuente)}
.ca-capa[hidden]{display:none}
.ca-arriba{position:absolute;left:8px;right:8px;top:max(8px,env(safe-area-inset-top));display:flex;gap:8px;align-items:center}
.ca-marcador{flex:1;background:rgba(20,20,20,.72);border:2px solid #ffd21a;padding:6px 10px;font:700 13px var(--mono)}
.ca-salir{width:42px;height:42px;border:2px solid #fff;background:rgba(20,20,20,.72);color:#fff;font-size:18px}
.ca-mirilla{position:absolute;left:50%;top:50%;width:28px;height:28px;margin:-14px 0 0 -14px;border:2px solid rgba(255,255,255,.9);border-radius:50%;box-shadow:0 0 0 2px rgba(0,0,0,.35)}
.ca-aviso{position:absolute;left:12px;right:12px;bottom:max(110px,calc(env(safe-area-inset-bottom) + 110px));text-align:center;margin:0;background:rgba(20,20,20,.75);border:2px solid #22ff77;padding:10px;font:800 16px/1.25 var(--fuente);text-transform:uppercase}
.ca-fuerza{position:absolute;right:14px;top:30%;width:16px;height:40%;border:2px solid #fff;background:rgba(0,0,0,.35)}
.ca-fuerza i{position:absolute;left:0;right:0;bottom:0;height:calc(var(--f,0) * 100%);background:linear-gradient(#ff5a1f,#ffd21a)}
.ca-aqui{position:absolute;left:50%;transform:translateX(-50%);bottom:max(40px,env(safe-area-inset-bottom));width:auto;padding:12px 20px}
.ca-fin{position:absolute;left:12px;right:12px;top:30%;display:grid;gap:10px;background:var(--papel);color:var(--tinta);border:3px solid var(--sombra);box-shadow:6px 6px 0 var(--sombra);padding:16px;text-align:center}
.ca-fin[hidden]{display:none}
.ca-fin b{font:800 22px var(--fuente);text-transform:uppercase}
body.jugando .pag > :not(main), body.jugando nav.menu, body.jugando .barra{visibility:hidden}
.ca-aqui[hidden],.ca-fuerza[hidden],.ca-aviso[hidden]{display:none}
