/* ============================================================
   KK Dating - Login Page Header & UI Improvements v2
   ============================================================ */

/* ── CSS Variables (shared) ──────────────────────────────── */
:root {
  --kk-brand: #e07864;
  --kk-brand-deep: #cf604f;
  --kk-brand-soft: rgba(224,120,100,0.12);
  --kk-glow: 0 8px 24px rgba(224,120,100,0.35);
  --kk-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --kk-page-bg: #07070d;
}

/* ── Body background safeguard ──────────────────────────── */
html, body {
  background: var(--kk-page-bg) !important;
  background-color: var(--kk-page-bg) !important;
}
.kk-header-right {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
}


/* ── Page Header ─────────────────────────────────────────── */
.kk-page-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 56px;
  padding: 0 16px;
  background: #07070d;
  border-bottom: 1px solid rgba(255,255,255,0.06);
  animation: kkHeaderIn 0.5s var(--kk-ease);
}

@keyframes kkHeaderIn {
  from { opacity: 0; transform: translateY(-12px); }
  to   { opacity: 1; transform: translateY(0); }
}

.kk-header-brand {
  display: flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  color: #fff;
  cursor: pointer;
  transition: transform 0.2s var(--kk-ease);
}

.kk-header-brand:active {
  transform: scale(0.96);
}

.kk-header-logo {
  width: 32px;
  height: 32px;
  border-radius: 10px;
  object-fit: cover;
  box-shadow: 0 4px 12px rgba(224,120,100,0.3);
}

.kk-header-title {
  font-family: 'Inter', 'Playfair Display', serif;
  font-size: 18px;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #fff;
  text-shadow: 0 1px 3px rgba(0,0,0,0.3);
}

/* ── Header Language Switcher ────────────────────────────── */
.kk-header-lang {
  position: relative;
}

.kk-header-lang-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  height: 34px;
  border: 1px solid rgba(255,255,255,0.25);
  border-radius: 999px;
  padding: 0 14px;
  background: rgba(255,255,255,0.08);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s, transform 0.15s;
  white-space: nowrap;
  -webkit-tap-highlight-color: transparent;
}

.kk-header-lang-btn:hover {
  background: rgba(255,255,255,0.15);
  border-color: rgba(255,255,255,0.4);
}

.kk-header-lang-btn:active {
  transform: scale(0.96);
}

.kk-header-lang-btn .lang-arrow {
  font-size: 8px;
  margin-left: 2px;
  opacity: 0.7;
  transition: transform 0.2s;
}

.kk-header-lang.open .kk-header-lang-btn .lang-arrow {
  transform: rotate(180deg);
}

.kk-header-lang-menu {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  min-width: 140px;
  border-radius: 12px;
  padding: 6px;
  background: rgba(20,16,10,0.96);
  border: 1px solid rgba(255,255,255,0.12);
  box-shadow: 0 12px 36px rgba(0,0,0,0.4);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  display: none;
  z-index: 200;
}

.kk-header-lang.open .kk-header-lang-menu {
  display: block;
  animation: kkFadeIn 0.15s ease;
}

.kk-header-lang-item {
  padding: 8px 12px;
  border-radius: 8px;
  color: rgba(255,255,255,0.8);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}

.kk-header-lang-item:hover {
  background: rgba(255,255,255,0.1);
  color: #fff;
}

.kk-header-lang-item.active {
  color: #e07864;
  font-weight: 800;
  background: rgba(224,120,100,0.12);
}

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

/* ── Background Decorative Gradient Orbs (on body, NOT .login-mobile,
       because .login-mobile shares its ::before with .auth-mobile which
       holds the photo collage — overwriting the pseudo-element wipes
       the image). ──────────────────────────────────────────────── */
.login-mobile[data-v-c9058dbc] {
  padding-top: 80px !important;
  position: relative;
  overflow: hidden;
  animation: kkPageIn 0.6s var(--kk-ease);
}

@keyframes kkPageIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

body.kk-orbs::before,
body.kk-orbs::after {
  content: "";
  position: fixed;
  border-radius: 50%;
  filter: blur(110px);
  opacity: 0.28;
  pointer-events: none;
  animation: kkFloat 18s ease-in-out infinite;
  z-index: 0;
}

body.kk-orbs::before {
  width: 380px;
  height: 380px;
  top: -100px;
  right: -120px;
  background: radial-gradient(circle, rgba(224,120,100,0.55), transparent 70%);
}

