diff --git a/README.md b/README.md
index 0705761..9b8a2e8 100644
--- a/README.md
+++ b/README.md
@@ -118,7 +118,9 @@ The detail lives in dedicated documents:
animating the whole plant as a simulated SCADA overview, from PVC intake
and the material lab through extruder, press, trim, optical inspection,
finishing, packaging and fulfillment, with the metal path, utilities and
- energy alongside; open it in a browser, every station is clickable
+ energy alongside; open it in a browser, every station is clickable;
+ on phones and tablets held sideways it pinch-zooms and opens station
+ details in a side sheet
- [Test site](site/README.md): `site/` builds https://cnxvinyl.lol/, the
internal test site with demo pages from `docs/` (the plant operation
page first) and any static site we want to share by link; Gitea Actions
diff --git a/docs/plant-operation.html b/docs/plant-operation.html
index 98e1e6f..286df65 100644
--- a/docs/plant-operation.html
+++ b/docs/plant-operation.html
@@ -12,22 +12,31 @@
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
-body{background:var(--bg);color:var(--fg);font:13px/1.4 -apple-system,"Segoe UI",Roboto,Arial,sans-serif;display:flex;flex-direction:column;height:100vh;overflow:hidden}
-header{display:flex;align-items:center;gap:16px;padding:7px 14px;background:var(--panel);border-bottom:1px solid var(--stroke);flex:0 0 auto}
+html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
+body{background:var(--bg);color:var(--fg);font:13px/1.4 -apple-system,"Segoe UI",Roboto,Arial,sans-serif;display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden}
+header{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;padding:7px 14px;background:var(--panel);border-bottom:1px solid var(--stroke);flex:0 0 auto}
header h1{font-size:15px;font-weight:600;letter-spacing:.02em;white-space:nowrap}
header h1 span{color:var(--mute);font-weight:400}
-.kpis{display:flex;gap:14px;margin-left:auto}
-.kpi{display:flex;flex-direction:column;min-width:70px}
+.kpis{display:flex;gap:12px;margin-left:auto;min-width:0;max-width:100%;overflow-x:auto;scrollbar-width:none}
+.kpis::-webkit-scrollbar{display:none}
+.kpi{display:flex;flex-direction:column;min-width:70px;flex:0 0 auto}
.kpi b{font:600 15px var(--mono);white-space:nowrap}
.kpi small{color:var(--mute);font-size:10px;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}
-.ctl{display:flex;gap:6px;align-items:center;margin-left:16px}
+.ctl{display:flex;gap:6px;align-items:center;flex:0 0 auto}
button{background:#182238;color:var(--fg);border:1px solid var(--stroke);border-radius:4px;padding:4px 9px;font-size:12px;cursor:pointer;white-space:nowrap}
button:hover{background:#1f2c47}
button.on{background:#244a7a;border-color:#3b74b8}
button.demo{border-color:#5a4a1f;color:#ffd777}
-main{flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;padding:4px 10px}
-svg{width:100%;height:100%}
-footer{flex:0 0 210px;display:grid;grid-template-columns:1.1fr 1fr 0.9fr;gap:10px;padding:8px 14px 10px;background:var(--panel);border-top:1px solid var(--stroke);min-height:0}
+main{flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;padding:4px 10px;position:relative}
+svg{width:100%;height:100%;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}
+svg.zoomed{cursor:grab}
+svg.dragging{cursor:grabbing}
+.mapctl{position:absolute;right:12px;bottom:8px;display:flex;gap:2px;z-index:2}
+.mapctl button{background:rgba(24,34,56,.88);min-width:30px}
+#btnInfo,footer .tabs{display:none}
+#hint{display:none;position:absolute;top:8px;left:50%;transform:translateX(-50%);background:var(--box);border:1px solid var(--stroke);border-radius:6px;padding:6px 10px;color:var(--mute);font-size:12px;white-space:nowrap;z-index:2}
+footer .tabs button.close{margin-left:auto;min-width:32px}
+footer{flex:0 0 clamp(150px,26vh,210px);display:grid;grid-template-columns:1.1fr 1fr 0.9fr;gap:10px;padding:8px 14px 10px;background:var(--panel);border-top:1px solid var(--stroke);min-height:0}
.panel{background:var(--box);border:1px solid var(--stroke);border-radius:6px;padding:8px 12px;overflow:auto;min-height:0}
.panel h2{font-size:13px;margin-bottom:4px}
.panel h3{font-size:11px;color:var(--mute);text-transform:uppercase;letter-spacing:.06em;margin:6px 0 2px}
@@ -45,6 +54,35 @@ footer{flex:0 0 210px;display:grid;grid-template-columns:1.1fr 1fr 0.9fr;gap:10p
.legend i.d{border-top-style:dashed}
.legend .note{grid-column:1/3;color:var(--mute);margin-top:6px;font-size:10.5px}
+/* Short screens (phones held sideways): one-row header with a scrolling KPI
+ strip, the drawing takes the rest, panels open as a sheet on the right. */
+@media (max-height:560px){
+ header{flex-wrap:nowrap;gap:8px;padding:4px 8px}
+ header h1{font-size:13px}
+ header h1 span{display:none}
+ .ctl{gap:4px}
+ button{padding:4px 7px;font-size:11px;min-height:28px}
+ .kpis{flex:1 1 0;gap:10px}
+ .kpi{min-width:56px}
+ .kpi b{font-size:13px}
+ .kpi small{font-size:9px}
+ main{padding:2px 4px}
+ .mapctl{right:8px;bottom:4px}
+ body.sheet .mapctl{right:calc(min(420px,55vw) + 8px)}
+ #btnInfo{display:inline-block}
+ footer{position:fixed;z-index:5;top:var(--hdrH,37px);right:0;bottom:0;width:min(420px,55vw);display:none;flex-direction:column;gap:6px;padding:6px;border-top:0;border-left:1px solid var(--stroke);box-shadow:-8px 0 24px rgba(0,0,0,.45)}
+ body.sheet footer{display:flex}
+ footer .tabs{display:flex;gap:4px;flex:0 0 auto}
+ footer .panel{display:none;flex:1 1 auto}
+ body[data-panel=detail] #detail,body[data-panel=log] #logPanel,body[data-panel=legend] #legendPanel{display:block}
+}
+/* Phones held upright: the plant is too wide, ask for landscape. */
+@media (orientation:portrait) and (max-width:600px){
+ #hint{display:block}
+ header h1{white-space:normal}
+ .ctl{flex-wrap:wrap}
+}
+
/* SVG */
.mbox{fill:#121a2b;stroke:#2a3a56;stroke-width:1}
.machine{cursor:pointer}
@@ -111,6 +149,7 @@ footer{flex:0 0 210px;display:grid;grid-template-columns:1.1fr 1fr 0.9fr;gap:10p
+
08:00:00sim clock
@@ -132,15 +171,27 @@ footer{flex:0 0 210px;display:grid;grid-template-columns:1.1fr 1fr 0.9fr;gap:10p
+
+
+
+
+
+
Turn the phone sideways for the plant view