/* Fishing presentation only. The aquarium, store and journal keep their existing styles. */
:root{--ffw-fishing-height:100vh;--ffw-fishing-safe-top:env(safe-area-inset-top,0px);--ffw-fishing-safe-bottom:env(safe-area-inset-bottom,0px)}
@supports(height:100svh){:root{--ffw-fishing-height:100svh}}
@supports(height:100dvh){:root{--ffw-fishing-height:100dvh}}
#app:has(#view-fishing:not([hidden])){height:var(--ffw-fishing-height);min-height:0;display:flex;flex-direction:column;overflow:hidden}
#app:has(#view-fishing:not([hidden])) .app-header{flex-shrink:0;height:calc(52px + var(--ffw-fishing-safe-top));padding:calc(4px + var(--ffw-fishing-safe-top)) 12px 4px;gap:8px}
#app:has(#view-fishing:not([hidden])) .app-header .brand{min-height:44px;gap:8px}
#app:has(#view-fishing:not([hidden])) .app-header .brand small{display:none}
#app:has(#view-fishing:not([hidden])) .app-header .brand-mark{width:31px;height:31px}
#app:has(#view-fishing:not([hidden])) .app-header>.icon-button{width:44px;height:44px;padding:10px}
#app:has(#view-fishing:not([hidden])) #storage-warning{flex-shrink:0}
#app:has(#view-fishing:not([hidden])) #main-content{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;padding:8px 12px calc(72px + var(--ffw-fishing-safe-bottom))}
#app:has(#view-fishing:not([hidden])) #main-content::-webkit-scrollbar{display:none}
#app:has(#view-fishing:not([hidden])) .bottom-nav{height:calc(64px + var(--ffw-fishing-safe-bottom));padding:5px 12px calc(5px + var(--ffw-fishing-safe-bottom))}
#view-fishing{height:100%;min-height:0;animation:none}
#view-fishing>.page-heading{display:none}
#fishing-workspace{height:100%;min-height:0;display:flex;flex-direction:column;gap:8px}
#view-fishing .location-tabs{flex-shrink:0;margin:0;padding:2px;gap:3px;border-radius:10px}
#view-fishing .location-tabs button{min-height:44px;font-size:12px;gap:5px}
#view-fishing .location-tabs button svg{width:18px;height:18px}
#view-fishing .location-tabs .tab-caption{font-size:8px;margin-left:1px}
#view-fishing #fishing-help{flex:0 0 44px;min-width:44px;padding:0;border-left:1px solid #d6ddcf;border-radius:0}
#view-fishing #fishing-help>span{width:19px;height:19px;font-size:11px;pointer-events:none}
#view-fishing .angling-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:8px;flex-shrink:0;margin:0}
#view-fishing .method-tabs{padding:2px;gap:2px;border-radius:9px}
#view-fishing .method-tabs button{min-height:44px;padding:4px;font-size:10px}
#view-fishing .rig-row{gap:4px;min-width:0;min-height:44px}
#view-fishing .rig-select{min-width:0;min-height:44px;font-size:11px;padding:4px 0}
#view-fishing #rig-stock{font-size:8px}
#view-fishing #retrieve-rig{min-width:38px;min-height:44px;font-size:10px;padding:4px}
#view-fishing[data-method="lure"][data-lure-active="true"] #rig-stock{display:none}
#view-fishing.is-fighting .location-tabs{display:none}
#view-fishing:has(#lure-panel:not([hidden])) .location-tabs,#view-fishing:has(#float-panel:not([hidden])) .location-tabs{display:none}
#view-fishing .fishing-stage{display:flex;flex-direction:column;flex:1;min-height:80px;border:1px solid #ced8c8;border-radius:14px;overflow:hidden;background:#e8eddf}
#view-fishing .fishing-caption{position:static;flex-shrink:0;display:flex;align-items:center;gap:6px;min-height:29px;max-width:none;padding:6px 10px;border:0;border-radius:0;background:#e8eddf;color:#456654;font-size:10px;line-height:1.5;backdrop-filter:none;pointer-events:none}
#view-fishing .fishing-caption .live-dot{flex-shrink:0;margin:0;width:4px;height:4px}
#view-fishing #spot-name{min-width:0;white-space:nowrap}
#view-fishing #spot-description{display:block;margin:0 0 0 auto;color:#7c8a74;font-size:8px;font-weight:400;line-height:1.5;white-space:nowrap}
/* This supersedes legacy phase-specific height caps, without stretching the canvas bitmap. */
#view-fishing .fishing-stage>.fishing-scene{flex:1;min-height:0;height:auto!important;border-radius:0;overflow:hidden}
#view-fishing #fishing-canvas{position:absolute;inset:0;width:100%;height:100%}
#view-fishing .scene-corner{bottom:10px;right:10px;font-size:10px;color:#f4f4e0;letter-spacing:.04em;text-shadow:0 1px 3px #234c41}
#view-fishing .fishing-panel{flex-shrink:0;padding:0;display:flex;flex-direction:column;gap:8px}
/* Phase titles remain available to assistive technology; the active meters carry visible status. */
#view-fishing .step-line{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#view-fishing .action-help{font-size:10px;line-height:1.5;margin:0;min-height:0;color:#6e8073}
#view-fishing:has(#float-panel:not([hidden])) .action-help,#view-fishing:has(#lure-panel:not([hidden])) .action-help,#view-fishing.is-fighting .action-help{display:none}
#view-fishing #cast-meter-panel{margin:0}
#view-fishing #cast-meter-panel .meter-label{margin-bottom:5px;font-size:10px}
#view-fishing #cast-meter-panel .meter-legend{display:none}
#view-fishing #float-panel{margin:0;min-height:46px;padding:7px 10px}
#view-fishing #float-panel strong{font-size:12px;line-height:1.4}
#view-fishing #float-panel span{font-size:10px;line-height:1.5;margin-top:2px}
#view-fishing #lure-panel{margin:0;padding:6px 9px}
#view-fishing .lure-speed-row{font-size:10px;gap:6px}
#view-fishing .lure-speed-row .speed-controls button{min-height:44px;min-width:42px;font-size:11px;padding:4px 8px}
#view-fishing #lure-status{font-size:10px;min-height:15px;margin-top:3px;line-height:1.5}
#view-fishing #fight-panel{margin:0}
#view-fishing #fight-panel .battle-readout{font-size:11px;min-height:17px;gap:7px;margin:0 0 4px}
#view-fishing #fight-panel .stamina-track{height:6px}
#view-fishing #fight-panel .battle-cue{font-size:12px;line-height:1.4;min-height:18px;margin:0 0 7px}
#view-fishing #fight-panel .meter-label{font-size:10px;line-height:1.4;gap:8px;margin-bottom:6px}
#view-fishing #tension-text{font-size:11px;max-width:74%;text-align:right;font-variant-numeric:tabular-nums}
#view-fishing #fight-panel .meter-legend{font-size:8px;margin-top:5px}
#view-fishing #fight-panel .progress-row{font-size:10px;margin:7px 0 0;gap:8px}
#view-fishing #fish-action{min-height:56px;padding:12px 10px;font-size:13px;gap:8px;flex-shrink:0}
#view-fishing #fish-action .button-arrow{display:none}
#view-fishing .fishing-extras{padding:18px 2px 10px}
#view-fishing .fishing-extras .secondary-line{display:flex;min-height:20px;margin:0 0 9px}
#view-fishing .fishing-extras .journal-strip{min-height:60px}
#view-fishing.is-fighting .fishing-extras,#view-fishing:has(#lure-panel:not([hidden])) .fishing-extras,#view-fishing:has(#float-panel:not([hidden])) .fishing-extras{display:none}
@media(min-width:375px){#view-fishing #fish-action{font-size:14px;min-height:58px}#view-fishing .method-tabs button{font-size:11px}}
@media(max-width:350px){#view-fishing #spot-description{display:none}#view-fishing .rig-select{font-size:10px}#view-fishing .location-tabs{gap:2px}#view-fishing .location-tabs button{gap:3px}#view-fishing .lure-speed-row>span{font-size:9px}}
@media(max-height:620px){#fishing-workspace{gap:6px}#view-fishing .fishing-panel{gap:6px}#view-fishing .fishing-caption{min-height:27px;padding:5px 9px}#view-fishing #fight-panel .battle-cue{font-size:11px;margin-bottom:5px}}
