:root{font-family:Segoe UI,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#ffffffde;background-color:#1a1f3c;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}a{font-weight:500;color:#ff6b6b;text-decoration:inherit}a:hover{color:#ff5252}body{margin:0;min-width:320px;min-height:100vh}h1,h2,h3,h4,h5,h6{margin:0}button,input{font-family:inherit}.landing-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a1f3c,#2d3561,#1a1f3c);padding:20px}.landing-card{background:#1e233cf2;border-radius:20px;padding:40px;width:100%;max-width:420px;box-shadow:0 20px 60px #0006;border:1px solid rgba(255,255,255,.1)}.landing-header{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:8px}.logo-icon{font-size:48px}.logo-text{font-size:48px;font-weight:700;color:#ff6b6b;margin:0;font-style:italic}.tagline{text-align:center;color:#ffffffb3;margin-bottom:30px;font-size:16px}.error-message{background:#ff6b6b33;border:1px solid #ff6b6b;color:#ff6b6b;padding:10px 15px;border-radius:8px;margin-bottom:20px;text-align:center;font-size:14px}.form-section{margin-bottom:20px}.input-label{display:block;color:#ffffffe6;margin-bottom:8px;font-weight:500;text-align:center}.input-field{width:100%;padding:15px 20px;border-radius:12px;border:1px solid rgba(255,255,255,.2);background:#282d46cc;color:#fff;font-size:16px;outline:none;transition:border-color .3s,box-shadow .3s;box-sizing:border-box}.input-field::placeholder{color:#fff6}.input-field:focus{border-color:#ff6b6b;box-shadow:0 0 0 3px #ff6b6b33}.code-input{text-align:center;letter-spacing:8px;font-size:24px;font-weight:600}.code-input::placeholder{font-size:16px;letter-spacing:normal;font-weight:400}.btn-primary{width:100%;padding:14px;border-radius:12px;border:none;background:linear-gradient(135deg,#ff6b6b,#ff5252);color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .3s;box-shadow:0 4px 15px #ff6b6b66}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ff6b6b80}.btn-primary:active{transform:translateY(0)}.btn-secondary{width:100%;padding:14px;border-radius:12px;border:1px solid rgba(255,255,255,.3);background:transparent;color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:background .3s,border-color .3s;margin-top:10px}.btn-secondary:hover{background:#ffffff1a;border-color:#ffffff80}.divider{display:flex;align-items:center;margin:25px 0}.divider:before,.divider:after{content:"";flex:1;height:1px;background:#fff3}.divider span{padding:0 15px;color:#ffffff80;font-size:14px}.waiting-container{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;background:linear-gradient(135deg,#1a1f3c,#2d3561,#1a1f3c);padding:20px;overflow-y:auto}.waiting-card{background:#1e233cf2;border-radius:20px;padding:30px;width:100%;max-width:500px;box-shadow:0 20px 60px #0006;border:1px solid rgba(255,255,255,.1);margin:20px 0}.waiting-header{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:20px}.waiting-header .room-icon{font-size:36px}.waiting-header h1{font-size:28px;color:#ff6b6b;margin:0}.room-code-section{text-align:center;margin-bottom:20px}.room-code-label{display:block;color:#fff9;font-size:14px;margin-bottom:5px}.room-code{font-size:48px;font-weight:700;color:#fff;letter-spacing:10px}.share-buttons{display:flex;gap:10px;margin-bottom:20px}.btn-share{flex:1;padding:12px;border-radius:10px;border:1px solid rgba(255,255,255,.2);background:#282d46cc;color:#fff;font-size:14px;cursor:pointer;transition:background .3s}.btn-share:hover{background:#3c415ae6}.qr-container{display:flex;justify-content:center;margin-bottom:20px;padding:20px;background:#ffffff0d;border-radius:12px}.players-section{margin-bottom:20px}.players-section h3{color:#fffc;margin-bottom:15px;font-size:16px}.players-list{display:flex;flex-direction:column;gap:8px;max-height:200px;overflow-y:auto}.player-item{display:flex;align-items:center;gap:10px;padding:10px 15px;background:#282d4699;border-radius:10px}.player-avatar{font-size:20px}.player-name{color:#fff;display:flex;align-items:center;gap:8px}.creator-badge{background:#ff6b6b;color:#fff;font-size:10px;padding:2px 6px;border-radius:4px;font-weight:600}.you-badge{background:#4caf50;color:#fff;font-size:10px;padding:2px 6px;border-radius:4px;font-weight:600}.btn-config{width:100%;padding:14px;border-radius:10px;border:1px solid rgba(255,255,255,.2);background:#282d46cc;color:#fff;font-size:16px;cursor:pointer;margin-bottom:15px;transition:background .3s}.btn-config:hover{background:#3c415ae6}.config-section{background:#14192dcc;border-radius:12px;padding:20px;margin-bottom:20px}.config-item{margin-bottom:20px}.config-item:last-child{margin-bottom:0}.config-item label{display:block;color:#fffc;margin-bottom:10px;font-size:14px}.counter{display:flex;align-items:center;gap:15px}.counter button{width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:#282d46cc;color:#fff;font-size:20px;cursor:pointer}.counter span{font-size:24px;color:#fff;font-weight:600;min-width:30px;text-align:center}.roles-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.role-toggle{padding:10px;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:#282d4699;color:#ffffffb3;font-size:12px;cursor:pointer;transition:all .3s}.role-toggle.active{border-color:#ff6b6b;background:#ff6b6b33;color:#fff}.toggle-item{display:flex;justify-content:space-between;align-items:center}.toggle-item label{margin-bottom:0}.toggle-btn{padding:8px 20px;border-radius:20px;border:1px solid rgba(255,255,255,.3);background:#282d4699;color:#ffffffb3;cursor:pointer;transition:all .3s}.toggle-btn.active{background:#4caf50;border-color:#4caf50;color:#fff}.btn-start{width:100%;padding:16px;border-radius:12px;border:none;background:linear-gradient(135deg,#4caf50,#45a049);color:#fff;font-size:18px;font-weight:600;cursor:pointer;transition:transform .2s,opacity .3s;margin-bottom:15px}.btn-start:hover:not(:disabled){transform:translateY(-2px)}.btn-start:disabled{opacity:.5;cursor:not-allowed}.waiting-message{text-align:center;padding:20px;color:#ffffffb3}.waiting-spinner{font-size:32px;display:block;margin-bottom:10px;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.btn-roles-info{width:100%;padding:14px;border-radius:10px;border:1px solid rgba(255,255,255,.2);background:#282d46cc;color:#fff;font-size:16px;cursor:pointer;margin-bottom:15px}.roles-info-section{background:#14192dcc;border-radius:12px;padding:15px;margin-bottom:20px;max-height:300px;overflow-y:auto}.role-info-card{background:#282d4699;border-radius:10px;padding:15px;margin-bottom:10px}.role-info-card:last-child{margin-bottom:0}.role-info-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.role-emoji{font-size:24px}.role-name{font-size:16px;font-weight:600;color:#ff6b6b}.role-description{color:#ffffffb3;font-size:13px;line-height:1.5;margin:0}.no-special-roles{color:#ffffff80;text-align:center;font-style:italic}.btn-leave{width:100%;padding:12px;border-radius:10px;border:1px solid rgba(255,107,107,.5);background:transparent;color:#ff6b6b;font-size:14px;cursor:pointer;transition:background .3s}.btn-leave:hover{background:#ff6b6b1a}.confirm-modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.confirm-modal{background:#1e233cfa;border-radius:16px;padding:25px;max-width:400px;width:100%;box-shadow:0 20px 60px #00000080;border:1px solid rgba(255,255,255,.1)}.confirm-modal-title{color:#fff;margin:0 0 15px;font-size:20px;text-align:center}.confirm-modal-message{color:#ffffffb3;text-align:center;margin:0 0 25px;line-height:1.5}.confirm-modal-actions{display:flex;gap:12px}.confirm-modal .btn-cancel{flex:1;padding:14px;border-radius:10px;border:1px solid rgba(255,255,255,.3);background:transparent;color:#ffffffb3;font-size:16px;cursor:pointer;transition:background .3s}.confirm-modal .btn-cancel:hover{background:#ffffff1a}.confirm-modal .btn-confirm{flex:1;padding:14px;border-radius:10px;border:none;background:linear-gradient(135deg,#ff6b6b,#ff5252);color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:transform .2s}.confirm-modal .btn-confirm:hover{transform:translateY(-2px)}.game-container{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding:20px;transition:background .5s}.game-container.night{background:linear-gradient(135deg,#0d1025,#1a1f3c,#0d1025)}.game-container.day{background:linear-gradient(135deg,#2d3561,#4a5490,#2d3561)}.game-container.voting{background:linear-gradient(135deg,#3d2356,#5a3d80,#3d2356)}.game-card{background:#1e233cf2;border-radius:20px;padding:25px;width:100%;max-width:500px;box-shadow:0 20px 60px #0006;border:1px solid rgba(255,255,255,.1);margin:20px 0}.game-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.room-info{display:flex;align-items:center;gap:10px}.room-code-small{color:#ffffff80;font-size:14px}.btn-role-info{padding:8px 16px;border-radius:20px;border:1px solid rgba(255,255,255,.3);background:#282d46cc;color:#fff;font-size:14px;cursor:pointer}.role-card{background:#282d46cc;border-radius:15px;padding:20px;margin-bottom:20px;border:1px solid rgba(255,255,255,.1)}.role-header{display:flex;align-items:center;gap:15px;margin-bottom:15px}.role-emoji-large{font-size:48px}.role-header h3{margin:0 0 5px;color:#fff;font-size:22px}.team-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:600}.team-badge.werewolves{background:#ff6b6b4d;color:#ff6b6b}.team-badge.villagers{background:#4caf504d;color:#4caf50}.role-desc{color:#ffffffb3;font-size:14px;line-height:1.6;margin:0}.phase-indicator{text-align:center;padding:20px;border-radius:15px;margin-bottom:20px}.phase-indicator.night{background:linear-gradient(135deg,#0d1025cc,#1a1f3ccc);border:1px solid rgba(100,100,180,.3)}.phase-indicator.day{background:linear-gradient(135deg,#ffc10733,#ff980033);border:1px solid rgba(255,193,7,.4)}.phase-indicator.voting{background:linear-gradient(135deg,#9c27b033,#673ab733);border:1px solid rgba(156,39,176,.4)}.phase-icon{font-size:48px;display:block;margin-bottom:10px}.phase-text{font-size:24px;font-weight:600;color:#fff;display:block}.round-text{font-size:14px;color:#ffffff80;display:block;margin-top:5px}.night-content,.day-content,.voting-content{margin-bottom:20px}.werewolf-action,.discussion-section{text-align:center;padding:20px;background:#282d4699;border-radius:15px}.werewolf-action h3,.discussion-section h3{color:#ff6b6b;margin-bottom:10px}.target-list,.vote-list{display:flex;flex-direction:column;gap:10px;margin-top:15px}.target-btn,.vote-btn{padding:14px 20px;border-radius:10px;border:1px solid rgba(255,255,255,.2);background:#1e2337cc;color:#fff;font-size:16px;cursor:pointer;transition:all .3s;text-align:left}.target-btn:hover:not(:disabled),.vote-btn:hover:not(:disabled){background:#3c415ae6;border-color:#fff6}.target-btn.selected,.vote-btn.selected{background:#ff6b6b4d;border-color:#ff6b6b}.target-btn:disabled,.vote-btn:disabled{opacity:.5;cursor:not-allowed}.vote-submitted{color:#4caf50;margin-top:15px;font-weight:600}.vote-progress{margin-top:20px;padding:10px;background:#1e233799;border-radius:8px;text-align:center;color:#ffffffb3}.sleep-message,.dead-message,.moderator-message{text-align:center;padding:40px 20px}.sleep-icon,.dead-icon,.moderator-icon{font-size:64px;display:block;margin-bottom:15px}.sleep-message p,.dead-message p,.moderator-message p{color:#fffc;font-size:18px;margin:0}.hint{color:#ffffff80!important;font-size:14px!important;margin-top:10px!important}.death-announcement{background:#ff6b6b33;border:1px solid rgba(255,107,107,.4);border-radius:10px;padding:15px;margin-top:15px;display:flex;align-items:center;gap:10px}.death-announcement span{font-size:24px}.death-announcement p{margin:0;color:#ff6b6b}.creator-controls{display:flex;gap:10px;margin-top:20px}.btn-phase{flex:1;padding:16px;border-radius:12px;border:none;background:linear-gradient(135deg,#ff6b6b,#ff5252);color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:transform .2s}.btn-phase:hover{transform:translateY(-2px)}.btn-player-list{padding:16px;border-radius:12px;border:1px solid rgba(255,255,255,.3);background:#282d46cc;color:#fff;font-size:14px;cursor:pointer}.btn-player-list.full{width:100%;margin-bottom:10px}.simple-mode{text-align:center}.game-info-banner{padding:30px;background:#282d4699;border-radius:15px;margin-bottom:20px}.game-info-banner h2{color:#fff;margin:0 0 10px}.game-info-banner p{color:#ffffffb3;margin:0}.creator-panel{background:#282d4699;border-radius:15px;padding:20px}.creator-panel h3{color:#ff6b6b;margin:0 0 15px}.btn-end-game{width:100%;padding:16px;border-radius:12px;border:1px solid rgba(255,107,107,.5);background:transparent;color:#ff6b6b;font-size:16px;cursor:pointer;transition:background .3s}.btn-end-game:hover{background:#ff6b6b1a}.player-list-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#1e233cfa;border-radius:20px;padding:25px;width:90%;max-width:400px;max-height:80vh;overflow-y:auto;box-shadow:0 20px 60px #0009;border:1px solid rgba(255,255,255,.1);z-index:1000}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-header h3{margin:0;color:#fff}.modal-header button{background:none;border:none;color:#ffffffb3;font-size:20px;cursor:pointer}.modal-content h4{color:#fff9;font-size:14px;margin:20px 0 10px}.modal-content h4:first-child{margin-top:0}.player-row{display:flex;justify-content:space-between;align-items:center;padding:12px 15px;background:#282d4699;border-radius:10px;margin-bottom:8px}.player-row.dead{opacity:.5}.player-info{color:#fff}.player-role{color:#ff6b6b;font-size:14px}.btn-revive{background:none;border:none;color:#fff6;font-size:12px;cursor:default}.role-reveal-overlay{position:fixed;inset:0;background:#000000f2;display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn .5s ease-out;cursor:pointer}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.role-reveal-card{text-align:center;padding:40px;animation:revealCard .8s ease-out}@keyframes revealCard{0%{transform:scale(.3) rotateY(180deg);opacity:0}50%{transform:scale(1.1) rotateY(90deg);opacity:.5}to{transform:scale(1) rotateY(0);opacity:1}}.role-reveal-title{font-size:18px;color:#fff9;text-transform:uppercase;letter-spacing:4px;margin-bottom:20px;animation:slideDown .6s ease-out .3s backwards}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.role-reveal-emoji{font-size:120px;margin-bottom:20px;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.role-reveal-name{font-size:42px;font-weight:700;color:#fff;margin-bottom:15px;animation:slideUp .6s ease-out .5s backwards}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.role-reveal-team{display:inline-block;padding:8px 20px;border-radius:20px;font-size:16px;font-weight:600;margin-bottom:20px;animation:slideUp .6s ease-out .7s backwards}.role-reveal-team.werewolves{background:#ff6b6b4d;color:#ff6b6b;border:1px solid rgba(255,107,107,.5)}.role-reveal-team.villagers{background:#4caf504d;color:#4caf50;border:1px solid rgba(76,175,80,.5)}.role-reveal-desc{max-width:400px;margin:0 auto 30px;color:#ffffffb3;font-size:16px;line-height:1.6;animation:slideUp .6s ease-out .9s backwards}.role-reveal-hint{color:#fff6;font-size:14px;animation:blink 2s ease-in-out infinite}@keyframes blink{0%,to{opacity:.4}50%{opacity:1}}.gameover-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;transition:background .5s}.gameover-container.werewolves{background:linear-gradient(135deg,#1a0a0a,#3d1515,#1a0a0a)}.gameover-container.villagers{background:linear-gradient(135deg,#0a1a0a,#153d15,#0a1a0a)}.gameover-container.lovers{background:linear-gradient(135deg,#1a0a1a,#3d153d,#1a0a1a)}.gameover-card{background:#1e233cf2;border-radius:20px;padding:30px;width:100%;max-width:500px;box-shadow:0 20px 60px #0006;border:1px solid rgba(255,255,255,.1)}.winner-section{text-align:center;margin-bottom:25px}.winner-icon{font-size:80px;display:block;margin-bottom:15px;animation:bounce 1s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.winner-title{font-size:32px;color:#fff;margin:0 0 10px}.winner-message{color:#ffffffb3;font-size:16px;margin:0}.player-result{display:flex;align-items:center;justify-content:center;gap:10px;padding:15px;border-radius:12px;margin-bottom:25px}.player-result.won{background:#4caf5033;border:1px solid rgba(76,175,80,.5)}.player-result.lost{background:#ff6b6b33;border:1px solid rgba(255,107,107,.5)}.result-icon{font-size:28px}.result-text{font-size:20px;font-weight:600;color:#fff}.players-summary{background:#282d4699;border-radius:15px;padding:20px;margin-bottom:20px}.players-summary h3{color:#fff;margin:0 0 15px;text-align:center;font-size:18px}.team-section{margin-bottom:15px}.team-section:last-child{margin-bottom:0}.team-section h4{color:#ffffffb3;font-size:14px;margin:0 0 10px}.team-players{display:flex;flex-wrap:wrap;gap:8px}.player-chip{padding:8px 12px;border-radius:20px;font-size:13px;display:flex;align-items:center;gap:5px}.player-chip.alive{background:#4caf504d;color:#4caf50}.player-chip.dead{background:#ff6b6b33;color:#ffffff80;text-decoration:line-through}.you-marker{font-weight:600;color:#ffc107}.game-stats{display:flex;gap:15px;margin-bottom:25px}.stat{flex:1;text-align:center;padding:15px;background:#282d4699;border-radius:12px}.stat-value{display:block;font-size:32px;font-weight:700;color:#ff6b6b}.stat-label{display:block;font-size:12px;color:#fff9;margin-top:5px}.action-buttons{display:flex;flex-direction:column;gap:10px}.btn-play-again{width:100%;padding:16px;border-radius:12px;border:none;background:linear-gradient(135deg,#4caf50,#45a049);color:#fff;font-size:18px;font-weight:600;cursor:pointer;transition:transform .2s}.btn-play-again:hover{transform:translateY(-2px)}.gameover-card .btn-leave{width:100%;padding:14px;border-radius:12px;border:1px solid rgba(255,255,255,.3);background:transparent;color:#ffffffb3;font-size:16px;cursor:pointer;transition:background .3s}.gameover-card .btn-leave:hover{background:#ffffff1a}#root{width:100%;min-height:100vh}
