/* =========================================================
   ВХОД И РЕГИСТРАЦИЯ В ЛИЧНЫЙ КАБИНЕТ (inc/authform.php, assets/auth.js)
   Окно повторяет «Быструю заявку»: те же .modal-overlay / .modal-box из style.css (бумага, чёрная рамка,
   жёлтая тень, чёрный круглый крестик), заголовок с жёлтым словом, поля как в формах сайта.
   ========================================================= */

html.au-lock{overflow:hidden;}
.au-box{max-width:460px;padding:36px 36px 30px;}
.au{display:block;}
.au-step[hidden]{display:none;}

.au--modal .au-title{padding-right:44px;}
.au-title{margin:0 0 12px;}
.au-lead{margin:0 0 22px;font-size:14.5px;line-height:1.5;color:var(--grey);}
.au-lead b{color:var(--ink);white-space:nowrap;}

/* телефон: «+7» и поле в одной рамке */
.au-field{margin-bottom:16px;position:relative;}
.au-phone{display:flex;align-items:stretch;border:2px solid var(--line);background:var(--paper);border-radius:var(--radius);transition:border-color .15s ease,background .15s ease;}
.au-phone:focus-within{border-color:var(--black);background:#fff;}
.au-cc{display:flex;align-items:center;padding:0 14px 0 18px;border-right:2px solid var(--line);font:700 22px var(--font-body);letter-spacing:.02em;color:var(--ink);}
.au-phone input{flex:1;min-width:0;border:0;background:transparent;padding:18px 16px 18px 14px;font:700 22px var(--font-body);letter-spacing:.02em;color:var(--ink);outline:none;border-radius:0;}
.au-phone input::placeholder{color:var(--line);font-weight:600;}
.au-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none;}

.au-go{width:100%;justify-content:center;padding:16px 20px;font-size:14px;}
.au-go[disabled]{opacity:.65;cursor:wait;transform:none;}
.au-hint{margin:12px 0 0;font-size:13px;color:var(--grey);text-align:center;}

/* соцсети */
.au-or{display:flex;align-items:center;gap:12px;margin:24px 0 14px;font:600 12px var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--grey);}
.au-or::before,.au-or::after{content:"";flex:1;height:2px;background:var(--line);}
.au-soc{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.au-soc--one{grid-template-columns:1fr;}
.au-soc .btn{width:100%;justify-content:center;gap:10px;padding:13px 12px;}
.au-ic{display:inline-flex;align-items:center;justify-content:center;flex:none;width:22px;height:22px;border-radius:50%;color:#fff;font-weight:700;line-height:1;}
.au-ic--ya{background:#fc3f1d;font-size:13px;}
.au-ic--vk{background:#0077ff;font-size:9px;}
.au-legal{margin:18px 0 0;font-size:12px;line-height:1.5;color:var(--grey);text-align:center;}
.au-legal a{color:var(--ink);text-underline-offset:2px;}

/* шаг «4 цифры» */
.au-back{margin:0 0 14px;padding:0;border:0;background:none;font:600 13px var(--font-body);color:var(--ink);cursor:pointer;text-decoration:underline;text-underline-offset:3px;}
.au-code{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;}
.au-code input{width:100%;height:72px;padding:0;text-align:center;border:2px solid var(--line);background:var(--paper);border-radius:var(--radius);font:900 34px var(--font-display);color:var(--ink);caret-color:var(--black);outline:none;transition:border-color .15s ease,background .15s ease;}
.au-code input:focus{border-color:var(--black);background:#fff;}
.au-code input.is-bad{border-color:#d64545;background:#fdecea;}
.au-code input[disabled]{opacity:.6;}
.au-status{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:24px;margin:14px 0 0;font-size:13.5px;color:var(--grey);}
.au-status b{color:var(--ink);font-variant-numeric:tabular-nums;}
.au-status [hidden]{display:none;}
.au-resend{padding:0;border:0;background:none;font:700 13.5px var(--font-body);color:var(--ink);cursor:pointer;text-decoration:underline;text-underline-offset:3px;}
.au-resend[disabled]{opacity:.5;cursor:wait;}
/* «Звонок не пришёл? Прислать код СМС» под таймером повторного звонка */
.au-status--sms{margin-top:8px;justify-content:flex-start;}
.au-lead [hidden]{display:none;}

/* ошибка */
.au-error{margin:16px 0 0;padding:12px 14px;background:#fdecea;border:2px solid #e74c3c;color:#a52a1c;font-size:13.5px;font-weight:600;line-height:1.45;}
.au-error[hidden]{display:none;}
@keyframes au-shake{0%,100%{transform:translateX(0);}20%{transform:translateX(-7px);}40%{transform:translateX(6px);}60%{transform:translateX(-4px);}80%{transform:translateX(3px);}}
.au-shake{animation:au-shake .35s ease;}

.au :focus-visible{outline:3px solid var(--black);outline-offset:2px;}
.au-phone input:focus-visible,.au-code input:focus-visible{outline:none;}

/* отдельная страница входа: та же карточка, что окно, только по центру страницы */
.au-page{padding:40px 0 72px;}
.au--page{max-width:480px;margin:0 auto;padding:36px;background:var(--paper);border:2px solid var(--black);box-shadow:10px 10px 0 var(--yellow);}
.au--page .au-title{font-size:clamp(26px,4vw,34px);}

@media (max-width:520px){
  .au-box{padding:30px 20px 24px;}
  .au--page{padding:28px 20px;box-shadow:6px 6px 0 var(--yellow);}
  .au-cc,.au-phone input{font-size:19px;}
  .au-code{gap:8px;}
  .au-code input{height:64px;font-size:30px;}
}
@media (prefers-reduced-motion:reduce){
  .au-shake{animation:none;}
}

/* привязка номера внутри кабинета (аккаунт из соцсети без телефона) */
.au--inline{max-width:480px;margin:0 0 40px;padding:30px 30px 26px;background:var(--paper);border:2px solid var(--black);box-shadow:8px 8px 0 var(--yellow);}
@media (max-width:520px){ .au--inline{padding:24px 18px 20px;box-shadow:5px 5px 0 var(--yellow);} }

/* «Как к вам обращаться?» в кабинете, если имени ещё нет */
.au-name{max-width:480px;margin:0 0 28px;}
.au-name-row{display:flex;gap:10px;}
.au-name-row input{flex:1;min-width:0;}
.au-name-row .btn{flex:none;width:auto;}
