dialog::backdrop,.modal-backdrop,.permit-timeline-backdrop,.contract-signature-modal-backdrop,.maale-modal-overlay {
    background:rgba(15,23,42,.42)!important;
    backdrop-filter:blur(3px)!important;
    -webkit-backdrop-filter:blur(3px)!important;
}
:root {
    --ui-modal-close-size:28px;
    --ui-modal-close-glyph-size:16px;
    --ui-modal-close-bg:color-mix(in srgb,var(--ui-surface,#fff) 88%,#667085);
    --ui-modal-close-text:#7a818a;
    --ui-modal-close-hover:var(--ui-danger,#b42318);
}
/* Higher specificity than generic icon actions: closing is a shared modal component. */
html[data-ui-theme] body[data-ui-scope="application"] :is(dialog,[role="dialog"]).maale-modal :is(button,a).maale-modal-close {
    display:inline-flex!important;align-items:center!important;justify-content:center!important;
    flex:0 0 var(--ui-modal-close-size)!important;
    width:var(--ui-modal-close-size)!important;min-width:var(--ui-modal-close-size)!important;
    height:var(--ui-modal-close-size)!important;min-height:var(--ui-modal-close-size)!important;
    padding:0!important;margin:0!important;border:0!important;
    border-radius:var(--ui-radius,8px)!important;background:var(--ui-modal-close-bg)!important;color:var(--ui-modal-close-text)!important;
    font:400 20px/1 Arial,sans-serif!important;text-decoration:none!important;box-shadow:none!important;
    transform:none!important;filter:none!important;cursor:pointer;
    transition:color var(--ui-icon-fade-duration,240ms) ease!important;
}
html[data-ui-theme] body[data-ui-scope="application"] :is(dialog,[role="dialog"]).maale-modal :is(button,a).maale-modal-close :is(svg,i) {
    width:var(--ui-modal-close-glyph-size)!important;height:var(--ui-modal-close-glyph-size)!important;color:inherit!important;
}
html[data-ui-theme] body[data-ui-scope="application"] :is(dialog,[role="dialog"]).maale-modal :is(button,a).maale-modal-close:hover:not(:disabled):not([aria-disabled="true"]) {
    background:var(--ui-modal-close-bg)!important;color:var(--ui-modal-close-hover)!important;border:0!important;
}
html[data-ui-theme] body[data-ui-scope="application"] :is(dialog,[role="dialog"]).maale-modal :is(button,a).maale-modal-close:focus-visible {
    outline:2px solid var(--ui-focus-border,#b7c2ce);outline-offset:2px;
}
@media(prefers-reduced-motion:reduce) {
    html[data-ui-theme] body[data-ui-scope="application"] :is(dialog,[role="dialog"]).maale-modal :is(button,a).maale-modal-close { transition:none!important; }
}
.maale-modal .maale-modal-close--floating{position:absolute!important;top:16px!important;inset-inline-end:16px!important;inset-inline-start:auto!important;z-index:5}
.maale-modal>h2:first-of-type,.maale-modal>form>h2:first-of-type{padding-inline-end:48px}
@media print{.maale-modal-close{display:none!important}}

/* Native discrete transitions keep modal lifecycle, focus and top-layer semantics intact. */
@media (prefers-reduced-motion:no-preference) {
    dialog.maale-modal { opacity:0; translate:0 6px; transition:opacity 180ms ease,translate 180ms ease,display 180ms allow-discrete,overlay 180ms allow-discrete; }
    dialog.maale-modal[open] { opacity:1; translate:0 0; }
    dialog.maale-modal::backdrop { transition:opacity 180ms ease,display 180ms allow-discrete,overlay 180ms allow-discrete; opacity:0; }
    dialog.maale-modal[open]::backdrop { opacity:1; }
    @starting-style { dialog.maale-modal[open] { opacity:0; translate:0 6px; } dialog.maale-modal[open]::backdrop { opacity:0; } }
    [role="dialog"].maale-modal { animation:ui-modal-enter 180ms ease both; }
    .ui-save-attention { animation:ui-save-attention 260ms ease!important; }
    .ui-field-attention { animation:ui-field-attention 800ms ease!important; }
}
@keyframes ui-modal-enter { from {opacity:0;translate:0 6px} to {opacity:1;translate:0 0} }
@keyframes ui-save-attention { 25% {translate:2px 0} 60% {translate:-2px 0} 100% {translate:0 0} }
@keyframes ui-field-attention { 35% {outline:2px solid color-mix(in srgb,var(--ui-primary,#99794f) 45%,transparent);outline-offset:3px} 100% {outline-color:transparent} }

.ui-unsaved-dialog{width:min(440px,calc(100vw - 48px));padding:28px;border:1px solid var(--ui-border,#d8e1e9);border-radius:var(--ui-radius,8px);background:var(--ui-surface,#fff);color:var(--ui-text,#263244);text-align:center}
.ui-unsaved-dialog__icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:color-mix(in srgb,var(--ui-primary,#99794f) 12%,var(--ui-surface,#fff));color:var(--ui-primary,#99794f)}
.ui-unsaved-dialog__icon svg{width:24px;height:24px}
.ui-unsaved-dialog h2{font-size:var(--ui-font-size-lg,20px);margin:12px 0 8px;padding:0!important}
.ui-unsaved-dialog p{font-size:var(--ui-font-size,14px);line-height:1.7;margin:0 0 16px;color:var(--ui-text-muted,#667085)}
.ui-unsaved-dialog [data-unsaved-status]:empty{display:none}
.ui-unsaved-dialog__actions{display:flex;justify-content:center;flex-wrap:wrap;gap:8px}

.ui-loading-dialog{width:300px;max-width:calc(100vw - 48px);box-sizing:border-box;padding:28px 24px;border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:color-mix(in srgb,var(--ui-surface,#fff) 80%,transparent);color:var(--ui-text,var(--app-text));text-align:center;box-shadow:0 12px 40px color-mix(in srgb,var(--ui-primary,#99794f) 12%,transparent)}
.ui-loading-dialog:focus{outline:none}
.ui-loading-dialog::backdrop{background:color-mix(in srgb,var(--ui-primary,#99794f) 14%,transparent)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
html[data-ui-theme] body[data-ui-scope="application"] dialog.maale-modal.ui-loading-dialog [hidden]{display:none!important}
.ui-loading-glyph{display:inline-flex;align-items:center;justify-content:center;width:60px;height:60px;border-radius:50%;background:color-mix(in srgb,var(--ui-primary,#99794f) 10%,var(--ui-surface,#fff));color:var(--ui-primary,#99794f)}
.ui-loading-glyph svg{width:34px;height:34px}
.ui-loading-dialog p{margin:16px 0 0;font-size:var(--ui-font-size,14px);font-weight:500;line-height:1.7}
.ui-loading-dialog .ui-button{margin-top:16px}
.ui-loading-dialog[open] .ui-loading-glyph svg{animation:ui-loading-orbit 1.25s linear infinite}
@keyframes ui-loading-orbit{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.ui-loading-dialog[open] .ui-loading-glyph svg{animation:none}}
@media print{.ui-loading-dialog,.ui-loading-dialog::backdrop{display:none!important}}