body.kk-orbs::after {
  width: 440px;
  height: 440px;
  bottom: -180px;
  left: -140px;
  background: radial-gradient(circle, rgba(167,139,250,0.45), transparent 70%);
  animation-delay: -9s;
}

@keyframes kkFloat {
  0%, 100% { transform: translate(0,0) scale(1); }
  33%      { transform: translate(20px, -30px) scale(1.05); }
  66%      { transform: translate(-20px, 25px) scale(0.95); }
}

/* Make sure content sits above the orbs and the image stays visible */
.login-mobile[data-v-c9058dbc] > * {
  position: relative;
  z-index: 1;
}

/* Reduce the heavy dark overlay on the auth collage so the image is fully visible */
.auth-mobile[data-v-c9058dbc]::before,
.auth-mobile::before,
.mobile-shell.auth-mobile::before {
  background:
    var(--kkdating-auth-bg-collage, none) center center / cover no-repeat,
    linear-gradient(180deg, rgba(7,7,13,0.15) 0%, rgba(7,7,13,0.35) 100%) !important;
}

.auth-mobile[data-v-c9058dbc]::after,
.auth-mobile::after {
  background: linear-gradient(180deg, rgba(124,58,237,0.06) 0%, rgba(0,0,0,0.15) 100%) !important;
}

/* ── Hero / Brand Text (injected via inline script) ─────── */
.login-hero[data-v-c9058dbc] {
  gap: 8px !important;
  text-align: center;
  animation: kkHeroIn 0.7s 0.1s var(--kk-ease) backwards;
}

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

.kk-brand-h1 {
  font-family: 'Playfair Display', 'Inter', serif;
  font-size: 30px !important;
  font-weight: 900;
  letter-spacing: -0.02em;
  background: linear-gradient(135deg, #ffffff 0%, #f9d6cf 50%, #e07864 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow: 0 2px 24px rgba(224,120,100,0.2);
  margin: 0 !important;
  line-height: 1.1 !important;
}

.kk-tagline {
  font-size: 14px !important;
  font-weight: 500;
  color: rgba(255,255,255,0.7) !important;
  max-width: 320px;
  margin: 0 auto !important;
  line-height: 1.5 !important;
  letter-spacing: 0.01em;
}

/* Override the original hero styles that were tighter */
.login-hero[data-v-c9058dbc] h1[data-v-c9058dbc] {
  font-size: 30px !important;
}

.login-hero[data-v-c9058dbc] p[data-v-c9058dbc] {
  font-size: 14px !important;
  max-width: 320px;
}

/* ── Login Card ──────────────────────────────────────────── */
.login-card[data-v-c9058dbc] {
  padding: 24px 22px 18px !important;
  border-radius: 20px !important;
  background: rgba(20,16,10,0.55) !important;
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  backdrop-filter: blur(20px) saturate(180%);
  border: 1px solid rgba(255,255,255,0.08) !important;
  box-shadow: 0 20px 60px rgba(0,0,0,0.4) !important;
  position: relative;
  overflow: hidden;
  animation: kkCardIn 0.7s 0.2s var(--kk-ease) backwards;
}

@keyframes kkCardIn {
  from { opacity: 0; transform: translateY(20px) scale(0.98); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

/* Subtle accent bar at the top of the card */
.login-card[data-v-c9058dbc]::before {
  content: "";
  position: absolute;
  top: 0;
  left: 24px;
  right: 24px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(224,120,100,0.6), transparent);
  pointer-events: none;
}

.login-card-head h2[data-v-c9058dbc],
.login-card h2[data-v-c9058dbc] {
  display: none !important;
}

.login-card-head h2[data-v-c9058dbc] {
  font-size: 24px !important;
  font-weight: 800 !important;
  color: #fff !important;
  letter-spacing: -0.01em;
  text-align: center;
}

/* ── Form Fields ─────────────────────────────────────────── */
[data-v-c9058dbc] .van-cell {
  border-radius: 14px !important;
  margin-bottom: 12px !important;
  background: rgba(255,255,255,0.95) !important;
  transition: box-shadow 0.2s, transform 0.2s, background 0.2s;
  border: 1.5px solid transparent;
  padding: 14px 16px !important;
  display: flex;
  align-items: center;
}

[data-v-c9058dbc] .van-cell:focus-within {
  box-shadow: 0 0 0 3px rgba(224,120,100,0.25);
  background: #fff !important;
  border-color: rgba(224,120,100,0.4);
}

/* Form field icons (user / lock) via CSS pseudo-elements */
[data-v-c9058dbc] .van-cell:first-of-type::before,
[data-v-c9058dbc] .van-cell:nth-of-type(2)::before {
  content: "";
  width: 20px;
  height: 20px;
  margin-right: 12px;
  flex-shrink: 0;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  opacity: 0.55;
  transition: opacity 0.2s;
}

[data-v-c9058dbc] .van-cell:first-of-type::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e07864' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/><circle cx='12' cy='7' r='4'/></svg>");
}

[data-v-c9058dbc] .van-cell:nth-of-type(2)::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e07864' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='11' width='18' height='11' rx='2'/><path d='M7 11V7a5 5 0 0 1 10 0v4'/></svg>");
}

