.pwa-install,
.pwa-update {
  position: fixed;
  right: max(1rem, env(safe-area-inset-right));
  bottom: max(1rem, env(safe-area-inset-bottom));
  z-index: 200;
  max-width: min(26rem, calc(100vw - 2rem));
  padding: 0.75rem;
  border: 1px solid var(--border, #cad8d5);
  border-radius: var(--radius-md, 12px);
  color: var(--text-primary, #172b29);
  background: var(--surface-strong, #fff);
  box-shadow: var(--shadow-md, 0 16px 38px rgba(7, 48, 43, 0.18));
}

.pwa-update { display: flex; align-items: center; gap: 0.75rem; }
.pwa-update[hidden], .pwa-install[hidden] { display: none; }
.pwa-install { min-height: 44px; }

@media (display-mode: standalone) {
  .pwa-install { display: none !important; }
  body { overscroll-behavior-y: contain; }
}

@media (pointer: coarse) {
  :where(button, .btn, input, select, textarea, summary) { min-height: 44px; }
}

@media (max-width: 980px) {
  .main { padding-bottom: max(1rem, env(safe-area-inset-bottom)); }
  .sidebar { padding-left: env(safe-area-inset-left); }
}

.participant-portal .portal-header {
  padding-top: max(0.65rem, env(safe-area-inset-top));
  padding-right: max(0.75rem, env(safe-area-inset-right));
  padding-left: max(0.75rem, env(safe-area-inset-left));
}

.participant-portal .portal-main {
  padding-right: max(clamp(0.75rem, 2vw, 1.25rem), env(safe-area-inset-right));
  padding-bottom: max(clamp(0.75rem, 2vw, 1.25rem), env(safe-area-inset-bottom));
  padding-left: max(clamp(0.75rem, 2vw, 1.25rem), env(safe-area-inset-left));
}

.pwa-offline {
  display: grid;
  min-width: 320px;
  min-height: 100dvh;
  margin: 0;
  padding: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
  place-items: center;
  font-family: "Open Sans", system-ui, sans-serif;
}

.pwa-offline-intern { color: #fff; background: #173c38; }
.pwa-offline-participant { color: #172b29; background: #f3f6f5; }
.pwa-offline main { width: min(32rem, 100%); text-align: center; }
.pwa-offline img { width: min(22rem, 82%); height: auto; }
.pwa-offline h1 { margin: 1rem 0 0.5rem; font-size: clamp(1.75rem, 7vw, 2.5rem); }
.pwa-offline p { line-height: 1.6; }
.pwa-offline .eyebrow { margin-top: 2rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.pwa-offline button { min-height: 48px; margin-top: 1rem; padding: 0.75rem 1rem; border: 0; border-radius: 10px; color: #fff; background: #087f75; font: inherit; font-weight: 800; cursor: pointer; }
