/* PWA install popup (phones/tablets) + standalone safe areas */
.pwa-install {
    position: fixed;
    inset: 0;
    z-index: 1075;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding: 0;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.pwa-install--visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.pwa-install__backdrop {
    position: absolute;
    inset: 0;
    border: 0;
    padding: 0;
    margin: 0;
    background: rgba(15, 23, 42, 0.42);
    cursor: pointer;
}

.pwa-install__sheet {
    position: relative;
    width: 100%;
    max-width: 480px;
    margin: 0 auto;
    background: #fff;
    border-radius: 1.15rem 1.15rem 0 0;
    box-shadow: 0 -12px 40px rgba(15, 23, 42, 0.22);
    padding: 0.55rem 1rem calc(1rem + env(safe-area-inset-bottom, 0px));
    transform: translateY(110%);
    transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.pwa-install--visible .pwa-install__sheet {
    transform: translateY(0);
}

.pwa-install__handle {
    width: 2.4rem;
    height: 0.28rem;
    border-radius: 999px;
    background: #ced4da;
    margin: 0.15rem auto 0.65rem;
}

.pwa-install__close {
    position: absolute;
    top: 0.55rem;
    right: 0.55rem;
    border: 0;
    background: transparent;
    font-size: 1.45rem;
    line-height: 1;
    color: #6c757d;
    padding: 0.2rem 0.4rem;
    min-width: 44px;
    min-height: 44px;
}

.pwa-install__body {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding-right: 1.75rem;
}

.pwa-install__icon {
    border-radius: 0.9rem;
    flex-shrink: 0;
    box-shadow: 0 4px 14px rgba(15, 118, 110, 0.28);
}

.pwa-install__title {
    font-size: 1.05rem;
    font-weight: 650;
    margin: 0 0 0.3rem;
    color: var(--mn-forest, #1b4332);
}

.pwa-install__text {
    font-size: 0.9rem;
    color: #495057;
    line-height: 1.45;
}

.pwa-install__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.45rem;
    margin-top: 0.9rem;
}

.pwa-install__ios-steps {
    line-height: 1.45;
    color: #495057;
}

.pwa-install__ios-steps ol {
    padding-left: 1.1rem;
}

.pwa-install__ios-steps li + li {
    margin-top: 0.25rem;
}

.pwa-install__share-icon {
    display: inline-block;
    vertical-align: -0.15em;
    color: #0d6efd;
}

.footer-get-app {
    font-weight: 600;
    color: var(--mn-forest, #1b4332) !important;
}

.footer-get-app:hover {
    color: #0f766e !important;
}

/* Hide download CTA when already running as installed app */
@media (display-mode: standalone) {
    .footer-get-app,
    .pwa-install {
        display: none !important;
    }
}

body.mn-standalone .footer-get-app,
body.mn-standalone .pwa-install {
    display: none !important;
}

/* Installed app: safe areas + slightly tighter mobile chrome */
@media (display-mode: standalone) {
    body {
        padding-top: env(safe-area-inset-top, 0);
        padding-bottom: env(safe-area-inset-bottom, 0);
        min-height: 100dvh;
    }

    .navbar-main {
        padding-top: env(safe-area-inset-top, 0);
    }

    .footer {
        padding-bottom: calc(0.5rem + env(safe-area-inset-bottom, 0));
    }
}

@media (max-width: 575.98px) {
    .pwa-install__actions .btn,
    .pwa-install__actions a.btn {
        flex: 1 1 calc(50% - 0.45rem);
        min-height: 42px;
    }

    .pwa-install__actions #pwaInstallButton {
        flex: 1 1 100%;
    }
}

/* Prefer dvh on modern mobile browsers to avoid address-bar jump */
@supports (height: 100dvh) {
    body {
        min-height: 100dvh;
    }
}
