.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;position:relative;overflow:hidden}
.auth-orb{position:absolute;border-radius:50%;filter:blur(80px);pointer-events:none}
.auth-orb--1{width:400px;height:400px;top:-10%;left:-5%;background:radial-gradient(circle,rgba(255,0,80,.2),transparent 70%);animation:orbFloat1 18s ease-in-out infinite}
.auth-orb--2{width:350px;height:350px;bottom:-5%;right:-5%;background:radial-gradient(circle,rgba(168,85,247,.18),transparent 70%);animation:orbFloat2 22s ease-in-out infinite}

.auth-card{position:relative;z-index:2;width:100%;max-width:420px;border-radius:28px;border:1px solid rgba(255,255,255,.08);background:rgba(14,14,18,.92);backdrop-filter:blur(20px);padding:40px 32px;box-shadow:0 24px 64px rgba(0,0,0,.4)}

.auth-logo{display:block;text-align:center;font-size:1.4rem;font-weight:900;margin-bottom:24px;letter-spacing:-.02em}
.auth-title{text-align:center;font-size:1.6rem;font-weight:900;color:#fff;letter-spacing:-.03em}
.auth-subtitle{text-align:center;font-size:.85rem;color:rgba(148,163,184,.6);margin:6px 0 24px}

.auth-error{padding:12px 16px;border-radius:14px;border:1px solid rgba(248,113,113,.2);background:rgba(248,113,113,.08);color:#fca5a5;font-size:.85rem;font-weight:600;margin-bottom:16px;display:flex;align-items:center;gap:8px}
.auth-error::before{content:'\f071';font-family:'Font Awesome 6 Free';font-weight:900;font-size:.75rem;color:#f87171}
.auth-error.hidden{display:none}

.auth-field{margin-bottom:16px}
.auth-field label{display:block;font-size:.82rem;font-weight:600;color:rgba(148,163,184,.7);margin-bottom:6px}
.optional{font-weight:400;color:rgba(148,163,184,.4);font-size:.75rem}

.auth-input-wrap{display:flex;align-items:center;border-radius:14px;border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,rgba(20,20,24,.96),rgba(10,10,13,.98));overflow:hidden;transition:border-color .25s,box-shadow .25s}
.auth-input-wrap:focus-within{border-color:rgba(255,0,80,.32);box-shadow:0 0 0 3px rgba(255,0,80,.1)}
.auth-input-wrap>i{width:44px;text-align:center;color:rgba(255,0,80,.4);font-size:.82rem;flex-shrink:0}
.auth-input-wrap input{flex:1;height:48px;border:none;background:transparent;color:#fff;font-size:.95rem;font-weight:600;outline:none;padding-right:12px}
.auth-input-wrap input::placeholder{color:rgba(148,163,184,.35);font-weight:400}

.toggle-pw{display:flex;align-items:center;justify-content:center;width:44px;height:48px;background:none;border:none;color:rgba(148,163,184,.4);font-size:.85rem;cursor:pointer;transition:color .2s}
.toggle-pw:hover{color:rgba(255,255,255,.7)}

.auth-submit{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:16px;border-radius:16px;border:none;background:linear-gradient(135deg,#ff0050,#a855f7);color:#fff;font-size:1.05rem;font-weight:800;cursor:pointer;transition:all .3s;margin-top:24px;box-shadow:0 12px 32px rgba(255,0,80,.25);position:relative;overflow:hidden}
.auth-submit:hover{transform:translateY(-2px);box-shadow:0 16px 40px rgba(255,0,80,.35)}
.auth-submit:active{transform:translateY(0) scale(.98)}
.auth-submit::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.12),transparent);transition:left .6s}
.auth-submit:hover::before{left:100%}
.auth-submit:disabled{opacity:.5;cursor:not-allowed;transform:none!important}
.auth-submit .spinner{display:none;width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}
.auth-submit.loading span{display:none}
.auth-submit.loading .spinner{display:block}
@keyframes spin{to{transform:rotate(360deg)}}

.auth-switch{text-align:center;margin-top:20px;font-size:.88rem;color:rgba(148,163,184,.5)}
.auth-switch a{color:#ff5f98;font-weight:700;transition:color .2s}
.auth-switch a:hover{color:#fff}

@media(max-width:480px){
.auth-card{padding:28px 20px;border-radius:22px}
.auth-title{font-size:1.3rem}
.auth-subtitle{font-size:.78rem}
.auth-input-wrap input{height:44px;font-size:.88rem}
.auth-submit{padding:14px;font-size:.95rem}
}
