.lobby-container,.lobby-waiting{background-color:transparent;padding:20px;max-width:800px;margin:0 auto;text-align:center;color:var(--text-primary)}.lobby-container h1{font-family:Uncial Antiqua,serif;font-size:3.5rem;margin-bottom:10px;text-transform:uppercase;letter-spacing:4px;background:linear-gradient(to right,var(--text-secondary),var(--text-highlight));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}@container app-main (max-width: 400px){.lobby-container h1{font-size:2rem;margin-bottom:20px}.lobby-container,.panel{padding:10px}.panel h3{font-size:1.1rem}.start-btn{padding:10px 20px;font-size:1rem}}.name-input-section{max-width:400px;margin:0 auto 30px;width:100%}.name-input{width:100%;padding:16px;background-color:transparent;border:2px solid var(--bg-tertiary);border-radius:var(--radius);color:var(--text-highlight);font-size:1.2rem;outline:none;text-align:center;box-shadow:none;transition:all .2s}.name-input:focus{border-color:var(--accent-secondary);background-color:#0003;transform:scale(1.02)}.lobby-panels{display:flex;flex-direction:column;gap:20px;width:100%;margin-top:20px}@container app-main (min-width: 600px){.lobby-panels{flex-direction:row;align-items:stretch}}.panel{flex:1;background:var(--bg-secondary);border:1px solid var(--bg-tertiary);border-radius:var(--radius);padding:20px;display:flex;flex-direction:column;align-items:center;text-align:center;box-shadow:0 4px 6px #0000001a}.panel h3{margin:0 0 15px;font-size:1.4rem;color:var(--text-highlight);text-transform:uppercase;letter-spacing:1px;border-bottom:2px solid var(--bg-tertiary);padding-bottom:10px;width:100%}.panel-body{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;margin-bottom:15px;min-height:60px}.panel-body p{font-size:1.1rem;color:var(--text-secondary);margin:0}.panel input{width:100%;padding:12px;background-color:var(--bg-primary);border:2px solid var(--bg-tertiary);border-radius:var(--radius);color:var(--text-highlight);font-size:1.1rem;text-align:center;transition:all .2s}.panel input:focus{border-color:var(--accent-secondary);outline:none;box-shadow:0 0 0 2px #ffffff1a}.room-code-input{font-family:monospace;font-size:1.5rem!important;letter-spacing:3px;text-transform:uppercase;max-width:200px}.panel button{width:100%;padding:12px;border:none;border-radius:var(--radius);background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff;font-size:1.1rem;font-weight:700;cursor:pointer;text-transform:uppercase;letter-spacing:1px;transition:all .2s}.panel button:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-2px);box-shadow:0 6px 15px #0000004d}.panel button:active:not(:disabled){transform:translateY(0)}.panel button:disabled{opacity:.5;background:var(--bg-tertiary);cursor:not-allowed;transform:none}.lobby-waiting h2{color:var(--text-highlight);font-size:2.5rem;margin:0;text-shadow:0 2px 4px rgba(0,0,0,.3)}.room-display{display:flex;align-items:center;justify-content:center;gap:12px;position:relative}.header-action-area{display:flex;align-items:center;justify-content:center;gap:20px;margin-bottom:30px}@container app-main (max-width: 500px){.header-action-area{gap:12px;margin-bottom:20px}.lobby-waiting h2{font-size:2rem}.qr-code-container{padding:6px}}.player-list{margin:20px 0;text-align:left;background:var(--bg-secondary);padding:20px;border-radius:var(--radius);border:1px solid var(--bg-tertiary)}.player-list h3{font-size:1.2rem;color:var(--text-secondary);margin:0}.player-list-header{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid var(--bg-tertiary);padding-bottom:10px;margin-bottom:15px}.player-list-header .start-btn{padding:10px 20px;font-size:1rem}.player-count-message{color:var(--text-secondary);font-style:italic;margin:0 0 15px;font-size:.9rem}.player-list ul{list-style:none;padding:0;display:flex;flex-direction:column;gap:8px}.player-list li{background:#ffffff0d;padding:12px 16px;border-radius:8px;color:var(--text-highlight);display:flex;justify-content:space-between;align-items:center}.player-list .disconnected{opacity:.5;font-style:italic;color:var(--text-secondary)}.start-btn{background:linear-gradient(135deg,var(--success),#00b894);color:#fff;padding:16px 32px;border:none;border-radius:var(--radius);font-size:1.3rem;font-weight:700;cursor:pointer;box-shadow:0 4px 15px #00b8944d;transition:transform .1s;text-transform:uppercase;letter-spacing:1px}.start-btn:hover{filter:brightness(1.1)}.start-btn:active{transform:scale(.98)}.qr-code-container{padding:10px;background:#fff;border-radius:var(--radius);display:inline-flex;align-items:center;justify-content:center;box-shadow:0 4px 20px #00000080}.reclaim-section{width:100%;margin-top:15px;border-top:1px solid var(--bg-tertiary);padding-top:15px}.reclaim-section h4{color:var(--text-secondary);font-size:.9rem;margin:0 0 10px;text-transform:uppercase}.reclaim-list{display:flex;flex-direction:column;gap:8px}.reclaim-btn{background:transparent!important;border:1px dashed var(--bg-tertiary)!important;color:var(--text-secondary)!important;font-size:.9rem!important;padding:8px!important;display:flex;align-items:center;justify-content:center;gap:8px}.reclaim-btn:hover{border-color:var(--accent-primary)!important;color:var(--accent-primary)!important;background:#ffffff0d!important;transform:none!important;box-shadow:none!important}.reclaim-btn svg{font-size:1rem}.setup-phase{padding:20px;width:100%;max-width:1200px;margin:0 auto;color:#fff;position:relative}.sticky-header{position:sticky;top:0;background-color:#333;z-index:100;padding:10px 15px;border-bottom:2px solid #555;margin-bottom:20px;margin-left:-20px;margin-right:-20px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 4px 6px #0000004d}.team-section{width:var(--snapped-width, 100%);margin:0 auto;max-width:100%}.setup-stats{display:flex;flex-wrap:wrap;gap:15px;font-size:.9em}.stat-item{font-weight:700}.stat-label{color:#aaa;font-weight:400}.stat-item.error{color:#ff6b6b}.stat-item.valid{color:#51cf66}.toggle-details-btn{background:#555;color:#fff;border:1px solid #777;padding:5px 10px;border-radius:4px;cursor:pointer;font-size:.85em;white-space:nowrap}.toggle-details-btn:hover{background:#666}.role-list{display:flex;flex-direction:column;gap:30px}.team-section-header{border-bottom:2px solid #555;padding-bottom:10px;margin-bottom:15px;text-transform:uppercase;letter-spacing:.1em}.team-werewolf-header{color:var(--team-werewolf, #ff6b6b);border-color:var(--team-werewolf, #ff6b6b)}.team-village-header{color:var(--team-village, #51cf66);border-color:var(--team-village, #51cf66)}.team-independent-header{color:var(--team-independent, #ffd43b);border-color:var(--team-independent, #ffd43b)}.team-switcher-header{background:linear-gradient(90deg,#3b82f6,#ff6b6b);-webkit-background-clip:text;-webkit-text-fill-color:transparent;border-bottom:2px solid;border-image:linear-gradient(90deg,#3b82f6,#ff6b6b) 1}.team-roles-list{display:grid;grid-template-columns:repeat(auto-fill,var(--min-card-width, 380px));gap:15px;justify-content:center}.role-item{background:#444;padding:10px 15px;border-radius:8px;border-left:5px solid #888;transition:opacity .3s ease}.role-item.dimmed{opacity:.6}.team-village{border-left-color:var(--team-village)}.team-werewolf{border-left-color:var(--team-werewolf)}.team-independent{border-left-color:var(--team-independent)}.team-switcher{border-left:5px solid;border-image:linear-gradient(to bottom,#3b82f6,#ff6b6b) 1}.role-main-row{display:flex;justify-content:space-between;align-items:center;min-height:44px}.role-info-clickable{display:flex;align-items:center;gap:10px;cursor:pointer;flex-grow:1;padding-right:10px;-webkit-user-select:none;user-select:none}.role-info-clickable:focus-visible{outline:2px solid #fff;border-radius:4px}.role-icon-small{font-size:1.5em;flex-shrink:0}.setup-role-name{font-size:1.3em;font-weight:700}.info-icon-hint{color:var(--text-secondary);font-size:.9em;opacity:.6;transition:all .2s ease}.role-info-clickable:hover .info-icon-hint,.role-info-clickable:active .info-icon-hint{opacity:1;color:var(--text-highlight);transform:scale(1.1)}.team-werewolf .setup-role-name{color:var(--team-werewolf, #ff6b6b)}.team-village .setup-role-name{color:var(--team-village, #51cf66)}.team-independent .setup-role-name{color:var(--team-independent, #ffd43b)}.team-switcher .setup-role-name{background:linear-gradient(90deg,#3b82f6,#ff6b6b);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.role-actions-right{display:flex;align-items:center;gap:10px}.role-balance{font-family:monospace;color:#ccc;font-weight:700}.role-controls{display:flex;align-items:center;gap:8px}.control-btn{width:36px;height:36px;border-radius:50%;border:none;background:#666;color:#fff;cursor:pointer;font-size:1.4em;line-height:1;display:flex;justify-content:center;align-items:center;padding:0}.control-btn:disabled{opacity:.3;cursor:not-allowed;background:#555}.control-btn:hover:not(:disabled){background:#888}.role-count{font-size:1.2em;font-weight:700;min-width:24px;text-align:center}.role-desc{font-size:.9em;color:#ccc;margin-top:10px;padding-top:10px;border-top:1px solid #555;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.start-btn{padding:15px 40px;font-size:1.3em;background:#51cf66;color:#fff;border:none;border-radius:8px;cursor:pointer;width:100%;max-width:300px}.start-btn:disabled{background:#555;cursor:not-allowed}.waiting-msg{text-align:center;margin-top:20px;margin-bottom:30px;font-style:italic;color:#aaa;font-size:1.2em}.non-host-view{display:flex;flex-direction:column;align-items:center;padding-top:40px}.mini-cards-container{position:relative;display:grid;grid-template-columns:repeat(auto-fill,60px);justify-content:center;gap:10px;width:100%;padding:20px;max-width:600px;perspective:1000px}.mini-card-wrapper{width:60px;height:80px}.mini-card{width:60px;height:80px;background:#444;border-radius:8px;display:flex;justify-content:center;align-items:center;border:3px solid transparent;box-shadow:0 4px 6px #0000004d;backface-visibility:hidden;transform-style:preserve-3d}.mini-card.team-switcher{border:3px solid transparent;background:linear-gradient(#444,#444) padding-box,linear-gradient(to bottom,#3b82f6,#ff6b6b) border-box}@media(max-width:600px){.setup-phase{padding:10px}.sticky-header{margin-left:-10px;margin-right:-10px;padding:10px}.setup-role-name{font-size:1.15em}.role-balance{font-size:.9em}.control-btn{width:40px;height:40px;font-size:1.2em}}@container app-main (max-width: 400px){.setup-phase{padding:5px}.sticky-header{margin-left:-5px;margin-right:-5px;padding:8px;font-size:.9em}.team-roles-list{grid-template-columns:1fr}.setup-role-name{font-size:1.1em}.role-balance{font-size:.8em}.control-btn{width:32px;height:32px;font-size:1em}.role-item{padding:8px 10px}}.role-item.disabled-role{filter:grayscale(100%);opacity:.3}.disabled-reason-text{color:#faa;font-style:italic}@keyframes flipIn{0%{opacity:0;transform:rotateY(90deg)}to{opacity:1;transform:rotateY(0)}}@keyframes flipOut{0%{opacity:1;transform:rotateY(0)}to{opacity:0;transform:rotateY(90deg)}}.mini-card-enter{opacity:0;transform:rotateY(90deg)}.mini-card-enter-active{animation:flipIn 1s cubic-bezier(.25,1,.5,1) forwards}.mini-card-exit{opacity:1;transform:rotateY(0)}.mini-card-exit-active{animation:flipOut 1s cubic-bezier(.45,-.2,.45,1) forwards;pointer-events:none}.role-card{background:linear-gradient(145deg,#1a1a2e,#16213e);border-radius:16px;padding:32px;width:320px;box-shadow:0 8px 32px #0006;border:2px solid rgba(255,255,255,.1);position:relative;text-align:center}@container app-main (max-width: 400px){.role-card{padding:20px;width:100%;max-width:280px;box-sizing:border-box}.role-name{font-size:24px!important}.role-icon{font-size:100px!important}.role-card-image{min-height:140px!important;margin:15px 0!important}.role-team{font-size:14px!important;margin-bottom:10px!important}.role-description{font-size:12px!important;line-height:1.3!important}}.role-card.team-werewolf{border-color:var(--team-werewolf);background:linear-gradient(145deg,#2d1f1f,#1a1a2e)}.role-card.team-village{border-color:var(--team-village);background:linear-gradient(145deg,#1f2d2f,#1a1a2e)}.role-card.team-independent{border-color:var(--team-independent);background:linear-gradient(145deg,#2d2618,#1a1a2e)}.role-card.drunk-card,.role-card.team-switcher-drunk{border:3px solid transparent;background:linear-gradient(145deg,#0f172a,#2a1212) padding-box,linear-gradient(to bottom right,#3b82f6,#ff6b6b) border-box;box-shadow:0 8px 32px #0009}.role-card-close{position:absolute;top:8px;right:8px;background:#ffffff1a;border:none;color:#fff;width:32px;height:32px;border-radius:50%;font-size:20px;cursor:pointer;transition:background .2s}.role-card-close:hover{background:#fff3}.role-card-header{margin-bottom:20px}.role-name{margin:0;font-size:32px;color:#fff;text-transform:uppercase;letter-spacing:2px}.team-werewolf .role-name{color:var(--team-werewolf)}.team-village .role-name{color:var(--team-village)}.team-independent .role-name{color:var(--team-independent)}.drunk-card .role-name,.team-switcher-drunk .role-name{background:linear-gradient(90deg,#3b82f6,#ff6b6b);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:#a78bfa}.team-hidden .role-name{color:#95a5a6}.role-card-image{margin:24px 0;display:flex;justify-content:center;align-items:center;min-height:180px}.role-icon-container{display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 4px 6px rgba(0,0,0,.4))}.role-icon{font-size:140px;color:#ffffffe6}.role-card-footer{margin-top:24px}.role-team{margin:0 0 16px;font-size:16px;text-transform:uppercase;letter-spacing:1px;font-weight:700}.team-werewolf .role-team{color:var(--team-werewolf)}.team-village .role-team{color:var(--team-village)}.team-independent .role-team{color:var(--team-independent)}.drunk-card .role-team,.team-switcher-drunk .role-team{background:linear-gradient(90deg,#3b82f6,#ff6b6b);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:#a78bfa;font-weight:800}.role-description{margin:0;font-size:14px;color:#fffc;line-height:1.5}.role-card.team-hidden{border-color:#95a5a6;background:linear-gradient(145deg,#2c3e50,#1a1a2e);cursor:pointer;transition:transform .2s,box-shadow .2s}.role-card.team-hidden:hover{transform:translateY(-4px);box-shadow:0 12px 40px #0009}.team-hidden .role-team{color:#95a5a6}.role-card.hidden-face{background:linear-gradient(135deg,rgba(255,255,255,.03) 25%,transparent 25%) -10px 0,linear-gradient(225deg,rgba(255,255,255,.03) 25%,transparent 25%) -10px 0,linear-gradient(315deg,rgba(255,255,255,.03) 25%,transparent 25%),linear-gradient(45deg,rgba(255,255,255,.03) 25%,transparent 25%),linear-gradient(145deg,#2c3e50,#1a1a2e);background-size:20px 20px,20px 20px,20px 20px,20px 20px,100% 100%;border-color:#ffffff1a;display:flex;justify-content:center;align-items:center;padding:0;width:100%;height:100%;box-sizing:border-box}.role-card.hidden-face .role-name-hidden{font-family:Uncial Antiqua,serif;font-size:3.5rem;text-transform:uppercase;letter-spacing:4px;margin:0;background:linear-gradient(to right,#bdc3c7,#ecf0f1);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5));word-break:break-word}@container app-main (max-width: 400px){.role-card.hidden-face .role-name-hidden{font-size:2.5rem}}.role-reveal-phase{display:flex;flex-direction:column;align-items:center;padding:40px 20px;min-height:100vh;background:linear-gradient(180deg,#0f0f1a,#1a1a2e)}.phase-title{font-size:32px;color:#fff;margin:0 0 8px;text-transform:uppercase;letter-spacing:4px}.phase-subtitle{color:#fff9;margin:0 0 32px;font-size:16px}.flip-card-container{perspective:1000px;width:320px;height:400px;position:relative;cursor:pointer}@container app-main (max-width: 400px){.role-reveal-phase{padding:20px 10px;min-height:100%}.flip-card-container{width:260px;height:350px}.phase-title{font-size:24px}.phase-subtitle{font-size:14px;margin-bottom:20px}.ready-button{padding:12px 24px;font-size:16px}}.flip-card-container.bobbing{animation:bob 3s ease-in-out infinite}.flip-card-container:hover.bobbing{animation-play-state:paused}.flip-card-inner{position:relative;width:100%;height:100%;text-align:center;transition:transform .8s cubic-bezier(.175,.885,.32,1.275);transform-style:preserve-3d;transform-origin:center center;transform:rotateY(0)}.flip-card-inner.flipped .glint-effect:after{animation:none;opacity:0}.flip-card-front,.flip-card-back{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:15px;box-shadow:0 4px 8px #0003;box-sizing:border-box}.flip-card-front{display:flex;flex-direction:column;justify-content:space-between;align-items:center;background:linear-gradient(145deg,#2c3e50,#1a1a2e)}.flip-card-back .role-card{width:100%;height:100%;box-sizing:border-box}@keyframes bob{0%{transform:translateY(0)}50%{transform:translateY(-15px)}to{transform:translateY(0)}}.glint-effect:after{content:"";position:absolute;top:0;left:-150%;width:100%;height:100%;background:linear-gradient(90deg,#fff0,#ffffff1a 40%,#fff6,#ffffff1a 60%,#fff0);transform:skew(-25deg);animation:glint 3s infinite;z-index:2;pointer-events:none}.loading{color:#ffffff80;font-size:18px;padding:40px}.ready-section{margin-top:32px;text-align:center}.ready-button{background:linear-gradient(145deg,#27ae60,#2ecc71);border:none;color:#fff;padding:16px 32px;font-size:18px;font-weight:700;border-radius:8px;cursor:pointer;transition:transform .2s,box-shadow .2s;text-transform:uppercase;letter-spacing:1px;min-width:280px}.ready-button:hover{transform:translateY(-2px);box-shadow:0 4px 16px #2ecc7166}.ready-button:disabled{background:linear-gradient(145deg,#7f8c8d,#95a5a6);opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.ready-button:active{transform:translateY(0)}.ready-status{padding:16px 32px;font-size:18px;font-weight:700;border-radius:8px}.ready-status.confirmed{background:#2ecc7133;color:#2ecc71;border:1px solid rgba(46,204,113,.3)}.ready-count{margin-top:24px;color:#ffffffb3;font-size:16px}.ready-progress{width:200px;height:6px;background:#ffffff1a;border-radius:3px;margin:12px auto 0;overflow:hidden}.ready-progress-bar{height:100%;background:linear-gradient(90deg,#27ae60,#2ecc71);border-radius:3px;transition:width .3s ease}.lover-indicator{color:#ff6b9d;font-size:1.3rem;margin-left:8px;flex-shrink:0;min-width:1.5rem;display:inline-flex;padding-right:2px}.vote-actions{display:flex;align-items:center;gap:8px}.lock-btn{background:linear-gradient(135deg,#e63946,#b91c1c);box-shadow:0 4px 15px #e6394666;border:none}.lock-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #e6394699;filter:brightness(1.1)}.waiting-consensus-btn{background:#e6394626;border:2px solid #e63946;color:#e63946;animation:button-pulse 2s infinite;cursor:default}.consensus-reached-btn{background:linear-gradient(135deg,#e63946,#991b1b)!important;color:#fff!important;box-shadow:0 0 25px #e63946cc!important;border:2px solid #ff6b6b!important;cursor:default;opacity:1!important}@keyframes button-pulse{0%{box-shadow:0 0 #e6394666}70%{box-shadow:0 0 0 10px #e6394600}to{box-shadow:0 0 #e6394600}}.player-card.locked{border-color:#e63946;box-shadow:0 0 15px #e6394666;background:#e639460d}@keyframes badge-pulse{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}.vote-badge{background:#e63946;color:#fff;border-radius:12px;padding:2px 8px;font-size:.9rem;font-weight:700;display:flex;align-items:center;gap:4px;white-space:nowrap;animation:badge-pulse .3s ease-out}.card-right{display:flex;align-items:center;gap:10px}.result-panel.werewolf{border-color:var(--danger);background:#e6394626}.result-panel.werewolf p{color:var(--danger);font-weight:700;font-size:1.5rem;margin:0}.result-panel.innocent{border-color:#4dabf7;background:#4dabf726}.result-panel.innocent p{color:#4dabf7;font-weight:700;font-size:1.5rem;margin:0}.witch-potion-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-top:20px}.witch-potion-cards.dimmed{opacity:.6;pointer-events:none;filter:grayscale(.5)}.witch-potion-card{background:var(--bg-secondary);border:2px solid var(--bg-tertiary);border-radius:var(--radius);padding:20px;display:flex;flex-direction:column;align-items:center;text-align:center;transition:all .3s ease}.witch-potion-card.save{border-color:#2ed5734d;background:#2ed57308}.witch-potion-card.poison{border-color:#e639464d;background:#e6394608}.witch-potion-card.used{opacity:.4;filter:grayscale(.6);pointer-events:none}.potion-header{display:flex;align-items:center;justify-content:center;gap:15px;margin-bottom:20px}.witch-potion-card h4{margin:0;font-size:1.3rem;color:var(--text-highlight);text-align:left}.potion-icon{font-size:2.5rem;padding:12px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.potion-icon.save-icon{color:var(--success);background:#2ed57326}.potion-icon.poison-icon{color:var(--danger);background:#e6394626}.potion-icon.save-icon.active-potion{background:#2ed5734d;box-shadow:0 0 20px #2ed57399;transform:scale(1.1)}.potion-icon.poison-icon.active-potion{background:#e639464d;box-shadow:0 0 20px #e6394699;transform:scale(1.1)}.decision-made{color:var(--text-secondary);font-style:italic;margin:0}.select-hint{color:var(--text-secondary);margin:0 0 10px;font-size:.9rem}.victim-list{display:flex;flex-direction:column;gap:12px;width:100%}.poison-target-list{display:flex;flex-direction:column;gap:8px;width:100%;max-height:200px;overflow-y:auto;margin-bottom:15px}.poison-target{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg-tertiary);border-radius:8px;cursor:pointer;transition:all .2s ease;border:2px solid transparent}.poison-target:hover:not(.disabled){background:#e6394626;border-color:#e639464d}.poison-target.selected{background:#e6394640;border-color:var(--danger);box-shadow:0 0 8px #e639464d}.poison-target.disabled{opacity:.4;cursor:not-allowed}.target-name{flex:1;text-align:left;color:var(--text-highlight)}.target-status{font-size:.75rem;font-weight:700;padding:2px 6px;border-radius:4px}.target-status.dead{color:var(--text-secondary);background:#ffffff1a}.target-status.victim{color:var(--danger);background:#e6394633}.waiting-text{text-align:center;color:var(--text-secondary);margin-top:20px;font-style:italic}.victim-card{background:#e6394626;border:1px solid rgba(230,57,70,.4);border-radius:12px;padding:15px;width:100%;display:flex;flex-direction:column;align-items:center;gap:12px;transition:all .4s ease}.victim-card.saving{background:#2ed57333;border-color:var(--success)}.victim-name{font-size:1.1rem;color:var(--text-primary);margin:0}.victim-name strong{color:var(--danger);font-size:1.25rem;margin-left:6px;transition:color .3s ease}.victim-card.saving .victim-name strong{color:var(--success)}.toggle-container{display:flex;align-items:center;width:100%;justify-content:center}.toggle-row{display:flex;align-items:center;gap:15px}.toggle-text{font-weight:700;min-width:80px;text-align:right;color:var(--text-highlight)}.switch{position:relative;display:inline-block;width:50px;height:28px;flex-shrink:0}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;inset:0;background-color:var(--text-secondary);transition:.4s}.slider:before{position:absolute;content:"";height:20px;width:20px;left:4px;bottom:4px;background-color:#fff;transition:.4s}input:checked+.slider{background-color:var(--success)}input:focus+.slider{box-shadow:0 0 1px var(--success)}input:checked+.slider:before{transform:translate(22px)}.slider.round{border-radius:34px}.slider.round:before{border-radius:50%}.action-footer{margin-top:30px;display:flex;justify-content:center}.finalize-btn{width:auto;min-width:200px;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));box-shadow:0 4px 15px #7b2cbf66;font-size:1.1rem;padding:16px 32px}.finalize-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #7b2cbf99}.hunter-phase{text-align:center;padding:20px;color:#fff;background-color:#2c0b0b;border:2px solid #e03131;border-radius:10px;margin:20px auto;max-width:600px}.hunter-phase h2{color:#ff8787}.player-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px;margin:20px 0}.player-card{background:#444;padding:10px;border-radius:5px;cursor:pointer;border:2px solid transparent}.player-card.selected{border-color:#e03131;background:#555}.shoot-btn{background:#e03131;color:#fff;font-size:1.5em;padding:10px 30px;border:none;border-radius:5px;cursor:pointer;margin-top:10px}.shoot-btn:disabled{background:#555;cursor:not-allowed}.cupid-hint{color:var(--text-secondary);margin-bottom:5px}.cupid-warning{color:#ff6b9d;font-weight:700;margin-bottom:15px}.cupid-selected-heart{color:#ff6b9d;font-size:1rem;margin-right:4px}.cupid-lover-badge{color:#ff6b9d;font-size:1.3rem;display:flex;align-items:center;justify-content:center}.cupid-complete{color:#ff6b9d;font-style:italic}.martyr-intervention-container{position:absolute;bottom:20px;left:50%;transform:translate(-50%);z-index:10000;animation:martyr-slide-up .3s ease-out}@keyframes martyr-slide-up{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.martyr-intervention-prompt{background:linear-gradient(135deg,#2c1810,#1a0f0a);border:2px solid #c9a227;border-radius:12px;padding:20px 30px;text-align:center;box-shadow:0 8px 32px #0009,0 0 20px #c9a2274d}.martyr-target-name{color:#fff;font-size:1.1rem;margin:0 0 15px;font-weight:500}.martyr-intervene-btn{background:linear-gradient(135deg,#b91c1c,#7f1d1d);color:#fff;border:none;padding:12px 30px;font-size:1.2rem;font-weight:700;border-radius:8px;cursor:pointer;transition:all .2s ease;text-shadow:0 2px 4px rgba(0,0,0,.5);box-shadow:0 4px 15px #b91c1c66}.martyr-intervene-btn:hover{background:linear-gradient(135deg,#dc2626,#991b1b);transform:scale(1.05);box-shadow:0 6px 20px #b91c1c99}.martyr-intervene-btn:active{transform:scale(.98)}.martyr-hint{color:#a0a0a0;font-size:.9rem;margin:12px 0 0;font-style:italic}@media(max-width:600px),(max-height:600px){.martyr-intervention-container{width:90%;bottom:80px}.martyr-intervention-prompt{padding:15px 20px}.martyr-target-name{font-size:1rem;margin-bottom:10px}.martyr-intervene-btn{padding:10px 20px;font-size:1rem;width:100%}.martyr-hint{font-size:.8rem;margin-top:8px}}.result-panel.seer{border-color:#fcc419;background:#fcc41926}.result-panel.seer p{color:#fcc419;font-weight:700;font-size:1.5rem;margin:0}.result-panel.not-seer{border-color:#adb5bd;background:#adb5bd26}.result-panel.not-seer p{color:#adb5bd;font-weight:700;font-size:1.5rem;margin:0}.team-switcher-drunk{background:linear-gradient(135deg,#2ecc71,#3498db 40%,#e74c3c);box-shadow:0 8px 32px #1f26875e;border:1px solid rgba(255,255,255,.18)}.role-card.drunk-card{background:linear-gradient(135deg,#3498db,#9b59b6,#e74c3c);border:2px solid rgba(255,255,255,.3);position:relative;overflow:hidden}.role-card.drunk-card:after{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 70%);pointer-events:none;animation:sway 10s infinite alternate ease-in-out}@keyframes sway{0%{transform:translate(-10%,-10%)}to{transform:translate(10%,10%)}}.drunk-overlay{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at center,transparent 30%,rgba(231,76,60,.1) 100%);z-index:5}.night-waiting{text-align:center;max-width:400px;margin:0 auto}.night-waiting h3{color:#e0aaff;margin-bottom:1rem;font-size:1.5rem;text-shadow:0 0 10px rgba(224,170,255,.4)}.night-waiting-message{color:#c8b6ff;font-size:1.1rem;line-height:1.6;font-style:italic;opacity:.9}.game-over{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-height:100vh;text-align:center;padding:60px 20px 20px;background:radial-gradient(circle at center,var(--bg-secondary),var(--bg-primary))}.game-over h1{font-family:Uncial Antiqua,serif;font-size:3rem;margin-bottom:20px;text-transform:uppercase;letter-spacing:4px;background:linear-gradient(to right,var(--text-secondary),var(--text-highlight));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}@container app-main (max-width: 400px){.game-over h1{font-size:2rem}}.game-over h2{color:var(--success);margin-bottom:30px;font-size:2rem;text-transform:uppercase;letter-spacing:2px}.winner-village{color:var(--team-village)!important;text-shadow:0 0 10px rgba(77,171,247,.5)}.winner-werewolf{color:var(--team-werewolf)!important;text-shadow:0 0 10px rgba(255,107,107,.5)}.winner-tanner{color:var(--team-independent)!important;text-shadow:0 0 10px rgba(230,179,30,.5)}.winner-lovers{color:#ff6b81!important;text-shadow:0 0 10px rgba(255,107,129,.5)}.winner-vampire{color:#8e44ad!important;text-shadow:0 0 10px rgba(142,68,173,.5)}.winner-cult{color:#27ae60!important;text-shadow:0 0 10px rgba(39,174,96,.5)}.game-over button{padding:15px 30px;font-size:1.2rem;background:var(--accent-primary);color:#fff;border:none;border-radius:var(--radius);cursor:pointer;margin-bottom:30px;font-weight:700;text-transform:uppercase;letter-spacing:1px;transition:transform .1s}.game-over button:hover{filter:brightness(1.1)}.game-over button:active{transform:scale(.98)}.game-over-list{display:flex;flex-direction:column;gap:12px;width:100%;max-width:400px;margin:0 auto}.player-result-item{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;background:#ffffff0d;border-radius:var(--radius);border:1px solid rgba(255,255,255,.1)}.player-result-item .player-name{font-size:1.2rem;color:var(--text-highlight);font-style:normal}.player-result-item.dead{opacity:.5}.player-result-item.dead .player-name{text-decoration:line-through}.player-result-item.team-village{border-color:var(--team-village);background:linear-gradient(90deg,rgba(77,171,247,.1),transparent)}.player-result-item.team-werewolf{border-color:var(--team-werewolf);background:linear-gradient(90deg,rgba(255,107,107,.1),transparent)}.player-result-item.team-independent{border-color:var(--team-independent);background:linear-gradient(90deg,rgba(230,179,30,.1),transparent)}.role-icon-result{font-size:1.5rem;color:var(--accent-secondary);display:flex;align-items:center}.death-reveal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#000000e6;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);display:flex;justify-content:center;align-items:center;z-index:9999;animation:fadeIn .5s ease-out}.death-reveal-content{display:flex;flex-direction:column;align-items:center;width:100%;max-width:400px}.reveal-text{color:#e0aaff;font-size:2rem;margin-bottom:30px;text-shadow:0 0 10px rgba(224,170,255,.5);animation:slideDown .5s ease-out;text-align:center}@container app-main (max-width: 400px){.reveal-text{font-size:1.5rem;margin-bottom:15px}.death-reveal-content{transform:scale(.85)}.flip-card-container{width:260px!important;height:380px!important}}.card-and-countdown-container{position:relative;display:flex;justify-content:center;align-items:center}.dramatic-countdown{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:100;pointer-events:none;display:flex;justify-content:center;align-items:center}.countdown-number{font-size:15rem;font-weight:800;color:#fff;text-shadow:0 0 20px rgba(255,255,255,.8),0 0 40px rgba(224,170,255,.8);animation:shrinkAndFade .8s cubic-bezier(.25,.46,.45,.94) forwards}@keyframes shrinkAndFade{0%{transform:scale(3);opacity:0}10%{opacity:1}to{transform:scale(0);opacity:0}}.flip-card-container{perspective:1000px;width:300px;height:450px;cursor:default}.flip-card-inner{position:relative;width:100%;height:100%;text-align:center;transition:transform .8s cubic-bezier(.175,.885,.32,1.275);transform-style:preserve-3d}.flip-card-inner.flipped{transform:rotateY(180deg)}.flip-card-front,.flip-card-back{position:absolute;width:100%;height:100%;backface-visibility:hidden;border-radius:15px;overflow:hidden;box-shadow:0 4px 15px #00000080}.flip-card-back{transform:rotateY(180deg)}@keyframes slideDown{0%{transform:translateY(-50px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes bob{0%{transform:translateY(0)}50%{transform:translateY(-10px)}to{transform:translateY(0)}}.flip-card-container.bobbing,.bobbing{animation:bob 2s infinite ease-in-out}.glint-effect{position:relative;overflow:hidden}.glint-effect:after{content:"";position:absolute;top:0;left:-150%;width:100%;height:100%;background:linear-gradient(to right,#fff0,#ffffff4d,#fff0);transform:skew(-25deg);animation:glint 3s infinite}@keyframes glint{0%{left:-150%}50%{left:150%}to{left:150%}}.sacrifice-message{color:#f44!important;text-shadow:0 0 20px rgba(255,68,68,.8),0 0 40px rgba(255,68,68,.4)!important;animation:sacrifice-pulse .5s ease-in-out infinite alternate!important}@keyframes sacrifice-pulse{0%{transform:scale(1);text-shadow:0 0 20px rgba(255,68,68,.8)}to{transform:scale(1.05);text-shadow:0 0 30px rgba(255,68,68,1),0 0 60px rgba(255,68,68,.6)}}.death-ack-container{margin-top:30px;min-height:80px;display:flex;align-items:center;flex-direction:column;width:100%}.death-ack-button{padding:12px 30px;font-size:1.2rem;background-color:#e0aaff;color:#10002b;border:none;border-radius:25px;cursor:pointer;font-weight:700;box-shadow:0 0 15px #e0aaff66;animation:fadeIn .5s ease-out 1s backwards;transition:transform .2s,box-shadow .2s}.death-ack-button:hover{transform:translateY(-2px);box-shadow:0 0 20px #e0aaff99}.death-ack-button:active{transform:translateY(0)}.death-ack-status{padding:12px 30px;font-size:1.2rem;font-weight:700;border-radius:25px;display:flex;align-items:center}.death-ack-status.confirmed{background:#e0aaff33;color:#e0aaff;border:1px solid rgba(224,170,255,.3)}.death-ack-count{margin-top:15px;color:#e0aaffcc;font-size:.9rem;animation:fadeIn .5s ease-out 1s backwards}.death-ack-progress{width:200px;height:6px;background:#ffffff1a;border-radius:3px;margin:8px auto 0;overflow:hidden;animation:fadeIn .5s ease-out 1s backwards}.death-ack-progress-bar{height:100%;background:#e0aaff;border-radius:3px;transition:width .3s ease;box-shadow:0 0 10px #e0aaff80}.drunk-reveal-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#000000f2;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:2000;animation:drunkRevealFadeIn .5s ease-out;border-radius:inherit}@keyframes drunkRevealFadeIn{0%{opacity:0}to{opacity:1}}.drunk-reveal-card-container{transition:filter .4s ease-in-out;will-change:filter;display:flex;justify-content:center;align-items:center;width:100%}.drunk-reveal-card-container.blurred{filter:blur(60px) brightness(1.8)}.drunk-reveal-controls{margin-top:50px;width:100%;display:flex;justify-content:center;z-index:2001}.drunk-reveal-controls .ready-button{max-width:300px;box-shadow:0 0 20px #7b2cbf80;animation:pulse 2s infinite}.toast-container{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:9999;display:flex;flex-direction:column;gap:10px;pointer-events:none}.toast{background:#282828f2;color:#fff;padding:12px 24px;border-radius:8px;box-shadow:0 4px 12px #0000004d;font-size:14px;font-weight:500;display:flex;align-items:center;gap:10px;animation:slideIn .3s ease-out;border:1px solid rgba(255,255,255,.1);min-width:250px;justify-content:center}.toast.info{border-left:4px solid #3b82f6}.toast.success{border-left:4px solid #10b981}.toast.error{border-left:4px solid #ef4444}.toast.warning{border-left:4px solid #f59e0b}@keyframes slideIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.app-header{display:flex;align-items:center;justify-content:space-between;padding:10px 15px;background:#10002bf2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--bg-tertiary);position:sticky;top:0;z-index:1000;height:60px;box-shadow:0 4px 6px #0003}.header-left,.header-right{display:flex;align-items:center;justify-content:center;min-width:40px}.header-center{flex:1;display:flex;justify-content:center;align-items:center;overflow:hidden}.header-title{font-size:1.2rem;font-weight:700;color:var(--text-highlight);text-transform:uppercase;letter-spacing:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}.header-title.branding{font-family:Uncial Antiqua,serif;background:linear-gradient(to right,var(--text-secondary),var(--text-highlight));background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;font-size:1.5rem}.header-icon-btn{background:transparent;border:none;color:var(--text-secondary);font-size:1.5rem;cursor:pointer;padding:8px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:none}.header-icon-btn:hover{background:#ffffff1a;color:var(--text-highlight)}.header-icon-btn:active{transform:scale(.95)}@media(max-width:400px){.header-title{font-size:1rem}.header-icon-btn{font-size:1.3rem;padding:6px}}.app-header.sunrise .header-title,.app-header.sunset .header-title{color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.5)}.app-header.sunrise .header-icon-btn,.app-header.sunset .header-icon-btn{color:#fffc}.app-header.sunrise{background:linear-gradient(180deg,#10002b,#240046,#7b2cbf,#ff9e00,#ffea00);background-size:100% 600%;animation:sunrise-cycle var(--transition-duration, 5s) linear forwards,glow-fade-in var(--transition-duration, 5s) linear forwards}@keyframes glow-fade-in{0%{box-shadow:0 4px 6px #0003;border-bottom-color:var(--bg-tertiary)}to{box-shadow:0 4px 20px #ffea004d;border-bottom-color:#ffea0066}}@keyframes sunrise-cycle{0%{background-position:0% 0%}to{background-position:0% 100%}}.app-header.sunset{background:linear-gradient(180deg,#10002b,#240046,#7b2cbf,#ff9e00,#ffea00);background-size:100% 600%;animation:sunset-cycle var(--transition-duration, 5s) linear forwards,glow-fade-out var(--transition-duration, 5s) linear forwards}@keyframes glow-fade-out{0%{box-shadow:0 4px 20px #ffea004d;border-bottom-color:#ffea0066}to{box-shadow:0 4px 6px #0003;border-bottom-color:var(--bg-tertiary)}}@keyframes sunset-cycle{0%{background-position:0% 100%}to{background-position:0% 0%}}.settings-menu-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#000000b3;z-index:2000;display:flex;justify-content:center;align-items:center;animation:fadeIn .2s ease-out}.settings-menu-content{background:var(--bg-secondary);border:1px solid var(--bg-tertiary);border-radius:var(--radius);padding:25px;width:90%;max-width:350px;box-shadow:0 10px 25px #00000080;display:flex;flex-direction:column;gap:20px;animation:slideUp .2s ease-out}.settings-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--bg-tertiary);padding-bottom:15px;margin-bottom:5px}.settings-header h3{margin:0;color:var(--text-highlight);font-size:1.3rem}.close-btn{background:transparent;border:none;color:var(--text-secondary);font-size:1.5rem;cursor:pointer;padding:0;line-height:1}.close-btn:hover{color:var(--text-highlight)}.settings-row{display:flex;flex-direction:column;gap:8px}.settings-label{color:var(--text-secondary);font-size:.9rem;font-weight:700}.room-code-display{background:#0003;border:1px dashed var(--text-secondary);padding:12px;border-radius:8px;text-align:center;font-family:monospace;font-size:1.5rem;letter-spacing:2px;color:var(--accent-secondary);-webkit-user-select:all;user-select:all}.settings-actions{margin-top:10px}.danger-btn{width:100%;padding:12px;background:transparent;border:2px solid var(--danger);color:var(--danger);border-radius:var(--radius);font-weight:700;cursor:pointer;transition:all .2s;text-transform:uppercase}.danger-btn:hover{background:var(--danger);color:#fff}.confirmation-actions{display:flex;gap:10px}.confirmation-btn{flex:1;width:auto}.abstain-btn.confirmation-btn{padding:12px;text-transform:uppercase}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.game-state-deck-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#000000d9;z-index:2000;display:flex;justify-content:center;align-items:center;animation:fadeIn .2s ease-out}.game-state-deck-overlay.peek-mode .game-state-deck-content{padding-top:50px}.game-state-deck-content{background:var(--bg-secondary);border:1px solid var(--accent-primary);width:100%;height:100%;max-width:none;max-height:none;border:none;border-radius:0;box-shadow:none;overflow-y:auto;display:flex;flex-direction:column;gap:15px;padding:0;animation:scaleIn .2s ease-out}.deck-header{display:flex;justify-content:flex-end;align-items:center;border-bottom:1px solid var(--bg-tertiary);height:60px;padding:10px 15px;box-sizing:border-box}.deck-close-btn{background:transparent;border:none;color:var(--text-secondary);font-size:1.5rem;cursor:pointer;padding:8px;display:flex;align-items:center;justify-content:center;border-radius:50%}.deck-grid{display:grid;grid-template-columns:repeat(auto-fit,60px);justify-content:center;gap:10px;padding:20px 20px 80px;width:100%}.my-full-role-card{display:flex;justify-content:center;width:100%}.mini-card{width:60px;height:80px;background:#444;border-radius:8px;display:flex;justify-content:center;align-items:center;border:3px solid transparent;box-shadow:0 4px 6px #0000004d;position:relative;transition:all .2s ease}.mini-card-icon{font-size:2.5em;color:#fff}.mini-card.team-werewolf{border-color:var(--team-werewolf, #ff6b6b)}.mini-card.team-village{border-color:var(--team-village, #51cf66)}.mini-card.team-independent{border-color:var(--team-independent, #ffd43b)}.mini-card.dimmed{opacity:.3;filter:grayscale(80%)}.mini-card.my-role{box-shadow:0 0 20px #ffffffe6;transform:scale(1.05);z-index:2}.mini-card.my-role.dimmed{opacity:.6;filter:grayscale(50%);box-shadow:0 0 10px var(--accent-secondary)}.deck-info{text-align:center;font-size:.9rem;color:var(--text-secondary);font-style:italic;border-top:1px solid var(--bg-tertiary);padding-top:10px}.highlight-legend{color:var(--text-highlight);font-weight:700;border:1px solid var(--text-highlight);padding:2px 6px;border-radius:4px;margin:0 4px;display:inline-block}@keyframes scaleIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}:root{--bg-primary: #10002b;--bg-secondary: #240046;--bg-tertiary: #3c096c;--accent-primary: #7b2cbf;--accent-secondary: #9d4edd;--text-primary: #e0aaff;--text-secondary: #c77dff;--text-highlight: #ffffff;--danger: #ff4d4d;--success: #00b894;--radius: 12px;--team-village: #4dabf7;--team-werewolf: #ff6b6b;--team-independent: #e6b31e}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,Roboto,Helvetica,Arial,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh;user-select:none;-webkit-user-select:none}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.app-container{max-width:600px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;container-type:inline-size;container-name:app-main;position:relative}@media(min-width:768px){.app-container{max-width:1200px}.create-panel,.join-panel{flex:1;display:block!important;opacity:1;transform:translateY(0)}.create-panel{border-right:2px solid var(--bg-tertiary);padding-right:20px}}h1,h2,h3{margin:0;color:var(--text-highlight)}h1{font-size:3rem;letter-spacing:2px;text-transform:uppercase;background:linear-gradient(to right,var(--text-secondary),var(--text-highlight));background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.subtitle{color:var(--text-secondary);font-style:italic;margin-top:5px}input,textarea{user-select:text;-webkit-user-select:text}input[type=text]{width:100%;padding:12px 16px;border-radius:var(--radius);border:2px solid var(--bg-tertiary);background-color:var(--bg-secondary);color:var(--text-highlight);font-size:1rem;outline:none;transition:border-color .2s;user-select:text;-webkit-user-select:text}input[type=text]:focus{border-color:var(--accent-secondary)}.primary-btn{width:100%;padding:14px;border:none;border-radius:var(--radius);background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff;font-size:1.1rem;font-weight:700;cursor:pointer;transition:transform .1s,opacity .2s;text-transform:uppercase;letter-spacing:1px}.primary-btn:active{transform:scale(.98)}.primary-btn:disabled:not(.consensus-reached-btn){opacity:.6;cursor:not-allowed}.primary-btn.locked{background:#636e72;cursor:default;opacity:.8}.success-btn{background:var(--success);color:#fff}.success-btn:hover{background:#00a383}.fade-in{animation:fadeIn .3s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.highlight{color:var(--accent-secondary);font-family:monospace;font-size:1.2em;background:#ffffff1a;padding:2px 8px;border-radius:6px}.waiting-message{text-align:center;color:var(--text-secondary);font-style:italic;margin-top:auto;padding:20px;animation:pulse 2s infinite}@keyframes pulse{0%{opacity:.6}50%{opacity:1}to{opacity:.6}}.phase-container{flex:1;display:flex;flex-direction:column;gap:20px;padding:20px;max-width:1000px;width:100%;margin:0 auto}.phase-container h2{text-align:center;font-size:2rem;margin-bottom:10px}.phase-instruction{text-align:center;color:var(--text-highlight);font-size:1.25rem;margin:15px 0 5px;font-style:italic;letter-spacing:.5px}.voting-grid,.player-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:15px}@container app-main (max-width: 400px){.player-grid,.voting-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px}.phase-container{padding:10px}.phase-container h2{font-size:1.5rem}}.player-card{background:var(--bg-secondary);border:2px solid var(--bg-tertiary);border-radius:var(--radius);padding:15px;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;transition:all .2s}.player-card.selected{border-color:var(--accent-secondary);box-shadow:0 0 10px var(--accent-secondary)}.player-card.dead{opacity:.5;filter:grayscale(.8)}.player-card .name{font-weight:700;color:var(--text-highlight)}.player-card button{margin-top:auto;width:100%;padding:8px;background:var(--bg-tertiary);border:none;border-radius:6px;color:var(--text-primary);cursor:pointer}.player-card button.active,.player-card button:hover:not(:disabled){background:var(--accent-primary);color:#fff}.voting-list{display:flex;flex-direction:column;gap:10px;margin-top:10px}.player-card.horizontal{flex-direction:row;align-items:center;justify-content:space-between;padding:12px 16px}.player-card.horizontal .player-info{display:flex;align-items:center;gap:12px}.player-card.horizontal .name{font-size:1.1rem}.player-card.horizontal .vote-status{font-size:.85rem;color:var(--text-secondary)}.player-card.horizontal button{margin-top:0;width:auto;padding:8px 16px}.dead-role-icon{font-size:1.2rem;color:var(--text-secondary)}.icon-slot{width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.voted-icon{font-size:1rem;color:var(--success)}.dev-role-icon{font-size:1.3rem;color:var(--text-secondary)}.dev-role-icon-inline{font-size:1rem;color:var(--text-secondary);margin-left:8px;opacity:.7}.actions{display:flex;justify-content:flex-start;padding:10px 0}.abstain-btn{padding:12px 24px;background:transparent;border:2px solid var(--text-secondary);color:var(--text-secondary);border-radius:var(--radius);cursor:pointer;font-weight:700;transition:all .2s}.abstain-btn.active,.abstain-btn:hover{background:var(--text-secondary);color:var(--bg-primary)}.action-panel,.result-panel{background:var(--bg-secondary);padding:20px;border-radius:var(--radius);border:1px solid var(--bg-tertiary);text-align:center}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#0000001a}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--accent-primary)}header{padding:15px;background:#0003;border-bottom:1px solid var(--bg-tertiary)}@media(max-width:768px){header{position:sticky;top:0;z-index:100;background:#14141ef2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}}.game-info{display:flex;justify-content:space-between;align-items:center;color:var(--text-highlight);font-weight:700;max-width:1000px;margin:0 auto;width:100%;gap:15px}.player-name{color:var(--accent-secondary);font-style:italic}.leave-btn{background:transparent;border:1px solid var(--danger);color:var(--danger);padding:8px 16px;border-radius:8px;cursor:pointer;transition:all .2s;font-weight:700}.leave-btn:hover{background:var(--danger);color:#fff}main{flex:1;display:flex;flex-direction:column;width:100%}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}.modal-content{background:linear-gradient(135deg,var(--bg-secondary),var(--bg-tertiary));border:2px solid var(--accent-primary);border-radius:var(--radius);padding:30px;max-width:400px;width:90%;text-align:center;box-shadow:0 10px 40px #00000080,0 0 20px var(--accent-primary);animation:slideIn .2s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-title{color:var(--text-highlight);font-size:1.5rem;margin-bottom:15px}.modal-message{color:var(--text-primary);font-size:1.1rem;margin-bottom:25px;line-height:1.5}.modal-buttons{display:flex;gap:15px;justify-content:center}.modal-btn{padding:12px 24px;border:none;border-radius:8px;font-weight:700;cursor:pointer;transition:all .2s;font-size:1rem;text-transform:uppercase;letter-spacing:1px}.modal-btn-confirm{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff}.modal-btn-confirm:hover{filter:brightness(1.1);transform:scale(1.02)}.modal-btn-cancel{background:transparent;border:2px solid var(--text-secondary);color:var(--text-secondary)}.modal-btn-cancel:hover{background:var(--text-secondary);color:var(--bg-primary)}.view-role-btn{padding:8px 16px;background:linear-gradient(135deg,#2d3436,#636e72);border:1px solid var(--text-secondary);color:var(--text-highlight);border-radius:8px;font-size:.9rem;cursor:pointer;transition:all .2s;margin-right:8px;display:inline-flex;align-items:center;gap:6px}.view-role-btn:hover{background:linear-gradient(135deg,#636e72,#2d3436);transform:scale(1.02)}.view-role-btn.peeking{background:var(--accent-secondary);border-color:var(--text-highlight);transform:scale(.95);box-shadow:inset 0 2px 4px #0000004d}.view-role-btn{user-select:none;-webkit-user-select:none;touch-action:manipulation;-webkit-touch-callout:none}.view-role-btn .btn-icon{display:inline-flex;justify-content:center;align-items:center;width:22px;height:28px;border:2px solid currentColor;border-radius:5px;font-size:14px;padding-bottom:2px}@media(max-width:600px){.view-role-btn .btn-text{display:none}.view-role-btn{padding:8px 10px}}.role-card-overlay{position:fixed;inset:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:1001;animation:fadeIn .3s ease-out}.role-card-overlay.peeking-overlay{background:#000000f2;animation:fadeIn .1s ease-out;pointer-events:none}.voting-closed-message{text-align:center;padding:20px;margin-top:20px;background:#0000004d;border-radius:var(--radius);animation:pulse 2s infinite}.voting-closed-message p{color:var(--text-secondary);font-size:1.2rem;margin:0}.lover-toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%);background:linear-gradient(135deg,#ff6b9d,#c44569);color:#fff;padding:16px 24px;border-radius:var(--radius);display:flex;flex-direction:column;align-items:center;gap:8px;z-index:1001;box-shadow:0 4px 20px #ff6b9d66;animation:loverToastIn .4s ease-out;cursor:pointer;text-align:center;max-width:90vw}.lover-toast-icon{font-size:1.5rem;animation:heartPulse 1s infinite}@keyframes heartPulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.lover-toast-warning{font-size:.85rem;opacity:.9;font-style:italic}@keyframes loverToastIn{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}header.day-header{background:#10002bd9;border-bottom:none;box-shadow:0 4px 20px #ffea004d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}header.day-header .game-info{color:#e0aaff}header.day-header .player-name{color:#c77dff;background:transparent;border:none;padding:0}header.day-header .leave-btn{border-color:#ff4d4d;color:#ff4d4d;background:transparent}header.day-header .leave-btn:hover{background:#ff4d4d;color:#fff}header.day-header .view-role-btn{background:linear-gradient(135deg,#2d3436,#636e72);color:#fff;border:1px solid #7b2cbf}header.day-header .view-role-btn:hover{filter:brightness(1.1)}@media(max-width:768px){header.day-header{background:#10002bf2}}.dead-player-mode{filter:grayscale(80%) brightness(.7);transition:filter 2s ease-in-out}.sticky-action-bar{position:sticky;bottom:0;left:0;right:0;padding:15px;background:#10002bf2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--bg-tertiary);display:flex;justify-content:center;z-index:100;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.lock-vote-btn{width:100%;max-width:400px;padding:14px;border:none;border-radius:var(--radius);background:linear-gradient(135deg,var(--danger),#ff9f43);color:#fff;font-size:1.1rem;font-weight:700;cursor:pointer;text-transform:uppercase;letter-spacing:1px;box-shadow:0 4px 15px #ff4d4d66;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:8px}.lock-vote-btn:hover{filter:brightness(1.1);transform:translateY(-2px);box-shadow:0 6px 20px #ff4d4d99}.lock-vote-btn:active{transform:translateY(0)}.lock-vote-btn.locked{background:#636e72;cursor:default;box-shadow:none;opacity:1;transform:none}.lock-vote-btn.locked:hover{filter:none;transform:none;box-shadow:none}.abstain-btn:disabled{opacity:.5;cursor:not-allowed;background:#555;pointer-events:none}.dev-dashboard{display:flex;flex-direction:column;height:100vh;background-color:#111;color:#eee;font-family:monospace}.dev-controls{padding:1rem;background-color:#222;border-bottom:1px solid #333;display:flex;align-items:center;gap:1rem}.dev-controls h1{margin:0;font-size:1.2rem;color:#f0c420}.dev-controls button{padding:.5rem 1rem;background-color:#333;border:1px solid #444;color:#fff;cursor:pointer;border-radius:4px}.dev-controls button:hover{background-color:#444}.dev-controls button.danger{background-color:#522;border-color:#722}.dev-grid{flex:1;overflow:auto;display:flex;flex-wrap:wrap;gap:1rem;padding:1rem;align-content:flex-start}.dev-viewport{width:375px;height:667px;border:2px solid #333;border-radius:8px;display:flex;flex-direction:column;overflow:hidden;background-color:var(--bg-primary);flex-shrink:0}.viewport-header{padding:.25rem .5rem;background-color:#222;border-bottom:1px solid #333;display:flex;justify-content:space-between;align-items:center;font-size:.8rem;color:#888}.viewport-header button{background:none;border:none;color:#f55;cursor:pointer;font-size:1.2rem;padding:0 .25rem}.viewport-content{flex:1;overflow:auto;position:relative}.viewport-content .app-container{height:100%;min-height:auto;position:relative;overflow:hidden;font-size:.9rem}.viewport-content .app-container>main{flex:1;overflow-y:auto;height:100%;width:100%;position:relative}.viewport-content .modal-overlay,.viewport-content .role-card-overlay,.viewport-content .game-over,.viewport-content .death-reveal-overlay{position:absolute!important;height:100%;width:100%;top:0;left:0;z-index:2000}.viewport-content .lover-toast{position:absolute!important;bottom:80px;width:90%;max-width:none;z-index:2000;left:50%!important;transform:translate(-50%)!important}.viewport-content .toast-container{position:absolute!important;top:20px;right:20px;max-width:90%}.viewport-content .sticky-action-bar{position:sticky!important;bottom:0;width:100%}.dev-mode *{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.dev-mode .death-reveal-overlay{backdrop-filter:blur(5px)!important;-webkit-backdrop-filter:blur(5px)!important}.dev-mode .modal-content,.dev-mode .role-card-overlay,.dev-mode .player-card.selected,.dev-mode .lover-toast,.dev-mode .lock-vote-btn{box-shadow:0 4px 8px #0000004d!important}.dev-mode .game-over h1{text-shadow:none!important}.dev-mode .fade-in,.dev-mode .modal-overlay,.dev-mode .modal-content,.dev-mode .lover-toast,.dev-mode .sticky-action-bar{animation-duration:.1s!important}.dev-mode .transition-banner{box-shadow:none!important}.dev-mode .player-card{transition:none!important}
