/* 로그인/인증 오버레이 */
#authOverlay { font-family:'Noto Sans KR',sans-serif; }

.auth-card {
  display:flex; width:100%; max-width:900px; min-height:520px;
  border-radius:20px; overflow:hidden; border:0.5px solid #1a1f35;
}

/* 좌측 브랜딩 */
.auth-left {
  flex:1.1; background:#0f1320;
  display:flex; flex-direction:column; justify-content:space-between;
  padding:4rem 3rem 2.5rem; position:relative; overflow:hidden;
}
.auth-left::before {
  content:''; position:absolute; top:-80px; left:-80px;
  width:320px; height:320px;
  background:radial-gradient(circle, rgba(236,72,153,0.12) 0%, transparent 70%);
  pointer-events:none;
}
.auth-left::after {
  content:''; position:absolute; bottom:-60px; right:-40px;
  width:240px; height:240px;
  background:radial-gradient(circle, rgba(139,92,246,0.08) 0%, transparent 70%);
  pointer-events:none;
}
.auth-brand { display:flex; align-items:center; gap:10px; position:relative; margin-top:1rem; }
.auth-brand-icon {
  width:34px; height:34px;
  background:linear-gradient(135deg,#ec4899,#8b5cf6);
  border-radius:9px; display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.auth-brand-name { font-size:13px; font-weight:700; color:#f1f5f9; }
.auth-brand-sub { font-size:11px; color:#475569; margin-top:1px; }
.auth-center { position:relative; }
.auth-headline {
  font-size:30px; font-weight:800; color:#f1f5f9;
  line-height:1.3; margin-bottom:1.2rem; letter-spacing:-0.8px;
}
.auth-headline em {
  font-style:normal;
  background:linear-gradient(90deg,#ec4899,#a855f7);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}
.auth-desc { font-size:13px; color:#475569; line-height:1.85; position:relative; }

/* 우측 폼 */
.auth-right {
  width:360px; flex-shrink:0; background:#080b14;
  display:flex; flex-direction:column; justify-content:space-between;
  padding:4rem 2.25rem 2.5rem; border-left:0.5px solid #1a1f35; overflow-y:auto;
}
.auth-form-title { font-size:20px; font-weight:800; color:#f8fafc; margin-bottom:0.3rem; letter-spacing:-0.4px; }
.auth-form-sub { font-size:12px; color:#64748b; margin-bottom:2rem; }

.auth-field { margin-bottom:0.9rem; }
.auth-field label {
  display:block; font-size:10px; font-weight:600; color:#94a3b8;
  text-transform:uppercase; letter-spacing:0.8px; margin-bottom:7px;
}
.auth-field input {
  width:100%; height:42px; background:#0f1320;
  border:1px solid #2d3748; border-radius:10px;
  padding:0 14px; font-size:13px; color:#e2e8f0; outline:none;
  font-family:'Noto Sans KR',sans-serif;
  transition:border-color 0.15s, box-shadow 0.15s;
}
.auth-field input:focus { border-color:#ec4899; box-shadow:0 0 0 3px rgba(236,72,153,0.1); }
.auth-field input::placeholder { color:#4a5568; }

.auth-forgot { text-align:right; margin-top:-0.4rem; margin-bottom:1.3rem; }
.auth-forgot a { font-size:11px; color:#64748b; text-decoration:none; transition:color 0.15s; }
.auth-forgot a:hover { color:#ec4899; }

.auth-btn {
  width:100%; height:44px;
  background:linear-gradient(135deg,#ec4899 0%,#a855f7 100%);
  border:none; border-radius:10px; color:#fff;
  font-size:14px; font-weight:700; cursor:pointer;
  font-family:'Noto Sans KR',sans-serif;
  transition:opacity 0.15s, transform 0.1s;
}
.auth-btn:hover { opacity:0.9; transform:translateY(-1px); }
.auth-btn:active { transform:translateY(0); }

.auth-divider { display:flex; align-items:center; gap:10px; margin:1.25rem 0; }
.auth-divider-line { flex:1; height:0.5px; background:#2d3748; }
.auth-divider-text { font-size:11px; color:#4a5568; }

.auth-switch { text-align:center; font-size:12px; color:#64748b; }
.auth-switch a { color:#a855f7; text-decoration:none; font-weight:600; cursor:pointer; }
.auth-switch a:hover { color:#ec4899; }

.auth-error { font-size:11px; color:#ef4444; margin-bottom:10px; display:none; }
.auth-success { font-size:11px; color:#10b981; margin-bottom:10px; display:none; }
