/* Sign in, register and forgot-password pages. Builds on tos.css tokens; auth.js drives the password toggle, strength meter and sign-up call. */
.au{position:relative;isolation:isolate;overflow-x:clip;color:#fff;padding:36px 0 84px;margin-bottom:-56px;background:radial-gradient(760px 460px at 88% 0,rgba(124,61,255,.42),transparent 65%),radial-gradient(560px 380px at 0 100%,rgba(224,79,240,.2),transparent 70%),linear-gradient(160deg,#160a3d,#2a1270 55%,#1d0d52)}
.au-bg{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.au-bg::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.12) 1px,transparent 1.2px);background-size:30px 30px;-webkit-mask-image:radial-gradient(70% 80% at 30% 40%,#000,transparent);mask-image:radial-gradient(70% 80% at 30% 40%,#000,transparent)}
.au-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center}
.au-aside .tos-crumbs{margin-bottom:22px}
.au-eyebrow{display:flex;align-items:center;gap:10px;margin:0 0 14px;color:#c4b5fd;font-size:12.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.au-eyebrow::before{content:"";width:26px;height:2px;border-radius:2px;background:linear-gradient(90deg,#f0abfc,#7c3dff)}
.au-aside h1{margin:0 0 8px;max-width:12em;color:#fff;font-size:clamp(34px,4.6vw,56px);font-weight:800;line-height:1.08;letter-spacing:-.025em;text-wrap:balance}
.au-aside h1 .tos-w{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.14em;margin-bottom:-.14em}
.au-aside h1 .tos-w>span{display:inline-block;animation:tos-word .95s cubic-bezier(.2,.8,.2,1) calc(var(--w,0) * 80ms + .1s) both}
.au-photo{position:relative;margin:0;max-width:660px}
.au-photo img{position:relative;z-index:1;display:block;width:100%;height:auto;filter:drop-shadow(0 24px 40px rgba(8,3,28,.45));animation:tos-float 7s ease-in-out infinite}
.au-aura{position:absolute;inset:10% 6% 0;border-radius:50%;background:radial-gradient(closest-side,rgba(196,132,255,.55),transparent 70%);animation:tos-pulse 5s ease-in-out infinite}
.au-badge{position:absolute;z-index:2;right:-6px;bottom:8%;display:flex;align-items:center;gap:10px;padding:10px 16px 10px 10px;border-radius:16px;background:#fff;color:var(--ink);box-shadow:0 18px 40px rgba(8,3,28,.4);animation:tos-float 6s ease-in-out -2s infinite}
.au-badge b{display:block;font-size:14px}
.au-badge small{display:block;color:var(--muted);font-size:12px}
.au-star{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;color:#fff;background:linear-gradient(135deg,#f59e0b,#f97316)}
.au-star .i{width:18px;height:18px;fill:currentColor;stroke:none}

/* Card */
.au-card{position:relative;padding:38px 38px 32px;border-radius:30px;background:#fff;color:var(--text);box-shadow:0 2px 6px rgba(22,9,58,.06),0 40px 90px rgba(8,3,28,.5);animation:tos-rise .9s cubic-bezier(.2,.8,.2,1) .15s both}
.au-card::before{content:"";position:absolute;inset:0 0 auto;height:5px;border-radius:30px 30px 0 0;background:linear-gradient(90deg,#4b21b5,#c026d3,#7c3dff);background-size:200% 100%;animation:tos-shine 6s linear infinite}
.au-card h2{margin:0 0 6px;color:var(--ink);font-size:clamp(24px,2.6vw,30px);font-weight:800;letter-spacing:-.01em}
.au-sub{margin:0 0 26px;color:var(--muted);font-size:15px}
.au-alert{display:flex;gap:10px;margin:0 0 18px;padding:12px 14px;border-radius:14px;font-size:14px;font-weight:600;line-height:1.45}
.au-alert--err{color:#9f1239;background:#fff1f5;border:1px solid #fecdd9}
.au-alert--ok{color:#0b6b4a;background:#e8f8f1;border:1px solid #bfeedb}
.au-alert[hidden]{display:none}
.au-field{position:relative;margin-bottom:18px}
.au-field input,.au-field select{width:100%;padding:24px 16px 8px;border:1.5px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);font:inherit;font-size:15.5px;outline:0;transition:border-color .2s,box-shadow .25s}
.au-field input[type=password],.au-field input.has-eye{padding-right:52px}
.au-field label{position:absolute;left:17px;top:17px;max-width:calc(100% - 70px);overflow:hidden;color:#8a85a0;font-size:15.5px;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;transform-origin:0 0;transition:transform .2s ease,color .2s}
.au-field input:focus,.au-field select:focus{border-color:var(--deep);box-shadow:0 0 0 4px rgba(124,61,255,.14)}
.au-field input:focus+label,.au-field input:not(:placeholder-shown)+label{transform:translateY(-10px) scale(.78);color:var(--deep)}
.au-field.is-invalid input{border-color:#e0366b}
.au-field.is-invalid{animation:au-shake .4s}
.au-err{display:block;min-height:0;margin:5px 4px 0;color:#c0275a;font-size:13px;font-weight:600}
.au-err:empty{display:none}
.au-eye{position:absolute;right:8px;top:9px;display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:10px;background:transparent;color:#8a85a0;cursor:pointer;transition:color .2s,background-color .2s}
.au-eye:hover{color:var(--deep);background:#f3efff}
.au-eye .i{width:20px;height:20px}
.au-eye .i+.i,.au-eye.is-on .i:first-child{display:none}
.au-eye.is-on .i+.i{display:block}
.au-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin:2px 0 22px;font-size:14px}
.au-check{display:inline-flex;align-items:center;gap:9px;color:var(--muted);font-weight:600;cursor:pointer}
.au-check input{width:18px;height:18px;margin:0;accent-color:var(--brand)}
.au-link{color:var(--brand);font-weight:700;text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 1.5px no-repeat;transition:background-size .3s}
.au-link:hover{background-size:100% 1.5px}
.au-submit{position:relative;width:100%;padding:16px 20px;font-size:16px;overflow:hidden}
.au-submit .au-l{position:absolute;inset:0;display:none;place-items:center}
.au-submit .au-l::after{content:"";width:20px;height:20px;border:2.5px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:au-spin .7s linear infinite}
.au-submit.is-busy{pointer-events:none}
.au-submit.is-busy>span:first-child{opacity:0}
.au-submit.is-busy .au-l{display:grid}
.au-safe{display:flex;align-items:center;justify-content:center;gap:8px;margin:16px 0 0;color:var(--muted);font-size:13px}
.au-safe .i{width:16px;height:16px;color:var(--ok)}
.au-alt{margin:22px 0 0;padding-top:20px;border-top:1px solid #f0edf8;color:var(--muted);font-size:14.5px;text-align:center}
.au-two{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.au-phone{display:grid;grid-template-columns:116px 1fr;gap:10px}
.au-phone .au-field select{padding:24px 12px 8px;appearance:none;-webkit-appearance:none;cursor:pointer}
.au-phone .au-field select+label{transform:translateY(-10px) scale(.78);color:var(--deep)}
.au-meter{display:flex;gap:5px;margin:-8px 2px 16px}
.au-meter i{flex:1;height:5px;border-radius:5px;background:#eee9f8;transition:background-color .3s}
.au-meter[data-s="1"] i:nth-child(-n+1){background:#ef4444}
.au-meter[data-s="2"] i:nth-child(-n+2){background:#f59e0b}
.au-meter[data-s="3"] i:nth-child(-n+3){background:#84cc16}
.au-meter[data-s="4"] i{background:#16a679}
.au-hint{margin:-10px 2px 16px;color:var(--muted);font-size:12.5px}
.au-done{padding:14px 0 6px;text-align:center}
.au-done .au-tick{display:grid;place-items:center;width:72px;height:72px;margin:0 auto 18px;border-radius:50%;color:#fff;background:linear-gradient(135deg,#16a679,#34d399);box-shadow:0 14px 34px rgba(22,166,121,.4);animation:au-pop .6s cubic-bezier(.3,1.4,.5,1) both}
.au-done .au-tick .i{width:34px;height:34px;stroke-width:2.6}
.au-done p{margin:0 0 22px;color:var(--muted)}
@keyframes au-shake{20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}
@keyframes au-spin{to{transform:rotate(360deg)}}
@keyframes au-pop{from{transform:scale(.4);opacity:0}to{transform:none;opacity:1}}

@media (max-width:960px){
  .au{padding:24px 0 56px}
  .au-grid{grid-template-columns:1fr;gap:34px}
  .au-aside h1{max-width:none}
  .au-photo{display:none}
}
@media (max-width:520px){
  .au-card{padding:28px 20px 24px;border-radius:24px}
  .au-two{grid-template-columns:1fr;gap:0}
  .au-phone{grid-template-columns:104px 1fr}
}
@media (prefers-reduced-motion:reduce){.au-photo img,.au-aura,.au-badge,.au-card::before{animation:none}.au-card{animation:none}}
