/* An active cast gets the water back; harbor tools return when idle. */
:root{--tides-safe-top:env(safe-area-inset-top,0px);--tides-safe-bottom:env(safe-area-inset-bottom,0px)}
.cast-active .game-header{top:calc(12px + var(--tides-safe-top))}.cast-active .game-header .hud{display:none}.cast-active .game-header .hud-controls{margin-top:0;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:8px;row-gap:0}.cast-active .game-header .top-tools,.cast-active .game-header .place-sign{display:none}
.cast-active .game-header .hud-controls .player-profile-button{grid-column:1;grid-row:1;min-height:44px;padding:4px 6px;gap:6px;box-shadow:none}.cast-active .profile-name,.cast-active .profile-open{display:none}.cast-active .profile-copy{column-gap:4px;row-gap:3px}.cast-active .profile-copy #player-level{grid-column:1;grid-row:1;font-size:18px}.cast-active .profile-copy #player-xp{grid-column:2;grid-row:1;font-size:14px}.cast-active .profile-copy .xp-track{grid-column:1 / -1;grid-row:2;height:3px}.cast-active .player-profile-button .player-avatar{width:24px;height:28px}.cast-active .player-profile-button .player-avatar img{left:-6px}
.cast-active .game-header .back-button{grid-column:2;grid-row:1;min-height:44px;font-size:18px;padding:6px;box-shadow:none}
.map-choice{display:flex;margin:0 0 10px}.map-choice button{min-height:44px;width:100%;font-size:20px;padding:5px;background:#dce7d4;border:1px solid #9cb6a2;color:#315963}
.cast-active .fishing-panel{left:16px;right:16px;bottom:calc(12px + var(--tides-safe-bottom))}.cast-active .gear-summary,.cast-active .map-choice{display:none}.cast-active .fishing-status{min-height:0;margin:0 0 5px;padding:0;border:0;box-shadow:none;background:#305d6b;font-size:20px;line-height:1.05;text-align:center;display:block}.cast-active .mini-bag{display:none}
.cast-active .fishing-meter{padding:6px 8px;margin:0 0 6px;border-width:1px;box-shadow:none}.cast-active .meter-title{font-size:18px;line-height:1.05;margin-bottom:3px}.cast-active .meter-track{height:10px}.cast-active .pull-caption{font-size:18px;line-height:1.05;margin:5px 0 3px}.cast-active .pull-progress{height:6px;margin:0}.cast-active .danger-zone{height:100%}
.cast-active .fish-controls{display:flex;gap:8px;margin:0}.cast-active .cast-button{flex:1;min-width:0;min-height:48px;height:48px;font-size:25px;padding:6px;box-shadow:inset 0 -3px #c79658,0 2px #315963}.cast-active .auto-button{display:none}.cast-active.auto-active .auto-button{display:block;flex:none;width:76px;min-height:48px;height:48px;font-size:17px;padding:4px}.cast-active.auto-active .auto-button small{font-size:15px}
.cast-active .fishing-footnote{font-size:18px;line-height:1.05;padding:0;margin:6px 0 0;text-align:center;background:transparent}
.cast-active:not(.is-reeling):not([data-cast-stage="catch-pending"]) .fish-controls{display:none}.cast-active.auto-active:not(.is-reeling) .fish-controls{display:flex;justify-content:flex-end}.cast-active.auto-active:not(.is-reeling):not([data-cast-stage="catch-pending"]) .cast-button{display:none}.cast-active:not(.is-reeling) .fishing-footnote{display:none}
.cast-active .tutorial-hint{display:none}.cast-active .meter-title,.cast-active .pull-caption,.cast-active #tension-label{font:20px/1.05 VT323UI,monospace}.cast-active .pull-progress{height:8px}
@media(min-width:361px){.cast-active .fishing-panel{left:20px;right:20px}}
/* iOS press/hold must not select button text or open the touch callout. */
#cast-button,#cast-button *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none}
