/* Admin sign-in — same tokens as the v4 workspace (violet, Vazirmatn, light/dark). */
@font-face{font-family:Vazirmatn;src:url('/static/vendor-local/Vazirmatn-Variable.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{--bg:#f4f5fb;--sf:#ffffff;--sf2:#eef0f8;--tx:#12152a;--mu:#62698c;--bd:#e2e5f1;--pr:#5b4bff;--pr2:#8b5cf6;--prs:#ecebff;--rd:#e5304f;--rds:#ffe6eb;--am:#c57800;--ams:#fff2d3;--gn:#0b9a70;--gns:#d8f7ea;--glass:rgba(255,255,255,.72);--sh:0 30px 80px rgba(40,40,110,.16);--focus:0 0 0 4px rgba(91,75,255,.22);color-scheme:light}
:root[data-theme=dark]{--bg:#0b0d1d;--sf:#151933;--sf2:#1e2342;--tx:#eef0ff;--mu:#a3abd0;--bd:#2b3159;--pr:#8f84ff;--pr2:#b394ff;--prs:#2a2760;--rd:#ff6b87;--rds:#47182b;--am:#ffbf3c;--ams:#40300d;--gn:#3fdcaa;--gns:#0e3b2e;--glass:rgba(21,25,51,.72);--sh:0 30px 80px rgba(0,0,0,.45);--focus:0 0 0 4px rgba(143,132,255,.28);color-scheme:dark}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body.al{min-height:100vh;min-height:100dvh;background:var(--bg);color:var(--tx);font-family:Vazirmatn,Tahoma,system-ui,sans-serif!important;font-size:15px;line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased}
.al-switching body,.al-switching body *{transition:background-color .4s,color .4s,border-color .4s!important}
.al a{color:var(--pr);text-decoration:none}.al a:hover{text-decoration:underline}
/* moving background */
.al-sky{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.al-sky i{position:absolute;border-radius:50%;filter:blur(70px);opacity:.55;will-change:transform}
.al-sky .b1{width:46vmax;height:46vmax;background:radial-gradient(circle,var(--pr),transparent 65%);top:-18vmax;left:-12vmax;animation:drift1 22s ease-in-out infinite alternate}
.al-sky .b2{width:40vmax;height:40vmax;background:radial-gradient(circle,var(--pr2),transparent 65%);bottom:-20vmax;right:-10vmax;animation:drift2 26s ease-in-out infinite alternate}
.al-sky .b3{width:28vmax;height:28vmax;background:radial-gradient(circle,#2ec5a0,transparent 65%);top:40%;left:38%;opacity:.25;animation:drift3 30s ease-in-out infinite alternate}
:root[data-theme=dark] .al-sky i{opacity:.38}:root[data-theme=dark] .al-sky .b3{opacity:.16}
.al-grid{position:absolute;inset:0;background-image:linear-gradient(var(--bd) 1px,transparent 1px),linear-gradient(90deg,var(--bd) 1px,transparent 1px);background-size:44px 44px;opacity:.35;-webkit-mask-image:radial-gradient(ellipse at 50% 40%,#000 10%,transparent 70%);mask-image:radial-gradient(ellipse at 50% 40%,#000 10%,transparent 70%)}
@keyframes drift1{to{transform:translate(12vmax,9vmax) scale(1.12)}}@keyframes drift2{to{transform:translate(-10vmax,-8vmax) scale(1.08)}}@keyframes drift3{to{transform:translate(-14vmax,6vmax) scale(1.2)}}
/* theme switch */
.al-theme{position:fixed;top:max(16px,env(safe-area-inset-top));left:16px;z-index:5;width:44px;height:44px;border-radius:15px;border:1px solid var(--bd);background:var(--glass);backdrop-filter:blur(12px);color:var(--tx);display:grid;place-items:center;cursor:pointer;transition:transform .2s,box-shadow .2s}
.al-theme:hover{transform:rotate(-12deg) scale(1.05)}.al-theme:focus-visible{outline:0;box-shadow:var(--focus)}
.al-theme svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;grid-area:1/1;transition:transform .45s cubic-bezier(.3,1.4,.4,1),opacity .3s}
:root[data-theme=dark] .al-theme .sun{transform:rotate(90deg) scale(.4);opacity:0}:root:not([data-theme=dark]) .al-theme .moon{transform:rotate(-90deg) scale(.4);opacity:0}
/* layout */
.al-wrap{position:relative;z-index:1;min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:1fr;place-items:center;padding:72px 16px 64px;gap:40px}
.al-show{display:none}
.al-card{position:relative;width:100%;max-width:440px;padding:30px 28px 24px;border-radius:30px;background:var(--glass);backdrop-filter:blur(22px) saturate(1.4);-webkit-backdrop-filter:blur(22px) saturate(1.4);border:1px solid color-mix(in srgb,var(--bd) 80%,transparent);box-shadow:var(--sh);animation:rise .7s cubic-bezier(.2,.9,.25,1) both;overflow:hidden}
.al-card:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),color-mix(in srgb,var(--pr) 14%,transparent),transparent 60%);transition:opacity .3s}
.al-card>*{position:relative}
@keyframes rise{from{opacity:0;transform:translateY(26px) scale(.98)}}
.al-brand{display:flex;align-items:center;gap:12px;color:var(--tx)!important;text-decoration:none!important}
.al-brand b{font-size:19px;font-weight:900}.al-brand small{display:block;color:var(--mu);font-size:12.5px}
.al-mark{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(135deg,var(--pr),var(--pr2));color:#fff;font-weight:900;font-size:22px;box-shadow:0 10px 26px rgba(91,75,255,.38);flex:none}
.al-brand-sm{justify-content:center;margin-bottom:18px;animation:rise .6s .05s both}.al-brand-sm .al-mark{width:52px;height:52px;font-size:24px;animation:mark 3.6s ease-in-out infinite}
@keyframes mark{50%{transform:translateY(-3px) rotate(-4deg)}}
.al-head{text-align:center;margin-bottom:20px;animation:rise .6s .1s both}
.al-head h1{margin:0;font-size:22px;font-weight:900;letter-spacing:-.2px}.al-head p{margin:6px 0 0;color:var(--mu);font-size:13.5px}
.al-body{animation:rise .6s .16s both}
.al-foot{margin-top:18px;padding-top:16px;border-top:1px solid var(--bd);text-align:center;font-size:13px;animation:rise .6s .22s both}
.al-caption{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:6px;color:var(--mu);font-size:12px;padding:0 16px calc(18px + env(safe-area-inset-bottom));margin-top:-46px}
.al-caption svg,.al-i{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none}
.al-caption svg{width:14px;height:14px}
/* form parts (shared partials keep their markup; these rules restyle them) */
.al-body form{display:flex;flex-direction:column;gap:14px;margin:0}
.al-body .space-y-2>*+*{margin-top:0!important}
.al-body label{display:block;font-size:13px!important;font-weight:700!important;color:var(--tx)!important;margin:0 0 7px!important}
.al-body .relative.flex{position:relative;display:flex;align-items:center;gap:0!important;border:1.5px solid var(--bd);border-radius:16px;background:var(--sf);transition:border-color .2s,box-shadow .2s,transform .2s}
.al-body .relative.flex:focus-within{border-color:var(--pr);box-shadow:var(--focus)}
.al-body .relative.flex>.al-i{margin:0 14px 0 2px;color:var(--mu);transition:color .2s,transform .3s}
.al-body .relative.flex:focus-within>.al-i{color:var(--pr);transform:scale(1.12)}
.al-body input[type=text],.al-body input[type=password],.al-body input[type=tel],.al-body input[type=email],.al-body input[type=number],.al-body input:not([type]),.al-body input[id]{width:100%;min-width:0;height:52px;padding:0 14px!important;border:1.5px solid var(--bd)!important;border-radius:16px!important;background:var(--sf)!important;transition:border-color .2s,box-shadow .2s;color:var(--tx)!important;font:inherit!important;font-size:16px!important;outline:0;box-shadow:none!important}
.al-body input[type=hidden]{display:none}
.al-body input::placeholder{color:var(--mu);opacity:.7}
.al-body input:-webkit-autofill{-webkit-box-shadow:0 0 0 40px var(--sf) inset!important;-webkit-text-fill-color:var(--tx)!important}
.al-body .auth-eye{flex:none;width:40px;height:40px;margin-left:6px;display:grid;place-items:center;border:0!important;border-radius:12px!important;background:transparent!important;color:var(--mu);cursor:pointer;padding:0!important}
.al-body .auth-eye:hover{background:var(--sf2)!important;color:var(--tx)}
.al-body .text-amber-500{color:var(--am)!important;font-size:12px}
/* primary button */
.al-body .auth-primary,.al .auth-primary{position:relative;display:flex;align-items:center;justify-content:center;gap:9px;width:100%;min-height:54px;margin-top:4px;padding:0 18px;border:0!important;border-radius:17px!important;background:linear-gradient(135deg,var(--pr),var(--pr2))!important;background-size:160% 160%!important;color:#fff!important;font:inherit;font-size:16px!important;font-weight:800!important;cursor:pointer;overflow:hidden;box-shadow:0 14px 30px rgba(91,75,255,.36);transition:transform .15s,box-shadow .25s,background-position .5s;text-decoration:none!important}
.al .auth-primary:hover{background-position:100% 0!important;box-shadow:0 18px 38px rgba(91,75,255,.46);transform:translateY(-1px)}
.al .auth-primary:active{transform:scale(.98)}
.al .auth-primary:focus-visible{outline:0;box-shadow:var(--focus),0 14px 30px rgba(91,75,255,.36)}
.al .auth-primary:before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translateX(120%);transition:transform .8s}
.al .auth-primary:hover:before{transform:translateX(-120%)}
.al .auth-primary:after{display:none}
.al .auth-primary.busy{pointer-events:none}.al .auth-primary.busy span{opacity:.75}
.al .auth-primary.busy:after{display:block;content:"";width:18px;height:18px;border:2.5px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;animation-play-state:running}
.al .auth-primary .al-i{width:20px;height:20px;transform:scaleX(-1)}
@keyframes spin{to{transform:rotate(360deg)}}
.al .auth-secondary,.al .auth-danger{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;border-radius:15px;border:1.5px solid var(--bd);background:var(--sf);color:var(--tx)!important;font-weight:700;width:100%}
.al .auth-danger{color:var(--rd)!important;border-color:color-mix(in srgb,var(--rd) 40%,var(--bd))}
/* method switch (password / SMS) */
.al-body nav[aria-label="روش ورود"]{display:grid!important;grid-template-columns:1fr 1fr;gap:4px!important;padding:5px!important;margin:0 0 18px!important;border-radius:16px!important;background:var(--sf2)!important;position:relative}
.al-body nav[aria-label="روش ورود"] a{display:flex;align-items:center;justify-content:center;gap:7px;min-height:42px;border-radius:12px;color:var(--mu);font-weight:700;font-size:14px;text-decoration:none!important;transition:background .25s,color .25s,box-shadow .25s}
.al-body nav[aria-label="روش ورود"] a[aria-current=page]{background:var(--sf);color:var(--pr);box-shadow:0 4px 14px rgba(40,40,100,.1)}
.al-body nav[aria-label="روش ورود"] .al-i{width:17px;height:17px}
/* captcha */
.al-body [data-auth-captcha]{padding:12px!important;border-radius:16px!important;background:var(--sf2)!important;border:1px dashed var(--bd)!important}
.al-body [data-auth-captcha] label{margin-bottom:8px!important}
.al-body .auth-captcha-row{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.al-body .auth-captcha-row img{flex:1;min-width:0;max-width:calc(100% - 54px);height:60px;object-fit:contain;border-radius:12px;background:#fff}
.al-body .auth-captcha-row button{width:44px;height:44px;display:grid;place-items:center;border-radius:12px!important;border:1px solid var(--bd)!important;background:var(--sf)!important;color:var(--tx);cursor:pointer;padding:0!important;transition:transform .5s}
.al-body .auth-captcha-row button:hover{transform:rotate(180deg)}
.al-body [data-auth-captcha] input{height:48px;border:1.5px solid var(--bd)!important;background:var(--sf)!important;text-align:center!important;letter-spacing:6px}
.al-body [data-auth-captcha] input:focus{border-color:var(--pr)!important;box-shadow:var(--focus)!important}
.al-body [data-auth-captcha-status]{margin:6px 0 0;color:var(--mu);font-size:12px}
/* messages */
.al-body [role=alert],.al-body [role=status].p-4{display:flex;gap:10px;align-items:flex-start;padding:12px 14px!important;margin:0 0 14px!important;border-radius:15px!important;font-size:13px!important;line-height:1.8;animation:shake .45s ease both}
.al-body [role=alert]{background:var(--rds)!important;color:var(--rd)!important;border:1px solid color-mix(in srgb,var(--rd) 30%,transparent)!important}
.al-body .auth-alert-success,.al-body .auth-alert-info{background:var(--gns)!important;color:var(--gn)!important;border-color:transparent!important;animation:rise .4s both}
@keyframes shake{20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}
.al-body .auth-steps{display:flex;gap:6px;list-style:none;padding:0;margin:0 0 16px}.al-body .auth-steps li{flex:1;text-align:center;padding:7px 4px;border-radius:12px;background:var(--sf2);color:var(--mu);font-size:12px;font-weight:700}
.al-body .auth-steps li[aria-current=step]{background:var(--prs);color:var(--pr)}.al-body .auth-steps li.is-done{background:var(--gns);color:var(--gn)}
.al-body h2{color:var(--tx)!important}.al-body .text-slate-500,.al-body .text-slate-400{color:var(--mu)!important}
.al-body .auth-security-nav{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.al-body .auth-security-nav a{padding:7px 12px;border-radius:12px;background:var(--sf2);font-size:13px}
.al-body .mt-7{margin-top:20px!important}.al-body .border-t{border-color:var(--bd)!important}
.al-body .mt-7 a{font-weight:700}
/* desktop: showcase beside the card */
@media(min-width:1024px){
 .al-wrap{grid-template-columns:minmax(0,1.05fr) minmax(400px,460px);max-width:1180px;margin:0 auto;padding:40px 40px 60px;gap:64px;place-items:center stretch}
 .al-card{order:2;max-width:460px;padding:36px 34px 28px;justify-self:center}
 .al-brand-sm{display:none}.al-head{text-align:right}.al-head h1{font-size:25px}
 .al-show{display:flex;flex-direction:column;gap:22px;order:1;animation:rise .8s .1s both}
 .al-pitch{margin:4px 0 0;font-size:clamp(28px,3vw,40px);line-height:1.45;font-weight:900;letter-spacing:-.5px}
 .al-pitch em{font-style:normal;background:linear-gradient(135deg,var(--pr),var(--pr2) 60%,#2ec5a0);-webkit-background-clip:text;background-clip:text;color:transparent}
 .al-stage{position:relative;height:300px;margin-top:10px}
 .al-float{position:absolute;display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:22px;background:var(--glass);backdrop-filter:blur(16px);border:1px solid var(--bd);box-shadow:var(--sh);min-width:250px}
 .al-float b{display:block;font-size:14.5px}.al-float small{display:block;color:var(--mu);font-size:12px}
 .f1{top:0;right:0;animation:float 6s ease-in-out infinite,rise .7s .25s both}.f2{top:108px;left:4%;animation:float 7s ease-in-out -2s infinite,rise .7s .4s both}.f3{top:206px;right:12%;animation:float 6.5s ease-in-out -4s infinite,rise .7s .55s both}
 @keyframes float{50%{transform:translateY(-10px)}}
 .al-ico{width:44px;height:44px;border-radius:14px;background:var(--prs);display:grid;place-items:center;font-size:21px;flex:none}.al-ico.gold{background:var(--gns);animation:crown 2.6s ease-in-out infinite}
 @keyframes crown{0%,70%,100%{transform:none}80%{transform:rotate(-12deg) scale(1.1)}90%{transform:rotate(10deg) scale(1.1)}}
 .al-chip{margin-inline-start:auto;padding:3px 10px;border-radius:10px;background:var(--ams);color:var(--am);font-size:11.5px;font-weight:800}
 .al-ring{position:relative;width:52px;height:52px;flex:none}.al-ring svg{width:52px;height:52px;transform:rotate(-90deg)}
 .al-ring circle{fill:none;stroke:var(--sf2);stroke-width:5}.al-ring circle.v{stroke:url(#none);stroke:var(--pr);stroke-linecap:round;stroke-dasharray:113;stroke-dashoffset:113;animation:ring 2.2s .6s cubic-bezier(.3,.9,.3,1) forwards}
 .al-ring b{position:absolute;inset:0;display:grid;place-items:center;font-size:12.5px}
 @keyframes ring{to{stroke-dashoffset:32}}
 .al-path{position:absolute;bottom:4px;left:6%;display:flex;gap:10px;align-items:center}
 .al-path i{width:12px;height:12px;border-radius:50%;background:var(--bd);position:relative}.al-path i.d{background:var(--gn)}.al-path i.c{background:var(--pr);box-shadow:0 0 0 6px color-mix(in srgb,var(--pr) 22%,transparent);animation:pulse 2s infinite}
 @keyframes pulse{50%{box-shadow:0 0 0 11px color-mix(in srgb,var(--pr) 6%,transparent)}}
 .al-caption{margin-top:-52px}
}
@media(max-width:420px){.al-card{padding:24px 18px 20px;border-radius:26px}.al-head h1{font-size:20px}.al-wrap{padding-top:66px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
.al-foot:empty{display:none}
:root[data-theme=dark] .al .auth-primary{background:linear-gradient(135deg,#6a5cff,#8b5cf6)!important}

.al-body input:focus{border-color:var(--pr)!important;box-shadow:var(--focus)!important}
.al-body .relative.flex input{border:0!important;background:transparent!important;padding:0 12px!important}
.al-body .relative.flex input:focus{box-shadow:none!important}
/* pages with their own title (recovery, MFA, challenge): one heading only */
.al-card:has(.al-body h2) .al-head{display:none}
.al-body>h2:first-child,.al-body h2#auth-heading{font-size:22px!important;font-weight:900!important;margin:0 0 6px!important;line-height:1.5}
.al-body select,.al-body textarea{width:100%;border:1.5px solid var(--bd);border-radius:16px;background:var(--sf);color:var(--tx);padding:12px 14px;font:inherit;font-size:16px}
