/* Device insets: shared by every shipped page, including login and offline.
   Variables also allow deterministic inset simulation in browser checks. */
:root {--hg-safe-top:env(safe-area-inset-top,0px);--hg-safe-right:env(safe-area-inset-right,0px);--hg-safe-bottom:env(safe-area-inset-bottom,0px);--hg-safe-left:env(safe-area-inset-left,0px)}
html {box-sizing:border-box;padding-top:var(--hg-safe-top);padding-right:var(--hg-safe-right);padding-bottom:var(--hg-safe-bottom);padding-left:var(--hg-safe-left);scroll-padding-top:calc(12px + var(--hg-safe-top))}
/* Sticky elements use viewport coordinates, independently of page padding. */
body #datebar,body .ua-detail-open .ua-detail-nav {top:var(--hg-safe-top)}
body.has-preview #datebar,body.has-preview .ua-detail-open .ua-detail-nav {top:calc(38px + var(--hg-safe-top))}
/* Full-screen forms retain their existing spacing; only unsafe edges add space. */
@media(max-width:900px){
 body dialog {max-height:calc(100dvh - var(--hg-safe-top) - var(--hg-safe-bottom));max-width:calc(100vw - var(--hg-safe-left) - var(--hg-safe-right))}
 body.users-redesign[data-hg-ui] #modal {height:calc(100dvh - var(--hg-safe-top));max-height:calc(100dvh - var(--hg-safe-top));margin-top:var(--hg-safe-top);margin-left:var(--hg-safe-left);width:calc(100% - var(--hg-safe-left) - var(--hg-safe-right))}
 body.users-redesign[data-hg-ui] #m-foot {padding-bottom:calc(16px + var(--hg-safe-bottom))}
 body #sheet {top:var(--hg-safe-top);left:var(--hg-safe-left);right:var(--hg-safe-right)}
 body #sheet .sh-f {padding-bottom:calc(12px + var(--hg-safe-bottom))}
}
@media(max-width:700px){
 body[data-hg-ui="office"]:not(.hg-login) aside.ops-side {padding-bottom:var(--hg-safe-bottom);padding-left:max(4px,var(--hg-safe-left));padding-right:max(4px,var(--hg-safe-right))}
 body[data-hg-ui="worker"] #nav {padding-bottom:calc(8px + var(--hg-safe-bottom));padding-left:max(16px,var(--hg-safe-left));padding-right:max(16px,var(--hg-safe-right))}
 body .jv-dock {padding-left:max(20px,var(--hg-safe-left));padding-right:max(20px,var(--hg-safe-right));padding-bottom:calc(12px + var(--hg-safe-bottom))}
}
/* Match the detail adapter's specificity so its preview offset cannot win. */
body.users-redesign[data-hg-ui] .ua-detail-open .ua-detail-nav {top:var(--hg-safe-top)}
body.users-redesign.has-preview[data-hg-ui] .ua-detail-open .ua-detail-nav {top:calc(38px + var(--hg-safe-top))}
@media(min-width:701px){
 body[data-hg-ui="office"]:not(.hg-login) aside.ops-side {left:var(--hg-safe-left)}
}

/* Jarvis scrolls its conversation: the header must retain the top inset. */
html:has(body.hg-jarvis) {padding-top:0;scroll-padding-top:calc(84px + var(--hg-safe-top))}
body.hg-jarvis .jv-head {
 position:sticky;top:0;z-index:10;background:var(--jv-bg);
 padding-top:calc(20px + var(--hg-safe-top));
}
@media(max-width:760px){
 body.hg-jarvis .jv-head {padding-top:calc(12px + var(--hg-safe-top))}
}
