@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";.game-setup{max-width:800px;margin:0 auto;padding:2rem;background:var(--bg-primary);min-height:100vh;display:flex;flex-direction:column;gap:2rem}.setup-header{text-align:center;margin-bottom:1rem}.setup-title{font-size:2.5rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem;background:linear-gradient(135deg,var(--accent-teal),var(--accent-orange));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.setup-subtitle{font-size:1.1rem;color:var(--text-secondary);margin:0}.game-modes{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;margin-bottom:1rem}.mode-btn{display:flex;align-items:center;gap:1rem;padding:1.5rem;background:var(--bg-secondary);border:2px solid var(--bg-tertiary);border-radius:var(--border-radius-lg);cursor:pointer;transition:all .3s ease;text-align:left;color:var(--text-primary)}.mode-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:var(--accent-teal)}.mode-btn.active{border-color:var(--accent-teal);background:#4fb3b31a;transform:translateY(-2px);box-shadow:var(--shadow-lg)}.mode-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--accent-teal);border-radius:var(--border-radius);color:#fff;flex-shrink:0}.mode-btn.active .mode-icon{background:var(--accent-teal-hover)}.mode-content h3{margin:0 0 .25rem;font-size:1.2rem;font-weight:600;color:var(--text-primary)}.mode-content p{margin:0;font-size:.9rem;color:var(--text-secondary)}.public-rooms-section{display:flex;flex-direction:column;gap:1.5rem;background:var(--bg-secondary);border-radius:var(--border-radius-lg);padding:2rem;border:1px solid var(--bg-tertiary)}.rooms-title{margin:0 0 .5rem;font-size:1.5rem;font-weight:700;color:var(--text-primary);text-align:center}.rooms-subtitle{margin:0 0 1.5rem;font-size:1rem;color:var(--text-secondary);text-align:center}.rooms-list{display:flex;flex-direction:column;gap:1rem;max-height:400px;overflow-y:auto;padding-right:.5rem}.room-card{background:var(--bg-tertiary);border-radius:var(--border-radius);padding:1.5rem;border:1px solid var(--bg-quaternary);transition:all .2s ease}.room-card:hover{border-color:var(--accent-teal);transform:translateY(-1px);box-shadow:0 4px 12px #0000001a}.room-card.playing{opacity:.7}.room-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.room-name{margin:0;font-size:1.1rem;font-weight:600;color:var(--text-primary)}.room-status{padding:.25rem .75rem;border-radius:var(--border-radius);font-size:.8rem;font-weight:500}.room-status.waiting{background:#fbbf2433;color:var(--accent-orange);border:1px solid rgba(251,191,36,.3)}.room-status.playing{background:#4fb3b333;color:var(--accent-teal);border:1px solid rgba(79,179,179,.3)}.room-details{margin-bottom:1rem}.room-info{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.room-info .info-item{display:flex;flex-direction:column;gap:.25rem}.info-label{font-size:.8rem;color:var(--text-muted);font-weight:500}.info-value{font-size:.9rem;color:var(--text-primary);font-weight:600}.room-id{font-family:monospace;font-size:.8rem!important;background:var(--bg-quaternary);padding:.25rem .5rem;border-radius:4px}.room-actions{display:flex;justify-content:flex-end}.room-actions .btn{min-width:120px}.no-rooms{text-align:center;padding:2rem;color:var(--text-muted)}.no-rooms p{margin:.5rem 0}.game-settings{background:var(--bg-secondary);border-radius:var(--border-radius-lg);padding:2rem;border:1px solid var(--bg-tertiary)}.settings-title{font-size:1.4rem;font-weight:600;color:var(--text-primary);margin:0 0 1.5rem;text-align:center}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:2rem}.setting-group{display:flex;flex-direction:column;gap:.5rem}.setting-group label{font-size:.9rem;font-weight:500;color:var(--text-primary)}.input-group{display:flex;flex-direction:column;gap:.5rem}.input-group label{font-size:.9rem;font-weight:500;color:var(--text-primary)}.checkbox-group{align-items:flex-start}.checkbox-label{display:flex;align-items:center;gap:.75rem;cursor:pointer;font-size:.9rem;color:var(--text-primary);margin-top:.25rem}.checkbox{width:18px;height:18px;accent-color:var(--accent-teal);cursor:pointer}.checkbox-text{-webkit-user-select:none;user-select:none}.start-buttons{display:flex;justify-content:center;gap:1rem}.btn-large{padding:1rem 2rem;font-size:1rem;font-weight:600;min-width:200px}.setup-footer{margin-top:auto;text-align:center}.game-info{display:flex;justify-content:center;gap:2rem;flex-wrap:wrap}.info-item{display:flex;align-items:center;gap:.5rem;color:var(--text-muted);font-size:.85rem}@media (max-width: 768px){.game-setup{padding:1rem;gap:1.5rem}.setup-title{font-size:2rem}.setup-subtitle{font-size:1rem}.game-modes{grid-template-columns:1fr;gap:.75rem}.mode-btn{padding:1.25rem;gap:.75rem}.mode-icon{width:40px;height:40px}.mode-content h3{font-size:1.1rem}.mode-content p{font-size:.85rem}.game-settings,.public-rooms-section{padding:1.5rem}.settings-grid{grid-template-columns:1fr;gap:1.25rem}.btn-large{padding:.875rem 1.5rem;font-size:.9rem;min-width:180px}.game-info{gap:1rem;flex-direction:column}}@media (max-width: 480px){.game-setup{padding:.75rem;gap:1.25rem}.setup-title{font-size:1.75rem}.setup-subtitle{font-size:.9rem}.mode-btn{padding:1rem;gap:.625rem;flex-direction:column;text-align:center}.mode-icon{width:36px;height:36px}.mode-content h3{font-size:1rem}.mode-content p{font-size:.8rem}.game-settings,.join-game-section{padding:1rem}.settings-title{font-size:1.2rem}.btn-large{padding:.75rem 1.25rem;font-size:.85rem;min-width:160px;width:100%}.start-buttons{flex-direction:column;align-items:center}.checkbox-label{font-size:.85rem}.info-item{font-size:.8rem}}.mode-btn{animation:fadeIn .3s ease}.mode-btn:nth-child(1){animation-delay:.1s}.mode-btn:nth-child(2){animation-delay:.2s}.mode-btn:nth-child(3){animation-delay:.3s}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.mode-btn:focus,.checkbox:focus,.btn:focus{outline:2px solid var(--accent-teal);outline-offset:2px}.checkbox-label:hover .checkbox-text{color:var(--accent-teal)}.info-item svg{color:var(--accent-teal)}.seo-content{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--border-color)}.seo-section{margin-bottom:2rem}.seo-section h2{color:var(--text-primary);font-size:1.8rem;margin-bottom:1rem;font-weight:600}.seo-section p{color:var(--text-secondary);line-height:1.6;margin-bottom:1rem;font-size:1rem}.seo-section strong{color:var(--text-primary);font-weight:600}.disclaimer-section{background:#fff5f5;border:1px solid #fed7d7;border-radius:8px;padding:1.5rem;margin-top:2rem}.disclaimer-section h3{color:#e53e3e;font-size:1.3rem;margin-bottom:1rem;font-weight:600}.disclaimer-section p{color:#2d3748;line-height:1.6;margin-bottom:1rem;font-size:.95rem}.disclaimer-section p:last-child{margin-bottom:0}.disclaimer-section strong{color:#e53e3e;font-weight:600}@media (max-width: 768px){.seo-content{margin-top:2rem;padding-top:1.5rem}.seo-section h2{font-size:1.5rem}.seo-section p,.disclaimer-section p{font-size:.9rem}.disclaimer-section{padding:1rem}}.tile{position:relative;width:100%;height:100%;min-width:35px;min-height:35px;background:var(--tile-bg);border:2px solid var(--tile-border);border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:grab;transition:all .2s ease;-webkit-user-select:none;user-select:none;box-shadow:var(--shadow-sm)}.tile:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.tile:active{cursor:grabbing;transform:scale(.95)}.tile-letter{font-size:1.2rem;font-weight:700;color:var(--tile-text);line-height:1;margin-bottom:2px}.tile-points{font-size:.65rem;font-weight:600;color:var(--tile-text);position:absolute;bottom:2px;right:4px;line-height:1}.blank-indicator{position:absolute;top:1px;left:2px;font-size:.7rem;color:var(--accent-red);font-weight:700}.tile-placed{cursor:default;background:#f1c40f;border-color:#d4ac0d}.tile-placed:hover{transform:none;box-shadow:var(--shadow-sm)}.tile-placed.tile-new{border:3px solid var(--accent-orange);box-shadow:0 0 0 2px var(--accent-orange),var(--shadow-lg);animation:pulseHighlight 2s ease-in-out}@keyframes pulseHighlight{0%{box-shadow:0 0 0 2px var(--accent-orange),0 0 20px #ffc10799}50%{box-shadow:0 0 0 4px var(--accent-orange),0 0 30px #ffc107cc}to{box-shadow:0 0 0 2px var(--accent-orange),0 0 20px #ffc10799}}.tile-selected{background:var(--accent-teal);border-color:var(--accent-teal-hover);color:#fff;transform:translateY(-3px);box-shadow:var(--shadow-lg)}.tile-selected .tile-letter,.tile-selected .tile-points{color:#fff}.tile-preview{background:#f4d03fb3;border:2px dashed var(--tile-border);animation:pulse 1s infinite}.tile-dragging{opacity:.5;transform:rotate(5deg) scale(1.1);z-index:1000;box-shadow:var(--shadow-lg)}.tile-blank{background:#ecf0f1;border-color:#bdc3c7}.tile-blank .tile-letter,.tile-blank .tile-points{color:#34495e}.tile-blank:not(.tile-selected):hover{background:#d5dbdb;border-color:#95a5a6;cursor:pointer}.tile-blank .tile-letter:empty:before{content:"?";color:#7f8c8d;font-weight:700}@media (max-width: 768px){.board-square .tile{width:100%;height:100%;min-width:unset;min-height:unset}.board-square .tile-letter{font-size:.8rem}.board-square .tile-points{font-size:.45rem}}@media (max-width: 480px){.board-square .tile-letter{font-size:.6rem}.board-square .tile-points{font-size:.35rem}}@media (max-width: 768px){.tile-rack .tile{min-width:32px;min-height:32px}.tile-rack .tile-letter{font-size:.9rem}.tile-rack .tile-points{font-size:.5rem}}@media (max-width: 480px){.tile-rack .tile{min-width:28px;min-height:28px}.tile-rack .tile-letter{font-size:.75rem}.tile-rack .tile-points{font-size:.4rem}}@keyframes pulse{0%,to{opacity:.7}50%{opacity:1}}.tile-rack .tile{margin:0 2px;width:45px;height:45px;flex-shrink:0}.tile-rack .tile:hover{transform:translateY(-4px)}@media (max-width: 768px){.tile-rack .tile{width:35px;height:35px;margin:0 1px}}@media (max-width: 480px){.tile-rack .tile{width:28px;height:28px;margin:0}}.game-board{position:relative;display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1rem;background:var(--bg-secondary);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-lg)}.board-grid{display:grid;grid-template-columns:repeat(15,1fr);grid-template-rows:repeat(15,1fr);gap:1px;background:var(--bg-tertiary);border-radius:var(--border-radius);padding:4px;position:relative;box-sizing:border-box;margin:0 auto}.board-square{display:flex;align-items:center;justify-content:center;background:var(--square-normal);border-radius:3px;position:relative;transition:all .2s ease;font-weight:600;cursor:pointer;box-sizing:border-box}.board-square.can-drop{box-shadow:inset 0 0 0 1px #4fb3b34d}.board-square.drop-hover{background:#4fb3b326;box-shadow:inset 0 0 0 2px var(--accent-teal)}.board-square.drop-invalid,.board-square.drop-invalid.double-word,.board-square.drop-invalid.triple-word,.board-square.drop-invalid.double-letter,.board-square.drop-invalid.triple-letter,.board-square.drop-invalid.center-star{background:#f44!important;color:#fff!important;transition:background-color .2s ease,color .2s ease;box-shadow:inset 0 0 0 2px #c00!important}.board-square.drop-invalid .square-label,.board-square.drop-invalid.double-word .square-label,.board-square.drop-invalid.triple-word .square-label,.board-square.drop-invalid.double-letter .square-label,.board-square.drop-invalid.triple-letter .square-label,.board-square.drop-invalid.center-star .square-label{color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.5);font-weight:700!important}.board-square.highlighted{background:#ff95004d;border:2px solid var(--accent-orange);box-shadow:0 0 8px #ff950066}.board-square.ai-last-played{background:#8a2be233;border:2px solid #8A2BE2;box-shadow:0 0 8px #8a2be280;animation:aiGlow 2s ease-in-out infinite alternate}@keyframes aiGlow{0%{box-shadow:0 0 8px #8a2be280}to{box-shadow:0 0 12px #8a2be2cc}}.board-square.double-word{background:var(--square-dw);color:#8b0000}.board-square.triple-word{background:var(--square-tw);color:#fff}.board-square.double-letter{background:var(--square-dl);color:#036}.board-square.triple-letter{background:var(--square-tl);color:navy}.board-square.center-star{background:var(--square-center);color:#fff;font-size:1.2rem}.square-label{font-weight:700;text-align:center;line-height:1;-webkit-user-select:none;user-select:none;pointer-events:none;font-size:85%}.word-points-indicator{position:absolute;top:-8px;right:-8px;background:var(--accent-orange);color:#fff;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;border:2px solid var(--bg-secondary);z-index:10;animation:slideIn .3s ease}.board-coordinates{display:flex;gap:1rem;color:var(--text-muted);font-size:.75rem;font-weight:500;justify-content:center;flex-wrap:wrap}.row-coordinates,.col-coordinates{display:flex;gap:.5rem;justify-content:center}.coordinate{width:20px;text-align:center;flex-shrink:0}.tile-rack{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem;background:var(--bg-secondary);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md);border:2px solid var(--bg-tertiary)}.rack-main-container{display:flex;align-items:center;gap:1rem}.rack-side-button{display:flex;align-items:center;justify-content:center;min-width:3rem}.rack-side-button.left{order:0}.rack-side-button.right{order:2}.tile-rack-container{display:flex;gap:8px;align-items:center;background:var(--bg-tertiary);padding:12px;border-radius:var(--border-radius);box-shadow:inset 0 2px 4px #0000001a;min-height:70px;order:1}.tile-slot{display:flex;align-items:center;justify-content:center;width:50px;height:50px;border-radius:6px;transition:all .2s ease}.tile-slot.empty{background:var(--bg-quaternary);border:2px dashed var(--text-muted);opacity:.5}.empty-tile-placeholder{width:100%;height:100%;border-radius:4px;background:transparent}.rack-info{display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:.875rem}.tiles-count{font-weight:500;color:var(--text-muted)}.rack-btn{padding:0;background:#3a3a3a;border:2px solid var(--bg-quaternary);border-radius:6px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;width:50px;height:50px;color:#fff;box-shadow:var(--shadow-sm)}.rack-btn:hover{background:var(--bg-quaternary);border-color:var(--text-muted);transform:translateY(-1px);box-shadow:var(--shadow-md)}.rack-btn:active{transform:translateY(0)}.rack-btn svg{width:20px;height:20px;flex-shrink:0;fill:#fff}.tile-rack.drop-hover{background:var(--accent-primary);border-color:var(--accent-primary);transform:scale(1.02);box-shadow:0 0 20px #4caf504d}.tile-rack.drop-hover .tile-rack-container{background:#ffffff1a}@media (max-width: 768px){.tile-rack{padding:.75rem}.rack-main-container{gap:.5rem}.rack-side-button{min-width:2.5rem}.rack-btn{width:40px;height:40px}.rack-btn svg{width:16px;height:16px}.tile-rack-container{gap:6px;padding:10px;min-height:60px}.tile-slot{width:40px;height:40px}.rack-info{font-size:.8rem}}@media (max-width: 480px){.tile-rack{padding:.5rem;margin:0 .5rem}.rack-main-container{gap:.25rem}.rack-side-button{min-width:2rem}.rack-btn{width:40px;height:40px}.rack-btn svg{width:16px;height:16px}.tile-rack-container{gap:4px;padding:8px;min-height:50px;overflow-x:auto;width:100%}.tile-slot{width:32px;height:32px;flex-shrink:0}.rack-info{font-size:.75rem}}.tile-slot .tile{animation:slideIn .3s ease}.tile-slot:not(.empty):hover{transform:translateY(-2px)}.tile-slot.empty:hover{border-color:var(--accent-teal);background:#4fb3b31a}.game-controls{display:flex;flex-direction:column;gap:.5rem;padding:.75rem;background:var(--bg-secondary);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--bg-tertiary)}.game-controls.disabled{opacity:.7}.controls-row{display:flex;gap:.5rem;align-items:center;justify-content:center;flex-wrap:wrap}.controls-message{text-align:center;color:var(--text-secondary);font-size:.875rem;padding:.75rem;background:var(--bg-tertiary);border-radius:var(--border-radius);margin-bottom:.5rem}.submit-btn{min-width:90px;position:relative;display:flex;align-items:center;justify-content:center;gap:.25rem}.loading-spinner{width:16px;height:16px;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:spin 1s linear infinite}.btn svg{vertical-align:middle;margin-right:.25rem;flex-shrink:0}.controls-row .btn{padding:.375rem .75rem}.btn-sm svg{width:14px;height:14px}.controls-row .btn:hover:not(:disabled){transform:translateY(-1px)}@media (max-width: 768px){.game-controls{padding:.5rem;gap:.5rem}.controls-row{gap:.375rem}.btn{padding:.5rem .75rem;font-size:.8rem}.controls-row .btn{padding:.5rem .75rem}.btn-sm{padding:.375rem .75rem;font-size:.7rem}.submit-btn{min-width:60px}.controls-message{font-size:.8rem;padding:.5rem}}@media (max-width: 480px){.game-controls{padding:.375rem;margin:0 .25rem}.controls-row{justify-content:space-between;width:100%;gap:.5rem}.controls-row .btn{flex:1;min-width:0;max-width:100px}.btn{padding:.375rem .5rem;font-size:.7rem}.controls-row .btn{padding:.4rem .6rem}.btn-sm{padding:.3rem .5rem;font-size:.65rem}.btn svg{width:12px;height:12px;margin-right:.125rem}.submit-btn{min-width:50px}}.btn:focus{outline:2px solid var(--accent-teal);outline-offset:2px}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.btn.btn-danger:hover:not(:disabled){background:#e74c3c;transform:translateY(-1px)}.btn.btn-primary:hover:not(:disabled){background:var(--accent-teal-hover)}.drag-preview{opacity:.8;transform:rotate(5deg);filter:drop-shadow(0 8px 16px rgba(0,0,0,.3));pointer-events:none;width:fit-content;height:fit-content}.drag-preview .tile{cursor:grabbing!important;animation:dragPulse .6s ease-in-out infinite alternate;width:60px!important;height:60px!important;min-width:60px!important;min-height:60px!important;max-width:60px!important;max-height:60px!important;flex-shrink:0;flex-grow:0;font-size:1.5rem!important}.drag-preview .tile .tile-letter{font-size:1.5rem!important;font-weight:700!important}.drag-preview .tile .tile-points{font-size:.75rem!important}@keyframes dragPulse{0%{transform:scale(1)}to{transform:scale(1.05)}}.timer{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem;background:var(--bg-secondary);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md);border:2px solid var(--bg-tertiary);transition:all .3s ease;min-width:120px}.timer-display{display:flex;align-items:center;gap:.75rem;width:100%;justify-content:center}.timer-icon{color:var(--text-secondary);display:flex;align-items:center;transition:color .3s ease}.timer-text{display:flex;flex-direction:column;align-items:center;gap:.25rem}.time-value{font-size:1.5rem;font-weight:700;color:var(--text-primary);font-family:Monaco,Menlo,Consolas,monospace;transition:color .3s ease}.timer-status{font-size:.75rem;color:var(--text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.timer-status.expired{color:var(--accent-red);animation:pulse 1s infinite}.timer-progress{width:100%;margin-top:.25rem}.timer-progress-bg{width:100%;height:6px;background:var(--bg-quaternary);border-radius:3px;overflow:hidden}.timer-progress-fill{height:100%;background:var(--accent-teal);border-radius:3px;transition:all .3s ease}.progress-warning{background:var(--accent-orange)}.progress-critical{background:var(--accent-red);animation:progressPulse .5s infinite alternate}.timer-warning-text{font-size:.8rem;color:var(--accent-orange);font-weight:500;text-align:center;animation:warningBlink 1s infinite}.timer-warning{border-color:var(--accent-orange);background:#ff95000d}.timer-warning .timer-icon,.timer-warning .time-value{color:var(--accent-orange)}.timer-expired{border-color:var(--accent-red);background:#ff453a0d;animation:shake .5s infinite}.timer-expired .timer-icon,.timer-expired .time-value{color:var(--accent-red)}.timer-paused{opacity:.7}.timer-paused .timer-progress-fill{animation:pausedPulse 2s infinite}@media (max-width: 768px){.timer{padding:.4rem;min-width:80px;gap:.25rem}.timer-display{gap:.25rem}.timer-icon svg{width:14px;height:14px}.time-value{font-size:.9rem}.timer-status{font-size:.6rem}.timer-warning-text{font-size:.65rem}.timer-progress-bg{height:3px}}@media (max-width: 480px){.timer{padding:.25rem;min-width:60px;gap:.125rem}.timer-display{gap:.125rem;flex-direction:row}.timer-icon svg{width:12px;height:12px}.time-value{font-size:.75rem}.timer-status{font-size:.5rem}.timer-progress-bg{height:2px}.timer-warning-text{font-size:.55rem}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes warningBlink{0%,50%{opacity:1}51%,to{opacity:.7}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-2px)}75%{transform:translate(2px)}}@keyframes pausedPulse{0%,to{opacity:.5}50%{opacity:.8}}.timer.compact{flex-direction:row;padding:.5rem .75rem;min-width:auto;background:transparent;border:1px solid var(--bg-quaternary)}.timer.compact .timer-display{gap:.5rem}.timer.compact .time-value{font-size:1.1rem}.timer.compact .timer-progress,.timer.compact .timer-warning-text{display:none}.player-info{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--bg-secondary);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md);border:2px solid var(--bg-tertiary);transition:all .3s ease;min-width:200px}.player-info.compact{padding:.4rem;gap:.5rem;min-width:120px;max-width:140px}.player-info.current-player{border-color:var(--accent-teal);background:#4fb3b30d}.player-info.current-turn{border-color:var(--accent-orange);background:#ff95000d;animation:currentTurnGlow 2s infinite}.player-info.ready{border-color:var(--accent-green)}.player-avatar{position:relative;width:50px;height:50px;border-radius:50%;overflow:hidden;flex-shrink:0;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center}.avatar-initials{font-size:1.2rem;font-weight:700;color:var(--text-primary);text-transform:uppercase}.turn-indicator{position:absolute;top:-2px;right:-2px;width:16px;height:16px;background:var(--accent-orange);border-radius:50%;border:2px solid var(--bg-secondary);display:flex;align-items:center;justify-content:center}.turn-pulse{width:8px;height:8px;background:#fff;border-radius:50%;animation:pulse 1s infinite}.player-details{flex:1;display:flex;flex-direction:column;gap:.5rem}.player-name{font-size:1rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:.5rem}.you-label{font-size:.75rem;color:var(--accent-teal);font-weight:500;background:#4fb3b333;padding:.125rem .375rem;border-radius:12px}.player-stats{display:flex;flex-direction:column;gap:1rem;align-items:left}.score,.tile-count{display:flex;align-items:center;gap:.25rem;font-size:.875rem}.score-label,.tile-count-label{color:var(--text-secondary)}.score-value{font-weight:700;color:var(--accent-teal);font-size:.5rem}.tile-count-value{font-weight:500;color:var(--text-primary)}.ready-status{margin-top:.25rem}.ready-indicator{display:flex;align-items:center;gap:.375rem;color:var(--accent-green);font-size:.8rem;font-weight:500}.not-ready-indicator{display:flex;align-items:center;gap:.375rem;color:var(--text-muted);font-size:.8rem}.player-info.compact .player-avatar{width:30px;height:30px}.player-info.compact .avatar-initials{font-size:.8rem}.player-info.compact .player-name{font-size:.75rem}.player-info.compact .you-label{font-size:.6rem;padding:.05rem .2rem}.player-info.compact .player-stats{gap:.5rem}.player-info.compact .score,.player-info.compact .tile-count{font-size:.65rem}.player-info.compact .score-value{font-size:.75rem}.player-info.compact .turn-indicator{width:12px;height:12px}.player-info.compact .turn-pulse{width:5px;height:5px}@media (max-width: 768px){.player-info{padding:0;gap:.375rem;min-width:100px;max-width:120px}.player-avatar{width:28px;height:28px}.avatar-initials{font-size:.75rem}.player-name{font-size:.7rem}.you-label{font-size:.55rem;padding:.05rem .2rem}.player-stats{gap:.375rem}.score,.tile-count{font-size:.6rem}.score-value{font-size:.7rem}}@media (max-width: 480px){.player-info{padding:.2rem;gap:.25rem;min-width:80px;max-width:100px;flex-direction:row;text-align:left}.player-avatar{width:24px;height:24px}.avatar-initials{font-size:.65rem}.player-name{font-size:.6rem;justify-content:flex-start}.player-stats{gap:.25rem;justify-content:flex-start;flex-wrap:wrap}.score,.tile-count{font-size:.55rem}.score-value{font-size:.65rem}.you-label{font-size:.5rem;padding:.05rem .15rem}.turn-indicator{width:8px;height:8px}.turn-pulse{width:3px;height:3px}}@keyframes currentTurnGlow{0%,to{box-shadow:var(--shadow-md)}50%{box-shadow:0 0 20px #ff95004d}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(.8)}}.player-list{display:flex;flex-direction:column;gap:.75rem}.player-list .player-info{margin:0}@media (max-width: 768px){.player-list{gap:.5rem}}.players-horizontal{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}@media (max-width: 768px){.players-horizontal{gap:.75rem}}@media (max-width: 480px){.players-horizontal{gap:.5rem;justify-content:center;flex-wrap:wrap}}.chat{display:flex;flex-direction:column;height:100%;background:var(--bg-secondary);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--bg-tertiary);overflow:hidden;max-height:320px;min-height:240px;transform:scale(1);transform-origin:top right}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;background:var(--bg-tertiary);border-bottom:1px solid var(--bg-quaternary)}.chat-title{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-weight:600;font-size:.9rem}.chat-minimize-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.25rem;border-radius:4px;transition:all .2s ease}.chat-minimize-btn:hover{color:var(--text-primary);background:var(--bg-quaternary)}.chat-messages{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.75rem}.chat-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-style:italic;text-align:center}.chat-message{display:flex;flex-direction:column;gap:.25rem;animation:slideIn .3s ease}.system-message{align-items:center}.system-message-content{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#4fb3b31a;border-radius:var(--border-radius);color:var(--accent-teal);font-size:.85rem;font-style:italic}.own-message{align-items:flex-end}.other-message{align-items:flex-start}.message-header{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--text-muted)}.message-author{font-weight:500}.own-message .message-author{color:var(--accent-teal)}.message-timestamp{font-size:.7rem}.message-content{max-width:75%;padding:.75rem 1rem;border-radius:var(--border-radius-lg);font-size:.875rem;word-wrap:break-word;line-height:1.4}.own-message .message-content{background:var(--accent-teal);color:#fff;border-bottom-right-radius:6px}.other-message .message-content{background:var(--bg-tertiary);color:var(--text-primary);border-bottom-left-radius:6px}.chat-input-form{padding:1rem;border-top:1px solid var(--bg-quaternary);background:var(--bg-secondary)}.chat-input-container{display:flex;gap:.5rem;align-items:center}.chat-input{flex:1;padding:.75rem;border:1px solid var(--bg-quaternary);border-radius:var(--border-radius);background:var(--bg-tertiary);color:var(--text-primary);font-size:.875rem;resize:none;transition:border-color .2s ease}.chat-input:focus{outline:none;border-color:var(--accent-teal)}.chat-input::placeholder{color:var(--text-muted)}.chat-send-btn{padding:.75rem;background:var(--accent-teal);color:#fff;border:none;border-radius:var(--border-radius);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;min-width:44px}.chat-send-btn:hover:not(:disabled){background:var(--accent-teal-hover);transform:translateY(-1px)}.chat-send-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.chat-input-info{display:flex;justify-content:flex-end;margin-top:.5rem}.char-count{font-size:.7rem;color:var(--text-muted)}.chat-minimized{position:relative;cursor:pointer;animation:slideIn .3s ease;width:fit-content}.chat-minimize-header{display:flex;align-items:center;gap:.5rem;padding:.6rem .8rem;background:var(--bg-secondary);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--bg-tertiary);color:var(--text-primary);font-weight:500;font-size:.7rem;transition:all .2s ease;position:relative}.chat-minimize-header:hover{transform:translateY(-2px);box-shadow:0 8px 20px #0000004d}.unread-badge{position:absolute;top:-6px;right:-6px;background:var(--accent-red);color:#fff;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;animation:pulse 1s infinite}@media (max-width: 768px){.chat{max-height:500px;min-height:400px;transform:scale(1);width:100%}.chat-header{padding:.75rem}.chat-title{font-size:.85rem}.chat-messages{padding:.75rem;gap:.5rem}.message-content{max-width:85%;padding:.625rem .875rem;font-size:.8rem}.chat-input-form{padding:.75rem}.chat-input{padding:.625rem;font-size:.8rem}.chat-send-btn{padding:.625rem;min-width:40px}.chat-send-btn svg{width:16px;height:16px}}@media (max-width: 480px){.chat{max-height:450px;min-height:350px;transform:scale(1);width:100%;border-radius:var(--border-radius)}.chat-header{padding:.5rem}.chat-title{font-size:.8rem}.chat-messages{padding:.5rem;gap:.375rem}.message-content{max-width:90%;padding:.5rem .75rem;font-size:.75rem}.message-header{font-size:.7rem}.chat-input-form{padding:.5rem}.chat-input{padding:.5rem;font-size:.75rem}.chat-send-btn{padding:.5rem;min-width:36px}.chat-send-btn svg{width:14px;height:14px}.char-count{font-size:.65rem}.chat-minimized{width:fit-content}.chat-minimize-header{padding:.4rem .6rem;font-size:.64rem}.unread-badge{width:18px;height:18px;font-size:.65rem;top:-5px;right:-5px}}.chat-messages::-webkit-scrollbar{width:6px}.chat-messages::-webkit-scrollbar-track{background:var(--bg-tertiary)}.chat-messages::-webkit-scrollbar-thumb{background:var(--bg-quaternary);border-radius:3px}.game-end-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn .3s ease}.game-end-modal{background:var(--bg-secondary);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--bg-tertiary);max-width:500px;width:90%;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease}.game-end-header{display:flex;justify-content:space-between;align-items:center;padding:2rem 2rem 1rem;border-bottom:1px solid var(--bg-tertiary)}.game-end-header h2{margin:0;color:var(--text-primary);font-size:1.75rem;text-align:center;flex:1}.modal-close-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.5rem;border-radius:4px;transition:all .2s ease;margin-left:1rem}.modal-close-btn:hover{color:var(--text-primary);background:var(--bg-quaternary)}.winners-section{padding:2rem;text-align:center;background:linear-gradient(135deg,#ffd7001a,#ffd7000d);border-bottom:1px solid var(--bg-tertiary)}.winners-section h3{margin:0 0 1rem;color:var(--text-primary);font-size:1.5rem}.winner-score{font-size:2rem;font-weight:700;color:var(--accent-teal);text-shadow:0 2px 4px rgba(0,0,0,.1)}.final-scores{padding:2rem}.final-scores h4{margin:0 0 1.5rem;color:var(--text-primary);font-size:1.25rem;text-align:center}.scores-list{display:flex;flex-direction:column;gap:1rem}.score-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--bg-tertiary);border-radius:var(--border-radius);transition:all .2s ease}.score-item.winner{background:linear-gradient(135deg,#ffd70033,#ffd7001a);border:2px solid rgba(255,215,0,.3);transform:scale(1.02)}.rank{font-weight:700;color:var(--text-secondary);font-size:1.25rem;min-width:2rem;text-align:center}.score-item.winner .rank{color:var(--accent-teal)}.player-info{display:flex;align-items:center;gap:1rem;flex:1}.player-avatar{width:50px;height:50px;border-radius:50%;overflow:hidden;background:var(--bg-quaternary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.player-avatar img{width:100%;height:100%;object-fit:cover}.avatar-initials{font-size:1.25rem;font-weight:700;color:var(--text-primary)}.player-details{flex:1}.player-name{font-weight:600;color:var(--text-primary);font-size:1.1rem;margin-bottom:0}.player-score{color:var(--text-secondary);font-size:1rem;margin-bottom:.5rem}.score-item.winner .player-score{color:var(--accent-teal);font-weight:700}.player-stats-inline{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.75rem;color:var(--text-muted)}.stat-inline{background:var(--bg-quaternary);padding:.25rem .5rem;border-radius:.25rem;border:1px solid var(--bg-tertiary)}.crown{font-size:2rem;animation:bounce 2s infinite}.game-end-actions{padding:2rem;display:flex;gap:1rem;justify-content:center;border-top:1px solid var(--bg-tertiary)}.continue-btn{min-width:200px;padding:1rem 2rem;font-size:1.1rem;font-weight:600;border-radius:var(--border-radius);background:var(--bg-quaternary);color:var(--text-primary);border:1px solid var(--bg-tertiary);cursor:pointer;transition:all .2s ease}.continue-btn:hover{background:var(--bg-tertiary);transform:translateY(-2px)}.restart-btn{min-width:200px;padding:1rem 2rem;font-size:1.1rem;font-weight:600;border-radius:var(--border-radius);background:var(--accent-teal);color:#fff;border:none;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #4fb3b34d}.restart-btn:hover{background:var(--accent-teal-hover);transform:translateY(-2px);box-shadow:0 6px 16px #4fb3b366}@media (max-width: 768px){.game-end-modal{width:95%;max-height:95vh}.game-end-header{padding:1.5rem 1.5rem 1rem}.game-end-header h2{font-size:1.5rem}.winners-section{padding:1.5rem}.winners-section h3{font-size:1.25rem}.winner-score{font-size:1.75rem}.final-scores{padding:1.5rem}.score-item{padding:.75rem;gap:.75rem}.player-avatar{width:40px;height:40px}.avatar-initials,.player-name{font-size:1rem}.game-end-actions{padding:1.5rem}.restart-btn{width:100%;min-width:auto}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}.letter-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.letter-modal-content{background:var(--bg-primary);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-xl);border:2px solid var(--bg-tertiary);width:100%;max-width:500px;max-height:90vh;overflow-y:auto}.letter-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 1.5rem 0;margin-bottom:1rem}.letter-modal-header h3{margin:0;color:var(--text-primary);font-size:1.5rem;font-weight:600}.letter-modal-close{background:none;border:none;font-size:2rem;color:var(--text-muted);cursor:pointer;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease}.letter-modal-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.letter-modal-subtitle{padding:0 1.5rem;margin:0 0 1.5rem;color:var(--text-secondary);font-size:.95rem}.letter-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:.75rem;padding:0 1.5rem;margin-bottom:1.5rem}.letter-option{aspect-ratio:1;background:var(--bg-secondary);border:2px solid var(--bg-tertiary);border-radius:var(--border-radius);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;min-height:3rem;position:relative}.letter-option:hover{background:var(--accent-primary);border-color:var(--accent-primary);transform:translateY(-2px);box-shadow:0 4px 12px #4caf504d}.letter-option:active{transform:translateY(-1px)}.letter-text{font-size:1.25rem;font-weight:700;color:var(--text-primary)}.letter-option:hover .letter-text{color:#fff}.letter-modal-footer{padding:0 1.5rem 1.5rem;display:flex;justify-content:center}.letter-modal-footer .btn{padding:.75rem 1.5rem;font-size:.95rem;border-radius:var(--border-radius);font-weight:500;cursor:pointer;transition:all .2s ease}.letter-modal-footer .btn-secondary{background:var(--bg-quaternary);color:var(--text-secondary);border:1px solid var(--bg-quaternary)}.letter-modal-footer .btn-secondary:hover{background:var(--bg-tertiary);border-color:var(--bg-tertiary)}@media (max-width: 768px){.letter-modal-overlay{padding:.5rem}.letter-grid{grid-template-columns:repeat(5,1fr);gap:.5rem}.letter-option{min-height:2.5rem}.letter-text{font-size:1.1rem}.letter-modal-header{padding:1rem 1rem 0}.letter-modal-subtitle{padding:0 1rem;font-size:.9rem}.letter-grid{padding:0 1rem}.letter-modal-footer{padding:0 1rem 1rem}}@media (max-width: 480px){.letter-grid{grid-template-columns:repeat(4,1fr)}.letter-option{min-height:2.25rem}.letter-text{font-size:1rem}}.game-container{display:flex;flex-direction:column;height:100vh;background:var(--bg-primary);color:var(--text-primary);overflow:hidden;padding-top:4px;border:4px solid transparent;box-sizing:border-box;transition:border-color .5s ease}.game-container.my-turn{border-color:#ffb6c1;box-shadow:0 0 20px #ffb6c14d}.game-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:var(--bg-secondary);border-bottom:1px solid var(--bg-tertiary);flex-shrink:0}.players-section{display:flex;gap:1rem;flex-wrap:wrap;align-items:center;justify-content:center;width:100%}.timer-progress-bar{position:fixed;top:0;left:0;right:0;height:4px;background:var(--bg-quaternary);z-index:1000}.timer-progress-fill{height:100%;background:var(--accent-teal);transition:width .3s ease,background-color .3s ease}.timer-progress-fill.warning{background:var(--accent-orange)}.timer-progress-fill.critical{background:var(--accent-red);animation:progressPulse .5s infinite alternate}.fixed-timer-container{position:fixed;top:8px;right:8px;z-index:999;display:flex;flex-direction:column;align-items:flex-end;gap:.25rem}.fixed-timer-container .timer{box-shadow:var(--shadow-lg);border:2px solid var(--bg-quaternary);transform:scale(.5);transform-origin:top right}.sticky-chat-toggle{display:flex;align-items:center}.sticky-chat-toggle .chat-minimized{position:relative;cursor:pointer;animation:none}.sticky-chat-toggle .chat-minimize-header{transform:scale(.5);transform-origin:top right;padding:.4rem .6rem;font-size:.7rem}.sticky-chat-close{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.25rem;border-radius:4px;transition:all .2s ease;transform:scale(.5);transform-origin:top right}.sticky-chat-close:hover{color:var(--text-primary);background:var(--bg-quaternary)}@keyframes progressPulse{0%{opacity:.8}to{opacity:1}}.game-main{display:flex;flex:1;gap:1rem;padding:1rem;overflow:hidden}.game-board-section{flex:1;display:flex;justify-content:center;align-items:center;min-width:0;width:100%}.floating-chat-container{position:fixed;top:120px;right:20px;width:280px;z-index:100;pointer-events:none}.floating-chat-container .chat,.floating-chat-container .chat-minimized{pointer-events:all}.game-bottom{display:flex;gap:1rem;padding:1rem;background:var(--bg-secondary);border-top:1px solid var(--bg-tertiary);flex-shrink:0}.tile-rack-section{flex:1;display:flex;flex-direction:column;align-items:center;gap:1rem}.mobile-tile-rack-section{display:none}.game-controls-section{display:flex;flex-direction:column;align-items:center;gap:.5rem}.game-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000}.waiting-screen,.game-finished-screen{background:var(--bg-secondary);border-radius:var(--border-radius-lg);padding:3rem;text-align:center;box-shadow:var(--shadow-lg);border:1px solid var(--bg-tertiary);max-width:400px;width:90%}.waiting-screen h2,.game-finished-screen h2{margin:0 0 1rem;color:var(--text-primary);font-size:1.5rem}.waiting-screen p,.game-finished-screen p{margin:0 0 2rem;color:var(--text-secondary);font-size:1rem}.players-ready-status{display:flex;flex-direction:column;gap:1rem;margin:2rem 0;padding:1.5rem;background:var(--bg-tertiary);border-radius:var(--border-radius);border:1px solid var(--bg-quaternary)}.player-ready-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--bg-secondary);border-radius:var(--border-radius);transition:all .3s ease}.player-ready-item.ready{background:#22c55e1a;border:1px solid rgba(34,197,94,.3)}.player-ready-item.not-ready{background:#fbbf241a;border:1px solid rgba(251,191,36,.3)}.player-ready-item .player-name{font-weight:600;color:var(--text-primary)}.player-ready-item .ready-status{font-size:.9rem;font-weight:500}.player-ready-item.ready .ready-status{color:var(--accent-green)}.player-ready-item.not-ready .ready-status{color:var(--accent-orange)}.ready-button{padding:1rem 2rem;font-size:1.25rem;font-weight:600;border-radius:var(--border-radius);background:var(--accent-teal);color:#fff;border:none;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #4fb3b34d;margin-top:1rem}.ready-button:hover{background:var(--accent-teal-hover);transform:translateY(-2px);box-shadow:0 6px 16px #4fb3b366}.ready-confirmation{margin-top:1rem;padding:1rem;background:#22c55e1a;border:1px solid rgba(34,197,94,.3);border-radius:var(--border-radius);text-align:center}.ready-confirmation p{margin:0;color:var(--accent-green);font-weight:500}.game-master-controls{margin-top:2rem;padding:1.5rem;background:var(--bg-tertiary);border-radius:var(--border-radius);border:2px solid var(--accent-blue)}.game-master-controls .divider{border:none;border-top:1px solid var(--bg-quaternary);margin:0 0 1rem}.game-master-controls h4{margin:0 0 .5rem;color:var(--accent-blue);font-size:1.1rem;font-weight:600}.game-master-controls p{margin:0 0 1rem;color:var(--text-secondary);font-size:.9rem}.start-game-button{padding:1rem 2rem;font-size:1.1rem;font-weight:600;border-radius:var(--border-radius);background:var(--accent-green);color:#fff;border:none;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #22c55e4d}.start-game-button:hover:not(:disabled){background:#16a34a;transform:translateY(-2px);box-shadow:0 6px 16px #22c55e66}.start-game-button:disabled{background:var(--bg-quaternary);color:var(--text-muted);cursor:not-allowed;box-shadow:none;transform:none}.waiting-screen-actions{display:flex;gap:1rem;justify-content:center;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--bg-quaternary)}.withdraw-button{padding:.75rem 1.5rem;font-size:.9rem;font-weight:500;border-radius:var(--border-radius);background:var(--bg-quaternary);color:var(--text-secondary);border:1px solid var(--bg-quaternary);cursor:pointer;transition:all .2s ease}.withdraw-button:hover{background:var(--accent-red);color:#fff;border-color:var(--accent-red);transform:translateY(-1px)}.debug-close-button{padding:.75rem 1.5rem;font-size:.9rem;font-weight:500;border-radius:var(--border-radius);background:transparent;color:var(--text-muted);border:1px solid var(--bg-quaternary);cursor:pointer;transition:all .2s ease}.debug-close-button:hover{background:var(--accent-orange);color:#fff;border-color:var(--accent-orange);transform:translateY(-1px)}.share-link-button{padding:.75rem 1.5rem;font-size:.9rem;font-weight:500;border-radius:var(--border-radius);background:var(--accent-green);color:#fff;border:1px solid var(--accent-green);cursor:pointer;transition:all .2s ease}.share-link-button:hover{background:#27ae60;border-color:#27ae60;transform:translateY(-1px);box-shadow:0 4px 12px #2ecc714d}.debug-controls{margin-top:1rem;display:flex;justify-content:center;gap:.5rem;align-items:center}.mobile-controls{display:none;gap:.25rem;align-items:center}.mobile-home-btn,.mobile-chat-btn{padding:.375rem;min-width:40px;height:40px;display:flex;align-items:center;justify-content:center}.desktop-only{display:block}.debug-game-end-btn{padding:.75rem 1.5rem;font-size:.9rem;font-weight:500;border-radius:var(--border-radius);background:transparent;color:var(--accent-purple);border:1px solid var(--accent-purple);cursor:pointer;transition:all .2s ease}.debug-game-end-btn:hover{background:var(--accent-purple);color:#fff;border-color:var(--accent-purple);transform:translateY(-1px)}.game-board-section{position:relative}.total-score-badge{position:absolute;top:20px;right:20px;background:#ff6b35;color:#fff;width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.2rem;font-weight:700;box-shadow:0 4px 12px #ff6b3566;z-index:10;border:3px solid white;animation:scoreAppear .3s ease-in-out}@keyframes scoreAppear{0%{transform:scale(0);opacity:0}50%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.score-display{background:var(--accent-primary);color:#fff;padding:.75rem 1.5rem;border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md);display:flex;align-items:center;gap:1rem;font-weight:600}.score-label{font-size:.75rem;opacity:.9}.score-value{font-size:1.25rem;font-weight:700;background:#fff3;padding:.25rem .75rem;border-radius:var(--border-radius)}.words-breakdown{display:flex;gap:.5rem;align-items:center;font-size:.9rem;opacity:.9}.word-score-item{background:#ffffff26;padding:.25rem .5rem;border-radius:var(--border-radius);text-transform:uppercase;letter-spacing:.5px;font-size:.8rem}.score-error-display{background:var(--accent-red);color:#fff;padding:.75rem 1.5rem;border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md);text-align:center}.error-text{font-size:.95rem;font-weight:500}@media (max-width: 768px){.total-score-badge{width:40px;height:40px;font-size:1rem;top:10px;right:10px;border:2px solid white}.board-score-preview{margin-bottom:.75rem}.score-display{padding:.5rem 1rem;gap:.75rem;flex-wrap:wrap;justify-content:center}.score-label{font-size:.9rem}.score-value{font-size:1.1rem;padding:.2rem .5rem}.words-breakdown{gap:.25rem;font-size:.8rem;flex-wrap:wrap;justify-content:center}.word-score-item{font-size:.7rem;padding:.2rem .4rem}.score-error-display{padding:.5rem 1rem}.error-text{font-size:.85rem}}.loading-spinner{width:32px;height:32px;border:3px solid var(--bg-quaternary);border-top:3px solid var(--accent-teal);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto}.loading-spinner.large{width:48px;height:48px;border-width:4px}@media (min-width: 769px) and (max-width: 1024px){.game-main{gap:.75rem;padding:.75rem}.floating-chat-container{width:240px;top:100px;right:15px}.fixed-timer-container{top:6px;right:6px;gap:.125rem}.game-header{padding:.75rem}.game-bottom{gap:.75rem;padding:.75rem}}@media (max-width: 768px){.game-container{height:100vh;height:100dvh}.game-header{padding:.5rem;flex-wrap:nowrap;gap:.5rem}.players-section{gap:.75rem;justify-content:center}.game-main{flex-direction:column;gap:.5rem;padding:.5rem;overflow:visible}.game-board-section{flex:0 0 auto;width:100%;display:flex;justify-content:center;align-items:center;padding:0}.mobile-tile-rack-section{display:none}.floating-chat-container{width:250px;top:80px;right:10px}.fixed-timer-container{top:4px;right:4px;gap:.1rem}.game-bottom{gap:.75rem;padding:.75rem;justify-content:center}.tile-rack-section{display:flex}.game-controls-section{justify-content:center}.waiting-screen,.game-finished-screen{padding:2rem;margin:1rem}}@media (max-width: 480px){.game-header{padding:.25rem;gap:.25rem}.players-section{gap:.5rem;justify-content:center}.game-main{gap:.5rem;padding:.25rem;overflow:visible}.game-board-section{width:100%;padding:0}.floating-chat-container{width:250px;top:70px;right:5px}.fixed-timer-container{top:2px;right:2px;gap:.05rem}.game-bottom{gap:.5rem;padding:.5rem}.waiting-screen,.game-finished-screen{padding:1.5rem;margin:.5rem}.waiting-screen h2,.game-finished-screen h2{font-size:1.3rem}.waiting-screen p,.game-finished-screen p{font-size:.9rem}}@media (max-height: 500px) and (orientation: landscape){.game-container{height:100vh}.game-header{padding:.5rem}.players-and-timer-section{gap:1rem;flex-direction:row}.players-section{flex:1}.fixed-timer-container{top:2px;right:2px;gap:.05rem}.game-main{flex-direction:row;padding:.5rem}.game-board-section{flex:1;max-height:none}.floating-chat-container{width:250px;top:60px;right:10px}.game-bottom{flex-direction:row;padding:.5rem}.tile-rack-section{order:1;flex:1}.game-controls-section{order:2;flex-shrink:0}}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){.loading-spinner{border-width:2px}.loading-spinner.large{border-width:3px}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.game-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.game-overlay:focus{outline:none}@media (max-width: 768px){.game-board-section{padding:0}}@media print{.game-container{height:auto;color:#000;background:#fff}.game-sidebar,.game-controls-section,.game-overlay{display:none}}.tiles-remaining-info{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.5rem;background:var(--bg-tertiary);border-radius:var(--border-radius);border:1px solid var(--bg-quaternary);min-width:70px}.tiles-bag-icon{font-size:1.2rem}.tiles-count{font-size:1.1rem;font-weight:700;color:var(--accent-teal)}.tiles-label{font-size:.7rem;color:var(--text-secondary);text-align:center;line-height:1}.timeout-modal{background:var(--bg-primary);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-xl);border:2px solid var(--accent-orange);padding:2rem;max-width:400px;width:90vw;text-align:center;animation:modalSlideIn .3s ease-out}.timeout-modal-header h2{margin:0 0 1rem;color:var(--accent-orange);font-size:1.5rem}.timeout-modal-content{margin:1.5rem 0;color:var(--text-primary);line-height:1.5}.timeout-modal-content p{margin:.5rem 0}.timeout-modal-actions{display:flex;gap:1rem;justify-content:center;margin-top:2rem}.timeout-modal-actions .btn{padding:.75rem 1.5rem;font-size:1rem;min-width:140px}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.game-frozen-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0000004d;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);display:flex;align-items:flex-start;justify-content:flex-end;z-index:1500;pointer-events:none}.frozen-message{background:var(--bg-secondary);border-radius:var(--border-radius-lg);padding:1.5rem;text-align:center;max-width:300px;border:1px solid var(--bg-tertiary);box-shadow:var(--shadow-lg);margin:1rem;pointer-events:auto}.frozen-message h3{margin:0 0 1rem;color:var(--text-primary);font-size:1.5rem}.frozen-message p{margin:0 0 1.5rem;color:var(--text-secondary);line-height:1.5}@media (max-width: 768px){.tiles-remaining-info{min-width:60px;padding:.4rem}.tiles-bag-icon,.tiles-count{font-size:1rem}.tiles-label{font-size:.65rem}.timeout-modal{padding:1.5rem}.timeout-modal-actions{flex-direction:column;gap:.75rem}}.home-button-section{display:flex;align-items:center;flex-shrink:0}.home-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--bg-tertiary);border:1px solid var(--bg-quaternary);border-radius:var(--border-radius-md);color:var(--text-primary);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none}.home-btn:hover{background:var(--bg-quaternary);border-color:var(--accent-teal);transform:translateY(-1px);box-shadow:var(--shadow-md)}.home-btn:active{transform:translateY(0)}.home-btn svg{width:16px;height:16px;flex-shrink:0}.home-btn span{white-space:nowrap}.home-confirmation-modal{background:var(--bg-secondary);border-radius:var(--border-radius-lg);padding:2rem;max-width:400px;width:90%;border:1px solid var(--bg-tertiary);box-shadow:var(--shadow-xl);animation:modalSlideIn .3s ease-out}.home-confirmation-modal-header{text-align:center;margin-bottom:1.5rem}.home-confirmation-modal-header h2{margin:0;color:var(--text-primary);font-size:1.5rem;font-weight:600}.home-confirmation-modal-content{text-align:center;margin-bottom:2rem}.home-confirmation-modal-content p{margin:.75rem 0;color:var(--text-secondary);line-height:1.5}.home-confirmation-modal-content p strong{color:var(--accent-red)}.home-confirmation-modal-actions{display:flex;gap:1rem;justify-content:center}.home-confirmation-modal-actions .btn{padding:.75rem 1.5rem;font-size:1rem;min-width:140px}@media (max-width: 768px){.home-btn{padding:.4rem .6rem;font-size:.8rem}.home-btn span{display:none}.home-confirmation-modal{padding:1.5rem;margin:1rem}.home-confirmation-modal-actions{flex-direction:column;gap:.75rem}.desktop-only{display:none!important}.mobile-controls{display:flex!important}.game-header{justify-content:center}.players-section{flex:1;justify-content:center}.fixed-timer-container{display:none}}.domain-restriction{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);font-family:Arial,sans-serif}.restriction-message{background:#fff;padding:2rem;border-radius:10px;box-shadow:0 10px 30px #0000004d;text-align:center;max-width:400px;margin:1rem}.restriction-message h2{color:#e74c3c;margin-bottom:1rem;font-size:1.5rem}.restriction-message p{color:#333;margin-bottom:.5rem;line-height:1.5}.restriction-message p:last-child{color:#666;font-size:.9rem;margin-bottom:0}.app{width:100%;min-height:100vh;background:var(--bg-primary);color:var(--text-primary);position:relative}.back-to-setup-btn{position:fixed;top:1rem;left:1rem;z-index:1001;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--bg-quaternary);border-radius:var(--border-radius);padding:.5rem .75rem;font-size:.8rem;cursor:pointer;transition:all .2s ease;opacity:.7}.back-to-setup-btn:hover{opacity:1;background:var(--bg-quaternary);transform:translateY(-1px)}@media (min-width: 1px){.back-to-setup-btn{display:none}}body[data-dev=true] .back-to-setup-btn{display:block}*{box-sizing:border-box}body{margin:0;padding:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}.game-container,.game-board,.tile,.btn{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.chat-input,.input,.textarea,.message-content{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}*{transition:background-color .2s ease,border-color .2s ease,color .2s ease}button:focus,input:focus,select:focus,textarea:focus{outline:2px solid var(--accent-teal);outline-offset:2px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:4px}*{scrollbar-width:thin;scrollbar-color:var(--bg-quaternary) var(--bg-secondary)}@supports (-webkit-touch-callout: none){.app{min-height:-webkit-fill-available}}@media (prefers-contrast: high){:root{--bg-primary: #000000;--bg-secondary: #1a1a1a;--text-primary: #ffffff;--accent-teal: #00ffff}}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media print{.app{background:#fff;color:#000}.back-to-setup-btn{display:none}}.loading{pointer-events:none;opacity:.6}.loading *{cursor:wait!important}.error{border-color:var(--accent-red)!important;background:#ff453a1a!important}.error-message{color:var(--accent-red);font-size:.875rem;margin-top:.25rem}.success{border-color:var(--accent-green)!important;background:#30d1581a!important}.success-message{color:var(--accent-green);font-size:.875rem;margin-top:.25rem}@media (max-width: 768px){body{font-size:14px}}@media (max-width: 480px){body{font-size:13px}}@media (hover: none) and (pointer: coarse){.btn,.tile{min-height:44px;min-width:44px}}@media screen and (max-height: 500px) and (orientation: landscape){.app{height:100vh;overflow:hidden}}*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #1a1a1a;--bg-secondary: #2a2a2a;--bg-tertiary: #3a3a3a;--bg-quaternary: #4a4a4a;--text-primary: #ffffff;--text-secondary: #cccccc;--text-muted: #888888;--accent-teal: #4fb3b3;--accent-teal-hover: #45a0a0;--accent-orange: #ff9500;--accent-red: #ff453a;--accent-blue: #007aff;--accent-green: #30d158;--square-normal: #f5f5f5;--square-normal-dark: #e0e0e0;--square-dw: #ffb3ba;--square-tw: #ff8a95;--square-dl: #b3d9ff;--square-tl: #87ceeb;--square-center: #ff9500;--tile-bg: #f4d03f;--tile-border: #d4ac0d;--tile-text: #2c3e50;--border-radius: 8px;--border-radius-lg: 12px;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .1);--shadow-md: 0 4px 8px rgba(0, 0, 0, .15);--shadow-lg: 0 8px 16px rgba(0, 0, 0, .2)}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{width:100%;min-height:100vh}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.m-2{margin:.5rem}.m-4{margin:1rem}.rounded{border-radius:var(--border-radius)}.rounded-lg{border-radius:var(--border-radius-lg)}.shadow-md{box-shadow:var(--shadow-md)}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;border:none;border-radius:var(--border-radius);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;min-height:44px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent-teal);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-teal-hover)}.btn-secondary{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--bg-quaternary)}.btn-secondary:hover:not(:disabled){background:var(--bg-tertiary)}.btn-danger{background:var(--accent-red);color:#fff}.btn-sm{padding:.5rem 1rem;font-size:.75rem;min-height:36px}.input{width:100%;padding:.75rem;border:1px solid var(--bg-quaternary);border-radius:var(--border-radius);background:var(--bg-secondary);color:var(--text-primary);font-size:.875rem;transition:border-color .2s ease}.input:focus{outline:none;border-color:var(--accent-teal)}.input::placeholder{color:var(--text-muted)}.select{width:100%;padding:.75rem 2.5rem .75rem .75rem;border:1px solid var(--bg-quaternary);border-radius:var(--border-radius);background:var(--bg-secondary);color:var(--text-primary);font-size:.875rem;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em}.select:focus{outline:none;border-color:var(--accent-teal)}.card{background:var(--bg-secondary);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md);overflow:hidden}@media (max-width: 768px){.btn{padding:.625rem 1.25rem;font-size:.8rem}.btn-sm{padding:.375rem .75rem;font-size:.7rem;min-height:32px}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease}.slide-in{animation:slideIn .3s ease}.dragging{opacity:.5;transform:rotate(5deg);z-index:1000}.drop-zone{transition:all .2s ease}.drop-zone.can-drop{background-color:#4fb3b333;border:2px dashed var(--accent-teal)}.drop-zone.is-over{background-color:#4fb3b366}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--bg-quaternary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}
