:root{--login-bg:#f4f7fb;--login-card-bg:rgba(255,255,255,.92);--login-card-border:rgba(202,214,230,.72);--login-text:#0d2f6b;--login-text-soft:#62708d;--login-line:rgba(175,191,213,.52);--login-input-bg:rgba(255,255,255,.98);--login-secondary-bg:rgba(255,255,255,.76);--login-secondary-border:rgba(11,63,151,.25);--login-secondary-text:#0b3f97;--login-placeholder:#7b8cab;--login-icon:#7180a0;--login-backdrop:rgba(11,31,61,.10);--login-backdrop-strong:rgba(11,31,61,.12);--login-glow:radial-gradient(circle at 50% 16%,rgba(255,255,255,.22),transparent 34%),rgba(255,255,255,.06);--login-alert-text:#9b1c1c;--login-alert-bg:rgba(254,226,226,.94);--login-alert-border:rgba(248,113,113,.35);--login-primary:#0b3f97;--login-primary-2:#1776ee;--login-cyan:#29d1ee;--login-shadow:0 24px 60px rgba(13,47,107,.18);--login-radius:28px;--login-font:"IRANSans","Vazirmatn","Tahoma",sans-serif;color-scheme:light}
:root[data-theme="dark"]{--login-bg:#071522;--login-card-bg:rgba(10,30,46,.94);--login-card-border:rgba(55,91,117,.78);--login-text:#edf6ff;--login-text-soft:#a7bbce;--login-line:#2b4a61;--login-input-bg:#10293c;--login-secondary-bg:#0d2538;--login-secondary-border:#2b4a61;--login-secondary-text:#52b2ff;--login-placeholder:#8fa7bc;--login-icon:#8fabc2;--login-backdrop:rgba(2,13,24,.58);--login-backdrop-strong:rgba(2,13,24,.68);--login-glow:radial-gradient(circle at 50% 16%,rgba(39,144,231,.12),transparent 34%),rgba(2,13,24,.12);--login-alert-text:#ffb4b8;--login-alert-bg:rgba(72,31,40,.92);--login-alert-border:rgba(255,133,139,.34);--login-primary:#1687ec;--login-primary-2:#52b2ff;--login-cyan:#2ad1d0;--login-shadow:0 24px 64px rgba(0,0,0,.46);color-scheme:dark}
html,body.auth-page-login{min-height:100%}
body.auth-page.auth-page-login{margin:0;min-height:100dvh;display:flex;align-items:flex-start;justify-content:center;overflow-x:hidden;overflow-y:auto;color:var(--login-text);background:var(--login-bg);font-family:var(--login-font);position:relative;padding:clamp(20px,4vh,42px) 0;box-sizing:border-box}
body.auth-page.auth-page-login::before{content:"";position:fixed;inset:0;background:linear-gradient(var(--login-backdrop),var(--login-backdrop-strong)),url("images/amirkabir-innovation-tower.jpg") center center/cover no-repeat;filter:blur(5px);transform:scale(1.02)}
body.auth-page.auth-page-login::after{content:"";position:fixed;inset:0;background:var(--login-glow)}
.login-shell{position:relative;z-index:1;width:min(100%,29rem);padding:0 .9rem;box-sizing:border-box}
.login-card{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:var(--login-card-bg);border:1px solid var(--login-card-border);border-radius:25px;box-shadow:var(--login-shadow);padding:1.8rem 1.8rem 1.45rem}
.login-brand{margin-bottom:1.2rem}.login-brand-row{display:flex;align-items:center;justify-content:center;gap:.75rem;direction:ltr}.login-brand-mark{width:3.35rem;height:3.35rem;display:block;flex:0 0 auto;object-fit:contain}.login-brand-copy{display:grid;gap:.15rem;text-align:right;direction:rtl}.login-brand-copy strong{font-size:clamp(1.8rem,3.6vw,2.2rem);font-weight:800;line-height:1;letter-spacing:-.035em;color:var(--login-text);direction:ltr;text-align:left}.login-brand-copy span{font-size:.86rem;color:var(--login-text-soft);line-height:1.6}
.login-divider{display:flex;align-items:center;gap:.75rem;margin:1rem 0 1.3rem;color:var(--login-primary-2)}.login-divider span{flex:1 1 auto;height:1px;background:linear-gradient(to left,rgba(34,211,238,0),rgba(34,211,238,.75),rgba(34,211,238,0))}.login-divider b{font-size:1rem;font-weight:700}
.login-copy{text-align:center;margin-bottom:1.3rem}.login-copy h1{margin:0;font-size:clamp(1.9rem,3.7vw,2.4rem);line-height:1.15;color:var(--login-text);letter-spacing:-.04em}.login-copy p{margin:.55rem 0 0;font-size:.92rem;line-height:1.75;color:var(--login-text-soft)}
.login-form{display:grid;gap:.9rem}.login-alert{margin:0;padding:.9rem 1rem;border-radius:16px;color:var(--login-alert-text);background:var(--login-alert-bg);border:1px solid var(--login-alert-border);font-size:.95rem;text-align:center}.login-field{display:grid;gap:.55rem}.login-field label{padding-inline:.2rem;font-size:.94rem;font-weight:700;color:var(--login-text)}.login-input-wrap{position:relative}
.login-input-wrap input{width:100%;min-height:3.3rem;border-radius:15px;border:1px solid var(--login-line);background:var(--login-input-bg);color:var(--login-text);padding:.85rem 1rem;font:inherit;text-align:right;outline:none;box-sizing:border-box;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.login-input-wrap:not(.password-input-wrap) input{padding-inline-start:3.2rem}.password-input-wrap input{padding-inline-end:3.25rem}.login-input-wrap input::placeholder{color:var(--login-placeholder)}.login-input-wrap input:focus{border-color:rgba(23,118,238,.6);box-shadow:0 0 0 4px rgba(23,118,238,.12)}
.login-input-icon,.login-visibility-toggle{position:absolute;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;color:var(--login-icon)}.login-input-icon{inset-inline-start:.95rem;width:1.3rem;height:1.3rem;pointer-events:none}.login-input-icon svg,.login-visibility-toggle svg,.login-submit svg,.login-guest-link svg,.login-footer svg{width:100%;height:100%}.login-visibility-toggle{inset-inline-end:.95rem;width:1.45rem;height:1.45rem;border:0;background:transparent;padding:0;cursor:pointer}.login-visibility-toggle .eye-slash{opacity:1;transition:opacity .16s ease}.login-visibility-toggle.is-revealed .eye-slash{opacity:0}
.login-submit,.login-guest-link{min-height:3.35rem;border-radius:16px;display:inline-flex;align-items:center;justify-content:center;gap:.65rem;text-decoration:none;font-size:1.12rem;font-weight:800;transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease}.login-submit{border:0;cursor:pointer;color:#fff;background:linear-gradient(135deg,var(--login-primary),#082f76);box-shadow:0 14px 28px rgba(11,63,151,.22)}.login-submit svg,.login-guest-link svg{width:1.25rem;height:1.25rem}.login-submit:hover,.login-submit:focus-visible,.login-guest-link:hover,.login-guest-link:focus-visible{transform:translateY(-1px)}
.login-secondary-divider{display:flex;align-items:center;gap:.8rem;margin:-.15rem 0}.login-secondary-divider span{flex:1 1 auto;height:1px;background:var(--login-line)}.login-guest-link{border:1px solid var(--login-secondary-border);color:var(--login-secondary-text);background:var(--login-secondary-bg)}
.login-footer{margin-top:1.2rem;padding-top:.2rem;display:flex;align-items:center;justify-content:center;gap:.55rem;color:var(--login-text-soft);text-align:center}.login-footer svg{width:1.25rem;height:1.25rem;flex:0 0 auto;color:var(--login-primary-2)}.login-footer p{margin:0;font-size:.92rem;line-height:1.8}
@media(max-width:640px){.login-shell{width:min(100%,27rem);padding:0 .7rem 1rem}.login-card{padding:1.4rem 1.1rem 1.15rem;border-radius:22px}.login-brand-row{gap:.65rem}.login-brand-mark{width:3rem;height:3rem}.login-brand-copy strong{font-size:1.75rem}.login-brand-copy span{font-size:.78rem}.login-copy h1{font-size:1.75rem}.login-copy p,.login-field label,.login-footer p{font-size:.88rem}.login-submit,.login-guest-link{font-size:1rem;min-height:3.2rem}}
@media(prefers-reduced-motion:reduce){.login-input-wrap input,.login-submit,.login-guest-link{transition:none}}