[data-v-c9058dbc] .van-cell:focus-within::before {
  opacity: 1;
}

[data-v-c9058dbc] .van-cell input {
  font-size: 15px !important;
  font-weight: 500;
  color: #1a1a1a;
}

[data-v-c9058dbc] .van-cell input::placeholder {
  color: rgba(0,0,0,0.4);
  font-weight: 500;
}

/* Error state for form fields */
[data-v-c9058dbc] .van-cell--error,
[data-v-c9058dbc] .van-field--error {
  border-color: rgba(255, 80, 80, 0.5) !important;
  background: rgba(255, 235, 235, 0.96) !important;
  box-shadow: 0 0 0 2px rgba(255, 80, 80, 0.15) !important;
  animation: kkShake 0.4s var(--kk-ease);
}

@keyframes kkShake {
  0%, 100% { transform: translateX(0); }
  25%      { transform: translateX(-6px); }
  75%      { transform: translateX(6px); }
}

/* ── Submit Button ───────────────────────────────────────── */
.login-submit[data-v-c9058dbc] {
  margin-top: 18px !important;
}

.login-submit[data-v-c9058dbc] .van-button {
  border-radius: 14px !important;
  height: 50px !important;
  font-weight: 800 !important;
  font-size: 15px !important;
  letter-spacing: 0.04em;
  background: linear-gradient(135deg, #ec4899, #db2777) !important;
  border: none !important;
  box-shadow: 0 10px 28px rgba(236,72,153,0.4) !important;
  transition: transform 0.15s, box-shadow 0.2s, filter 0.2s !important;
  position: relative;
  overflow: hidden;
}

.login-submit[data-v-c9058dbc] .van-button::after {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.25), transparent);
  transition: left 0.6s var(--kk-ease);
}

.login-submit[data-v-c9058dbc] .van-button:hover::after {
  left: 100%;
}

.login-submit[data-v-c9058dbc] .van-button:hover {
  box-shadow: 0 12px 32px rgba(236,72,153,0.5) !important;
  filter: brightness(1.05);
}

.login-submit[data-v-c9058dbc] .van-button:active {
  transform: scale(0.98);
}

/* Loading state for submit button */
.login-submit[data-v-c9058dbc] .van-button--loading {
  background: linear-gradient(135deg, #db2777, #be185d) !important;
  cursor: wait;
  pointer-events: none;
}

.login-submit[data-v-c9058dbc] .van-button--loading .van-button__text {
  opacity: 0.6;
}

/* ── Links Section (forgot / register) ──────────────────── */
.login-links[data-v-c9058dbc] {
  gap: 18px !important;
  margin-top: 18px !important;
  font-size: 13px !important;
  padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,0.06);
}

.login-links[data-v-c9058dbc] .footer-link,
.login-links[data-v-c9058dbc] a {
  color: rgba(255,255,255,0.75) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  transition: color 0.2s, transform 0.2s;
  text-decoration: none;
  position: relative;
}

.login-links[data-v-c9058dbc] .footer-link:hover,
.login-links[data-v-c9058dbc] a:hover {
  color: #e07864 !important;
}

/* ── Footer Cleanup ──────────────────────────────────────── */
/* Hide the original footer language row visually, but keep it
   in the DOM and clickable — the injected header switcher
   proxies clicks through to the real <button> handlers. */
