:root{
  --noche:#0b1233; --noche2:#141c4a; --panel:#1a2358; --linea:#2c3772;
  --oro:#f5b83d; --oro2:#ffd978; --naranja:#f26b2a; --azul:#1d3c94;
  --crema:#f6efd9; --texto:#eef0ff; --suave:#aab2de;
  --ok:#3ecf7a; --ambar:#f5b83d; --gris:#4a5483; --mal:#ff6b6b;
  --radio:16px;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{background:radial-gradient(1200px 700px at 50% -10%,#232f78 0%,var(--noche) 60%) fixed;color:var(--texto);
  font:17px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;min-height:100vh;padding-bottom:env(safe-area-inset-bottom)}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;margin:.2em 0 .4em;line-height:1.15;color:var(--crema)}
h1{font-size:1.9rem} h2{font-size:1.45rem} h3{font-size:1.15rem}
a{color:var(--oro2)}
p{margin:.4em 0}
small,.suave{color:var(--suave)}
#estrellas{position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.7}
#estrellas i{position:absolute;width:2px;height:2px;border-radius:50%;background:#fff;animation:titila 3s infinite ease-in-out}
@keyframes titila{0%,100%{opacity:.15}50%{opacity:1}}
#app{position:relative;z-index:1;max-width:760px;margin:0 auto;padding:16px 16px 90px}
.ancho{max-width:1100px}
.cargando{text-align:center;color:var(--suave);margin-top:30vh}

/* tarjetas y botones */
.card{background:linear-gradient(180deg,var(--panel),var(--noche2));border:1px solid var(--linea);border-radius:var(--radio);padding:16px;margin:12px 0;box-shadow:0 8px 24px rgba(0,0,0,.25)}
.btn{display:block;width:100%;border:0;border-radius:14px;padding:16px 18px;font:700 1.05rem system-ui,sans-serif;color:#1a1200;
  background:linear-gradient(180deg,var(--oro2),var(--oro));cursor:pointer;text-align:center;text-decoration:none;box-shadow:0 4px 0 #b57f12}
.btn:active{transform:translateY(2px);box-shadow:0 2px 0 #b57f12}
.btn[disabled]{opacity:.5;pointer-events:none}
.btn.sec{background:transparent;color:var(--crema);border:2px solid var(--linea);box-shadow:none}
.btn.naranja{background:linear-gradient(180deg,#ff9a62,var(--naranja));color:#2a0d00;box-shadow:0 4px 0 #a8420d}
.btn.mini{display:inline-block;width:auto;padding:8px 14px;font-size:.9rem;border-radius:10px;box-shadow:none}
.btn.mal{background:#5a1f2b;color:#ffd3d3;box-shadow:none}
.fila{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.fila>*{flex:1}
label{display:block;font-weight:600;margin:12px 0 4px;color:var(--crema)}
input,select,textarea{width:100%;padding:14px;border-radius:12px;border:2px solid var(--linea);background:#0e1640;color:var(--texto);font:inherit}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--oro)}
input[type=checkbox],input[type=radio]{width:24px;height:24px;flex:none;accent-color:var(--oro)}
textarea{min-height:110px}
.error{color:var(--mal);font-weight:600;margin:8px 0}
.ok{color:var(--ok);font-weight:600}
.chk{display:flex;gap:12px;align-items:flex-start;margin:10px 0;font-weight:400}

/* encabezado */
.marca{display:flex;align-items:center;gap:12px;margin:4px 0 8px}
.marca img.luna{width:52px;height:52px;filter:drop-shadow(0 0 10px rgba(255,200,90,.7))}
.titulo{display:block;margin:0 auto;width:100%;max-width:440px;mix-blend-mode:screen;-webkit-mask-image:radial-gradient(ellipse 58% 58% at 50% 50%,#000 72%,transparent 100%);mask-image:radial-gradient(ellipse 58% 58% at 50% 50%,#000 72%,transparent 100%)}
.marca b{font-family:Georgia,serif;font-size:1.25rem;color:var(--crema);letter-spacing:.04em}
.pie{margin:26px 0 0;text-align:center;font-size:.85rem;color:var(--suave)}
.pie img{height:48px;border-radius:6px;margin:6px 0}
.hero{text-align:center;padding:10px 0 4px}
.hero .lunaGrande{width:150px;height:150px;border-radius:50%;box-shadow:0 0 60px rgba(255,235,170,.55);animation:flota 6s ease-in-out infinite}
@keyframes flota{50%{transform:translateY(-8px)}}

/* mapa */
.progreso{height:12px;background:#0e1640;border-radius:99px;overflow:hidden;border:1px solid var(--linea)}
.progreso i{display:block;height:100%;background:linear-gradient(90deg,var(--naranja),var(--oro));transition:width .6s}
.tesoro{display:flex;align-items:center;gap:14px}
.cofre{font-size:2.6rem;transition:transform .2s;filter:drop-shadow(0 0 10px rgba(245,184,61,.6))}
.cofre.destello{animation:destello 1.4s}
@keyframes destello{0%{transform:scale(1) rotate(0)}15%{transform:scale(1.45) rotate(-12deg);filter:drop-shadow(0 0 26px #fff)}35%{transform:scale(1.25) rotate(10deg)}60%{transform:scale(1.35) rotate(-6deg)}100%{transform:scale(1) rotate(0)}}
.chispa{position:fixed;font-size:1.4rem;pointer-events:none;z-index:50;animation:sube 1.2s forwards}
@keyframes sube{to{transform:translateY(-120px) scale(.4);opacity:0}}
.rejilla{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
@media(min-width:560px){.rejilla{grid-template-columns:repeat(5,1fr)}}
.tile{text-decoration:none;position:relative;aspect-ratio:1;border-radius:16px;border:2px solid var(--linea);background:var(--gris);color:#fff;display:flex;flex-direction:column;
  align-items:center;justify-content:center;font:700 1.5rem Georgia,serif;cursor:pointer;padding:4px;text-align:center}
.tile small{font:500 .62rem system-ui,sans-serif;color:inherit;opacity:.9;line-height:1.1;margin-top:2px;overflow:hidden;max-height:2.3em}
.tile.pendiente{background:#38426f}
.tile.progreso{background:linear-gradient(160deg,#f5b83d,#d98b13);color:#2a1a00;border-color:#ffd978}
.tile.completo{background:linear-gradient(160deg,#35c46e,#1b8a49);border-color:#7df0ac}
.tile.pausado{opacity:.55}
.tile .estrella{position:absolute;top:-8px;right:-6px;font-size:1.5rem;filter:drop-shadow(0 2px 4px rgba(0,0,0,.6))}
.estrella.verde{filter:hue-rotate(-60deg) drop-shadow(0 2px 4px rgba(0,0,0,.6))}
.leyenda{display:flex;gap:14px;flex-wrap:wrap;font-size:.8rem;color:var(--suave);margin:10px 0}
.leyenda b{display:inline-block;width:12px;height:12px;border-radius:4px;margin-right:5px;vertical-align:-1px}

/* stand */
.foto{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:14px;background:#0e1640;display:flex;align-items:center;justify-content:center;
  font:700 4rem Georgia,serif;color:var(--linea);border:1px solid var(--linea)}
.opcion{display:flex;gap:12px;align-items:center;padding:15px;border:2px solid var(--linea);border-radius:14px;margin:9px 0;background:#0e1640;cursor:pointer;font-weight:600}
.opcion.sel{border-color:var(--oro);background:#2a2a1a}
.volver{display:inline-flex;gap:6px;align-items:center;margin:2px 0 10px;color:var(--oro2);text-decoration:none;font-weight:700}
.interes{display:block;width:100%;text-align:left;padding:16px;border-radius:14px;border:2px solid var(--linea);background:#0e1640;color:var(--texto);margin:9px 0;font:600 1rem system-ui;cursor:pointer}
.interes.sel{border-color:var(--oro);background:#2a2a1a}
.interes small{display:block;font-weight:400;color:var(--suave)}

/* ruleta */
.ruleta{position:relative;width:min(86vw,340px);aspect-ratio:1;margin:12px auto}
.ruleta svg{width:100%;height:100%;transition:transform 5s cubic-bezier(.12,.7,.15,1);filter:drop-shadow(0 8px 20px rgba(0,0,0,.5))}
.ruleta .flecha{position:absolute;left:50%;top:-14px;transform:translateX(-50%);font-size:2rem;z-index:2;filter:drop-shadow(0 2px 3px rgba(0,0,0,.6))}
.vale{border:2px dashed var(--oro);border-radius:16px;padding:16px;text-align:center;background:rgba(245,184,61,.08)}
.vale .codigo{font:700 2.2rem Georgia,serif;letter-spacing:.2em;color:var(--oro2)}
.boletoDorado{border:3px solid var(--oro);border-radius:18px;text-align:center;padding:18px;background:linear-gradient(160deg,#4a3500,#8c6208 55%,#4a3500);box-shadow:0 0 40px rgba(245,184,61,.35)}
.boletoDorado .num{font:700 4.2rem Georgia,serif;color:#fff3c4;letter-spacing:.08em}
.puntos{display:flex;gap:8px;text-align:center;margin:10px 0}
.puntos div{flex:1;background:#0e1640;border:1px solid var(--linea);border-radius:12px;padding:10px}
.puntos b{display:block;font:700 1.9rem Georgia,serif;color:var(--oro2)}

/* modal y toast */
.modal{position:fixed;inset:0;background:rgba(3,6,24,.8);z-index:60;display:flex;align-items:flex-end;justify-content:center;padding:0}
.modal[hidden]{display:none}
.modal>div{background:var(--noche2);border:1px solid var(--linea);border-radius:20px 20px 0 0;width:100%;max-width:640px;max-height:92vh;overflow:auto;padding:18px}
@media(min-width:700px){.modal{align-items:center}.modal>div{border-radius:20px}}
#toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(40px);background:#fff;color:#111;padding:12px 18px;border-radius:12px;z-index:80;opacity:0;transition:.3s;font-weight:600;max-width:90vw}
#toast.ver{opacity:1;transform:translateX(-50%) translateY(0)}

/* paneles (proveedor / admin) */
.tabs{display:flex;gap:6px;overflow-x:auto;margin:10px 0;padding-bottom:4px}
.tabs button{flex:none;padding:10px 14px;border-radius:99px;border:1px solid var(--linea);background:#0e1640;color:var(--texto);font:600 .95rem system-ui;cursor:pointer}
.tabs button.act{background:var(--oro);color:#1a1200;border-color:var(--oro)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}
.kpi{background:#0e1640;border:1px solid var(--linea);border-radius:12px;padding:12px;text-align:center}
.kpi b{display:block;font:700 1.8rem Georgia,serif;color:var(--oro2)}
.kpi span{font-size:.78rem;color:var(--suave)}
.tabla{width:100%;border-collapse:collapse;font-size:.88rem}
.tabla th,.tabla td{padding:8px 6px;border-bottom:1px solid var(--linea);text-align:left;vertical-align:top}
.tabla th{color:var(--suave);font-weight:600;font-size:.76rem;text-transform:uppercase}
.scroll{overflow-x:auto}
.pill{display:inline-block;padding:2px 9px;border-radius:99px;font-size:.78rem;font-weight:700}
.pill.v{background:#14502d;color:#9af3bf}.pill.a{background:#5a4208;color:#ffd978}.pill.r{background:#5a1f2b;color:#ffd3d3}.pill.g{background:#38426f;color:#cfd6ff}
.alerta{background:#3a2a0a;border:1px solid #8c6208;border-radius:12px;padding:10px 12px;margin:8px 0;color:#ffe3a1}
.maestro{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
@media(min-width:700px){.maestro{grid-template-columns:repeat(8,1fr)}}
.maestro .tile{aspect-ratio:1}
.maestro .tile.listo{background:linear-gradient(160deg,#35c46e,#1b8a49);border-color:#7df0ac}
.maestro .tile.vacio{background:#38426f}
.maestro .tile.off{opacity:.45}
.maestro .tile .cam{position:absolute;bottom:4px;right:6px;font-size:.9rem}
.qr{background:#fff;padding:10px;border-radius:12px;display:inline-block}
.qr svg,.qr img{display:block}
.grupo{border-left:3px solid var(--oro);padding-left:10px;margin:14px 0}
@media print{
  body{background:#fff;color:#000}#estrellas,.tabs,.btn,#toast{display:none!important}
  .card{box-shadow:none;border-color:#999;background:#fff}h1,h2,h3{color:#000}
}
