/* Окна входа, регистрации и «О бета-версии»: нативный <dialog> (showModal — фон инертен, Esc, возврат фокуса).
   Внешний вид окна — из эталона (.dialog), поля формы — в его же палитре. */
dialog.dialog {
  width: min(430px, calc(100% - 32px));
  max-width: none;
  max-height: calc(100vh - 32px);
  max-height: calc(100dvh - 32px);
  overflow: auto;
  margin: auto;
  padding: 30px;
  color: var(--ink);
  background: linear-gradient(135deg, #0a2531, #051018);
  border: 1px solid rgba(12, 216, 234, .54);
  border-radius: 16px;
  box-shadow: 0 26px 90px rgba(0, 0, 0, .65), 0 0 90px rgba(0, 217, 232, .11);
}
dialog.dialog.wide { width: min(560px, calc(100% - 32px)); }
dialog.dialog::backdrop { background: rgba(0, 5, 12, .75); backdrop-filter: blur(10px); }
body.modal-open { overflow: hidden; }

.dialog h2 { font-size: 27px; margin: 0 0 10px; padding-right: 34px; }
.dialog p { font-size: 13px; color: #abc0cb; }
.dialog .close {
  position: absolute; right: 8px; top: 8px;
  width: 44px; height: 44px;
  display: grid; place-items: center;
  background: transparent; border: 0; border-radius: 8px;
  color: #c5d8df; font-size: 25px; line-height: 1;
}
.dialog .close:hover { color: #fff; background: rgba(255, 255, 255, .06); }

.field { display: grid; gap: 7px; margin-top: 14px; font-size: 12px; color: #c9e8ef; }
.field input[type="text"], .field input[type="email"], .field input[type="password"] {
  width: 100%; padding: 11px; border-radius: 7px;
  color: #ddf0fa; background: #07121b;
  border: 1px solid rgba(20, 143, 168, .43);
}
.field input::placeholder { color: #6f8a98; }

.consent { display: flex; gap: 10px; align-items: flex-start; margin-top: 16px; font-size: 12px; color: #abc0cb; line-height: 1.45; }
.consent input { width: 18px; height: 18px; flex: 0 0 18px; margin: 1px 0 0; accent-color: #02e4ea; }
.consent a, .dialog .text-link { color: #56d5eb; text-decoration: underline; text-underline-offset: 2px; }
.consent a:hover, .dialog .text-link:hover { color: #a3fcff; }
.dialog .text-link { display: inline-block; margin-top: 12px; font-size: 12px; }

.dialog .button.wide-btn { width: 100%; margin-top: 18px; }
.dialog .button[disabled] { opacity: .6; cursor: not-allowed; }
.dialog .button[disabled]:hover { transform: none; }

.dialog .banner { margin: 16px 0 0; padding: 10px 12px; border-radius: 7px; font-size: 12px; color: #ffd9a1; border: 1px solid rgba(255, 177, 60, .4); background: rgba(255, 177, 60, .08); }
.dialog .banner[hidden] { display: none; }
.dialog .microcopy { border: 1px solid #265a6b; padding: 11px; border-radius: 7px; margin-top: 17px; color: #9dc9d4; font-size: 12px; }

/* Состояние форм (LANDING-02): ошибка, подсказка, индикатор выполнения, поле кода */
.dialog .form-status, .dialog .form-note { margin: 14px 0 0; padding: 10px 12px; border-radius: 7px; font-size: 12px; line-height: 1.45; }
.dialog .form-status { color: #ffc8c8; border: 1px solid rgba(255, 99, 99, .45); background: rgba(255, 99, 99, .09); }
.dialog .form-note { color: #bdf3f6; border: 1px solid rgba(8, 222, 243, .35); background: rgba(8, 222, 243, .07); }
.dialog .form-status[hidden], .dialog .form-note[hidden] { display: none; }
.field input[aria-invalid="true"] { border-color: rgba(255, 99, 99, .75); }
.dialog p b { color: var(--ink); font-weight: 700; word-break: break-all; }
.dialog .button .spin { display: none; width: 14px; height: 14px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: dlg-spin .7s linear infinite; }
.dialog .button.is-busy .spin { display: inline-block; }
.dialog .button.is-busy { cursor: progress; }
@keyframes dlg-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .dialog .button .spin { animation-duration: 2.4s; } }
.dialog .text-btn { display: block; margin: 12px auto 0; padding: 6px 4px; background: none; border: 0; cursor: pointer; font: inherit; font-size: 12px; }
.field input.code-input { text-align: center; font-size: 22px; font-weight: 700; letter-spacing: .4em; padding-left: calc(11px + .4em); }
.field input.code-input::placeholder { letter-spacing: .4em; font-weight: 500; }
.dialog .button.outline.wide-btn { margin-top: 10px; }

/* «О бета-версии»: тот же текст, что в приложении (login_screen.dart → _showBetaInfo) */
.beta-list { margin: 16px 0 0; padding: 0; list-style: none; display: grid; gap: 8px; font-size: 14px; color: #c3d6df; }
.beta-list li { display: flex; gap: 9px; }
.beta-list li::before { content: "•"; color: var(--cyan); }
.dialog .beta-strong { margin: 18px 0 0; font-size: 14px; font-weight: 700; color: var(--ink); }
.dialog .beta-last { margin: 8px 0 0; font-size: 14px; color: #c3d6df; }
.dialog .button.close-btn { margin-top: 22px; }

@media (max-width: 570px) {
  dialog.dialog { padding: 24px 18px 20px; }
  .dialog h2 { font-size: 23px; }
}

/* Кнопки в окнах: обычный размер (на узких экранах .button в шапке уменьшается) */
.dialog .button { min-height: 44px; padding: 0 19px; font-size: 13px; border-radius: 9px; }
