/* ОПЛОТ — экраны входа и второго фактора (auth.zig, twofa.zig): вариант «Б · Две половины»,
   палитра «Нефрит» (ui-prototype, выбран 11.10.2026). Подключается без сессии — только этот файл
   и шрифт из /assets/fonts. Классы форм прежние (login-box, form-group, btn, error …). */
@font-face{font-family:Manrope;font-weight:400;font-display:swap;src:url(/assets/fonts/Manrope-400-cyrillic.woff2) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Manrope;font-weight:400;font-display:swap;src:url(/assets/fonts/Manrope-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2122,U+2212}
@font-face{font-family:Manrope;font-weight:600;font-display:swap;src:url(/assets/fonts/Manrope-600-cyrillic.woff2) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Manrope;font-weight:600;font-display:swap;src:url(/assets/fonts/Manrope-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2122,U+2212}
@font-face{font-family:Manrope;font-weight:700;font-display:swap;src:url(/assets/fonts/Manrope-700-cyrillic.woff2) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Manrope;font-weight:700;font-display:swap;src:url(/assets/fonts/Manrope-700-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2122,U+2212}

:root{
  --bg:#121514; --surface:#191D1C; --surface-2:#1E2321; --line:#272D2B; --line-2:#333B38;
  --ink:#E6EBE8; --ink-2:#93A09A; --ink-3:#6C7873;
  --accent:#3FB394; --accent-ink:#7FD3BB; --accent-soft:#183A31; --on-accent:#0C1A16;
  --bad:#EC8A78; --bad-bg:#35201C; --wait-bg:#2E271A;
  --r:6px; --font:Manrope,"Segoe UI",system-ui,sans-serif;
  color-scheme:dark;
}
*{margin:0;padding:0;box-sizing:border-box}
body{min-height:100vh;background:var(--bg);color:var(--ink);font:400 14px/1.5 var(--font);-webkit-font-smoothing:antialiased}
a{color:var(--accent-ink);text-decoration:none}
a:hover{text-decoration:underline}

/* ---------- две половины ---------- */
.au{display:grid;grid-template-columns:minmax(0,44%) minmax(0,1fr);min-height:100vh}
.au-side{background:var(--accent);color:var(--on-accent);padding:40px 48px;display:flex;flex-direction:column}
.au-brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:17px}
.au-mark{width:34px;height:34px;border-radius:var(--r);background:var(--on-accent);color:var(--accent);display:grid;place-items:center;font-weight:700;font-size:16px}
.au-side-t{margin-top:auto;font-size:28px;font-weight:600;line-height:1.25;max-width:360px}
.au-side-s{margin-top:12px;font-size:14px;opacity:.8;max-width:360px}
.au-form{display:grid;place-items:center;padding:40px 24px}
@media (max-width:820px){
  .au{grid-template-columns:1fr;grid-template-rows:auto 1fr}
  .au-side{padding:16px 20px}
  .au-side-t,.au-side-s{display:none}
  .au-form{place-items:start center;padding:28px 20px}
}

/* ---------- форма (классы auth.zig / twofa.zig) ---------- */
.login-box,.box{width:100%;max-width:380px}
.box{max-width:440px}
.login-box h1,.box h1{font-size:22px;font-weight:600;color:var(--ink);margin-bottom:4px}
.subtitle{color:var(--ink-2);font-size:13.5px;margin-bottom:22px}
.form-group{margin-bottom:14px}
.form-group label{display:block;margin-bottom:6px;color:var(--ink-2);font-size:13px;font-weight:600}
.form-group input{width:100%;height:42px;padding:0 12px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface);color:var(--ink);font:400 15px var(--font)}
.form-group input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.form-group input[inputmode="numeric"]{letter-spacing:.35em;font-weight:600;text-align:center}
.pwd-wrap{position:relative}
.pwd-wrap input{padding-right:44px}
.pwd-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:0;cursor:pointer;padding:4px;color:var(--ink-3);display:grid;place-items:center}
.pwd-toggle:hover{color:var(--ink)}
.btn{display:block;width:100%;height:42px;line-height:42px;padding:0;border:0;border-radius:var(--r);background:var(--accent);color:var(--on-accent);font:600 15px var(--font);cursor:pointer;text-align:center;text-decoration:none;margin-top:4px}
.btn:hover{filter:brightness(1.07);text-decoration:none}
.error{margin-bottom:16px;padding:10px 12px;border-radius:var(--r);background:var(--bad-bg);color:var(--bad);font-size:13.5px}
.warn{margin-bottom:16px;padding:10px 12px;border-radius:var(--r);background:var(--wait-bg);color:var(--ink);font-size:13.5px;line-height:1.55}
.hint{color:var(--ink-3);font-size:13px;margin-top:14px}
.hint a{color:var(--ink-2)}
.chk{display:flex;align-items:center;gap:8px;margin:2px 0 16px;font-size:13.5px;color:var(--ink);cursor:pointer}
.chk input{accent-color:var(--accent);width:16px;height:16px}
.steps{margin:0 0 16px 20px;font-size:13.5px;line-height:1.6;color:var(--ink)}
.qr{display:flex;justify-content:center;align-items:center;min-height:220px;margin:4px 0 12px;color:var(--ink-3);font-size:12.5px}
.qr canvas,.qr img,.qr svg,.aqr canvas,.aqr img,.aqr svg{background:#fff;padding:8px;border-radius:var(--r)}
.keylabel{color:var(--ink-3);font-size:12.5px;margin-bottom:4px}
.secret{font:600 14px/1.4 Consolas,monospace;letter-spacing:.08em;padding:8px 10px;border-radius:var(--r);background:var(--surface-2);color:var(--ink);word-break:break-all;margin-bottom:16px;text-align:center;user-select:all}
.codes{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:18px}
.codes code{font:600 14px Consolas,monospace;padding:8px;border-radius:var(--r);background:var(--surface-2);color:var(--ink);text-align:center;user-select:all}
.appqr{display:flex;gap:20px;margin:6px 0 4px}
.appqr .aq{text-align:center;font-size:12px;line-height:1.45;color:var(--ink-2)}
.appqr .aqr{display:flex;justify-content:center;align-items:center;min-height:112px;min-width:112px;margin-bottom:6px;color:var(--ink-3);font-size:11px}
.appdl{margin-bottom:14px}
.appdl summary{cursor:pointer;color:var(--ink-2);font-size:13px;margin-bottom:6px}
.appnote{color:var(--ink-3);font-size:12.5px;margin-bottom:16px}
.au-center{text-align:center}
