/* Keep browser zoom and native touch scrolling; never set a maximum scale. */
html{touch-action:pan-x pan-y pinch-zoom;-webkit-text-size-adjust:100%}
.app-update-bar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:8px 0 16px;padding:6px 0;background:transparent}
#appUpdate,#appBinaryUpdate{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:170px;min-width:170px;max-width:170px;height:44px;padding:6px 8px;flex:0 0 170px;line-height:1.15;font-size:12px;border:1px solid #adcfc2;border-radius:8px;background:#fff;color:#195e52;text-decoration:none;white-space:normal;text-align:center}
#appUpdateStatus{font-size:12px;flex:1 1 200px;overflow-wrap:anywhere;color:#48675d}
#appBinaryUpdate[hidden]{display:none}
dialog{max-height:calc(100dvh - 24px);overflow:auto;overscroll-behavior:contain}
html[data-device=mobile] main{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));min-width:0}
html[data-device=mobile] :is(input,select,textarea){font-size:16px}
@media(max-width:380px){html[data-device=mobile] .row{grid-template-columns:1fr}.fp-tools{grid-template-columns:repeat(2,minmax(0,1fr))}.fp-foot button{width:130px}}
@media(prefers-reduced-motion:no-preference){
 dialog[open]{animation:sp-dialog-in 150ms ease-out}
 button,a.workspace-button{transition:background-color 120ms ease,border-color 120ms ease,box-shadow 120ms ease}
 @keyframes sp-dialog-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
