.auth-body{overflow-x:hidden;}

.auth-main{position:relative;min-height:100vh;display:flex;align-items:center;padding:120px 20px 80px;overflow:hidden;}

.auth-bg{position:absolute;inset:0;z-index:0;pointer-events:none;}
.auth-bg .orb-a{top:-220px;right:-160px;}
.auth-bg .orb-b{bottom:-200px;left:-140px;}
.auth-grid{
  position:absolute;inset:0;
  background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);
  background-size:58px 58px;opacity:.45;
  mask-image:radial-gradient(circle at 50% 35%, black 0%, transparent 68%);
}

.auth-shell{
  position:relative;z-index:1;max-width:460px;width:100%;margin:0 auto;
}

.auth-card-wrap{
  display:flex;align-items:center;justify-content:center;
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);
  box-shadow:var(--shadow-lg);padding:48px 42px;
}
.auth-card{width:100%;max-width:420px;}

.auth-brand-mark{display:flex;justify-content:center;margin-bottom:26px;}
.auth-brand-icon{
  width:60px;height:60px;border-radius:var(--radius-md);
  background:linear-gradient(135deg,var(--accent) 0%,var(--accent-dark) 100%);
  color:#fff;display:grid;place-items:center;font-size:1.5rem;box-shadow:var(--shadow-accent);
}

.auth-form{display:none;flex-direction:column;gap:19px;animation:authFadeIn .5s var(--ease);}
.auth-form.active{display:flex;}
@keyframes authFadeIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}

.auth-form-head{margin-bottom:4px;text-align:center;}
.auth-form-head h2{font-size:1.5rem;margin-bottom:6px;}
.auth-form-head p{font-size:.88rem;color:var(--text-secondary);}

.auth-field{display:flex;flex-direction:column;gap:8px;}
.auth-field label{font-size:.83rem;font-weight:700;color:var(--text);}
.auth-input-wrap{
  position:relative;display:flex;align-items:center;background:var(--bg-input);
  border:1.5px solid var(--border);border-radius:var(--radius-md);transition:var(--t);
}
.auth-input-wrap:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-ring);background:var(--bg-card);}
.auth-input-wrap i:first-child{padding:0 14px;color:var(--text-muted);font-size:.92rem;flex-shrink:0;}
.auth-input-wrap:focus-within i:first-child{color:var(--accent);}
.auth-input-wrap input{
  flex:1;min-width:0;background:transparent;border:0;padding:13px 6px;font-size:.92rem;color:var(--text);
  font-family:var(--font-body);
}
.auth-input-wrap input::placeholder{color:var(--text-muted);}
.auth-input-wrap input:focus{outline:none;}
.auth-eye-toggle{padding:0 14px;color:var(--text-muted);font-size:.9rem;flex-shrink:0;transition:var(--t);}
.auth-eye-toggle:hover{color:var(--accent-dark);}
[data-theme="dark"] .auth-eye-toggle:hover{color:var(--accent);}

