/* oo-overlay / oo-dialog */

html:has(dialog[open]) {
    overflow: hidden;
    scrollbar-gutter: stable;
}

dialog::backdrop {
    background-color: hsla(0, 0%, 100%, 0.75);
}

dialog[open] {
    border: 0;
    padding: 0;
    /*max-width: 75%;*/
    /*min-width: 50%;*/
}

/*.oo-overlay,
.pnlOverlay {
    background-color: hsla(0, 0%, 100%, 0.75);
    bottom: 0;
    display: flex;
    left: 0;
    opacity: 0;
    overflow: hidden;
    pointer-events: none;
    position: fixed;
    right: 0;
    top: 0;
    transition: opacity var(--oo-transition-slow);
    z-index: var(--oo-z-overlay);
}

    .oo-overlay.aktiv,
    .pnlOverlay.aktiv {
        opacity: 1;
        pointer-events: auto;
        transition: opacity var(--oo-transition);
    }

    .oo-overlay > .oo-dialog,
    .oo-overlay > form,
    .pnlOverlay > .Dialog {
        margin: auto;
    }

    .oo-overlay > form {
        width: fit-content;
    }

.Dialog,
.oo-dialog {
    background-color: var(--oo-color-surface);
    border: var(--oo-border-width) solid var(--oo-color-border-strong);
    display: grid;
    font-size: var(--oo-font-size-md);
    grid-template-columns: 100%;
    grid-template-rows: auto minmax(0, 1fr) auto;
    max-height: 90vh;
    position: relative;
}

.oo-dialog {
    max-width: 75%;
    min-width: 50%;
}*/

.Dialog,
.oo-dialog {
    background-color: var(--oo-color-surface);
    border: var(--oo-border-width) solid var(--oo-color-border-strong);
    display: grid;
    font-size: var(--oo-font-size-md);
    grid-template-columns: 100%;
    grid-template-rows: auto minmax(0, 1fr) auto;
    max-height: 90vh;
    position: relative;
}

/* auto-Breite: Dialog passt sich dem Content an */
.oo-dialog--auto-width {
    display: inline-grid;
    max-width: 75vw;
    min-width: 0;
}

.Dialog--header,
.oo-dialog--header {
    grid-row: 1;
    align-items: center;
    background-color: var(--oo-color-surface);
    color: var(--oo-primary);
    display: flex;
    flex-shrink: 0;
    font-size: 1.5rem;
    gap: var(--oo-space-2);
    padding: var(--oo-space-3) var(--oo-space-5);
    position: sticky;
    top: 0;
    z-index: 10;
}

.oo-dialog--header-text {
    flex: 1;
    min-width: 0;
}

.oo-dialog--close {
    background: none;
    border: none;
    border-radius: var(--oo-radius-md);
    cursor: pointer;
    display: flex;
    flex-shrink: 0;
    margin-left: auto;
    padding: var(--oo-space-1);
    transition: background-color var(--oo-transition);
}

    .oo-dialog--close:hover {
        background-color: var(--oo-color-background);
    }

    .oo-dialog--close > svg {
        fill: currentColor;
        height: 1.5rem;
        width: 1.5rem;
    }

/* Close-X ohne Header: absolut positioniert ueber dem Content */
.oo-dialog--close-float {
    position: absolute;
    top: var(--oo-space-1);
    right: var(--oo-space-1);
}

.Dialog--content,
.oo-dialog--content {
    grid-row: 2;
    overflow-y: auto;
    overscroll-behavior-y: contain;
    padding: 0 var(--oo-space-5);
}

    /* Kein Header, kein Close: oben Padding damit Content nicht am Rand klebt */
    .oo-dialog--content.oo-dialog--content-no-header {
        padding-top: var(--oo-space-5);
    }

    /* Close-Float ohne Header: oben Abstand damit X-Button Content nicht ueberlappt */
    .oo-dialog--content.oo-dialog--content-has-float-close {
        padding-top: var(--oo-space-8);
    }

.Dialog--footer,
.oo-dialog--footer {
    grid-row: 3;
    padding: var(--oo-space-5);
}

.Dialog--buttons,
.oo-dialog--buttons {
    align-items: center;
    display: flex;
    justify-content: flex-end;
    gap: var(--oo-space-2);
}
