/* One viewport-based positioning contract for native and legacy modal dialogs. */
:root{--modal-vw:100vw;--modal-vh:100vh;--modal-vx:0px;--modal-vy:0px;--modal-gap:16px}
@supports(height:100dvh){:root{--modal-vh:100dvh}}
html body dialog:not([popover]){
 position:fixed!important;inset:auto!important;
 top:calc(var(--modal-vy) + var(--modal-vh)/2)!important;
 left:calc(var(--modal-vx) + var(--modal-vw)/2)!important;
 margin:0!important;transform:translate(-50%,-50%)!important;
 box-sizing:border-box;min-width:0;min-height:0;
 max-width:calc(var(--modal-vw) - var(--modal-gap)*2)!important;
 max-height:calc(var(--modal-vh) - var(--modal-gap)*2)!important;
 overscroll-behavior:contain;overflow:auto;
}
html body :is(.modal-backdrop,#macroDialog){
 position:fixed!important;inset:auto!important;top:var(--modal-vy)!important;left:var(--modal-vx)!important;
 width:var(--modal-vw)!important;height:var(--modal-vh)!important;box-sizing:border-box;
 align-items:center!important;justify-content:center!important;place-items:center!important;
 padding:var(--modal-gap)!important;overflow:hidden;
}
/* Keep legacy overlays centered even when a module changes its flex/grid defaults. */
html body :is(.modal-backdrop,#macroDialog):not([hidden]){display:grid!important;}
html body .modal-backdrop[hidden],html body #macroDialog[hidden]{display:none!important;}
html body :is(.modal-backdrop,#macroDialog)>:is(.modal-card,.modal){
 position:relative;inset:auto;margin:0!important;transform:none!important;box-sizing:border-box;
 min-width:0;min-height:0;max-width:100%!important;max-height:100%!important;overflow:auto;overscroll-behavior:contain;
}
html body .sales-connection-dialog{width:550px}
@media(max-width:600px){:root{--modal-gap:12px}}
@media(max-height:420px){:root{--modal-gap:8px}}
