.brand-icon { width: 32px; height: 32px; border-radius: 7px; object-fit: contain; }
.app-top .icon-btn { width: 44px; height: 44px; }
.connection-status { flex-shrink: 0; padding: .65rem 1rem; background: var(--surface-2); color: var(--ink); border-bottom: 1px solid var(--line); font-size: .76rem; line-height: 1.55; }
.pwa-card { display: grid; grid-template-columns: 64px 1fr; gap: 1rem; align-items: center; border: 1px solid var(--line); background: var(--surface); border-radius: 16px; padding: 1.1rem; margin: 1.1rem 0; }
.pwa-card img { width: 64px; height: 64px; border-radius: 12px; }
.pwa-card h3 { font-size: 1rem; margin: 0 0 .35rem; }
.pwa-card p, .pwa-help p { color: var(--ink-dim); line-height: 1.65; font-size: .8rem; }
.pwa-card .btn { grid-column: 1 / -1; min-height: 44px; width: 100%; }
.pwa-help p + p { margin-top: .9rem; }
.app-update { position: absolute; z-index: 150; bottom: calc(80px + env(safe-area-inset-bottom)); left: 1rem; right: 1rem; background: var(--surface); color: var(--ink); border: 1px solid var(--accent); padding: 1rem; border-radius: 14px; box-shadow: 0 12px 40px #0004; }
.app-update p { font-size: .78rem; line-height: 1.6; color: var(--ink-dim); margin: .4rem 0 .8rem; }
.app-update-actions { display: flex; gap: .6rem; }
.app-update button { min-height: 44px; }
.app-version { text-align: center; color: var(--ink-dim); font-family: var(--data); font-size: .7rem; padding: 1.25rem 0; }
.app-stage [hidden] { display: none !important; }
@media (display-mode: standalone) {
  .app-stage { min-height: 100dvh; padding-top: env(safe-area-inset-top); }
  .device { border-radius: 0; }
  .app-tabbar { padding-bottom: max(.5rem, env(safe-area-inset-bottom)); }
}
