:root { --pwa-safe-bottom: env(safe-area-inset-bottom, 0px); }
html { -webkit-text-size-adjust: 100%; }
body {
    min-height: 100vh;
    min-height: 100dvh;
    padding-left: env(safe-area-inset-left, 0px);
    padding-right: env(safe-area-inset-right, 0px);
}
body > header.sticky, body > nav.sticky {
    padding-top: env(safe-area-inset-top, 0px);
}
nav.fixed.bottom-0, .safe-area-pb {
    padding-bottom: max(0.5rem, var(--pwa-safe-bottom));
}
body:has(nav.fixed.bottom-0) {
    padding-bottom: calc(6rem + var(--pwa-safe-bottom));
}
@media (max-width: 767px) {
    input:not([type='checkbox']):not([type='radio']):not([type='file']), select, textarea {
        font-size: 16px !important;
    }
}
.pwa-notice {
    position: fixed;
    top: calc(0.75rem + env(safe-area-inset-top, 0px));
    left: max(0.75rem, env(safe-area-inset-left, 0px));
    right: max(0.75rem, env(safe-area-inset-right, 0px));
    z-index: 10000;
    max-width: 34rem;
    margin: 0 auto;
    padding: 1rem;
    border: 1px solid #475569;
    border-radius: 1rem;
    background: #1e293b;
    color: #fff;
    box-shadow: 0 8px 24px #0003;
    font: 15px/1.5 -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
.pwa-notice[hidden] { display: none !important; }
.pwa-notice p { margin: 0 0 0.75rem; color: inherit; }
.pwa-notice button, .pwa-notice a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    margin-right: 0.5rem;
    padding: 0.5rem 0.875rem;
    border: 1px solid #64748b;
    border-radius: 0.5rem;
    background: #334155;
    color: #fff;
    text-decoration: none;
    cursor: pointer;
    font: inherit;
}
.pwa-notice button:focus-visible, .pwa-notice a:focus-visible { outline: 3px solid #6ee7b7; }
@media print { .pwa-notice { display: none !important; } }
