:root{
  --auth-ink:#14213a;
  --auth-muted:#64748b;
  --auth-line:#d9e1eb;
  --auth-blue:#087be8;
  --auth-blue-dark:#066bc2;
  --auth-error:#c62f35;
  font-family:Inter,Arial,sans-serif;
  color:var(--auth-ink);
  background:#f7faff;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{min-height:100%;margin:0}
body{
  background:#f7faff url("/static/assets/brand/auth-background.png") center/cover no-repeat fixed;
  color:var(--auth-ink);
}
button,input{font:inherit}
.auth-page__viewport{
  display:flex;
  align-items:flex-start;
  justify-content:center;
  box-sizing:border-box;
  min-height:100dvh;
  padding:40px 24px;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
}
.auth-card{
  width:min(620px,100%);
  display:grid;
  flex:0 0 auto;
  gap:20px;
  margin:auto;
  padding:42px 52px 32px;
  border:1px solid rgba(219,227,238,.72);
  border-radius:24px;
  background:rgba(255,255,255,.95);
  box-shadow:0 24px 65px rgba(41,62,92,.15);
  backdrop-filter:blur(7px);
}
.auth-card--register{width:min(760px,100%);gap:14px;padding:24px 48px 18px}
.auth-card__logo{display:block;width:270px;max-width:70%;height:auto;margin:0 auto 10px}
.auth-card--register .auth-card__logo{width:225px;margin-bottom:2px}
.auth-card__head{display:grid;gap:10px}
.auth-card__head h1{margin:0;color:#101d35;font-size:34px;line-height:1.15;letter-spacing:-.025em}
.auth-card__head p{max-width:520px;margin:0;color:var(--auth-muted);font-size:17px;line-height:1.5}
.auth-card--register .auth-card__head{gap:5px}
.auth-card--register .auth-card__head h1{font-size:28px}
.auth-card--register .auth-card__head p{font-size:14px}
.auth-form{display:grid;gap:20px}
.auth-form--registration{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}
.auth-section-title{grid-column:1/-1;margin:0;color:#26364e;font-size:15px;line-height:1.3}
.auth-field{display:grid;gap:7px;min-width:0;color:#40506a;font-size:14px}
.auth-field--wide{grid-column:1/-1}
.auth-input-shell{
  display:grid;
  grid-template-columns:28px minmax(0,1fr) 32px;
  align-items:center;
  min-height:54px;
  padding:0 12px;
  border:1px solid #cdd8e6;
  border-radius:9px;
  background:#fff;
  transition:border-color .16s ease,box-shadow .16s ease;
}
.auth-input-shell:focus-within{border-color:#3182f6;box-shadow:0 0 0 3px rgba(49,130,246,.12)}
.auth-input-icon{display:grid;place-items:center;color:#64748b;pointer-events:none}
.auth-input-icon svg,.auth-eye svg,.auth-card__foot svg,.auth-link svg{width:22px;height:22px;fill:currentColor}
.auth-input{width:100%;min-width:0;height:50px;padding:0 6px;border:0;outline:0;background:transparent;color:#17233b;font:inherit;font-size:16px}
.auth-input::placeholder{color:#a3afc0}
.auth-eye{display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;background:transparent;color:#526176;cursor:pointer}
.auth-eye:hover{color:var(--auth-blue)}
.auth-eye:focus-visible,.auth-link:focus-visible,.auth-remembered-phone:focus-visible{outline:3px solid rgba(49,130,246,.3);outline-offset:3px;border-radius:6px}
.auth-check{display:flex;align-items:flex-start;gap:10px;color:#526176;font-size:14px;line-height:1.4;cursor:pointer}
.auth-check input{width:19px;height:19px;flex:0 0 19px;margin:0;accent-color:var(--auth-blue)}
.auth-submit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:100%;
  min-height:52px;
  border:0;
  border-radius:8px;
  background:linear-gradient(90deg,#0874d1,#008bd8);
  color:#fff;
  font-size:17px;
  font-weight:700;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(8,120,220,.16);
}
.auth-submit:hover:not(:disabled){background:linear-gradient(90deg,var(--auth-blue-dark),#0080ca)}
.auth-submit:disabled{cursor:wait;opacity:.7}
.auth-submit.is-loading::before{content:"";width:17px;height:17px;flex:0 0 17px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;animation:auth-status-spin .8s linear infinite}
.auth-links{display:flex;align-items:center;justify-content:center;gap:0;margin-top:2px}
.auth-link{display:flex;align-items:center;justify-content:center;gap:8px;min-height:34px;padding:0 30px;color:var(--auth-blue);font-size:15px;font-weight:600;text-decoration:none}
.auth-link:hover{text-decoration:underline}
.auth-link--button{border:0;background:transparent;cursor:pointer}
.auth-link--button:disabled{color:#94a3b8;cursor:not-allowed;text-decoration:none}
.auth-link:not([hidden])+.auth-link:not([hidden]){border-left:1px solid var(--auth-line)}
.auth-link svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.auth-link--registration svg,.auth-link--recovery svg{fill:currentColor;stroke:none}
.auth-notice{margin:0;padding:12px 14px;border:1px solid #f1b6b9;border-radius:9px;background:#fff4f4;color:var(--auth-error);font-size:14px;line-height:1.45}
.auth-notice.is-success{border-color:#9bdcb5;background:#f1fff6;color:#167442}
.auth-input--code{font-size:22px;font-weight:700;letter-spacing:.35em;text-align:center}
.auth-help{margin:-4px 0 0;color:var(--auth-muted);font-size:13px;line-height:1.5}
.auth-card__foot{display:flex;align-items:center;justify-content:center;gap:10px;padding-top:18px;border-top:1px solid #e1e7ef;color:#738097;font-size:13px;line-height:1.4;text-align:center}
.auth-card__foot svg{width:19px;height:19px;flex:0 0 19px}
.auth-remembered-phone{
  display:grid;
  grid-template-columns:58px minmax(0,1fr);
  gap:15px;
  align-items:center;
  width:100%;
  padding:16px 18px;
  border:1px solid #cfe0f5;
  border-radius:12px;
  background:#f7fbff;
  color:inherit;
  font:inherit;
  text-align:left;
  cursor:pointer;
  transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease;
}
.auth-remembered-phone:hover{border-color:#a9cff8;background:#f1f8ff}
.auth-remembered-phone__icon{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:#e5f1ff;color:var(--auth-blue)}
.auth-remembered-phone__icon svg{width:27px;height:27px;fill:currentColor}
.auth-remembered-phone>span:last-child{display:grid;gap:7px}
.auth-remembered-phone__label{color:#64748b;font-size:14px;line-height:1}
.auth-remembered-phone strong{color:#17233b;font-size:20px;font-weight:500;line-height:1.15}
.auth-card--remembered{width:min(620px,100%)}
.project-invitation{display:grid;gap:20px}
.project-invitation__summary{display:grid;gap:10px;margin:0;padding:16px 18px;border:1px solid #d6e3f3;border-radius:12px;background:#f6faff}
.project-invitation__summary div{display:grid;grid-template-columns:100px minmax(0,1fr);gap:14px}
.project-invitation__summary dt{color:var(--auth-muted);font-size:13px}
.project-invitation__summary dd{margin:0;color:var(--auth-ink);font-weight:700;overflow-wrap:anywhere}
.project-invitation__lead{margin:0;color:var(--auth-muted);font-size:14px;line-height:1.5}
.project-invitation__result{display:flex;align-items:center;gap:10px;margin:0;padding:14px 16px;border:1px solid #cddbec;border-radius:10px;background:#f7faff;color:#40506a;line-height:1.45}
.project-invitation__result strong,.project-invitation__result span:not(.project-invitation__spinner){display:block}
.project-invitation__result.is-success{display:grid;gap:3px;border-color:#9bdcb5;background:#f1fff6;color:#167442}
.project-invitation__result.is-error{border-color:#f1b6b9;background:#fff4f4;color:var(--auth-error)}
.project-invitation__spinner{width:18px;height:18px;flex:0 0 18px;border:2px solid #9ab0ca;border-top-color:var(--auth-blue);border-radius:50%;animation:auth-status-spin .8s linear infinite}
.project-invitation__action{text-decoration:none}
@keyframes auth-status-spin{to{transform:rotate(360deg)}}
@media(max-height:760px){
  .auth-page__viewport{align-items:flex-start}
  .auth-card{margin:auto}
}
@media(max-width:700px){
  .auth-page__viewport{align-items:flex-start;padding:18px 12px}
  .auth-card,.auth-card--register{margin:auto;padding:28px 22px 24px;border-radius:18px}
  .auth-card__logo,.auth-card--register .auth-card__logo{width:210px}
  .auth-card__head h1{font-size:28px}
  .auth-card__head p{font-size:15px}
  .auth-form--registration{grid-template-columns:1fr}
  .auth-field--wide,.auth-section-title{grid-column:auto}
  .auth-links{display:grid;grid-template-columns:1fr}
  .auth-link{padding:8px 5px}
  .auth-link:not([hidden])+.auth-link:not([hidden]){border-left:0;border-top:1px solid #e1e7ef}
  .auth-card__foot{align-items:flex-start;text-align:left}
  .auth-remembered-phone{grid-template-columns:46px minmax(0,1fr);padding:14px}
  .auth-remembered-phone__icon{width:44px;height:44px}
  .auth-remembered-phone strong{font-size:17px}
}
@media(max-width:420px){
  .auth-page__viewport{padding:12px 8px}
  .auth-card,.auth-card--register{padding:24px 16px 20px;border-radius:15px}
  .auth-card__logo,.auth-card--register .auth-card__logo{width:185px}
  .auth-card__head h1{font-size:25px}
  .auth-input-shell{padding:0 9px}
  .auth-link{font-size:14px}
}
@media(prefers-reduced-motion:reduce){
  .auth-submit.is-loading::before{animation-duration:1.6s}
}
