.app-dock{position:fixed;z-index:120;left:50%;bottom:max(10px,env(safe-area-inset-bottom));transform:translate(-50%);display:flex;align-items:center;justify-content:center;gap:10px;padding:8px 14px;background:#0a1628e0;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(232,238,247,.14);border-radius:999px;box-shadow:0 4px 18px #00000059}.app-dock-btn{display:inline-flex;align-items:center;justify-content:center;width:50px;height:50px;min-width:50px;padding:0;border-radius:50%;background:#1a2d4af2;color:var(--text);border:1px solid rgba(232,238,247,.16);box-shadow:0 2px 8px #0003;font-size:1.15rem;line-height:1}.app-dock-btn:hover:not(:disabled){background:#2d8cf059}.app-dock-btn:active:not(:disabled){transform:scale(.96)}.app-dock-btn-icon{font-size:1.2rem;line-height:1}.app-dock-help{font-weight:700;font-size:1.25rem}.app-dock-leave:hover:not(:disabled){background:#e74c3c59;border-color:#e74c3c73}.app-dock-ready:hover:not(:disabled){background:#2ecc714d;border-color:#2ecc7173}.app-dock-ready:disabled{opacity:.45}.app-dock-emoji.on-cooldown{color:var(--text-muted);opacity:.75}.app-dock-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:130;display:flex;align-items:flex-end;justify-content:center;padding:16px;padding-bottom:max(80px,calc(74px + env(safe-area-inset-bottom)));background:#040a148c}.app-dock-popover{width:min(100%,360px);max-height:min(72vh,520px);display:flex;flex-direction:column;padding:18px 20px;background:var(--surface);border:1px solid rgba(232,238,247,.12);border-radius:var(--radius);box-shadow:0 8px 32px #00000073}.app-dock-popover-body{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.app-dock-popover-divider{border:none;border-top:1px solid rgba(232,238,247,.12);margin:14px 0}.app-dock-help-page{font-size:.88rem;color:var(--text);line-height:1.55}.app-dock-help-heading{font-size:.92rem;font-weight:700;margin:0 0 8px}.app-dock-help-heading+.app-dock-help-heading{margin-top:14px}.app-dock-help-page p{margin:0 0 10px;color:var(--text-muted)}.app-dock-help-list{margin:0 0 10px;padding-left:1.25em;color:var(--text-muted)}.app-dock-help-list li+li{margin-top:6px}.app-dock-help-page strong{color:var(--text);font-weight:600}.app-dock-popover-title{font-size:1rem;font-weight:700;margin-bottom:12px}.app-author-content{font-size:.88rem;color:var(--text-muted);line-height:1.55}.app-author-content p+p{margin-top:8px}.app-author-content a{color:var(--accent);text-decoration:none}.app-author-content a:hover{text-decoration:underline}.app-dock-popover-close{width:100%;margin-top:16px}.sound-toggle{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;font-size:.85rem;font-weight:600;background:var(--surface2);color:var(--text);min-width:auto;align-self:flex-end}.sound-toggle-icon{font-size:1rem;line-height:1}.sound-toggle-label{line-height:1}.app-toolbar{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-bottom:8px}.battle-audio-row{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:10px}.game-leave-bar{margin-top:20px}.emoji-reaction-root{position:relative}.float-badge-emoji{border-color:#2d8cf080}.float-badge-emoji.on-cooldown{border-color:#8fa3bf59;color:var(--text-muted)}.emoji-picker{position:absolute;z-index:140;display:grid;grid-template-columns:repeat(5,1fr);gap:4px;padding:8px;border-radius:14px;background:#0a1628f0;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(232,238,247,.2);box-shadow:0 8px 24px #00000059;right:0;top:calc(100% + 8px);width:max-content;max-width:min(240px,70vw)}.battle-float-badges.corner-top-left .emoji-picker,.battle-float-badges.corner-bottom-left .emoji-picker{right:auto;left:0}.battle-float-badges.corner-bottom-right .emoji-picker,.battle-float-badges.corner-bottom-left .emoji-picker{top:auto;bottom:calc(100% + 8px)}.emoji-reaction-root.dock .emoji-picker{top:auto;bottom:calc(100% + 12px);left:50%;right:auto;transform:translate(-50%);z-index:140}.emoji-picker-item{width:40px;height:40px;min-width:auto;padding:0;border-radius:10px;background:#1a2d4acc;font-size:1.35rem;line-height:1;display:flex;align-items:center;justify-content:center}.emoji-picker-item:hover:not(:disabled){background:#2d8cf059}.emoji-picker-item:active{transform:scale(.94)}.emoji-reaction-overlay{pointer-events:none;z-index:30;display:flex;align-items:center;justify-content:center}.emoji-reaction-overlay.variant-board{position:absolute;top:0;right:0;bottom:0;left:0}.emoji-reaction-overlay.variant-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200}.emoji-reaction-burst{font-size:clamp(3rem,18vw,5.5rem);line-height:1;animation:emoji-burst 3s ease-out forwards;filter:drop-shadow(0 4px 16px rgba(0,0,0,.45))}@keyframes emoji-burst{0%{opacity:0;transform:scale(.35)}12%{opacity:1;transform:scale(1.15)}28%{transform:scale(1.45)}55%{opacity:1;transform:scale(1.25)}to{opacity:0;transform:scale(1.6)}}.board-with-emoji{position:relative}.finished-emoji-action{margin-top:8px;justify-content:center}.finished-emoji-action .emoji-reaction-root{display:inline-block}.finished-emoji-action .float-badge{width:auto;min-width:54px;height:48px;border-radius:24px;flex-direction:row;gap:6px;padding:0 14px}.finished-emoji-action .float-badge-text{max-width:none;font-size:.72rem}.finished-emoji-action .emoji-picker{left:50%;right:auto;transform:translate(-50%);top:calc(100% + 8px)}.battle-float-badges{position:fixed;z-index:120;display:flex;flex-direction:column;gap:4px;touch-action:none;-webkit-user-select:none;user-select:none}.battle-float-badges.corner-top-right{top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));align-items:flex-end}.battle-float-badges.corner-top-left{top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));align-items:flex-start}.battle-float-badges.corner-bottom-right{bottom:max(12px,env(safe-area-inset-bottom));right:max(12px,env(safe-area-inset-right));align-items:flex-end;flex-direction:column-reverse}.battle-float-badges.corner-bottom-left{bottom:max(12px,env(safe-area-inset-bottom));left:max(12px,env(safe-area-inset-left));align-items:flex-start;flex-direction:column-reverse}.battle-float-badges.dragging{opacity:.92}.float-badges-handle{width:54px;height:22px;border-radius:11px;background:#0a1628a6;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid rgba(232,238,247,.15);color:var(--text-muted);font-size:.75rem;line-height:1;cursor:grab;padding:0;min-width:auto;touch-action:none}.float-badges-handle:active{cursor:grabbing}.float-badges-stack{display:flex;flex-direction:column;gap:8px;min-height:240px}.float-badge{width:54px;height:54px;border-radius:50%;background:#0a1628b8;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid rgba(232,238,247,.18);box-shadow:0 2px 10px #00000040;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:4px;text-align:center;color:var(--text);flex-shrink:0}.float-badge.empty{opacity:.45}.float-badge-icon{font-size:1.15rem;line-height:1}.float-badge-icon.dim{font-size:1rem;opacity:.5}.float-badge-text{font-size:.58rem;font-weight:700;line-height:1.1;max-width:46px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.float-badge-text.dim{opacity:.55}.float-badge-turn.mine{border-color:#2ecc71cc;background:#2f7a54eb;color:#ecfbf2;box-shadow:0 0 14px #2ecc7166}.float-badge-turn.opponent{border-color:#b4584eb3;background:#6e2a30e0;color:#f8e8e6;box-shadow:0 0 12px #a0464147}.float-badge-shot.shot-miss{border-color:#8fa3bf66}.float-badge-shot.shot-hit{border-color:#e74c3c80}.float-badge-shot.shot-sunk{border-color:#f39c128c}.float-badge-timer{border-color:#f39c1266;color:var(--warning)}.float-badge-timer .float-badge-text{font-size:.62rem}button.float-badge{cursor:pointer;font:inherit;-moz-appearance:none;appearance:none;-webkit-appearance:none}button.float-badge:disabled{opacity:.4;cursor:not-allowed}button.float-badge:not(:disabled):active{transform:scale(.96)}.float-badge-action.float-badge-orient{border-color:#2d8cf080}.float-badge-action.float-badge-reset{border-color:#e74c3c73}.placement-float-stack{min-height:auto}.battle-status-badges{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;width:100%;max-width:min(100%,520px);margin:12px auto 0;padding:0 4px}.battle-status-badges .float-badge{width:auto;min-width:54px;height:48px;border-radius:24px;flex-direction:row;gap:6px;padding:0 12px}.battle-status-badges .float-badge-text{max-width:7rem;font-size:.72rem}.battle-status-badges .float-badge-timer .float-badge-text{font-size:.72rem}.float-badge-offline{border-color:#f39c128c;color:var(--warning)}.board{display:flex;flex-direction:column;gap:var(--board-gap, 2px);width:100%;max-width:100%}.board-row{display:grid;grid-template-columns:minmax(18px,6.5%) repeat(10,minmax(0,1fr));gap:var(--board-gap, 2px);width:100%}.board-corner{aspect-ratio:1;min-width:0}.board-header{display:flex;align-items:center;justify-content:center;aspect-ratio:1;min-width:0;font-size:clamp(.5rem,2.4vw,.7rem);color:var(--text-muted)}.cell{width:100%;aspect-ratio:1;min-width:0;min-height:0;padding:0;background:var(--surface2);border-radius:3px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.cell.clickable{cursor:pointer}.cell.clickable:hover:not(:disabled){background:#2d8cf04d}.cell.ship{background:var(--ship-intact)}.cell.highlight{background:#2d8cf066}.cell.miss{background:var(--surface)}.cell.miss:after{content:"•";color:var(--text-muted);font-size:clamp(.7rem,3vw,1.2rem)}.cell.miss.auto{background:#64788c59}.cell.miss.auto:after{content:"○";color:var(--text-muted);font-size:clamp(.55rem,2.5vw,.85rem);opacity:.85}.cell.hit{background:var(--danger)}.cell.hit:after{content:"✕";color:#fff;font-size:clamp(.65rem,2.8vw,.9rem)}.cell.sunk{background:#922b21}.cell.sunk:after{content:"✕";color:#fff;font-size:clamp(.65rem,2.8vw,.9rem)}.cell.disabled{opacity:.6;cursor:not-allowed}.battle-boards-stage{flex:1;display:flex;flex-direction:column;justify-content:center;min-height:0;width:100%}.battle-boards-viewport{container-type:inline-size;width:100%;overflow:hidden;flex:0 1 auto;min-height:0;touch-action:pan-y}.battle-boards-track{display:flex;width:max-content;transition:transform .5s cubic-bezier(.4,0,.2,1);will-change:transform}.battle-boards-track.show-opponent{transform:translate(0)}.battle-boards-track.show-mine{transform:translate(-100cqw)}.battle-board-slide{flex:0 0 100cqw;width:100cqw;padding:0 8px;box-sizing:border-box;transition:opacity .35s ease;display:flex;flex-direction:column;align-items:center}.battle-board-slide:not(.active){opacity:.72}.battle-board-slide.active{opacity:1}.battle-board-slide .board-with-emoji{width:100%;max-width:min(100%,520px)}.battle-board-slide .board-wrapper{max-width:min(100%,520px);margin:0 auto}@media(orientation:landscape){.battle-board-slide{flex-basis:84cqw;width:84cqw}.battle-boards-track.show-mine{transform:translate(-68cqw)}.battle-board-slide:not(.active){opacity:.8}}.battle-boards-stage .battle-status-badges{flex-shrink:0}@media(prefers-reduced-motion:reduce){.battle-boards-track,.battle-board-slide{transition:none}}.join-code-block{margin:16px 0}.join-code-label{margin:0 0 8px;font-size:.9rem;color:var(--text-muted);text-align:center}.join-code-display{font-family:ui-monospace,Cascadia Code,SF Mono,Menlo,monospace;font-size:clamp(1.75rem,8vw,2.25rem);font-weight:700;letter-spacing:.28em;text-indent:.28em;text-align:center;padding:14px 12px;background:var(--surface2);border-radius:var(--radius);border:1px solid rgba(255,255,255,.08);-webkit-user-select:all;user-select:all}.join-code-input{font-family:ui-monospace,Cascadia Code,SF Mono,Menlo,monospace;font-size:1.5rem;font-weight:600;letter-spacing:.2em;text-align:center;text-transform:uppercase}.placement-panel{width:100%;display:flex;flex-direction:column;gap:8px}.placement-dock{background:var(--surface);border-radius:var(--radius);padding:6px 8px}.placement-dock-ships{display:flex;flex-wrap:wrap;gap:5px 6px;justify-content:center;align-items:center}.dock-ship-body{display:flex;gap:2px;cursor:grab;touch-action:none;padding:2px;border-radius:6px;border:2px solid transparent}.dock-ship-body:active{cursor:grabbing}.dock-ship-body.dragging{opacity:.45;border-color:var(--accent)}.dock-cell{width:clamp(12px,3.2vw,18px);height:clamp(12px,3.2vw,18px);background:var(--ship-intact);border-radius:3px;flex-shrink:0}.placement-board-area{touch-action:none}.placement-footer{display:flex;flex-direction:column;gap:8px;margin-top:4px}.placement-timer{font-size:1.1rem;font-weight:700;color:var(--warning);text-align:center}.placement-hint{font-size:.8rem;color:var(--text-muted);text-align:center;margin:0}.placement-toolbar{display:flex;gap:8px;flex-wrap:wrap}.placement-toolbar button{flex:1;min-width:0;padding:10px 12px;font-size:.9rem}.cell.preview-valid{background:#2ecc7173}.cell.preview-invalid{background:#e74c3c73}.cell.ship-draggable{cursor:grab;touch-action:none}.cell.ship-draggable:active{cursor:grabbing}.cell.ship-dragging-source{opacity:.35}.drag-ghost{position:fixed;pointer-events:none;z-index:200;display:flex;flex-direction:row;gap:3px;opacity:.9;transform:translate(-50%,-50%)}.drag-ghost.vertical{flex-direction:column}.drag-ghost .dock-cell{width:clamp(18px,5vw,28px);height:clamp(18px,5vw,28px);box-shadow:0 4px 12px #0006}.demo-chrome{position:sticky;top:0;z-index:200;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;background:linear-gradient(90deg,#5c4a00,#8a6d00);color:#fff8e1;font-size:.85rem;border-bottom:1px solid rgba(255,255,255,.2)}.demo-chrome strong{font-weight:700}.demo-chrome a{color:#ffe082;text-decoration:none;font-weight:600}.demo-chrome a:hover{text-decoration:underline}.demo-chrome-nav{display:flex;flex-wrap:wrap;gap:10px}.demo-page{min-height:100dvh}.demo-index-list{list-style:none;margin-top:16px;display:flex;flex-direction:column;gap:12px}.demo-index-list li{display:flex;flex-direction:column;gap:4px;padding:10px 12px;background:var(--surface2);border-radius:var(--radius)}.demo-index-list a{color:var(--accent);font-weight:600;text-decoration:none}.demo-index-list a:hover{text-decoration:underline}.demo-index-desc{font-size:.85rem;color:var(--text-muted)}.demo-captcha-placeholder{padding:12px;text-align:center;background:var(--surface2);border-radius:var(--radius);color:var(--text-muted);font-size:.9rem;border:1px dashed var(--text-muted)}.home-app{padding-top:0;position:relative}.home-splash{position:relative;width:calc(100% + 24px);margin:0 -12px;aspect-ratio:16 / 10;min-height:200px;max-height:42vh;overflow:hidden;border-radius:0 0 var(--radius) var(--radius)}.home-splash-img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 40%}.home-splash-shade{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0a162826,#0a16280d 35%,#0a16288c 72%,#0a1628eb),radial-gradient(ellipse 80% 60% at 50% 100%,rgba(19,34,56,.4),transparent);pointer-events:none}.home-splash-caption{position:absolute;left:0;right:0;bottom:0;padding:16px 20px 18px;text-align:center}.home-title{margin-bottom:4px;text-shadow:0 2px 12px rgba(0,0,0,.75)}.home-subtitle{margin-bottom:0;text-shadow:0 1px 8px rgba(0,0,0,.7)}.home-card{margin-top:12px}.home-main-actions{margin-top:16px}.home-action-link{display:block;width:100%;text-decoration:none}.home-action-link button{width:100%}.rules-card{max-width:520px;margin:0 auto}.rules-section{margin-bottom:20px}.rules-section h2{font-size:1.05rem;font-weight:700;margin-bottom:10px;color:var(--text)}.rules-list{margin:0;padding-left:1.25rem;color:var(--text);font-size:.92rem;line-height:1.55}.rules-list li{margin-bottom:8px}.rules-list li:last-child{margin-bottom:0}.rules-home-actions{margin-top:4px}.cannon-shot-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:90;overflow:hidden}.naval-cannon{position:fixed;width:56px;height:44px;z-index:91;transform-origin:50% 80%}.naval-cannon--mine{transform:scaleX(-1)}.naval-cannon--firing{animation:cannon-recoil .35s ease-out}.naval-cannon-svg{width:100%;height:100%;display:block;filter:drop-shadow(0 2px 4px rgba(0,0,0,.45))}.naval-cannon-barrel{transform-origin:28px 24px;animation:cannon-barrel-kick .35s ease-out}@keyframes cannon-recoil{0%{transform:scaleX(var(--cannon-flip, 1)) translateY(0)}15%{transform:scaleX(var(--cannon-flip, 1)) translateY(2px) rotate(-4deg)}to{transform:scaleX(var(--cannon-flip, 1)) translateY(0) rotate(0)}}.naval-cannon--mine.naval-cannon--firing{--cannon-flip: -1}.naval-cannon--opponent.naval-cannon--firing{--cannon-flip: 1}@keyframes cannon-barrel-kick{0%{transform:rotate(0)}20%{transform:rotate(-8deg)}to{transform:rotate(0)}}.cannonball-flight{position:fixed;left:var(--start-x);top:var(--start-y);width:0;height:0;z-index:92;animation:cannonball-flight var(--flight-ms) cubic-bezier(.25,.1,.35,1) forwards}.cannonball-trail-svg{position:absolute;left:0;top:0;width:1px;height:1px;overflow:visible;z-index:0;pointer-events:none}.cannonball-core{position:absolute;left:0;top:0;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#4a4a4a,#1a1a1a 55%,#000);box-shadow:inset -2px -3px 4px #ffffff26,0 2px 6px #00000080;z-index:1}@keyframes cannonball-flight{0%{left:var(--start-x);top:var(--start-y)}to{left:var(--end-x);top:var(--end-y)}}@media(prefers-reduced-motion:reduce){.cannon-shot-layer{display:none}}:root{--bg: #0a1628;--surface: #132238;--surface2: #1a2d4a;--accent: #2d8cf0;--accent-hover: #1a6fd4;--text: #e8eef7;--text-muted: #8fa3bf;--success: #2ecc71;--ship-intact: #2f7a54;--danger: #e74c3c;--warning: #f39c12;--board-gap: 2px;--radius: 12px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);min-height:100dvh;line-height:1.5;overflow-x:hidden}#root{min-height:100dvh}button{font:inherit;cursor:pointer;border:none;border-radius:var(--radius);padding:12px 20px;background:var(--accent);color:#fff;font-weight:600;transition:background .15s}button:hover:not(:disabled){background:var(--accent-hover)}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:var(--surface2);color:var(--text)}button.danger{background:var(--danger)}input{font:inherit;padding:12px 16px;border-radius:var(--radius);border:1px solid var(--surface2);background:var(--surface);color:var(--text);width:100%}.app{width:100%;max-width:480px;margin:0 auto;padding:12px;padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));padding-bottom:max(88px,calc(78px + env(safe-area-inset-bottom)));min-height:100dvh;display:flex;flex-direction:column;overflow-x:hidden}.app.app--battle{max-width:none;padding-left:max(4px,env(safe-area-inset-left));padding-right:max(4px,env(safe-area-inset-right));overflow:hidden}.app-battle-stage{flex:1;display:flex;flex-direction:column;justify-content:center;min-height:0;width:100%}.app-author-content .app-author-version{opacity:.75}.app-author-content .app-author-sep{opacity:.45}.app-author-content .app-author-name,.app-author-content .app-author-stats{opacity:.85}.card{background:var(--surface);border-radius:var(--radius);padding:20px;margin-bottom:16px}.title{font-size:1.5rem;font-weight:700;margin-bottom:8px}.subtitle{color:var(--text-muted);margin-bottom:20px;font-size:.95rem}.home-rules-action{margin-bottom:16px;justify-content:center}.home-rules-link{text-decoration:none;display:inline-block}.home-notice{text-align:center;padding:12px 14px;margin-bottom:16px;background:#f39c1226;border:1px solid rgba(243,156,18,.35);border-radius:var(--radius);color:var(--text);font-size:.92rem}.error{color:var(--danger);margin:8px 0;font-size:.9rem}.timer{font-size:1.25rem;font-weight:700;color:var(--warning);text-align:center;margin:8px 0}.status-bar{text-align:center;padding:10px;background:var(--surface2);border-radius:var(--radius);margin-bottom:12px;font-size:.9rem}.link-button{display:inline;padding:0;margin:0;min-width:0;background:none;border:none;color:var(--accent);font-size:inherit;font-weight:600;text-decoration:underline;vertical-align:baseline}.link-button:hover:not(:disabled){color:var(--accent-hover);background:none}.spinner{width:32px;height:32px;border:3px solid var(--surface2);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin:20px auto}@keyframes spin{to{transform:rotate(360deg)}}.invite-qr{display:flex;flex-direction:column;align-items:center;gap:8px;margin:16px 0 8px}.invite-qr-frame{padding:12px;background:#fff;border-radius:var(--radius);box-shadow:0 2px 12px #00000040;color-scheme:only light;line-height:0}.invite-qr-frame img{display:block;width:240px;height:240px;image-rendering:pixelated;image-rendering:crisp-edges;-webkit-optimize-contrast:contrast}.invite-qr-placeholder{background:#fff}.invite-qr-hint{margin:0;font-size:.85rem;color:var(--text-muted)}.link-box{background:var(--surface2);padding:12px;border-radius:var(--radius);word-break:break-all;font-size:.85rem;margin:12px 0}.actions{display:flex;flex-direction:column;gap:10px;margin-top:16px}.actions.row{flex-direction:row;flex-wrap:wrap}.actions.row button{flex:1;min-width:120px}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;font-size:.9rem;color:var(--text-muted)}.boards-container{display:flex;flex-direction:column;gap:16px;width:100%}.board-wrapper{width:100%;max-width:100%}.board-label{text-align:center;font-size:.85rem;color:var(--text-muted);margin-bottom:6px}.fleet-list{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0;justify-content:center}.fleet-chip{padding:6px 12px;background:var(--surface2);border-radius:20px;font-size:.85rem;cursor:pointer;border:2px solid transparent}.fleet-chip.selected{border-color:var(--accent);background:#2d8cf026}.fleet-chip.placed{opacity:.4}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}.overlay-content{background:var(--surface);border-radius:var(--radius);padding:24px;text-align:center;max-width:360px;width:100%}.result-win{color:var(--success);font-size:1.5rem;font-weight:700}.result-lose{color:var(--danger);font-size:1.5rem;font-weight:700}.finished-view{display:flex;flex-direction:column;gap:16px;width:100%}.finished-header{text-align:center}.finished-reveal-hint{margin-top:8px;font-size:.9rem;line-height:1.4}.finished-boards{margin-bottom:16px}.confirm-box{margin-top:16px;padding:14px;background:var(--surface2);border-radius:var(--radius);border:1px solid var(--warning)}.confirm-box p{margin-bottom:12px;font-size:.95rem;line-height:1.4}
