/* Keep page position while a window owns scrolling, including Telegram WebViews. */
html.ui-modal-scroll-locked,body.ui-modal-scroll-locked{overflow:hidden!important;overscroll-behavior:none!important}
dialog[open],[aria-modal="true"],.modal-overlay.open,.sidebar-overlay.open,
dialog[open] *,[aria-modal="true"] *,.modal-overlay.open *,.sidebar-overlay.open *{overscroll-behavior:contain}
*,*::before,*::after{scrollbar-width:none!important;-ms-overflow-style:none!important}
*::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
dialog{max-height:90vh;max-height:90dvh}
dialog[open]{position:fixed!important}
.home-action-dialog,.camp-priority-box,.damage-dialog,.reentry-notice{max-height:90vh;max-height:90dvh;overflow-y:auto}
.damage-dialog-backdrop{overflow:hidden!important}
/* Existing dialog layout and form structure stay intact. */
.ui-modal-header{position:sticky!important;top:0!important;z-index:20!important;background:var(--neon-panel,var(--ui-bg-color,#171022))!important;isolation:isolate;flex-shrink:0}
.ui-modal-new-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 0 10px;margin-bottom:8px}
.ui-modal-new-header>h2,.ui-modal-new-header>h3{margin:0!important;min-width:0;flex:1}
.ui-modal-new-header>.home-modal-close,.ui-modal-new-header>.reentry-notice-close,.ui-modal-close{position:static!important;flex:0 0 32px;width:32px;height:32px;display:grid;place-items:center;padding:0;border:0;border-radius:8px;background:transparent;color:var(--ui-text-color,inherit);font-size:24px;line-height:1;cursor:pointer}

/* Sticky dialog headers: keep title and close action visible while dialog content scrolls. */
.boss-presets-dialog,.pg-dialog,.boss-dialog,.baul-dialog,.hodki-dialog,.delugi-dialog,.pp-dialog,.management-user-dialog,.access-days-dialog,.referral-dialog,.ref-user-dialog,#obshakShopDialog,.posilki-dialog,.reports-dialog,.home-action-dialog,.damage-dialog{overscroll-behavior:contain}
.boss-presets-dialog>header,.pg-dialog>.pg-heading,.boss-dialog>.boss-heading,.baul-dialog>.baul-heading,.hodki-dialog>.hodki-dialog-title,.delugi-dialog>.delugi-dialog-head,.pp-dialog>.pp-head,.management-user-dialog>.management-user-heading,.access-days-dialog .access-days-heading,.referral-dialog .referral-dialog-heading,.ref-user-dialog .ref-user-dialog-head,#obshakShopDialog>.obshak-shop-heading,.reports-dialog>.reports-heading,.damage-dialog>.damage-dialog-head,.poker-dialog>.poker-dialog-head{position:sticky;top:0;z-index:4;background:var(--neon-panel,var(--ui-bg-color));isolation:isolate}
.boss-presets-dialog>header,.pg-dialog>.pg-heading,.boss-dialog>.boss-heading,.baul-dialog>.baul-heading,.hodki-dialog>.hodki-dialog-title,.delugi-dialog>.delugi-dialog-head,.pp-dialog>.pp-head,.management-user-dialog>.management-user-heading,.access-days-dialog .access-days-heading,.referral-dialog .referral-dialog-heading,.ref-user-dialog .ref-user-dialog-head,#obshakShopDialog>.obshak-shop-heading{padding-top:4px;padding-bottom:8px}
.boss-presets-dialog>header,.pg-dialog>.pg-heading,.boss-dialog>.boss-heading,.baul-dialog>.baul-heading,.hodki-dialog>.hodki-dialog-title,.delugi-dialog>.delugi-dialog-head,.pp-dialog>.pp-head,.management-user-dialog>.management-user-heading,.access-days-dialog .access-days-heading,.referral-dialog .referral-dialog-heading,.ref-user-dialog .ref-user-dialog-head,#obshakShopDialog>.obshak-shop-heading{box-shadow:0 1px 0 color-mix(in srgb,var(--border) 75%,transparent)}
/* Close controls stay clickable above sticky content. */
.boss-presets-dialog>header button,.pg-dialog>.pg-heading button,.boss-dialog>.boss-heading button,.baul-dialog>.baul-heading button,.hodki-dialog-title button,.delugi-dialog-head button,.pp-head button,.management-user-heading button,.access-days-heading button,.referral-dialog-heading button,.ref-user-dialog-head button,.damage-dialog-head button,.poker-dialog-head button,#obshakShopDialog .obshak-shop-close{position:relative;z-index:5;flex-shrink:0}
/* Drawers/sheets already own an internal scroller; pin their heading. */
.pn-drawer>.pn-header,.online-stats-sheet>.online-stats-heading,.ping-sheet .ping-sheet-heading{position:sticky;top:0;z-index:5;background:var(--neon-panel,var(--ui-bg-color))}
/* Dialogs with body-level close buttons require a real heading wrapper; see audit. */
