.landing[data-v-4b32bdd0]{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem}.content[data-v-4b32bdd0]{max-width:420px;width:100%;text-align:center;display:flex;flex-direction:column;align-items:center;gap:1.5rem}.badge[data-v-4b32bdd0]{display:inline-block;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.3em;color:var(--text-dim);border:1px solid var(--border);padding:.25rem .75rem;border-radius:100px;margin-bottom:.75rem}h1[data-v-4b32bdd0]{font-family:var(--font-display);font-size:clamp(4rem,15vw,6rem);letter-spacing:.05em;line-height:1}.accent[data-v-4b32bdd0]{color:var(--accent)}.tagline[data-v-4b32bdd0]{color:var(--text-dim);line-height:1.7;font-size:1rem}.hint-box[data-v-4b32bdd0]{display:flex;align-items:flex-start;gap:.75rem;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1rem 1.25rem;text-align:left;width:100%}.hint-icon[data-v-4b32bdd0]{font-size:1.25rem;flex-shrink:0;margin-top:2px}.hint-box p[data-v-4b32bdd0]{font-size:.875rem;color:var(--text-dim);line-height:1.6}code[data-v-4b32bdd0]{font-family:var(--font-mono);font-size:.8rem;color:var(--accent);background:#e8ff0012;padding:.15rem .4rem;border-radius:4px}.dim[data-v-4b32bdd0]{color:var(--text-dim);font-size:.8rem}.login-page[data-v-c5988b3d]{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem}.login-card[data-v-c5988b3d]{max-width:360px;width:100%;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:2rem;text-align:center}.badge[data-v-c5988b3d]{display:inline-block;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.3em;color:var(--text-dim);border:1px solid var(--border);padding:.25rem .75rem;border-radius:100px;margin-bottom:.75rem}h1[data-v-c5988b3d]{font-family:var(--font-display);font-size:3.5rem;letter-spacing:.05em;line-height:1;margin-bottom:.25rem}.accent[data-v-c5988b3d]{color:var(--accent)}.subtitle[data-v-c5988b3d]{color:var(--text-dim);font-size:.875rem;margin-bottom:1.5rem}.field[data-v-c5988b3d]{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem;text-align:left}label[data-v-c5988b3d]{font-size:.78rem;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em}input[data-v-c5988b3d]{width:100%}.full[data-v-c5988b3d]{width:100%;justify-content:center}.btn[data-v-c5988b3d]:disabled{opacity:.4;cursor:not-allowed}.error[data-v-c5988b3d]{margin-top:.75rem;color:var(--accent2);font-size:.82rem;font-family:var(--font-mono)}.setup[data-v-0bf87b02]{max-width:580px;margin:0 auto;padding:3rem 1.5rem}.setup-hero[data-v-0bf87b02]{text-align:center;margin-bottom:2.5rem}.hero-badge[data-v-0bf87b02]{display:inline-block;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.3em;color:var(--text-dim);border:1px solid var(--border);padding:.25rem .75rem;border-radius:100px;margin-bottom:.75rem}h1[data-v-0bf87b02]{font-family:var(--font-display);font-size:clamp(3.5rem,10vw,6rem);letter-spacing:.05em;line-height:1}.accent[data-v-0bf87b02]{color:var(--accent)}.subtitle[data-v-0bf87b02]{color:var(--text-dim);margin-top:.5rem}.card[data-v-0bf87b02]{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.75rem}.field[data-v-0bf87b02]{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.25rem}label[data-v-0bf87b02]{font-size:.82rem;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em}.dim[data-v-0bf87b02]{font-weight:400;opacity:.6}select[data-v-0bf87b02],textarea[data-v-0bf87b02]{width:100%;resize:vertical}.mode-select[data-v-0bf87b02]{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.mode-btn[data-v-0bf87b02]{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:.75rem;cursor:pointer;display:flex;flex-direction:column;gap:.25rem;text-align:left;transition:all .15s;color:var(--text)}.mode-btn[data-v-0bf87b02]:hover{border-color:#e8ff004d}.mode-btn.active[data-v-0bf87b02]{border-color:var(--accent);background:#e8ff000f}.mode-icon[data-v-0bf87b02]{font-size:1.1rem}.mode-name[data-v-0bf87b02]{font-weight:600;font-size:.85rem}.mode-desc[data-v-0bf87b02]{font-size:.72rem;color:var(--text-dim);line-height:1.4}.full[data-v-0bf87b02]{width:100%;justify-content:center}.btn[data-v-0bf87b02]:disabled{opacity:.4;cursor:not-allowed}.error[data-v-0bf87b02]{margin-top:1rem;color:var(--accent2);font-size:.85rem;font-family:var(--font-mono)}h2[data-v-0bf87b02]{font-family:var(--font-display);font-size:1.8rem;letter-spacing:.05em;margin-bottom:1.25rem;color:var(--accent)}h3[data-v-0bf87b02]{font-size:.82rem;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em;margin:1.25rem 0 .75rem}.link-block[data-v-0bf87b02]{padding:.75rem 0;border-bottom:1px solid var(--border)}.link-block[data-v-0bf87b02]:last-of-type{border-bottom:none}.admin-block[data-v-0bf87b02]{background:#e8ff000a;border:1px solid rgba(232,255,0,.15);border-radius:8px;padding:.75rem 1rem;margin-bottom:.5rem}.link-row-header[data-v-0bf87b02]{display:flex;align-items:center;justify-content:space-between;margin-bottom:.3rem}.link-label[data-v-0bf87b02]{font-size:.8rem;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em}.link-label-small[data-v-0bf87b02]{font-size:.72rem;color:var(--text-dim);white-space:nowrap}.link-url-row[data-v-0bf87b02]{display:flex;align-items:center;gap:.5rem;margin-bottom:.3rem}.obs-link-row[data-v-0bf87b02]{margin-top:.5rem;padding-top:.5rem;border-top:1px solid rgba(255,255,255,.06)}.link-url[data-v-0bf87b02]{flex:1;font-family:var(--font-mono);font-size:.72rem;color:var(--text-dim);background:var(--surface2);padding:.35rem .6rem;border-radius:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.accent-url[data-v-0bf87b02]{color:var(--accent)}.btn-sm[data-v-0bf87b02]{padding:.3rem .6rem;font-size:.75rem}.mt[data-v-0bf87b02]{margin-top:1.5rem}.editor-link[data-v-0bf87b02]{margin-bottom:.5rem}.sessions-page[data-v-331348de]{max-width:900px;margin:0 auto;padding:2rem 1.5rem}.sessions-header[data-v-331348de]{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.badge[data-v-331348de]{display:inline-block;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.3em;color:var(--text-dim);border:1px solid var(--border);padding:.25rem .75rem;border-radius:100px;margin-bottom:.5rem}h1[data-v-331348de]{font-family:var(--font-display);font-size:clamp(2rem,6vw,3.5rem);letter-spacing:.05em;line-height:1}.accent[data-v-331348de]{color:var(--accent)}.subtitle[data-v-331348de]{color:var(--text-dim);font-size:.875rem;margin-top:.25rem}.header-actions[data-v-331348de]{display:flex;gap:.5rem;align-items:flex-start;flex-wrap:wrap}.loading[data-v-331348de]{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:4rem;color:var(--text-dim)}.spinner[data-v-331348de]{width:28px;height:28px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin-331348de .8s linear infinite}@keyframes spin-331348de{to{transform:rotate(360deg)}}.empty[data-v-331348de]{text-align:center;padding:4rem;color:var(--text-dim);display:flex;flex-direction:column;align-items:center;gap:1.5rem}.sessions-list[data-v-331348de]{display:flex;flex-direction:column;gap:1rem}.session-card[data-v-331348de]{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.25rem;display:flex;flex-direction:column;gap:1rem}.session-header[data-v-331348de]{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.session-name[data-v-331348de]{font-family:var(--font-display);font-size:1.4rem;letter-spacing:.05em;display:block;margin-bottom:.4rem}.session-meta[data-v-331348de]{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.meta-item[data-v-331348de]{font-size:.78rem;color:var(--text-dim);font-family:var(--font-mono)}.dim[data-v-331348de]{opacity:.6}code[data-v-331348de]{background:var(--surface2);padding:.1rem .35rem;border-radius:3px;font-size:.72rem}.players-bar[data-v-331348de]{display:flex;gap:.5rem;flex-wrap:wrap}.player-chip[data-v-331348de]{display:flex;align-items:center;gap:.35rem;background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:.25rem .6rem;font-size:.78rem}.chip-dot[data-v-331348de]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.chip-name[data-v-331348de]{color:var(--text-dim)}.chip-score[data-v-331348de]{font-family:var(--font-mono);font-weight:600;color:var(--accent)}.links-section[data-v-331348de]{display:flex;flex-direction:column;gap:.5rem}.link-group[data-v-331348de]{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:.75rem}.link-group-label[data-v-331348de]{font-size:.78rem;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;display:block;margin-bottom:.4rem}.link-row[data-v-331348de]{display:flex;align-items:center;gap:.4rem;flex-wrap:nowrap}.obs-row[data-v-331348de]{margin-top:.35rem;padding-top:.35rem;border-top:1px solid rgba(255,255,255,.05)}.link-label-sm[data-v-331348de]{font-size:.68rem;color:var(--text-dim);white-space:nowrap;flex-shrink:0}.link-url[data-v-331348de]{flex:1;font-family:var(--font-mono);font-size:.68rem;color:var(--text-dim);background:var(--surface);padding:.25rem .5rem;border-radius:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.accent-url[data-v-331348de]{color:var(--accent)}.players-links[data-v-331348de]{border:1px solid var(--border);border-radius:8px;overflow:hidden}.players-links summary[data-v-331348de]{padding:.6rem .75rem;font-size:.82rem;font-weight:600;color:var(--text-dim);cursor:pointer;background:var(--surface2);list-style:none;-webkit-user-select:none;user-select:none}.players-links summary[data-v-331348de]:hover{color:var(--text)}.player-links-list[data-v-331348de]{padding:.5rem .75rem;display:flex;flex-direction:column;gap:.6rem}.player-link-block[data-v-331348de]{display:flex;flex-direction:column;gap:.2rem}.player-dot[data-v-331348de]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.player-link-name[data-v-331348de]{font-size:.78rem;font-weight:600;white-space:nowrap;flex-shrink:0}.btn-xs[data-v-331348de]{padding:.2rem .5rem;font-size:.68rem;flex-shrink:0}.btn-sm[data-v-331348de]{padding:.3rem .6rem;font-size:.75rem}.grid-wrap[data-v-d7f838b0]{width:100%}.bingo-grid[data-v-d7f838b0]{display:grid;grid-template-columns:repeat(var(--size),1fr);gap:5px;width:100%}.cell[data-v-d7f838b0]{aspect-ratio:1;background:var(--surface2);border:1px solid var(--border);border-radius:8px;position:relative;overflow:hidden;transition:all .15s;-webkit-user-select:none;user-select:none}.cell-clickable[data-v-d7f838b0]{cursor:pointer}.cell-clickable[data-v-d7f838b0]:hover{border-color:#e8ff0080;transform:scale(1.02)}.cell-inner[data-v-d7f838b0]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.35rem;gap:.2rem}.cell-pts[data-v-d7f838b0]{position:absolute;top:4px;right:5px;font-family:var(--font-mono);font-size:.6rem;color:var(--text-dim);opacity:.6}.cell-text[data-v-d7f838b0]{font-size:clamp(.5rem,1.1vw,.75rem);text-align:center;line-height:1.3;color:var(--text-dim);transition:color .15s}.cell-tokens[data-v-d7f838b0]{display:flex;flex-wrap:wrap;gap:2px;justify-content:center;margin-top:2px}.token[data-v-d7f838b0]{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;font-size:.55rem;font-weight:700;font-family:var(--font-mono);flex-shrink:0}.cell-mine[data-v-d7f838b0]{background:#e8ff001f;border-color:#e8ff0080}.cell-mine .cell-text[data-v-d7f838b0]{color:var(--accent)}.cell-completed[data-v-d7f838b0]:not(.cell-mine){background:var(--surface);border-color:var(--border)}.cell-locked[data-v-d7f838b0]{opacity:.5;cursor:not-allowed!important}.cell-routed[data-v-d7f838b0]{border-color:#00d4ff66;background:#00d4ff0f}.cell-routed .cell-text[data-v-d7f838b0]{color:#00d4ff}.route-mark[data-v-d7f838b0]{position:absolute;bottom:3px;left:4px;font-size:.65rem}.lock-mark[data-v-d7f838b0]{position:absolute;bottom:3px;right:4px;font-size:.6rem}.player-view[data-v-eb899b67]{min-height:100vh;display:flex;flex-direction:column;padding:1.25rem;max-width:700px;margin:0 auto}.loading[data-v-eb899b67]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:var(--text-dim)}.spinner[data-v-eb899b67]{width:32px;height:32px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin-eb899b67 .8s linear infinite}@keyframes spin-eb899b67{to{transform:rotate(360deg)}}.player-header[data-v-eb899b67]{margin-bottom:1rem}.header-top[data-v-eb899b67]{display:flex;align-items:center;justify-content:space-between;margin-bottom:.4rem}.player-badge[data-v-eb899b67]{font-family:var(--font-display);font-size:2rem;letter-spacing:.05em}.header-right[data-v-eb899b67]{display:flex;align-items:center;gap:.75rem}.score-display[data-v-eb899b67]{font-family:var(--font-display);font-size:1.8rem;color:var(--accent);letter-spacing:.05em}.score-display small[data-v-eb899b67]{font-size:.9rem;color:var(--text-dim)}.status-row[data-v-eb899b67]{display:flex;align-items:center;gap:.5rem;font-size:.75rem}.conn-dot[data-v-eb899b67]{width:7px;height:7px;border-radius:50%;background:var(--text-dim);transition:background .3s}.conn-dot.connected[data-v-eb899b67]{background:var(--accent)}.conn-label[data-v-eb899b67]{font-family:var(--font-mono);color:var(--text-dim)}.hint[data-v-eb899b67]{margin-left:auto;color:var(--text-dim);font-size:.7rem;font-family:var(--font-mono)}.notification[data-v-eb899b67]{border-radius:8px;padding:.6rem 1rem;font-size:.85rem;font-family:var(--font-mono);margin-bottom:.75rem}.notification.error[data-v-eb899b67]{background:#ff3c6e1f;border:1px solid rgba(255,60,110,.35);color:var(--accent2)}.notification.success[data-v-eb899b67]{background:#e8ff0014;border:1px solid rgba(232,255,0,.25);color:var(--accent)}.notif-enter-active[data-v-eb899b67],.notif-leave-active[data-v-eb899b67]{transition:all .2s ease}.notif-enter-from[data-v-eb899b67],.notif-leave-to[data-v-eb899b67]{opacity:0;transform:translateY(-6px)}.scoreboard[data-v-eb899b67]{display:flex;gap:.5rem;margin-bottom:.75rem;flex-wrap:wrap}.score-row[data-v-eb899b67]{display:flex;align-items:center;gap:.4rem;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:.3rem .6rem;font-size:.8rem}.score-row.is-me[data-v-eb899b67]{border-color:var(--accent)}.score-dot[data-v-eb899b67]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.score-name[data-v-eb899b67]{color:var(--text-dim)}.score-val[data-v-eb899b67]{font-family:var(--font-mono);font-weight:600;color:var(--text)}.legend[data-v-eb899b67]{display:flex;gap:1rem;margin-bottom:.75rem;flex-wrap:wrap}.legend-item[data-v-eb899b67]{font-size:.72rem;color:var(--text-dim);font-family:var(--font-mono)}.legend-item.route[data-v-eb899b67]{color:#00d4ff}.legend-item.mine[data-v-eb899b67]{color:var(--accent)}.legend-item.locked[data-v-eb899b67]{color:var(--accent2)}.grid-area[data-v-eb899b67]{flex:1}.admin-view[data-v-be08fbdf]{min-height:100vh;padding:1.5rem;max-width:900px;margin:0 auto}.loading[data-v-be08fbdf]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:1rem;color:var(--text-dim)}.spinner[data-v-be08fbdf]{width:32px;height:32px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin-be08fbdf .8s linear infinite}@keyframes spin-be08fbdf{to{transform:rotate(360deg)}}.admin-header[data-v-be08fbdf]{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.header-main[data-v-be08fbdf]{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}h1[data-v-be08fbdf]{font-family:var(--font-display);font-size:2rem;letter-spacing:.05em;margin-bottom:.4rem}.accent[data-v-be08fbdf]{color:var(--accent)}.meta[data-v-be08fbdf]{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.meta-item[data-v-be08fbdf]{font-size:.8rem;color:var(--text-dim);font-family:var(--font-mono)}.conn-dot[data-v-be08fbdf]{width:7px;height:7px;border-radius:50%;background:var(--text-dim);transition:background .3s}.conn-dot.connected[data-v-be08fbdf]{background:var(--accent)}.header-actions[data-v-be08fbdf]{display:flex;gap:.5rem;flex-wrap:wrap}.scoreboard-bar[data-v-be08fbdf]{display:flex;gap:.75rem;margin-bottom:1.5rem;flex-wrap:wrap}.score-card[data-v-be08fbdf]{display:flex;align-items:center;gap:.5rem;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.5rem .9rem;transition:border-color .2s}.score-card.first[data-v-be08fbdf]{border-color:var(--accent)}.rank[data-v-be08fbdf]{font-family:var(--font-mono);font-size:.75rem;color:var(--text-dim)}.sname[data-v-be08fbdf]{font-weight:600;font-size:.9rem}.sval[data-v-be08fbdf]{font-family:var(--font-display);font-size:1.4rem;letter-spacing:.05em}.sval small[data-v-be08fbdf]{font-size:.7rem;color:var(--text-dim)}.grid-container[data-v-be08fbdf]{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.25rem;margin-bottom:1.5rem}.grid-header[data-v-be08fbdf]{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;flex-wrap:wrap;gap:.75rem}.grid-title[data-v-be08fbdf]{font-family:var(--font-display);font-size:1.2rem;letter-spacing:.05em;color:var(--text-dim)}.players-section h2[data-v-be08fbdf]{font-family:var(--font-display);font-size:1.4rem;letter-spacing:.05em;margin-bottom:1rem}.players-grid[data-v-be08fbdf]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.player-card[data-v-be08fbdf]{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1rem}.card-header[data-v-be08fbdf]{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.pname[data-v-be08fbdf]{font-weight:600}.pscore[data-v-be08fbdf]{font-family:var(--font-mono);font-size:.8rem;color:var(--text-dim)}.route-list[data-v-be08fbdf]{display:flex;flex-direction:column;gap:.35rem}.route-pill[data-v-be08fbdf]{font-size:.75rem;color:#00d4ff;background:#00d4ff14;border:1px solid rgba(0,212,255,.2);border-radius:4px;padding:.2rem .5rem;font-family:var(--font-mono)}.dim[data-v-be08fbdf]{font-size:.75rem;color:var(--text-dim)}.notification[data-v-be08fbdf]{background:#ff3c6e1f;border:1px solid rgba(255,60,110,.35);color:var(--accent2);border-radius:8px;padding:.6rem 1rem;font-size:.85rem;font-family:var(--font-mono);margin-bottom:1rem}.notif-enter-active[data-v-be08fbdf],.notif-leave-active[data-v-be08fbdf]{transition:all .2s ease}.notif-enter-from[data-v-be08fbdf],.notif-leave-to[data-v-be08fbdf]{opacity:0;transform:translateY(-6px)}.obs-root[data-v-a2a40c55]{display:flex;flex-direction:row;gap:10px;padding:10px;width:100vw;height:100vh;overflow:hidden;background:transparent;font-family:var(--font-body)}.obs-loading[data-v-a2a40c55]{display:flex;align-items:center;justify-content:center;width:100%;color:#ffffff80}.spinner[data-v-a2a40c55]{width:24px;height:24px;border:2px solid rgba(255,255,255,.2);border-top-color:#e8ff00;border-radius:50%;animation:spin-a2a40c55 .8s linear infinite}@keyframes spin-a2a40c55{to{transform:rotate(360deg)}}.obs-scores[data-v-a2a40c55]{display:flex;flex-direction:column;gap:5px;width:170px;flex-shrink:0;overflow:hidden}.obs-score-row[data-v-a2a40c55]{display:flex;align-items:center;gap:5px;background:#12121ae0;border:1px solid rgba(255,255,255,.08);border-radius:7px;padding:5px 7px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.obs-score-row.first[data-v-a2a40c55]{border-color:#e8ff0066}.obs-rank[data-v-a2a40c55]{font-family:var(--font-mono);font-size:.6rem;color:#fff6;width:14px;flex-shrink:0}.obs-avatar[data-v-a2a40c55]{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.5rem;font-weight:700;color:#000;font-family:var(--font-mono);flex-shrink:0}.obs-name[data-v-a2a40c55]{flex:1;font-size:.72rem;font-weight:600;color:#ffffffe6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.obs-pts[data-v-a2a40c55]{font-family:var(--font-display);font-size:1rem;color:#e8ff00;white-space:nowrap;flex-shrink:0}.obs-pts small[data-v-a2a40c55]{font-size:.5rem;color:#fff6;margin-left:1px}.obs-grid-wrap[data-v-a2a40c55]{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;background:#12121ad1;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:8px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);overflow:hidden}.obs-grid-title[data-v-a2a40c55]{font-family:var(--font-display);font-size:.85rem;letter-spacing:.1em;color:#ffffff59;text-transform:uppercase;flex-shrink:0}.obs-grid-inner[data-v-a2a40c55]{flex:1;min-height:0;display:flex;align-items:stretch}.obs-grid-inner[data-v-a2a40c55] .grid-wrap{height:100%;display:flex;align-items:center}.obs-grid-inner[data-v-a2a40c55] .bingo-grid{--cell-size: min(calc((100vh - 60px) / var(--size)), calc((100vw - 210px) / var(--size)));grid-template-columns:repeat(var(--size),var(--cell-size));grid-template-rows:repeat(var(--size),var(--cell-size));width:auto}.obs-grid-inner[data-v-a2a40c55] .cell{aspect-ratio:unset;width:var(--cell-size);height:var(--cell-size)}body{background:transparent!important}*{box-sizing:border-box}.obs-player-root[data-v-34cbda59]{display:flex;flex-direction:column;gap:8px;padding:10px;width:100vw;height:100vh;overflow:hidden;background:transparent;font-family:var(--font-body)}.obs-loading[data-v-34cbda59]{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.spinner[data-v-34cbda59]{width:24px;height:24px;border:2px solid rgba(255,255,255,.2);border-top-color:#e8ff00;border-radius:50%;animation:spin-34cbda59 .8s linear infinite}@keyframes spin-34cbda59{to{transform:rotate(360deg)}}.obs-player-header[data-v-34cbda59]{display:flex;align-items:center;gap:8px;background:#12121ae0;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:6px 10px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-shrink:0}.obs-avatar[data-v-34cbda59]{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.55rem;font-weight:700;color:#000;font-family:var(--font-mono);flex-shrink:0}.obs-name[data-v-34cbda59]{font-weight:600;font-size:.82rem;color:#ffffffe6;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.obs-score[data-v-34cbda59]{font-family:var(--font-display);font-size:1.2rem;color:#e8ff00;flex-shrink:0}.obs-score small[data-v-34cbda59]{font-size:.5rem;color:#fff6;margin-left:1px}.obs-mode[data-v-34cbda59]{font-size:.85rem;flex-shrink:0}.obs-grid-wrap[data-v-34cbda59]{flex:1;min-height:0;background:#12121ad1;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:8px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;overflow:hidden}.obs-grid-inner[data-v-34cbda59]{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.obs-grid-inner[data-v-34cbda59] .grid-wrap{width:auto;height:100%;display:flex;align-items:center;justify-content:center}.obs-grid-inner[data-v-34cbda59] .bingo-grid{--cell-size: min( calc((100vh - 92px) / var(--size)), calc(100vw / var(--size)) );grid-template-columns:repeat(var(--size),var(--cell-size));grid-template-rows:repeat(var(--size),var(--cell-size));width:auto}.obs-grid-inner[data-v-34cbda59] .cell{aspect-ratio:unset;width:var(--cell-size);height:var(--cell-size)}.obs-grid-inner[data-v-34cbda59] .cell-text{font-size:clamp(.45rem,calc(var(--cell-size) * .1),.75rem)}.editor-page[data-v-d4fa4bc0]{max-width:1100px;margin:0 auto;padding:2rem 1.5rem}.editor-header[data-v-d4fa4bc0]{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.badge[data-v-d4fa4bc0]{display:inline-block;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.3em;color:var(--text-dim);border:1px solid var(--border);padding:.25rem .75rem;border-radius:100px;margin-bottom:.5rem}h1[data-v-d4fa4bc0]{font-family:var(--font-display);font-size:clamp(2.5rem,6vw,4rem);letter-spacing:.05em;line-height:1}.accent[data-v-d4fa4bc0]{color:var(--accent)}.subtitle[data-v-d4fa4bc0]{color:var(--text-dim);font-size:.875rem;margin-top:.25rem}.tabs[data-v-d4fa4bc0]{display:flex;gap:.25rem;margin-bottom:1.5rem;border-bottom:1px solid var(--border)}.tab-btn[data-v-d4fa4bc0]{background:none;border:none;color:var(--text-dim);font-size:.875rem;font-weight:600;padding:.6rem 1rem;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .15s}.tab-btn[data-v-d4fa4bc0]:hover{color:var(--text)}.tab-btn.active[data-v-d4fa4bc0]{color:var(--accent);border-bottom-color:var(--accent)}.two-col[data-v-d4fa4bc0]{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}@media (max-width: 768px){.two-col[data-v-d4fa4bc0]{grid-template-columns:1fr}}.panel[data-v-d4fa4bc0]{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.5rem}h2[data-v-d4fa4bc0]{font-family:var(--font-display);font-size:1.3rem;letter-spacing:.05em;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.counter[data-v-d4fa4bc0]{font-size:.8rem;color:var(--text-dim);font-family:var(--font-mono);font-weight:400}.field[data-v-d4fa4bc0]{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem}.field-row[data-v-d4fa4bc0]{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}label[data-v-d4fa4bc0]{font-size:.78rem;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em}input[type=text][data-v-d4fa4bc0],input[data-v-d4fa4bc0]:not([type=number]):not([type=file]){width:100%}input[type=number][data-v-d4fa4bc0]{width:100%}.size-select[data-v-d4fa4bc0]{display:flex;gap:.5rem}.size-btn[data-v-d4fa4bc0]{flex:1;background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:.5rem;cursor:pointer;color:var(--text-dim);font-weight:600;font-size:.9rem;transition:all .15s}.size-btn.active[data-v-d4fa4bc0]{border-color:var(--accent);color:var(--accent);background:#e8ff000f}.cells-list[data-v-d4fa4bc0]{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.75rem;max-height:420px;overflow-y:auto}.cell-row[data-v-d4fa4bc0]{display:flex;align-items:center;gap:.4rem;background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:.3rem .5rem;transition:border-color .15s}.cell-row[data-v-d4fa4bc0]:focus-within{border-color:#e8ff0066}.cell-row.incomplete[data-v-d4fa4bc0]{border-color:#ff3c6e33}.cell-num[data-v-d4fa4bc0]{font-family:var(--font-mono);font-size:.65rem;color:var(--text-dim);width:18px;text-align:right;flex-shrink:0}.cell-text-input[data-v-d4fa4bc0]{flex:1;background:none;border:none;font-size:.82rem;color:var(--text);padding:.2rem .4rem}.cell-text-input[data-v-d4fa4bc0]:focus{outline:none}.pts-wrap[data-v-d4fa4bc0]{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.pts-btn[data-v-d4fa4bc0]{background:var(--surface);border:1px solid var(--border);color:var(--text-dim);width:20px;height:20px;border-radius:4px;font-size:.85rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .1s}.pts-btn[data-v-d4fa4bc0]:hover{border-color:var(--accent);color:var(--accent)}.pts-val[data-v-d4fa4bc0]{font-family:var(--font-mono);font-size:.75rem;color:var(--accent);width:20px;text-align:center}.del-btn[data-v-d4fa4bc0]{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:.7rem;padding:.2rem;border-radius:4px;transition:all .1s;flex-shrink:0}.del-btn[data-v-d4fa4bc0]:hover:not(:disabled){color:var(--accent2)}.del-btn[data-v-d4fa4bc0]:disabled{opacity:.2;cursor:not-allowed}.cell-actions[data-v-d4fa4bc0]{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem}.fill-hint[data-v-d4fa4bc0]{font-size:.75rem;color:var(--accent2);font-family:var(--font-mono)}.fill-ok[data-v-d4fa4bc0]{font-size:.75rem;color:var(--accent);font-family:var(--font-mono)}.save-actions[data-v-d4fa4bc0]{display:flex;gap:.5rem;flex-wrap:wrap}.error[data-v-d4fa4bc0]{margin-top:.75rem;color:var(--accent2);font-size:.82rem;font-family:var(--font-mono)}.success[data-v-d4fa4bc0]{margin-top:.75rem;color:var(--accent);font-size:.82rem;font-family:var(--font-mono)}.preview-panel[data-v-d4fa4bc0]{position:sticky;top:1rem}.preview-grid[data-v-d4fa4bc0]{display:grid;grid-template-columns:repeat(var(--size),1fr);gap:5px;margin-bottom:.75rem}.preview-cell[data-v-d4fa4bc0]{aspect-ratio:1;background:var(--surface2);border:1px solid var(--border);border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.3rem;position:relative;cursor:pointer;transition:all .15s}.preview-cell[data-v-d4fa4bc0]:hover{border-color:#e8ff004d}.preview-cell.empty[data-v-d4fa4bc0]{opacity:.4}.preview-cell.active[data-v-d4fa4bc0]{border-color:var(--accent);background:#e8ff000f}.preview-pts[data-v-d4fa4bc0]{position:absolute;top:3px;right:4px;font-family:var(--font-mono);font-size:.55rem;color:var(--text-dim)}.preview-text[data-v-d4fa4bc0]{font-size:clamp(.45rem,1vw,.65rem);text-align:center;line-height:1.3;color:var(--text-dim)}.preview-cell.active .preview-text[data-v-d4fa4bc0]{color:var(--accent)}.preview-meta[data-v-d4fa4bc0]{display:flex;gap:1rem;font-size:.78rem;color:var(--text-dim);font-family:var(--font-mono)}.import-panel[data-v-d4fa4bc0]{max-width:620px}.drop-zone[data-v-d4fa4bc0]{border:2px dashed var(--border);border-radius:12px;padding:2.5rem;display:flex;flex-direction:column;align-items:center;gap:.75rem;text-align:center;transition:all .2s;cursor:default;margin-bottom:1.5rem;color:var(--text-dim)}.drop-zone.dragover[data-v-d4fa4bc0]{border-color:var(--accent);background:#e8ff000a}.drop-icon[data-v-d4fa4bc0]{font-size:2.5rem}.or[data-v-d4fa4bc0]{font-size:.78rem;color:var(--text-dim)}.file-label[data-v-d4fa4bc0]{cursor:pointer}.import-preview[data-v-d4fa4bc0]{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1.25rem;margin-bottom:1.5rem}.import-preview h3[data-v-d4fa4bc0]{font-size:1rem;margin-bottom:.5rem}.import-meta[data-v-d4fa4bc0]{display:flex;gap:1rem;font-size:.78rem;color:var(--text-dim);font-family:var(--font-mono);margin-bottom:1rem}.import-actions[data-v-d4fa4bc0]{display:flex;gap:.5rem;flex-wrap:wrap}.json-format h3[data-v-d4fa4bc0]{font-size:.85rem;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.5rem}.code-block[data-v-d4fa4bc0]{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1rem;font-family:var(--font-mono);font-size:.75rem;color:var(--text-dim);line-height:1.6;overflow-x:auto}.library-header[data-v-d4fa4bc0]{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.library-header h2[data-v-d4fa4bc0]{margin-bottom:0}.library-grid[data-v-d4fa4bc0]{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.grille-card[data-v-d4fa4bc0]{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1rem}.grille-card-header[data-v-d4fa4bc0]{display:flex;align-items:center;justify-content:space-between;margin-bottom:.4rem}.grille-name[data-v-d4fa4bc0]{font-weight:600;font-size:.95rem}.grille-meta[data-v-d4fa4bc0]{display:flex;gap:.75rem;font-size:.75rem;color:var(--text-dim);font-family:var(--font-mono);margin-bottom:.75rem}.grille-actions[data-v-d4fa4bc0]{display:flex;gap:.4rem;flex-wrap:wrap}.btn-sm[data-v-d4fa4bc0]{padding:.3rem .6rem;font-size:.75rem}.dim[data-v-d4fa4bc0]{opacity:.6}.empty-library[data-v-d4fa4bc0]{grid-column:1/-1;text-align:center;padding:3rem;color:var(--text-dim)}:root{--bg: #0a0a0f;--surface: #12121a;--surface2: #1a1a26;--border: #2a2a40;--accent: #e8ff00;--accent2: #ff3c6e;--text: #e8e8f0;--text-dim: #7070a0;--checked: #e8ff00;--bingo: #ff3c6e;--font-display: "Bebas Neue", sans-serif;--font-mono: "DM Mono", monospace;--font-body: "Inter", sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%;background:var(--bg);color:var(--text);font-family:var(--font-body)}body{background-image:radial-gradient(ellipse 80% 50% at 50% -10%,rgba(232,255,0,.05),transparent),repeating-linear-gradient(0deg,transparent,transparent 40px,rgba(255,255,255,.012) 40px,rgba(255,255,255,.012) 41px);min-height:100vh}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:var(--font-body);border:none;outline:none}input,select,textarea{font-family:var(--font-body);background:var(--surface2);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:.5rem .75rem;outline:none;transition:border-color .2s}input:focus,select:focus{border-color:var(--accent)}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1.2rem;border-radius:6px;font-weight:600;font-size:.9rem;transition:all .15s;cursor:pointer}.btn-primary{background:var(--accent);color:#000}.btn-primary:hover{background:#fff}.btn-danger{background:var(--accent2);color:#fff}.btn-danger:hover{opacity:.85}.btn-ghost{background:transparent;border:1px solid var(--border);color:var(--text-dim)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.tag{display:inline-block;padding:.2rem .6rem;border-radius:4px;font-size:.75rem;font-family:var(--font-mono);font-weight:500}.tag-bingo{background:#ff3c6e26;color:var(--bingo);border:1px solid rgba(255,60,110,.3)}.tag-active{background:#e8ff001a;color:var(--accent);border:1px solid rgba(232,255,0,.2)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}
