/* Battle controls: weathered steel, warm deck marks, and a clear field of view. */
:root{
 --ui-surface:#52666b;--ui-raised:#62777a;--ui-recess:#3c5056;
 --ui-text:#f1f2e9;--ui-muted:#dfe5df;--ui-line:#7d9291;--ui-border:#879b96;
 --ui-divider:#c1ceca30;--ui-accent:#f7dfb3;--ui-accent-border:#e7c58b;
 --ui-health:#aad28a;--ui-xp:#80c1ce;--ui-danger:#ffdcc1;
 --hud-edge:22px;--hud-unit:1;--hud-player-width:340px;--hud-player-height:122px;--hud-sheet-width:316px;
 --hud-white:var(--ui-text);--hud-outline:var(--ui-recess);
}
body[data-hud-size=large]{--hud-unit:1.15;--hud-player-width:390px;--hud-sheet-width:350px}
body:has(#menu:not([hidden])) :is(#top,#team-summary,#leaderboard,#stats,#mapbox,#hints,#naval-status,#own-mines,#wind-readout,#helm-tools),
body:has(#death:not([hidden])) :is(#top,#team-summary,#leaderboard,#stats,#evolutions,#mapbox,#hints,#progress,#naval-status,#own-mines,#wind-readout,#helm-tools),
body:has(#menu[hidden]):has(#progress[hidden]) :is(#top,#leaderboard,#mapbox,#naval-status,#helm-tools){display:none}
body:not(.show-upgrades) #stats,body:not(.show-evolutions) #evolutions{display:none}
#ability,#team-summary,#wind-readout,#own-mines,#coords,#battle-details,#team-population{display:none!important}
:is(#helm-tools button,.helm-close,#battle-nav button,.choice,#death button):focus-visible{outline:2px solid var(--ui-accent);outline-offset:3px}
/* Growth is deliberate, outside the primary instrument. */
#helm-tools{position:fixed;inset:auto auto var(--hud-edge) var(--hud-edge);z-index:9;display:block;padding:0;border:0;background:none;transform:none}
.helm-growth-actions,#battle-utilities{display:flex;align-items:center;gap:8px;padding:0;border:0;background:none}
#battle-utilities{position:fixed;top:var(--hud-edge);left:var(--hud-edge)}
#helm-tools button{display:flex;align-items:center;justify-content:center;gap:8px;height:36px;min-height:36px;margin:0;padding:0 14px;border:0;border-radius:8px;background:var(--ui-recess);box-shadow:0 2px 0 #30474c70;color:var(--ui-text);font:600 calc(13px * var(--hud-unit))/1.3 'Segoe UI',sans-serif;text-shadow:none;transform:none;transition:background-color .12s,border-color .12s;font-size:12px}
#helm-tools button:before{display:block;margin:0;font-size:19px;color:var(--ui-muted)}
#battle-utilities #info-open:before{content:'';width:15px;height:12px;border-top:2px solid currentColor;border-bottom:2px solid currentColor;background:linear-gradient(currentColor,currentColor) center/100% 2px no-repeat}
#helm-tools button:hover{background:var(--ui-raised);border-color:var(--ui-text)}
#helm-tools button:active,#helm-tools button[aria-expanded=true]{background:var(--ui-recess);border-color:var(--ui-accent);transform:none}
#helm-tools button.available:before,#helm-tools #evolve-open:before{color:inherit}
#helm-tools #evolve-open{color:var(--ui-recess);border-color:var(--ui-accent);background:var(--ui-accent)}
#upgrade-count{display:grid;place-items:center;min-width:20px;height:20px;padding:0 4px;border:0;border-radius:3px;background:var(--ui-accent);color:var(--ui-recess);font-size:11px;font-weight:750;font-variant-numeric:tabular-nums}
#upgrade-count:empty{display:none}
.helm-close{position:absolute;right:12px;top:12px;display:grid;place-items:center;width:30px;height:30px;margin:0;padding:0;border:0;border-radius:5px;background:none;box-shadow:none;color:var(--ui-muted);transform:none}
.helm-close:before{font-size:20px;margin:0}.helm-close:hover{background:var(--ui-raised);color:var(--ui-text)}
/* Six rows. Number keys and invested points are visible without a tooltip. */
#stats,#evolutions{position:fixed;inset:auto auto calc(var(--hud-edge) + 54px) var(--hud-edge);z-index:8;width:var(--hud-sheet-width);max-width:calc(100vw - 2 * var(--hud-edge))!important;max-height:calc(100dvh - 150px);margin:0;padding:16px;border:1px solid var(--ui-border);border-radius:10px;background:var(--ui-surface);box-shadow:0 3px 0 #30474c50;color:var(--ui-text);text-shadow:none;transform:none!important;overflow:auto;scrollbar-width:thin;scrollbar-color:var(--ui-line) var(--ui-surface)}
.helm-sheet-title{margin:0 34px 2px 0;color:var(--ui-text);font-size:16px;font-weight:650;line-height:1.5;letter-spacing:0;text-shadow:none;text-align:left}
#points{display:block;min-height:20px;margin:0 30px 12px 0;padding:0;color:var(--ui-accent);font-size:calc(12px * var(--hud-unit));font-weight:500;line-height:1.5;text-shadow:none}#points:before{display:none}
#stats .stat{--stat-color:var(--ui-accent);position:relative;display:grid;grid-template-columns:18px minmax(0,1fr) 81px 26px 26px;align-items:center;gap:7px;width:100%;height:43px;min-height:43px;margin:0;padding:0;border:0;border-top:1px solid var(--ui-divider);border-radius:0;background:none;color:var(--ui-text);font-weight:500;text-align:left;text-shadow:none;overflow:visible;transform:none;opacity:1}
#stats .stat:nth-child(1){--stat-color:#aad28a}#stats .stat:nth-child(2){--stat-color:#cbb99b}#stats .stat:nth-child(3){--stat-color:#80c1ce}#stats .stat:nth-child(4){--stat-color:#e7c58b}#stats .stat:nth-child(5){--stat-color:#b6afcc}#stats .stat:nth-child(6){--stat-color:#80c1ce}
#stats .stat .tint,#stats .stat-next{display:none}
#stats .stat-key{display:grid;place-items:center;width:17px;height:19px;margin:0;padding:0;border:1px solid var(--ui-line);border-radius:3px;background:none;color:var(--ui-muted);font:10px/1 'Segoe UI',sans-serif}
#stats .stat-key{grid-column:1;grid-row:1}
#stats .stat .label{grid-column:2;grid-row:1;min-width:0;font-size:calc(12px * var(--hud-unit));font-weight:500;line-height:1.4;white-space:nowrap}
#stats .stat .segments{grid-column:3;grid-row:1;display:flex;gap:3px;width:81px;margin:0}#stats .stat .segments i{flex:1;width:auto;max-width:none;height:10px;border:0;border-radius:2px;background:var(--ui-recess)}#stats .stat .segments i.on{background:var(--stat-color)}
#stats .stat .stat-investment{grid-column:4;grid-row:1;display:block;position:static;color:var(--ui-muted);font-size:11px;text-align:right;font-variant-numeric:tabular-nums}
#stats .stat .plus{grid-column:5;grid-row:1;display:grid;place-items:center;width:26px;height:26px;margin:0;padding:0;border:1px solid var(--ui-line);border-radius:5px;background:var(--ui-raised);color:var(--ui-text);font-size:18px;line-height:1}
#stats .stat:hover:not([aria-disabled=true]){background:var(--ui-raised)}#stats .stat:focus-visible{outline:2px solid var(--ui-accent);outline-offset:1px}#stats .stat[aria-disabled=true]{cursor:default}#stats .stat[aria-disabled=true] .plus{border-color:transparent;background:none;color:var(--ui-line)}#stats .stat[aria-busy=true] .segments{opacity:.5}
#stats .stat-pending{position:absolute;right:33px;top:0;z-index:2;padding:1px 4px;border:0;border-radius:3px;background:var(--ui-recess);color:var(--ui-accent);font-size:10px;line-height:1.3}
#evolutions>small{display:block;margin:0 30px 14px 0;color:var(--ui-accent);font-size:15px;font-weight:650;line-height:1.6}
body:has(#naval-status.naval-hud) #evolutions{top:auto;left:var(--hud-edge)}
#choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:0;padding:0;max-height:none;overflow:visible}
#choices .choice{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:0;width:auto;height:auto;min-height:112px;margin:0;padding:8px;border:1px solid var(--ui-line);border-radius:7px;background:var(--ui-recess);box-shadow:none;color:var(--ui-text);font-size:calc(12px * var(--hud-unit));font-weight:650;line-height:1.4;text-shadow:none;word-break:keep-all;overflow-wrap:anywhere;transform:none;transition:border-color .12s,background-color .12s}
#choices .choice canvas{display:block;width:82px;max-width:100%;height:48px;margin:0}#choices .choice:hover{border-color:var(--ui-accent);background:var(--ui-raised);transform:none;filter:none}#choices .choice:active{background:var(--ui-recess);transform:none}
/* Center cockpit: weapon keys above, the living vessel below. */
#player-hud{position:fixed;inset:auto auto var(--hud-edge) 50%;z-index:7;display:flex;flex-direction:column;gap:8px;width:var(--hud-player-width);max-width:calc(100vw - 2 * var(--hud-edge));margin:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;color:var(--ui-text);transform:translateX(-50%);pointer-events:none;text-shadow:0 1px 2px #243f4f}
#player-hud:has(#progress[hidden]){display:none}
#progress{order:1;position:relative;inset:auto;display:block;width:auto;max-width:none;margin:0;padding:0;border:0;border-top:1px solid var(--ui-divider);border-radius:0;background:none;box-shadow:none;color:var(--ui-text);text-align:left;text-shadow:none;transform:none;pointer-events:none}
#progress :is(.score,#tankname){display:none!important}
#progress .vessel-meta{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:2px 10px;min-height:18px;margin:0 0 5px;padding:0}
#progress #level{position:static;left:0;top:13px;display:inline!important;place-items:center;width:auto;height:auto;margin:0;border:0;border-radius:0;background:none;color:var(--ui-text);font-size:12px;font-weight:700;line-height:1.1;white-space:nowrap}
#hud-vessel{display:block;min-width:0;color:var(--ui-text);font-size:calc(12px * var(--hud-unit));font-weight:600;line-height:1.4;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
#player-hud #progress #toggles{position:static;inset:auto;display:block;grid-column:1/-1;width:auto;min-width:0;margin:0;padding:0;border:0;background:none;color:var(--ui-accent);text-align:left;font-size:calc(10px * var(--hud-unit));line-height:1.4;text-shadow:none;transform:none;white-space:normal;overflow-wrap:anywhere}
#player-hud #progress #toggles:empty{display:none}
#progress .vital-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;height:17px;margin:0;font-size:12px}
#progress .vital-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
#progress #health{grid-column:2;color:var(--ui-text);font-size:calc(11px * var(--hud-unit));font-weight:600;line-height:1.3;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
#progress .vital-row :is(.health,.xp){position:relative;display:block;grid-column:1;height:8px;margin:0;border:1px solid #243f4f;border-radius:4px;background:#243f4fe8;overflow:hidden}
#hpfill,#progress .vital-row #xpfill{height:100%;border-radius:4px;background:var(--ui-health);opacity:1}
#progress .vital-xp{display:block;height:3px;margin-top:5px}#progress .vital-xp .xp{height:3px;border-radius:2px}#progress .vital-row #xpfill{background:var(--ui-xp)}
#progress[data-health=low] #hpfill{background:var(--ui-danger)}#progress[data-health=low] #health{color:var(--ui-danger)}
#naval-status.naval-hud{position:static;inset:auto;z-index:auto;width:auto;max-width:none;margin:0;padding:0;border:0;border-radius:0;background:none;color:var(--ui-text);text-shadow:none;transform:none;pointer-events:auto}
#naval-status.naval-hud .naval-hud-grid{display:flex;flex-wrap:wrap;gap:8px 12px;padding:0;border:0;border-radius:0;background:none}
#naval-status .naval-hud-card{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;flex:1 1 130px;gap:0 8px;min-width:0;min-height:30px;margin:0;padding:0 0 5px;border:0;border-radius:0;background:none;box-shadow:none;color:var(--ui-text);text-shadow:none;padding-bottom:7px}
#naval-status .naval-hud-card:before,#naval-status .naval-hud-card:after{display:none}
#naval-status .naval-hud-top{display:block;grid-column:1;grid-row:1;margin:0;font-size:10px}#naval-status .naval-hud-top>span{display:none}
#naval-status .naval-hud-top kbd{display:block;min-width:26px;padding:4px 5px;border:0;border-radius:3px;background:var(--ui-recess);color:var(--ui-text);font:10px/1.2 'Segoe UI',sans-serif;text-align:center;white-space:nowrap;text-shadow:none}
#naval-status [data-resource=oxygen] .naval-hud-top>span{display:block;color:var(--ui-muted);font-size:11px;font-weight:500}
#naval-status .naval-hud-value{display:block;grid-column:2;grid-row:1;min-width:0;margin:0;padding:0;color:var(--ui-text);font-size:calc(12px * var(--hud-unit));font-weight:600;line-height:1.4;white-space:nowrap;overflow:visible}
#naval-status .naval-hud-timer{position:static;grid-column:3;grid-row:1;min-height:0;color:var(--ui-accent);font-size:11px;line-height:1.4;font-variant-numeric:tabular-nums;white-space:nowrap}
#naval-status .naval-hud-bar{position:absolute;left:0;right:0;bottom:0;width:auto;height:4px;margin:0;border:0;border-radius:2px;background:#243f4f80;overflow:hidden}
#naval-status .naval-hud-bar>span{display:block;height:100%;background:var(--ui-xp);transition:width .16s linear}#naval-status .naval-hud-recharge{bottom:0;height:2px}
#naval-status .naval-hud-depth,#naval-status .naval-hud-hint{display:none}
#naval-status[data-depth-state=surface][data-oxygen-state=normal] [data-resource=oxygen]{display:none}
#naval-status .naval-hud-card[data-input-feedback=true] .naval-hud-hint,#naval-status[data-auto-surface=true] [data-resource=depth] .naval-hud-hint{display:block;position:fixed;inset:auto 0 calc(100% + 12px) 0;z-index:12;width:auto;max-width:100%;min-height:0;margin:0;padding:9px 12px;border:1px solid var(--ui-accent);border-radius:7px;background:var(--ui-surface);color:var(--ui-text);font-size:12px;line-height:1.6;white-space:normal;word-break:keep-all;transform:none;pointer-events:none}
#naval-status .naval-hud-card.warning .naval-hud-value{color:var(--ui-danger)}#naval-status .naval-hud-card.warning .naval-hud-bar>span{background:var(--ui-danger)}
#naval-status .naval-hud-detail{display:none;margin:0;padding:0;border:0;background:none}
#naval-status[data-depth-state=underwater] .naval-hud-detail:has(.naval-hud-exposure:not([hidden])){display:flex;position:absolute;inset:auto auto calc(100% + 10px) 0;max-width:100%;pointer-events:none}
#naval-status .naval-hud-detail>span:not(.naval-hud-exposure){display:none}
#naval-status .naval-hud-exposure{padding:6px 9px!important;border:1px solid var(--ui-border)!important;border-radius:5px;background:var(--ui-surface);font-size:12px;color:var(--ui-text)}
/* CX owner weapon facts: key/name/state, then target depth and barrel advice. */
#naval-status .naval-hud-card[data-resource=primary],#naval-status .naval-hud-card[data-resource=secondary]{flex:0 0 calc((100% - 12px)/2);min-height:50px;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:22px 20px;gap:0 4px;padding-bottom:8px;text-shadow:0 1px 2px #243f4f}
#naval-status :is([data-resource=primary],[data-resource=secondary]) .naval-hud-timer{grid-column:3;grid-row:1;font-size:12px;color:var(--ui-text)}
#naval-status :is([data-resource=primary],[data-resource=secondary]) .naval-hud-depth{display:block;grid-column:1/-1;grid-row:2;justify-self:start;color:var(--ui-muted);font-size:12px;line-height:20px;white-space:nowrap}
#naval-status :is([data-resource=primary],[data-resource=secondary]) .naval-hud-advice{display:block;grid-column:1/-1;grid-row:2;justify-self:end;font-size:12px;line-height:20px;color:var(--ui-accent);white-space:nowrap}
#naval-status .naval-hud-card:is([data-resource=primary],[data-resource=secondary])[data-input-feedback=true] .naval-hud-hint{display:none}
#naval-status .naval-hud-top kbd,#naval-status .naval-hud-timer,#naval-status [data-resource=oxygen] .naval-hud-top>span{font-size:12px}
#naval-status :is([data-resource=primary],[data-resource=secondary]) .naval-hud-top kbd{padding:2px 3px;font-size:12px}
#naval-status [data-resource=depth] .naval-hud-value{white-space:normal}
/* Ranking: aligned type instead of three progress bars. */
#top{position:fixed;inset:var(--hud-edge) auto auto 120px;z-index:6;display:flex;align-items:center;gap:8px;max-width:calc(100vw - 380px);padding:0;border:0;background:none;color:var(--ui-text);font-size:12px}
#top .mode,#top #population,#top #connection[data-status=connected]{display:none}
#top #connection,#network-quality{padding:9px 12px;border:1px solid var(--ui-border);border-radius:7px;background:var(--ui-surface);color:var(--ui-danger);font-size:12px;line-height:1.4;text-shadow:none;pointer-events:auto}
#leaderboard{position:fixed;inset:var(--hud-edge) var(--hud-edge) auto auto!important;z-index:6;width:212px;margin:0;padding:7px 10px;border:0;border-radius:4px;background:#30474ce8;box-shadow:none;color:var(--ui-text);text-align:left;pointer-events:none;text-shadow:none}
#leaderboard h2{display:flex;align-items:center;gap:7px;margin:0 0 6px;padding:0 0 9px;border:0;border-bottom:1px solid var(--ui-divider);color:var(--ui-muted);font-size:11px;font-weight:500;line-height:1.4;letter-spacing:0;text-align:left;text-shadow:none;padding-bottom:5px}
#leaderboard h2:before{content:'';display:none;flex:none;width:14px;height:13px;background:linear-gradient(var(--ui-accent),var(--ui-accent)) 0 100%/3px 7px no-repeat,linear-gradient(var(--ui-accent),var(--ui-accent)) 5px 100%/3px 12px no-repeat,linear-gradient(var(--ui-accent),var(--ui-accent)) 10px 100%/3px 9px no-repeat}
#leaders{counter-reset:rank}
#leaderboard .leader{position:relative;height:29px;margin:0;padding:0;border:0;border-radius:0;background:none;outline:0;overflow:hidden!important}#leaderboard .leader .fill{display:none}
#leaderboard .leader>span{position:relative;display:block;margin:0;padding:0 0 0 24px;color:var(--ui-text);font-size:12px;font-weight:500;line-height:29px;text-shadow:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#leaderboard .leader>span.rank-label{display:flex;justify-content:space-between;gap:12px}
#leaderboard .leader .rank-label :is(.rank-name,.rank-score){margin:0;padding:0;border:0;background:none;color:inherit;font-size:inherit;line-height:inherit;font-weight:inherit;text-shadow:none}
#leaderboard .rank-name{min-width:0;overflow:hidden;text-overflow:ellipsis}#leaderboard .rank-score{flex:none;color:var(--ui-muted)!important;font-variant-numeric:tabular-nums}
#leaders>.leader:before,#leaders>.leader.self:before,#leaders>.leader.own-team:before{display:block;counter-increment:rank;content:counter(rank);position:absolute;inset:0 auto auto 0;transform:none;color:var(--ui-muted);font:600 11px/29px 'Segoe UI',sans-serif;text-shadow:none}
#leaders>.leader:first-child:before,#leaders>.leader.self>span,#leaders>.leader.self:before{color:var(--ui-accent);font-weight:700}#leaders>.leader:nth-child(n+4){display:none}
#leaderboard:not(:has(#leaders>.leader)),#leaderboard:has(#leaders>.leader.self:only-child){display:none}
#mapbox{position:fixed;inset:auto var(--hud-edge) var(--hud-edge) auto;z-index:6;margin:0;padding:5px;border:1px solid var(--ui-border);border-radius:10px;background:var(--ui-surface);pointer-events:none}
#minimap{display:block;width:132px;height:auto;border:0;border-radius:5px;background:var(--ui-recess);box-shadow:none}
/* Utilities share the sheet material and deliberate button states. */
#battle-info,#battle-help{display:none;position:fixed;inset:calc(var(--hud-edge) + 54px) auto auto var(--hud-edge);z-index:12;width:258px;max-width:calc(100vw - 2 * var(--hud-edge));max-height:calc(100dvh - 150px);margin:0;padding:16px;border:1px solid var(--ui-border);border-radius:10px;background:var(--ui-surface);box-shadow:0 3px 0 #30474c50;color:var(--ui-text);text-align:left;text-shadow:none;font-size:12px;line-height:1.8;overflow:auto;transform:none}
body.show-info #battle-info,body.show-help #battle-help{display:block}
#battle-info-title{margin:0 30px 13px 0;padding:0;color:var(--ui-text);font-size:16px;font-weight:650;text-align:left;letter-spacing:0;text-shadow:none}
#battle-help{padding-top:48px}
#battle-help #hints{position:static;display:block;inset:auto;width:auto;max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:none;color:inherit;white-space:pre-line;text-align:left;text-shadow:none;font-size:12px;line-height:2;overflow:visible}
#battle-help:has(.control-reference){width:300px;padding-top:16px}
#battle-help #hints.control-reference{white-space:normal;line-height:1.5}
.control-title{margin:0 36px 2px 0;font-size:16px;line-height:1.5;font-weight:650}
.control-vessel{margin:0 36px 12px 0;color:var(--ui-muted);font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.control-list{margin:0}
.control-row{display:grid;grid-template-columns:88px minmax(0,1fr);align-items:center;gap:12px;min-height:34px;padding:4px 0}
.control-keys{display:flex;gap:3px;margin:0;align-items:center}
.control-keys kbd{display:inline-grid;place-items:center;min-width:23px;min-height:23px;padding:2px 6px;border:1px solid var(--ui-line);border-radius:3px;background:var(--ui-recess);color:var(--ui-text);font:600 11px/1.3 'Segoe UI',sans-serif;white-space:nowrap}
.control-keys[data-layout=wasd]{display:grid;grid-template-columns:repeat(3,23px);width:75px}
.control-keys[data-layout=wasd] kbd{min-width:0;padding:2px}
.control-keys[data-layout=wasd] kbd:first-child{grid-column:2}
.control-keys[data-layout=wasd] kbd:nth-child(2){grid-column:1;grid-row:2}
.control-keys[data-layout=wasd] kbd:nth-child(3){grid-column:2;grid-row:2}
.control-keys[data-layout=wasd] kbd:nth-child(4){grid-column:3;grid-row:2}
.control-action{min-width:0;margin:0;font-size:calc(12px * var(--hud-unit));line-height:1.5;overflow-wrap:anywhere}
.control-utilities{margin-top:8px;padding-top:12px;border-top:1px solid var(--ui-divider)}
#battle-nav{display:flex;flex-direction:column;gap:4px}
#battle-nav button{position:static!important;inset:auto!important;display:flex;align-items:center;justify-content:flex-start;gap:10px;width:100%;height:40px;min-height:40px;margin:0;padding:6px 10px;border:0;border-radius:6px;background:none;box-shadow:none;transform:none!important;color:var(--ui-text);font-size:13px;font-weight:500;line-height:1.4;text-shadow:none}
#battle-nav button:before{margin:0;color:var(--ui-muted);font-size:19px}#battle-nav button:hover{background:var(--ui-raised)}#battle-nav button:active{background:var(--ui-recess)}
#battle-nav #change-mode{margin-top:6px;border-top:1px solid var(--ui-divider);border-radius:0;color:var(--ui-muted)}
body:has(#menu:not([hidden])) #battle-help,body:has(#death:not([hidden])) #battle-help,body:has(#menu[hidden]):has(#progress[hidden]) #battle-help{display:none}
body:has(#menu[hidden]) #language-control{display:none}
#lobby-dialog[data-afloat=false]{inset:calc(var(--hud-edge) + 54px) auto auto var(--hud-edge);width:min(340px,calc(100vw - 2 * var(--hud-edge)));max-height:calc(100dvh - 100px);margin:0;padding:18px;border:1px solid var(--ui-border);border-radius:10px;background:var(--ui-surface);color:var(--ui-text);box-shadow:0 3px 0 #30474c50;transform:none;scrollbar-color:var(--ui-line) var(--ui-surface)}
#lobby-dialog[data-afloat=false]::backdrop{background:#30474c18;backdrop-filter:none}
#lobby-dialog[data-afloat=false] .lobby-dialog-head{margin:0 0 8px;padding:0 0 12px;border-bottom:1px solid var(--ui-divider)}#lobby-dialog[data-afloat=false] h2{color:var(--ui-text);font-size:16px;font-weight:650}
#lobby-dialog[data-afloat=false] #lobby-dialog-close{width:30px;height:30px;border:0;border-radius:5px;background:none;color:var(--ui-muted)}
#lobby-dialog[data-afloat=false] .lobby-setting{padding:13px 0;border-top:1px solid var(--ui-divider);color:var(--ui-text);font-size:12px}
body:has(#menu[hidden]) #lobby-dialog[data-afloat=false] :is(.lobby-setting,#language-control) select{max-width:58%;height:34px;padding:5px 8px;border:1px solid var(--ui-line);border-radius:5px;background:var(--ui-recess);color:var(--ui-text);font-size:12px}
body:has(#menu[hidden]) #lobby-dialog[data-afloat=false] #language-control{display:flex;padding:13px 0!important;border:0!important;border-top:1px solid var(--ui-divider)!important;border-radius:0;background:none!important;color:var(--ui-text)!important;font-size:12px}
#lobby-dialog[data-afloat=false] .lobby-setting:has(#lobby-motion){display:none}#lobby-dialog[data-afloat=false] input[type=checkbox]{width:18px;height:18px;accent-color:var(--ui-accent)}
#lobby-dialog[data-afloat=false] .lobby-setting-note{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
/* Four figures and two actions. Sinking still owns the report timing. */
#death{padding:20px;background:#30474c70;backdrop-filter:none}
#death .death-card{width:390px;max-width:100%;margin:auto;padding:26px;border:1px solid var(--ui-border);border-radius:12px;background:var(--ui-surface);box-shadow:0 4px 0 #30474c50;color:var(--ui-text);text-align:center;text-shadow:none}
#death .death-card h1{margin:0 0 18px;color:inherit;font-size:23px;font-weight:700;line-height:1.4;letter-spacing:0}#deathscore{margin:0;color:inherit;font-size:12px;line-height:1.6}
.death-vessel{display:flex;flex-direction:column;align-items:center;gap:6px;min-height:63px;margin:0 0 18px}.death-portrait{display:block;width:144px;height:48px;flex:none}.death-vessel-name{font-size:12px;font-weight:500;line-height:1.5}
.death-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0;padding:18px 0;border:0;border-top:1px solid var(--ui-divider);border-bottom:1px solid var(--ui-divider)}.death-metric{min-width:0}.death-metric dt{margin:0 0 7px;color:var(--ui-muted);font-size:10px;line-height:1.4}.death-metric dd{margin:0;color:var(--ui-text);font-size:21px;font-weight:650;line-height:1.4;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.death-respawn-context{margin:14px 0 0;padding:0;border:0;color:var(--ui-muted);font-size:11px;line-height:1.6}
.death-actions{display:grid;grid-template-columns:1.3fr 1fr;gap:8px;margin-top:20px}
#death .death-actions button{height:42px;margin:0;padding:8px;border:1px solid var(--ui-line);border-radius:7px;background:var(--ui-recess);box-shadow:none;color:var(--ui-text);font-size:13px;font-weight:600;line-height:1.4;text-align:center;text-shadow:none;transform:none}
#death .death-actions button:before{float:none;margin-right:5px;font-size:17px}#death .death-actions #respawn{background:var(--ui-accent);border-color:var(--ui-accent);color:var(--ui-recess)}#death .death-actions button:hover{filter:brightness(1.08);transform:none}
#progress #next-evolution:not([hidden]){display:block;margin:5px 0 0;color:var(--ui-text);font-size:11px;font-weight:600}
#naval-status :is([data-resource=primary],[data-resource=secondary],[data-resource=ability]).ready .naval-hud-bar:not(.naval-hud-recharge){visibility:hidden}
#naval-status .naval-hud-card[data-resource=primary][data-fast-cycle=true] .naval-hud-bar:not(.naval-hud-recharge){visibility:visible;height:2px}
#naval-status [data-resource=ability].ready .naval-hud-value:after{content:"•";margin-left:6px;color:var(--ui-muted);font-size:11px}
#helm-tools button,.helm-close,#battle-nav button,#choices .choice{border-radius:4px;box-shadow:none}
#stats,#evolutions,#battle-info,#battle-help{border:0;border-radius:4px;box-shadow:none}
#choices .choice .choice-role{display:block;margin:0;font-size:11px;line-height:1.45;font-weight:400;letter-spacing:0;color:#dfe5df;text-shadow:none}
.death-cause{margin:0 0 12px;color:var(--ui-text);font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.death-credit-loss{display:block;color:var(--ui-muted);font-size:10px;line-height:1.5}
/* CT: one stable two-line effect area; purchase rows retain their positions. */
body.show-upgrades #stats{display:flex;flex-direction:column;overflow:hidden}
#stats>.helm-sheet-title,#stats>#points,#stats>#upgrade-preview{flex-shrink:0}
#stats>#statrows{min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scroll-padding-block:3px}
#upgrade-preview{height:42px;min-height:42px;margin:10px 0 0;padding-top:7px;border-top:1px solid var(--ui-divider);color:var(--ui-muted);font-size:11px;line-height:16px;white-space:pre-line;overflow:hidden;letter-spacing:0}
@media(min-width:761px) and (max-width:1100px){#stats,#evolutions{bottom:calc(var(--hud-edge) + var(--hud-player-height) + 12px);max-height:calc(100dvh - var(--hud-player-height) - 100px)}}
@media(max-width:900px){:root{--hud-edge:16px}#leaderboard{width:180px}#player-hud{--hud-player-width:340px}#helm-tools button{padding:0 10px}#minimap{width:104px}}
@media(max-width:760px){
 :root{--hud-edge:14px}#leaderboard{display:none!important}#mapbox{top:var(--hud-edge);bottom:auto}#minimap{width:84px}
 #player-hud{width:min(var(--hud-player-width),calc(100vw - 2 * var(--hud-edge)))}
 #helm-tools{bottom:calc(var(--hud-edge) + var(--hud-player-height) + 12px)}
 #stats,#evolutions{bottom:calc(var(--hud-edge) + var(--hud-player-height) + 66px);max-height:calc(100dvh - var(--hud-player-height) - 158px)}
 #top{left:108px;max-width:calc(100vw - 220px)}
}
@media(max-height:580px){
 :root{--hud-edge:12px}#leaderboard{display:none!important}#stats .stat{height:35px;min-height:35px}#stats,#evolutions{max-height:calc(100dvh - 100px)}
 #choices .choice{min-height:75px}#choices .choice canvas{height:34px}#minimap{width:84px}#player-hud{gap:7px;padding:0}
}
@media(max-width:520px){
 #player-hud{padding:0}#naval-status.naval-hud .naval-hud-grid{gap:7px 13px}#naval-status .naval-hud-card{flex-basis:130px}
 #stats,#evolutions{width:calc(100vw - 2 * var(--hud-edge))}#top{top:calc(var(--hud-edge) + 52px);left:var(--hud-edge);max-width:calc(100vw - 136px)}
}
@media(min-width:600px) and (max-width:760px) and (max-height:580px){
 #player-hud{left:auto;right:var(--hud-edge);width:calc(50vw - 30px);transform:none}
 #helm-tools{bottom:var(--hud-edge)}
 #stats,#evolutions{bottom:calc(var(--hud-edge) + 54px);width:calc(50vw - 30px);max-height:calc(100dvh - 140px)}
 #stats .stat{grid-template-columns:18px minmax(0,1fr) 63px 26px 26px}
 #stats .stat .segments{width:63px}
}
@media(prefers-reduced-motion:reduce){#helm-tools button,#choices .choice,#naval-status .naval-hud-bar>span{transition:none}}

