*{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary:#0f172a;--bg-secondary:#1e293b;--bg-tertiary:#334155;--text-primary:#f8fafc;--text-secondary:#94a3b8;--accent-blue:#3b82f6;--accent-blue-hover:#2563eb;--accent-green:#22c55e;--accent-red:#ef4444;--accent-yellow:#eab308;--cell-empty:#1e293b;--cell-ship:#475569;--cell-hit:#ef4444;--cell-miss:#64748b;--cell-hover:#3b82f6}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:var(--bg-primary);color:var(--text-primary);min-height:100vh}.container{max-width:1200px;margin:0 auto;padding:2rem}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;border-radius:.5rem;border:none;cursor:pointer;transition:all .2s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent-blue);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-blue-hover)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary)}.btn-secondary:hover:not(:disabled){background:var(--bg-secondary)}.btn-success{background:var(--accent-green);color:#fff}.btn-danger{background:var(--accent-red);color:#fff}.input{padding:.75rem 1rem;font-size:1rem;border-radius:.5rem;border:2px solid var(--bg-tertiary);background:var(--bg-secondary);color:var(--text-primary);outline:none;transition:border-color .2s}.input:focus{border-color:var(--accent-blue)}.card{background:var(--bg-secondary);border-radius:1rem;padding:1.5rem}.board{display:grid;grid-template-columns:repeat(10,1fr);grid-gap:2px;gap:2px;background:var(--bg-tertiary);padding:2px;border-radius:.5rem;max-width:400px}.board,.cell{aspect-ratio:1}.cell{border-radius:2px;display:flex;align-items:center;justify-content:center;font-size:.75rem;cursor:pointer;transition:all .15s}.cell-empty{background:var(--cell-empty)}.cell-ship{background:var(--cell-ship)}.cell-hit{background:var(--cell-hit)}.cell-miss{background:var(--cell-miss)}.cell-unknown{background:var(--cell-empty)}.cell:hover:not(.cell-disabled){background:var(--cell-hover);transform:scale(1.05)}.cell-disabled{cursor:not-allowed}.cell-preview{background:var(--accent-blue);opacity:.6}.cell-invalid{background:var(--accent-red);opacity:.6}.player-list{display:flex;flex-direction:column;gap:.75rem}.player-item{display:flex;align-items:center;justify-content:space-between;padding:1rem;background:var(--bg-tertiary);border-radius:.5rem}.player-name{font-weight:600}.player-status{font-size:.875rem;padding:.25rem .5rem;border-radius:.25rem}.status-joining{background:var(--accent-yellow);color:#000}.status-ready{background:var(--accent-green);color:#fff}.status-playing{background:var(--accent-blue);color:#fff}.status-eliminated{background:var(--accent-red);color:#fff}.status-disconnected{opacity:.5}.timer{font-size:2rem;font-weight:700;text-align:center;padding:1rem}.timer-warning{color:var(--accent-yellow)}.timer-critical{color:var(--accent-red);animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.phase-header{text-align:center;margin-bottom:2rem}.phase-header h1{font-size:2rem;margin-bottom:.5rem}.phase-header p{color:var(--text-secondary)}.ship-selector{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.ship-option{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:var(--bg-tertiary);border-radius:.25rem;cursor:pointer}.ship-option:hover{background:var(--bg-secondary)}.ship-option.selected{background:var(--accent-blue)}.ship-option.placed{opacity:.5;cursor:not-allowed}.ship-preview{display:flex;gap:2px}.ship-preview-cell{width:20px;height:20px;background:var(--cell-ship);border-radius:2px}.game-layout{display:grid;grid-template-columns:1fr 300px;grid-gap:2rem;gap:2rem}.boards-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:1.5rem;gap:1.5rem}.board-wrapper{display:flex;flex-direction:column;gap:.5rem}.board-label{font-weight:600;text-align:center}.sidebar{display:flex;flex-direction:column;gap:1rem}@media (max-width:900px){.game-layout{grid-template-columns:1fr}}