html, body { min-height: 0; height: 100%; height: 100dvh; }
#root { height: var(--app-height, 100dvh); min-height: 0; box-sizing: border-box; padding-left: env(safe-area-inset-left); padding-right: env(safe-area-inset-right); }
body [aria-modal="true"] { top: var(--app-offset-top, 0px) !important; bottom: auto !important; height: var(--app-height, 100dvh); box-sizing: border-box; padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left); }
.pwa-update { position: fixed; z-index: 100000; left: max(12px, env(safe-area-inset-left)); right: max(12px, env(safe-area-inset-right)); bottom: calc(12px + env(safe-area-inset-bottom)); max-width: 480px; margin-inline: auto; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 12px; border: 1px solid #99cfc2; border-radius: 14px; background: rgba(255,255,255,.96); color: #1e293b; box-shadow: 0 8px 30px rgba(15,23,42,.18); backdrop-filter: blur(14px); font: 14px -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.pwa-update p { flex: 1; min-width: 150px; margin: 0; line-height: 1.5; }
.pwa-update button { min-height: 44px; padding: 10px 14px; border: 1px solid #0f766e; border-radius: 9px; background: #0f766e; color: white; font: inherit; cursor: pointer; }
.pwa-update .pwa-later { background: white; color: #334155; border-color: #cbd5e1; }
.pwa-update button:focus-visible { outline: 2px solid #0f766e; outline-offset: 3px; }
@media (max-width: 1024px) { input:not([type="checkbox"]):not([type="radio"]), textarea, select { font-size: 16px !important; } }
input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 2px solid #0f766e; outline-offset: 2px; }
@media print { .pwa-update { display: none; } }
