:root{--bg: #1a0b2e;--gold: #ffc94d;--saffron: #ff7a1a;--pink: #e83f8c;--ink: #fff7e8;--muted: #c9b8e6;--card: rgba(255, 255, 255, .08)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;min-height:100%;color:var(--ink);font-family:"Baloo 2",system-ui,sans-serif;background:radial-gradient(ellipse at 50% 0%,#4a1a7a,#2d1050 40%,var(--bg) 85%) fixed;background-color:var(--bg)}body{display:flex;flex-direction:column;min-height:100dvh;padding:env(safe-area-inset-top) 16px env(safe-area-inset-bottom)}button{font:inherit;color:inherit;border:0;cursor:pointer}h1{color:var(--gold);margin:8px 0;font-size:30px;line-height:1.15}h2{font-size:22px;line-height:1.25;margin:8px 0 14px}#bar{display:flex;align-items:center;gap:10px;padding:10px 0;font-weight:700}#bar:empty{display:none}#bar span:first-child{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#bar .ok{color:var(--gold);letter-spacing:2px}#bar .warn{color:#ffb4a8;font-size:14px}#bar button{background:var(--card);padding:4px 12px;border-radius:14px;font-size:14px}main{flex:1;display:flex;flex-direction:column}#actions{display:flex;gap:8px;padding:10px 0}#actions:empty{display:none}#actions button{flex:1;padding:10px;border-radius:14px;background:var(--card);border:1px solid #fff3;font-weight:700}#toast{position:fixed;left:16px;right:16px;bottom:24px;padding:14px 18px;border-radius:16px;background:#0d0518f2;border:2px solid var(--gold);font-weight:700;text-align:center;transform:translateY(200%);transition:transform .3s;z-index:9}#toast.show{transform:none}.join{display:flex;flex-direction:column;gap:14px;padding-top:24px}.logo{font-size:36px;font-weight:800;color:var(--gold);text-align:center}.logo i{color:var(--pink);font-style:normal}.msg{background:#ff4d4d33;border-radius:12px;padding:10px;margin:0}.join label{display:flex;flex-direction:column;font-weight:700;color:var(--muted)}.join input{margin-top:4px;font:700 24px "Baloo 2",sans-serif;padding:10px 14px;border-radius:14px;border:2px solid #fff3;background:#0004;color:var(--ink)}.join input[name=code]{text-transform:uppercase;letter-spacing:8px;text-align:center;font-size:34px}.avatars{display:grid;grid-template-columns:repeat(8,1fr);gap:6px}.avatars button{font-size:26px;aspect-ratio:1;border-radius:12px;background:var(--card)}.avatars button.on{background:var(--gold)}.go{padding:14px;font-size:24px;font-weight:800;border-radius:18px;background:linear-gradient(90deg,var(--saffron),var(--pink))}.wait{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px}.wait .emoji{font-size:90px}.wait p{color:var(--muted);font-size:20px;margin:4px 0}.choice{padding-top:8px}.opts{display:grid;gap:10px}.opts button{min-height:64px;padding:12px 16px;border-radius:18px;background:var(--card);border:2px solid #fff2;font-size:20px;font-weight:700;text-align:left;display:flex;flex-direction:column}.opts button small{color:var(--muted);font-size:14px;font-weight:500}.opts.many button{min-height:52px;font-size:18px}.opts.colors button{min-height:76px;border:0}.opts.colors .c0{background:#e2426b}.opts.colors .c1{background:#2f8ae0}.opts.colors .c2{background:#e8a21a}.opts.colors .c3{background:#23a86b}.opts button:disabled{opacity:.35}.opts button.on{opacity:1;outline:4px solid #fff}.locked{text-align:center;color:var(--gold);font-weight:700;font-size:20px}.write{display:flex;flex-direction:column;padding-top:8px}.step{color:var(--muted);font-weight:700}.write textarea{font:600 22px "Baloo 2",sans-serif;padding:12px;border-radius:16px;border:2px solid #fff3;background:#0004;color:var(--ink);resize:none}.write .row{display:flex;align-items:center;justify-content:space-between;margin-top:10px}.write .left{color:var(--muted)}.write button{padding:10px 30px;border-radius:16px;font-weight:800;font-size:22px;background:linear-gradient(90deg,var(--saffron),var(--pink))}.ticket{padding-top:4px}.ticket .note{text-align:center;font-size:22px;font-weight:800;color:var(--gold);min-height:34px}.ticket table{width:100%;border-collapse:separate;border-spacing:3px;table-layout:fixed;background:#fff1;border-radius:12px;padding:3px}.ticket td{height:48px;text-align:center;font-size:20px;font-weight:800;border-radius:8px;background:#fff7e8;color:#3a1500;user-select:none}.ticket.bingo td{height:58px;font-size:24px}.ticket td.blank{background:transparent}.ticket td.on{background:var(--saffron);color:#fff;box-shadow:inset 0 0 0 3px #fff6}.auto{display:flex;gap:8px;align-items:center;margin:10px 0;color:var(--muted)}.auto input{width:22px;height:22px}.ticket h3{margin:6px 0}.claims{display:grid;grid-template-columns:1fr 1fr;gap:8px}.claims button{padding:12px 8px;border-radius:14px;font-weight:800;font-size:18px;background:linear-gradient(90deg,var(--saffron),var(--pink))}.claims button:disabled{background:var(--card);color:var(--muted)}
