:root{--rojo:#c0222a;--rojo-hi:#e0434b;--negro:#000;--panel:#0e0e0e;--linea:#2a2a2a;--hueso:#f8f8f8;--gris:#9a9a9a}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--negro);color:var(--hueso);font:400 1rem/1.6 'Open Sans',system-ui,sans-serif}
h1,h2,h3,.btn{font-family:'Montserrat','Open Sans',sans-serif}
a{color:inherit}img{max-width:100%;height:auto}
.hero{position:relative;min-height:100svh;display:grid;place-items:center;text-align:center;overflow:hidden;padding:2rem 1rem}
.hero .glow{position:absolute;inset:-20%;background:radial-gradient(closest-side,rgba(192,34,42,.35),transparent 70%);will-change:transform}
.hero img{position:relative;width:min(70vw,420px);border-radius:50%}
.hero p{position:relative;max-width:34ch;margin:1.5rem auto;color:var(--gris);font-size:1.1rem}
.drop{position:absolute;left:50%;top:78%;width:26px;margin-left:-13px;will-change:transform;z-index:3;pointer-events:none}
section.wrap{max-width:960px;margin:0 auto;padding:5rem 1.25rem}
h2{font-size:clamp(1.6rem,4vw,2.4rem);font-weight:600;letter-spacing:.02em;margin:0 0 1.5rem}
.promos{display:grid;gap:1px;background:var(--linea);border:1px solid var(--linea)}
.promos article{background:var(--panel);padding:1.5rem}.promos h3{margin:0 0 .5rem;color:var(--rojo-hi);font-weight:600}.promos p{margin:0;color:var(--gris)}
@media(min-width:760px){.promos{grid-template-columns:repeat(3,1fr)}}
form.card,.card{background:var(--panel);border:1px solid var(--linea);padding:1.5rem;display:grid;gap:1rem}
label{display:grid;gap:.35rem;font-size:.9rem;color:var(--gris)}
input,select,textarea{background:#000;color:var(--hueso);border:1px solid var(--linea);padding:.75rem;font:inherit;border-radius:2px;width:100%}
input:focus-visible,select:focus-visible,textarea:focus-visible,.btn:focus-visible,.slot input:focus-visible+span{outline:2px solid var(--rojo-hi);outline-offset:2px}
input[readonly]{opacity:.6}
.grid2{display:grid;gap:1rem}@media(min-width:640px){.grid2{grid-template-columns:1fr 1fr}}
.slots{display:flex;flex-wrap:wrap;gap:.5rem}.slot input{position:absolute;opacity:0}
.slot span{display:block;padding:.55rem .9rem;border:1px solid var(--linea);cursor:pointer}
.slot input:checked+span{background:var(--rojo);border-color:var(--rojo);color:#fff}
.slot input:disabled+span{opacity:.3;text-decoration:line-through;cursor:not-allowed}
.btn{background:var(--rojo);color:#fff;border:0;padding:.9rem 1.4rem;font-weight:600;cursor:pointer;border-radius:2px}
.btn:hover{background:var(--rojo-hi)}.btn.ghost{background:none;border:1px solid var(--linea)}.btn.sm{padding:.45rem .7rem;font-size:.8rem}
.chk{display:flex;gap:.6rem;align-items:flex-start}.chk input{width:auto;margin-top:.3rem}
.msg{padding:1rem;border:1px solid var(--linea)}.msg.ok{border-color:var(--rojo)}.err{color:var(--rojo-hi)}
.code{font:700 1.6rem 'Montserrat',sans-serif;color:var(--rojo-hi);letter-spacing:.08em}
footer{padding:3rem 1rem;text-align:center;color:var(--gris);border-top:1px solid var(--linea)}
body.login{display:grid;place-items:center;min-height:100svh;padding:1rem}.login .card{width:min(360px,100%);justify-items:center}.login label,.login input{width:100%}
.admin header{display:flex;gap:.8rem;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid var(--linea)}.admin h1{font-size:1.1rem;margin:0}
.admin main{padding:1.25rem;max-width:1100px;margin:auto}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--linea);border:1px solid var(--linea);margin-bottom:2rem}
.kpis div{background:var(--panel);padding:1.2rem}.kpis b{display:block;font:600 1.6rem 'Montserrat',sans-serif}.kpis span{color:var(--gris);font-size:.85rem}
.scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:720px}th,td{text-align:left;padding:.7rem;border-bottom:1px solid var(--linea);vertical-align:top}th{color:var(--gris);font-weight:400}
form.inline{display:flex;gap:.4rem;flex-wrap:wrap;background:none;border:0;padding:0}form.inline input{width:110px;padding:.45rem}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
