.aveo-modal {
    width: var(--aveo-modal-width, 36rem);
    max-width: calc(100vw - 2rem);
    max-height: calc(100dvh - 2rem);
    margin: auto;
    padding: 0;
    border: var(--aveo-modal-border, 1px solid #dce1e7);
    border-radius: var(--aveo-modal-radius, 0.75rem);
    background: var(--aveo-modal-background, #fff);
    color: var(--aveo-modal-color, #17212e);
    box-shadow: var(--aveo-modal-shadow, 0 1.5rem 5rem #0003);
    overflow: auto;
}

.aveo-modal::backdrop { background: var(--aveo-modal-backdrop, #101b2d80); }
.aveo-modal *, .aveo-modal *::before, .aveo-modal *::after { box-sizing: border-box; }
.aveo-modal-layout { display: flex; flex-direction: column; max-height: calc(100dvh - 2.25rem); }
.aveo-modal-layout__header { display: flex; align-items: start; gap: 1rem; padding: 1.25rem 1.5rem; border-bottom: 1px solid var(--aveo-modal-divider, #e5e8ed); }
.aveo-modal-layout__heading { flex: 1; min-width: 0; }
.aveo-modal-layout__heading h2 { margin: 0; font-size: 1.25rem; overflow-wrap: anywhere; }
.aveo-modal-layout__close { flex: none; border: 0; background: transparent; color: inherit; cursor: pointer; font: inherit; font-size: 1.5rem; line-height: 1; padding: .25rem; }
.aveo-modal-layout__body { padding: 1.5rem; overflow: auto; min-height: 0; }
.aveo-modal-layout__summary { padding: 0 1.5rem 1rem; }
.aveo-modal-layout__footer { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: .75rem; padding: 1rem 1.5rem; border-top: 1px solid var(--aveo-modal-divider, #e5e8ed); }
.aveo-modal :focus-visible { outline: 2px solid var(--aveo-modal-focus, #2164dc); outline-offset: 3px; }
