/**
 * Native App (Expo): Eingaben in Bottom-Sheets, Dialogen und scrollbarem Tippspiel-Inhalt.
 * Voraussetzung: html.sz-keyboard-open + --sz-keyboard-inset (sz-mobile-keyboard.js / AppWebView).
 */

/* —— Bottom-Sheets (Suche, Live-Panel, Dialog-Fallback) —— */
html.sz-native-shell.sz-keyboard-open .sz-site-search.is-open,
html.sz-native-shell.sz-keyboard-open .sz-live-feed-panel.is-open,
html.sz-native-shell.sz-keyboard-open dialog.sz-chat-new-dialog.sz-dialog--fallback-open,
html.sz-native-shell.sz-keyboard-open dialog.sz-avatar-crop-dialog.sz-dialog--fallback-open,
html.sz-native-shell.sz-keyboard-open dialog.sz-tippspiel-picker-dialog.sz-dialog--fallback-open,
html.sz-native-shell.sz-keyboard-open dialog.sz-chat-members-dialog.sz-dialog--fallback-open {
    padding-bottom: calc(var(--sz-keyboard-inset, 0px) + env(safe-area-inset-bottom, 0px));
    box-sizing: border-box;
}

html.sz-native-shell.sz-keyboard-open dialog.sz-chat-new-dialog.sz-dialog--fallback-open,
html.sz-native-shell.sz-keyboard-open dialog.sz-avatar-crop-dialog.sz-dialog--fallback-open,
html.sz-native-shell.sz-keyboard-open dialog.sz-tippspiel-picker-dialog.sz-dialog--fallback-open,
html.sz-native-shell.sz-keyboard-open dialog.sz-chat-members-dialog.sz-dialog--fallback-open {
    align-items: flex-end;
    align-content: flex-end;
    padding-top: max(0.75rem, env(safe-area-inset-top, 0px));
}

html.sz-native-shell.sz-keyboard-open .sz-site-search__dialog {
    max-height: min(
        40rem,
        calc(var(--sz-visual-height, var(--sz-app-height, 100dvh)) - var(--sz-keyboard-inset, 0px) - 5.5rem)
    );
}

html.sz-native-shell.sz-keyboard-open .sz-live-feed-panel__dialog {
    max-height: min(
        36rem,
        calc(var(--sz-visual-height, var(--sz-app-height, 100dvh)) - var(--sz-keyboard-inset, 0px) - 4rem)
    );
}

/* <dialog>.showModal() – bei Fokus im Dialog nach oben schieben */
html.sz-native-shell.sz-keyboard-open dialog.sz-keyboard-dock-active:modal {
    margin-bottom: calc(var(--sz-keyboard-inset, 0px) + env(safe-area-inset-bottom, 0px));
    max-height: calc(var(--sz-visual-height, var(--sz-app-height, 100dvh)) - var(--sz-keyboard-inset, 0px) - 1.5rem);
}

/* —— Mobil + Tastatur: Topbar bleibt sichtbar (nicht Chat – eigene Regeln unten) —— */
@media (max-width: 560px) {
    html.sz-keyboard-open body:not(.page-chat-room) {
        display: flex;
        flex-direction: column;
        overflow: hidden;
        height: var(--sz-visual-height, var(--sz-app-height, 100dvh));
        max-height: var(--sz-visual-height, var(--sz-app-height, 100dvh));
        min-height: 0;
        box-sizing: border-box;
    }

    html.sz-keyboard-open body:not(.page-chat-room) .sz-topbar {
        flex-shrink: 0;
        position: relative;
        top: auto;
    }

    html.sz-keyboard-open body:not(.page-chat-room) .sz-main {
        flex: 1 1 auto;
        min-height: 0;
        max-height: none;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    html.sz-keyboard-open body:not(.page-chat-room) .sz-footer {
        display: none;
    }

    /*
     * Chat: Flex-Spalte exakt auf sichtbare Höhe (--sz-visual-height enthält Tastatur bereits).
     * Kein Fenster-Scroll – nur .sz-wa__scroll scrollt.
     */
    html.sz-keyboard-open body.page-chat-room {
        position: fixed;
        inset: 0 auto auto 0;
        width: 100%;
        display: flex;
        flex-direction: column;
        overflow: hidden;
        height: var(--sz-visual-height, var(--sz-app-height, 100dvh));
        max-height: var(--sz-visual-height, var(--sz-app-height, 100dvh));
        min-height: 0;
        box-sizing: border-box;
    }

    html.sz-keyboard-open body.page-chat-room .sz-topbar {
        flex-shrink: 0;
        position: relative;
        top: auto;
    }

    html.sz-keyboard-open body.page-chat-room .sz-main {
        flex: 1 1 auto;
        min-height: 0;
        max-height: none;
        overflow: hidden;
    }
}

html.sz-keyboard-open:has(body.page-chat-room) {
    overflow: hidden;
}

html.sz-native-shell.sz-keyboard-open body.page-chat-room .sz-main {
    max-height: none;
    overflow: hidden;
}

/* Toasts nicht hinter der Tastatur */
html.sz-native-shell.sz-keyboard-open .sz-live-toast-stack,
html.sz-native-shell.sz-keyboard-open .sz-chat-toast-stack {
    bottom: calc(1.1rem + var(--sz-keyboard-inset, 0px) + env(safe-area-inset-bottom, 0px));
}
