/* fitzoom.css v1 2026-10-29: hymn page zoom buttons (top right) + full-screen play row that hides until a tap */
#fsZoom{position:fixed;top:calc(env(safe-area-inset-top) + 8px);right:calc(env(safe-area-inset-right) + 8px);z-index:1003;display:flex;gap:6px}
#fs.hidden #fsZoom{display:none}
#fsZoom button{background:#000a;color:#fff;border:0;border-radius:999px;min-width:46px;min-height:46px;padding:0 12px;font:600 24px/1 var(--sans,system-ui);cursor:pointer;backdrop-filter:blur(6px);opacity:.85;touch-action:manipulation}
#fsZoom #fzFit{font-size:16px;min-width:58px}
#fsZoom #fzFit[aria-pressed="true"]{background:var(--accent,#9b6b2f);opacity:1}
#fsZoom button:disabled{opacity:.35;cursor:default}
#fsZoom button:hover:not(:disabled),#fsZoom button:focus-visible{opacity:1}
#fs #fspage{margin-left:auto;margin-right:auto}
/* narrow phones: Full screen shows its icon only so the top row fits; buttons stay big */
@media (max-width:520px){#fsTopL .fslbl{display:none}#fsTopL #fsFull{min-width:46px;min-height:46px;font-size:20px;padding:0 10px}#fsTopL #fsLang{min-height:46px}#fsZoom button{min-width:46px}}
/* full screen: play row hides after 3 s; any tap on the page brings it back (master.js .ctl) */
html.fsfull #fs:not(.ctl) #fsctl{opacity:0;pointer-events:none}
/* page top margin set by fitzoom.js: under the corner buttons, or none when the page fits between them */
#fs #fspage{margin-top:var(--fstop,60px)}
/* pagepad 2026-10-29 (owner 1:00 PM): ~1/4 inch of empty paper around the page picture (display only, image files untouched).
   The dots layer is inset by the same padding so dots / ink / lyric boxes stay on the notes; fitzoom.js counts it in the fit. */
#fs{--fspad:24px}
@media (max-width:520px){#fs{--fspad:14px}}
#fs #fsscroll{background:#ebe7de}
#fs #fspage{box-sizing:border-box;padding:var(--fspad);background:#fff;box-shadow:0 2px 14px #0002}
#fs #fsdots{inset:var(--fspad)}
