diff --git a/src/static_src/scss/_base.scss b/src/static_src/scss/_base.scss index 7503529..256c9fd 100644 --- a/src/static_src/scss/_base.scss +++ b/src/static_src/scss/_base.scss @@ -412,14 +412,24 @@ body { } } + // ©2026 Dis Co. — single-line vertical strip at the right edge of + // the right sidebar (= the very right edge of the viewport in + // landscape). Reads bottom-to-top via writing-mode: vertical-rl + + // rotate(180deg) — same pattern as the navbar's rotated brand + // wordmark. Tucks into the empty 0.875rem gutter between the + // viewport edge and the centred icon/btn column, no overlap. .footer-container { position: absolute; - top: 0.25rem; - text-align: center; - line-height: 0.75 !important; + right: 0.125rem; + bottom: 0.5rem; + top: auto; + line-height: 1 !important; color: rgba(var(--secUser), 1); + writing-mode: vertical-rl; + transform: rotate(180deg); + white-space: nowrap; - br { display: block; } + br { display: none; } small { font-size: 0.75rem !important; @@ -447,7 +457,8 @@ body { .footer-container { line-height: 1; - margin-top: 0.5rem; + // margin-top vestige of the absolute-top-anchored layout — + // dropped now that the rotated text is bottom-anchored. small { font-size: 1rem; diff --git a/src/static_src/scss/_bud.scss b/src/static_src/scss/_bud.scss index 9941e77..929dcc9 100644 --- a/src/static_src/scss/_bud.scss +++ b/src/static_src/scss/_bud.scss @@ -12,14 +12,15 @@ bottom: 0.5rem; left: 0.5rem; - // In landscape, centre the btn within the navbar sidebar — the sidebar - // is `var(--sidebar-w)` wide and the btn is 3rem, so left = (sidebar-w - // − 3rem) / 2. The clamp on the root font-size means that calc resolves - // to a sane value across viewport sizes; no per-breakpoint override. + // In landscape, the bud-btn moves to the UPPER-RIGHT corner of the + // footer sidebar (top of the right sidebar). Centred within the + // var(--sidebar-w) column. Mirrors kit-btn / gear-btn (bottom-right) + // for the horizontal-centre formula, but anchors at top instead. @media (orientation: landscape) { - left: calc((var(--sidebar-w) - 3rem) / 2); - bottom: 0.5rem; - top: auto; + left: auto; + right: calc((var(--sidebar-w) - 3rem) / 2); + top: 0.5rem; + bottom: auto; } z-index: 318; @@ -63,10 +64,15 @@ opacity: 0; @media (orientation: landscape) { - // Clear both fixed sidebars; --sidebar-w scales fluidly via the - // root rem clamp, so this is the only landscape rule needed. + // Bud-btn lives at the top of the right sidebar in landscape, so + // the panel slides out leftward from the right edge along the top. + // Clear both fixed sidebars; transform-origin flips to right so + // the closed state collapses into the bud-btn. + top: 0.5rem; + bottom: auto; left: calc(var(--sidebar-w) + 0.5rem); right: calc(var(--sidebar-w) + 0.5rem); + transform-origin: right center; } #id_recipient { @@ -119,8 +125,8 @@ html:has(#id_kit_bag_dialog[open]) #id_bud_btn { // ── Bud autocomplete suggestions (mirror of sky-place birth picker) ── // Sibling of #id_bud_panel (which has overflow:hidden for the scaleX // slide animation, so the suggestions can't be a child or they'd clip). -// Position-fixed above the panel; same left/right inset as the panel -// at each breakpoint so the dropdown lines up. +// Position-fixed; portrait sits ABOVE the panel (panel at bottom), +// landscape sits BELOW the panel (panel at top of viewport). .bud-suggestions { position: fixed; bottom: 4rem; // panel bottom (0.5rem) + height (3rem) + gap (0.5rem) @@ -135,6 +141,10 @@ html:has(#id_kit_bag_dialog[open]) #id_bud_btn { box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.4); @media (orientation: landscape) { + // Panel now at top in landscape, so suggestions drop downward. + top: 4rem; + bottom: auto; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4); left: calc(var(--sidebar-w) + 0.5rem); right: calc(var(--sidebar-w) + 0.5rem); }