diff --git a/src/lib/components/bench/FocusView.svelte b/src/lib/components/bench/FocusView.svelte index c9e4d9f..745df66 100644 --- a/src/lib/components/bench/FocusView.svelte +++ b/src/lib/components/bench/FocusView.svelte @@ -67,6 +67,11 @@ {/key} + + + {/if} @@ -195,6 +200,11 @@ container-name: detail; } + /* Only a phone needs the pill clearance (desktop docks the controls in the sidebar). */ + .pill-clearance { + display: none; + } + /* The phone: no room for a side rail, so the whole focus becomes ONE vertically scrolling column - the roster as a horizontal filmstrip on top, the workbench (itself fully stacked) beneath it. @@ -202,15 +212,27 @@ screen that has no height to spare. */ @media (max-width: 768px) { + /* Block, not grid: the focus becomes a single scrolling column (filmstrip, workbench, then the + pill clearance). A grid scroll container did not count a trailing spacer row in its scroll + extent, so the last controls stayed pinned under the floating pill; block layout does. */ .focus { - grid-template-columns: minmax(0, 1fr); - grid-template-rows: auto auto; + display: block; height: auto; min-height: 100%; overflow-y: auto; overflow-x: hidden; padding: var(--sp-4); - gap: var(--sp-4); + } + + .rail-wrap { + margin-bottom: var(--sp-4); + } + + /* The clearance that lets the last workbench controls scroll clear of the floating transport + pill. It is a real grid row (an element with height), reliably counted in the scroll extent. */ + .pill-clearance { + display: block; + height: calc(env(safe-area-inset-bottom, 0px) + 84px); } .rail { diff --git a/src/lib/components/common/Segmented.svelte b/src/lib/components/common/Segmented.svelte index a6f6173..19e9bbe 100644 --- a/src/lib/components/common/Segmented.svelte +++ b/src/lib/components/common/Segmented.svelte @@ -110,9 +110,13 @@ color: var(--ink); } - /* The chosen segment lifts off the track: it takes the panel colour and a small shadow. */ + /* The chosen segment lifts OFF the track. The track is `--chip` (panel tinted TOWARD the ink - a + little lighter in dark, a little darker in light), so a plain `--panel` fill lifts in light but + SINKS in dark, where it comes out darker than the track (the selected segment read as a recessed + hole with a leaking shadow). Mixing a touch of white in makes the thumb sit ABOVE the track in + both themes - unchanged white in light, a genuinely lighter grey in dark. */ .checked { - background: var(--panel); + background: color-mix(in srgb, var(--panel), #fff 15%); color: var(--ink); box-shadow: var(--shadow-segment); }