/* Shared geometry for cookie choices, optional app notices and the chat launcher. */
:root { --albmedia-bottom-bar: 0px; --albmedia-viewport-height: 100dvh; --albmedia-viewport-bottom: 0px; }
#cookieConsent {
    box-sizing: border-box;
    z-index: 100100;
    bottom: var(--albmedia-viewport-bottom);
    max-height: calc(var(--albmedia-viewport-height, 100vh) - 12px);
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-bottom: env(safe-area-inset-bottom, 0px);
}
#cookieConsent .cookie-consent-container { box-sizing: border-box; width: 100%; }
#cookieConsent .cookie-consent-content { overflow-wrap: anywhere; }
#cookieConsent .cookie-option-header { flex-wrap: wrap; }
#cookieConsent .cookie-switch input:focus-visible + .cookie-slider { outline: 3px solid #7c3aed; outline-offset: 3px; }
#cookieConsent .cookie-consent-buttons .btn { min-height: 44px; white-space: normal; }
#cookieConsent button:focus-visible, #cookieConsent a:focus-visible,
#cookieSettingsBtn:focus-visible, #digitalb-chat-toggle:focus-visible,
[id^="pwa-"] button:focus-visible { outline: 3px solid #7c3aed; outline-offset: 3px; }
html #cookieSettingsBtn {
    bottom: calc(var(--albmedia-viewport-bottom) + var(--albmedia-bottom-bar) + 16px + env(safe-area-inset-bottom, 0px)) !important;
    left: 14px;
    width: 44px;
    height: 44px;
    z-index: 10002;
}
html #digitalb-chatbot {
    bottom: calc(var(--albmedia-viewport-bottom) + var(--albmedia-bottom-bar) + 16px + env(safe-area-inset-bottom, 0px));
    right: 14px;
    z-index: 10001;
}
html #digitalb-chat-window {
    max-height: max(0px, calc(var(--albmedia-viewport-height, 100vh) - var(--albmedia-bottom-bar) - 106px - env(safe-area-inset-bottom, 0px)));
}
html #digitalb-contact-form { min-height: 0; overflow-y: auto; justify-content: flex-start; }
html #digitalb-chat-header, html #digitalb-chat-input-container { flex-shrink: 0; }
html #digitalb-chat-messages { min-height: 0; }
html.albmedia-cookie-open #digitalb-chatbot { visibility: hidden; }
html.albmedia-cookie-open #pwa-install-banner,
html.albmedia-cookie-open #pwa-update-banner,
html.albmedia-cookie-open #pwa-push-banner,
html.albmedia-chat-open #pwa-install-banner,
html.albmedia-chat-open #pwa-update-banner,
html.albmedia-chat-open #pwa-push-banner { visibility: hidden; }
html #pwa-install-banner, html #pwa-update-banner, html #pwa-push-banner,
html #pwa-install-banner.show, html #pwa-update-banner.show, html #pwa-push-banner.show {
    z-index: 10000;
    box-sizing: border-box;
    max-width: min(420px, calc(100vw - 24px));
    bottom: calc(var(--albmedia-viewport-bottom) + var(--albmedia-bottom-bar) + 92px + env(safe-area-inset-bottom, 0px));
    max-height: max(0px, calc(var(--albmedia-viewport-height, 100vh) - var(--albmedia-bottom-bar) - 108px - env(safe-area-inset-bottom, 0px)));
    overflow-y: auto;
}
html [id^="pwa-"][hidden] { display: none !important; }
html .pwa-banner-content { display: grid; grid-template-columns: 1fr auto; gap: 10px; }
html .pwa-banner-icon { display: none; }
html .pwa-banner-text { min-width: 0; overflow-wrap: anywhere; }
html .pwa-btn-close { grid-column: 2; grid-row: 1; margin: 0; min-width: 44px; min-height: 44px; }
html .pwa-btn-install { grid-column: 1 / -1; grid-row: 2; min-height: 44px; white-space: normal; }
@media (max-width: 480px) {
    html #digitalb-chat-window {
        bottom: calc(var(--albmedia-viewport-bottom) + var(--albmedia-bottom-bar) + 82px + env(safe-area-inset-bottom, 0px));
        left: 12px; right: 12px; width: calc(100vw - 24px); max-width: calc(100vw - 24px);
    }
}
@media (prefers-reduced-motion: reduce) {
    #cookieConsent *, [id^="pwa-"], #digitalb-chat-window { transition: none !important; animation: none !important; }
}
