/* Страница входа — единственные стили, которые отдаются без подписи: показать вход, отказ и закрытый экран с номером. Шрифты системные, своих здесь нет. Старые экраны — app.css за подписанным адресом. */
* { box-sizing: border-box; margin: 0; padding: 0; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; touch-action: manipulation; }
html, body { height: 100%; }
body { background: #F2F2F5; color: #16161F; font: 15px/1.4 -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, sans-serif; -webkit-font-smoothing: antialiased; overflow: hidden; overscroll-behavior: none; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; -webkit-tap-highlight-color: transparent; text-align: inherit; }
:focus-visible { outline: 2px solid #5AA9F0; outline-offset: 2px; }

/* Экран входа — один вид в обоих интерфейсах и всегда светлый (тот же, что в ui/shell.css): набор выключает эти стили и включает свои посреди входа, и разный вид давал
   заметный скачок — персиковый или тёмный экран и шапка Telegram, потом серый. Старые экраны закрашивают всё своим видом, когда открываются (reveal). */
#gate { position: fixed; inset: 0; z-index: 50; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; max-width: none; min-height: 0; margin: 0; padding: 16px;
  background: #F2F2F5; font: 15px/1.4 -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, sans-serif; color: #5C5C66; text-align: center; }
#gate .out { padding: 0; border-radius: 0; background: none; font-weight: 400; color: #5C5C66; }
/* Пока всё идёт, вход пустой. Слово остаётся для чтения с экрана, сбой показывается как раньше */
#gate .out[data-state="wait"] { opacity: 0; }
#gate .out[data-state="bad"] { color: #B3261E; }
#gate .out[data-state="warn"] { color: #8A5A00; }
/* Разметка пришла, скрипты нет: сторожа в этот раз тоже нет, и человек ждал бы вечно на пустом экране. Только CSS: строка проявляется сама через 12 с, скрипт, если дошёл, прячет её атрибутом hidden. */
#gate .gate-lost { margin: 0; opacity: 0; color: #5C5C66; animation: gate-lost .2s linear 12s forwards; }
#gate .gate-lost[hidden] { display: none; }
@keyframes gate-lost { to { opacity: 1; } }
/* Приложение ещё не открыто: номер человека и кнопка. Номер можно и выделить: не везде копирование срабатывает */
#gate .gate-note { margin: 0; color: #5C5C66; }
#gate .gate-id { margin: 8px 0 0; font-size: 20px; font-weight: 600; letter-spacing: .02em; color: #16161F; -webkit-user-select: text; user-select: text; }
#gate .gate-copy { min-height: 44px; padding: 10px 18px; border-radius: 22px; background: #E9E9EE; color: #16161F; font-weight: 600; text-align: center; }
#gate .btn { min-height: 48px; margin-top: 8px; padding: 12px 18px; border: 0; border-radius: 16px; background: #D2461F; color: #fff; font: inherit; font-weight: 700; cursor: pointer; }

/* локальный режим — плашкой поверх всего, мелко: и на экране входа, и на экранах пути (строгой подписи здесь нет) */
.dev-note { position: fixed; z-index: 100; top: max(6px, env(safe-area-inset-top)); right: 8px; padding: 3px 9px; border-radius: 999px; background: #FFF0C2; color: #2B2826; box-shadow: inset 0 0 0 1.5px #F2B53A; font-weight: 700; font-size: 11px; line-height: 1.3; pointer-events: none; }
