
:root{
  --bg:#07111f;
  --bg2:#0a1a2b;
  --panel:#10243a;
  --panel2:#15304c;
  --border:#264764;
  --text:#f5fbff;
  --muted:#8fb0c9;
  --sea:#0e4f74;
  --sea2:#0b668c;
  --ship:#74899b;
  --hit:#ff4d4f;
  --miss:#a8d8f0;
  --sunk:#7f1d1d;
  --accent:#22c55e;
  --yellow:#fbbf24;
}
*{box-sizing:border-box}
body{
  margin:0;
  font-family:Inter,Segoe UI,Arial,sans-serif;
  background:linear-gradient(180deg,var(--bg),var(--bg2));
  color:var(--text);
}
button,a{font:inherit}
button{cursor:pointer}
.topbar{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:center;
  padding:24px max(18px,calc((100% - 1480px)/2));
  border-bottom:1px solid var(--border);
  background:#091625;
}
.topbar h1{margin:4px 0 6px;font-size:clamp(26px,4vw,40px)}
.topbar p{margin:0;color:var(--muted)}
.eyebrow{font-size:12px;letter-spacing:.16em;color:#67e8f9;font-weight:800}
.header-actions{display:flex;gap:8px;flex-wrap:wrap}
.header-actions a{
  text-decoration:none;color:var(--text);padding:9px 12px;border-radius:9px;border:1px solid var(--border);background:var(--panel)
}
.header-actions a.active{border-color:#67e8f9;color:#67e8f9}
.game-shell{
  max-width:1480px;
  margin:auto;
  display:grid;
  grid-template-columns:300px minmax(0,1fr);
  gap:20px;
  padding:22px;
}
.panel{
  background:rgba(16,36,58,.96);
  border:1px solid var(--border);
  border-radius:18px;
  padding:17px;
}
.sidebar{align-self:start}
h2,h3{margin-top:0}
.fleet-list{display:grid;gap:8px}
.fleet-list div{
  display:flex;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:10px;background:var(--panel2);border:1px solid var(--border)
}
.setup-actions{display:grid;gap:9px;margin-top:16px}
.setup-actions button,.ship-selector button,.bottom-actions button{
  border:1px solid var(--border);background:var(--panel2);color:var(--text);padding:11px 12px;border-radius:10px
}
.primary{background:var(--accent)!important;color:#052e16!important;border-color:transparent!important;font-weight:800}
.danger{background:#ef4444!important;color:white!important;border-color:transparent!important;font-weight:800}
button:disabled{opacity:.45;cursor:not-allowed}
.ship-selector{margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}
.ship-selector p,.rules p{font-size:13px;color:var(--muted);line-height:1.45}
.ship-selector{display:grid;gap:8px}
.ship-selector button.selected{border-color:var(--yellow);color:var(--yellow)}
.status-card{margin-top:16px;padding:12px;background:var(--panel2);border:1px solid var(--border);border-radius:10px}
.status-card span{display:block;font-size:11px;color:var(--muted)}
.status-card strong{display:block;margin-top:3px}
.rules{margin-top:17px;padding-top:15px;border-top:1px solid var(--border)}
.battle-area{display:grid;gap:16px;min-width:0}
.score-panel{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.score-item{background:var(--panel2);border:1px solid var(--border);border-radius:11px;padding:11px}
.score-item span{display:block;color:var(--muted);font-size:12px}
.score-item strong{font-size:22px;display:block;margin-top:4px}
.message{color:var(--muted)}
.message.good{border-color:var(--accent);color:#bbf7d0}
.message.bad{border-color:#ef4444;color:#fecaca}
.boards{display:grid;grid-template-columns:1fr 1fr;gap:16px;min-width:0}
.board-title{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.board-title span{font-size:11px;color:var(--muted);letter-spacing:.12em}
.board-title h2{margin:3px 0 12px}
.board-title strong{font-size:12px;color:#67e8f9}
.grid-wrap{overflow:auto}
.coords-top{
  display:grid;
  grid-template-columns:28px repeat(10,38px);
  width:max-content;
  margin:auto 0;
  color:var(--muted);
  font-size:12px;
  text-align:center;
}
.coords-top span{height:24px;display:grid;place-items:center}
.board-grid{
  display:grid;
  grid-template-columns:28px repeat(10,38px);
  grid-template-rows:repeat(10,38px);
  gap:3px;
  width:max-content;
}
.row-label{display:grid;place-items:center;color:var(--muted);font-size:12px}
.cell{
  width:38px;height:38px;border-radius:7px;border:1px solid #1b799e;
  background:linear-gradient(145deg,var(--sea2),var(--sea));
  color:white;display:grid;place-items:center;font-weight:900;padding:0;
  box-shadow:inset 0 0 12px rgba(255,255,255,.04)
}
.cell:hover{filter:brightness(1.12)}
.cell.ship{background:linear-gradient(145deg,#879baa,var(--ship));border-color:#a8bac8}
.cell.miss::after{content:"•";font-size:30px;color:var(--miss);line-height:1}
.cell.hit{background:#7f1d1d;border-color:#ef4444}
.cell.hit::after{content:"✕";color:#fff;font-size:22px}
.cell.sunk{background:#3f0a0a;border-color:#ff7373}
.cell.sunk::after{content:"☠";font-size:19px}
.cell.preview{outline:2px solid var(--yellow);filter:brightness(1.2)}
.cell.invalid{outline:2px solid #ef4444}
.enemy .cell:not(.miss):not(.hit):not(.sunk){cursor:crosshair}
.legend{display:flex;gap:18px;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.legend-box{display:inline-block;width:16px;height:16px;border-radius:4px;margin-right:5px;vertical-align:-3px;border:1px solid var(--border)}
.legend-box.ship{background:var(--ship)}.legend-box.miss{background:var(--miss)}.legend-box.hit{background:var(--hit)}.legend-box.sunk{background:var(--sunk)}
.bottom-actions{display:flex;justify-content:center}
footer{text-align:center;padding:20px;color:var(--muted);font-size:12px}
@media(max-width:1080px){
  .game-shell{grid-template-columns:1fr}
  .boards{grid-template-columns:1fr}
}
@media(max-width:700px){
  .score-panel{grid-template-columns:1fr 1fr}
  .game-shell{padding:10px}
}
@media(max-width:480px){
  .score-panel{grid-template-columns:1fr}
  .coords-top{grid-template-columns:24px repeat(10,32px)}
  .board-grid{grid-template-columns:24px repeat(10,32px);grid-template-rows:repeat(10,32px)}
  .cell{width:32px;height:32px;border-radius:5px}
}
