/* Common modal frame, independent of each workspace's business layout. */
html:has(dialog.portal-modal[open]){overflow:hidden;scrollbar-gutter:stable}
.cargo-portal dialog.portal-modal.portal-modal,dialog.portal-modal{box-sizing:border-box;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);border:1px solid var(--cargo-line,#ddd7ce);border-radius:14px;background:var(--cargo-paper,#fffdf8);color:var(--cargo-ink,#252422);box-shadow:0 24px 80px rgb(37 36 34 / .22);overscroll-behavior:contain}
dialog.portal-modal[open]{animation:portal-modal-enter 160ms ease-out}
dialog.portal-modal::backdrop{background:rgb(37 36 34 / .42);animation:portal-modal-backdrop 160ms ease-out}
dialog.portal-modal>.portal-modal-chrome{position:sticky;top:0;height:0;z-index:20;overflow:visible;display:block}
dialog.portal-modal .portal-modal-close{position:absolute;right:8px;top:8px;display:grid;place-items:center;width:36px;height:36px;min-height:36px;padding:8px;border:1px solid var(--cargo-line,#ddd7ce);border-radius:9px;background:var(--cargo-paper,#fffdf8);color:var(--cargo-ink,#252422);cursor:pointer;box-shadow:none}
dialog.portal-modal .portal-modal-close svg{width:18px;height:18px}
dialog.portal-modal .portal-modal-close:hover{background:var(--cargo-soft,#f3f0e9)}
dialog.portal-modal .portal-modal-close:focus-visible{outline:2px solid var(--cargo-orange,#b95c34);outline-offset:2px}
dialog.portal-modal [data-modal-legacy-close]{display:none!important}
dialog.portal-modal>h2,dialog.portal-modal>h3{padding-right:48px}
dialog.portal-modal.portal-modal-pending{min-height:260px;padding:0}
dialog.portal-modal.portal-modal-pending>:not(.portal-modal-chrome):not(.portal-modal-loading){display:none!important}
dialog.portal-modal .portal-modal-loading{padding:24px;min-height:258px;box-sizing:border-box}
dialog.portal-modal .portal-modal-loading[hidden]{display:none}
dialog.portal-modal .portal-modal-loading-title{margin:0;padding-right:44px;font:600 19px/1.35 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.portal-modal-loading-status{min-height:170px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;font:14px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.portal-modal-spinner{width:28px;height:28px;border:3px solid var(--cargo-line,#ddd7ce);border-top-color:var(--cargo-orange,#b95c34);border-radius:50%;animation:portal-modal-spin .8s linear infinite}
@keyframes portal-modal-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes portal-modal-backdrop{from{opacity:0}to{opacity:1}}
@keyframes portal-modal-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){dialog.portal-modal[open],dialog.portal-modal::backdrop,.portal-modal-spinner{animation:none}}
@media(max-width:600px){dialog.portal-modal{max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);border-radius:12px}}

.portal-modal-region-pending{position:relative;min-height:100px}
.portal-modal-region-pending>:not(.portal-modal-region-status){visibility:hidden}
.portal-modal-region-status{position:absolute;inset:0;display:grid;place-items:center}
dialog.portal-modal :is(.portal-view-heading,.ap-header,.lb-header,.dc-head)>:first-child{padding-right:36px}

dialog.portal-modal .dc-head>[data-act="close"]{display:none}
dialog.portal-modal form>h2{padding-right:48px}

dialog.portal-modal.portal-modal-error>:not(.portal-modal-chrome):not(.portal-modal-error-content){display:none!important}
dialog.portal-modal .portal-modal-error-content{padding:24px;min-height:180px}
dialog.portal-modal .portal-modal-error-content h2{padding-right:44px;font-size:19px}
