:root{--blue:#0a3f8c;--blue2:#072b61;--red:#d61f2c;--gold:#d8a542;--light:#f5f7fb;--ink:#172033;--muted:#6b7280;--green:#1c9b55;--yellow:#f3c623;--gray:#e5e7eb;--radius:18px;--shadow:0 18px 50px rgba(7,43,97,.16)}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:#fff;color:var(--ink);line-height:1.6}a{text-decoration:none;color:inherit}.container{width:min(1180px,92vw);margin:auto}.topbar{background:var(--blue2);color:white;font-size:14px}.topbar .container{display:flex;gap:24px;justify-content:flex-end;padding:7px 0}.nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-bottom:1px solid #e8edf7}.nav .container{display:flex;align-items:center;justify-content:space-between;padding:12px 0}.brand{display:flex;align-items:center;gap:12px;font-weight:900;color:var(--blue2);letter-spacing:.2px}.brand img{width:52px;height:52px;object-fit:contain}.brand small{display:block;color:var(--red);font-size:12px;font-weight:700}.menu{display:flex;gap:18px;align-items:center;font-weight:700;font-size:14px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:11px 17px;border-radius:999px;background:var(--blue);color:white;font-weight:800;border:0;cursor:pointer}.btn.red{background:var(--red)}.btn.ghost{background:white;color:var(--blue);border:1px solid #dbe5f5}.hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#072b61 0%,#0a3f8c 52%,#d61f2c 100%);color:white}.hero:before{content:"";position:absolute;inset:0;background:url('../img/logo.png') center/580px no-repeat;opacity:.07}.hero .container{position:relative;padding:80px 0;display:grid;grid-template-columns:1.08fr .92fr;gap:40px;align-items:center}.badge{display:inline-block;padding:7px 13px;border:1px solid rgba(255,255,255,.4);border-radius:999px;background:rgba(255,255,255,.12);font-weight:800}.hero h1{font-size:clamp(34px,5vw,64px);line-height:1.03;margin:18px 0}.hero p{font-size:19px;max-width:660px;color:#edf4ff}.hero-card{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);border-radius:30px;padding:26px;box-shadow:var(--shadow)}.hero-card img{width:100%;border-radius:24px;background:white;padding:25px}.section{padding:72px 0}.section.light{background:var(--light)}.title{max-width:780px;margin:0 auto 36px;text-align:center}.title h2{font-size:clamp(28px,3.5vw,44px);margin:0 0 10px;color:var(--blue2)}.title p{color:var(--muted);font-size:18px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.card{background:white;border:1px solid #e7edf6;border-radius:var(--radius);padding:24px;box-shadow:0 10px 30px rgba(10,63,140,.06)}.card h3{margin-top:0;color:var(--blue2)}.icon{width:46px;height:46px;border-radius:14px;background:linear-gradient(135deg,var(--blue),var(--red));display:grid;place-items:center;color:white;font-weight:900;margin-bottom:13px}.cta{background:#0b2859;color:white;border-radius:28px;padding:42px;display:flex;justify-content:space-between;gap:24px;align-items:center}.footer{background:#061b3c;color:#dbe8ff;padding:45px 0 20px}.footer .cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:26px}.footer img{width:70px}.copyright{margin-top:30px;padding-top:18px;border-top:1px solid rgba(255,255,255,.12);color:#a9b8d7;font-size:13px}.raffle-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.num{border:1px solid #dce4ef;border-radius:8px;padding:8px;text-align:center;font-weight:800;background:white}.num.free{background:#e9f9ef;color:#117343}.num.reserved{background:#fff7cf;color:#856600}.num.paid{background:#ffe0e3;color:#9c111b}.admin-layout{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{background:#071f48;color:white;padding:22px;position:sticky;top:0;height:100vh}.sidebar .brand{color:white;margin-bottom:30px}.sidebar a{display:block;padding:11px 13px;border-radius:12px;color:#e7efff;margin-bottom:4px;font-weight:700}.sidebar a:hover,.sidebar a.active{background:rgba(255,255,255,.12)}.admin-main{background:#f4f7fb;padding:26px}.admin-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.table{width:100%;border-collapse:collapse;background:white;border-radius:16px;overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.04)}.table th,.table td{padding:12px 14px;border-bottom:1px solid #edf1f7;text-align:left}.table th{background:#eef4ff;color:#0b3678}.form{background:white;border-radius:18px;padding:24px;box-shadow:0 8px 24px rgba(0,0,0,.05)}label{font-weight:800;display:block;margin-top:13px}input,select,textarea{width:100%;padding:12px;border:1px solid #dbe4f1;border-radius:12px;margin-top:6px;font:inherit}textarea{min-height:120px}.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#071f48,#0a3f8c,#d61f2c)}.login-card{width:min(430px,92vw);background:white;border-radius:28px;padding:32px;box-shadow:var(--shadow);text-align:center}.login-card img{width:90px}.alert{padding:12px 14px;border-radius:12px;margin:12px 0;background:#fff4d6;color:#765300}.ok{background:#e8fff1;color:#146a3e}.certificate{width:1100px;height:850px;background:white;border:18px solid var(--blue);padding:55px;text-align:center;position:relative;margin:auto}.certificate:before{content:"";position:absolute;inset:0;background:url('../img/logo.png') center/520px no-repeat;opacity:.055}.certificate>*{position:relative}.certificate h1{font-size:48px;color:var(--blue2);margin:10px}.certificate .name{font-size:42px;color:var(--red);font-weight:900;margin:30px}.credential-preview{width:856px;height:540px;border-radius:24px;background:white;box-shadow:var(--shadow);padding:28px;border-top:80px solid var(--blue);position:relative}.photo-box{width:180px;height:230px;background:#eef2f7;border:2px dashed #9aa9bf;border-radius:12px;display:grid;place-items:center;color:#6b7280;font-weight:800}.status{display:inline-block;padding:4px 9px;border-radius:999px;font-size:12px;font-weight:900}.status.activo{background:#e9f9ef;color:#117343}.status.suspendido{background:#fff7cf;color:#856600}.status.revocado{background:#ffe0e3;color:#9c111b}.status.vencido{background:#e5e7eb;color:#374151}@media(max-width:850px){.hero .container,.grid,.footer .cols{grid-template-columns:1fr}.menu{display:none}.admin-layout{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.cta{display:block}}
.num{min-height:50px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.num input{display:none}.num .num-code{font-size:14px}.num small{display:block;font-size:10px;line-height:1.05;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.raffle-card{overflow:hidden}.raffle-card .btn{margin-top:8px}
/* Fix V1.1: seleccion visible de boletos */
.raffle-grid .num.free{cursor:pointer;user-select:none;transition:.12s ease;}
.raffle-grid .num.free:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(17,115,67,.16);}
.raffle-grid .num.free.selected{background:#0a3f8c;color:#fff;border-color:#0a3f8c;box-shadow:0 0 0 3px rgba(10,63,140,.18);}
.raffle-grid .num input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px;}
/* MAV V1.2 - Seleccion publica de boletos */
.raffle-grid .num{appearance:none;border:1px solid #dce4ef;border-radius:10px;padding:10px;text-align:center;font-weight:900;background:white;min-height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-family:inherit;cursor:default;}
.raffle-grid .num.free{cursor:pointer;user-select:none;transition:.12s ease;background:#e9f9ef;color:#117343;}
.raffle-grid .num.free:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(17,115,67,.16);}
.raffle-grid .num.free.selected{background:#0a3f8c!important;color:#fff!important;border-color:#0a3f8c!important;box-shadow:0 0 0 3px rgba(10,63,140,.18);}
.raffle-grid .num.reserved{background:#fff7cf;color:#856600;}
.raffle-grid .num.paid{background:#ffe0e3;color:#9c111b;}
.raffle-grid .num:disabled{opacity:1;}

/* MAV V1 Final - navegación móvil y rifas cómodas */
.menu-toggle{display:none;width:46px;height:42px;border:1px solid #dbe4f1;border-radius:12px;background:#fff;align-items:center;justify-content:center;flex-direction:column;gap:5px;cursor:pointer}.menu-toggle span{display:block;width:22px;height:3px;background:var(--blue2);border-radius:999px}.menu-toggle.open span:nth-child(1){transform:translateY(8px) rotate(45deg)}.menu-toggle.open span:nth-child(2){opacity:0}.menu-toggle.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
.raffle-page-layout{display:grid;grid-template-columns:minmax(280px,.85fr) 1.45fr;gap:22px;align-items:start}.raffle-side img{width:100%;border-radius:16px}.raffle-main .raffle-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(74px,1fr));gap:10px;align-items:stretch;max-height:560px;overflow:auto;padding:4px}.raffle-main .num{appearance:none;border:1px solid #dce4ef;border-radius:14px;padding:10px 6px;text-align:center;font-weight:900;background:white;min-height:64px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-family:inherit;cursor:default}.raffle-main .num-code{font-size:20px;letter-spacing:.5px}.raffle-main .num.free{cursor:pointer;user-select:none;transition:.12s ease;background:#e9f9ef;color:#117343}.raffle-main .num.free:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(17,115,67,.16)}.raffle-main .num.free.selected{background:#0a3f8c!important;color:#fff!important;border-color:#0a3f8c!important;box-shadow:0 0 0 3px rgba(10,63,140,.18)}.raffle-main .num.reserved{background:#fff7cf;color:#856600}.raffle-main .num.paid{background:#ffe0e3;color:#9c111b}.raffle-main .num:disabled{opacity:1}.raffle-main .num small{font-size:10px;max-width:68px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.raffle-actions{background:#fff;border:1px solid #e7edf6;border-radius:16px;padding:14px;margin-top:14px;box-shadow:0 8px 25px rgba(10,63,140,.08)}.selected-list{font-weight:900;color:#0a3f8c;word-break:break-word}.promo-note{background:#eef4ff;color:#0b3678;padding:10px 12px;border-radius:12px;margin:10px 0;font-weight:800}.btn[disabled]{opacity:.45;cursor:not-allowed}.legend{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.buyer-form{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;align-items:end}.buyer-form label{margin-top:0}.selection-summary{display:flex;gap:14px;flex-wrap:wrap;align-items:center;justify-content:space-between}.selection-summary p{margin:0}
@media(max-width:850px){.topbar .container{justify-content:center;flex-wrap:wrap;gap:10px}.nav .container.nav-inner{position:relative}.menu-toggle{display:flex}.menu{display:none;position:absolute;top:76px;left:0;right:0;background:#fff;border:1px solid #e8edf7;border-radius:18px;box-shadow:var(--shadow);padding:12px;flex-direction:column;align-items:stretch;gap:4px;z-index:100}.menu.open{display:flex}.menu a{padding:12px 14px;border-radius:12px}.menu .btn{width:100%;justify-content:center}.brand img{width:44px;height:44px}.brand span{font-size:15px}.brand small{font-size:11px}.raffle-page-layout{display:flex;flex-direction:column}.raffle-side{order:1}.raffle-main{order:2}.raffle-main .raffle-grid{grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:10px;max-height:none;overflow:visible}.raffle-main .num{min-height:68px}.raffle-main .num-code{font-size:22px}.buyer-form{grid-template-columns:1fr}.selection-summary{display:block}.raffle-actions{position:relative;bottom:auto;margin-top:16px}.section{padding:38px 0}}
@media(max-width:420px){.raffle-main .raffle-grid{grid-template-columns:repeat(3,1fr)}.container{width:min(96vw,1180px)}.card{padding:16px}.topbar{font-size:12px}.raffle-main .num{min-height:64px}}