.kk-header-lang-shown .auth-footer .footer-row:first-child,
.kk-header-lang-shown .login-footer .footer-row:first-child {
  position: absolute !important;
  left: -99999px !important;
  top: 0 !important;
  width: 1px !important;
  height: 1px !important;
  margin: 0 !important;
  padding: 0 !important;
  opacity: 0 !important;
  pointer-events: auto !important;
  overflow: hidden !important;
}

.auth-footer .footer-row:last-child,
.login-footer .footer-row:last-child {
  margin-bottom: 0 !important;
}

.footer-copy[data-v-c9058dbc] {
  font-size: 10px !important;
  color: rgba(255,255,255,0.45) !important;
  letter-spacing: 0.04em;
}

/* ── Desktop Overrides ───────────────────────────────────── */
@media (min-width: 900px) {
  .kk-page-header {
    height: 60px;
    padding: 0 28px;
    background: #07070d;
  }

  .kk-header-title {
    font-size: 20px;
  }

  .kk-header-lang-btn {
    height: 36px;
    padding: 0 16px;
    font-size: 13px;
  }

  .login-mobile[data-v-c9058dbc] {
    padding-top: 200px !important;
  }

  /* On desktop, orbs are larger and gentler */
  body.kk-orbs::before {
    width: 500px;
    height: 500px;
    top: -180px;
    right: -160px;
  }

  body.kk-orbs::after {
    width: 560px;
    height: 560px;
    bottom: -200px;
    left: -180px;
  }

  .login-card[data-v-c9058dbc] {
    padding: 32px 32px 28px !important;
    border-radius: 24px !important;
  }

  .login-card-head h2[data-v-c9058dbc] {
    font-size: 26px !important;
  }

  .kk-brand-h1 {
    font-size: 36px !important;
  }

  .kk-tagline {
    font-size: 15px !important;
  }

  /*
   * Source CSS pins .login-card to grid-area: card and .login-footer to
   * grid-area: footer (2 named rows), which makes CSS `order: -1` on
   * .login-hero a no-op: auto-placed items get an implicit 3rd row BELOW
   * the explicitly-placed ones. We re-define the grid here with three
   * explicit named areas so the hero lands ABOVE the card.
   */
  .login-mobile[data-v-c9058dbc] {
    grid-template-areas: "hero" "card" "footer" !important;
    grid-template-rows: minmax(96px, auto) minmax(0, 1fr) auto !important;
    row-gap: 24px !important;
  }

  .login-hero[data-v-c9058dbc] {
    grid-area: hero !important;
    grid-row: 1 !important;
    grid-column: 2 !important;
  }

  .login-card[data-v-c9058dbc] {
    grid-area: card !important;
    grid-row: 2 !important;
    grid-column: 2 !important;
  }

  .login-footer[data-v-c9058dbc] {
    grid-area: footer !important;
    grid-row: 3 !important;
    grid-column: 2 !important;
  }

  /* Move the title hero above the form (so the card border-top becomes the divider line) */
  .login-hero[data-v-c9058dbc] {
    order: -1 !important;
    margin-bottom: 0 !important;
    padding-bottom: 18px !important;
    border-bottom: 1px solid rgba(255,255,255,0.08) !important;
    align-items: center !important;
  }

  .login-hero[data-v-c9058dbc] .kk-brand-h1,
  .login-hero[data-v-c9058dbc] h1[data-v-c9058dbc] {
    text-align: center !important;
  }

  .login-hero[data-v-c9058dbc] .kk-tagline,
  .login-hero[data-v-c9058dbc] p[data-v-c9058dbc] {
    text-align: center !important;
  }

  .auth-mobile[data-v-c9058dbc]::before,
  .auth-mobile::before,
  .mobile-shell.auth-mobile::before {
    background:
      var(--kkdating-auth-bg-collage, none) center center / cover no-repeat,
      linear-gradient(180deg, rgba(7,7,13,0.2) 0%, rgba(7,7,13,0.4) 100%) !important;
  }
}

/* ── Reduced Motion ──────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  body.kk-orbs::before,
  body.kk-orbs::after,
  .kk-page-header,
  .login-card[data-v-c9058dbc],
  .login-hero[data-v-c9058dbc] {
    animation: none !important;
  }
}

/* ── Hide Vant member-language-button (we provide our own custom header switcher) ── */
.member-language-button { display: none !important; }
