/* ---------- сайт (PWA): вход, установка, раздел «Это устройство» ---------- */
.web-login { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 24px 20px calc(24px + env(safe-area-inset-bottom));
  background: var(--bg, #0e1317); overflow-y: auto; }
.web-login-card { width: min(360px, 100%); display: flex; flex-direction: column; align-items: center; text-align: center; gap: 12px; }
.web-login-logo { width: 84px; height: 84px; border-radius: 22.3%; box-shadow: 0 12px 34px rgba(0,0,0,.35); }
.web-login h1 { margin: 6px 0 0; font-size: 24px; font-weight: 800; color: var(--text, #fff); }
.web-login p { margin: 0 0 6px; font-size: 15px; line-height: 1.45; color: var(--muted, #9aa3a0); }
.web-btn { display: flex; align-items: center; justify-content: center; width: 100%; height: 48px; border-radius: 14px; background: var(--accent, #34d98a); color: var(--on-accent, #06231a);
  font-weight: 700; font-size: 16px; text-decoration: none; }
.web-login-form { display: flex; gap: 8px; width: 100%; }
.web-login-form input { flex: 1; min-width: 0; height: 48px; padding: 0 14px; border-radius: 14px; border: 1px solid var(--surface-2, #2a3130); background: var(--surface, #161c1b);
  color: var(--text, #fff); font: inherit; font-size: 18px; letter-spacing: 3px; text-align: center; outline: none; }
.web-login-form input:focus { border-color: var(--accent, #34d98a); }
.web-login-form button { flex: none; height: 48px; padding: 0 18px; border-radius: 14px; background: var(--surface-2, #2a3130); color: var(--text, #fff); font-weight: 700; font-size: 15px; }
.web-login-err { min-height: 18px; font-size: 13px; color: #ff7b7b; }

.web-row-btn { width: 100%; text-align: left; background: none; border: 0; color: inherit; font: inherit; }
.web-danger { color: #ff6b6b; }

.web-install-bar { position: fixed; left: 10px; right: 10px; bottom: calc(var(--nav-height, 60px) + env(safe-area-inset-bottom) + 10px); z-index: 60;
  display: flex; align-items: center; gap: 10px; padding: 10px; border-radius: 16px; background: var(--surface, #161c1b); box-shadow: 0 12px 34px rgba(0,0,0,.35); }
.web-install-bar img { width: 40px; height: 40px; border-radius: 10px; flex: none; }
.web-install-bar span { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.web-install-bar b { font-size: 14px; }
.web-install-bar small { font-size: 12px; color: var(--muted, #9aa3a0); }
.web-install-bar button { flex: none; height: 34px; padding: 0 12px; border-radius: 10px; font-weight: 700; font-size: 13px; }
.web-install-bar button[data-i="yes"] { background: var(--accent, #34d98a); color: var(--on-accent, #06231a); }
.web-install-bar button[data-i="no"] { width: 34px; padding: 0; color: var(--muted, #9aa3a0); }

/* компьютерная версия: кнопки «Скачать программу» — ссылки в стиле кнопок */
a.upd-go, a.upd-alt { display: inline-flex; align-items: center; text-decoration: none; }
.web-app-dl { display: flex; gap: 6px; flex: none; }
.web-app-dl a { text-decoration: none; display: inline-flex; align-items: center; }
/* предложение программы — справа снизу, чтобы не закрывать сайдбар */
.upd-card.web-app-promo { left: auto; right: 20px; bottom: 20px; }
