:root{--bg:#17100d;--bg-2:#241812;--line:#3a2820;--gold:#f2b705;--teal:#0fa3a3;--coral:#e4572e;--fucsia:#d6336c;--cream:#f5efe6;--muted:#9c8b7c}*{margin:0;padding:0;box-sizing:border-box}body,html{background:radial-gradient(1100px 420px at 50% -150px,rgba(242,183,5,.11),transparent 70%),radial-gradient(760px 340px at 50% -40px,rgba(214,51,108,.09),transparent 70%),var(--bg);background-attachment:fixed;color:var(--cream);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;min-height:100%}button{font:inherit;cursor:pointer}.wrap{max-width:460px;margin:0 auto;padding:28px 16px 40px}.brand{text-align:center;margin-bottom:18px}.brand h1{font-size:44px;letter-spacing:4px;color:var(--gold);text-shadow:0 0 24px rgba(242,183,5,.25)}.brand .flag{text-shadow:none}.tagline{color:var(--muted);margin-top:2px;font-size:14px}.tabs{display:flex;justify-content:center;gap:8px;margin-top:14px}.tab{background:transparent;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:7px 16px;font-size:13px;transition:all .15s;display:inline-flex;align-items:center;text-decoration:none}.tab.on{background:var(--gold);border-color:var(--gold);color:var(--bg);font-weight:700}.daymeta{color:var(--muted);font-size:13px;margin-top:10px}.daymeta a{color:var(--teal);text-decoration:none}.daymeta a:hover{text-decoration:underline}.brand:after{content:"";display:block;height:5px;margin-top:18px;border-radius:999px;background:repeating-linear-gradient(90deg,var(--gold) 0 15px,var(--coral) 15px 26px,var(--fucsia) 26px 33px,var(--teal) 33px 48px,var(--coral) 48px 54px);opacity:.9}.banner{background:rgba(228,87,46,.12);border:1px solid var(--coral);color:var(--coral);border-radius:10px;padding:12px 14px;font-size:14px;margin-bottom:14px}.loading{text-align:center;color:var(--muted);padding:60px 0}.eq{display:flex;align-items:flex-end;justify-content:center;gap:4px;height:54px;margin:10px 0 16px}.eq span{width:7px;height:100%;border-radius:3px;transform-origin:bottom;animation:pulse .85s ease-in-out infinite alternate;animation-play-state:paused;opacity:.75}.eq span:nth-child(4n+1){background:linear-gradient(to top,rgba(242,183,5,.35),var(--gold))}.eq span:nth-child(4n+2){background:linear-gradient(to top,rgba(228,87,46,.35),var(--coral))}.eq span:nth-child(4n+3){background:linear-gradient(to top,rgba(214,51,108,.35),var(--fucsia))}.eq span:nth-child(4n+4){background:linear-gradient(to top,rgba(15,163,163,.35),var(--teal))}.eq span:nth-child(7n+1){transform:scaleY(.28)}.eq span:nth-child(7n+2){transform:scaleY(.5)}.eq span:nth-child(7n+3){transform:scaleY(.78)}.eq span:nth-child(7n+4){transform:scaleY(.42)}.eq span:nth-child(7n+5){transform:scaleY(.64)}.eq span:nth-child(7n+6){transform:scaleY(.34)}.eq span:nth-child(7n+7){transform:scaleY(.56)}.eq.playing span{animation-play-state:running;opacity:1}@keyframes pulse{0%{transform:scaleY(.15)}to{transform:scaleY(1)}}.progress{position:relative;height:12px;background:var(--line);border-radius:999px;overflow:hidden;margin-bottom:14px}.progress .region{background:rgba(15,163,163,.28)}.progress .fill,.progress .region{position:absolute;inset:0 auto 0 0}.progress .fill{background:var(--gold);border-radius:999px;transition:width .08s linear}.progress .mark{position:absolute;top:0;bottom:0;width:2px;background:rgba(245,239,230,.35)}.controls{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:20px}.play{width:64px;height:64px;border-radius:50%;border:2px solid var(--gold);background:radial-gradient(circle at 50% 50%,rgba(242,183,5,.14),transparent 70%);box-shadow:0 0 26px rgba(242,183,5,.14);color:var(--gold);font-size:22px;transition:all .15s}.play:hover{background:var(--gold);color:var(--bg)}.window{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--muted);font-size:14px;min-width:80px}.hints,.rows{margin-bottom:14px}.hints{display:flex;flex-wrap:wrap;gap:8px;list-style:none}.hints li{display:flex;align-items:baseline;gap:6px;border:1px solid var(--line);border-radius:999px;padding:5px 12px;background:var(--bg-2);max-width:100%;min-width:0}.hints .hk{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);white-space:nowrap}.hints .hv{font-size:13px;color:var(--gold);overflow-wrap:anywhere}.row{display:flex;align-items:center;gap:10px;height:44px;background:var(--bg-2);border:1px solid var(--line);border-radius:10px;padding:0 14px;margin-bottom:8px;font-size:14px}.row,.row .n{color:var(--muted)}.row .n{font-size:12px;flex:0 0 14px;text-align:center}.row.active{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold);color:var(--cream)}.row.wrong{border-color:rgba(228,87,46,.6);color:var(--coral)}.row.skip{color:var(--muted);font-style:italic}.row.correct{border-color:var(--teal);color:var(--teal);font-weight:700}.guessbox{position:relative;margin-bottom:10px}.guessbox input{width:100%;background:var(--bg-2);border:1px solid var(--line);border-radius:10px;color:var(--cream);padding:13px 14px;font-size:15px;outline:none}.guessbox input:focus{border-color:var(--teal)}.drop{position:absolute;z-index:10;left:0;right:0;top:calc(100% + 6px);list-style:none;background:var(--bg-2);border:1px solid var(--line);border-radius:10px;overflow:hidden;max-height:280px;overflow-y:auto}.drop button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-align:left;background:none;border:0;color:var(--cream);padding:10px 14px}.drop button:hover{background:var(--line)}.drop strong{font-size:14px}.drop em{font-style:normal;font-size:12px;color:var(--muted)}button.skip{display:block;width:100%;background:transparent;border:1px dashed var(--line);color:var(--muted);border-radius:10px;padding:11px;font-size:14px;transition:all .15s}button.skip:hover{border-color:var(--coral);color:var(--coral)}.result{text-align:center;background:var(--bg-2);border:1px solid var(--line);border-radius:16px;padding:22px 18px}.result img{width:168px;height:168px;object-fit:cover;border-radius:12px;margin-bottom:12px;border:1px solid var(--line)}.result h2{font-size:22px}.result .artist{color:var(--teal);font-weight:600;margin-top:2px}.result .verdict{color:var(--muted);font-size:14px;margin-top:10px}.squares{display:inline-flex;gap:5px;margin-top:12px}.sq{width:16px;height:16px;border-radius:4px;background:var(--line)}.sq.ok{background:var(--teal)}.sq.bad{background:var(--coral)}.sq.skip{background:var(--muted)}.actions{display:flex;justify-content:center;gap:10px;margin-top:16px;flex-wrap:wrap}.primary{background:var(--gold);color:var(--bg);border:0;border-radius:999px;padding:11px 20px;font-weight:700}.primary:disabled{opacity:.45;cursor:default}.ghost{background:transparent;color:var(--cream);border:1px solid var(--line);border-radius:999px;padding:11px 20px;text-decoration:none;font-size:14px;display:inline-flex;align-items:center}.ghost:hover:not(:disabled){border-color:var(--teal);color:var(--teal)}.panel>.primary{margin-top:12px}.foot{text-align:center;color:var(--muted);font-size:12px;margin-top:26px}.admin.wide{max-width:640px}.panel{background:var(--bg-2);border:1px solid var(--line);border-radius:16px;padding:18px;margin-bottom:16px}.panel h2{font-size:16px;color:var(--gold);margin-bottom:12px}.panel .grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}@media (max-width:480px){.panel .grid{grid-template-columns:1fr}}.field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.field.wide{grid-column:1/-1}.field input{background:var(--bg);border:1px solid var(--line);border-radius:8px;color:var(--cream);padding:10px 12px;font-size:14px;outline:none}.field input:focus{border-color:var(--teal)}.options{display:flex;gap:18px;flex-wrap:wrap;margin:12px 0;font-size:13px;color:var(--muted)}.options label{display:flex;align-items:center;gap:6px;cursor:pointer}.options input{accent-color:var(--gold)}.panel .actions{justify-content:flex-start;margin-top:4px}.banner.ok{background:rgba(15,163,163,.12);border-color:var(--teal);color:var(--teal)}.songlist{list-style:none}.songrow{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.songrow:last-child{border-bottom:0}.songrow.off .songinfo{opacity:.45}.songinfo{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:2px}.songinfo strong{font-size:14px}.songinfo em{font-style:normal;font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badges{display:flex;gap:5px;flex-wrap:wrap}.badge{font-size:11px;border-radius:999px;padding:2px 9px;border:1px solid}.badge.nopreview{color:var(--coral);border-color:var(--coral)}.badge.review{color:var(--gold);border-color:var(--gold)}.badge.inactive{color:var(--muted);border-color:var(--muted)}.rowactions{display:flex;gap:5px}.mini{width:32px;height:32px;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--cream);font-size:13px}.mini:hover:not(:disabled){border-color:var(--gold);color:var(--gold)}.mini:disabled{opacity:.35;cursor:default}.mini.ok:hover:not(:disabled){border-color:var(--teal);color:var(--teal)}.badge.dup{color:var(--fucsia);border-color:var(--fucsia)}.dupgroup ul,.duplist{list-style:none}.dupgroup{border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-top:12px}.dupgroup>ul{margin-top:8px}.dupgroup li{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:13px}.dupgroup li.keep .who{color:var(--cream);font-weight:600}.dupgroup .who{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dupgroup .meta{font-size:11px;color:var(--muted);white-space:nowrap}.songrow.editing{display:block;padding:14px 0}.songedit .grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}@media (max-width:480px){.songedit .grid{grid-template-columns:1fr}}.bulkbox{background:var(--bg);border:1px solid var(--line);border-radius:8px;color:var(--cream);padding:10px 12px;font-size:13px;font-family:ui-monospace,Cascadia Code,Menlo,monospace;line-height:1.5;outline:none;resize:vertical}.bulkbox:focus{border-color:var(--teal)}.bulksum{font-size:13px;color:var(--cream);margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.bulklist{list-style:none;margin-top:8px;max-height:340px;overflow-y:auto}.bulklist li{display:flex;align-items:baseline;gap:8px;padding:5px 0;font-size:13px;border-bottom:1px solid var(--line)}.bulklist li:last-child{border-bottom:none}.bulklist .badge{flex:0 0 auto}.bulklist .who{flex:1 1;min-width:0}.bulklist .meta,.bulklist .who{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bulklist .meta{font-size:11px;color:var(--muted);max-width:45%}.bulklist li.nueva .who{color:var(--cream)}.bulklist li:not(.nueva) .who{color:var(--muted)}.badge.ok{border-color:var(--teal)}.badge.ok,.linky{color:var(--teal)}.linky{background:none;border:none;padding:0;font:inherit;text-decoration:underline}.linky:hover:not(:disabled){color:var(--gold)}.wrap.room{max-width:880px}.roomgrid{display:grid;grid-template-columns:1fr 250px;grid-gap:18px;gap:18px;align-items:start}@media (max-width:760px){.roomgrid{grid-template-columns:1fr}.roomgrid .board{order:-1}}.board ol{list-style:none}.board li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px}.board li:last-child{border-bottom:none}.board .who{display:flex;align-items:center;gap:7px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board .who:before{content:"";flex:0 0 8px;height:8px;border-radius:3px;background:var(--muted)}.board .s1 .who:before{background:var(--gold)}.board .s2 .who:before{background:var(--teal)}.board .s3 .who:before{background:var(--coral)}.board .s4 .who:before{background:var(--fucsia)}.board .who{flex:1 1}.board .mark{flex:0 0 46px;text-align:right;font-size:11px;color:var(--muted)}.board .pts{flex:0 0 44px;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700;color:var(--gold)}.board .me .who{font-weight:700;color:var(--cream)}.board .off{opacity:.45}.board .hit .mark{color:var(--teal);font-size:14px}.board .out .mark{color:var(--coral)}.board .empty{opacity:.3;font-style:italic}.tag{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:400}.roomcode{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}.roomcode .lbl{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.roomcode strong{font-size:30px;letter-spacing:.22em;color:var(--gold);line-height:1}.roomcode .copy{margin-left:auto;background:transparent;border:1px solid var(--line);border-radius:999px;color:var(--muted);padding:6px 13px;font-size:12px;transition:all .15s}.roomcode .copy:hover{border-color:var(--teal);color:var(--teal)}.roundbar{position:relative;height:8px;background:var(--line);border-radius:999px;overflow:hidden;margin-bottom:8px}.roundbar .fill{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,var(--teal),var(--gold));transition:width .12s linear}.roundbar .mark{position:absolute;top:0;bottom:0;width:2px;background:rgba(23,16,13,.55)}.roundmeta{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--muted);margin-bottom:14px}.roundmeta .worth{color:var(--gold);font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.countdown{text-align:center;padding:44px 0;color:var(--muted)}.countdown .big{display:block;font-size:76px;font-weight:800;line-height:1;color:var(--gold);margin-bottom:10px}.lock{position:relative;overflow:hidden;border:1px dashed var(--coral);border-radius:10px;padding:12px 14px;text-align:center;background:rgba(228,87,46,.08)}.lock .miss{display:block;font-size:13px;color:var(--coral);text-decoration:line-through;margin-bottom:3px}.lock .wait{font-size:13px;color:var(--muted)}.lock .drain{position:absolute;left:0;bottom:0;height:3px;background:var(--coral);transition:width .12s linear}.tries{text-align:center;font-size:11px}.giveup,.tries{color:var(--muted);margin-top:10px}.giveup{display:block;width:100%;background:transparent;border:1px dashed var(--line);border-radius:10px;padding:10px;font-size:13px;transition:all .15s}.giveup:hover:not(:disabled){border-color:var(--coral);color:var(--coral)}.done{text-align:center;border:1px solid var(--teal);background:rgba(15,163,163,.1);border-radius:12px;padding:16px 14px}.done strong{display:block;color:var(--teal);font-size:15px}.done .score{display:block;font-size:32px;font-weight:800;color:var(--gold);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.15}.done .detail{display:block;font-size:12px;color:var(--muted)}.done.out{border-color:var(--line);background:var(--bg-2)}.done.out strong{color:var(--muted)}.roundtable{list-style:none;margin:14px 0 4px;text-align:left}.roundtable li{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}.roundtable li:last-child{border-bottom:none}.roundtable .who{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roundtable .star{color:var(--gold);margin-left:5px}.roundtable .when{font-size:12px;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.roundtable .pts{flex:0 0 52px;text-align:right;font-weight:700;color:var(--gold);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.roundtable .first .who{font-weight:700;color:var(--cream)}.roundtable .nope{opacity:.5}.roundtable .nope .pts{color:var(--muted)}.roundmeta .worth em{font-style:normal;font-weight:400;color:var(--teal)}.podium ol{list-style:none}.podium li{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}.podium li:last-child{border-bottom:none}.podium .rank{flex:0 0 24px;text-align:center;font-weight:800;color:var(--muted)}.podium .win .rank,.podium .win .who{color:var(--gold)}.podium .who{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.podium .rounds{font-size:12px;color:var(--muted)}.podium .pts{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700;color:var(--gold);min-width:46px;text-align:right}.hintline{font-size:12px;color:var(--muted);margin-top:8px}.codeinput{text-transform:uppercase;letter-spacing:.3em;text-align:center;font-size:20px!important}.field select{background:var(--bg);border:1px solid var(--line);border-radius:8px;color:var(--cream);padding:10px 12px;font-size:14px;outline:none}.field select:focus{border-color:var(--teal)}.panel>.ghost{margin-top:12px}button.tapaudio{display:block;width:100%;text-align:center;color:var(--gold);border-color:var(--gold)}.foot .leave{background:none;border:none;color:var(--muted);font-size:12px;text-decoration:underline}.foot .leave:hover{color:var(--coral)}