/* Mobile + Telegram WebView adaptation. Loaded after app.css; no redesign - spacing, safe areas, keyboard. */
:root { --kb: 0px; --tg-top: 0px; --tg-bottom: 0px; }
.narrow { max-width: 460px; }
.auth-card { margin-top: 8vh; }
.stack > * + * { margin-top: 4px; }
.link-btn { border: 0; background: transparent; color: var(--accent); text-decoration: underline; min-height: 44px; padding: 0 4px; }
dl.kv { display: grid; grid-template-columns: max-content 1fr; gap: 6px 14px; margin: 8px 0 14px; }
dl.kv dt { color: var(--muted); font-size: .88rem; } dl.kv dd { margin: 0; overflow-wrap: anywhere; }
@viewport { width: device-width; }
/* safe areas: notches, the Telegram header and the home indicator */
.topbar { padding-top: max(10px, env(safe-area-inset-top)); padding-left: max(20px, env(safe-area-inset-left)); padding-right: max(20px, env(safe-area-inset-right)); }
.wrap { padding-left: max(20px, env(safe-area-inset-left)); padding-right: max(20px, env(safe-area-inset-right));
  padding-bottom: calc(48px + env(safe-area-inset-bottom) + var(--tg-bottom) + var(--kb)); }
html.in-telegram .topbar { position: static; padding-top: calc(var(--tg-top) + 8px); }
html.in-telegram body { overscroll-behavior-y: none; }
@media (max-width: 640px) {
  .wrap { padding-top: 12px; padding-left: max(14px, env(safe-area-inset-left)); padding-right: max(14px, env(safe-area-inset-right)); }
  .card { padding: 14px; }
  .grid { grid-template-columns: 1fr; }
  input, select, textarea { font-size: 16px; }      /* no zoom-on-focus on iOS */
  .row > button, .row > .btn { flex: 1 1 auto; }
  .table-wrap { margin-left: -4px; margin-right: -4px; }
  .auth-card { margin-top: 2vh; }
}
