*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{color:#f1f5f9;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;-webkit-user-select:none;user-select:none;background:radial-gradient(at top,#1d3170 0%,#0d1b3e 60%,#091330 100%);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}button{font:inherit;cursor:pointer}.screen{min-height:100%;padding:max(20px, env(safe-area-inset-top)) 16px max(20px, env(safe-area-inset-bottom));justify-content:center;align-items:center;display:flex}.card{background:#ffffff0f;border:1px solid #ffffff1f;border-radius:18px;flex-direction:column;gap:12px;width:100%;max-width:400px;padding:22px 18px;display:flex}.title{text-align:center;margin:0;font-size:34px}.muted{color:#b6c2dc;text-align:center;margin:0;line-height:1.4}.small{font-size:13px}.error{color:#fda4af;text-align:center;margin:0;line-height:1.4}.field{color:#b6c2dc;flex-direction:column;gap:6px;font-size:14px;display:flex}.field input{font:inherit;color:#fff;-webkit-user-select:text;user-select:text;background:#00000040;border:1px solid #fff3;border-radius:12px;padding:12px;font-size:18px}.code-input{letter-spacing:.3em;text-align:center}.code-input::placeholder{letter-spacing:normal}.primary,.secondary{border:none;border-radius:12px;padding:14px;font-size:18px;font-weight:600}.primary{color:#1e1b4b;background:#facc15}.secondary{color:#fff;background:#ffffff24}.primary:disabled,.secondary:disabled{opacity:.4;cursor:default}.link-button{color:#93a4c8;background:0 0;border:none;padding:6px;text-decoration:underline}.divider{text-align:center;color:#7f8db0;font-size:14px}.room-code{text-align:center;letter-spacing:.15em;font-size:56px;font-weight:800}.status{text-align:center;min-height:2.8em;line-height:1.4}.toggles{grid-template-columns:repeat(2,1fr);gap:6px;display:grid}.toggles button{color:#dbe4f5;background:#00000040;border:1px solid #fff3;border-radius:12px;padding:11px 6px;font-weight:600}.toggles button.on{color:#1e1b4b;background:#fff;border-color:#fff}.team-grid{grid-template-columns:repeat(2,1fr);gap:6px;display:grid}.team-box{color:#fff;background:#0003;border:2px solid #ffffff40;border-radius:12px;flex-direction:column;align-items:center;gap:2px;min-height:64px;padding:8px 6px;display:flex}.team-box.empty{color:#93a4c8;border-style:dashed}.team-box.on{box-shadow:0 0 0 2px #fff}.team-box-title{color:#b6c2dc;font-size:12px}.team-box-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:15px;font-weight:700;overflow:hidden}.option-tags{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.option-tags span{color:#dbe4f5;background:#ffffff1a;border-radius:999px;padding:4px 12px;font-size:13px}.count-picker{color:#b6c2dc;text-align:center;flex-direction:column;gap:6px;font-size:14px;display:flex}.segmented{background:#00000040;border-radius:12px;grid-template-columns:repeat(8,1fr);gap:4px;padding:4px;display:grid}.segmented button{color:#dbe4f5;background:0 0;border:none;border-radius:9px;padding:10px 0;font-weight:600}.segmented button.on{color:#1e1b4b;background:#fff}.color-picker{color:#b6c2dc;text-align:center;flex-direction:column;gap:6px;font-size:14px;display:flex}.swatches{grid-template-columns:repeat(8,1fr);justify-items:center;gap:6px;display:grid}.swatch{border:3px solid #0000;border-radius:50%;width:34px;height:34px;padding:0;box-shadow:0 0 0 1px #ffffff40}.swatch.on{border-color:#fff;box-shadow:0 0 0 2px #fff6}.swatch.taken{opacity:.3;cursor:default;background-image:linear-gradient(135deg,#0000 45%,#fff 45% 55%,#0000 55%)!important}.game{height:100%;padding:max(8px, env(safe-area-inset-top)) 8px max(4px, env(safe-area-inset-bottom));flex-direction:column;display:flex}.game-bar{grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;padding:4px 2px 8px;display:grid}.chip{background:#ffffff0f;border:2px solid;border-radius:14px;justify-content:space-between;align-items:center;gap:6px;min-width:0;padding:4px 4px 4px 10px;display:flex}.chip--right{flex-direction:row-reverse;padding:4px 10px 4px 4px}.chip--dim{opacity:.4}.chip-row{grid-auto-columns:1fr;grid-auto-flow:column;gap:6px;padding:0 2px 8px;display:grid}.chip--row{padding:3px 3px 3px 8px}.chip--row .chip-name{font-size:13px}.chip--row .chip-score{min-width:32px;font-size:19px}.chip-name{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.chip-score{text-align:center;color:#fff;border-radius:10px;min-width:40px;padding:2px 6px;font-size:22px;font-weight:800}.target{background:#0b1430;border:2px solid #ffffff80;border-radius:999px;flex-direction:column;align-items:center;min-width:76px;padding:2px 12px;display:flex}.target-label{color:#b6c2dc;font-size:12px}.target-number{font-size:30px;font-weight:800;line-height:1.05}.board-wrap{touch-action:none;flex:1;min-height:0;position:relative}.board{width:100%;height:100%;display:block}.board-wrap--locked .board{opacity:.45}.cell polygon{fill:#f4f5f7;stroke:#9aa3b2;stroke-width:.06px;transition:fill .15s}.cell-number{pointer-events:none;font-weight:800;transition:transform .7s ease-in-out}.cell-number text{transition:fill .15s}.mark--bonus{fill:#f59e0b;stroke:#92400e;stroke-width:.03px;stroke-linejoin:round}.mark--freeze{fill:none;stroke:#0284c7;stroke-width:.07px;stroke-linecap:round}.cell--taken polygon{stroke:#ffffff80}.cell--wrong polygon{fill:#fecaca;stroke:#dc2626;stroke-width:.14px}.overlay{pointer-events:none;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.overlay--count{color:#facc15;text-shadow:0 4px 24px #0009;font-size:120px;font-weight:900}.overlay--lock{gap:6px}.lock-title{color:#fecaca;text-shadow:0 2px 12px #000c;font-size:24px;font-weight:800}.lock-count{color:#fff;text-shadow:0 4px 24px #000c;font-size:96px;font-weight:900}.lock-bar{background:#ffffff40;border-radius:4px;width:60%;height:8px;overflow:hidden}.lock-bar div{background:#f87171;height:100%}.overlay--freeze .lock-title{color:#bae6fd}.overlay--freeze .lock-bar div{background:#38bdf8}.overlay--notice{text-align:center;background:#091330bf;padding:24px;font-size:20px}.overlay--result{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);pointer-events:auto;background:#060c1fdb;justify-content:flex-start;padding:12px;overflow-y:auto}.celebration{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.result-body{flex-direction:column;align-items:stretch;gap:12px;width:100%;max-width:380px;margin:auto 0;display:flex;position:relative}.scoreboard{text-align:center;background:#0b1430;border:2px solid #ffffff40;border-radius:16px;overflow:hidden}.result--lose .scoreboard{filter:grayscale(.6)}.scoreboard-head{letter-spacing:2px;color:#93a4c8;background:#ffffff14;padding:4px;font-size:12px}.scoreboard-row{grid-template-columns:1fr auto 1fr;align-items:center;display:grid}.scoreboard-row .team{text-overflow:ellipsis;white-space:nowrap;min-width:0;padding:12px 6px;font-size:16px;font-weight:800;overflow:hidden}.scoreboard-nums{font-variant-numeric:tabular-nums;white-space:nowrap;padding:4px 6px;font-size:34px;font-weight:900}.scoreboard-nums span{color:#64748b;margin:0 4px}.rank-row{text-align:left;border-top:1px solid #ffffff14;grid-template-columns:44px 1fr auto;align-items:center;gap:6px;padding:8px 12px 8px 6px;display:grid}.rank-row--me{background:#ffffff14}.rank-row--out{opacity:.45}.rank-place{text-align:center;color:#93a4c8;font-size:20px;font-weight:800}.rank-name{text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:800;overflow:hidden}.rank-score{font-variant-numeric:tabular-nums;font-size:26px;font-weight:900}.result-icon{text-align:center;font-size:60px;line-height:1}.result-icon.win{animation:.9s ease-in-out infinite result-bounce}.result-icon.lose{animation:.5s ease-in-out infinite alternate result-sob}@keyframes result-bounce{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-14px)scale(1.06)}}@keyframes result-sob{0%{transform:rotate(-4deg)}to{transform:rotate(4deg)}}.result-title{text-align:center;font-size:40px;font-weight:900;line-height:1.1}.result--win .result-title{color:#facc15;text-shadow:0 4px 24px #facc1573}.result--lose .result-title{color:#9fb3d9}.tally{color:#b6c2dc;text-align:center;background:#ffffff14;border-radius:999px;align-self:center;padding:5px 14px;font-size:15px}.tally b{color:#fff;font-size:17px}.solo-time{font-variant-numeric:tabular-nums;min-width:64px;font-size:17px}.solo-icon{color:#dbe4f5;flex:none}.solo-chip--record{border-color:#ffffff4d}.solo-chip--record .chip-score{background:#ffffff24}.solo-final{text-align:center;font-variant-numeric:tabular-nums;font-size:64px;font-weight:900;line-height:1}.result--done .solo-final{color:#fff}.game-foot{justify-content:center;align-items:center;gap:16px;display:flex}.sound-button{color:#93a4c8;background:#ffffff14;border:1px solid #ffffff40;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.sound-button.on{color:#fff;background:#ffffff2e}.sound-button:disabled{opacity:.35;cursor:default}.hub-link{color:#93a4c8;align-self:flex-start;margin:-8px 0 -4px;padding:4px 0;font-size:14px;text-decoration:none}.room-list{flex-direction:column;gap:6px;display:flex}.room-list-title{color:#b6c2dc;font-size:14px}.room-item{color:#fff;text-align:left;background:#facc1514;border:1px solid #facc1559;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;font-size:17px;display:flex}.room-item:disabled{opacity:.45;cursor:default}.room-item-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.room-item-count{color:#facc15;flex:none;font-weight:700}
