/* Оформление страницы входа. Отдельным файлом с 16.09 — не ради порядка, а ради CSP:
   `style-src 'self'` без `'unsafe-inline'` запрещает <style> прямо в разметке, а
   исключение ради одной страницы обнуляло бы правило для всего сервиса.

   Палитра продублирована из src/theme.ts (страница живёт вне сборки Vite — гейт обязан
   отдавать её без приложения): правишь там — поправь тут. */
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/fonts/montserrat-cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/fonts/montserrat-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
    U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
    U+FEFF, U+FFFD;
}
* { box-sizing: border-box; margin: 0; }
body {
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 26px;
  padding: 24px 16px;
  background: #F4F6F8;            /* T.ground */
  color: #2B2A29;                 /* T.ink */
  font-family: "Montserrat", ui-sans-serif, system-ui, -apple-system, "Segoe UI",
    Roboto, Arial, sans-serif;
}
.logo { display: flex; align-items: center; gap: 12px; }
.logo img { width: 46px; height: 46px; }
.logo b { display: block; font-size: 14.5px; letter-spacing: 0.02em; line-height: 1.3; }
.logo small {
  display: block;
  font-family: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 10.5px;
  letter-spacing: 0.08em;
  color: #8F9498;                 /* T.faint */
  margin-top: 2px;
}
form {
  width: min(420px, 100%);
  background: #FFFFFF;            /* T.surface */
  border-radius: 10px;
  box-shadow: 0 1px 2px rgba(43, 42, 41, 0.05), 0 4px 14px rgba(43, 42, 41, 0.07);
  padding: 30px 32px 26px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
h1 { font-size: 20px; }
.sub { font-size: 13.5px; color: #5F6366; margin-top: -8px; }  /* T.muted */
label { font-size: 12.5px; font-weight: 600; color: #5F6366; margin-bottom: -8px; }
input {
  width: 100%;
  padding: 11px 12px;
  font: inherit;
  font-size: 15px;
  color: inherit;
  border: 1px solid #E2E5E8;      /* T.line */
  border-radius: 8px;
  outline: none;
}
input:focus { border-color: #DC2F2F; box-shadow: 0 0 0 3px #FCEDED; }
.err {
  font-size: 13px;
  color: #99231F;                 /* T.bad — ошибка не фирменным красным, а бордо */
  background: #F7ECEB;
  border-radius: 8px;
  padding: 9px 12px;
}
button {
  padding: 12px;
  font: inherit;
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #fff;
  background: #DC2F2F;            /* T.accent */
  border: 0;
  border-radius: 8px;
  cursor: pointer;
}
button:hover { background: #C22626; }
.hint { font-size: 12.5px; line-height: 1.5; color: #8F9498; }
