@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.\!visible{visibility:visible!important}.collapse{visibility:collapse}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.start{inset-inline-start:var(--spacing)}.block{display:block}.hidden{display:none}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.border{border-style:var(--tw-border-style);border-width:1px}}:root{--bg:#dbe8e3;--surface:#fbf2dc;--surface-strong:#fffaf0;--ink:#17221f;--muted:#66756e;--line:#bdc9bf;--sea:#1a7189;--sea-dark:#0f4052;--brass:#b98238;--chart:#e3b568;--magenta:#c95593;--red:#b94339;--green:#25764d;--shadow:0 18px 50px #122b3029;--focus-ring:#f3c451;--focus-ring-soft:#f3c4515c;--font-body:"Trebuchet MS", "Segoe UI", system-ui, sans-serif;--font-display:Georgia, "Times New Roman", serif}*{box-sizing:border-box}html,body{min-height:100%;margin:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:radial-gradient(circle at 18% 10%, #e3b5682e, transparent 28%), linear-gradient(135deg, #0f405229, transparent 38%), linear-gradient(315deg, #25764d1f, transparent 32%), var(--bg);color:var(--ink);font-family:var(--font-body)}a{color:inherit;text-decoration:none}button,input{font:inherit}button,.button{background:var(--surface-strong);border:1px solid var(--line);color:var(--ink);cursor:pointer;border-radius:7px;justify-content:center;align-items:center;min-height:42px;padding:0 16px;font-weight:800;transition:background-color .16s,border-color .16s,box-shadow .16s,color .16s,transform .12s;display:inline-flex}button:disabled{cursor:not-allowed;opacity:.55}button:hover:not(:disabled),.button:hover{border-color:var(--sea)}a:focus-visible,button:focus-visible,.button:focus-visible,input:focus-visible,[role=button]:focus-visible{box-shadow:0 0 0 5px var(--focus-ring-soft);outline:3px solid var(--focus-ring);outline-offset:3px}button:active:not(:disabled),.button:active{transform:translateY(1px)scale(.98)}button.primary,.button.primary{background:var(--sea);border-color:var(--sea);color:#fff}button.ghost{background:0 0}input{background:var(--surface-strong);border:1px solid var(--line);color:var(--ink);border-radius:7px;width:100%;min-height:42px;padding:0 12px;transition:border-color .16s,box-shadow .16s}input:focus-visible{border-color:var(--sea)}label{color:var(--muted);gap:7px;font-size:13px;font-weight:800;display:grid}.form-hint{color:var(--muted);font-size:12px;font-weight:700;line-height:1.35}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--font-display);letter-spacing:0;text-wrap:balance}h1{margin-bottom:0;font-size:clamp(28px,4vw,42px)}h2{margin-bottom:10px;font-size:24px}h3{margin-bottom:6px;font-size:18px}p{color:var(--muted);text-wrap:pretty;line-height:1.55}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell{grid-template-columns:280px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:linear-gradient(180deg, #fffaf0f0, #f5ebd3eb), var(--surface);border-right:1px solid var(--line);flex-direction:column;gap:24px;min-height:100vh;padding:24px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;display:flex}.brand-mark{color:var(--sea-dark);background:#f5e5bf;border:1px solid #d7be84;border-radius:8px;justify-content:center;align-items:center;width:44px;height:44px;font-weight:900;display:inline-flex;overflow:hidden;box-shadow:inset 0 -8px 14px #b882382e}.brand-mark img{object-fit:contain;width:39px;height:39px;transform:rotate(-12deg)}.brand strong,.brand small{display:block}.brand small,.sidebar-card small,.muted{color:var(--muted)}.nav-list{gap:8px;display:grid}.nav-link{color:var(--muted);border-radius:7px;padding:12px;font-weight:800}.nav-link:hover,.nav-link.active{color:var(--sea-dark);background:#e8f0e8}.sidebar-card{background:var(--surface-strong);border:1px solid var(--line);border-radius:8px;align-items:center;gap:10px;margin-top:auto;padding:12px;display:flex}.sidebar-card strong,.sidebar-card small{display:block}.status-dot{background:#a9b4b0;border-radius:50%;flex:none;width:10px;height:10px;box-shadow:0 0 0 4px #a9b4b02e}.status-dot.online{background:var(--green);box-shadow:0 0 0 4px #28784a2e}.main-area{padding:28px}.topbar{justify-content:space-between;align-items:end;gap:16px;max-width:1180px;margin:0 auto 22px;display:flex}.eyebrow{color:var(--brass);letter-spacing:0;text-transform:uppercase;margin-bottom:6px;font-size:12px;font-weight:900}.pill{border:1px solid var(--line);color:var(--muted);text-align:center;border-radius:999px;min-width:96px;padding:9px 14px}.pill.live{color:#225d35;background:#e2f3e8;border-color:#8ac39e}.panel,.metric-card{background:linear-gradient(180deg, #fffaf0f5, #f6edd7f0), var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;padding:20px}.auth-layout,.dashboard-grid,.play-grid,.profile-layout,.game-room{max-width:1180px;margin:0 auto}.auth-layout{grid-template-columns:1fr 420px;align-items:center;gap:24px;min-height:calc(100vh - 150px);display:grid}.auth-copy h2{font-size:clamp(34px,6vw,58px);line-height:1}.auth-card,.stack{gap:14px;display:grid}.tabs{grid-template-columns:1fr 1fr;gap:8px;display:grid}.tabs button.active{background:var(--sea-dark);border-color:var(--sea-dark);color:#fff}.divider{background:var(--line);height:1px;margin:4px 0}.form-error{color:var(--red);background:#fff2ef;border:1px solid #e3afa9;border-radius:7px;margin:0;padding:10px 12px}.form-message-slot{min-height:48px}.presence-notice{color:var(--green);background:#eef8f1;border:1px solid #abd8bd;border-radius:7px;margin:0;padding:10px 12px;font-weight:800}.dashboard-grid{gap:18px;display:grid}.hero-panel{background:linear-gradient(125deg, #1a718924, transparent 52%), linear-gradient(315deg, #b982381f, transparent 48%), var(--surface);grid-template-columns:minmax(0,1fr) 390px;gap:22px;display:grid;overflow:hidden}.hero-panel h2{font-size:38px}.hero-actions,.inline-form,.section-header{align-items:center;gap:10px;display:flex}.section-header{justify-content:space-between;margin-bottom:16px}.metrics-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.metric-card{gap:6px;display:grid}.metric-card span,dt{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:900}.metric-card strong{font-size:30px}.metric-card strong,.room-code-block strong,.summary-grid dd,.turn-banner strong,.move-builder-grid dd,.route-step,.last-move-step,.move-history-row span,.move-history-row small,.hex-id,.hex-coords{font-variant-numeric:tabular-nums}.metric-card small{color:var(--muted)}.play-grid{grid-template-columns:1.2fr 1fr;gap:18px;display:grid}.play-card{min-height:230px;position:relative;overflow:hidden}.play-card.featured{grid-row:span 2;gap:14px;display:grid}.play-card.featured .board-preview{margin-bottom:2px}.card-asset{float:right;object-fit:contain;width:74px;height:74px;margin:-4px -2px 8px 14px;transform:rotate(-9deg)}.room-code-block{color:#6f4b14;background:#fff7df;border:1px solid #d7bd87;border-radius:7px;gap:4px;margin-top:12px;padding:10px 12px;display:inline-grid}.room-code-block span{text-transform:uppercase;font-size:11px;font-weight:900}.room-code-block strong{font-size:28px}.status-panel{grid-column:1/-1;align-items:start;gap:12px;display:flex}.board-preview{--hex-w:47px;--hex-h:54px;background:radial-gradient(circle at 25% 22%,#429db094,#0000 21%),linear-gradient(#164e63,#123f52);border:1px solid #0a2e3c9e;border-radius:8px;max-width:100%;padding:18px 12px 22px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff0d,inset 0 -28px 80px #0929374d}.board-preview,.board-preview *{-webkit-user-select:none;user-select:none}.board-preview.compact{--hex-w:24px;--hex-h:28px;padding:12px 8px 14px}.board-water{place-items:center;min-width:0;display:grid}.board-corner-controls{z-index:4;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;top:12px;right:12px}.storm-warning-marker{image-rendering:pixelated;pointer-events:none;z-index:5;width:24px;position:absolute;top:12px;left:12px}.board-icon-button{box-shadow:none;color:#fffdf6;cursor:pointer;background:0 0;border:0;border-radius:7px;place-items:center;width:32px;height:32px;min-height:32px;padding:0;transition:background .16s,color .16s,transform .16s;display:grid}.board-icon-button:hover{color:#fff;background:#fffdf61f;transform:translateY(-1px)}.board-icon-button:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.board-icon-button.is-active{color:#f5d76c}.board-fullscreen-button{color:#fffdf6}.board-control-icon,.fullscreen-icon{fill:none;filter:drop-shadow(0 2px 3px #0929378c);stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.2px;width:20px;height:20px}.board-preview.is-fullscreen{box-sizing:border-box;z-index:30;border:0;border-radius:0;place-items:center;width:100dvw;max-width:none;height:100dvh;padding:54px 24px 24px;display:grid;position:fixed;inset:0}.board-preview.is-fullscreen .board-water{width:100%;height:100%}.board-preview.is-fullscreen .hex-map{width:min(100vw - 48px,113vh - 94.92px);max-width:calc(100vw - 48px);max-height:calc(100vh - 84px)}.board-preview.is-fullscreen .board-corner-controls{top:18px;right:18px}.hex-map{max-width:100%;height:auto;width:calc(var(--hex-w) * 13);display:block;overflow:visible}.hex-map text{-webkit-user-select:none;user-select:none}.sea-hex{--tile-border:#7fb0c0;--tile-border-size:1px;--tile-fill:#1b7892;--tile-label:#f1d64e;--tile-coords:#b8e3ef;outline:none}.hex-tile{fill:var(--tile-fill);stroke:var(--tile-border);stroke-linejoin:round;stroke-width:var(--tile-border-size);vector-effect:non-scaling-stroke;transition:fill .18s,filter .18s,stroke .18s,stroke-width .18s}.terrain-island{--tile-fill:#ddb06e;--tile-label:#c79b55;--tile-coords:#2c684f66}.terrain-reef,.terrain-spawn-north,.terrain-spawn-south,.terrain-route{--tile-fill:#1b7892;--tile-label:#f1d64e;--tile-coords:#b8e3ef}.sea-hex.is-storm{--tile-border:#dde8ef;--tile-label:#dde8ef;--tile-coords:#dde8ef}.sea-hex.is-recent .hex-tile{filter:brightness(1.15)saturate(1.15);animation:1.65s ease-out tile-change-pulse}.sea-hex.is-ship-highlighted .hex-tile{filter:brightness(1.06)saturate(1.08);stroke-width:1.6px}.sea-hex.is-own-ship .hex-tile{fill:#2f8f5b;stroke:#b8f7d2}.sea-hex.is-enemy-ship .hex-tile{fill:#b94339;stroke:#ffd4cb}.sea-hex.is-ship-highlighted .svg-hex-ship,.svg-hex-ship.is-ship-highlighted{filter:drop-shadow(0 6px 5px #0000006b)}.sea-hex.is-clickable{cursor:pointer}.board-preview.is-dragging,.board-preview.is-dragging .sea-hex.is-clickable{cursor:grabbing}.sea-hex.is-clickable:hover .hex-tile,.sea-hex.is-clickable:focus-visible .hex-tile{filter:brightness(1.18)saturate(1.12)}.sea-hex.is-clickable:focus-visible .hex-tile{stroke:var(--focus-ring);stroke-width:3px}.sea-hex.is-route .hex-tile{filter:drop-shadow(0 0 7px #f5d76c5c);stroke:#f5d76c;stroke-width:2px}.sea-hex.is-legal-target .hex-tile{filter:drop-shadow(0 0 7px #4dd2ac6b);stroke:#91f0d2;stroke-width:2px}.sea-hex.is-cannon-hint-right .hex-tile{filter:drop-shadow(0 0 6px #e3b5683d);stroke:#e3b568c7;stroke-width:1.5px}.sea-hex.is-cannon-hint-left .hex-tile{filter:drop-shadow(0 0 6px #7ec4d93d);stroke:#7ec4d9d1;stroke-width:1.5px}.sea-hex.is-cannon-hint-both .hex-tile{filter:drop-shadow(0 0 7px #f5d76c4d);stroke:#f5d76cd1;stroke-width:1.7px}.sea-hex.is-cannon-target .hex-tile{filter:drop-shadow(0 0 8px #b9433961);stroke:#f48e7af2;stroke-width:2px}.sea-hex.is-drag-cannon-danger .hex-tile{filter:drop-shadow(0 0 10px #ff4f3eb8);stroke:#ffebe0;stroke-width:3px}.sea-hex.is-drag-cannon-danger .svg-route-step circle{fill:#fff1e9;stroke:#b8332a}.sea-hex.is-last-move:not(.is-route) .hex-tile{stroke:#ffffff94;stroke-width:2px}.sea-hex.is-selected .hex-tile{filter:drop-shadow(0 0 8px #ffffff75);stroke:#fff;stroke-width:2px}.sea-hex.is-drag-source .hex-tile{filter:drop-shadow(0 0 10px #f5d76c8f);stroke:#f5d76c;stroke-width:3px}@keyframes tile-change-pulse{0%{filter:brightness(1.7)saturate(1.35)}45%{filter:brightness(1.28)saturate(1.18)}to{filter:brightness()saturate()}}.svg-hex-id,.svg-hex-coords{dominant-baseline:middle;pointer-events:none;text-shadow:0 1px #0000002e;-webkit-user-select:none;user-select:none;font-weight:900}.svg-hex-id{fill:var(--tile-label);font-size:10px}.svg-hex-coords{fill:var(--tile-coords);font-size:8px}.svg-hex-ship,.svg-wrecked-ship,.svg-sunk-marker{filter:drop-shadow(0 6px 5px #0000006b);pointer-events:none}.svg-ship-overlay{pointer-events:none}.svg-wrecked-ship{filter:drop-shadow(0 5px 4px #00000059);opacity:1}.svg-cannon-side-markers,.svg-cannon-side-marker{pointer-events:none}.svg-cannon-side-marker{filter:drop-shadow(0 3px 3px #00000061)drop-shadow(0 0 3px #f5d76c4d);opacity:.96}.svg-cannon-side-marker.fired{filter:drop-shadow(0 2px 3px #00000047);opacity:.78}.svg-sunk-marker{filter:grayscale(.35)saturate(.65)drop-shadow(0 3px 3px #00000052);opacity:.46}.svg-route-step,.svg-last-move-step{pointer-events:none}.svg-route-step circle{fill:#f5d76c;stroke:#5a4310;stroke-width:2px;vector-effect:non-scaling-stroke}.svg-route-step text{fill:#3d2b08;font-size:15px;font-weight:1000}.svg-last-move-step circle{fill:#ffffffc7;stroke:#0d36446b;stroke-width:1px;vector-effect:non-scaling-stroke}.svg-last-move-step text{fill:#123f52;font-size:9px;font-weight:900}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.board-preview.compact .svg-hex-id,.board-preview.compact .svg-hex-coords,.board-preview.compact .svg-route-step,.board-preview.compact .svg-last-move-step,.board-preview.compact .svg-cannon-side-markers,.board-preview.compact .svg-wrecked-ship,.board-preview.compact .svg-sunk-marker{display:none}.game-list{gap:10px;display:grid}.game-row{background:var(--surface-strong);border:1px solid var(--line);border-radius:7px;grid-template-columns:minmax(0,1fr) 110px 210px;align-items:center;gap:8px;padding:12px;display:grid}.game-row span,.summary-grid dd{overflow-wrap:anywhere}.game-row small{color:var(--muted)}.empty-state,.empty-inline{border:1px solid var(--line);text-align:center;background:#fbfcf8eb;border-radius:8px;max-width:760px;margin:0 auto;padding:30px}.empty-inline{max-width:none;margin:0}.game-room{grid-template-columns:minmax(0,1fr) 340px;gap:18px;display:grid}.game-main{min-height:520px;container-type:inline-size}.game-side{align-content:start;gap:18px;display:grid}.board-display-panel{gap:12px;display:grid}.toggle-row{cursor:pointer;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;font-weight:900;display:grid}.toggle-row input{opacity:0;width:1px;height:1px;position:absolute}.toggle-switch{background:#d8e1db;border:1px solid #a9beb6;border-radius:999px;width:42px;height:24px;transition:background .16s,border-color .16s;position:relative}.toggle-switch:after{content:"";background:#fffdf6;border-radius:999px;width:18px;height:18px;transition:transform .16s;position:absolute;top:2px;left:2px;box-shadow:0 2px 5px #222b2738}.toggle-row input:checked+.toggle-switch{background:#2f7c57;border-color:#256846}.toggle-row input:checked+.toggle-switch:after{transform:translate(18px)}.toggle-row input:focus-visible+.toggle-switch{box-shadow:0 0 0 3px var(--focus-ring)}.summary-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:0 0 16px;display:grid}.summary-grid div{border-top:1px solid var(--line);padding-top:10px}.summary-grid dd{margin:4px 0 0}.player-matchup{grid-template-columns:minmax(0,1fr) minmax(150px,.58fr) minmax(0,1fr);gap:10px;margin:0 0 16px;display:grid}.player-card{background:#f7f0de;border:1px solid #e2d0a7;border-radius:8px;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:10px;min-width:0;min-height:68px;padding:9px 10px;display:grid}.player-card.is-you{background:#e5f4f1;border-color:#b7d7d1}.player-card.is-turn{border-color:#d7bd87;box-shadow:inset 0 0 0 2px #d7bd8747}.player-avatar{aspect-ratio:1;background:var(--sea-dark);color:#fff;letter-spacing:0;border-radius:50%;align-items:center;width:38px;font-weight:900;display:grid}.player-card-body{min-width:0}.player-card-heading{gap:2px;min-width:0;margin-bottom:6px;display:grid}.player-card-heading span,.player-scoreline span,.match-meta span{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:900}.player-card-heading strong{text-overflow:ellipsis;white-space:nowrap;font-size:16px;display:block;overflow:hidden}.player-fleet-label{color:var(--muted);font-size:12px;font-weight:900}.player-scoreline{flex-wrap:wrap;gap:6px;display:flex}.player-scoreline span{color:var(--sea-dark);white-space:nowrap;background:#fffaf0a3;border:1px solid #bdc9bfc7;border-radius:999px;padding:5px 7px;line-height:1}.player-card.is-turn .player-scoreline span:first-child{color:#7a5418;background:#fff7df;border-color:#d7bd87}.match-meta{background:var(--surface-strong);border:1px solid var(--line);text-align:center;border-radius:8px;align-content:center;justify-items:center;gap:3px;min-width:0;min-height:74px;padding:10px 12px;display:grid}.match-meta strong{font-size:16px}.match-meta small{color:var(--muted);font-size:12px;font-weight:800}@container (max-width:680px){.player-matchup{grid-template-columns:1fr 1fr}.match-meta{text-align:left;grid-area:1/1/auto/-1;grid-template-columns:auto minmax(0,1fr) auto;place-items:center start;min-height:56px}.player-card.is-opponent{grid-area:2/1}.player-card.is-you{grid-area:2/2}.match-meta strong{text-align:center;justify-self:center}.match-meta small{text-align:right;justify-self:end}}.turn-banner,.result-banner{background:#e5f4f1;border:1px solid #b7d7d1;border-radius:8px;gap:4px;margin:16px 0;padding:16px;display:grid}.turn-banner span{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:900}.turn-banner strong{font-size:30px}.turn-banner small{color:var(--muted)}.result-banner{color:#6f4b14;background:#fff7df;border-color:#d7bd87;font-weight:900}.play-controls{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:16px;margin-top:18px;padding-top:18px;display:grid}.play-controls h3{margin:4px 0 12px;font-size:24px}.move-builder-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0;display:grid}.move-builder-grid div{background:#f7f0de;border:1px solid #e2d0a7;border-radius:7px;min-width:0;padding:10px 12px}.move-builder-grid dt{color:var(--muted);text-transform:uppercase;margin-bottom:3px;font-size:11px;font-weight:900}.move-builder-grid dd{color:var(--ink);overflow-wrap:anywhere;min-height:20px;margin:0;font-size:16px;font-weight:900}.route-actions{gap:10px;display:flex}.route-actions button{white-space:nowrap}.route-actions button:disabled{cursor:not-allowed;opacity:.5}.ship-status-panel{border-top:1px solid var(--line);margin-top:18px;padding-top:18px}.section-header.compact{margin-bottom:10px}.section-header.compact h3{margin-bottom:0}.inline-warning{color:var(--red);background:#fff2ef;border:1px solid #e3afa9;border-radius:999px;padding:8px 10px;font-size:12px;font-weight:900}.ship-status-grid{grid-template-columns:repeat(auto-fit,minmax(138px,1fr));gap:10px;display:grid}.ship-status{text-align:left;background:#f7f0de;border:1px solid #e2d0a7;justify-content:stretch;align-items:start;gap:4px;min-height:86px;padding:10px 12px;display:grid}.ship-status.selected{background:#e5f4f1;border-color:#58b99d;box-shadow:inset 0 0 0 2px #58b99d33}.ship-status span,.ship-status small{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:900}.ship-status strong{color:var(--ink);font-size:17px}.ship-status.empty{color:var(--muted);border-radius:7px}.prominent-result{background:linear-gradient(135deg,#e3b56838,#0000 55%),#fff7df}.prominent-result span{color:#9a6f29;text-transform:uppercase;font-size:12px}.prominent-result strong{color:#5e4014;font-size:34px}.move-history-panel h2{margin-bottom:12px}.move-history-list{gap:8px;display:grid}.move-history-row{background:var(--surface-strong);border:1px solid var(--line);border-radius:7px;grid-template-columns:34px minmax(0,1fr) 58px;align-items:center;gap:8px;padding:9px 10px;display:grid}.move-history-row span{color:var(--sea-dark);text-align:center;background:#e5f4f1;border-radius:999px;padding:5px 0;font-size:12px;font-weight:900}.move-history-row strong{overflow-wrap:anywhere}.move-history-row small{color:var(--muted);text-align:right;text-transform:uppercase;font-size:11px;font-weight:900}.manual-panel{margin-top:14px}.manual-move-card{margin-top:12px}.move-card{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;margin-top:18px;padding-top:18px;display:grid}.inspector-toggle{width:100%}.state-block{color:#d9f1e5;white-space:pre-wrap;background:#101816;border:1px solid #263c37;border-radius:7px;max-height:420px;margin:14px 0 0;padding:14px;font-size:12px;line-height:1.5;overflow:auto}.profile-layout{gap:18px;display:grid}.profile-hero h2{font-size:38px}@media (max-width:980px){.app-shell,.auth-layout,.hero-panel,.play-grid,.game-room{grid-template-columns:1fr}.sidebar{min-height:auto;position:static}.nav-list{grid-template-columns:repeat(4,1fr)}.summary-grid,.metrics-row,.move-builder-grid{grid-template-columns:1fr 1fr}.game-main .board-preview{--hex-w:36px;--hex-h:42px}.game-row,.move-card,.play-controls{grid-template-columns:1fr}.route-actions{justify-content:flex-start}}@media (max-width:640px){.main-area,.sidebar{padding:18px}.topbar,.hero-actions,.inline-form,.section-header{flex-direction:column;align-items:stretch}.nav-list,.summary-grid,.player-matchup,.metrics-row{grid-template-columns:1fr}.auth-copy .board-preview,.hero-panel .board-preview,.play-card.featured .board-preview{--hex-w:20px;--hex-h:23px}.game-main .board-preview{--hex-w:33px;--hex-h:38px;padding-inline:12px;overflow-x:auto}.game-main .board-water{min-width:560px}.game-main .board-preview .hex-id,.game-main .board-preview .hex-coords{display:none}.move-builder-grid,.player-card,.route-actions,.ship-status-grid{grid-template-columns:1fr}.match-meta{order:-1;grid-area:auto}.player-card.is-opponent,.player-card.is-you{grid-area:auto}.route-actions{flex-direction:column}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}
