diff --git a/src/static_src/scss/_sky.scss b/src/static_src/scss/_sky.scss
index 3622988..b66ad26 100644
--- a/src/static_src/scss/_sky.scss
+++ b/src/static_src/scss/_sky.scss
@@ -199,6 +199,11 @@ html.sky-open .sky-modal-wrap {
// priUser fill, secUser gold border + text, pill rounding, terUser focus glow.
input {
width: 100%;
+ // min-width:0 lets the input shrink below its native content-width on
+ // iOS Firefox, which gives widgets a fixed
+ // minimum that would otherwise spill past .sky-form-main on narrow
+ // phones & trigger horizontal page scroll.
+ min-width: 0;
background-color: rgba(var(--priUser), 1);
color: rgba(var(--secUser), 1);
border: 0.1rem solid rgba(var(--secUser), 0.5);
@@ -921,7 +926,11 @@ body.page-sky {
}
}
-// Sky page fills the aperture; its content can scroll past the bottom edge
+// Sky page fills the aperture; its content can scroll past the bottom edge.
+// overflow-x: hidden clips any horizontal overflow that would otherwise create
+// page-level horizontal scroll on iOS Firefox — html/body overflow:hidden on
+// page-sky doesn't always catch native widgets whose
+// minimum content width exceeds the form column on narrow phones.
.sky-page {
position: relative;
flex: 1;
@@ -929,6 +938,7 @@ body.page-sky {
display: flex;
flex-direction: column;
overflow-y: auto;
+ overflow-x: hidden;
}
// DEL btn pinned at the wheel center — only rendered when chart_data exists.