:root{--color-red: #c62828;--color-red-light: #ffcdd2;--color-red-lighter: #ef9a9a;--color-red-dark: #b71c1c;--color-blue: #1565c0;--color-blue-light: #bbdefb;--color-blue-lighter: #90caf9;--color-blue-dark: #0d47a1;--color-green: #2e7d32;--color-green-light: #c8e6c9;--color-green-lighter: #a5d6a7;--color-green-dark: #1b5e20;--color-neutral: #ffd54f;--color-neutral-light: #ffecb3;--color-assassin: #424242;--color-assassin-light: #757575;--color-success: #4caf50;--color-warning: #ff9800;--color-warning-dark: #f57c00;--color-error: #f44336}*{box-sizing:border-box}html,body{overflow-x:hidden;max-width:100vw}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.btn{display:inline-block;padding:12px 24px;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;text-align:center}.btn-warning{background:linear-gradient(135deg,#f57c00,#e65100);color:#fff}.btn-warning:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #f57c0066}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.modal-overlay{position:fixed;inset:0;background:#000000b3;z-index:10000;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{background:#fff;border-radius:16px;max-width:600px;max-height:80vh;width:90%;box-shadow:0 4px 24px #0006;animation:modal-appear .3s ease-out;display:flex;flex-direction:column}@keyframes modal-appear{0%{opacity:0;transform:scale(.95) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;border-bottom:1px solid #e0e0e0}.modal-header h2{margin:0;font-size:1.25rem;color:#333}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#666;padding:4px 8px;line-height:1;border-radius:4px;transition:all .2s ease}.modal-close:hover{background:#f0f0f0;color:#333}.modal-body{padding:24px;overflow-y:auto}.ai-thoughts-list{display:flex;flex-direction:column;gap:16px}.ai-thought-item{background:#f8f9fa;border-radius:12px;padding:16px;border-left:4px solid #9c27b0}.ai-thought-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.ai-thought-hint{font-weight:700;font-size:1.1rem;color:#333}.ai-thought-number{background:#9c27b0;color:#fff;padding:2px 8px;border-radius:12px;font-size:.85rem;font-weight:600}.ai-thought-reasoning{color:#555;line-height:1.5;font-size:.95rem}.ai-thoughts-empty{text-align:center;color:#666;padding:24px}.modal-message{margin:0 0 20px;color:#555;text-align:center;line-height:1.5}.modal-actions{display:flex;gap:12px;justify-content:center}.modal-actions .btn{padding:10px 24px;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease}.modal-actions .btn-secondary{background:#e0e0e0;color:#333}.modal-actions .btn-secondary:hover{background:#d0d0d0}.modal-actions .btn-danger{background:var(--color-red);color:#fff}.modal-actions .btn-danger:hover{background:var(--color-red-dark)}.feedback-form{display:flex;flex-direction:column;gap:12px}.feedback-description{color:#666;margin:0;text-align:center}.feedback-textarea{width:100%;padding:12px;border:1px solid #ddd;border-radius:8px;font-size:.95rem;font-family:inherit;resize:vertical;min-height:120px;transition:border-color .2s ease}.feedback-textarea:focus{outline:none;border-color:#1976d2}.feedback-textarea:disabled{background:#f5f5f5;cursor:not-allowed}.feedback-char-count{text-align:end;font-size:.8rem;color:#999;margin-top:-8px}.feedback-error{color:var(--color-red);font-size:.9rem;margin:0;text-align:center}.feedback-success{display:flex;flex-direction:column;align-items:center;gap:16px;padding:20px 0}.feedback-success-icon{width:60px;height:60px;background:#4caf50;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700}.feedback-success p{margin:0;font-size:1.1rem;color:#333}.feedback-form .btn-primary,.feedback-success .btn-primary{background:#1976d2;color:#fff;padding:10px 24px;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease}.feedback-form .btn-primary:hover:not(:disabled),.feedback-success .btn-primary:hover{background:var(--color-blue)}.feedback-form .btn-primary:disabled{background:#ccc;cursor:not-allowed}.app-footer{padding:16px;display:flex;flex-direction:column;align-items:center;gap:8px;background:transparent;margin-top:auto}.footer-languages{font-size:.75rem;color:#ffffff80}.language-link{color:#ffffff80;text-decoration:none;transition:color .2s ease}.language-link:hover{color:#ffffffe6;text-decoration:underline}.footer-actions{display:flex;align-items:center;gap:12px}.sound-toggle{background:#0000004d;color:#fff9;border:none;padding:6px 12px;border-radius:16px;font-size:.9rem;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:4px}.sound-toggle:hover{background:#000000b3;color:#fff}.sound-toggle.enabled{background:#4caf5066;color:#fff}.sound-toggle.enabled:hover{background:#4caf5099}.sound-label{font-size:.75rem;font-weight:500}.privacy-link{background:#0000004d;color:#fff9;text-decoration:none;padding:8px 16px;border-radius:16px;font-size:.8rem;cursor:pointer;transition:all .2s ease}.privacy-link:hover{background:#000000b3;color:#fff}.feedback-link{background:#0000004d;color:#fff9;border:none;padding:8px 16px;border-radius:16px;font-size:.8rem;cursor:pointer;transition:all .2s ease}.feedback-link:hover{background:#000000b3;color:#fff}@media(prefers-color-scheme:light){.privacy-link,.feedback-link{background:#0009}}.home-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a1a2e,#16213e);padding:20px}.home-content{max-width:600px;width:100%;text-align:center}.game-title{font-size:3.5rem;margin:0;background:linear-gradient(135deg,var(--color-red),var(--color-blue));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-shadow:none}.game-subtitle{color:#aaa;font-size:1.1rem;margin-bottom:32px}.error-message{background:#ffebee;color:var(--color-red);padding:12px 16px;border-radius:8px;margin-bottom:16px}.game-options{display:flex;flex-direction:column;gap:16px}.option-card{background:#fff;padding:24px;border-radius:16px;box-shadow:0 4px 12px #0003}.option-card h2{margin:0 0 16px;color:#333;font-size:1.25rem}.language-select{display:flex;align-items:center;gap:12px;margin-bottom:16px;justify-content:center}.language-select label{color:#666}.language-select select{padding:8px 12px;border:2px solid #ddd;border-radius:8px;font-size:1rem;background:#fff;cursor:pointer}.difficulty-select{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:16px}.difficulty-select label{color:#666}.difficulty-select select{padding:8px 12px;border:2px solid #ddd;border-radius:8px;font-size:1rem;background:#fff;cursor:pointer;min-width:140px}.ai-players-hint{font-size:.85rem;color:#888;margin:12px 0 0;text-align:center}.difficulty-hint{font-size:.75rem;color:#999;font-style:italic}.game-code-input{width:100%;padding:12px;border:2px solid #ddd;border-radius:8px;font-size:1.25rem;text-align:center;text-transform:uppercase;letter-spacing:2px;margin-bottom:16px;box-sizing:border-box}.game-code-input:focus{border-color:#1976d2;outline:none}.btn{width:100%;padding:14px 24px;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-primary{background:linear-gradient(135deg,var(--color-red),#ad1457);color:#fff}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #c6282866}.btn-secondary{background:linear-gradient(135deg,var(--color-blue),var(--color-blue-dark));color:#fff}.btn-secondary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #1565c066}.btn:disabled{opacity:.5;cursor:not-allowed}.divider{color:#666;font-weight:600;position:relative}.rules-summary{margin-top:32px;background:#ffffff1a;padding:24px;border-radius:16px;text-align:start}.rules-summary h3{margin:0 0 16px;color:#fff}.rules-summary ul{margin:0;padding-inline-start:20px;color:#ccc}.rules-summary li{margin-bottom:8px}.debug-mode-toggle{display:flex;flex-direction:column;align-items:center;gap:4px;margin-bottom:16px}.debug-mode-toggle label{display:flex;align-items:center;gap:8px;color:#666;cursor:pointer;font-weight:500}.debug-mode-toggle input[type=checkbox]{width:18px;height:18px;accent-color:#9c27b0;cursor:pointer}.debug-hint{font-size:.75rem;color:#999;font-style:italic}.team-count-select{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:16px}.team-count-select>label{color:#666;font-weight:500}.team-count-hint{font-size:.75rem;color:#999;font-style:italic}.visibility-toggle{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:16px}.visibility-toggle>label{color:#666;font-weight:500}.radio-group{display:flex;gap:24px}.radio-label{display:flex;align-items:center;gap:6px;color:#555;cursor:pointer}.radio-label input[type=radio]{width:16px;height:16px;accent-color:var(--color-blue);cursor:pointer}.visibility-hint{font-size:.75rem;color:#999;font-style:italic}.room-name-input{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.room-name-input label{color:#666;font-weight:500}.room-name-input input{padding:10px 12px;border:2px solid #ddd;border-radius:8px;font-size:1rem}.room-name-input input:focus{border-color:#1976d2;outline:none}.max-players-input{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.max-players-input label{color:#666;font-weight:500}.max-players-input input[type=range]{width:100%;height:6px;border-radius:3px;background:#ddd;cursor:pointer;accent-color:var(--color-blue)}.time-limits-section{display:flex;gap:16px;margin-bottom:16px}.time-limit-select{flex:1;display:flex;flex-direction:column;gap:6px}.time-limit-select label{color:#666;font-size:.9rem;font-weight:500}.time-limit-select select{padding:8px 12px;border:2px solid #ddd;border-radius:8px;font-size:.95rem;background:#fff;cursor:pointer}.time-limit-select select:focus{border-color:#1976d2;outline:none}.public-games-section{margin-top:24px;background:#ffffff1a;padding:20px;border-radius:16px}.public-games-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.public-games-header h2{margin:0;color:#fff;font-size:1.25rem}.btn-small{width:auto;padding:8px 16px;font-size:1rem}.no-games{color:#999;text-align:center;font-style:italic}.public-games-list{display:flex;flex-direction:column;gap:12px}.public-game-card{display:flex;align-items:center;justify-content:space-between;background:#fff;padding:16px;border-radius:12px;gap:12px}.game-info{display:flex;flex-direction:column;gap:4px;text-align:start}.game-name{font-weight:600;color:#333;font-size:1.1rem}.game-details{font-size:.85rem;color:#666}.game-status{font-size:.75rem;color:#9c27b0;font-weight:500}.game-status-in-progress{color:#2e7d32}.public-game-card .btn-secondary{width:auto;flex-shrink:0}@media(max-width:480px){.time-limits-section{flex-direction:column;gap:12px}.time-limit-select select{width:100%}}.card{width:100%;aspect-ratio:1.5;border:2px solid #333;border-radius:8px;background:#f5f0e1;color:#1a1a1a;cursor:pointer;font-size:.95rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;transition:all .2s ease;display:flex;align-items:center;justify-content:center;padding:4px;box-shadow:0 2px 4px #0000001a;text-shadow:0 1px 0 rgba(255,255,255,.5);position:relative}@media(hover:hover)and (pointer:fine){.card:hover:not(.disabled):not(.revealed){transform:translateY(-2px);box-shadow:0 4px 8px #0003}}.card.disabled{cursor:not-allowed}.card.disabled:not(.revealed){filter:grayscale(30%)}.card.disabled.revealed{filter:brightness(.85) saturate(.7)}.card.revealed{cursor:default}.card.card-red:not(.revealed){background:linear-gradient(135deg,var(--color-red-light),var(--color-red-lighter));border-color:var(--color-red);color:#991b1b;text-shadow:none}.card.card-blue:not(.revealed){background:linear-gradient(135deg,var(--color-blue-light),var(--color-blue-lighter));border-color:var(--color-blue);color:#1e40af;text-shadow:none}.card.card-green:not(.revealed){background:linear-gradient(135deg,var(--color-green-light),var(--color-green-lighter));border-color:var(--color-green);color:#166534;text-shadow:none}.card.card-neutral:not(.revealed){background:linear-gradient(135deg,#fff9c4,#fff59d);border-color:#f9a825;color:#713f12;text-shadow:none}.card.card-assassin:not(.revealed){background:linear-gradient(135deg,#424242,#212121);border-color:#000;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.8)}.card.card-red.revealed{background:var(--color-red);color:#fff;border-color:var(--color-red-dark);text-shadow:0 1px 2px rgba(0,0,0,.4)}.card.card-blue.revealed{background:var(--color-blue);color:#fff;border-color:var(--color-blue-dark);text-shadow:0 1px 2px rgba(0,0,0,.4)}.card.card-green.revealed{background:var(--color-green);color:#fff;border-color:var(--color-green-dark);text-shadow:0 1px 2px rgba(0,0,0,.4)}.card.card-neutral.revealed{background:#ffc107;color:#1a1a1a;border-color:#ff8f00;text-shadow:0 1px 0 rgba(255,255,255,.4)}.card.card-assassin.revealed{background:#000;color:#fff;border-color:#000;text-shadow:none}.card-word{text-align:center;word-break:break-word;line-height:1.2;unicode-bidi:plaintext}.card.my-preguess{box-shadow:0 0 0 3px #4caf50,0 2px 4px #0000001a}@media(hover:hover)and (pointer:fine){.card.my-preguess:not(.disabled):not(.revealed):hover{box-shadow:0 0 0 3px #4caf50,0 4px 8px #0003}}.card.has-votes:not(.my-preguess){box-shadow:0 0 0 2px #ff9800,0 2px 4px #0000001a}.card.ai-suggested:not(.has-votes):not(.my-preguess){box-shadow:0 0 0 2px #9c27b0,0 2px 4px #0000001a}.preguess-voters{position:absolute;bottom:4px;inset-inline-start:4px;display:flex;gap:2px}.voter-badge{width:20px;height:20px;border-radius:50%;background:#4caf50;color:#fff;font-size:.7rem;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid white;box-shadow:0 1px 2px #0003}.ai-suggest-badge{position:absolute;top:4px;inset-inline-end:4px;background:#9c27b0;color:#fff;font-size:.6rem;font-weight:700;padding:2px 4px;border-radius:3px;box-shadow:0 1px 2px #0003}.card.has-consensus{box-shadow:0 0 0 3px #4caf50,0 0 12px #4caf5080;animation:consensus-pulse .5s ease-in-out infinite alternate}.card.has-consensus.processing{box-shadow:0 0 0 3px #28a745,0 0 16px #28a745b3;animation:processing-card-pulse .4s ease-in-out infinite alternate}@keyframes processing-card-pulse{0%{box-shadow:0 0 0 3px #28a745,0 0 12px #28a74580;transform:scale(1)}to{box-shadow:0 0 0 4px #28a745,0 0 20px #28a745cc;transform:scale(1.02)}}@keyframes consensus-pulse{0%{box-shadow:0 0 0 3px #4caf50,0 0 8px #4caf5066}to{box-shadow:0 0 0 4px #4caf50,0 0 16px #4caf5099}}.consensus-countdown-circle{position:absolute;bottom:4px;inset-inline-end:4px;width:24px;height:24px;border-radius:50%;background:conic-gradient(#c8c8c8cc 0deg calc(var(--progress) * 3.6deg),#4caf50 calc(var(--progress) * 3.6deg) 360deg);box-shadow:0 2px 4px #0000004d;animation:countdown-pulse .5s ease-in-out infinite alternate}.consensus-countdown-circle:after{content:"";position:absolute;top:4px;left:4px;width:16px;height:16px;border-radius:50%;background:#fff}@keyframes countdown-pulse{0%{box-shadow:0 2px 4px #0000004d}to{box-shadow:0 2px 8px #4caf5099}}.card.sending{opacity:.7;cursor:wait}.sending-spinner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:28px;height:28px;border:3px solid rgba(0,0,0,.1);border-top-color:#4caf50;border-radius:50%;animation:spin .8s linear infinite;z-index:10}@keyframes spin{to{transform:translate(-50%,-50%) rotate(360deg)}}.board{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;max-width:800px;width:100%;margin:0 auto;padding:16px;background:#2c2c2c;border-radius:12px;box-shadow:0 4px 12px #0000004d;box-sizing:border-box}.board.three-team{grid-template-columns:repeat(6,1fr);max-width:950px}@media(max-width:600px){.board{gap:4px;padding:8px}.card{font-size:.7rem}}@media(max-width:480px){.board{gap:3px;padding:6px;border-radius:8px}.board.three-team{gap:2px;padding:4px}.card{font-size:.6rem;padding:2px;border-width:1px;border-radius:4px}}@media(max-width:380px){.board.three-team{gap:1px;padding:3px}.board.three-team .card{font-size:.55rem}}.team-panel{background:#fff;border-radius:12px;padding:12px;min-width:0;box-shadow:0 2px 8px #0000001a;border:3px solid transparent}@media(min-width:480px){.team-panel{padding:16px;min-width:180px}}.team-panel.active{border-color:currentColor;box-shadow:0 0 20px #0003}.team-panel.team-red{color:var(--color-red)}.team-panel.team-blue{color:var(--color-blue)}.team-panel.team-green{color:var(--color-green)}.team-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:8px;border-bottom:2px solid currentColor;cursor:pointer;-webkit-user-select:none;user-select:none}.team-panel.collapsed .team-header{margin-bottom:0;padding-bottom:0;border-bottom:none}.team-header:hover{opacity:.9}.team-header h3{margin:0;font-size:1.25rem}.header-right{display:flex;align-items:center;gap:8px}.turn-dot{color:var(--color-success);font-size:1rem;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.collapse-toggle{opacity:.5;font-size:.8rem;margin-inline-start:4px}.team-header:hover .collapse-toggle{opacity:.8}.team-panel.eliminated{opacity:.5}.team-panel.eliminated .team-header h3{text-decoration:line-through}.cards-remaining{font-size:1.5rem;font-weight:700;background:currentColor;color:#fff;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center}.team-section{margin-bottom:12px}.team-section h4{margin:0 0 8px;font-size:.85rem;color:#666;text-transform:uppercase;letter-spacing:.5px}.player{padding:6px 10px;background:#f5f5f5;border-radius:6px;margin-bottom:4px;font-size:.9rem;display:flex;align-items:center;gap:4px}.team-red .player.current{background:var(--color-red);color:#fff}.team-blue .player.current{background:var(--color-blue);color:#fff}.team-green .player.current{background:var(--color-green);color:#fff}.player .disconnected{font-size:.75rem;opacity:.7;margin-inline-start:4px}.empty{color:#999;font-style:italic;font-size:.9rem}.join-btn{width:100%;padding:8px 12px;border:2px dashed currentColor;background:transparent;color:currentColor;border-radius:6px;cursor:pointer;font-weight:600;font-size:.85rem;transition:all .2s}.team-red .join-btn:hover{background:var(--color-red);border-color:var(--color-red);color:#fff}.team-blue .join-btn:hover{background:var(--color-blue);border-color:var(--color-blue);color:#fff}.team-green .join-btn:hover{background:var(--color-green);border-color:var(--color-green);color:#fff}.join-options{display:flex;flex-direction:column;gap:6px}.join-btn.ai-btn{border-style:solid;background:#9c27b0;color:#fff;border-color:#9c27b0}.join-btn.ai-btn:hover{background:#7b1fa2;border-color:#7b1fa2}.player.ai-player{background:#f3e5f5;border:1px solid #9c27b0}.team-red .player.ai-player.current,.team-blue .player.ai-player.current,.team-green .player.ai-player.current{background:#9c27b0}.ai-badge{display:inline-block;background:#9c27b0;color:#fff;font-size:.65rem;padding:1px 4px;border-radius:3px;margin-inline-end:6px;font-weight:700}.player.thinking{animation:thinking-glow 1.5s ease-in-out infinite}@keyframes thinking-glow{0%,to{box-shadow:0 0 4px #9c27b066}50%{box-shadow:0 0 12px #9c27b0cc}}.thinking-indicator{display:inline-block;width:12px;height:12px;min-width:12px;min-height:12px;border:2px solid rgba(156,39,176,.3);border-top-color:#9c27b0;border-radius:50%;animation:spin 1s linear infinite;margin-inline-start:8px;vertical-align:middle;flex-shrink:0;aspect-ratio:1}.remove-ai-btn{margin-inline-start:auto;background:none;border:none;color:#999;font-size:1.1rem;line-height:1;cursor:pointer;padding:0 4px;border-radius:4px;transition:all .2s}.remove-ai-btn:hover{color:var(--color-red);background:#c628281a}.kick-btn{margin-inline-start:auto;background:none;border:none;color:#999;font-size:.75rem;cursor:pointer;padding:2px 6px;border-radius:4px;transition:all .2s}.kick-btn:hover{color:var(--color-red);background:#c628281a}.show-thoughts-btn{width:100%;padding:6px 10px;margin-top:4px;border:1px solid #9c27b0;background:transparent;color:#9c27b0;border-radius:6px;cursor:pointer;font-weight:600;font-size:.8rem;transition:all .2s}.show-thoughts-btn:hover{background:#9c27b0;color:#fff}.leave-team-btn{width:100%;margin-top:12px;padding:8px 12px;border:2px dashed #999;background:transparent;color:#666;border-radius:6px;cursor:pointer;font-weight:600;font-size:.85rem;transition:all .2s}.leave-team-btn:hover{border-color:#666;color:#333;background:#f5f5f5}.unassigned-panel{background:#fff;border-radius:12px;padding:12px;min-width:0;box-shadow:0 2px 8px #0000001a;border:2px dashed #999}@media(min-width:480px){.unassigned-panel{padding:16px;min-width:180px}}.unassigned-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid #999}.unassigned-header h3{margin:0;font-size:1.25rem;color:#666}.unassigned-panel .player-count{font-size:1.25rem;font-weight:700;background:#999;color:#fff;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center}.unassigned-content{display:flex;flex-direction:column;gap:8px}.unassigned-hint{margin:8px 0 0;font-size:.85rem;color:#888;font-style:italic;text-align:center}.unassigned-empty{margin:0;padding:8px 0;font-size:.85rem;color:#888;font-style:italic;text-align:center}.hint-input{background:#fff;padding:16px;border-radius:12px;box-shadow:0 2px 8px #0000001a;max-width:100%;box-sizing:border-box}.hint-fields{display:flex;gap:8px;flex-wrap:wrap}.hint-word{flex:1;min-width:120px;padding:12px;border:2px solid #ddd;border-radius:8px;font-size:1rem;text-transform:uppercase;box-sizing:border-box}.hint-word:focus{border-color:#1976d2;outline:none}.hint-word.error{border-color:#d32f2f}.hint-word.error:focus{border-color:#d32f2f}.hint-number-select{width:65px;padding:12px 8px;border:2px solid #ddd;border-radius:8px;font-size:1rem;text-align:center;background:#fff;cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 6px center;background-size:14px;padding-inline-end:24px;box-sizing:border-box;flex-shrink:0}[dir=rtl] .hint-number-select{background-position:left 6px center}.hint-number-select:focus{border-color:#1976d2;outline:none}.hint-number-select:disabled{background-color:#f5f5f5;cursor:not-allowed}.hint-submit{padding:12px 16px;background:#1976d2;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s;white-space:nowrap;box-sizing:border-box}.hint-submit:hover:not(:disabled){background:var(--color-blue)}.hint-submit:disabled{background:#ccc;cursor:not-allowed}.hint-help{margin-top:8px;font-size:.8rem;color:#666}.hint-error{margin-top:8px;font-size:.85rem;color:#d32f2f;font-weight:500}.turn-timer{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;background:#00000014;font-size:1.1rem;font-weight:600;font-variant-numeric:tabular-nums;color:#555;transition:all .3s ease;position:absolute;top:50%;transform:translateY(-50%)}.turn-timer.team-red{inset-inline-start:0}.turn-timer.team-blue{inset-inline-end:0}.turn-timer .timer-icon{font-size:1rem}.turn-timer .timer-value{min-width:3ch}.turn-timer.urgent{background:#dc354526;color:#dc3545;animation:pulse-urgent .8s ease-in-out infinite}@keyframes pulse-urgent{0%,to{transform:scale(1);box-shadow:0 0 #dc354566}50%{transform:scale(1.05);box-shadow:0 0 8px 2px #dc354599}}@media(max-width:480px){.turn-timer{position:static;transform:none;font-size:.95rem;padding:4px 8px}.turn-timer.urgent{animation:none}}.game-status{text-align:center;padding:16px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;max-width:800px;width:100%;margin:0 auto;box-sizing:border-box}.turn-header{display:flex;align-items:center;justify-content:center;position:relative;margin-bottom:12px}.turn-indicator{font-size:1.25rem;font-weight:700;padding:8px 16px;border-radius:8px;display:inline-block}.turn-indicator.team-red{background:var(--color-red-light);color:var(--color-red)}.turn-indicator.team-blue{background:var(--color-blue-light);color:var(--color-blue)}.turn-indicator.team-green{background:var(--color-green-light);color:var(--color-green)}.your-turn{color:#2e7d32;font-weight:600;font-size:1.1rem}.current-hint{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:12px;padding:12px;background:#f5f5f5;border-radius:8px}.current-hint .hint-word{font-size:1.5rem;font-weight:700;text-transform:uppercase;color:#333}.current-hint .hint-number{font-size:1.25rem;font-weight:700;background:#333;color:#fff;width:32px;height:32px;min-width:32px;max-width:32px;min-height:32px;max-height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex:0 0 32px;box-sizing:border-box;line-height:1}.current-hint .guesses-left{font-size:.9rem;color:#666}.game-over{padding:20px;border-radius:12px;margin:12px 0}.game-over.team-red{background:var(--color-red-light);color:var(--color-red)}.game-over.team-blue{background:var(--color-blue-light);color:var(--color-blue)}.game-over.team-green{background:var(--color-green-light);color:var(--color-green)}.game-over h2{margin:0 0 8px}.game-over p{margin:0;opacity:.8}.end-turn-btn{margin-top:12px;padding:10px 24px;background:#ff9800;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s}.end-turn-btn:hover{background:#f57c00}.end-turn-btn.voted{background:#4caf50}.end-turn-btn.voted:hover{background:#388e3c}.end-turn-voting{display:flex;flex-direction:column;gap:8px;margin-top:12px}.vote-status{display:flex;flex-direction:column;gap:4px;font-size:.85rem}.vote-count{font-weight:600;color:#666}.voters{font-size:.75rem;color:#999}.consensus-countdown{margin-top:8px;padding:8px;background:#fff3cd;border-radius:8px}.countdown-bar-container{height:4px;background:#ffc107;border-radius:2px;overflow:hidden;margin-bottom:4px}.countdown-bar{height:100%;background:#ff6f00;transition:width .05s linear}.countdown-text{font-size:.8rem;font-weight:600;color:#ff6f00}.consensus-countdown.processing{animation:processing-pulse .6s ease-in-out infinite alternate}.consensus-countdown.processing .countdown-bar{background:#28a745}.consensus-countdown.processing .countdown-text{color:#28a745}.end-turn-btn.processing{opacity:.7;cursor:not-allowed}.score-progress{display:flex;gap:16px;margin-bottom:12px;padding:8px 12px;background:#f5f5f5;border-radius:8px}.score-team{flex:1;display:flex;align-items:center;gap:8px}.score-team .score-label{font-size:.75rem;font-weight:600;text-transform:uppercase;min-width:65px;flex-shrink:0}.score-team.team-red .score-label{color:var(--color-red)}.score-team.team-blue .score-label{color:var(--color-blue)}.score-team.team-green .score-label{color:var(--color-green)}.score-bar-container{flex:1;height:8px;background:#e0e0e0;border-radius:4px;overflow:hidden}.score-bar{height:100%;border-radius:4px;transition:width .3s ease}.score-team.team-red .score-bar{background:linear-gradient(90deg,var(--color-red-lighter),var(--color-red))}.score-team.team-blue .score-bar{background:linear-gradient(90deg,var(--color-blue-lighter),var(--color-blue))}.score-team.team-green .score-bar{background:linear-gradient(90deg,var(--color-green-lighter),var(--color-green))}.score-value{font-size:.85rem;font-weight:700;width:35px;text-align:end;flex-shrink:0}.score-team.team-red .score-value{color:var(--color-red)}.score-team.team-blue .score-value{color:var(--color-blue)}.score-team.team-green .score-value{color:var(--color-green)}.score-team.eliminated{opacity:.4;text-decoration:line-through}@media(max-width:480px){.turn-header{flex-wrap:wrap;gap:8px}.turn-indicator{font-size:1.1rem;padding:6px 12px}.score-progress{flex-direction:column;gap:8px}.score-team .score-label{min-width:55px;font-size:.7rem}.score-value{width:30px;font-size:.8rem}}.hint-history{background:#fff;padding:16px;border-radius:12px;box-shadow:0 2px 8px #0000001a;max-width:800px;width:100%;margin:0 auto;box-sizing:border-box}.hint-history h4{margin:0 0 12px;color:#333;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}.hints-list{display:flex;flex-direction:column;gap:4px;max-height:200px;overflow-y:auto}.hint-item{display:flex;flex-direction:column;gap:6px;padding:8px 10px;border-radius:6px;font-size:.85rem}.hint-header{display:flex;align-items:center;gap:8px}.hint-item.team-red{background:#ffebee}.hint-item.team-blue{background:#e3f2fd}.hint-item.team-green{background:#e8f5e9}.hint-team{font-size:.7rem;font-weight:600;text-transform:uppercase;padding:2px 6px;border-radius:4px}.hint-item.team-red .hint-team{background:var(--color-red);color:#fff}.hint-item.team-blue .hint-team{background:var(--color-blue);color:#fff}.hint-item.team-green .hint-team{background:var(--color-green);color:#fff}.hint-item .hint-word{flex:1;font-weight:600;text-transform:uppercase}.hint-item .hint-number{font-weight:700;background:#333;color:#fff;width:24px;height:24px;min-width:24px;max-width:24px;min-height:24px;max-height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:.8rem;flex:0 0 24px;box-sizing:border-box;line-height:1}.hint-guesses{display:flex;flex-wrap:wrap;gap:4px;margin-inline-start:4px}.guess-card{display:inline-block;padding:2px 6px;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:uppercase;border:1px solid transparent}.guess-card.red{background:var(--color-red-light);color:var(--color-red);border-color:#ef9a9a}.guess-card.blue{background:var(--color-blue-light);color:var(--color-blue);border-color:#90caf9}.guess-card.green{background:var(--color-green-light);color:var(--color-green);border-color:#a5d6a7}.guess-card.neutral{background:beige;color:#8d6e63;border-color:#d7ccc8}.guess-card.assassin{background:#424242;color:#fff;border-color:#212121}.guess-card.correct{box-shadow:0 0 0 1px #4caf50}.guess-card.wrong{box-shadow:0 0 0 1px #f44336}.debug-panel{position:fixed;bottom:8px;right:8px;left:8px;max-height:80vh;background:#1a1a2e;border:2px solid #9c27b0;border-radius:12px;box-shadow:0 4px 20px #9c27b04d;overflow-y:auto;z-index:1000;display:flex;flex-direction:column}@media(min-width:480px){.debug-panel{left:auto;right:16px;bottom:16px;width:320px}}[dir=rtl] .debug-panel{right:8px;left:8px}@media(min-width:480px){[dir=rtl] .debug-panel{right:auto;left:16px}}.debug-header{display:flex;align-items:center;gap:8px;padding:12px 16px;background:linear-gradient(135deg,#9c27b0,#7b1fa2);color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none}.debug-header:hover{background:linear-gradient(135deg,#ab47bc,#8e24aa)}.debug-toggle{margin-inline-start:auto;font-size:.8rem;opacity:.8}.debug-panel.collapsed{max-height:none}.debug-badge{background:#fff3;padding:2px 8px;border-radius:4px;font-size:.7rem;font-weight:700;letter-spacing:1px}.debug-title{font-weight:600;font-size:.95rem}.debug-board-summary{padding:12px;overflow-y:auto;flex:1;min-height:0}.card-type-group{margin-bottom:12px}.card-type-group:last-child{margin-bottom:0}.type-label{display:block;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.type-red .type-label{color:#ef5350}.type-blue .type-label{color:#42a5f5}.type-green .type-label{color:#4caf50}.type-neutral .type-label{color:#bdbdbd}.type-assassin .type-label{color:#f44336;background:#2d2d2d;padding:2px 8px;border-radius:4px;display:inline-block}.word-list{display:flex;flex-wrap:wrap;gap:6px}.word{font-size:.8rem;padding:3px 8px;border-radius:4px;background:#ffffff1a;color:#ddd}.type-red .word{background:#ef535033;color:#ef5350}.type-blue .word{background:#42a5f533;color:#42a5f5}.type-green .word{background:#4caf5033;color:#4caf50}.type-neutral .word{background:#bdbdbd26;color:#9e9e9e}.type-assassin .word{background:#f443364d;color:#f44336;font-weight:600}.word.revealed{opacity:.4;text-decoration:line-through}.debug-ai-section{border-top:1px solid rgba(156,39,176,.3);padding:12px;background:#9c27b01a;max-height:200px;overflow-y:auto;flex-shrink:0}.ai-thinking-header{display:flex;align-items:center;gap:8px;margin-bottom:8px;color:#ddd;font-size:.85rem}.ai-badge{background:#9c27b0;color:#fff;font-size:.65rem;padding:2px 6px;border-radius:4px;font-weight:700}.ai-thinking-content{font-size:.8rem;color:#ccc}.ai-word{margin-bottom:6px}.ai-word strong{color:#ce93d8}.ai-reasoning{color:#aaa;font-style:italic;line-height:1.4}.connection-debug{position:fixed;bottom:10px;left:10px;background:#000000e6;border:1px solid #444;border-radius:8px;color:#fff;font-family:Monaco,Menlo,monospace;font-size:11px;z-index:10000;max-width:280px;box-shadow:0 4px 12px #00000080}.connection-debug.collapsed{max-width:120px}.connection-debug-header{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;cursor:pointer;background:#323232cc;border-radius:8px 8px 0 0;-webkit-user-select:none;user-select:none}.connection-debug.collapsed .connection-debug-header{border-radius:8px}.connection-debug-title{font-weight:700;color:#aaa}.connection-status-indicator{font-size:14px}.connection-status-indicator.connected{color:#4caf50}.connection-status-indicator.connecting{color:#ff9800;animation:pulse 1s infinite}.connection-status-indicator.disconnected{color:#f44336}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.connection-debug-content{padding:10px}.connection-state{margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid #333}.state-row{display:flex;justify-content:space-between;margin-bottom:4px}.state-label{color:#888}.state-value{font-weight:700}.state-value.yes{color:#4caf50}.state-value.no{color:#888}.state-value.error{color:#f44336;font-size:10px;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.error-row{margin-top:6px;padding-top:6px;border-top:1px dashed #333}.connection-logs{max-height:150px;overflow-y:auto}.logs-header{color:#888;margin-bottom:6px;font-size:10px;text-transform:uppercase}.logs-list{display:flex;flex-direction:column;gap:2px}.log-entry{display:flex;gap:6px;padding:2px 4px;background:#ffffff0d;border-radius:3px;font-size:10px}.log-time{color:#666;min-width:75px}.log-event{font-weight:700;min-width:80px}.log-details{color:#aaa;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-entry.connected .log-event,.log-entry.connect_end .log-event{color:#4caf50}.log-entry.connecting .log-event,.log-entry.attempt .log-event{color:#ff9800}.log-entry.disconnected .log-event,.log-entry.error .log-event{color:#f44336}.log-entry.reconnecting .log-event,.log-entry.reconnect_end .log-event{color:#2196f3}.log-entry.init .log-event{color:#9c27b0}[dir=rtl] .connection-debug{left:auto;right:10px}.connection-overlay{position:fixed;inset:0;background:#000000d9;z-index:10000;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.connection-overlay-content{background:#fff;padding:32px 48px;border-radius:16px;text-align:center;max-width:400px;box-shadow:0 4px 24px #0006;animation:overlay-appear .3s ease-out}@keyframes overlay-appear{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.connection-status-icon{font-size:48px;margin-bottom:16px}.connection-icon-disconnected{color:#f57c00}.connection-spinner{display:inline-block;width:48px;height:48px;border:4px solid #e0e0e0;border-top-color:#1976d2;border-radius:50%;animation:overlay-spin 1s linear infinite}@keyframes overlay-spin{to{transform:rotate(360deg)}}.connection-overlay-content h2{margin:0 0 8px;color:#333;font-size:1.5rem}.connection-overlay-content p{color:#666;margin:0 0 24px;font-size:1rem}.connection-overlay-content .btn{padding:12px 32px;font-size:1rem}.connection-debug-info{background:#f5f5f5;border-radius:8px;padding:12px 16px;margin:16px 0;font-family:monospace;font-size:.85rem;text-align:start}.connection-debug-info .debug-row{display:flex;justify-content:space-between;padding:4px 0;color:#555}.connection-debug-info .debug-row span:first-child{color:#888}.connection-debug-info .debug-row span:last-child{font-weight:600;color:#333}.chat-container{position:fixed;bottom:1.5rem;right:1.5rem;z-index:1000;font-family:inherit}.chat-container.collapsed{width:auto;height:auto}.chat-fab{width:56px;height:56px;border-radius:50%;background:#1976d2;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #0000004d;transition:all .2s ease;position:relative}.chat-fab:hover{background:var(--color-blue);transform:scale(1.05)}.chat-fab-icon{font-size:1.5rem}.chat-fab .unread-badge{position:absolute;top:-4px;right:-4px;background:var(--color-red);color:#fff;border-radius:10px;padding:.15rem .45rem;font-size:.7rem;font-weight:600;min-width:18px;text-align:center;animation:pulse 1.5s infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.chat-container.expanded{width:340px;height:420px;display:flex;flex-direction:column;background:#fff;border-radius:12px;box-shadow:0 8px 32px #00000040;overflow:hidden}.chat-header{display:flex;align-items:center;padding:.75rem 1rem;background:#1976d2;color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none}.chat-header:hover{background:var(--color-blue)}.chat-title{font-weight:600;flex:1}.chat-close{background:none;border:none;color:#fff;font-size:1.2rem;cursor:pointer;padding:.25rem;line-height:1;opacity:.8}.chat-close:hover{opacity:1}.chat-messages{flex:1;overflow-y:auto;padding:.75rem;display:flex;flex-direction:column;gap:.5rem;background:#fafafa}.chat-empty{color:#666;text-align:center;padding:2rem 1rem;font-style:italic}.chat-message{padding:.5rem .75rem;border-radius:8px;background:#fff;width:fit-content;min-width:120px;max-width:85%;box-shadow:0 1px 2px #0000001a}.chat-message.own{align-self:flex-end;background:#e3f2fd}.chat-message.red{border-left:3px solid var(--color-red)}.chat-message.blue{border-left:3px solid var(--color-blue)}.chat-message.own.red{border-left:none;border-right:3px solid var(--color-red)}.chat-message.own.blue{border-left:none;border-right:3px solid var(--color-blue)}.message-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem;font-size:.75rem}.message-author{font-weight:600}.chat-message.red .message-author{color:var(--color-red)}.chat-message.blue .message-author{color:var(--color-blue)}.message-scope{font-size:.65rem;padding:.1rem .35rem;border-radius:4px;font-weight:500}.message-scope.team{background:#fff3e0;color:#e65100}.message-time{color:#999;font-size:.65rem;margin-inline-start:auto}.message-content{word-wrap:break-word;line-height:1.4;font-size:.9rem}.chat-input-container{padding:.5rem .75rem .75rem;border-top:1px solid #e0e0e0;background:#fff}.scope-toggle{display:flex;gap:.5rem;margin-bottom:.5rem}.scope-btn{flex:1;padding:.35rem .5rem;border:1px solid #e0e0e0;background:#fff;border-radius:4px;cursor:pointer;font-size:.8rem;transition:all .2s ease}.scope-btn:hover:not(:disabled):not(.active){background:#f5f5f5}.scope-btn.active{background:#1976d2;color:#fff;border-color:#1976d2}.scope-btn.active:hover:not(:disabled){background:var(--color-blue)}.scope-btn:disabled{opacity:.5;cursor:not-allowed}.input-row{display:flex;gap:.5rem}.input-row input{flex:1;padding:.5rem .75rem;border:1px solid #e0e0e0;border-radius:4px;font-size:16px}.input-row input:focus{outline:none;border-color:#1976d2}.input-row button{padding:.5rem .75rem;background:#1976d2;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:500;font-size:.85rem;transition:background .2s ease}.input-row button:hover:not(:disabled){background:var(--color-blue)}.input-row button:disabled{opacity:.5;cursor:not-allowed}[dir=rtl] .chat-container{right:auto;left:1.5rem}[dir=rtl] .chat-message.red{border-left:none;border-right:3px solid var(--color-red)}[dir=rtl] .chat-message.blue{border-left:none;border-right:3px solid var(--color-blue)}[dir=rtl] .chat-message.own.red{border-right:none;border-left:3px solid var(--color-red)}[dir=rtl] .chat-message.own.blue{border-right:none;border-left:3px solid var(--color-blue)}@media(max-width:480px){.chat-container{touch-action:manipulation}.chat-container.expanded{width:calc(100vw - 2rem);max-width:100%;height:60vh;max-height:calc(100vh - 6rem);bottom:1rem;right:1rem;overscroll-behavior:contain}.chat-messages{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.input-row input{font-size:16px;-webkit-text-size-adjust:100%}.scope-btn{padding:.5rem;font-size:.85rem}[dir=rtl] .chat-container.expanded{right:auto;left:1rem}}.game-page{min-height:100vh;max-width:100vw;overflow-x:hidden;background:linear-gradient(135deg,#1a1a2e,#16213e);display:flex;flex-direction:column}.game-page.join-page{display:flex;align-items:center;justify-content:center}.join-container{background:#fff;padding:32px;border-radius:16px;max-width:400px;width:100%;text-align:center;box-shadow:0 4px 20px #0000004d}.join-container h1{margin:0 0 8px;color:#333}.join-container .game-code{color:#666;margin-bottom:4px}.join-container .game-code strong{color:#1976d2;font-size:1.2em;letter-spacing:2px}.join-container .share-code-hint{color:#999;font-size:.8rem;margin-top:0;margin-bottom:20px}.join-container .share-code-hint a{color:#1976d2;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.join-container .share-code-hint a:hover{color:#1565c0}.name-input{width:100%;padding:14px;border:2px solid #ddd;border-radius:8px;font-size:1rem;margin-bottom:16px;box-sizing:border-box}.name-input:focus{border-color:#1976d2;outline:none}.btn-link{background:none;border:none;color:#666;cursor:pointer;margin-top:16px;font-size:.9rem}.btn-link:hover{color:#333;text-decoration:underline}.game-header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;background:#0000004d;color:#fff}@media(min-width:768px){.game-header{padding:12px 24px}}.logo-link{text-decoration:none}.game-header h1{margin:0;font-size:1.2rem;background:linear-gradient(135deg,var(--color-red),var(--color-blue));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;flex-shrink:0;transition:opacity .2s}.logo-link:hover h1{opacity:.8}@media(min-width:480px){.game-header h1{font-size:1.5rem}}.header-info{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.header-game-info{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.header-player-info{display:flex;gap:8px;align-items:center}@media(max-width:479px){.game-header{flex-direction:column;align-items:flex-start;gap:6px}.header-info{gap:6px;flex-wrap:wrap;justify-content:flex-start}.header-game-info,.header-player-info{gap:6px}.header-player-info .ai-thinking-badge,.header-player-info .player-badge{max-width:none}}.game-code-badge{background:#fff3;padding:4px 8px;border-radius:6px;font-size:.75rem;letter-spacing:1px;cursor:pointer;transition:background .2s}.game-code-badge:hover{background:#ffffff4d}.ai-difficulty-badge{background:#9c27b04d;padding:4px 8px;border-radius:6px;font-size:.75rem}.learner-badge{background:#4caf5059;padding:4px 8px;border-radius:6px;font-size:.75rem}.player-badge{background:#1976d2;padding:4px 8px;border-radius:6px;font-size:.75rem;max-width:155px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-badge.team-red{background:var(--color-red)}.player-badge.team-blue{background:var(--color-blue)}.player-badge.team-green{background:var(--color-green)}.admin-badge{margin-inline-start:6px;background:#fff3;padding:2px 6px;border-radius:4px;font-size:.7rem;font-weight:500}.ai-thinking-badge{background:linear-gradient(135deg,#7b1fa2,#9c27b0);padding:4px 8px;border-radius:6px;font-size:.75rem;color:#fff;display:flex;align-items:center;gap:6px;animation:ai-badge-glow 2s ease-in-out infinite;white-space:nowrap;max-width:205px;overflow:hidden;text-overflow:ellipsis}@keyframes ai-badge-glow{0%,to{box-shadow:0 0 8px #9c27b080}50%{box-shadow:0 0 16px #9c27b0cc}}@media(min-width:480px){.header-info{gap:12px}.game-code-badge,.player-badge,.ai-thinking-badge,.ai-difficulty-badge,.learner-badge{padding:6px 12px;font-size:.85rem}.player-badge{max-width:none}.ai-thinking-badge{max-width:250px}}@media(min-width:768px){.ai-thinking-badge{max-width:none}}.error-message{background:#ffebee;color:var(--color-red);padding:12px 16px;border-radius:8px;margin-bottom:16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.error-banner{background:var(--color-red);color:#fff;padding:12px 16px;display:flex;align-items:center;justify-content:center;gap:12px}.error-close{background:none;border:none;font-size:1.5rem;line-height:1;cursor:pointer;color:inherit;opacity:.7;padding:0;flex-shrink:0}.error-close:hover{opacity:1}.thinking-spinner{display:inline-block;width:16px;height:16px;min-width:16px;min-height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite;margin-inline-end:8px;vertical-align:middle;flex-shrink:0;aspect-ratio:1}@keyframes spin{to{transform:rotate(360deg)}}.consensus-banner{background:linear-gradient(90deg,#2e7d32,#4caf50,#2e7d32);background-size:200% 100%;animation:consensus-pulse 1.5s ease-in-out infinite;color:#fff;padding:12px 16px;text-align:center}@keyframes consensus-pulse{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.consensus-content{font-size:1rem;margin-bottom:8px}.consensus-content strong{font-size:1.2rem;letter-spacing:1px;text-transform:uppercase}.consensus-progress{height:6px;background:#0003;border-radius:3px;overflow:hidden;max-width:400px;margin:0 auto}.consensus-progress-bar{height:100%;background:#fff;border-radius:3px;transition:width .05s linear}.ai-recommendation-card{background:linear-gradient(135deg,#2e7d32,#388e3c);color:#fff;padding:12px;margin-top:12px;border-radius:8px;cursor:pointer;box-shadow:0 2px 8px #0003}.ai-recommendation-card:hover{background:linear-gradient(135deg,#388e3c,#43a047)}.recommendation-header{display:flex;align-items:center;flex-wrap:wrap;gap:4px;margin-bottom:8px;font-size:.8rem}.recommendation-header .ai-badge{background:#fff3;padding:2px 8px;border-radius:4px;font-size:.75rem;font-weight:700}.recommendation-word{font-size:1.1rem;font-weight:700;margin-bottom:8px;letter-spacing:1px}.recommendation-reasoning{font-size:.8rem;opacity:.9;line-height:1.4}.recommendation-hint{font-size:.7rem;opacity:.6;margin-top:8px;text-align:center}.game-main{flex:1;display:flex;gap:12px;padding:8px;overflow:auto;width:100%;max-width:1100px;margin:0 auto;box-sizing:border-box}@media(min-width:768px){.game-main{gap:16px;padding:16px}}.game-main.three-team{max-width:1250px}.game-center{flex:1;display:flex;flex-direction:column;gap:16px;min-width:0;overflow-x:hidden}.teams-sidebar{width:240px;flex-shrink:0;display:flex;flex-direction:column;gap:12px}.team-column{display:flex;flex-direction:column;gap:8px}.game-main.three-team .teams-sidebar{width:220px}.lobby-status{background:#fff;border-radius:12px;padding:48px 32px;text-align:center;box-shadow:0 4px 12px #0003;max-width:500px;margin:0 auto}.lobby-status h2{margin:0 0 16px;color:#333;font-size:1.5rem}.lobby-status p{color:#666;margin:0}.btn-lg{padding:16px 32px;font-size:1.1rem}.game-over-banner{padding:16px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.game-over-banner.team-red{background:linear-gradient(90deg,var(--color-red),#e53935,var(--color-red));color:#fff}.game-over-banner.team-blue{background:linear-gradient(90deg,var(--color-blue),#1976d2,var(--color-blue));color:#fff}.game-over-banner.team-green{background:linear-gradient(90deg,var(--color-green),#388e3c,var(--color-green));color:#fff}.game-over-banner h2{margin:0;font-size:1.4rem}.game-over-banner .win-reason{opacity:.9;font-size:.9rem}.game-over-banner .game-over-actions{display:flex;gap:12px;margin-top:8px;align-items:stretch}.game-over-banner .game-over-actions>*{flex:1;min-width:0!important}.game-over-banner .btn{padding:8px 16px;font-size:.9rem;min-height:40px}.game-over-banner .btn-restart{background:#fff3;border:1px solid rgba(255,255,255,.5);color:#fff}.game-over-banner .btn-restart:hover{background:#ffffff4d}.game-over-banner .btn-home{background:#fff;border:none;min-width:100px}.game-over-banner.team-red .btn-home{color:var(--color-red)}.game-over-banner.team-blue .btn-home{color:var(--color-blue)}.game-over-banner.team-green .btn-home{color:var(--color-green)}.btn-leave{background:none;border:none;color:#ffffff80;padding:0;font-size:.7rem;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.btn-leave:hover{color:#ef9a9a}.start-game-voting,.restart-game-voting{display:flex;flex-direction:column;align-items:stretch;gap:8px;min-width:220px}.start-game-voting .vote-status,.restart-game-voting .vote-status{display:flex;flex-direction:column;gap:4px;font-size:.85rem;text-align:center;max-width:220px;margin-top:4px}.start-game-voting .vote-count,.restart-game-voting .vote-count{font-weight:600;color:#666}.restart-game-voting .vote-count{color:#ffffffe6}.start-game-voting .voters,.restart-game-voting .voters{font-size:.75rem;color:#999;word-break:break-word}.restart-game-voting .voters{color:#ffffffb3}.start-game-voting .consensus-countdown,.restart-game-voting .consensus-countdown{margin-top:8px;padding:8px 16px;background:#fff3;border-radius:8px;min-width:150px}.start-game-voting .consensus-countdown{background:#fff3cd}.start-game-voting .countdown-bar-container,.restart-game-voting .countdown-bar-container{height:4px;background:#ffffff4d;border-radius:2px;overflow:hidden;margin-bottom:4px}.start-game-voting .countdown-bar-container{background:#ffc107}.start-game-voting .countdown-bar,.restart-game-voting .countdown-bar{height:100%;background:#fff;transition:width .1s linear}.start-game-voting .countdown-bar{background:#856404}.start-game-voting .countdown-text,.restart-game-voting .countdown-text{font-size:.8rem;color:#666}.restart-game-voting .countdown-text{color:#ffffffe6}.restart-game-voting .btn-restart.voted{background:var(--color-success);border:2px solid var(--color-success);color:#fff}.restart-game-voting .btn-restart,.start-game-voting .btn-primary{width:100%}.start-game-voting .btn-primary{background:var(--color-red);transition:background-color .2s ease,border-color .2s ease}.start-game-voting .btn-primary.voted{background:var(--color-success);border-color:var(--color-success);color:#fff}.start-game-voting .btn-primary.processing,.restart-game-voting .btn-restart.processing{opacity:.7;cursor:not-allowed}.start-game-voting .consensus-countdown.processing,.restart-game-voting .consensus-countdown.processing{animation:processing-pulse .6s ease-in-out infinite alternate}.start-game-voting .consensus-countdown.processing .countdown-bar,.restart-game-voting .consensus-countdown.processing .countdown-bar{background:var(--color-success)}.start-game-voting .consensus-countdown.processing .countdown-text,.restart-game-voting .consensus-countdown.processing .countdown-text{color:var(--color-success)}@keyframes processing-pulse{0%{opacity:.7}to{opacity:1}}.game-over-banner .no-team-message{color:#ffffffb3;font-style:italic;font-size:.9rem}.game-main.lobby{flex-direction:column;align-items:center;max-width:1000px}.game-main.lobby .game-center{width:100%;max-width:500px}.game-main.lobby .teams-sidebar{width:100%;flex-direction:row;flex-wrap:wrap;justify-content:center;gap:16px}.game-main.lobby .team-column{flex:0 1 280px;max-width:300px}.game-main.lobby.three-team .team-column{flex:0 1 220px;max-width:240px}@media(max-width:520px){.game-main.lobby .teams-sidebar{flex-direction:column;align-items:center}.game-main.lobby .team-column,.game-main.lobby.three-team .team-column{flex:none;width:100%;max-width:100%}}@media(max-width:900px){.game-main{flex-direction:column}.teams-sidebar,.game-main.three-team .teams-sidebar{width:100%;flex-direction:row;flex-wrap:wrap;justify-content:center;gap:12px}.team-column{flex:1;min-width:200px;max-width:300px}.game-center{order:-1}.game-main.three-team .team-column{flex:1;min-width:160px;max-width:220px}}@media(max-width:520px){.teams-sidebar,.game-main.three-team .teams-sidebar{flex-direction:column;align-items:center}.team-column,.game-main.three-team .team-column{width:100%;max-width:100%;min-width:0}}.privacy-page{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(135deg,#1a1a2e,#16213e);color:#fff}.privacy-container{flex:1;max-width:800px;margin:0 auto;padding:40px 20px;line-height:1.7}.privacy-back-link{display:inline-block;color:#7c9cff;text-decoration:none;margin-bottom:24px;font-size:14px;transition:color .2s ease}.privacy-back-link:hover{color:#a0b8ff}[dir=rtl] .privacy-back-link{direction:rtl}.privacy-page h1{font-size:2.2rem;margin-bottom:8px;color:#fff}.privacy-updated{color:#ffffff80;font-size:14px;margin-bottom:32px}.privacy-intro{font-size:1.1rem;color:#ffffffd9;margin-bottom:40px}.privacy-page h2{font-size:1.5rem;margin-top:40px;margin-bottom:20px;color:#fff;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:10px}.privacy-section{margin-bottom:28px}.privacy-section h3{font-size:1.15rem;margin-bottom:10px;color:#7c9cff}.privacy-section p,.privacy-page>.privacy-container>p{color:#fffc;font-size:15px}@media(max-width:600px){.privacy-container{padding:24px 16px}.privacy-page h1{font-size:1.8rem}.privacy-page h2{font-size:1.3rem}.privacy-section h3{font-size:1.05rem}}@media(prefers-color-scheme:light){.privacy-page{background:linear-gradient(135deg,#f0f2f5,#e8eaed);color:#1a1a2e}.privacy-page h1{color:#1a1a2e}.privacy-updated{color:#00000080}.privacy-intro{color:#000000bf}.privacy-page h2{color:#1a1a2e;border-bottom-color:#0000001a}.privacy-section h3{color:#1976d2}.privacy-section p,.privacy-page>.privacy-container>p{color:#000000b3}.privacy-back-link{color:#1976d2}.privacy-back-link:hover{color:#1565c0}}.cookie-consent{position:fixed;bottom:0;left:0;right:0;background:#1e1e28fa;border-top:1px solid rgba(255,255,255,.1);padding:16px 20px;z-index:10000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.cookie-consent-content{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.cookie-consent-message{flex:1;min-width:280px;margin:0;color:#ffffffe6;font-size:14px;line-height:1.5}.cookie-consent-link{color:#7c9cff;text-decoration:underline}.cookie-consent-link:hover{color:#a0b8ff}.cookie-consent-buttons{display:flex;gap:12px;flex-shrink:0}.cookie-consent-btn{padding:10px 24px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;border:none}.cookie-consent-accept{background:#4caf50;color:#fff}.cookie-consent-accept:hover{background:#43a047}.cookie-consent-decline{background:transparent;color:#fffc;border:1px solid rgba(255,255,255,.3)}.cookie-consent-decline:hover{background:#ffffff1a;color:#fff}[dir=rtl] .cookie-consent-content,[dir=rtl] .cookie-consent-buttons{flex-direction:row-reverse}@media(max-width:600px){.cookie-consent{padding:14px 16px}.cookie-consent-content{flex-direction:column;text-align:center}.cookie-consent-message{min-width:auto}.cookie-consent-buttons{width:100%;justify-content:center}.cookie-consent-btn{flex:1;max-width:150px}[dir=rtl] .cookie-consent-content{flex-direction:column}}@media(prefers-color-scheme:light){.cookie-consent{background:#fffffffa;border-top-color:#0000001a}.cookie-consent-message{color:#000000d9}.cookie-consent-link{color:#1976d2}.cookie-consent-link:hover{color:#1565c0}.cookie-consent-decline{color:#000000b3;border-color:#0000004d}.cookie-consent-decline:hover{background:#0000000d;color:#000000d9}}
