:root{
  --bg:#f5efe2;--surface:#fffdf8;--surface-2:#f8f1df;--primary:#0b6b43;--primary-2:#07452d;
  --accent:#d52b3f;--gold:#f2bb3d;--ink:#24312b;--muted:#6d766f;--line:rgba(36,49,43,.13);
  --shadow:0 18px 55px rgba(62,45,24,.13);--radius:22px;--on-primary:#fff;
}
*{box-sizing:border-box}
html{min-height:100%;background:var(--bg)}
body{margin:0;min-height:100vh;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:radial-gradient(circle at top right,rgba(242,187,61,.18),transparent 30%),var(--bg);color:var(--ink)}
a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}
button,input,select{font:inherit}
.top{background:linear-gradient(135deg,var(--primary-2),var(--primary));color:var(--on-primary);padding:24px max(22px,calc((100vw - 1240px)/2));box-shadow:0 10px 30px rgba(0,0,0,.14);position:relative;overflow:hidden}
.top:after{content:"";position:absolute;right:-70px;top:-95px;width:260px;height:260px;border:26px solid rgba(255,255,255,.08);border-radius:50%}
.top h1{margin:0;font-size:clamp(25px,4vw,40px);line-height:1.05;position:relative;z-index:1}.top small{display:block;margin-top:7px;opacity:.82;position:relative;z-index:1}
.top-flex{display:flex;align-items:center;justify-content:space-between;gap:20px}.top-flex .actions{position:relative;z-index:2}
.wrap{width:min(1240px,calc(100% - 30px));margin:26px auto 50px}.wrap.narrow{max-width:760px}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.compact-grid{gap:12px}
.card,.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.card{padding:24px}.card h2{margin:0 0 18px}.card h3{margin:24px 0 12px}.card p{line-height:1.55}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:11px;font-weight:900;color:var(--muted)}
.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.stat{padding:22px}.stat b{display:block;font-size:36px;color:var(--primary)}.stat span{color:var(--muted);font-weight:700}
label{display:block;font-weight:800;margin:14px 0 7px}input,select{width:100%;border:1px solid var(--line);border-radius:13px;padding:13px 14px;background:#fff;color:#17231d;outline:none;transition:border .2s,box-shadow .2s}input:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(11,107,67,.12)}
.check{display:flex;align-items:center;gap:10px}.check input{width:auto}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:13px;padding:12px 16px;background:var(--gold);color:#332809;font-weight:900;cursor:pointer;box-shadow:0 7px 18px rgba(121,86,13,.14);text-decoration:none;transition:transform .15s,filter .15s}.btn:hover{text-decoration:none;filter:brightness(.98);transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn.secondary{background:rgba(255,255,255,.14);color:inherit;border:1px solid rgba(255,255,255,.25);box-shadow:none}.card .btn.secondary,.tabs .btn.secondary{background:var(--primary);color:#fff;border:0}.btn.success{background:var(--primary);color:#fff}.btn.danger{background:#b32636;color:#fff}.btn.block{width:100%}.mini{border:0;border-radius:9px;padding:7px 9px;font-size:12px;font-weight:900;cursor:pointer;background:#e9eee9;color:#26342d}.mini.win{background:var(--primary);color:#fff}.mini.danger{background:#fde4e7;color:#8c1e2a}
.actions,.link-buttons,.tabs{display:flex;flex-wrap:wrap;gap:10px}.tabs{margin-bottom:20px}.notice{padding:14px 15px;border-radius:13px;background:#e8f1eb;border:1px solid rgba(11,107,67,.17);margin:12px 0}.notice.error{background:#fde8ea;border-color:#efb7bd;color:#8b2632}.notice.success{background:#e2f5e9;color:#175b36}.notice.warning{background:#fff3cd;color:#6b5310}
.room-code{font-size:clamp(58px,10vw,92px);font-weight:1000;line-height:1;color:var(--primary);letter-spacing:.08em;margin:8px 0}.qr{display:block;background:#fff;padding:8px;border-radius:14px;border:1px solid var(--line);max-width:100%;height:auto}.field-help{display:block;color:var(--muted);font-size:12px;margin-top:6px}.save-pending{animation:pulseSave 1.4s infinite}@keyframes pulseSave{50%{box-shadow:0 0 0 7px rgba(242,187,61,.22)}}
.control-grid{display:grid;grid-template-columns:1.05fr .85fr 1.1fr;gap:20px;margin-bottom:20px}.live-card{text-align:center}.current-card-large{width:min(290px,100%);margin:14px auto;aspect-ratio:3/4;border-radius:24px;padding:14px;background:#fff;border:8px solid var(--gold);box-shadow:0 18px 45px rgba(0,0,0,.18);display:flex;flex-direction:column;align-items:center;justify-content:space-between;position:relative;overflow:hidden}.current-card-large:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 20%,var(--card-color,#f2bb3d) 0,transparent 58%);opacity:.18}.current-card-large>*{position:relative}.card-number{align-self:flex-start;font-weight:1000;font-size:22px;color:var(--primary)}.card-icon{font-size:clamp(76px,10vw,124px);filter:drop-shadow(0 8px 8px rgba(0,0,0,.13))}.card-name{font-family:Georgia,serif;font-size:clamp(24px,4vw,38px);font-weight:900;text-align:center}.countdown{font-weight:900;color:var(--accent);min-height:24px}
.deck-board{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:7px}.deck-mini{min-height:76px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line);padding:6px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:.42;transition:.2s}.deck-mini.drawn{opacity:1;background:#fff1b9;border-color:#dba515;transform:translateY(-1px)}.deck-mini.current{outline:4px solid rgba(213,43,63,.25);border-color:var(--accent)}.deck-mini .mini-icon{font-size:24px}.deck-mini b{font-size:10px;line-height:1.1;margin-top:4px}.deck-mini small{font-size:9px;color:var(--muted)}
.leader,.room-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid var(--line)}.leader:last-child,.room-row:last-child{border-bottom:0}.leader>div:first-child{min-width:0;flex:1}.bar{height:8px;background:#e7ece8;border-radius:99px;overflow:hidden;margin:7px 0}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--accent));border-radius:inherit}.badge{display:inline-flex;align-items:center;border-radius:99px;background:var(--accent);color:#fff;padding:3px 8px;font-size:10px;font-weight:1000}.claim-badge{animation:claimPulse 1s infinite}@keyframes claimPulse{50%{transform:scale(1.07)}}.status-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;background:#88938d}.status-dot.playing{background:#19a55b}.status-dot.lobby{background:#f2bb3d}.status-dot.paused{background:#ee8a24}.status-dot.finished{background:#7756d9}.status-dot.archived{background:#6c757d}
.login-card{max-width:520px;margin:auto}.inline-form{display:flex;gap:9px;align-items:center}.inline-form select{min-width:130px;margin:0}.inline-form .btn{flex:0 0 auto}
.hero{padding:48px 0 18px}.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:34px}.hero h2{font-size:clamp(37px,7vw,70px);line-height:.98;margin:0 0 18px;font-family:Georgia,serif}.hero p{font-size:18px;color:var(--muted);max-width:650px}.hero-cards{position:relative;min-height:390px}.hero-card{position:absolute;width:210px;aspect-ratio:3/4;border-radius:24px;background:#fff;border:7px solid var(--gold);box-shadow:0 18px 45px rgba(50,35,14,.2);display:flex;flex-direction:column;align-items:center;justify-content:space-around;padding:15px}.hero-card:nth-child(1){left:8%;top:25px;transform:rotate(-12deg)}.hero-card:nth-child(2){left:36%;top:0;transform:rotate(4deg);z-index:2}.hero-card:nth-child(3){right:3%;top:48px;transform:rotate(13deg)}.hero-card span{font-size:82px}.hero-card b{font-family:Georgia,serif;font-size:25px;text-align:center}
.join-code{font-size:32px;text-align:center;letter-spacing:.28em;font-weight:1000}.join-summary{display:flex;align-items:center;gap:14px;margin-bottom:16px}.join-summary .join-icon{font-size:46px}
.player-page{background:linear-gradient(180deg,var(--primary-2) 0,var(--primary) 210px,var(--bg) 210px)}.player-shell{width:min(760px,calc(100% - 22px));margin:auto;padding:18px 0 45px}.player-head{color:#fff;display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:16px}.player-head h1{margin:0;font-size:26px}.player-head small{opacity:.8}.player-status{text-align:right;font-weight:800}.player-card-panel{background:var(--surface);padding:14px;border-radius:22px;box-shadow:var(--shadow)}.player-current{display:flex;align-items:center;gap:13px;background:var(--surface-2);border-radius:15px;padding:10px 13px;margin-bottom:12px}.player-current .icon{font-size:40px}.player-current b{display:block;font-size:18px}.loteria-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.loteria-cell{aspect-ratio:3/4;border:2px solid rgba(43,51,46,.17);border-radius:13px;background:#fff;position:relative;overflow:hidden;padding:5px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;cursor:pointer;user-select:none;transition:transform .13s,box-shadow .13s,border-color .13s}.loteria-cell:hover{transform:translateY(-2px)}.loteria-cell .num{position:absolute;left:5px;top:3px;font-size:11px;font-weight:1000;color:var(--muted)}.loteria-cell .icon{font-size:clamp(28px,8vw,58px);margin-top:10px}.loteria-cell .name{font-family:Georgia,serif;font-weight:900;font-size:clamp(10px,2.6vw,16px);line-height:1.05;text-align:center;padding:0 2px 4px}.loteria-cell.marked{border-color:var(--accent);box-shadow:inset 0 0 0 4px rgba(213,43,63,.18)}.loteria-cell.marked:after{content:"✓";position:absolute;inset:auto 5px 5px auto;width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#fff;font-weight:1000}.loteria-cell.called{animation:calledCard .75s ease-in-out 4;border-color:var(--gold)}@keyframes calledCard{50%{transform:scale(1.05);box-shadow:0 0 0 7px rgba(242,187,61,.25),0 10px 28px rgba(0,0,0,.16)}}.player-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.claim-btn{grid-column:1/-1;font-size:24px;padding:18px;background:var(--accent);color:#fff}.progress-card{margin-top:12px;padding:15px;background:var(--surface);border-radius:18px;box-shadow:var(--shadow)}
.screen{min-height:100vh;background:linear-gradient(135deg,var(--primary-2),var(--primary));color:#fff;overflow-x:hidden}.screen-wrap{width:min(1500px,calc(100% - 34px));margin:auto;padding:24px 0}.screen-head{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px}.screen-head h1{margin:0;font-size:clamp(28px,4vw,52px)}.screen-code{text-align:right}.screen-code small{display:block;opacity:.76}.screen-code b{font-size:clamp(42px,7vw,78px);letter-spacing:.12em}.screen-grid{display:grid;grid-template-columns:minmax(330px,.85fr) minmax(430px,1.15fr);gap:24px}.screen-current{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);border-radius:28px;padding:22px;text-align:center;backdrop-filter:blur(10px)}.screen .current-card-large{width:min(420px,90%)}.screen .current-card-large .card-icon{font-size:clamp(110px,16vw,190px)}.screen .current-card-large .card-name{font-size:clamp(34px,5vw,58px);color:#24312b}.screen .current-card-large .card-number{font-size:30px}.screen-side{display:grid;gap:18px}.screen-panel{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);border-radius:24px;padding:18px;backdrop-filter:blur(10px)}.screen-panel h2{margin:0 0 13px}.recent-cards{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.recent-card{background:#fff;color:#27322c;border-radius:13px;padding:8px;text-align:center;min-height:104px;display:flex;flex-direction:column;justify-content:center}.recent-card .icon{font-size:31px}.recent-card b{font-size:10px;line-height:1.05}.recent-card small{color:#6d766f}.screen-qr-row{display:flex;align-items:center;gap:17px}.screen-qr-row img{width:135px;height:135px;background:#fff;padding:7px;border-radius:14px}.screen-winner{font-size:clamp(35px,7vw,82px);font-family:Georgia,serif;font-weight:1000;color:#fff2a8;animation:winnerGlow 1s infinite alternate}@keyframes winnerGlow{to{text-shadow:0 0 28px rgba(255,231,120,.8);transform:scale(1.02)}}.screen-footer{text-align:center;font-size:clamp(18px,2.5vw,32px);font-weight:800;margin-top:18px}.voice-enable{position:fixed;right:18px;bottom:18px;z-index:10}
.remote{background:linear-gradient(145deg,var(--primary-2),var(--primary));min-height:100vh;color:#fff}.remote-wrap{max-width:540px;margin:auto;padding:24px;text-align:center}.remote-main{width:100%;padding:29px;border:0;border-radius:20px;background:var(--gold);font-size:28px;font-weight:1000;color:#332809;cursor:pointer}.remote-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.remote-grid button{padding:18px;border:0;border-radius:15px;font-weight:900;font-size:17px;cursor:pointer}.remote .current-card-large{width:210px}
.theme-papel{--bg:#fff7dd;--surface:#fffdf5;--surface-2:#fff0b9;--primary:#b41e4a;--primary-2:#6f1030;--accent:#0a7a55;--gold:#f2bd2e;--ink:#38272d}.theme-noche{--bg:#11151e;--surface:#1d2330;--surface-2:#272f3e;--primary:#7c3aed;--primary-2:#27154e;--accent:#ef476f;--gold:#ffd166;--ink:#f7f2ff;--muted:#b8b2c4;--line:rgba(255,255,255,.12);--shadow:0 18px 55px rgba(0,0,0,.35)}.theme-fiesta{--bg:#fff0f5;--surface:#fff;--surface-2:#ffe2b8;--primary:#e13b6e;--primary-2:#7f1d61;--accent:#0f9f83;--gold:#ffd23f;--ink:#35283d}.theme-clasico{--bg:#edf2f7;--surface:#fff;--surface-2:#e7eef5;--primary:#24577a;--primary-2:#163951;--accent:#c0392b;--gold:#d7ae55;--ink:#26333d}
.theme-noche input,.theme-noche select{background:#fff;color:#17231d}.theme-noche .loteria-cell,.theme-noche .current-card-large,.theme-noche .recent-card{color:#24312b}.theme-noche .notice{color:#24312b}
@media(max-width:1050px){.control-grid{grid-template-columns:1fr 1fr}.control-grid>:last-child{grid-column:1/-1}.deck-board{grid-template-columns:repeat(6,1fr)}.screen-grid{grid-template-columns:1fr}.screen-current{display:flex;align-items:center;gap:18px}.screen .current-card-large{width:300px;flex:0 0 auto}.hero-grid{grid-template-columns:1fr}.hero-cards{min-height:330px}}
@media(max-width:760px){.top-flex,.screen-head{align-items:flex-start}.grid2,.grid3{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,1fr)}.control-grid{grid-template-columns:1fr}.control-grid>:last-child{grid-column:auto}.deck-board{grid-template-columns:repeat(4,1fr)}.leader{align-items:flex-start}.inline-form{flex-direction:column;align-items:stretch}.hero{padding-top:25px}.hero-cards{transform:scale(.8);transform-origin:top center;margin-bottom:-55px}.screen-current{display:block}.screen .current-card-large{width:min(360px,96%)}.recent-cards{grid-template-columns:repeat(4,1fr)}.screen-qr-row{align-items:flex-start}.player-actions{grid-template-columns:1fr}.claim-btn{grid-column:auto}}
@media(max-width:480px){.wrap{width:min(100% - 18px,1240px)}.card{padding:18px}.top{padding:20px 14px}.top-flex{display:block}.top-flex .actions{margin-top:14px}.stats-grid{gap:9px}.stat{padding:16px}.stat b{font-size:28px}.loteria-board{gap:4px}.loteria-cell{border-radius:9px;padding:3px}.loteria-cell .icon{font-size:32px}.loteria-cell .name{font-size:10px}.recent-cards{grid-template-columns:repeat(3,1fr)}.screen-wrap{width:calc(100% - 18px)}.screen-qr-row{display:block}.screen-qr-row img{margin-bottom:10px}.remote-grid{grid-template-columns:1fr}}
