/* StoryMaker Unified Auth Modal v1 */
#storymaker-login-modal {
  position: fixed !important;
  inset: 0 !important;
  z-index: 10050 !important;
  display: none;
  align-items: center !important;
  justify-content: center !important;
  padding: 18px !important;
  background: radial-gradient(circle at 50% 0%, rgba(59,130,246,.18), transparent 34%), rgba(2,6,23,.80) !important;
  backdrop-filter: blur(18px) !important;
  -webkit-backdrop-filter: blur(18px) !important;
}

#storymaker-login-modal.is-open .sm-auth-card {
  animation: smAuthIn .18s cubic-bezier(.22,1,.36,1) both;
}

@keyframes smAuthIn {
  from { opacity: 0; transform: translateY(8px) scale(.965); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.sm-auth-card {
  width: min(420px, 100%) !important;
  max-height: calc(100vh - 36px) !important;
  overflow: auto !important;
  color: #e5e7eb !important;
  background: linear-gradient(180deg, rgba(15,23,42,.96), rgba(2,6,23,.985)) !important;
  border: 1px solid rgba(148,163,184,.22) !important;
  border-radius: 28px !important;
  padding: 24px !important;
  box-shadow: 0 34px 90px rgba(0,0,0,.58), inset 0 1px 0 rgba(255,255,255,.08) !important;
  box-sizing: border-box !important;
  font-family: Pretendard, 'Noto Sans KR', 'Apple SD Gothic Neo', 'Malgun Gothic', sans-serif !important;
}

.sm-auth-head {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 12px !important;
  margin-bottom: 18px !important;
}

.sm-auth-brand { display: flex !important; flex-direction: column !important; gap: 7px !important; }
.sm-auth-title { font-size: 23px !important; font-weight: 950 !important; letter-spacing: -.05em !important; line-height: 1 !important; color: #f8fafc !important; }
.sm-auth-sub { font-size: 13px !important; font-weight: 850 !important; color: #60a5fa !important; letter-spacing: -.035em !important; }

.sm-auth-close {
  width: 34px !important;
  height: 34px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 1px solid rgba(148,163,184,.22) !important;
  border-radius: 999px !important;
  background: rgba(15,23,42,.72) !important;
  color: #cbd5e1 !important;
  font-size: 22px !important;
  line-height: 1 !important;
  cursor: pointer !important;
}

.sm-auth-close:hover { background: rgba(30,41,59,.9) !important; color: #fff !important; }

.sm-auth-tabs {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 6px !important;
  margin-bottom: 22px !important;
  padding: 5px !important;
  border: 1px solid rgba(148,163,184,.18) !important;
  border-radius: 18px !important;
  background: rgba(15,23,42,.72) !important;
}

.sm-auth-tab {
  height: 40px !important;
  border: 0 !important;
  border-radius: 14px !important;
  background: transparent !important;
  color: #94a3b8 !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  cursor: pointer !important;
  letter-spacing: -.03em !important;
}

.sm-auth-tab.is-active {
  background: linear-gradient(180deg, rgba(59,130,246,.94), rgba(79,70,229,.94)) !important;
  color: #fff !important;
  box-shadow: 0 10px 24px rgba(59,130,246,.24) !important;
}

.sm-auth-panel { display: none !important; }
.sm-auth-panel.is-active { display: block !important; animation: smPanelIn .16s ease both; }

@keyframes smPanelIn {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}

.sm-auth-label {
  display: block !important;
  margin: 0 0 8px !important;
  color: #94a3b8 !important;
  font-size: 12px !important;
  font-weight: 850 !important;
  letter-spacing: -.025em !important;
}

.sm-auth-field { position: relative !important; margin-bottom: 14px !important; }
.sm-auth-icon { position: absolute !important; left: 13px !important; top: 50% !important; width: 18px !important; height: 18px !important; transform: translateY(-50%) !important; color: #94a3b8 !important; pointer-events: none !important; }
.sm-auth-icon svg, .sm-auth-eye svg, .sm-auth-state-icon svg { width: 100% !important; height: 100% !important; fill: none !important; stroke: currentColor !important; stroke-width: 2 !important; stroke-linecap: round !important; stroke-linejoin: round !important; }

.sm-auth-input {
  width: 100% !important;
  height: 48px !important;
  padding: 0 14px 0 42px !important;
  border: 1px solid rgba(148,163,184,.24) !important;
  border-radius: 14px !important;
  box-sizing: border-box !important;
  background: rgba(15,23,42,.72) !important;
  color: #f8fafc !important;
  outline: none !important;
  font-size: 15px !important;
  font-weight: 650 !important;
}

.sm-auth-input.has-eye { padding-right: 48px !important; }
.sm-auth-input::placeholder { color: #64748b !important; }
.sm-auth-input:focus { border-color: rgba(96,165,250,.72) !important; box-shadow: 0 0 0 3px rgba(37,99,235,.16) !important; }

.sm-auth-eye {
  position: absolute !important;
  right: 8px !important;
  top: 50% !important;
  width: 34px !important;
  height: 34px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  transform: translateY(-50%) !important;
  border: 1px solid rgba(148,163,184,.18) !important;
  border-radius: 999px !important;
  background: rgba(30,41,59,.62) !important;
  color: #cbd5e1 !important;
  cursor: pointer !important;
}

.sm-auth-eye svg {
  width: 18px !important;
  height: 18px !important;
  display: block !important;
  stroke: #cbd5e1 !important;
  fill: none !important;
}

.sm-auth-eye:hover { color: #dbeafe !important; background: rgba(59,130,246,.10) !important; }

.sm-auth-row { display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 12px !important; margin: 2px 0 16px !important; }
.sm-auth-check { display: inline-flex !important; align-items: center !important; gap: 8px !important; color: #cbd5e1 !important; font-size: 13px !important; font-weight: 800 !important; }
.sm-auth-check input { width: 16px !important; height: 16px !important; accent-color: #3b82f6 !important; }

.sm-auth-link { border: 0 !important; background: transparent !important; color: #60a5fa !important; font-size: 13px !important; font-weight: 850 !important; cursor: pointer !important; text-decoration: none !important; }
.sm-auth-link:hover { color: #93c5fd !important; }

.sm-auth-submit {
  width: 100% !important;
  height: 50px !important;
  border: 0 !important;
  border-radius: 16px !important;
  background: linear-gradient(90deg,#2563eb,#7c3aed) !important;
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 950 !important;
  cursor: pointer !important;
  box-shadow: 0 14px 32px rgba(37,99,235,.28) !important;
}

.sm-auth-submit:hover { transform: translateY(-1px) !important; filter: brightness(1.05) !important; }
.sm-auth-submit:disabled { opacity: .7 !important; cursor: not-allowed !important; transform: none !important; }

.sm-auth-note { margin: 2px 0 16px !important; color: #94a3b8 !important; font-size: 13px !important; line-height: 1.65 !important; font-weight: 650 !important; letter-spacing: -.025em !important; }
.sm-auth-note-center { text-align: center !important; margin-top: 12px !important; margin-bottom: 0 !important; }
.sm-auth-panel[aria-busy="true"] { pointer-events: none !important; opacity: .82 !important; }
.sm-auth-message { display: none; margin: 0 0 12px !important; padding: 12px 13px !important; border-radius: 14px !important; border: 1px solid rgba(96,165,250,.24) !important; background: rgba(37,99,235,.10) !important; color: #93c5fd !important; font-size: 12px !important; font-weight: 800 !important; line-height: 1.55 !important; }
.sm-auth-message.is-error { border-color: rgba(248,113,113,.28) !important; background: rgba(127,29,29,.25) !important; color: #fca5a5 !important; }

.sm-auth-state { text-align: center !important; padding: 12px 6px 4px !important; }
.sm-auth-state-icon { width: 68px !important; height: 68px !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; margin: 4px auto 16px !important; border-radius: 999px !important; color: #4ade80 !important; background: rgba(34,197,94,.12) !important; box-shadow: 0 0 0 8px rgba(34,197,94,.06) !important; }
.sm-auth-state h3 { margin: 0 0 10px !important; color: #f8fafc !important; font-size: 19px !important; font-weight: 950 !important; letter-spacing: -.04em !important; }
.sm-auth-state p { margin: 0 0 20px !important; color: #94a3b8 !important; font-size: 13px !important; line-height: 1.65 !important; font-weight: 750 !important; }

.sm-auth-mini-links {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 9px !important;
  margin-top: 12px !important;
}

.sm-auth-dot {
  color: #475569 !important;
  font-weight: 900 !important;
}

.sm-auth-mini-links .sm-auth-link {
  font-size: 12px !important;
  color: #93c5fd !important;
}

.sm-auth-social { display: none !important; }

@media (max-width: 520px) {
  .sm-auth-card { border-radius: 22px !important; padding: 20px !important; }
  .sm-auth-title { font-size: 21px !important; }
  .sm-auth-tabs { gap: 4px !important; }
  .sm-auth-tab { font-size: 12px !important; }
  .sm-auth-row { align-items: flex-start !important; flex-direction: column !important; gap: 10px !important; }
}