.auth-field-error{font-size:.76rem;color:#E0554B;min-height:1px;display:none;font-weight:600;}
.auth-field.has-error .auth-input-wrap{border-color:#E0554B;box-shadow:0 0 0 4px rgba(224,85,75,.14);}
.auth-field.has-error .auth-field-error{display:block;}

.auth-row-between{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;}

.auth-checkbox{display:flex;align-items:center;gap:9px;font-size:.85rem;color:var(--text-secondary);cursor:pointer;user-select:none;font-weight:600;}
.auth-checkbox input{position:absolute;opacity:0;width:0;height:0;}
.auth-checkbox-box{
  width:19px;height:19px;flex-shrink:0;border-radius:6px;border:1.5px solid var(--border-strong);
  background:var(--bg-input);display:grid;place-items:center;color:#fff;font-size:.6rem;transition:var(--t);
}
.auth-checkbox input:checked + .auth-checkbox-box{background:var(--accent);border-color:var(--accent);}
.auth-checkbox input:focus-visible + .auth-checkbox-box{box-shadow:0 0 0 4px var(--accent-ring);}

.auth-link-muted{font-size:.83rem;color:var(--accent-dark);font-weight:700;transition:var(--t);}
[data-theme="dark"] .auth-link-muted{color:var(--accent);}
.auth-link-muted:hover{text-decoration:underline;text-underline-offset:2px;}

.auth-submit{width:100%;justify-content:center;margin-top:4px;}
.auth-submit.is-loading{pointer-events:none;opacity:.85;}
.auth-submit.is-loading span,.auth-submit.is-loading i{visibility:hidden;}
.auth-submit.is-loading::after{
  content:'';position:absolute;width:19px;height:19px;border-radius:50%;
  border:2.5px solid rgba(255,255,255,.4);border-top-color:#fff;
  animation:authSpin .7s linear infinite;
}
@keyframes authSpin{to{transform:rotate(360deg);}}

.auth-divider{display:flex;align-items:center;gap:14px;font-size:.78rem;color:var(--text-muted);font-weight:600;}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:var(--border);}

.auth-social{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.auth-social-btn{
  display:flex;align-items:center;justify-content:center;gap:9px;padding:12px 14px;
  border:1.5px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);
  font-size:.85rem;font-weight:700;color:var(--text);transition:var(--t);
}
.auth-social-btn:hover{border-color:var(--accent);color:var(--accent-dark);transform:translateY(-2px);box-shadow:var(--shadow-sm);}
[data-theme="dark"] .auth-social-btn:hover{color:var(--accent);}
.auth-social-btn i.fa-google{color:#EA4335;}
.auth-social-btn i.fa-linkedin{color:#0A66C2;}

.auth-switch-text{text-align:center;font-size:.87rem;color:var(--text-secondary);font-weight:600;margin-top:2px;}
.auth-switch-btn{color:var(--accent-dark);font-weight:800;margin-inline-start:5px;transition:var(--t);}
[data-theme="dark"] .auth-switch-btn{color:var(--accent);}
.auth-switch-btn:hover{text-decoration:underline;text-underline-offset:2px;}

.auth-toast{
  position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(20px);
  display:flex;align-items:center;gap:11px;background:var(--bg-card);border:1px solid var(--border);
  padding:14px 22px;border-radius:var(--radius-full);box-shadow:var(--shadow-lg);
  font-size:.87rem;font-weight:700;color:var(--text);z-index:3000;
  opacity:0;pointer-events:none;transition:opacity .4s var(--ease),transform .4s var(--ease-spring);
}
.auth-toast.show{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto;}
.auth-toast i{color:#3BAE6B;font-size:1.05rem;}
.auth-toast.error i{color:#E0554B;}

.auth-modal-overlay{
  position:fixed;inset:0;z-index:4000;display:flex;align-items:center;justify-content:center;
  background:rgba(10,14,20,.55);backdrop-filter:blur(3px);
  opacity:0;pointer-events:none;transition:opacity .35s var(--ease);
  padding:20px;
}
.auth-modal-overlay.show{opacity:1;pointer-events:auto;}
.auth-modal{
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);
  box-shadow:var(--shadow-lg);padding:42px 34px;max-width:360px;width:100%;text-align:center;
  transform:scale(.88) translateY(12px);transition:transform .4s var(--ease-spring);
}
.auth-modal-overlay.show .auth-modal{transform:scale(1) translateY(0);}
.auth-modal-icon{
  width:66px;height:66px;border-radius:50%;margin:0 auto 20px;display:grid;place-items:center;
  background:rgba(59,174,107,.14);color:#3BAE6B;font-size:2rem;
}
.auth-modal h3{font-size:1.2rem;margin-bottom:8px;color:var(--text);}
.auth-modal p{font-size:.88rem;color:var(--text-secondary);margin-bottom:18px;}
.auth-modal-spinner{
  width:26px;height:26px;border-radius:50%;margin:0 auto;
  border:3px solid var(--border);border-top-color:var(--accent);
  animation:authSpin .8s linear infinite;
}

@media(max-width:560px){
  .auth-card-wrap{padding:38px 26px;}
}
@media(max-width:480px){
  .auth-main{padding:104px 14px 60px;}
  .auth-card-wrap{padding:32px 20px;}
  .auth-social{grid-template-columns:1fr 1fr;}
}