.game-board{display:grid;grid-template-columns:30px repeat(12,40px);grid-template-rows:30px repeat(12,40px);gap:1px;background:#e0e0e0;padding:10px;border-radius:5px}.grid-header{display:flex;align-items:center;justify-content:center;font-weight:700;color:#666;background:#f5f5f5;font-size:14px}.grid-cell{background:white;border:1px solid #ddd;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:20px;transition:all .2s;position:relative}.grid-cell:hover{background:#f0f0f0;transform:scale(1.05)}.grid-cell.available{background:white;cursor:pointer}.grid-cell.available:hover{background:#e3f2fd;border-color:#2196f3}.grid-cell.selected{background:#fff3e0;border:2px solid #ff9800}.grid-cell.ship{background:#90caf9;border-color:#2196f3}.grid-cell.ship:after{content:"🚢";position:absolute;font-size:16px}.grid-cell.hit{background:#ffcdd2;border-color:#f44336}.grid-cell.hit:after{content:"💥";position:absolute;font-size:20px}.grid-cell.miss{background:#e0e0e0;border-color:#9e9e9e}.grid-cell.miss:after{content:"💦";position:absolute;font-size:16px}.grid-cell.targetable{animation:pulse 2s infinite}@keyframes pulse{0%{box-shadow:0 0 #677eeab3}50%{box-shadow:0 0 0 5px #677eea00}to{box-shadow:0 0 #677eea00}}.game-setup{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.setup-container{background:white;border-radius:15px;padding:40px;max-width:600px;width:100%;box-shadow:0 10px 30px #0003}.setup-container h1{color:#764ba2;text-align:center;margin-bottom:10px;font-size:36px}.subtitle{text-align:center;color:#666;margin-bottom:30px;font-size:16px}.error-message{background:#ffebee;color:#c62828;padding:12px;border-radius:5px;margin-bottom:20px;text-align:center}.setup-options{display:flex;flex-direction:column;gap:20px}.setup-section{padding:20px;background:#f8f9fa;border-radius:10px;text-align:center}.setup-section h2{color:#333;margin-bottom:10px;font-size:20px}.setup-section p{color:#666;margin-bottom:15px;font-size:14px}.divider{text-align:center;color:#999;font-weight:700;position:relative;margin:10px 0}.divider:before,.divider:after{content:"";position:absolute;top:50%;width:45%;height:1px;background:#ddd}.divider:before{left:0}.divider:after{right:0}.game-code-input{width:100%;padding:12px;font-size:18px;text-align:center;border:2px solid #ddd;border-radius:5px;margin-bottom:15px;text-transform:uppercase;letter-spacing:2px}.game-code-input:focus{outline:none;border-color:#667eea}.setup-section form{display:flex;flex-direction:column;align-items:center}.instructions{margin-top:30px;padding:20px;background:#f0f7ff;border-radius:10px;border-left:4px solid #667eea}.instructions h3{color:#333;margin-bottom:15px;font-size:18px}.instructions ol{list-style-position:inside;color:#666;line-height:1.8}.instructions li{margin-bottom:8px}.existing-games{margin-top:30px;padding:20px;background:#f8f9fa;border-radius:10px}.existing-games h2{color:#333;margin-bottom:15px;font-size:20px}.games-list{display:flex;flex-direction:column;gap:10px}.game-item{background:white;border:1px solid #ddd;border-radius:8px;padding:15px;display:flex;justify-content:space-between;align-items:center;transition:all .2s}.game-item:hover{border-color:#667eea;box-shadow:0 2px 4px #0000001a}.game-info{display:flex;align-items:center;gap:10px}.game-code{font-weight:700;font-size:16px;color:#333}.game-phase{padding:2px 8px;border-radius:4px;font-size:12px;text-transform:uppercase}.game-phase.waiting{background:#fff3e0;color:#e65100}.game-phase.placement{background:#e3f2fd;color:#0277bd}.game-phase.battle{background:#f3e5f5;color:#6a1b9a}.game-phase.finished{background:#e0e0e0;color:#616161}.your-turn{background:#4caf50;color:#fff;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:700;animation:pulse 2s infinite}.game-details{display:flex;gap:15px;color:#666;font-size:14px;flex:1;justify-content:center}.game-item button{margin-left:10px}.ship-placement{background:white;border-radius:10px;padding:20px;margin-bottom:20px;box-shadow:0 4px 6px #0000001a}.ship-placement h2{color:#764ba2;margin-bottom:20px;text-align:center}.ship-list{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-bottom:20px}.ship-item{flex:1;min-width:150px}.ship-button{width:100%;padding:10px;background:#f5f5f5;border:2px solid #ddd;border-radius:5px;cursor:pointer;transition:all .2s;font-size:14px}.ship-button:hover:not(:disabled){background:#e0e0e0;border-color:#667eea}.ship-item.selected .ship-button{background:#e3f2fd;border-color:#2196f3;font-weight:700}.ship-item.placed .ship-button{background:#e8f5e9;border-color:#4caf50;cursor:not-allowed;opacity:.7}.placement-controls{background:#f8f9fa;padding:15px;border-radius:8px;text-align:center;margin-bottom:20px}.placement-controls p{margin-bottom:10px;color:#666}.placement-controls strong{color:#333}.button-group{display:flex;gap:10px;justify-content:center;margin-top:15px}.ready-section{background:linear-gradient(135deg,#e3f2fd 0%,#f3e5f5 100%);padding:20px;border-radius:10px;text-align:center;margin-top:20px}.ready-section p{font-size:18px;color:#333;margin-bottom:15px;font-weight:500}.placement-tips{background:#fff3e0;padding:15px;border-radius:8px;border-left:4px solid #ff9800}.placement-tips h3{color:#e65100;margin-bottom:10px;font-size:16px}.placement-tips ul{list-style-position:inside;color:#666;line-height:1.6}.placement-tips li{margin-bottom:5px;font-size:14px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}.modal-content{background:white;padding:30px;border-radius:15px;max-width:400px;width:90%;position:relative;animation:slideUp .3s ease;box-shadow:0 10px 40px #0000004d}.modal-content.result{text-align:center;padding:40px}.close-button{position:absolute;top:10px;right:10px;background:transparent;border:none;font-size:30px;cursor:pointer;color:#999;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.close-button:hover{background:#f0f0f0;color:#333}.modal-content h2{color:#764ba2;margin-bottom:20px;text-align:center}.problem{font-size:32px;text-align:center;padding:20px;background:#f8f9fa;border-radius:10px;margin-bottom:20px;font-weight:700;color:#333;letter-spacing:2px}.answer-input{width:100%;padding:15px;font-size:24px;text-align:center;border:2px solid #ddd;border-radius:8px;margin-bottom:20px}.answer-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.button-group{display:flex;gap:10px;justify-content:center}.correct,.incorrect{font-size:28px;font-weight:700;margin-bottom:15px}.correct{color:#4caf50}.incorrect{color:#f44336}.modal-content.result p{color:#666;font-size:16px}.modal-content.result strong{color:#333;font-size:20px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}.game-status{background:white;border-radius:10px;padding:20px;margin-bottom:20px;box-shadow:0 4px 6px #0000001a}.game-status h2{color:#764ba2;margin-bottom:15px;text-align:center}.game-status.waiting{text-align:center}.game-code-display{font-size:36px;font-weight:700;letter-spacing:4px;color:#667eea;background:#f0f4ff;padding:20px;border-radius:10px;margin:20px 0;font-family:Courier New,monospace}.status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px}.status-item{background:#f8f9fa;padding:10px;border-radius:8px;display:flex;flex-direction:column;align-items:center}.status-item .label{color:#666;font-size:12px;margin-bottom:5px}.status-item .value{color:#333;font-size:18px;font-weight:700}.turn-indicator{text-align:center;font-size:24px;font-weight:700;padding:15px;border-radius:8px;margin-bottom:15px}.turn-indicator.your-turn{background:linear-gradient(135deg,#4caf50,#8bc34a);color:#fff;animation:pulse-green 2s infinite}.turn-indicator.opponent-turn{background:linear-gradient(135deg,#ff9800,#ffc107);color:#fff}.battle-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}.stat{background:#f8f9fa;padding:10px;border-radius:6px;text-align:center}.stat .label{display:block;color:#666;font-size:11px;margin-bottom:3px}.stat .value{display:block;color:#333;font-size:20px;font-weight:700}.game-over{text-align:center;padding:30px;border-radius:15px;animation:celebrate .5s ease}.game-over.victory{background:linear-gradient(135deg,#4caf50,#8bc34a);color:#fff}.game-over.defeat{background:linear-gradient(135deg,#f44336,#ff6b6b);color:#fff}.game-over h2{font-size:36px;margin-bottom:10px;color:#fff}.game-over p{font-size:18px}@keyframes pulse-green{0%{box-shadow:0 0 #4caf50b3}50%{box-shadow:0 0 0 10px #4caf5000}to{box-shadow:0 0 #4caf5000}}@keyframes celebrate{0%{transform:scale(.9);opacity:0}50%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);min-height:100vh;color:#333}.app{max-width:1400px;margin:0 auto;padding:20px}header{background:white;border-radius:10px;padding:20px;margin-bottom:20px;box-shadow:0 4px 6px #0000001a}header h1{color:#764ba2;margin-bottom:10px}.game-info{display:flex;gap:30px;font-size:14px;color:#666}.game-info strong{color:#333;font-weight:600}.error-banner{background:#ff6b6b;color:#fff;padding:12px 20px;border-radius:8px;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center;animation:slideDown .3s ease}.error-banner button{background:transparent;border:none;color:#fff;font-size:24px;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center}.game-boards{display:flex;gap:30px;justify-content:center;flex-wrap:wrap}.board-container{background:white;padding:20px;border-radius:10px;box-shadow:0 4px 6px #0000001a}.board-container h2{color:#764ba2;margin-bottom:15px;text-align:center}.btn-primary{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border:none;padding:10px 20px;border-radius:5px;font-size:16px;cursor:pointer;transition:transform .2s}.btn-primary:hover{transform:translateY(-2px)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:#e0e0e0;color:#333;border:none;padding:10px 20px;border-radius:5px;font-size:16px;cursor:pointer;transition:background .2s}.btn-secondary:hover{background:#d0d0d0}.btn-large{padding:15px 30px;font-size:18px}.btn-home{background:rgba(255,255,255,.9);color:#764ba2;border:1px solid #764ba2;padding:8px 16px;border-radius:5px;font-size:14px;cursor:pointer;transition:all .2s;font-weight:500}.btn-home:hover{background:#764ba2;color:#fff}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}
