.lang-toggle{position:fixed;top:10px;right:10px;z-index:1000;display:flex;gap:4px;background:#0f0f1eb3;border-radius:20px;padding:3px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.1)}.lang-btn{background:none;border:none;font-size:1.3rem;cursor:pointer;padding:4px 6px;border-radius:14px;opacity:.5;transition:opacity .2s,transform .2s,background .2s;line-height:1}.lang-btn:hover{opacity:.8}.lang-btn.active{opacity:1;background:#ffffff1f;transform:scale(1.1)}@font-face{font-family:Vinque;src:url(/fonts/vinque.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #0a0a14;--bg-secondary: rgba(15, 15, 30, .85);--bg-card: rgba(25, 25, 50, .8);--bg-glass: rgba(20, 20, 45, .65);--accent: #c0392b;--accent-hover: #e74c3c;--accent-glow: rgba(192, 57, 43, .4);--success: #27ae60;--warning: #f39c12;--danger: #c0392b;--text-primary: #eee8d5;--text-secondary: #8a8a9a;--border: rgba(100, 100, 140, .3);--border-glow: rgba(192, 57, 43, .5);--radius: 12px;--radius-lg: 16px;--shadow: 0 8px 32px rgba(0, 0, 0, .5);--shadow-glow: 0 0 20px rgba(192, 57, 43, .2);--font-title: "Vinque", Georgia, serif;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}html{font-size:16px}body{font-family:var(--font-body);background:var(--bg-primary);color:var(--text-primary);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:radial-gradient(ellipse at 50% 0%,rgba(30,30,80,.4) 0%,transparent 60%),radial-gradient(ellipse at 80% 100%,rgba(120,20,20,.15) 0%,transparent 50%);background-attachment:fixed}#root{min-height:100vh}.app{max-width:480px;margin:0 auto;padding:16px;min-height:100vh;position:relative}.app-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:16px}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center;gap:16px;color:var(--text-secondary)}.loading-spinner{font-size:48px;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.15);opacity:.7}}.input{width:100%;padding:14px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-size:16px;outline:none;transition:border-color .3s,box-shadow .3s;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.input::placeholder{color:var(--text-secondary)}.input-code{text-align:center;font-size:22px;letter-spacing:6px;font-weight:700;text-transform:uppercase;font-family:var(--font-title)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 24px;border:none;border-radius:var(--radius);font-size:16px;font-weight:600;cursor:pointer;transition:all .25s ease;width:100%;gap:8px;text-decoration:none;position:relative;overflow:hidden}.btn:disabled{opacity:.35;cursor:not-allowed}.btn:active:not(:disabled){transform:scale(.97)}.btn-primary{background:linear-gradient(135deg,var(--accent),#a93226);color:#fff;box-shadow:0 4px 15px #c0392b4d}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--accent-hover),var(--accent));box-shadow:0 6px 20px #c0392b66;transform:translateY(-1px)}.btn-glow{animation:btnGlow 2s ease-in-out infinite alternate}@keyframes btnGlow{0%{box-shadow:0 4px 15px #c0392b4d}to{box-shadow:0 4px 25px #c0392b99,0 0 40px #c0392b26}}.btn-secondary{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.btn-secondary:hover:not(:disabled){border-color:var(--accent);background:#c0392b1a}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#e74c3c}.btn-small{padding:8px 16px;font-size:14px;width:auto}.btn-large{padding:18px 32px;font-size:18px;font-family:var(--font-title);letter-spacing:.5px}.btn-vote,.btn-player{width:auto;padding:12px 20px;background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.btn-vote:hover:not(:disabled),.btn-player:hover:not(:disabled){border-color:var(--accent);background:#c0392b26;box-shadow:0 0 10px var(--accent-glow)}.btn-player.selected{border-color:var(--accent);background:var(--accent);color:#fff}.btn-center-card{width:auto;flex:1;padding:24px 16px;background:var(--bg-card);border:1px solid var(--border);font-size:16px;color:var(--text-primary)}.btn-center-card:hover:not(:disabled){border-color:var(--accent)}.btn-center-card.selected{border-color:var(--success);background:#27ae6026}.btn-counter{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--bg-card);border:1px solid var(--border);border-radius:50%;color:var(--text-primary);font-size:20px;cursor:pointer;transition:all .2s;line-height:1}.btn-counter:hover:not(:disabled){background:var(--accent);border-color:var(--accent);box-shadow:0 0 8px var(--accent-glow)}.btn-counter:disabled{opacity:.2;cursor:not-allowed}.error{color:var(--accent-hover);text-align:center;padding:8px;font-size:14px}.success{color:var(--success);text-align:center;padding:8px;font-size:14px;font-weight:600}.hint{color:var(--text-secondary);text-align:center;font-size:14px;padding:8px;line-height:1.5}.divider{text-align:center;color:var(--text-secondary);padding:16px 0;position:relative;font-size:13px;text-transform:uppercase;letter-spacing:2px}.divider:before,.divider:after{content:"";position:absolute;top:50%;width:30%;height:1px;background:linear-gradient(to right,transparent,var(--border),transparent)}.divider:before{left:0}.divider:after{right:0}.home{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:28px;padding:20px}.home-hero{text-align:center;position:relative}.moon-orb{border-radius:50%;background-size:250%;background-position:30% 40%;animation:moonDrift 20s ease-in-out infinite,float 4s ease-in-out infinite;box-shadow:0 0 20px #f0c86440,inset 0 0 15px #00000059;border:2px solid rgba(240,200,100,.15)}@keyframes moonDrift{0%{background-position:30% 40%}25%{background-position:55% 35%}50%{background-position:45% 60%}75%{background-position:25% 50%}to{background-position:30% 40%}}.home-moon{width:100px;height:100px;margin-bottom:16px}.home-title{font-family:var(--font-title);font-size:42px;color:var(--text-primary);text-shadow:0 2px 20px rgba(0,0,0,.5);letter-spacing:2px}.home-subtitle{font-family:var(--font-title);color:var(--text-secondary);font-size:18px;margin-top:4px;letter-spacing:3px}.home-card{width:100%;max-width:400px;background:var(--bg-secondary);border-radius:var(--radius-lg);padding:28px;display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow);border:1px solid var(--border);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.home-footer{color:var(--text-secondary);font-size:12px;letter-spacing:1px}.lobby{display:flex;flex-direction:column;gap:16px;padding:16px 0}.lobby-header{text-align:center}.lobby-header h2{font-family:var(--font-title);font-size:24px}.lobby-moon{width:48px;height:48px;margin-bottom:8px}.room-code{font-size:16px;color:var(--text-secondary);margin-top:8px;display:flex;align-items:center;justify-content:center;gap:8px}.room-code strong{color:var(--accent-hover);font-size:28px;letter-spacing:5px;font-family:var(--font-title)}.btn-copy-code{background:none;border:1px solid var(--border);border-radius:6px;cursor:pointer;font-size:18px;padding:4px 8px;line-height:1;transition:background .2s}.btn-copy-code:hover{background:var(--bg-secondary)}.share-section{text-align:center}.players-section{background:var(--bg-secondary);border-radius:var(--radius);padding:16px;border:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.players-section h3{margin-bottom:12px;font-size:14px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px}.player-list{list-style:none;display:flex;flex-direction:column;gap:8px}.player-item{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--bg-card);border-radius:8px;border-left:3px solid var(--border);transition:all .3s}.player-item.ready{border-left-color:var(--success);background:#27ae600d}.player-name{font-weight:500}.ready-badge{font-size:18px}.btn-kick{background:none;border:1px solid transparent;color:var(--text-secondary);font-size:14px;cursor:pointer;padding:2px 6px;border-radius:4px;margin-left:4px;line-height:1;transition:color .2s,background .2s,border-color .2s}.btn-kick:hover{color:var(--danger);background:#e74c3c1a;border-color:var(--danger)}.lobby-actions{display:flex;flex-direction:column;gap:8px;margin-top:8px}.player-count-section{background:var(--bg-secondary);border-radius:var(--radius);padding:12px 16px;margin-bottom:12px;border:1px solid var(--border)}.lobby-settings-summary{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.lobby-setting-item{flex:1;min-width:120px;background:var(--bg-secondary);border-radius:var(--radius);padding:8px 12px;display:flex;flex-direction:column;gap:4px}.lobby-setting-label{font-family:var(--font-title);font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.lobby-setting-value{font-size:13px;color:var(--text);font-weight:500}.host-settings-row{display:flex;gap:10px;margin-bottom:12px}.host-setting{flex:1;background:var(--bg-secondary);border-radius:var(--radius);padding:10px 12px;border:1px solid var(--border);min-width:0}.host-setting-label{display:block;font-family:var(--font-title);font-size:13px;margin-bottom:6px;text-align:center;color:var(--text-muted)}.host-setting-options{display:flex;gap:4px;justify-content:center;flex-wrap:wrap}@media (max-width: 600px){.host-settings-row{flex-direction:column}}.player-count-label{display:block;font-family:var(--font-title);font-size:14px;margin-bottom:8px;text-align:center;color:var(--text-muted)}.player-count-selector{display:flex;gap:6px;justify-content:center;flex-wrap:wrap}.btn-player-count{min-width:38px;padding:6px 10px;border-radius:20px;border:2px solid var(--border);background:var(--bg-card);color:var(--text-muted);font-family:var(--font-body);font-size:13px;font-weight:600;cursor:pointer;transition:background .2s,border-color .2s,color .2s,box-shadow .2s;-webkit-user-select:none;user-select:none}.btn-player-count:hover{background:#ffffff0f}.btn-player-count.active{border-color:var(--accent);color:var(--text);background:#c0392b1f;box-shadow:0 0 8px #c0392b40}.player-count-hint{margin-top:8px;text-align:center;font-size:13px}.role-selection{background:var(--bg-secondary);border-radius:var(--radius);padding:16px;border:1px solid var(--border)}.role-selection h3{margin-bottom:8px;text-align:center;font-family:var(--font-title)}.role-count-detail{display:block;font-size:.7em;font-weight:400;color:var(--text-secondary);font-family:var(--font-body, sans-serif)}.role-selection-actions{display:flex;gap:8px;justify-content:center;margin-bottom:12px}.balance-indicator{margin-bottom:14px}.balance-bar-track{position:relative;height:8px;background:var(--bg-card);border-radius:4px;overflow:hidden;border:1px solid var(--border)}.balance-bar-fill{height:100%;border-radius:4px;transition:width .3s ease,background .3s ease}.balance-bar-fill.balance-wolves{background:linear-gradient(90deg,#e53935,#b71c1c)}.balance-bar-fill.balance-village{background:linear-gradient(90deg,#2e7d32,#43a047)}.balance-bar-fill.balance-neutral{background:linear-gradient(90deg,#f9a825,#fbc02d)}.balance-bar-center{position:absolute;left:50%;top:0;width:2px;height:100%;background:var(--border);transform:translate(-50%)}.balance-info{display:flex;justify-content:space-between;align-items:center;margin-top:4px;font-size:.78em}.balance-label.balance-wolves{color:#ef5350;font-weight:600}.balance-label.balance-village{color:#66bb6a;font-weight:600}.balance-label.balance-neutral{color:#fdd835;font-weight:600}.balance-score{color:var(--text-secondary);font-variant-numeric:tabular-nums}.expansion-toggles{display:flex;gap:8px;justify-content:center;margin-bottom:14px;flex-wrap:wrap}.btn-expansion{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:20px;border:2px solid var(--border);background:var(--bg-card);color:var(--text-muted);font-family:var(--font-body);font-size:13px;font-weight:600;cursor:pointer;transition:background .2s,border-color .2s,color .2s,box-shadow .2s;-webkit-user-select:none;user-select:none}.btn-expansion:hover{background:#ffffff0f}.btn-expansion.active{border-color:var(--accent);color:var(--text);background:#c0392b1f;box-shadow:0 0 8px #c0392b40}.expansion-icon{font-size:16px}.role-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.role-flip-container{perspective:600px}.role-flip-card{position:relative;width:100%;transition:transform .5s cubic-bezier(.4,.2,.2,1);transform-style:preserve-3d}.role-flip-container.flipped .role-flip-card{transform:rotateY(180deg)}.role-flip-front,.role-flip-back{backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:var(--radius)}.role-flip-front{display:flex;flex-direction:column;align-items:center;gap:10px;padding:14px 6px 10px;background:var(--bg-card);border:2px solid transparent;transition:border-color .25s,background .25s,box-shadow .25s}.role-flip-front:hover{background:#1e1e3cf2}.role-flip-front.role-selected{border-color:var(--accent);background:#c0392b14;box-shadow:0 0 15px var(--accent-glow)}.role-flip-back{position:absolute;top:0;right:0;bottom:0;left:0;transform:rotateY(180deg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:14px 10px;cursor:pointer;-webkit-tap-highlight-color:transparent;border:2px solid var(--border);overflow:hidden}.role-flip-back.team-back-werewolf{background:linear-gradient(160deg,#1a0a0a,#2d1515,#1a0a0a);border-color:#c0392b80}.role-flip-back.team-back-village{background:linear-gradient(160deg,#0a0f1a,#15202d,#0a0f1a);border-color:#2980b966}.role-flip-back.team-back-tanner{background:linear-gradient(160deg,#150a1a,#2d152d,#150a1a);border-color:#8e44ad66}.role-back-name{font-family:var(--font-title);font-size:14px;letter-spacing:.5px}.role-back-desc{font-size:11px;line-height:1.45;color:var(--text-secondary);text-align:center;overflow-y:auto;flex:1;min-height:0;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}.role-back-hint{font-size:10px;color:#ffffff4d;margin-top:auto}.role-select-visual{position:relative;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-tap-highlight-color:transparent}.role-select-img{width:90px;height:90px;border-radius:50%;object-fit:cover;border:2px solid var(--border);transition:transform .25s,border-color .25s}.role-flip-front:hover .role-select-img{transform:scale(1.05)}.role-flip-front.role-selected .role-select-img{border-color:var(--accent)}.role-count-badge{position:absolute;top:-4px;right:-4px;width:22px;height:22px;border-radius:50%;background:var(--accent);color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px #0006}.role-name{font-size:13px;font-weight:600;text-align:center;line-height:1.2;font-family:var(--font-title);letter-spacing:.3px;margin-top:2px}.role-team-tag{font-size:9px;padding:1px 5px;border-radius:4px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;position:absolute;bottom:-6px;left:50%;transform:translate(-50%);white-space:nowrap}.team-tag-werewolf{background:#c0392b4d;color:#e74c3c}.team-tag-village{background:#2980b94d;color:#5dade2}.team-tag-tanner{background:#8e44ad4d;color:#af7ac5}.team-tag-vampire{background:#8b00004d;color:#f44}.team-tag-alien{background:#00b43c4d;color:#4f8}.role-controls{display:flex;align-items:center;gap:6px}.role-controls .btn-counter{width:28px;height:28px;font-size:16px}.role-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px 16px 16px;border-radius:var(--radius-lg);background:var(--bg-card);border:2px solid var(--border);box-shadow:var(--shadow);margin:12px 0;transition:all .4s ease;animation:cardReveal .6s cubic-bezier(.34,1.56,.64,1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:relative;overflow:hidden;width:200px;min-height:240px;box-sizing:border-box}.role-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 50% 0%,rgba(255,255,255,.03) 0%,transparent 60%);pointer-events:none}@keyframes cardReveal{0%{transform:scale(.7) rotateY(90deg);opacity:0}50%{transform:scale(1.05) rotateY(0)}to{transform:scale(1) rotateY(0);opacity:1}}.role-card.team-werewolf{border-color:#c0392b99;background:linear-gradient(160deg,#1a0a0a,#2d1515,#1a0a0a);box-shadow:var(--shadow),0 0 30px #c0392b26}.role-card.team-village{border-color:#2980b980;background:linear-gradient(160deg,#0a0f1a,#15202d,#0a0f1a);box-shadow:var(--shadow),0 0 30px #2980b91a}.role-card.team-tanner{border-color:#8e44ad80;background:linear-gradient(160deg,#150a1a,#2d152d,#150a1a);box-shadow:var(--shadow),0 0 30px #8e44ad1a}.role-card.team-vampire{border-color:#8b000099;background:linear-gradient(160deg,#1a0505,#2d0a0a,#1a0505);box-shadow:var(--shadow),0 0 30px #8b000033}.role-card.team-alien{border-color:#00b43c99;background:linear-gradient(160deg,#051a0a,#0a2d15,#051a0a);box-shadow:var(--shadow),0 0 30px #00b43c33}.role-card-back{border-color:#64648c66;background:linear-gradient(160deg,#0f0f20,#1a1a35,#0f0f20)}.role-card-frame{width:140px;height:140px;border-radius:50%;overflow:hidden;border:3px solid rgba(255,255,255,.1);box-shadow:0 4px 20px #0006;margin-bottom:12px;position:relative}.role-card-image{width:100%;height:100%;object-fit:cover;display:block}.role-card-info{text-align:center}.role-card-name{font-family:var(--font-title);font-size:22px;font-weight:400;margin-bottom:4px;letter-spacing:1px}.role-card-team{font-size:12px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:2px}.role-card-desc{color:var(--text-secondary);font-size:14px;line-height:1.5;text-align:center;max-width:280px;margin-top:8px;overflow-y:auto;flex:1}.role-card-large{width:280px;min-height:420px}.role-card-large .role-card-frame{width:180px;height:180px}.role-card-large .role-card-name{font-size:28px}.role-card-small{width:120px;min-height:160px;padding:12px;margin:6px 0}.role-card-small .role-card-frame{width:80px;height:80px}.role-card-small .role-card-name{font-size:16px}.role-card-tiny{width:100%;min-height:unset;height:100%;padding:0;margin:0;border:none;border-radius:inherit;box-shadow:none;animation:none}.role-card-tiny .role-card-frame{width:70%;height:auto;aspect-ratio:1;border-radius:50%;border-width:1px;box-shadow:0 1px 4px #0006;margin:0}.role-card-tiny .role-card-info{display:none}.role-reveal{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:90vh;text-align:center;gap:16px}.role-reveal-header h2{font-family:var(--font-title);font-size:28px;letter-spacing:2px}.role-reveal-flip-container{perspective:800px;cursor:pointer;-webkit-tap-highlight-color:transparent}.role-reveal-flip-card{position:relative;transition:transform .7s cubic-bezier(.4,.2,.2,1);transform-style:preserve-3d}.role-reveal-flip-container.flipped .role-reveal-flip-card{transform:rotateY(180deg)}.role-reveal-flip-front,.role-reveal-flip-back{backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:var(--radius);display:flex;align-items:stretch;justify-content:center}.role-reveal-flip-back{position:relative;transform:rotateY(180deg);overflow:hidden;border-radius:var(--radius-lg)}.role-reveal-flip-front{position:absolute;top:0;right:0;bottom:0;left:0}.role-reveal-flip-front-anim{width:100%;height:100%;animation:reveal-pulse 2s ease-in-out infinite}.role-reveal-flip-front .role-card{width:100%;height:100%;box-sizing:border-box;justify-content:center}.role-reveal-flip-container.flipped .role-reveal-flip-front-anim{animation:none}@keyframes reveal-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}.role-reveal-waiting{color:var(--text-secondary);font-size:14px;display:flex;flex-direction:column;gap:4px;align-items:center}.role-reveal-waiting p:first-child{animation:fade-pulse 1.5s ease-in-out infinite}.role-reveal-pending{font-size:13px;opacity:.75}@keyframes fade-pulse{0%,to{opacity:1}50%{opacity:.5}}.role-reveal-card.revealed{opacity:1;transform:scale(1) rotateY(0)}.role-reveal-footer{width:100%;max-width:300px;display:flex;flex-direction:column;align-items:center;gap:8px}.countdown-bar{width:100%;height:4px;background:var(--bg-card);border-radius:2px;overflow:hidden}.countdown-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--warning));border-radius:2px;transition:width 1s linear}.countdown-text{color:var(--text-secondary);font-size:14px}.role-description{color:var(--text-secondary);max-width:320px;line-height:1.5;font-size:15px}.countdown{color:var(--warning);font-size:18px;font-weight:700;margin-top:16px;animation:pulse 2s ease-in-out infinite}.night-phase{display:flex;flex-direction:column;align-items:center;min-height:85vh;text-align:center;gap:16px;padding-top:24px;position:relative}.night-phase h2{font-family:var(--font-title);font-size:26px;letter-spacing:2px}.night-moon{width:80px;height:80px}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.night-sky{font-size:64px;animation:float 3s ease-in-out infinite}.timer-ring{position:relative;width:70px;height:70px}.timer-svg{width:100%;height:100%;transform:rotate(-90deg)}.timer-track{fill:none;stroke:var(--bg-card);stroke-width:4}.timer-fill{fill:none;stroke:var(--warning);stroke-width:4;stroke-linecap:round;stroke-dasharray:163.36;transition:stroke-dashoffset 1s linear}.timer-value{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;color:var(--warning);font-variant-numeric:tabular-nums}.timer{font-size:20px;color:var(--warning);font-weight:700}.night-action{width:100%;padding:24px 20px;background:var(--bg-secondary);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:14px;align-items:center;border:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.night-action h3{font-family:var(--font-title);font-size:20px;letter-spacing:1px}.night-role-header{display:flex;flex-direction:column;align-items:center;gap:8px}.night-role-img{width:64px;height:64px;border-radius:50%;object-fit:cover;border:2px solid var(--border);box-shadow:0 4px 15px #0006}.action-buttons{display:flex;flex-direction:column;gap:8px;width:100%}.revealed-info{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.player-tag{padding:8px 16px;background:var(--bg-card);border-radius:20px;font-weight:500;border:1px solid var(--border)}.player-select{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;width:100%}.center-cards-pick{display:flex;gap:12px;justify-content:center;width:100%}.btn-card-pick{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px;background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:all .25s;color:var(--text-secondary);font-size:13px;font-weight:500}.btn-card-pick:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:0 6px 20px #0006}.btn-card-pick.selected{border-color:var(--success);background:#27ae601a}.card-pick-img{width:72px;height:100px;object-fit:cover;border-radius:8px}.center-cards{display:flex;gap:10px;justify-content:center;width:100%}.night-progress{color:var(--text-secondary);font-size:12px;margin-top:8px;letter-spacing:.5px}.night-reveal{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:80vh;text-align:center;gap:24px}.night-reveal h2{font-family:var(--font-title);font-size:26px}.night-result{padding:24px;background:var(--bg-secondary);border-radius:var(--radius-lg);max-width:400px;text-align:left;line-height:1.7;font-size:16px;border:1px solid var(--border);border-left:4px solid var(--accent)}.night-revealed-cards{display:flex;justify-content:center;gap:16px;margin-top:16px;flex-wrap:wrap}.night-revealed-card-wrapper{display:flex;flex-direction:column;align-items:center;gap:4px}.night-revealed-label{font-size:12px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px;font-family:var(--font-title)}.discussion{width:100%}.discussion-layout{display:flex;flex-direction:column;align-items:center;gap:20px;padding-top:40px;width:100%}.discussion-main{display:flex;flex-direction:column;align-items:center;gap:20px;width:100%;text-align:center}.discussion-main h2{font-family:var(--font-title);font-size:26px}.discussion-claim-btn-mobile{display:inline-block;max-width:200px}.discussion-claims-panel{display:none;flex-direction:column;gap:12px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:20px;overflow-y:auto;max-height:calc(100vh - 80px);position:sticky;top:20px}.claims-panel-title{font-family:var(--font-title);font-size:18px;color:var(--text-primary);letter-spacing:1px;border-bottom:1px solid var(--border);padding-bottom:10px;margin-bottom:4px}.claims-player-list{display:flex;flex-direction:column;gap:6px}.claims-player-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:8px;background:var(--bg-card);border:1px solid transparent;transition:border-color .2s}.claims-player-row-me{border-color:#2980b966;background:#2980b90f}.claims-player-row-skip{border-color:#27ae604d}.claims-player-info{display:flex;align-items:center;gap:6px;min-width:0}.claims-player-name{font-family:var(--font-title);font-size:13px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:6px}.claims-me-tag{font-family:var(--font-body, sans-serif);font-size:10px;color:#2980b9e6;background:#2980b91f;border-radius:4px;padding:1px 5px;letter-spacing:.5px;text-transform:uppercase}.claims-skip-badge{font-size:10px;color:var(--success);background:#27ae601f;border-radius:4px;padding:1px 5px;text-transform:uppercase;letter-spacing:.5px;flex-shrink:0}.claims-role-display{display:flex;align-items:center;gap:7px;flex-shrink:0}.claims-role-img{width:36px;height:50px;object-fit:cover;border-radius:5px;border:1px solid var(--border);box-shadow:0 2px 6px #0000004d}.claims-role-name{font-size:12px;color:var(--text-primary);font-family:var(--font-title);max-width:90px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.claims-role-empty{font-size:18px;color:var(--text-secondary);opacity:.4;flex-shrink:0}.claims-divider{height:1px;background:var(--border);margin:4px 0}.claims-your-label{font-size:12px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px;font-family:var(--font-title)}.claims-inline-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.claims-remove-btn{align-self:center;margin-top:4px}.discussion-actions{display:flex;flex-direction:column;align-items:center;gap:12px;padding-bottom:40px}.discussion h2{font-family:var(--font-title);font-size:26px}.timer-large{font-size:64px;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums;font-family:var(--font-title);letter-spacing:4px;text-shadow:0 0 30px rgba(243,156,18,.3)}.discussion-timer-bar{width:100%;max-width:300px;height:8px;background:#ffffff1a;border-radius:4px;overflow:hidden;margin:-4px auto 8px}.discussion-timer-bar-fill{height:100%;border-radius:4px;transition:width 1s linear,background-color .5s ease}.discussion-timer-bar-fill.ok{background:var(--success)}.discussion-timer-bar-fill.warning{background:var(--warning)}.discussion-timer-bar-fill.critical{background:var(--danger)}.discussion.danger:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:9999;box-shadow:inset 0 0 80px 20px #c0392ba6;animation:danger-pulse 1.2s ease-in-out infinite}@keyframes danger-pulse{0%,to{opacity:1}50%{opacity:.25}}.player-list-discussion{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:400px}.player-tag-ready{border-color:var(--success)!important;background:#27ae601a}.skip-count-text{color:var(--text-secondary);font-size:14px;animation:fade-pulse 1.5s ease-in-out infinite}.vote-phase{display:flex;flex-direction:column;align-items:center;min-height:80vh;text-align:center;gap:12px;padding-top:20px}.vote-phase h2{font-family:var(--font-title);font-size:26px}.vote-header-info{display:flex;align-items:center;gap:16px}.vote-count{color:var(--text-secondary);font-size:16px}.vote-no-self{font-size:12px}.vote-circle-container{position:relative;width:min(85vw,400px);height:min(85vw,400px);margin:8px auto}.my-role-reminder{display:flex;justify-content:center;margin:8px auto 4px}.vote-list-container{display:none;flex-direction:column;gap:6px;width:100%;max-width:320px;margin:12px auto}.vote-list-player{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:10px;background:var(--card-bg);border:2px solid var(--border);transition:border-color .2s,box-shadow .2s;position:relative}.vote-list-player-clickable{cursor:pointer;-webkit-tap-highlight-color:transparent}.vote-list-player-clickable:active,.vote-list-player-clickable:hover{border-color:var(--accent);box-shadow:0 0 12px var(--accent-glow)}.vote-list-player-me{border-color:#2980b980;opacity:.5}.vote-list-card{width:36px;height:50px;border-radius:6px;overflow:hidden;flex-shrink:0}.vote-list-card img{width:100%;height:100%;object-fit:cover;display:block}.vote-list-name{flex:1;font-family:var(--font-title);font-size:14px;color:var(--text-primary);letter-spacing:.5px}.vote-list-check{color:var(--success);font-size:14px;font-weight:700}.vote-center-cards{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;gap:6px;z-index:1}.vote-center-card{width:40px;height:56px;border-radius:6px;overflow:hidden;border:1px solid var(--border);box-shadow:0 2px 8px #0000004d}.vote-center-card-img{width:100%;height:100%;object-fit:cover;display:block}.vote-player-slot{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:4px;z-index:2;transition:transform .2s}.vote-player-clickable{cursor:pointer;-webkit-tap-highlight-color:transparent}.vote-player-clickable:hover .vote-player-card{border-color:var(--accent);box-shadow:0 0 16px var(--accent-glow);transform:scale(1.08)}.vote-player-me .vote-player-card{border-color:#2980b999;opacity:.5}.vote-player-voted .vote-player-check{display:block}.vote-player-card{width:56px;height:78px;border-radius:8px;overflow:hidden;border:2px solid var(--border);box-shadow:var(--shadow);transition:border-color .25s,box-shadow .25s,transform .25s;position:relative}.vote-player-card-img{width:100%;height:100%;object-fit:cover;display:block}.vote-face-up-img{width:100%;height:100%;object-fit:cover;display:block;border-radius:6px}.vote-player-face-up .vote-player-card{border-color:var(--accent);box-shadow:0 0 12px var(--accent-glow)}.vote-player-name{font-size:11px;color:var(--text-primary);font-family:var(--font-title);letter-spacing:.5px;white-space:nowrap;max-width:80px;overflow:hidden;text-overflow:ellipsis}.vote-player-check{display:none;position:absolute;top:-4px;right:-4px;background:var(--success);color:#fff;font-size:10px;width:18px;height:18px;border-radius:50%;line-height:18px;text-align:center;box-shadow:0 1px 4px #0000004d}.vote-submitted{padding:16px}.player-claim-badge{width:28px;height:28px;border-radius:50%;overflow:hidden;border:2px solid var(--accent);box-shadow:0 0 6px var(--accent-glow);flex-shrink:0;background:var(--card-bg)}.player-claim-img{width:100%;height:100%;object-fit:cover;display:block}.vote-player-slot .player-claim-badge{width:24px;height:24px}.results{display:flex;flex-direction:column;gap:16px;padding:16px 0 40px}.results h2{text-align:center;font-family:var(--font-title);font-size:28px;letter-spacing:2px}.player-result-banner{padding:20px 24px;border-radius:var(--radius-lg);text-align:center;font-size:28px;font-weight:800;letter-spacing:2px;text-transform:uppercase;margin-bottom:16px}.player-result-win{background:linear-gradient(135deg,#27ae6040,#2ecc7126);border:2px solid rgba(39,174,96,.7);color:#2ecc71;box-shadow:0 0 40px #27ae6040;text-shadow:0 0 20px rgba(39,174,96,.5)}.player-result-lose{background:linear-gradient(135deg,#c0392b40,#e74c3c26);border:2px solid rgba(192,57,43,.7);color:#e74c3c;box-shadow:0 0 40px #c0392b33;text-shadow:0 0 20px rgba(192,57,43,.5)}.player-result-spectator{background:linear-gradient(135deg,#64648233,#50506e1a);border:2px solid rgba(130,130,160,.5);color:#a0a0c0}.winner-banner{padding:24px;border-radius:var(--radius-lg);text-align:center;font-size:16px;font-weight:600;line-height:1.6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.winner-village,.winner-tanner-village{background:linear-gradient(135deg,#27ae6026,#27ae600d);border:1px solid rgba(39,174,96,.4);box-shadow:0 0 30px #27ae601a}.winner-werewolf{background:linear-gradient(135deg,#c0392b26,#c0392b0d);border:1px solid rgba(192,57,43,.4);box-shadow:0 0 30px #c0392b1a}.winner-tanner{background:linear-gradient(135deg,#8e44ad26,#8e44ad0d);border:1px solid rgba(142,68,173,.4);box-shadow:0 0 30px #8e44ad1a}.section-card{background:var(--bg-secondary);border-radius:var(--radius);padding:16px;border:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.section-card h3{margin-bottom:12px;font-size:14px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px;font-family:var(--font-title)}.eliminated-player{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:#c0392b14;border-radius:8px;border-left:3px solid var(--accent);margin-bottom:6px;gap:12px}.eliminated-player .role-card{margin:0}.roles-grid{display:flex;flex-direction:column;gap:12px}.role-result{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 12px;background:var(--bg-card);border-radius:8px;transition:background .2s}.role-result:hover{background:#1e1e3ce6}.role-result.is-me{border:1px solid var(--accent);box-shadow:0 0 10px var(--accent-glow)}.role-result-player{font-size:16px;font-weight:600;font-family:var(--font-title);letter-spacing:.5px}.is-me-tag{color:var(--accent);font-size:13px}.role-result-cards{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center}.role-result-cards .role-card{margin:0}.role-changed-arrow{color:var(--warning);font-size:24px;font-weight:700}.center-cards-reveal{display:flex;gap:10px;justify-content:center}.center-card-result{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px;background:var(--bg-card);border-radius:8px;flex:1;min-width:0;border:1px solid var(--border)}.center-card-result .role-card{margin:0}.card-number{font-size:11px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px}.votes-grouped{display:flex;flex-direction:column;gap:10px}.vote-group{background:#0003;border-radius:10px;border:1px solid var(--border);overflow:hidden}.vote-group-eliminated{border-color:#e74c3c80;background:#e74c3c14}.vote-group-abstain{border-color:#7f8c8d4d;opacity:.7}.vote-group-header{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border)}.vote-group-name{flex:1;font-weight:700;font-size:15px}.vote-group-count{background:#ffffff1a;border-radius:20px;padding:2px 10px;font-size:13px;font-weight:600;color:var(--accent)}.vote-group-eliminated .vote-group-count{color:#e74c3c}.vote-group-tag{font-size:14px}.vote-group-voters{display:flex;flex-wrap:wrap;gap:6px;padding:10px 14px}.vote-chip{background:#ffffff14;border:1px solid var(--border);border-radius:20px;padding:3px 12px;font-size:13px}.vote-chip-abstain{opacity:.6;font-style:italic}.leaderboard{display:flex;flex-direction:column;gap:8px}.leaderboard-row{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#0003;border-radius:8px;border:1px solid rgba(255,255,255,.06)}.leaderboard-row.is-me{border-color:#3498db80;background:#3498db14}.leaderboard-rank{font-size:13px;color:var(--text-secondary);min-width:28px}.leaderboard-name{flex:1;font-size:14px}.leaderboard-wins{font-size:13px;font-weight:600;color:var(--accent);background:#ffffff12;padding:2px 10px;border-radius:12px}.results-actions{display:flex;flex-direction:column;gap:8px;margin-top:8px}.new-game-banner{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--primary);color:#fff;font-weight:600;border-radius:var(--radius);margin-bottom:16px}.game-log-section{margin-top:8px}.game-log-toggle{cursor:pointer;display:flex;align-items:center;justify-content:space-between;-webkit-user-select:none;user-select:none;margin:0}.game-log-chevron{font-size:16px;transition:transform .2s ease;display:inline-block}.game-log-chevron-open{transform:rotate(90deg)}.game-log-list{display:flex;flex-direction:column;gap:8px;margin-top:12px;max-height:600px;overflow-y:auto;padding-right:4px}.game-log-entry{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:8px;font-size:13px;line-height:1.4;background:#ffffff08}.game-log-icon{flex-shrink:0;font-size:18px;width:24px;text-align:center}.game-log-card{flex-shrink:0}.game-log-card .role-card{width:80px;min-height:110px;padding:8px;margin:0;animation:none}.game-log-card .role-card-frame{width:52px;height:52px;margin-bottom:6px}.game-log-card .role-card-name{font-size:11px;letter-spacing:.5px}.game-log-card .role-card-team{font-size:9px}.game-log-role-img{flex-shrink:0;width:22px;height:22px;border-radius:50%;object-fit:cover;border:1.5px solid rgba(255,255,255,.15)}.game-log-text{flex:1;color:var(--text-primary)}.game-log-entry-phase{background:#6495ed1f;font-weight:600;color:var(--accent);border-left:3px solid var(--accent)}.game-log-entry-phase .game-log-text{color:var(--accent)}.game-log-entry-setup .game-log-text{color:var(--text-secondary)}.game-log-entry-night{background:#8b5cf614;border-left:3px solid rgba(139,92,246,.4)}.game-log-entry-vote{background:#fbbf2414;border-left:3px solid rgba(251,191,36,.4)}.game-log-entry-elimination{background:#ef44441a;border-left:3px solid rgba(239,68,68,.5);font-weight:600}.game-log-entry-winner{background:#22c55e1f;border-left:3px solid rgba(34,197,94,.6);font-weight:700;font-size:14px}.join-room{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:80vh;text-align:center;gap:16px;padding:20px}.join-room .input,.join-room .btn{max-width:300px}.error-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:80vh;text-align:center;gap:16px}.error-page .btn{max-width:240px}.test-panel{max-width:600px;margin:24px auto;padding:16px}.test-controls{display:flex;flex-direction:column;gap:12px;margin:16px 0}.test-row{display:flex;gap:8px;align-items:center}.test-row label{min-width:60px;font-size:14px;color:var(--text-secondary)}.test-row .input{flex:1}.test-log{margin-top:16px;background:var(--bg-card);border-radius:var(--radius);padding:12px;max-height:300px;overflow-y:auto;border:1px solid var(--border)}.log-entries{display:flex;flex-direction:column;gap:4px}.log-entry{font-size:13px;color:var(--text-secondary);padding:4px 0;border-bottom:1px solid rgba(100,100,140,.1);font-family:monospace}.test-tips{margin-top:16px;padding:12px;background:var(--bg-secondary);border-radius:var(--radius);border:1px solid var(--border)}.test-tips h4{margin-bottom:8px;font-family:var(--font-title)}.test-tips ol{padding-left:20px;font-size:14px;color:var(--text-secondary);line-height:1.8}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:24px;max-width:540px;width:100%;max-height:85vh;overflow-y:auto;position:relative;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}.modal-close{position:absolute;top:12px;right:12px;background:none;border:none;color:var(--text-secondary);font-size:24px;cursor:pointer;line-height:1;padding:4px 8px;border-radius:4px;transition:color .2s,background .2s}.modal-close:hover{color:var(--text-primary);background:#ffffff1a}.modal-content h2{text-align:center;font-family:var(--font-title);margin-bottom:16px}.claim-modal{max-width:600px}.claim-grid-container{margin-top:12px}.claim-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.claim-btn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 6px 8px;background:var(--bg-card);border:2px solid transparent;border-radius:var(--radius);cursor:pointer;transition:border-color .2s,background .2s,box-shadow .2s;color:var(--text-primary)}.claim-btn:hover{background:#1e1e3cf2;border-color:var(--border)}.claim-btn.selected{border-color:var(--accent);background:#c0392b14;box-shadow:0 0 15px var(--accent-glow)}.claim-img{width:72px;height:72px;object-fit:cover;border-radius:6px}.claim-name{font-size:11px;text-align:center;line-height:1.2;color:var(--text-secondary)}.claim-btn.selected .claim-name{color:var(--text-primary)}.role-preview-overlay{z-index:1010}.role-preview-modal{max-width:340px;text-align:center;padding:32px 24px 24px}.role-preview-img{width:120px;height:120px;object-fit:cover;border-radius:10px;margin-bottom:12px;box-shadow:0 4px 20px #00000080}.role-preview-name{font-family:var(--font-title);font-size:20px;margin:0 0 10px;color:var(--text-primary)}.role-preview-desc{font-size:14px;color:var(--text-secondary);line-height:1.55;margin:0 0 20px}.role-preview-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}@media (max-width: 480px){.app{padding:10px}.home-title{font-size:32px}.home-moon{width:80px;height:80px}.timer-large{font-size:48px}.role-card-large{width:220px;min-height:340px}.role-card-large .role-card-frame{width:140px;height:140px}.role-card-large .role-card-name{font-size:22px}.role-card-name{font-size:18px}.center-cards-reveal{flex-direction:column;align-items:center}.center-card-result{width:100%;flex-direction:row;gap:10px;flex-wrap:wrap;justify-content:center}.btn-center-card{padding:16px 12px;font-size:14px}.card-pick-img{width:56px;height:78px}}@media (max-width: 380px){.vote-circle-container{display:none}.vote-list-container{display:flex}}@media (min-width: 768px){.app{max-width:720px}.role-grid{grid-template-columns:repeat(4,1fr)}.vote-circle-container{width:520px;height:520px}.vote-player-card{width:68px;height:95px}.vote-player-name{font-size:13px;max-width:100px}.vote-center-card{width:50px;height:70px}}@media (min-width: 1024px){.app{max-width:1080px}.role-grid{grid-template-columns:repeat(5,1fr)}.vote-circle-container{width:600px;height:600px}.vote-player-card{width:76px;height:106px;border-radius:10px}.vote-player-name{font-size:14px;max-width:120px}.vote-center-card{width:56px;height:78px}.discussion-layout{display:grid;grid-template-columns:1fr 360px;align-items:start;gap:32px;padding-top:40px}.discussion-main{min-width:0}.discussion-main .vote-circle-container{width:500px;height:500px;flex-shrink:0}.discussion-claims-panel{display:flex}.discussion-claim-btn-mobile{display:none}}@media (min-width: 1280px){.app{max-width:1240px}.role-grid{grid-template-columns:repeat(6,1fr)}.discussion-layout{grid-template-columns:1fr 420px;gap:40px}.discussion-main .vote-circle-container{width:560px;height:560px}.claims-role-img{width:44px;height:61px}.claims-inline-grid{grid-template-columns:repeat(4,1fr)}.claim-img{width:80px;height:80px}}.player-result-banner{font-size:32px}.winner-banner{padding:10px 16px;border-radius:var(--radius);margin-bottom:16px;text-align:center;font-family:var(--font-title);font-size:15px;font-weight:700;box-shadow:0 4px 20px #0006;letter-spacing:.5px}.winner-village{background:linear-gradient(135deg,var(--success),#2ecc71);color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.3)}.winner-werewolf{background:linear-gradient(135deg,var(--accent),#c0392b);color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.5)}.winner-tanner{background:linear-gradient(135deg,#f39c12,#d35400);color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.3)}.winner-none{background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary)}.eliminated-player{display:flex;align-items:center;justify-content:space-between;padding:12px;background:#0003;border-radius:var(--radius);margin-bottom:8px}.role-badge-img{display:flex;align-items:center;gap:8px}.role-badge-icon{width:40px;height:40px;object-fit:contain}.roles-grid{display:grid;gap:12px}.role-result{display:flex;align-items:center;gap:12px;padding:10px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius)}.role-result.is-me{background:#ffffff0d;border-color:#fff3}.role-result-img{object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}.role-result-info{flex:1}.role-badge{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--text-secondary);margin-top:2px}.role-changed{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--warning)}.center-cards-reveal{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;margin-top:16px}.center-card-result{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px;background:var(--bg-glass);border:1px solid var(--border);border-radius:var(--radius);min-width:100px}.center-card-img{width:64px;height:64px;object-fit:contain}.center-card-label{font-size:13px;color:var(--text-secondary);text-align:center}.floating-actions{position:fixed;bottom:20px;left:20px;display:flex;flex-direction:column-reverse;gap:12px;z-index:1000}.btn-floating-action{width:48px;height:48px;border-radius:50%;background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary);display:flex;align-items:center;justify-content:center;font-size:22px;cursor:pointer;box-shadow:0 4px 12px #00000080;transition:all .2s cubic-bezier(.175,.885,.32,1.275)}.btn-floating-action:hover{transform:scale(1.1);border-color:var(--accent);color:var(--accent);background:#1e1e32f2}.btn-floating-action:active{transform:scale(.95)}.game-notes-panel{position:fixed;bottom:80px;left:20px;width:280px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px #0009;z-index:1001;display:flex;flex-direction:column;overflow:hidden}.game-notes-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--border);background:#ffffff0a}.game-notes-header--draggable{cursor:grab;-webkit-user-select:none;user-select:none}.game-notes-header--draggable:active{cursor:grabbing}.game-notes-title{font-size:.85rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.game-notes-close{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:.9rem;padding:2px 4px;line-height:1;border-radius:4px;transition:color .15s,background .15s}.game-notes-close:hover{color:var(--text);background:#ffffff14}.game-notes-textarea{width:100%;background:transparent;border:none;outline:none;color:var(--text);font-size:.85rem;line-height:1.5;padding:12px 14px;resize:none;font-family:inherit;box-sizing:border-box}.game-notes-textarea::placeholder{color:var(--text-secondary);opacity:.6}.game-notes-clear{background:none;border:none;border-top:1px solid var(--border);color:var(--text-secondary);cursor:pointer;font-size:.78rem;padding:8px 14px;text-align:left;transition:color .15s,background .15s;width:100%}.game-notes-clear:hover{color:#e57373;background:#e5737314}.game-notes-confirm-row{border-top:1px solid var(--border);display:flex}.game-notes-confirm,.game-notes-cancel{background:none;border:none;cursor:pointer;font-size:.78rem;padding:8px 14px;transition:color .15s,background .15s;flex:1}.game-notes-confirm{color:#e57373}.game-notes-confirm:hover{color:#c62828;background:#e573731f}.game-notes-cancel{color:var(--text-secondary);border-left:1px solid var(--border)}.game-notes-cancel:hover{background:#ffffff0d}.bug-report-body{display:flex;flex-direction:column;gap:10px;padding:16px 0 4px}.bug-report-hint{font-size:13px;color:var(--text-secondary);margin:0 0 4px;line-height:1.5}.bug-report-error{font-size:13px;color:var(--danger, #e53935);margin:0 0 8px}.bug-report-label{font-size:13px;color:var(--text-secondary);font-weight:600;letter-spacing:.5px}.bug-report-input{margin:0}.bug-report-textarea{background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-size:14px;line-height:1.5;padding:10px 12px;resize:vertical;width:100%;box-sizing:border-box;font-family:inherit}.bug-report-textarea:focus{outline:none;border-color:var(--accent)}.bug-report-textarea::placeholder{color:var(--text-secondary);opacity:.6}.bug-report-fixed{position:fixed;bottom:12px;left:0;right:0;text-align:center;z-index:50}.night-order-modal{max-width:480px}.night-order-group{margin-bottom:20px}.night-order-phase-label{font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-secondary);border-bottom:1px solid var(--border);padding-bottom:6px;margin-bottom:10px}.night-order-no-action{color:var(--text-secondary)}.night-order-list{list-style:none;display:flex;flex-direction:column;gap:6px}.night-order-item{display:flex;align-items:center;gap:10px;padding:8px 10px;background:#ffffff0a;border-radius:8px}.night-order-num{min-width:22px;height:22px;border-radius:50%;background:var(--accent);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.night-order-emoji{font-size:20px;flex-shrink:0}.night-order-info{display:flex;flex-direction:column;gap:2px;min-width:0}.night-order-name{font-size:14px;font-weight:600;color:var(--text-primary)}.night-order-desc{font-size:12px;color:var(--text-secondary);line-height:1.3}.night-order-item-passive{opacity:.65;gap:10px}.night-order-no-action-list .night-order-item{background:none;padding:4px 6px}.lobby-night-order-row{display:flex;justify-content:center;gap:8px;margin:8px 0 4px;flex-wrap:wrap}.rulebook-modal{max-width:520px}.rulebook-group{margin-bottom:20px}.rulebook-group-label{font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;border-bottom:1px solid var(--border);padding-bottom:6px;margin-bottom:10px}.rulebook-team-werewolf{color:#e05252}.rulebook-team-vampire{color:#9b59b6}.rulebook-team-alien{color:#2ecc71}.rulebook-team-tanner{color:#e67e22}.rulebook-team-village{color:#3498db}.rulebook-role-item{display:flex;align-items:flex-start;gap:10px;padding:10px;background:#ffffff0a;border-radius:8px;margin-bottom:6px}.rulebook-role-img{width:44px;height:44px;border-radius:6px;object-fit:cover;flex-shrink:0}.rulebook-role-info{display:flex;flex-direction:column;gap:3px;min-width:0}.rulebook-role-name{font-size:14px;font-weight:600;color:var(--text-primary)}.rulebook-role-desc{font-size:12px;color:var(--text-secondary);line-height:1.4}.home-bug-report-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:12px;letter-spacing:.5px;margin-top:8px;opacity:.6;padding:4px 8px;transition:opacity .2s}.home-bug-report-btn:hover{opacity:1}.host-control-panel{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;align-items:flex-end;gap:12px;z-index:1000}.host-control-fab--open{border-color:#f39c12!important;color:#f39c12!important;box-shadow:0 0 0 3px #f39c124d,0 4px 12px #00000080!important}.host-control-menu{background:var(--bg-card);border:1px solid rgba(243,156,18,.4);border-radius:14px;box-shadow:0 8px 32px #000000b3;width:300px;overflow:hidden;animation:slideUpFade .2s ease-out}@keyframes slideUpFade{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.host-control-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#f39c121a;border-bottom:1px solid rgba(243,156,18,.2)}.host-control-title{font-size:12px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:#f39c12}.host-control-close{background:none;border:none;color:var(--text-secondary);font-size:18px;cursor:pointer;line-height:1;padding:0 2px;transition:color .15s}.host-control-close:hover{color:var(--text-primary)}.host-control-actions{padding:10px;display:flex;flex-direction:column;gap:8px}.host-control-actions .btn:disabled{opacity:.65;cursor:not-allowed}.host-control-action-row{background:#ffffff08;border:1px solid var(--border);border-radius:10px;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px}.host-control-action-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.host-control-action-label{font-size:13px;font-weight:600;color:var(--text-primary)}.host-control-action-desc{font-size:11px;color:var(--text-secondary);line-height:1.3}.host-control-confirm{display:flex;flex-direction:column;gap:6px;align-items:flex-end}.host-control-confirm-text{font-size:11px;color:#e67e22;font-weight:600}.host-control-confirm-btns{display:flex;gap:6px}@media (max-width: 375px){.host-control-menu{width:calc(100vw - 40px)}}
