html,
body {
  height: auto !important;
  min-height: 100%;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch;
}

body {
  position: relative !important;
  touch-action: pan-y;
  overscroll-behavior-x: none;
  overscroll-behavior-y: auto;
}

.app-shell {
  height: auto !important;
  overflow: visible !important;
  overflow-x: hidden !important;
  overflow-y: visible !important;
  -webkit-overflow-scrolling: touch;
}

#view-root,
.screen {
  overflow-x: hidden !important;
  overflow-y: visible !important;
  touch-action: pan-y;
}

.card,
.metric-card,
.list,
.list-item,
.form-grid,
.device-grid,
.template-grid {
  touch-action: pan-y;
}

button,
.bottom-nav,
.bottom-nav button,
.primary-btn,
.secondary-btn,
.danger-btn {
  touch-action: manipulation;
}

input,
select,
textarea {
  touch-action: manipulation;
}

.pwa-maintenance-banner {
  position: fixed;
  left: 50%;
  bottom: calc(var(--rt-nav-height, 72px) + var(--rt-nav-bottom, 8px) + 12px);
  transform: translateX(-50%);
  z-index: 120;
  width: min(calc(100vw - 18px), 720px);
  padding: 14px;
  border-radius: 22px;
  border: 1px solid var(--border);
  background: rgba(15, 23, 42, 0.96);
  color: #f8fafc;
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.35);
}

.pwa-maintenance-banner strong {
  display: block;
  font-size: 0.94rem;
}

.pwa-maintenance-banner span {
  display: block;
  margin-top: 4px;
  color: rgba(248, 250, 252, 0.74);
  font-size: 0.84rem;
  line-height: 1.35;
}

.pwa-maintenance-banner .action-row {
  margin-top: 12px;
}

@media (max-width: 520px) {
  .pwa-maintenance-banner .action-row {
    grid-template-columns: 1fr;
  }
}