.toast-container{position:fixed!important;top:20px;right:20px;z-index:10000!important;display:flex;flex-direction:column;gap:10px;pointer-events:none}.toast[data-v-fb9a95e8]{padding:12px 20px 16px;border-radius:8px;box-shadow:0 4px 6px #0000001a;min-width:250px;max-width:400px;animation:slideIn-fb9a95e8 .3s ease-out;position:relative;overflow:hidden;pointer-events:auto}.toast-close[data-v-fb9a95e8]{position:absolute;top:8px;right:8px;background:#0000001a;border:1px solid currentColor;border-radius:4px;font-size:12px;line-height:1;color:currentColor;cursor:pointer;padding:4px 8px;opacity:.7;transition:opacity .2s,background .2s}.toast-close[data-v-fb9a95e8]:hover{opacity:1;background:#00000026}.toast-close[data-v-fb9a95e8]:focus{outline:2px solid currentColor;outline-offset:2px;opacity:1}.toast-error[data-v-fb9a95e8]{background-color:#fee;color:#c33;border:1px solid var(--tori-border)}.toast-success[data-v-fb9a95e8]{background-color:#efe;color:#3c3;border:1px solid var(--tori-border)}.toast-progress-bar[data-v-fb9a95e8]{position:absolute;bottom:0;left:0;right:0;height:2px;background-color:#0000001a;overflow:hidden}.toast-progress-fill[data-v-fb9a95e8]{height:100%;width:100%;background-color:currentColor;opacity:.3;animation:progressCountdown-fb9a95e8 linear forwards}@keyframes slideIn-fb9a95e8{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes progressCountdown-fb9a95e8{0%{transform:translate(0)}to{transform:translate(-100%)}}.account-bar{position:relative;z-index:2;display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap;padding:12px;background:var(--tori-card);color:var(--tori-fg);font-size:13px}.account-bar small{color:var(--tori-muted)}.account-bar button{padding:6px 10px}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;padding:0;position:relative}#app{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh;height:100dvh;overflow:hidden;background:var(--tori-bg);position:relative}#app:before{content:"";position:fixed;inset:0;background:#000000d9;z-index:0;pointer-events:none}#app>*{position:relative;z-index:1}:root{color-scheme:light;--tori-bg:#fafafa;--tori-card:#fff;--tori-fg:#171717;--tori-muted:#686868;--tori-border:#e5e5e5;--tori-soft:#f4f4f5;--tori-primary:#895b36;--tori-on-primary:#fff;--tori-primary-soft:#f3ebe4;--tori-danger:#b42318;--tori-success:#187450;--tori-ring:#895b36;--tori-radius:10px;--tori-space:4px;--tori-chart-1:#2563eb;--tori-chart-2:#0d9488;--tori-chart-3:#b45309;--tori-chart-4:#9333ea;--tori-chart-5:#db2777}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--tori-bg:#171717;--tori-card:#202020;--tori-fg:#fafafa;--tori-muted:#aaa;--tori-border:#393939;--tori-soft:#2b2b2b;--tori-primary:#d4a276;--tori-on-primary:#241b14;--tori-primary-soft:#332a23;--tori-danger:#fda29b;--tori-success:#75d6ac;--tori-ring:#d4a276;--tori-chart-1:#76a7ff;--tori-chart-2:#5bd4bc;--tori-chart-3:#f6ba66;--tori-chart-4:#c296fb;--tori-chart-5:#f68fc0}}[data-theme=dark]{color-scheme:dark;--tori-bg:#171717;--tori-card:#202020;--tori-fg:#fafafa;--tori-muted:#aaa;--tori-border:#393939;--tori-soft:#2b2b2b;--tori-primary:#d4a276;--tori-on-primary:#241b14;--tori-primary-soft:#332a23;--tori-danger:#fda29b;--tori-success:#75d6ac;--tori-ring:#d4a276;--tori-chart-1:#76a7ff;--tori-chart-2:#5bd4bc;--tori-chart-3:#f6ba66;--tori-chart-4:#c296fb;--tori-chart-5:#f68fc0}html,body{font-family:Inter,ui-sans-serif,system-ui,sans-serif;background:var(--tori-bg);color:var(--tori-fg)}button,input,select,textarea{font:inherit}input,select,textarea{background:var(--tori-card);color:var(--tori-fg)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--tori-ring);outline-offset:3px}#app{background:var(--tori-bg)}#app:before{display:none}#app .title{background:none;color:var(--tori-fg);-webkit-text-fill-color:currentColor}#app .container,#app .modal-content{border:1px solid var(--tori-border);border-radius:var(--tori-radius);box-shadow:0 2px 12px #00000014}#app .btn{border-radius:var(--tori-radius)}#app .room-container{background:var(--tori-bg)}#app .activity-header{padding:12px;background:var(--tori-card);border:1px solid var(--tori-border);border-radius:var(--tori-radius)}#app .btn-secondary{background:var(--tori-soft);color:var(--tori-fg);border:1px solid var(--tori-border)}#app .chat-input{min-width:0}#app .chat-input-wrapper>.button-group{flex-shrink:0;box-shadow:none}#app .no-participants,#app .empty-chat,#app .activities-placeholder{color:var(--tori-muted)}#app .menu-item.active{background:var(--tori-soft);color:var(--tori-fg)}.landing-page[data-v-8525d595]{display:flex;align-items:center;justify-content:center;min-height:100dvh;padding:20px}.container[data-v-8525d595]{background:var(--tori-card);border-radius:16px;padding:40px;box-shadow:0 20px 60px #0000004d;max-width:500px;width:100%}.title[data-v-8525d595]{font-size:2.5rem;font-weight:700;margin-bottom:10px;text-align:center;background:var(--tori-bg);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.subtitle[data-v-8525d595]{color:var(--tori-muted);text-align:center;margin-bottom:30px;font-size:1.1rem}.room-input-section[data-v-8525d595]{display:flex;flex-direction:column;gap:20px}.input-group[data-v-8525d595]{display:flex;flex-direction:column;gap:8px}.input-group label[data-v-8525d595]{font-size:.9rem;font-weight:600;color:var(--tori-fg)}.room-input[data-v-8525d595]{padding:14px 18px;font-size:1rem;border:2px solid var(--tori-border);border-radius:8px;outline:none;transition:border-color .3s}.room-input[data-v-8525d595]:focus{border-color:var(--tori-primary)}.room-input-locked[data-v-8525d595]{background-color:var(--tori-card);cursor:not-allowed;opacity:.8}.button-group[data-v-8525d595]{display:flex;gap:12px}.btn[data-v-8525d595]{flex:1;padding:14px 24px;font-size:1rem;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:all .3s}.btn[data-v-8525d595]:disabled{opacity:.5;cursor:not-allowed}.btn-primary[data-v-8525d595]{background:var(--tori-primary);color:var(--tori-on-primary)}.btn-secondary[data-v-8525d595]{background:var(--tori-card);color:var(--tori-fg)}@media(max-width:480px){.container[data-v-8525d595]{padding:30px 20px}.title[data-v-8525d595]{font-size:2rem}.button-group[data-v-8525d595]{flex-direction:column}}.chat-interface[data-v-f25004d4]{display:flex;flex-direction:column;height:100%;background:var(--tori-card)}.chat-interface.chat-history-hidden[data-v-f25004d4]{height:auto}.chat-messages[data-v-f25004d4]{flex:1;overflow-y:auto;padding:16px;background:var(--tori-card)}.message[data-v-f25004d4]{margin-bottom:16px;padding:12px;background:var(--tori-card);border-radius:8px;box-shadow:0 1px 3px #0000001a}.system-message[data-v-f25004d4]{background:#e3f2fd;border-left:3px solid var(--tori-border)}.party-bot-message[data-v-f25004d4]{background:linear-gradient(135deg,#5a6fd8,#6a3f8a);color:#fffffff2;border-left:4px solid #d4af37;box-shadow:0 4px 12px #667eea33;position:relative;overflow:hidden}.party-bot-message[data-v-f25004d4]:before{content:"✨";position:absolute;top:8px;right:12px;font-size:1.2rem;opacity:.6;animation:sparkle-f25004d4 2s ease-in-out infinite}@keyframes sparkle-f25004d4{0%,to{opacity:.4;transform:scale(1)}50%{opacity:.8;transform:scale(1.1)}}.message-header[data-v-f25004d4]{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.message-user[data-v-f25004d4]{font-weight:600;font-size:.9rem;color:var(--tori-fg)}.system-message .message-user[data-v-f25004d4]{color:#1976d2}.party-bot-message .message-user[data-v-f25004d4]{color:#d4af37;text-shadow:0 1px 2px rgba(0,0,0,.3);font-size:1rem}.message-time[data-v-f25004d4]{font-size:.75rem;color:var(--tori-muted)}.party-bot-message .message-time[data-v-f25004d4]{color:#fffc}.message-text[data-v-f25004d4]{color:var(--tori-fg);line-height:1.5;word-wrap:break-word;white-space:pre-line}.party-bot-message .message-text[data-v-f25004d4]{color:#fffffff2;font-weight:400}.empty-chat[data-v-f25004d4]{text-align:center;padding:40px 20px;color:var(--tori-muted)}.chat-input-container[data-v-f25004d4]{border-top:1px solid var(--tori-border);padding:12px;background:var(--tori-card)}.chat-input-wrapper[data-v-f25004d4]{display:flex;align-items:center;gap:8px}.connection-indicator[data-v-f25004d4]{width:12px;height:12px;border-radius:50%;background:#999;flex-shrink:0;transition:background-color .3s}.connection-indicator.connected[data-v-f25004d4]{background:#4caf50;animation:pulse-f25004d4 2s infinite}@keyframes pulse-f25004d4{0%,to{opacity:1}50%{opacity:.5}}.button-group[data-v-f25004d4]{display:flex;gap:0;align-items:stretch;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #667eea33}.toggle-chat-button[data-v-f25004d4]{padding:10px 12px;background:var(--tori-primary);border:none;border-right:1px solid var(--tori-border);cursor:pointer;font-size:1rem;color:var(--tori-on-primary);transition:all .3s;min-width:40px;display:flex;align-items:center;justify-content:center;box-sizing:border-box;line-height:1.5;font-weight:600;margin:0}.chat-input[data-v-f25004d4]{flex:1;padding:10px 14px;border:1px solid var(--tori-border);border-radius:8px;font-size:1rem;outline:none;transition:border-color .3s}.chat-input[data-v-f25004d4]:focus{border-color:var(--tori-primary)}.chat-input[data-v-f25004d4]:disabled{background:var(--tori-card);cursor:not-allowed}.send-button[data-v-f25004d4]{padding:10px 20px;background:var(--tori-primary);color:var(--tori-on-primary);border:none;cursor:pointer;font-weight:600;font-size:1rem;transition:all .3s;box-sizing:border-box;line-height:1.5;display:flex;align-items:center;justify-content:center;margin:0}.send-button[data-v-f25004d4]:disabled{opacity:.5;cursor:not-allowed}.song-lists-modal-overlay[data-v-681637f6]{position:fixed;inset:0;background:#000000e6;display:flex;align-items:stretch;justify-content:stretch;z-index:3000;overflow:hidden}.song-lists-modal-content[data-v-681637f6]{width:100%;height:100%;background:#1e1e1ef2;display:flex;flex-direction:column;position:relative;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.song-lists-close-btn-top[data-v-681637f6]{position:absolute;top:20px;right:20px;width:40px;height:40px;padding:0;background:var(--tori-card);border:1px solid var(--tori-border);border-radius:50%;color:var(--tori-fg);cursor:pointer;font-size:1.5rem;font-weight:600;display:flex;align-items:center;justify-content:center;transition:all .3s;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10;line-height:1}.song-lists-header[data-v-681637f6]{padding:20px 24px 16px;border-bottom:1px solid var(--tori-border);flex-shrink:0}.song-lists-header h2[data-v-681637f6]{color:var(--tori-fg);margin:0 0 12px;font-size:1.5rem;font-weight:600}.song-lists-pills[data-v-681637f6]{display:flex;flex-wrap:wrap;gap:6px;max-height:200px;overflow-y:auto}.list-pill[data-v-681637f6]{padding:4px 12px;background:var(--tori-card);border:1px solid var(--tori-border);border-radius:4px;color:#fffc;cursor:pointer;font-size:.85rem;transition:all .2s;white-space:nowrap}.list-pill.active[data-v-681637f6]{background:#64b5f64d;border-color:#64b5f699;color:var(--tori-fg);font-weight:600}.song-lists-body[data-v-681637f6]{flex:1;padding:20px 24px;overflow-y:auto;min-height:0}.songs-container[data-v-681637f6]{display:flex;flex-direction:column;gap:4px}.song-item[data-v-681637f6]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--tori-card);border-radius:8px;border:1px solid var(--tori-border);transition:all .2s}.song-info[data-v-681637f6]{color:var(--tori-fg);font-size:1rem;flex:1;display:flex;align-items:center}.song-singer[data-v-681637f6]{color:#fffc;font-weight:500}.song-separator[data-v-681637f6]{color:#ffffff80;margin:0 4px}.song-title[data-v-681637f6]{color:#fffffff2;font-weight:400}.quick-add-btn[data-v-681637f6]{padding:6px 16px;background:#4caf5033;border:1px solid rgba(76,175,80,.4);border-radius:6px;color:#4caf50;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s}.already-added[data-v-681637f6]{color:#ffffff80;font-size:.85rem;font-style:italic}.empty-list[data-v-681637f6]{text-align:center;color:#ffffff80;padding:60px 20px;font-size:1.1rem}.karaoke-view[data-v-12c528d3]{height:100%;display:flex;flex-direction:column}.loading-state[data-v-12c528d3]{text-align:center;color:#ffffffe6;padding:60px 20px;font-size:1.1rem;display:flex;flex-direction:column;align-items:center;gap:16px}.loading-spinner[data-v-12c528d3]{width:40px;height:40px;border:3px solid var(--tori-border);border-top-color:var(--tori-border);border-radius:50%;animation:loading-spin-12c528d3 .8s linear infinite}@keyframes loading-spin-12c528d3{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.empty-state[data-v-12c528d3]{text-align:center;color:#ffffffe6;padding:60px 20px;font-size:1.1rem}.hint[data-v-12c528d3]{font-size:.9rem;margin-top:8px;opacity:.9}.playlist[data-v-12c528d3]{flex:1;overflow-y:auto;padding:8px}.add-song-hint[data-v-12c528d3]{background:var(--tori-card);border:1px solid var(--tori-border);border-radius:8px;padding:12px 16px;margin-bottom:12px}.add-song-hint p[data-v-12c528d3]{margin:0;color:#fffffff2;font-size:.9rem;line-height:1.5}.playlist-item[data-v-12c528d3]{background:var(--tori-card);border-radius:8px;padding:12px 16px;margin-bottom:8px;display:flex;flex-direction:column;gap:8px;transition:all .3s;position:relative;overflow:hidden}.playlist-item.pending-delete[data-v-12c528d3]{background:#f4433633;border:1px solid rgba(244,67,54,.5)}.song-header[data-v-12c528d3]{display:flex;align-items:center;gap:12px}.song-number[data-v-12c528d3]{font-weight:600;color:#fffffff2;min-width:50px;text-align:center}.song-title[data-v-12c528d3]{font-weight:500;color:var(--tori-fg);font-size:1rem}.song-singer[data-v-12c528d3]{font-size:.85rem;color:#ffffffe6}.song-actions[data-v-12c528d3]{display:flex;gap:4px;justify-content:flex-end}.action-btn[data-v-12c528d3]{padding:8px 12px;background:var(--tori-card);border:1px solid var(--tori-border);border-radius:6px;color:var(--tori-fg);cursor:pointer;font-size:1.1rem;font-weight:600;transition:all .2s;min-width:40px;display:flex;align-items:center;justify-content:center;line-height:1}.action-btn[data-v-12c528d3]:disabled{opacity:.3;cursor:not-allowed}.action-btn-first[data-v-12c528d3],.action-btn-up[data-v-12c528d3],.action-btn-down[data-v-12c528d3]{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.action-btn-first[data-v-12c528d3]{font-size:1.2rem}.action-btn-up[data-v-12c528d3],.action-btn-down[data-v-12c528d3]{font-size:1.3rem}.delete-btn[data-v-12c528d3]{background:var(--tori-card);border-color:var(--tori-border);padding:8px 12px}.delete-icon[data-v-12c528d3]{display:inline-block;width:16px;height:16px;position:relative;color:#fffffff2}.delete-icon[data-v-12c528d3]:before,.delete-icon[data-v-12c528d3]:after{content:"";position:absolute;top:50%;left:50%;width:14px;height:2px;background:currentColor;border-radius:1px}.delete-icon[data-v-12c528d3]:before{transform:translate(-50%,-50%) rotate(45deg)}.delete-icon[data-v-12c528d3]:after{transform:translate(-50%,-50%) rotate(-45deg)}.cancel-btn[data-v-12c528d3]{background:#4caf5040;border-color:#4caf5066;font-size:.85rem;font-weight:500;padding:8px 12px;min-width:50px}.delete-progress-bar[data-v-12c528d3]{position:absolute;bottom:0;left:0;right:0;height:2px;background-color:#0003;overflow:hidden}.delete-progress-fill[data-v-12c528d3]{height:100%;width:100%;background-color:#f44336;animation:deleteCountdown-12c528d3 linear forwards}@keyframes deleteCountdown-12c528d3{0%{transform:translate(0)}to{transform:translate(-100%)}}.chord-btn[data-v-12c528d3]{font-size:.9rem;font-weight:600}.youtube-btn[data-v-12c528d3]{text-decoration:none;color:var(--tori-fg);display:flex;align-items:center;justify-content:center;padding:8px}.youtube-btn svg[data-v-12c528d3]{width:20px;height:20px;display:block}.chord-spinner[data-v-12c528d3]{width:16px;height:16px;border:2px solid var(--tori-border);border-top-color:var(--tori-border);border-radius:50%;animation:chord-spin-12c528d3 .8s linear infinite}.chord-error-icon[data-v-12c528d3]{font-size:1rem;color:#ff6b6b;display:inline-block}@keyframes chord-spin-12c528d3{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.chord-modal-overlay[data-v-12c528d3]{position:fixed;inset:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:3000;padding:20px 0;overflow-y:auto}.chord-modal-content[data-v-12c528d3]{display:flex;flex-direction:column;align-items:center;max-width:100%;width:100%;max-height:100dvh;position:relative;padding-top:70px}.chord-image[data-v-12c528d3]{width:auto;height:auto;max-width:100vw;object-fit:contain;margin-bottom:20px;border-radius:8px;box-shadow:0 4px 20px #00000080}.chord-qr-container[data-v-12c528d3]{display:flex;justify-content:center;align-items:center;margin-bottom:20px;padding:16px;background:var(--tori-card);border-radius:8px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.chord-qr-code[data-v-12c528d3]{width:200px;height:200px;border-radius:8px;background:var(--tori-card);padding:8px}.chord-close-btn[data-v-12c528d3]{padding:12px 32px;background:var(--tori-card);border:1px solid var(--tori-border);border-radius:8px;color:var(--tori-fg);cursor:pointer;font-size:1rem;font-weight:600;transition:all .3s;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.chord-close-btn-top[data-v-12c528d3]{position:absolute;top:20px;right:20px;width:40px;height:40px;padding:0;background:var(--tori-card);border:2px solid var(--tori-border);border-radius:50%;color:var(--tori-fg);cursor:pointer;font-size:1.5rem;font-weight:700;display:flex;align-items:center;justify-content:center;transition:all .3s;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10;line-height:1;text-shadow:0 1px 2px rgba(255,255,255,.8)}.modal-overlay[data-v-e5015671]{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content[data-v-e5015671]{background:var(--tori-card);padding:0;border-radius:0;width:100%;height:100%;overflow-y:auto;box-shadow:none}.modal-header[data-v-e5015671]{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--tori-border);background:var(--tori-card);border-radius:0}.modal-header h2[data-v-e5015671]{margin:0;font-size:22px;color:var(--tori-fg)}.close-btn[data-v-e5015671]{background:none;border:none;font-size:28px;cursor:pointer;color:var(--tori-muted);padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.modal-body[data-v-e5015671]{padding:24px}.modal-footer[data-v-e5015671]{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--tori-border);background:var(--tori-card);border-radius:0}.config-section[data-v-2f0fce8a]{margin-bottom:24px}.config-section label[data-v-2f0fce8a]{display:block;margin-bottom:12px;color:var(--tori-fg);font-weight:500}.player-count-controls[data-v-2f0fce8a]{display:flex;align-items:center;gap:16px;justify-content:center}.count-control-btn[data-v-2f0fce8a]{width:40px;height:40px;border:1px solid rgba(0,0,0,.2);background:#0000000d;color:var(--tori-fg);border-radius:6px;cursor:pointer;font-size:1.5rem;display:flex;align-items:center;justify-content:center}.count-control-btn[data-v-2f0fce8a]:disabled{opacity:.5;cursor:not-allowed}.player-count-display[data-v-2f0fce8a]{min-width:80px;text-align:center;color:var(--tori-fg);font-weight:700;font-size:1.2rem}.empty-config[data-v-2f0fce8a]{padding:20px;text-align:center;color:var(--tori-muted);background:#00000008;border-radius:8px;margin-bottom:12px}.current-config-grid[data-v-2f0fce8a]{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:12px}.role-card[data-v-2f0fce8a]{background:#0000000d;border-radius:8px;cursor:pointer;transition:all .2s;overflow:hidden;position:relative}.role-image-card[data-v-2f0fce8a]{aspect-ratio:3 / 4;display:flex;flex-direction:column;padding:0;position:relative}.role-image[data-v-2f0fce8a]{width:100%;flex:1;object-fit:cover;display:block}.role-name-overlay[data-v-2f0fce8a]{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,#000000d9,#0009);color:var(--tori-fg);padding:8px;font-size:.85rem;text-align:center;font-weight:500;min-height:32px;display:flex;align-items:center;justify-content:center}.config-summary[data-v-2f0fce8a]{padding:8px 12px;background:#4caf5026;border-radius:6px;text-align:center;color:#2e7d32;font-size:.9rem}.no-preset-hint[data-v-2f0fce8a]{padding:12px;text-align:center;color:var(--tori-muted);background:#00000008;border-radius:6px;font-size:.9rem}.no-configured-roles[data-v-2f0fce8a]{padding:12px;text-align:center;color:var(--tori-muted);background:#ff98001a;border:1px solid rgba(255,152,0,.3);border-radius:6px;font-size:.9rem}.preset-buttons[data-v-2f0fce8a]{display:flex;gap:12px;flex-wrap:wrap}.preset-btn[data-v-2f0fce8a]{padding:12px 16px;background:#0000000d;color:var(--tori-fg);border:1px solid rgba(0,0,0,.15);border-radius:8px;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;gap:8px;min-width:150px}.preset-btn.history-preset[data-v-2f0fce8a]{background:#4caf5026;border-color:#4caf504d}.loading-configs[data-v-2f0fce8a]{padding:12px;text-align:center;color:var(--tori-muted);font-size:.9rem}.preset-title[data-v-2f0fce8a]{font-weight:700;font-size:1rem;color:var(--tori-fg)}.preset-roles[data-v-2f0fce8a]{display:flex;flex-wrap:wrap;gap:6px;font-size:.85rem}.preset-role-tag[data-v-2f0fce8a]{background:#00000014;padding:4px 8px;border-radius:4px;color:var(--tori-fg)}.available-roles-grid[data-v-2f0fce8a]{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.available-role[data-v-2f0fce8a]{border:2px solid rgba(33,150,243,.4)}.available-role.disabled[data-v-2f0fce8a]{opacity:.5;cursor:not-allowed;filter:grayscale(.5)}.config-full-message[data-v-2f0fce8a]{padding:20px;text-align:center;color:var(--tori-muted);background:#4caf501a;border:1px solid rgba(76,175,80,.3);border-radius:8px;font-size:1rem;font-weight:500}.role-count-overlay[data-v-2f0fce8a]{position:absolute;top:50%;right:8px;transform:translateY(-50%);background:#4caf50f2;color:var(--tori-fg);padding:4px 8px;border-radius:4px;font-size:.75rem;font-weight:700;z-index:5;box-shadow:0 2px 4px #0000004d}.cancel-btn[data-v-2f0fce8a],.start-btn[data-v-2f0fce8a]{padding:10px 20px;border:none;border-radius:6px;cursor:pointer;font-size:1rem}.cancel-btn[data-v-2f0fce8a]{background:#0000000d;color:var(--tori-fg)}.start-btn[data-v-2f0fce8a]{background:#4caf50;color:var(--tori-fg)}.start-btn[data-v-2f0fce8a]:disabled{opacity:.5;cursor:not-allowed}.no-preferences[data-v-2f0fce8a]{padding:12px;text-align:center}.add-preference-btn[data-v-2f0fce8a]{padding:8px 16px;background:#2196f31a;color:#2196f3;border:1px solid rgba(33,150,243,.3);border-radius:6px;cursor:pointer;font-size:.9rem;transition:all .2s}.add-preference-btn[data-v-2f0fce8a]:hover{background:#2196f333}.preferences-list[data-v-2f0fce8a]{display:flex;flex-direction:column;gap:8px}.preference-item[data-v-2f0fce8a]{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#4caf501a;border-radius:6px;font-size:.9rem}.preference-label[data-v-2f0fce8a]{font-weight:500;color:var(--tori-fg)}.preference-roles[data-v-2f0fce8a]{display:flex;gap:8px;flex-wrap:wrap;flex:1}.preference-role-image[data-v-2f0fce8a]{display:flex;flex-direction:column;align-items:center;gap:4px;position:relative}.preference-role-img[data-v-2f0fce8a]{width:60px;height:80px;object-fit:cover;border-radius:6px;border:2px solid rgba(76,175,80,.3)}.preference-role-name[data-v-2f0fce8a]{font-size:.75rem;color:#2e7d32;text-align:center}.remove-preference-btn[data-v-2f0fce8a]{background:#f443361a;color:#f44336;border:none;border-radius:4px;width:24px;height:24px;cursor:pointer;font-size:1.2rem;line-height:1;display:flex;align-items:center;justify-content:center;transition:all .2s}.remove-preference-btn[data-v-2f0fce8a]:hover{background:#f4433633}.add-preference-form[data-v-2f0fce8a]{margin-top:12px;padding:16px;background:#00000008;border-radius:8px;border:1px solid rgba(0,0,0,.1)}.form-row[data-v-2f0fce8a]{margin-bottom:16px}.form-row label[data-v-2f0fce8a]{display:block;margin-bottom:8px;color:var(--tori-fg);font-size:.9rem}.player-select[data-v-2f0fce8a]{width:100%;padding:8px 12px;border:1px solid rgba(0,0,0,.2);border-radius:6px;background:var(--tori-card);font-size:.9rem;color:var(--tori-fg)}.player-button-group[data-v-2f0fce8a]{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px;margin-top:8px}.player-button[data-v-2f0fce8a]{padding:10px 16px;border:2px solid rgba(0,0,0,.15);border-radius:6px;background:var(--tori-card);color:var(--tori-fg);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s;outline:none}.player-button[data-v-2f0fce8a]:hover{border-color:#2196f380;background:#2196f30d;color:#2196f3}.player-button.selected[data-v-2f0fce8a]{border-color:var(--tori-border);background:#2196f3;color:var(--tori-fg);box-shadow:0 2px 4px #2196f34d}.player-button.selected[data-v-2f0fce8a]:hover{background:#1976d2;border-color:var(--tori-border)}.role-selection-grid[data-v-2f0fce8a]{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.role-selection-item[data-v-2f0fce8a]{display:flex;flex-direction:column;cursor:pointer;position:relative;border-radius:8px;overflow:hidden;transition:all .2s}.role-selection-item[data-v-2f0fce8a]:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.role-selection-item.selected .role-selection-content[data-v-2f0fce8a]{border-color:#4caf50;border-width:4px;background:#4caf501a}.role-selection-item:not(.selected) .role-selection-img[data-v-2f0fce8a]{filter:grayscale(100%);opacity:.6}.role-selection-checkbox[data-v-2f0fce8a]{position:absolute;top:4px;right:4px;width:28px;height:28px;z-index:1;cursor:pointer;accent-color:#4CAF50}.role-selection-content[data-v-2f0fce8a]{display:flex;flex-direction:column;align-items:center;gap:4px;padding:4px;border:2px solid rgba(0,0,0,.2);border-radius:8px;background:#00000005;transition:all .2s}.role-selection-img[data-v-2f0fce8a]{width:100%;aspect-ratio:3 / 4;object-fit:cover;border-radius:6px;display:block}.role-selection-name[data-v-2f0fce8a]{font-size:.75rem;color:var(--tori-fg);text-align:center;font-weight:500}.form-actions[data-v-2f0fce8a]{display:flex;gap:8px;justify-content:flex-end}.confirm-preference-btn[data-v-2f0fce8a],.cancel-preference-btn[data-v-2f0fce8a]{padding:8px 16px;border:none;border-radius:6px;cursor:pointer;font-size:.9rem}.confirm-preference-btn[data-v-2f0fce8a]{background:#4caf50;color:var(--tori-fg)}.confirm-preference-btn[data-v-2f0fce8a]:disabled{opacity:.5;cursor:not-allowed}.cancel-preference-btn[data-v-2f0fce8a]{background:#0000000d;color:var(--tori-fg)}.role-card-container[data-v-35cfd3aa]{display:flex;flex-direction:column;align-items:center;gap:8px;position:relative;perspective:1000px}.role-card-container.dead[data-v-35cfd3aa],.role-card-container.dead .card-image[data-v-35cfd3aa]{filter:grayscale(100%)}.role-card-container.confirmed[data-v-35cfd3aa]{opacity:.6}.role-card-inner[data-v-35cfd3aa]{position:relative;width:100%;aspect-ratio:3 / 4;transform-style:preserve-3d;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.role-card-front[data-v-35cfd3aa]{position:absolute;top:0;left:0;width:100%;height:100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform-style:preserve-3d;border-radius:8px;overflow:hidden}.card-image[data-v-35cfd3aa]{width:100%;height:100%;object-fit:cover;display:block}.player-number-overlay[data-v-35cfd3aa]{position:absolute;inset:50% 0 auto;width:100%;min-height:60px;background:#000000bf;color:var(--tori-fg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;font-weight:700;font-size:2.5rem;z-index:10;box-shadow:0 2px 4px #0000004d;transform:translateY(-50%);padding:8px}.player-number-text[data-v-35cfd3aa]{display:block;line-height:1;font-size:2.5rem}.swipe-hint-inline[data-v-35cfd3aa],.tap-hint-inline[data-v-35cfd3aa]{display:flex;align-items:center;gap:8px;font-size:1rem;opacity:.9}.pointer-icon[data-v-35cfd3aa]{width:18px;height:18px;display:inline-block;vertical-align:middle;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.swipe-pointer[data-v-35cfd3aa]{animation:swipe-hand-move-35cfd3aa 1.5s ease-in-out infinite}.tap-pointer[data-v-35cfd3aa]{animation:tap-press-inline-35cfd3aa 1.5s ease-in-out infinite}.hint-text-inline[data-v-35cfd3aa]{font-size:.9rem;color:#ffffffe6;font-weight:500;text-shadow:0 1px 3px rgba(0,0,0,.5);white-space:nowrap}@keyframes swipe-hand-move-35cfd3aa{0%,to{transform:translate(-15px);opacity:.8}50%{transform:translate(15px);opacity:1}}@keyframes tap-press-inline-35cfd3aa{0%,to{transform:scale(1) translateY(0);opacity:.8}25%{transform:scale(.9) translateY(3px);opacity:.9}50%{transform:scale(1.1) translateY(-3px);opacity:1}75%{transform:scale(1) translateY(0);opacity:.9}}.werewolf-view[data-v-aa2853d2]{height:100%;display:flex;flex-direction:column}.loading-state[data-v-aa2853d2]{text-align:center;color:#fff9;padding:60px 20px;font-size:1.1rem;display:flex;flex-direction:column;align-items:center;gap:16px}.loading-spinner[data-v-aa2853d2]{width:40px;height:40px;border:3px solid var(--tori-border);border-top-color:var(--tori-border);border-radius:50%;animation:loading-spin-aa2853d2 .8s linear infinite}@keyframes loading-spin-aa2853d2{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.not-started-state[data-v-aa2853d2]{text-align:center;color:#fff9;padding:60px 20px;display:flex;flex-direction:column;align-items:center;gap:20px}.title[data-v-aa2853d2]{font-size:2rem;font-weight:700;color:#ffffffe6}.hint[data-v-aa2853d2]{font-size:1.1rem;opacity:.7}.waiting-hint[data-v-aa2853d2]{font-size:1rem;opacity:.6}.start-game-btn[data-v-aa2853d2]{padding:12px 24px;font-size:1.1rem;background:#4caf50;color:var(--tori-fg);border:none;border-radius:8px;cursor:pointer;transition:background .2s}.game-started[data-v-aa2853d2]{flex:1;overflow-y:auto;padding:16px}.players-section[data-v-aa2853d2]{margin-bottom:32px}.section-title[data-v-aa2853d2]{font-size:1.3rem;font-weight:700;color:#ffffffe6;margin-bottom:16px;padding-bottom:8px;border-bottom:2px solid var(--tori-border)}.players-grid[data-v-aa2853d2]{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.player-card[data-v-aa2853d2]{background:var(--tori-card);border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:12px}.player-card.confirmed[data-v-aa2853d2]{opacity:.6}.player-card.dead[data-v-aa2853d2]{background:#8b00004d;text-decoration:line-through}.player-header[data-v-aa2853d2]{display:flex;justify-content:space-between;align-items:center}.player-number[data-v-aa2853d2]{font-weight:700;color:#ffffffe6}.dead-badge[data-v-aa2853d2]{background:#ff000080;color:var(--tori-fg);padding:4px 8px;border-radius:4px;font-size:.8rem}.player-actions[data-v-aa2853d2]{display:flex;flex-direction:column;gap:8px}.view-role-btn[data-v-aa2853d2],.mark-dead-btn[data-v-aa2853d2]{padding:8px 16px;border:none;border-radius:6px;cursor:pointer;font-size:.9rem;transition:all .2s}.view-role-btn[data-v-aa2853d2]{background:#2196f3;color:var(--tori-fg);padding:12px 24px;font-size:1.1rem}.mark-dead-btn[data-v-aa2853d2]{background:#ff00004d;color:var(--tori-fg)}.mark-dead-btn.mark-alive[data-v-aa2853d2]{background:#4caf504d}.role-modal-overlay[data-v-aa2853d2]{position:fixed;inset:0;background:#000000f2;display:flex;align-items:center;justify-content:center;z-index:2000}.role-modal-content[data-v-aa2853d2]{position:relative;width:90%;max-width:800px;max-height:90vh;display:flex;flex-direction:column;align-items:center;justify-content:center}.role-display[data-v-aa2853d2]{display:flex;flex-direction:column;align-items:center;gap:24px}.role-image[data-v-aa2853d2]{max-width:100%;max-height:70vh;object-fit:contain;border-radius:8px}.role-name[data-v-aa2853d2]{font-size:2rem;font-weight:700;color:var(--tori-fg);text-align:center}.confirm-hint[data-v-aa2853d2]{font-size:1.2rem;color:#fffc;text-align:center;margin-top:16px;animation:pulse-aa2853d2 2s ease-in-out infinite}@keyframes pulse-aa2853d2{0%,to{opacity:.7}50%{opacity:1}}.loading-role[data-v-aa2853d2]{display:flex;flex-direction:column;align-items:center;gap:16px;color:var(--tori-fg)}.all-roles-revealed[data-v-aa2853d2]{padding:16px}.controls-bar[data-v-aa2853d2]{margin-bottom:24px;display:flex;justify-content:center}.toggle-all-btn[data-v-aa2853d2]{padding:12px 24px;background:#2196f3;color:var(--tori-fg);border:none;border-radius:8px;cursor:pointer;font-size:1rem;transition:background .2s}.toggle-all-btn[data-v-aa2853d2]:hover{background:#1976d2}.role-cards-grid[data-v-aa2853d2]{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.role-card-container[data-v-aa2853d2]{display:flex;flex-direction:column;align-items:center;gap:8px;position:relative;perspective:1000px}.role-card-container.dead[data-v-aa2853d2],.role-card-container.dead .card-image[data-v-aa2853d2]{filter:grayscale(100%)}.role-card-inner[data-v-aa2853d2]{position:relative;width:100%;aspect-ratio:3 / 4;transform-style:preserve-3d;cursor:pointer}.role-card-front[data-v-aa2853d2],.role-card-back[data-v-aa2853d2]{position:absolute;top:0;left:0;width:100%;height:100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;transition:transform .6s;transform-style:preserve-3d;border-radius:8px;overflow:hidden}.role-card-front[data-v-aa2853d2]{transform:rotateY(0)}.role-card-back[data-v-aa2853d2]{transform:rotateY(180deg)}.role-card-container.flipped .role-card-front[data-v-aa2853d2]{transform:rotateY(-180deg)}.role-card-container.flipped .role-card-back[data-v-aa2853d2]{transform:rotateY(0)}.card-image[data-v-aa2853d2]{width:100%;height:100%;object-fit:cover;display:block}.player-number-overlay[data-v-aa2853d2]{position:absolute;bottom:0;left:0;right:0;width:100%;height:32px;background:#000000bf;color:var(--tori-fg);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem;z-index:10;box-shadow:0 2px 4px #0000004d;border-radius:0 0 8px 8px;padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pre-reveal-roles .player-number-overlay[data-v-aa2853d2]{top:50%;bottom:auto;transform:translateY(-50%);font-size:2.5rem;height:60px;border-radius:0}.player-number-overlay span[data-v-aa2853d2]{display:block;line-height:1}.role-count-overlay[data-v-aa2853d2]{position:absolute;bottom:0;left:0;right:0;width:100%;height:32px;background:#000000bf;color:var(--tori-fg);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;z-index:10;box-shadow:0 2px 4px #0000004d;border-radius:0 0 8px 8px}.role-count-overlay span[data-v-aa2853d2]{display:block;line-height:1}.role-card-caption[data-v-aa2853d2]{font-weight:700;color:#ffffffe6;font-size:1rem;text-align:center;margin-top:8px}.pre-reveal-roles[data-v-aa2853d2]{padding:16px}.pre-reveal-section[data-v-aa2853d2]{margin-bottom:32px}.pre-reveal-cards-grid[data-v-aa2853d2]{display:grid;grid-template-columns:1fr;gap:16px}.pre-reveal-roles .role-card-inner[data-v-aa2853d2]{cursor:pointer}.pre-reveal-roles .role-card-back[data-v-aa2853d2]{display:none}.pre-reveal-cards-grid .confirmed[data-v-aa2853d2]{opacity:.6}.card-dead-btn[data-v-aa2853d2]{padding:6px 12px;border:none;border-radius:6px;cursor:pointer;font-size:.85rem;transition:all .2s;background:#ff00004d;color:var(--tori-fg)}.card-dead-btn[data-v-aa2853d2]:hover{background:#ff000080}.card-dead-btn.mark-alive[data-v-aa2853d2]{background:#4caf504d}.card-dead-btn.mark-alive[data-v-aa2853d2]:hover{background:#4caf5080}.config-section[data-v-4dfe4e64]{margin-bottom:24px}.config-section label[data-v-4dfe4e64]{display:block;margin-bottom:10px;font-weight:600;color:var(--tori-fg);font-size:15px}.topic-input[data-v-4dfe4e64]{width:100%;padding:10px 12px;font-size:14px;border:2px solid var(--tori-border);border-radius:8px;transition:border-color .2s}.topic-input[data-v-4dfe4e64]:focus{outline:none}.topic-buttons[data-v-4dfe4e64]{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.topic-btn[data-v-4dfe4e64]{padding:6px 12px;border:2px solid var(--tori-border);background:var(--tori-card);border-radius:8px;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s}.topic-btn.selected[data-v-4dfe4e64]{background:#4caf50;border-color:#4caf50;color:var(--tori-fg)}.difficulty-buttons[data-v-4dfe4e64],.word-count-buttons[data-v-4dfe4e64]{display:flex;gap:6px;flex-wrap:wrap}.difficulty-btn[data-v-4dfe4e64],.word-count-btn[data-v-4dfe4e64]{padding:6px 12px;border:2px solid var(--tori-border);background:var(--tori-card);border-radius:8px;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s}.difficulty-btn.selected[data-v-4dfe4e64],.word-count-btn.selected[data-v-4dfe4e64]{background:#4caf50;border-color:#4caf50;color:var(--tori-fg)}.config-summary[data-v-4dfe4e64]{background:var(--tori-card);padding:16px;border-radius:8px;margin-top:20px}.summary-item[data-v-4dfe4e64]{display:flex;justify-content:space-between;margin-bottom:8px}.summary-item[data-v-4dfe4e64]:last-child{margin-bottom:0}.summary-label[data-v-4dfe4e64]{font-weight:600;color:var(--tori-muted)}.summary-value[data-v-4dfe4e64]{color:var(--tori-fg)}.cancel-btn[data-v-4dfe4e64],.start-btn[data-v-4dfe4e64]{padding:10px 24px;border:none;border-radius:8px;cursor:pointer;font-size:15px;font-weight:600;transition:all .2s}.cancel-btn[data-v-4dfe4e64]{background:var(--tori-card);color:var(--tori-fg)}.start-btn[data-v-4dfe4e64]{background:#4caf50;color:var(--tori-fg)}.start-btn[data-v-4dfe4e64]:disabled{background:#ccc;cursor:not-allowed}.word-modal-overlay[data-v-37220db9]{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000f2;display:flex;justify-content:center;align-items:center;z-index:2000}.word-modal-content[data-v-37220db9]{position:relative;width:100%;height:100%;display:flex;justify-content:center;align-items:center;padding:60px 40px;box-sizing:border-box}.close-btn[data-v-37220db9]{position:absolute;top:20px;right:20px;background:var(--tori-card);border:2px solid var(--tori-border);color:var(--tori-fg);font-size:clamp(24px,3vw,40px);cursor:pointer;padding:12px 20px;border-radius:8px;transition:all .2s;z-index:10}.close-btn[data-v-37220db9]:hover{background:var(--tori-card);border-color:var(--tori-border)}.word-display[data-v-37220db9]{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--tori-fg);width:100%;max-width:100%;padding:0 20px;box-sizing:border-box}.word-chinese[data-v-37220db9]{font-size:clamp(60px,20vw,300px);font-weight:700;line-height:1.1;margin-bottom:clamp(20px,5vh,60px);text-shadow:0 4px 20px rgba(0,0,0,.5);word-break:break-word;overflow-wrap:break-word;max-width:100%}.word-english[data-v-37220db9]{font-size:clamp(40px,12vw,200px);font-weight:600;line-height:1.1;opacity:.9;text-shadow:0 4px 20px rgba(0,0,0,.5);word-break:break-word;overflow-wrap:break-word;max-width:100%}.keyboard-hint[data-v-37220db9]{position:absolute;bottom:20px;right:20px;color:#ffffff80;font-size:14px;font-weight:400;z-index:10}@media(max-width:768px){.word-modal-content[data-v-37220db9]{padding:40px 20px}.close-btn[data-v-37220db9]{top:10px;right:10px;padding:8px 16px}.keyboard-hint[data-v-37220db9]{bottom:10px;right:10px;font-size:12px}}.articulate-container[data-v-169b131d]{display:flex;flex-direction:column;height:100%;padding:20px}.loading-state[data-v-169b131d],.not-started-state[data-v-169b131d]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--tori-muted)}.spinner[data-v-169b131d]{border:3px solid var(--tori-border);border-top:3px solid #4CAF50;border-radius:50%;width:40px;height:40px;animation:spin-169b131d 1s linear infinite;margin-bottom:16px}@keyframes spin-169b131d{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.empty-message[data-v-169b131d]{text-align:center;padding:40px;background:var(--tori-card);border-radius:12px}.empty-message h3[data-v-169b131d]{margin:0 0 12px;color:var(--tori-fg)}.empty-message p[data-v-169b131d]{margin:0;color:var(--tori-muted)}.game-view[data-v-169b131d]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.game-content[data-v-169b131d]{max-width:600px;width:100%}.current-word-section[data-v-169b131d]{text-align:center;margin-bottom:40px}.word-label[data-v-169b131d]{font-size:18px;color:var(--tori-muted);margin-bottom:16px;font-weight:500}.current-word[data-v-169b131d]{font-size:48px;font-weight:700;padding:20px;background:var(--tori-bg);color:var(--tori-fg);border-radius:16px;box-shadow:0 4px 20px #667eea4d;min-height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:transform .2s,box-shadow .2s}.current-word[data-v-169b131d]:hover{transform:scale(1.02);box-shadow:0 6px 25px #667eea66}.word-chinese[data-v-169b131d]{font-size:48px;line-height:1.2;margin-bottom:8px}.word-english[data-v-169b131d]{font-size:36px;line-height:1.2;opacity:.9}.game-complete-section[data-v-169b131d]{text-align:center;margin-bottom:40px;padding:40px;background:var(--tori-card);border-radius:16px}.complete-icon[data-v-169b131d]{font-size:64px;margin-bottom:16px}.game-complete-section h2[data-v-169b131d]{margin:0 0 8px;color:var(--tori-fg)}.game-complete-section p[data-v-169b131d]{margin:0;color:var(--tori-muted)}.stats-section[data-v-169b131d]{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:24px}.stat-item[data-v-169b131d]{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--tori-card);border-radius:8px;box-shadow:0 2px 8px #0000001a}.stat-item.correct[data-v-169b131d]{border-left:4px solid #4CAF50}.stat-item.passed[data-v-169b131d],.stat-item.remaining[data-v-169b131d]{border-left:4px solid var(--tori-border)}.stat-icon[data-v-169b131d]{font-size:18px;font-weight:700}.stat-item.correct .stat-icon[data-v-169b131d]{color:#4caf50}.stat-item.passed .stat-icon[data-v-169b131d]{color:#ff9800}.stat-item.remaining .stat-icon[data-v-169b131d]{color:#2196f3}.stat-content[data-v-169b131d]{flex:1}.stat-label[data-v-169b131d]{font-size:12px;color:var(--tori-muted);margin-bottom:2px}.stat-value[data-v-169b131d]{font-size:18px;font-weight:700;color:var(--tori-fg)}.action-buttons[data-v-169b131d]{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:16px}.action-btn[data-v-169b131d]{display:flex;align-items:center;justify-content:center;gap:8px;padding:20px;border:none;border-radius:12px;font-size:18px;font-weight:600;cursor:pointer;transition:all .2s;color:var(--tori-fg);width:100%}.correct-btn[data-v-169b131d]{background:linear-gradient(135deg,#4caf50,#45a049);box-shadow:0 4px 12px #4caf504d}.pass-btn[data-v-169b131d]{background:linear-gradient(135deg,#ff9800,#f57c00);box-shadow:0 4px 12px #ff98004d}.action-btn[data-v-169b131d]:disabled{background:var(--tori-card);color:var(--tori-muted);cursor:not-allowed;box-shadow:none}.btn-icon[data-v-169b131d]{font-size:18px}.game-info[data-v-169b131d]{display:flex;justify-content:center;gap:24px;flex-wrap:wrap;padding:16px;background:var(--tori-card);border-radius:8px}.info-item[data-v-169b131d]{display:flex;gap:6px}.info-label[data-v-169b131d]{font-weight:600;color:var(--tori-muted)}.info-value[data-v-169b131d]{color:var(--tori-fg)}@media(max-width:600px){.current-word[data-v-169b131d]{min-height:100px;padding:16px}.word-chinese[data-v-169b131d]{font-size:36px}.word-english[data-v-169b131d]{font-size:28px}.stat-value[data-v-169b131d]{font-size:16px}.stat-label[data-v-169b131d]{font-size:11px}.stat-icon[data-v-169b131d],.action-btn[data-v-169b131d],.btn-icon[data-v-169b131d]{font-size:16px}}.room-view[data-v-4287de2f]{display:flex;flex-direction:column;height:100dvh;background:var(--tori-bg)}.room-header[data-v-4287de2f]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:var(--tori-card);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--tori-border);position:relative;z-index:100}.room-header h2[data-v-4287de2f]{color:var(--tori-fg);font-size:1.5rem;margin:0}.room-name-container[data-v-4287de2f]{position:relative}.room-name-clickable[data-v-4287de2f]{cursor:pointer;transition:opacity .2s}.room-name-clickable[data-v-4287de2f]:hover{opacity:.8}.qrcode-dropdown[data-v-4287de2f]{position:absolute;top:calc(100% + 12px);left:0;background:var(--tori-card);border-radius:12px;box-shadow:0 8px 32px #0000004d;padding:20px;z-index:5000;min-width:200px}.qrcode-content[data-v-4287de2f]{display:flex;flex-direction:column;align-items:center;gap:12px}.qrcode-image[data-v-4287de2f]{width:200px;height:200px;cursor:pointer;border-radius:8px}.qrcode-hint[data-v-4287de2f]{margin:0;font-size:.85rem;color:var(--tori-muted);text-align:center}.header-menu[data-v-4287de2f]{position:relative}.menu-toggle[data-v-4287de2f]{padding:8px 12px;background:var(--tori-card);color:var(--tori-fg);border:1px solid var(--tori-border);border-radius:6px;cursor:pointer;font-size:1.2rem;transition:all .3s;display:flex;align-items:center;justify-content:center;min-width:40px}.dropdown-menu[data-v-4287de2f]{position:absolute;top:calc(100% + 8px);right:0;background:var(--tori-card);border-radius:8px;box-shadow:0 4px 12px #00000026;min-width:200px;z-index:3000;overflow:hidden}.menu-section[data-v-4287de2f]{padding:8px 0}.menu-label[data-v-4287de2f]{padding:8px 16px;font-size:.75rem;font-weight:600;color:var(--tori-muted);text-transform:uppercase;letter-spacing:.5px}.menu-item[data-v-4287de2f]{width:100%;padding:12px 16px;background:none;border:none;text-align:left;cursor:pointer;font-size:.95rem;color:var(--tori-fg);transition:background-color .2s;display:block}.menu-item.disabled[data-v-4287de2f]{opacity:.5;cursor:not-allowed;color:var(--tori-muted)}.menu-item.active[data-v-4287de2f]{background:#e3f2fd;color:#1976d2;font-weight:600}.menu-item-danger[data-v-4287de2f]{color:#d32f2f}.menu-divider[data-v-4287de2f]{height:1px;background:var(--tori-card);margin:4px 0}.room-content[data-v-4287de2f]{display:flex;flex-direction:column;flex:1;overflow:hidden}.activities-section[data-v-4287de2f]{flex:1;min-height:0;padding:20px;overflow-y:auto;background:var(--tori-card);position:relative}.activity-header[data-v-4287de2f]{margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid var(--tori-border);display:flex;justify-content:space-between;align-items:center}.activity-header-actions[data-v-4287de2f]{display:flex;gap:8px;align-items:center}.activity-header h3[data-v-4287de2f]{color:var(--tori-fg);font-size:1.3rem;margin:0;font-weight:600}.activity-header-btn[data-v-4287de2f]{padding:6px 12px;background:var(--tori-card);border:1px solid var(--tori-border);border-radius:6px;color:var(--tori-fg);cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s}.activity-header-btn.new-game-btn[data-v-4287de2f]{background:#4caf50;border-color:#4caf50}.activity-header-btn.random-songs-btn[data-v-4287de2f]{background:linear-gradient(135deg,#ff6b9d,#c44569);border-color:#ff6b9d80;box-shadow:0 2px 8px #ff6b9d4d}.activity-header-btn.random-songs-btn[data-v-4287de2f]:hover:not(:disabled){background:linear-gradient(135deg,#ff8ab3,#d45a7f);box-shadow:0 4px 12px #ff6b9d66;transform:translateY(-1px)}.activity-header-btn.random-songs-btn[data-v-4287de2f]:disabled{opacity:.6;cursor:not-allowed;transform:none}.activities-placeholder[data-v-4287de2f]{text-align:center;color:#fffc;padding:40px 20px}.activities-placeholder p[data-v-4287de2f]{margin:10px 0;font-size:1.1rem}.activities-placeholder .hint[data-v-4287de2f]{font-size:.9rem;opacity:.7}.participants-view[data-v-4287de2f]{display:flex;flex-direction:column;height:100%}.participants-list[data-v-4287de2f]{flex:1;overflow-y:auto;padding:10px 0}.participant-item[data-v-4287de2f]{display:flex;align-items:center;gap:12px;padding:12px 16px;margin:4px 0;background:var(--tori-card);border-radius:8px;color:var(--tori-fg);transition:background-color .2s}.participant-icon[data-v-4287de2f]{font-size:1.2rem}.participant-name[data-v-4287de2f]{flex:1;font-size:1rem;font-weight:500}.participant-badge[data-v-4287de2f]{padding:4px 8px;background:#4caf504d;border:1px solid rgba(76,175,80,.5);border-radius:12px;font-size:.75rem;font-weight:600;color:#4caf50;margin-left:8px}.owner-badge[data-v-4287de2f]{background:#ffc1074d;border:1px solid rgba(255,193,7,.5);color:#ffc107}.empty-state[data-v-4287de2f]{text-align:center;color:#fff9;padding:60px 20px;font-size:1.1rem}.participants-count[data-v-4287de2f]{padding:12px 16px;text-align:center;color:#fffc;font-size:.9rem;border-top:1px solid var(--tori-border);margin-top:auto}.dialog-overlay[data-v-4287de2f]{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dialog-content[data-v-4287de2f]{background:var(--tori-card);border-radius:12px;padding:24px;min-width:300px;max-width:90%;box-shadow:0 8px 32px #0000004d}.dialog-content h3[data-v-4287de2f]{margin:0 0 16px;font-size:1.25rem;color:var(--tori-fg)}.dialog-input[data-v-4287de2f]{width:100%;padding:12px;border:2px solid var(--tori-border);border-radius:8px;font-size:1rem;margin-bottom:16px;outline:none;transition:border-color .3s;box-sizing:border-box}.dialog-input[data-v-4287de2f]:focus{border-color:var(--tori-primary)}.dialog-actions[data-v-4287de2f]{display:flex;gap:12px;justify-content:flex-end}.btn-dialog[data-v-4287de2f]{padding:10px 20px;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .3s}.btn-cancel[data-v-4287de2f]{background:var(--tori-card);color:var(--tori-fg)}.btn-dialog.btn-primary[data-v-4287de2f]{background:var(--tori-primary);color:var(--tori-on-primary)}.btn-dialog.btn-primary[data-v-4287de2f]:disabled{opacity:.5;cursor:not-allowed}.chat-section[data-v-4287de2f]{flex:1;min-height:0;display:flex;flex-direction:column;background:var(--tori-card);border-top:1px solid var(--tori-border)}.chat-section[data-v-4287de2f]:has(.chat-history-hidden){flex:0 0 auto}@media(min-width:768px){.room-content[data-v-4287de2f]{flex-direction:row}.activities-section[data-v-4287de2f]{border-right:1px solid var(--tori-border)}.chat-section[data-v-4287de2f]{border-top:none}}@media(max-width:767px){.chat-section[data-v-4287de2f]:has(.chat-history-hidden){max-height:none}}.upload-view[data-v-6bf903ff]{min-height:100vh;background:var(--tori-bg);padding:20px}.password-prompt[data-v-6bf903ff]{display:flex;align-items:center;justify-content:center;min-height:100vh}.password-dialog[data-v-6bf903ff]{background:var(--tori-card);border-radius:12px;padding:32px;min-width:300px;max-width:400px;box-shadow:0 8px 32px #0000004d}.password-dialog h2[data-v-6bf903ff]{margin:0 0 20px;color:var(--tori-fg);font-size:1.5rem}.password-input[data-v-6bf903ff]{width:100%;padding:12px;border:2px solid var(--tori-border);border-radius:8px;font-size:1rem;margin-bottom:16px;box-sizing:border-box}.password-input[data-v-6bf903ff]:focus{outline:none;border-color:var(--tori-primary)}.password-actions[data-v-6bf903ff]{display:flex;gap:12px;justify-content:flex-end}.upload-interface[data-v-6bf903ff]{max-width:1200px;margin:0 auto;background:var(--tori-card);border-radius:12px;padding:24px;box-shadow:0 8px 32px #0003}.upload-header[data-v-6bf903ff]{margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid var(--tori-border)}.upload-header h2[data-v-6bf903ff]{margin:0 0 12px;color:var(--tori-fg);font-size:1.8rem}.btn-back[data-v-6bf903ff]{padding:8px 16px;background:var(--tori-primary);color:var(--tori-on-primary);border:none;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s;margin-bottom:12px}.btn-back[data-v-6bf903ff]:hover{background:var(--tori-primary);filter:brightness(.94);transform:translateY(-1px)}.current-path[data-v-6bf903ff]{display:flex;align-items:center;gap:12px;color:var(--tori-muted);font-size:.95rem}.btn-up[data-v-6bf903ff]{padding:6px 12px;background:var(--tori-primary);color:var(--tori-on-primary);border:none;border-radius:6px;cursor:pointer;font-size:.9rem}.btn-up[data-v-6bf903ff]:hover{background:var(--tori-primary);filter:brightness(.94)}.upload-section[data-v-6bf903ff]{margin-bottom:32px}.upload-buttons[data-v-6bf903ff]{display:flex;gap:12px;margin-bottom:20px}.upload-btn[data-v-6bf903ff]{padding:12px 24px;background:#4caf50;color:var(--tori-fg);border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;transition:all .3s;display:inline-block}.upload-btn[data-v-6bf903ff]:hover{background:#45a049;transform:translateY(-2px);box-shadow:0 4px 12px #0003}.upload-btn-directory[data-v-6bf903ff]{background:#2196f3}.upload-btn-directory[data-v-6bf903ff]:hover{background:#1976d2}.upload-progress[data-v-6bf903ff]{margin-top:16px}.progress-bar-container[data-v-6bf903ff]{width:100%;height:24px;background:var(--tori-card);border-radius:12px;overflow:hidden;margin-bottom:8px}.progress-bar[data-v-6bf903ff]{height:100%;background:linear-gradient(90deg,#4caf50,#45a049);transition:width .3s;border-radius:12px}.progress-text[data-v-6bf903ff]{margin:0;color:var(--tori-muted);font-size:.9rem}.upload-result[data-v-6bf903ff]{margin-top:16px;padding:12px;border-radius:8px}.success-message[data-v-6bf903ff]{color:#4caf50;font-weight:600;margin-bottom:8px}.error-message[data-v-6bf903ff]{color:#f44336;margin-top:8px}.error-message ul[data-v-6bf903ff]{margin:8px 0 0 20px;padding:0}.file-list-section[data-v-6bf903ff]{margin-top:32px}.file-list-section h3[data-v-6bf903ff]{margin:0 0 16px;color:var(--tori-fg);font-size:1.3rem}.loading[data-v-6bf903ff],.empty-state[data-v-6bf903ff]{text-align:center;padding:40px;color:var(--tori-muted);font-size:1.1rem}.file-list[data-v-6bf903ff]{display:flex;flex-direction:column;gap:8px}.file-item[data-v-6bf903ff]{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--tori-card);border-radius:8px;transition:all .2s}.file-item[data-v-6bf903ff]:hover{background:var(--tori-card)}.file-item-dir[data-v-6bf903ff]{background:#e3f2fd}.file-item-dir[data-v-6bf903ff]:hover{background:#bbdefb}.file-icon[data-v-6bf903ff]{font-size:1.2rem}.file-name[data-v-6bf903ff]{flex:1;cursor:pointer;color:var(--tori-fg);font-weight:500}.file-name[data-v-6bf903ff]:hover{color:var(--tori-primary);text-decoration:underline}.file-size[data-v-6bf903ff]{color:var(--tori-muted);font-size:.9rem;min-width:80px;text-align:right}.btn-delete[data-v-6bf903ff]{background:none;border:none;cursor:pointer;font-size:1.2rem;padding:4px 8px;opacity:.6;transition:opacity .2s}.btn-delete[data-v-6bf903ff]:hover{opacity:1}.btn-primary[data-v-6bf903ff]{padding:10px 20px;background:var(--tori-primary);color:var(--tori-on-primary);border:none;border-radius:8px;cursor:pointer;font-size:.95rem;font-weight:600}.btn-primary[data-v-6bf903ff]:hover{opacity:.9}@media(max-width:768px){.upload-interface[data-v-6bf903ff]{padding:16px}.upload-buttons[data-v-6bf903ff]{flex-direction:column}.upload-btn[data-v-6bf903ff]{width:100%}}
