/* Токены — в tokens.css (подключается первым в login.html). */
    * { box-sizing:border-box; }
    /* Фокус с клавиатуры (аудит №13, ТЗ-4): на этой странице не было НИ ОДНОГО
       правила :focus — пройти её табом было невозможно вслепую. */
    :where(button, .btn, a, input, select, textarea, summary, [tabindex]):focus-visible {
      outline:2px solid var(--acc); outline-offset:2px; border-radius:var(--r-sm); }
    /* Уважаем системную настройку «меньше движения» (см. index.css/passport.css/
       raceplan.css) — единая заглушка на случай анимаций/переходов. */
    @media (prefers-reduced-motion: reduce) {
      *, *::before, *::after {
        animation-duration:0.01ms !important; animation-iteration-count:1 !important;
        transition-duration:0.01ms !important; scroll-behavior:auto !important;
      }
    }
    body { margin:0; font-size:var(--fs-md); line-height:1.55; font-family:var(--font-sans);
           background:var(--bg); color:var(--ink); -webkit-font-smoothing:antialiased; }
    a { color:var(--acc-text); text-decoration:none; }
    /* D5 (TZ-redesign-secondary-en.md): колонка в один столбец, без карточки-
       рамки вокруг формы — welcome-экран, не админ-панель. */
    .wrap { max-width:420px; margin:0 auto; padding:56px 16px; }
    .brand { margin-bottom:var(--sp-8); }
    .brand-mark { display:block; font-family:var(--font-head); font-weight:500; font-size:2rem;
                  letter-spacing:-.01em; color:var(--ink); text-decoration:none; }
    .deck { display:block; margin-top:6px; font-size:var(--fs-sm); color:var(--mut); }
    h1 { font-size:var(--fs-xl); margin:0 0 8px; }
    p { color:var(--mut); font-size:var(--fs-base); margin:8px 0; }
    label { display:block; font-weight:600; font-size:var(--fs-sm); margin:16px 0 8px; }
    input[type=email] { width:100%; padding:12px 12px; border-radius:var(--r-sm); border:1px solid var(--line);
            background:var(--card2); color:var(--ink); font-size:var(--fs-md); }
    button { width:100%; margin-top:16px; border:0; border-radius:var(--r-md); background:var(--acc);
             color:#131820; font-weight:700; font-size:var(--fs-base); padding:12px 16px; cursor:pointer; }
    button:hover { filter:brightness(1.08); }
    .err { background:#3a1d1d; border:1px solid #5a2a2a; color:#ffd2c8; border-radius:var(--r-sm);
           padding:8px 12px; font-size:var(--fs-sm); margin-bottom:12px; }
    .ok { color:var(--good); font-weight:700; }
    .devlink { word-break:break-all; background:var(--card2); border:1px dashed var(--line);
               border-radius:var(--r-sm); padding:12px; font-size:var(--fs-xs); margin-top:12px; }
    /* Раскрытие/назад — приглушённый язык .more (TZ-design-system.md:
       оранжевый только у действия, не у возврата). */
    .more { display:inline-block; margin-top:16px; color:var(--mut); font-weight:500; font-size:var(--fs-sm); }
    .more:hover { color:var(--ink); }
    .vlist { list-style:none; margin:16px 0 2px; padding:16px 0 0; border-top:1px solid var(--line); }
    .vlist li { position:relative; padding:4px 0 4px 24px; font-size:var(--fs-sm); color:var(--mut); }
    .vlist li::before { content:""; position:absolute; left:2px; top:11px; width:8px; height:8px;
                        border-radius:50%; background:var(--good); }
    .vlist li b { color:var(--ink); font-weight:600; }
    .trust { display:flex; gap:8px; align-items:flex-start; margin-top:16px; color:var(--mut);
             font-size:var(--fs-xs); line-height:1.5; }
    .trust svg { width:15px; height:15px; flex-shrink:0; margin-top:1px; stroke:var(--good);
                 fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
    .strava-btn { display:flex; align-items:center; justify-content:center; gap:8px;
                  background:#FC4C02; color:#fff; text-decoration:none; font-weight:700;
                  font-size:var(--fs-base); border-radius:var(--r-md); padding:12px 16px; margin-top:8px; }
    .strava-btn:hover { filter:brightness(1.08); }
    .strava-btn svg { width:17px; height:17px; }
    .strava-sub { font-size:var(--fs-xs); margin-top:8px; text-align:center; }
    .or { display:flex; align-items:center; gap:12px; color:var(--mut); font-size:var(--fs-xs);
          margin:16px 0 2px; }
    .or::before, .or::after { content:""; flex:1; height:1px; background:var(--line); }
    .langsw { margin-top:16px; text-align:center; font-size:var(--fs-xs); font-weight:700; color:var(--mut); }
    .langsw a { color:var(--mut); }
    .langsw a.on { color:var(--ink); }
    .langsw span { color:var(--line); margin:0 8px; }
