/* One layout contract replaces the old independently positioned HUD cards. */
:root{--edge:12px;--gap:8px;--touch-room:0px}body.touch-mode{--touch-room:170px}
#hudTop,#hudBottom{position:absolute;left:max(var(--edge),env(safe-area-inset-left));right:max(var(--edge),env(safe-area-inset-right));display:grid;gap:var(--gap);pointer-events:none;z-index:2}
#hudTop{top:max(var(--edge),env(safe-area-inset-top));grid-template-columns:250px minmax(0,1fr) 290px;align-items:start}
#hudBottom{bottom:calc(var(--edge) + var(--touch-room) + env(safe-area-inset-bottom));grid-template-columns:minmax(240px,440px) minmax(0,1fr) 360px;align-items:end}
#hudTop>.hud,#hudBottom>.hud{position:relative;inset:auto;width:auto;min-width:0;max-width:none;margin:0;pointer-events:auto}
#hudTop .field-title{grid-column:1;grid-row:1;padding:10px 12px}#hudTop .brand{font-size:18px}#hudTop .brand b{font-size:18px}#hudTop .field-name{margin-top:7px}#hudTop .weather{display:flex;flex-wrap:wrap;gap:5px 12px;font-size:10px;margin-top:7px}
#hudTop .top-tools{grid-column:2/4;grid-row:1;justify-self:end;display:flex;flex-wrap:wrap;gap:2px;padding:5px}#hudTop .top-tools button{padding:8px 9px;min-height:34px}
#hudTop .career-hud{grid-column:1;grid-row:2;padding:10px}#hudTop .career-hud>div:first-child{display:flex;align-items:center;justify-content:space-between}#hudTop .career-hud b{font-size:18px}.career-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.career-buttons button{min-height:32px;padding:5px;font-size:11px}.career-standing{width:100%;overflow-wrap:anywhere;font-size:10px;margin-top:5px}.zoom-tools{display:flex;justify-content:space-between;align-items:center;margin-top:5px}
#hudTop .equipment{grid-column:2;grid-row:2;justify-self:end;width:280px;max-width:100%;padding:10px}#hudTop .fight-hud{grid-column:3;grid-row:2;padding:10px}.telemetry{display:flex;flex-wrap:wrap;gap:7px 12px;line-height:1.3}.telemetry>span{white-space:nowrap}.telemetry b{margin-left:3px}.tension-caption{font-size:9px}
#fightLoads{position:static!important;inset:auto!important;width:auto!important;box-shadow:none;border:0;border-top:1px solid var(--line);padding:6px 0 0!important;margin-top:7px;font-size:10px!important;line-height:1.6;white-space:normal;backdrop-filter:none}
#hudBottom .section-panel{grid-column:1;grid-row:1;padding:7px 10px}#hudBottom .section-panel canvas{height:126px}#hudBottom .controls{grid-column:3;grid-row:1;padding:10px}.control-hint{font-size:10px;margin:8px 0 0}#hudBottom .field-status{grid-column:1/-1;grid-row:2;min-height:31px;padding:5px 10px;max-height:46px;overflow:hidden}#hudBottom .field-status p{font-size:11px;line-height:1.5}
#tooltip{position:relative!important;inset:auto!important;grid-column:1/-1;grid-row:3;width:100%;max-width:none;min-height:27px;padding:4px 10px;font-size:11px;line-height:1.5;box-shadow:none;border-radius:6px}#tooltip[hidden]{display:block;visibility:hidden}.compass{display:none}
#joystick{left:18px!important;bottom:calc(62px + env(safe-area-inset-bottom))!important;width:100px!important;height:100px!important}#touchLeft{left:138px!important;bottom:calc(72px + env(safe-area-inset-bottom))!important}#touchRight{right:20px!important;bottom:calc(72px + env(safe-area-inset-bottom))!important}.touch-mouse{width:70px;height:70px}.touch-tuning{left:12px!important;right:12px!important;bottom:calc(6px + env(safe-area-inset-bottom))!important;gap:12px;padding:6px 10px;height:48px}.touch-tuning label{font-size:11px}.touch-tuning input{margin-top:3px;height:20px}
.touch-mode #hudBottom .controls{grid-column:3;width:auto;padding:7px}.touch-mode #hudBottom .action-buttons,.touch-mode #hudBottom .control-hint{display:none}
#storeScene{inset:12px;max-width:none;border-radius:12px;z-index:5;display:flex}#storeScene[hidden]{display:none}#storeScene header{padding:10px 16px;gap:10px;min-height:64px}#storeScene header>div{margin-right:auto}#storeScene header h2{font-size:19px;margin:4px 0}#storeScene header small{font-size:9px;letter-spacing:1px}#storeScene header button{min-height:38px}.store-popup-body{overflow:hidden;min-height:0;flex:1}#storeCanvas{flex:1;width:100%;height:0;min-height:0!important;margin:0!important}.store-footer{position:static!important;margin:0!important;min-height:52px;padding:8px 12px;flex-shrink:0}.store-footer button{min-width:0;max-width:100%;padding:10px 12px;font-size:12px}.in-store.touch-mode .store-footer{height:140px;align-items:flex-start;justify-content:flex-end;padding:8px 12px}.in-store.touch-mode #joystick{bottom:24px!important;left:30px!important}.in-store #touchInteract{right:30px!important;bottom:30px!important;min-width:120px;max-width:45vw}.in-store #hudBottom{visibility:hidden}
@media(max-width:1100px){#hudTop{grid-template-columns:220px minmax(0,1fr) 260px}#hudBottom{grid-template-columns:minmax(220px,1fr) 16px minmax(220px,1fr)}#hudTop .top-tools button{padding:7px 6px;font-size:11px}#hudTop .equipment{width:220px}#hudTop .career-hud b{font-size:16px}}
@media(max-width:1100px){:root{--edge:8px;--gap:6px}#hudTop{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}#hudTop .top-tools{grid-column:1/-1;grid-row:1;justify-self:stretch;justify-content:space-between;flex-wrap:nowrap;padding:3px}#hudTop .top-tools button{padding:7px 4px;font-size:10px;min-height:32px}#hudTop .top-tools kbd,#hudTop .top-tools button>span{display:none}#hudTop .field-title{grid-column:1/-1;grid-row:2;padding:6px 10px}#hudTop .brand{display:none}#hudTop .field-name{display:block;font-size:11px;margin:0}#hudTop .field-name span{display:none}#hudTop .weather{display:flex;gap:4px 10px;font-size:9px;margin-top:4px}#hudTop .weather span{display:inline!important;grid-column:auto}#hudTop .weather span:nth-child(2),#hudTop .weather span:nth-child(3){display:none!important}
#hudTop .career-hud{grid-column:1/-1;grid-row:3;padding:5px 7px;display:grid;grid-template-columns:1fr 1fr;gap:3px}#hudTop .career-hud>div:first-child{grid-column:1;gap:5px;justify-content:flex-start}#hudTop .career-hud small{font-size:9px}#hudTop .career-hud b{font-size:13px}.career-buttons{grid-column:1/-1;grid-row:2;grid-template-columns:repeat(6,minmax(0,1fr));margin-top:0;gap:3px}.career-buttons button{font-size:9px;min-height:31px;padding:4px 1px;overflow-wrap:anywhere}.career-standing{grid-column:1;grid-row:3;margin:0;padding:2px;font-size:9px;min-height:20px}.zoom-tools{grid-column:2;grid-row:3;margin:0;font-size:9px;gap:5px;justify-content:flex-end}.zoom-tools button{min-height:22px;padding:0 10px}
#hudTop .equipment{grid-column:1;grid-row:4;width:100%;padding:7px;gap:5px}#hudTop .equipment .slot-icon{display:none}#hudTop .equipment b{font-size:11px}#hudTop .equipment small{font-size:9px;overflow-wrap:anywhere}#hudTop .equipment button{padding-left:7px}#hudTop .fight-hud{grid-column:2;grid-row:4;padding:7px}.meter-label span{font-size:8px;letter-spacing:.3px}.meter-label strong{font-size:16px}.tension-track{margin-top:7px}.tension-caption{font-size:7px;margin-top:6px}.telemetry{font-size:9px;gap:4px 8px;margin-top:5px;padding-top:5px}#fightLoads{font-size:9px!important;line-height:1.4}
#hudBottom{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}#hudBottom .section-panel{grid-column:1/-1;grid-row:1;width:auto}#hudBottom .section-panel canvas{height:72px}.section-head{font-size:11px}.section-head small{font-size:8px}#hudBottom .controls,.touch-mode #hudBottom .controls{grid-column:1/-1;grid-row:2;width:auto;padding:6px}.gauge{height:22px}.action-buttons button{padding:6px 2px;min-height:31px}.action-buttons kbd{display:none}#hudBottom .field-status{grid-row:3;min-height:28px;padding:4px 7px;max-height:36px}#hudBottom .field-status p{font-size:10px}#tooltip{grid-row:4;font-size:10px;min-height:24px;padding:3px 7px}.touch-mode #hudBottom .controls{padding:4px}.touch-mode #hudBottom .gauge{height:20px}#storeScene{inset:6px}#storeScene header{padding:9px;min-height:64px}#storeScene header h2{font-size:16px}#storeScene header small{font-size:8px}#storeScene header button{padding:8px;font-size:11px}.store-footer span{display:none}.store-footer button{min-width:0}}
@media(max-height:650px){:root{--edge:6px;--gap:4px}#hudTop .field-title{padding:5px 8px}#hudTop .weather{margin-top:3px}#hudTop .brand{display:none}#hudTop .career-hud{padding:5px}.career-buttons button{min-height:26px}#hudTop .fight-hud{padding:6px}.telemetry{margin-top:5px;padding-top:5px}#hudBottom .section-panel canvas{height:44px}#hudBottom .section-panel{padding:4px 7px}#hudBottom .field-status{max-height:27px;min-height:25px}#tooltip{min-height:22px;font-size:9px}body.touch-mode{--touch-room:135px}#joystick{width:82px!important;height:82px!important;bottom:52px!important}#touchLeft{left:115px!important;bottom:57px!important}#touchRight{bottom:57px!important}.touch-mouse{width:58px;height:58px}.touch-tuning{height:40px}}
@media(max-height:500px) and (min-width:600px){#hudTop{grid-template-columns:190px minmax(0,1fr) 230px}#hudTop .top-tools{grid-column:2/4;grid-row:1}#hudTop .field-title{grid-column:1;grid-row:1}#hudTop .field-name{font-size:10px}#hudTop .career-hud{grid-column:1;grid-row:2;display:block}.career-buttons{grid-template-columns:repeat(3,minmax(0,1fr))}.career-standing{display:none}.zoom-tools{justify-content:space-between}#hudTop .equipment{grid-column:2;grid-row:2;width:180px}#hudTop .fight-hud{grid-column:3;grid-row:2}#hudBottom{grid-template-columns:220px minmax(0,1fr) 230px;right:calc(260px + env(safe-area-inset-right))}#hudBottom .section-panel{grid-column:1;grid-row:1}#hudBottom .controls,.touch-mode #hudBottom .controls{grid-column:3;grid-row:1}#hudBottom .field-status{grid-row:2}#tooltip{grid-row:3}body.touch-mode{--touch-room:0px}.touch-mode #hudBottom{left:125px;grid-template-columns:220px minmax(0,1fr)}.touch-mode #hudBottom .controls{grid-column:2}#joystick{left:16px!important;bottom:15px!important}#touchLeft{left:auto!important;right:95px!important;bottom:15px!important}#touchRight{right:20px!important;bottom:15px!important}.touch-tuning{left:auto!important;right:12px!important;bottom:100px!important;width:225px;height:130px;flex-direction:column;gap:3px}.touch-tuning label{width:100%}.touch-tuning input{margin:0}#storeScene header{min-height:50px}.in-store.touch-mode .store-footer{height:100px}}

.touch-tuning{transform:none!important;width:auto!important}#hudTop .equipment{display:flex}#tooltip[hidden]{display:block!important;visibility:hidden}.telemetry>span{display:inline!important;flex:initial!important;grid-column:auto!important}.telemetry>span[hidden]{display:none!important}

#hudTop .line-hud{position:static;font-size:9px}#hudBottom .field-status,.touch-mode #hudBottom .field-status{display:block}.telemetry>span b{float:none!important}.touch-mode .touch-tuning{width:auto!important}.touch-mode #hudTop .field-name{display:block}

body.touch-mode #touchLeft{left:138px!important;right:auto!important;bottom:calc(72px + env(safe-area-inset-bottom))!important}body.touch-mode #touchRight{right:20px!important;bottom:calc(72px + env(safe-area-inset-bottom))!important}body.touch-mode .touch-tuning{left:12px!important;right:12px!important;transform:none!important;width:auto!important}
@media(max-height:650px) and (max-width:599px){body.touch-mode{--touch-room:125px}#hudTop .career-hud{gap:1px}.career-buttons button{min-height:24px}.career-standing{min-height:18px}#hudTop .fight-hud .telemetry{font-size:8px;gap:3px 5px}#hudBottom .section-panel canvas{height:22px}#hudBottom .section-head{font-size:9px}#hudTop .weather{font-size:8px}body.touch-mode #touchLeft{left:115px!important;bottom:55px!important}body.touch-mode #touchRight{bottom:55px!important}#hudBottom .field-status{max-height:24px;min-height:24px}.touch-mode #hudBottom .controls{padding:3px}.touch-mode #hudBottom .gauge{height:18px}}
@media(max-height:500px) and (min-width:600px){body.touch-mode #touchLeft{left:auto!important;right:95px!important;bottom:15px!important}body.touch-mode #touchRight{right:20px!important;bottom:15px!important}body.touch-mode .touch-tuning{left:auto!important;right:12px!important;bottom:90px!important;width:225px!important;height:90px;padding:4px 8px}.touch-tuning label{font-size:9px}.touch-tuning input{height:14px}#hudTop .fight-hud .telemetry{font-size:8px;gap:3px 5px}#hudTop .fight-hud .tension-caption{font-size:7px}#hudTop .fight-hud{padding:5px}#hudTop .equipment{padding:6px}#hudTop .career-hud .zoom-tools{display:none}#hudBottom .controls .gauge span{font-size:9px}#hudTop .field-title{padding:5px 7px}#hudTop .weather{font-size:8px;gap:3px 6px}}

#hudTop .equipment{flex-wrap:wrap}#tunePopup{position:static!important;inset:auto!important;transform:none!important;width:100%;padding:4px 6px;min-height:35px;flex-basis:100%;box-shadow:none;border-radius:5px}#tunePopup>div:first-child{font-size:10px;gap:4px}.tune-track{height:4px;margin-top:4px}#hudBottom .section-panel{display:block}
@media(max-height:650px) and (max-width:599px){#hudTop .career-hud .career-standing{display:none}#hudTop .career-hud .zoom-tools{grid-row:1;grid-column:2}#hudTop .career-hud{grid-template-rows:auto auto}#hudTop .career-hud>div:first-child{font-size:9px}.career-buttons{grid-row:2}#hudTop .equipment{padding:5px}#tunePopup{padding:3px 4px;min-height:30px}}
.telemetry>span{font-size:inherit!important}.telemetry>span b{font-size:inherit!important}@media(max-height:650px) and (max-width:599px){body.touch-mode{--touch-room:112px}#hudTop .fight-hud .tension-caption{display:none}#hudTop .fight-hud .telemetry{display:grid;grid-template-columns:1fr 1fr;font-size:8px;line-height:1.2}#hudTop .career-hud{padding:3px 5px}.career-buttons button{min-height:22px}#hudTop .equipment{align-content:start}#hudTop .equipment small{font-size:8px}}
@media(min-width:1101px){.touch-mode #hudBottom .section-panel canvas{height:90px}}

.light-hud{display:flex;flex-wrap:wrap;gap:5px 12px;margin-top:8px;padding-top:8px;border-top:1px solid #ffffff25;font-size:12px;line-height:1.4;color:#d8e9f7}.light-hud[data-period="dusk"]{color:#ffd5a9}.light-hud[data-period="dawn"]{color:#edcee3}.light-hud[data-period="day"]{color:#e9e7bb}.light-report{padding:16px;background:#142f38;border:1px solid #42606b;border-radius:10px;margin:12px 0 20px}.light-report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.light-report-grid div{display:flex;flex-direction:column;gap:6px}.light-report-grid small,.light-assumption{font-size:12px;line-height:1.6;color:#bdd0d1}.light-report-grid strong{font-size:16px;color:#f4ddac}.light-report-grid span{font-size:14px}.light-report p{font-size:14px;line-height:1.7}.lure-tone{display:block;margin:16px 0;font-size:14px}.lure-tone select{display:block;width:100%;margin:8px 0}.lure-tone small{display:block;font-size:12px;line-height:1.6;color:#bccfc4}
@media(max-width:599px){.light-hud{margin-top:5px;padding-top:5px;gap:3px 8px;font-size:12px}.light-report-grid{grid-template-columns:1fr}.light-report-grid div{padding-bottom:8px;border-bottom:1px solid #ffffff15}}

/* Original 2.5D bass study plates */
.bass-intro small{letter-spacing:.15em;color:#aaba89}.bass-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:22px 0}.bass-gallery article{min-width:0}.bass-plate{position:relative;border:1px solid #aaba8940;border-radius:12px;background:radial-gradient(ellipse at 45% 30%,#e4e4cc,#b2bc9e);overflow:hidden}.bass-plate canvas{display:block;width:100%;height:160px}.bass-plate span{position:absolute;bottom:10px;left:14px;font:12px monospace;color:#42543e}.bass-gallery h3{font-size:14px;margin:13px 0 5px}.bass-gallery p{font-size:12px;line-height:1.7;color:#b5c1ad}.bass-intro p{line-height:1.8}#bassGuide{width:100%;margin:8px 0 16px}@media(max-width:640px){.bass-gallery{grid-template-columns:1fr}.bass-plate canvas{height:180px}}

.bass-plate canvas{height:auto;aspect-ratio:1.75}
