/* Енотик — вход, регистрация, восстановление. Поверх app.css. */
.auth-shell{min-height:100svh;display:flex;flex-direction:column;padding:24px clamp(16px,4vw,56px) 32px;background:radial-gradient(50% 40% at 20% 0%,rgba(120,55,223,.22),transparent 70%),radial-gradient(40% 40% at 90% 90%,rgba(227,189,103,.12),transparent 70%),var(--bg)}
.auth-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:24px}
.auth-head a:not(.product-brand){color:var(--text-2);font-size:14px;display:inline-flex;align-items:center;gap:8px;min-height:40px}
.auth-head a:not(.product-brand):hover{color:var(--text)}
.auth-card{flex:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.95fr);max-width:1180px;width:100%;margin:0 auto;background:var(--panel);border:1px solid var(--line-2);border-radius:var(--r-xl);overflow:hidden;box-shadow:0 40px 100px -40px #000}
.auth-form{padding:clamp(28px,4vw,56px);display:flex;flex-direction:column;gap:22px;min-width:0}
.auth-form h1{font-size:clamp(28px,3vw,40px)}
.auth-form>p{color:var(--text-2);font-size:15px;margin-top:-10px}
.oauth{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.oauth button{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 8px;border:1px solid var(--line-2);border-radius:16px;background:transparent;color:var(--text-2);font-size:12.5px;transition:background .2s,border-color .2s,transform .25s var(--ease),color .2s}
.oauth button:hover{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.22);color:var(--text);transform:translateY(-2px)}
.oauth .oauth-mark{width:36px;height:36px;border-radius:11px;font-size:14px}
.or{display:flex;align-items:center;gap:14px;color:var(--muted);font:500 11.5px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase}
.or::before,.or::after{content:'';flex:1;height:1px;background:var(--line-2)}
.auth-form form{display:flex;flex-direction:column;gap:14px}
.auth-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:13.5px;color:var(--text-2)}
.auth-row a{color:var(--violet)}
.auth-row a:hover{text-decoration:underline;text-underline-offset:3px}
.check{display:inline-flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:13.5px;color:var(--text-2);line-height:1.4}
.check input{width:18px;height:18px;margin:1px 0 0;accent-color:var(--violet);flex:none}
.check a{color:var(--violet)}
.auth-form .btn--primary{min-height:52px;font-size:15px;margin-top:4px}
.auth-foot{margin-top:auto;padding-top:10px;color:var(--text-2);font-size:14px}
.auth-foot a{color:var(--violet);font-weight:500}
.strength{display:flex;gap:5px;margin-top:-4px}
.strength i{flex:1;height:4px;border-radius:2px;background:var(--panel-3);transition:background .3s}
.strength[data-level="1"] i:nth-child(-n+1){background:var(--rose)}
.strength[data-level="2"] i:nth-child(-n+2){background:var(--amber)}
.strength[data-level="3"] i:nth-child(-n+3){background:var(--violet)}
.strength[data-level="4"] i{background:var(--mint)}
.strength+small{color:var(--muted);font-size:12px}
.auth-art{position:relative;overflow:hidden;background:radial-gradient(circle at 50% 60%,#33264A 0,#221C2E 40%,#19151F 80%);border-left:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between;padding:32px;min-height:560px}
.auth-art__orbit{position:absolute;border:1px solid rgba(167,135,236,.22);border-radius:50%;aspect-ratio:1;pointer-events:none}
.auth-art__orbit--a{width:70%;left:15%;top:22%;animation:orbit 12s ease-in-out infinite}
.auth-art__orbit--b{width:105%;left:-3%;top:6%;animation:orbit 16s ease-in-out infinite reverse}
@keyframes orbit{0%,100%{transform:scale(1) rotate(0)}50%{transform:scale(1.04) rotate(4deg)}}
.auth-art__glow{position:absolute;inset:25% 15% 10%;background:radial-gradient(circle,rgba(135,85,196,.4),transparent 62%);filter:blur(30px);animation:glow 7s ease-in-out infinite}
@keyframes glow{0%,100%{opacity:.6}50%{opacity:1}}
.auth-art__top{position:relative;display:flex;justify-content:space-between;color:#B7B0C3;font:500 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase}
.auth-art__mascot{position:relative;width:min(78%,440px);margin:0 auto;filter:drop-shadow(0 26px 30px rgba(8,5,14,.6))}
.auth-art__mascot svg{width:100%;height:auto}
.auth-art__bubble{position:absolute;z-index:3;top:9%;left:8%;width:min(320px,62%);padding:16px 20px;background:#393240;border:1px solid #6C5F7C;border-radius:18px;color:#fff;line-height:1.35;font-size:16px;box-shadow:0 15px 40px #0004;animation:pop .5s var(--ease) both}
.auth-art__bubble::after{content:'';position:absolute;left:48px;bottom:-10px;width:18px;height:18px;background:#393240;border-right:1px solid #6C5F7C;border-bottom:1px solid #6C5F7C;transform:rotate(45deg)}
.auth-art__list{position:relative;display:flex;flex-direction:column;gap:10px}
.auth-art__list li{display:flex;align-items:center;gap:12px;font-size:14px;color:#DCD6E8;list-style:none}
.auth-art__list ul{margin:0;padding:0;display:contents}
.auth-art__list .icon{width:34px;height:34px;padding:7px;border-radius:10px;background:rgba(167,135,236,.14)}
.sent{display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:22px;border-radius:18px;background:rgba(111,211,164,.08);border:1px solid rgba(111,211,164,.3)}
.sent strong{font-size:17px}
.sent p{color:var(--text-2);font-size:14px;line-height:1.5}
.sent[hidden]{display:none}
body.is-leaving{opacity:0;transition:opacity .35s}
@media(max-width:900px){.auth-card{grid-template-columns:1fr}.auth-art{order:-1;min-height:300px;padding:22px;border-left:0;border-bottom:1px solid var(--line)}.auth-art__mascot{width:210px;margin:10px auto 0}.auth-art__bubble{font-size:13.5px;padding:12px 14px;width:min(250px,64%);top:44px;left:6%}.auth-art__list{display:none}.auth-art__top span:last-child{display:none}}
@media(max-width:560px){.auth-shell{padding:14px 12px 24px}.auth-card{border-radius:22px}.oauth{grid-template-columns:repeat(2,minmax(0,1fr))}.oauth button{flex-direction:row;justify-content:flex-start;padding:10px 12px}}
@media(prefers-reduced-motion:reduce){.auth-art__orbit,.auth-art__glow,.auth-art__bubble{animation:none}}

/* Ребрендинг 2026-09-17: ошибка от сервера (неверный пароль, занятая
   почта). В макете форма была демонстрационной и таких ответов не знала. */
.auth-error{margin:0 0 4px;padding:12px 14px;border-radius:14px;background:rgba(240,138,166,.12);border:1px solid rgba(240,138,166,.35);color:#F08AA6;font:500 13px/1.45 var(--mono,ui-monospace)}
