.game-topline,.duel-roundline{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin:22px 0;color:var(--muted);font-size:13px}.game-tag{color:var(--gold);letter-spacing:.1em;font-size:11px;font-weight:700}.boom-layout{align-items:start;grid-template-columns:minmax(180px,.7fr) minmax(0,1fr) minmax(0,1fr);gap:22px}.board-wrap{min-width:0}.field-label{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.field-label span,.board-hint{font-size:11px;color:var(--muted)}.game-grid{padding:5px;gap:3px;aspect-ratio:1}.game-grid .cell{padding:0;min-width:0;aspect-ratio:1;border:1px solid #353d31;border-radius:2px;background:#172118;color:#e9e9df;display:grid;place-items:center;font-size:clamp(11px,1.4vw,21px);line-height:1}.game-grid .cell.occupied{background:#75601e;border-color:#e6b641;color:#fff2c2}.game-grid .cell.hit{background:#7c322b;border-color:#ed8274;color:#fff;font-weight:800}.game-grid .cell.miss{background:#252a28;color:#b4c0b8;font-size:23px}.game-grid .cell.preview{outline:2px solid var(--gold);outline-offset:-2px}.game-grid .cell.invalid{outline:2px solid #ff7268;outline-offset:-2px}.game-grid .cell:disabled{cursor:default;opacity:1}.game-grid .cell:not(:disabled):hover{border-color:var(--gold);background:#4e4926}.game-grid .cell:focus-visible{outline:2px solid white;outline-offset:0;z-index:1}.squad #fleet-options{display:grid;gap:6px;margin-bottom:16px}.fleet-option{display:flex;justify-content:space-between;gap:10px;text-align:left;background:#171717;border:1px solid #333;border-radius:4px;padding:10px;color:#ddd;width:100%;font-size:12px}.fleet-option[aria-pressed=true]{border-color:var(--gold);color:var(--gold)}.fleet-option:disabled{opacity:.5}.squad .button{font-size:12px;width:100%;margin:7px 0 0}.game-status{padding:16px 18px;border-left:3px solid var(--gold);background:#17150f;line-height:1.6;font-size:14px;margin:24px 0 0}.game-status[data-kind=error]{border-color:#ed8274;background:#251714}.game-status[data-kind=win]{border-color:#8cd09a;background:#142219}.game-panel{border:1px solid var(--line);border-radius:8px;background:#121212;padding:28px;margin:20px 0}.game-panel h3{font-size:28px;margin:8px 0 18px}.game-panel .button{margin:10px 8px 0 0}.search-ball{font-size:40px;color:var(--gold);display:inline-block;animation:game-spin 2s linear infinite}.round-clock{display:grid;place-items:center;width:64px;height:64px;border:3px solid var(--gold);border-radius:50%;color:var(--gold);font-size:24px;font-variant-numeric:tabular-nums}.round-clock.urgent{border-color:#ed8274;color:#ed8274}#duel-controls{border:0;padding:24px 0;margin:0;min-width:0}#duel-controls legend{padding-top:22px;font-weight:600}.action-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0 24px}.action-card{display:grid;text-align:left;gap:12px;padding:22px;color:white;background:#141414;border:1px solid #363636;border-radius:6px}.action-card>span{font-size:26px;color:var(--gold)}.action-card strong{font-size:22px}.action-card small{color:var(--muted);line-height:1.4}.action-card[aria-pressed=true]{border-color:var(--gold);background:#242012}.action-card:disabled{cursor:default}.tp-label{display:flex;justify-content:space-between;gap:10px}.tp-label output{color:var(--gold);font-weight:700}#duel-tp{display:block;width:100%;accent-color:var(--gold);margin:22px 0 30px;height:24px}#duel-confirm{min-width:230px}#duel-reveal{border-color:var(--gold);line-height:1.7}#duel-history{padding-left:20px;line-height:1.7;color:var(--muted)}.duel-history{margin-top:26px}#duel-reconnect{margin-top:16px}.game-panel[hidden],[hidden]{display:none!important}button:disabled{cursor:not-allowed}.night-pitch .find-opponent{max-width:90%}
@keyframes game-spin{to{transform:rotate(360deg)}}@media(max-width:1250px){.boom-layout{grid-template-columns:1fr 1fr}.squad{grid-column:1/-1}.squad #fleet-options{grid-template-columns:repeat(2,1fr)}.squad .button{width:auto;margin-right:8px}}@media(max-width:560px){.boom-layout{grid-template-columns:1fr}.squad #fleet-options{grid-template-columns:1fr}.squad .button{width:100%;margin-right:0}.game-grid .cell{font-size:20px}.action-card{padding:14px}.action-card strong{font-size:18px}.action-card small{font-size:11px}.game-panel{padding:18px}.duel-roundline{font-size:12px}.round-clock{width:50px;height:50px}.night-score{padding:20px 12px}.game-status{font-size:13px}#duel-confirm{width:100%;min-width:0}.game-topline{line-height:1.7}}
@media(prefers-reduced-motion:reduce){.search-ball{animation:none}}
#duel-reveal:not([hidden]){animation:reveal-result 2s ease-out}@keyframes reveal-result{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){#duel-reveal:not([hidden]){animation:none}}
.game-grid .cell.own-hit{box-shadow:inset 0 0 0 3px #ffb09f,0 0 10px rgba(237,130,116,.55)}
.game-grid .cell.enemy-hit{box-shadow:inset 0 0 0 3px #ffe08a,0 0 10px rgba(230,182,65,.55)}
