/* ============================================================
   LEAFGUARD — AUTH.CSS  (login / signup page)
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --dark:   #111a0d;
  --moss:   #3d6b2a;
  --leaf:   #5a9e3c;
  --sprout: #8ecf5e;
  --gold:   #c9a84c;
  --ink:    #0e1209;
}

html, body {
  height: 100%;
  font-family: 'Cabinet Grotesk', sans-serif;
  background: var(--dark);
  color: #fff;
  cursor: none;
  overflow: hidden;
}

/* ---- CURSOR ---- */
.cursor-dot, .cursor-ring {
  position: fixed;
  pointer-events: none;
  z-index: 9999;
  border-radius: 50%;
  transform: translate(-50%, -50%);
}
.cursor-dot  { width: 6px; height: 6px; background: var(--sprout); mix-blend-mode: screen; }
.cursor-ring { width: 28px; height: 28px; border: 1.5px solid var(--sprout); mix-blend-mode: screen; transition: width .15s, height .15s; }
body.cursor-hover .cursor-ring { width: 40px; height: 40px; }

/* ---- BACKGROUND ---- */
.auth-grain {
  position: fixed; inset: -100px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.045;
  pointer-events: none;
  animation: grain .12s steps(2) infinite;
  z-index: 0;
}
@keyframes grain {
  0%   { transform: translate(0,0); }
  25%  { transform: translate(-4px,-4px); }
  50%  { transform: translate(4px,4px); }
  75%  { transform: translate(-3px,3px); }
  100% { transform: translate(3px,-3px); }
}

.orb {
  position: fixed;
  border-radius: 50%;
  filter: blur(80px);
  pointer-events: none;
  z-index: 0;
}
.orb-1 {
  width: 500px; height: 500px;
  background: radial-gradient(circle, rgba(61,107,42,.45) 0%, transparent 70%);
  top: -120px; left: -100px;
  animation: floatA 9s ease-in-out infinite alternate;
}
.orb-2 {
  width: 380px; height: 380px;
  background: radial-gradient(circle, rgba(90,158,60,.28) 0%, transparent 70%);
  bottom: -60px; right: -60px;
  animation: floatB 11s ease-in-out infinite alternate;
}
.orb-3 {
  width: 260px; height: 260px;
  background: radial-gradient(circle, rgba(201,168,76,.18) 0%, transparent 70%);
  top: 40%; left: 60%;
  animation: floatC 13s ease-in-out infinite alternate;
}
@keyframes floatA { from { transform: translate(0,0);       } to { transform: translate(28px,22px); } }
@keyframes floatB { from { transform: translate(0,0);       } to { transform: translate(-22px,18px); } }
@keyframes floatC { from { transform: translate(0,0);       } to { transform: translate(18px,-28px); } }

/* ---- PAGE LAYOUT ---- */
.auth-page {
  position: relative;
  z-index: 1;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 20px;
  padding: 40px 24px;
}

/* ---- LANG SWITCHER ---- */
.auth-lang-switcher { display:flex;justify-content:center;gap:4px;margin-bottom:16px; }
.auth-lang-switcher .lang-btn {
  padding:4px 10px;border-radius:6px;font-size:.72rem;font-weight:700;
  color:rgba(255,255,255,.35);background:transparent;transition:all .15s;cursor:pointer;font-family:inherit;
}
.auth-lang-switcher .lang-btn:hover { color:rgba(255,255,255,.8); }
.auth-lang-switcher .lang-btn.active { color:#fff;background:rgba(255,255,255,.12); }

/* RTL */
[dir="rtl"] .auth-page { direction: rtl; }

/* ---- BRAND ---- */
.auth-brand { text-align: center; }
.auth-logo {
  font-family: 'Instrument Serif', serif;
  font-size: 2.6rem;
  letter-spacing: -0.02em;
  line-height: 1;
  margin-bottom: 8px;
  display:flex;justify-content:center;
}
.auth-logo-img { height:160px;width:auto;object-fit:contain; }
.logo-leaf  { color: var(--sprout); }
.logo-guard { color: rgba(255,255,255,.9); }
.auth-tagline {
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255,255,255,.3);
}

/* ---- CARD ---- */
.auth-card {
  width: 100%;
  max-width: 420px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 20px;
  padding: 32px;
  backdrop-filter: blur(20px);
}

/* ---- TABS ---- */
.auth-tabs {
  display: flex;
  gap: 4px;
  background: rgba(255,255,255,.05);
  border-radius: 10px;
  padding: 4px;
  margin-bottom: 28px;
}
.auth-tab {
  flex: 1;
  padding: 9px;
  border-radius: 7px;
  font-size: 0.875rem;
  font-weight: 600;
  background: transparent;
  border: none;
  color: rgba(255,255,255,.45);
  cursor: none;
  transition: background .18s, color .18s;
}
.auth-tab.active { background: rgba(255,255,255,.12); color: #fff; }
.auth-tab:hover:not(.active) { color: rgba(255,255,255,.7); background: rgba(255,255,255,.05); }

/* ---- FORM ---- */
.auth-form { display: flex; flex-direction: column; gap: 18px; }
.auth-form.hidden { display: none; }

.form-group { display: flex; flex-direction: column; gap: 7px; }
.form-label {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(255,255,255,.4);
}

.input-wrap { position: relative; }
.input-icon {
  position: absolute;
  left: 14px; top: 50%;
  transform: translateY(-50%);
  color: rgba(255,255,255,.25);
  pointer-events: none;
}
.form-input {
  width: 100%;
  padding: 12px 16px 12px 42px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.1);
  background: rgba(255,255,255,.05);
  color: rgba(255,255,255,.9);
  font-family: 'Cabinet Grotesk', sans-serif;
  font-size: 0.9rem;
  outline: none;
  transition: border-color .15s, background .15s;
}
.form-input:focus  { border-color: var(--leaf); background: rgba(255,255,255,.07); }
.form-input::placeholder { color: rgba(255,255,255,.35); }
.form-input:-webkit-autofill,
.form-input:-webkit-autofill:hover,
.form-input:-webkit-autofill:focus {
  -webkit-text-fill-color: rgba(255,255,255,.9);
  -webkit-box-shadow: 0 0 0 1000px #1a2212 inset;
  transition: background-color 5000s ease-in-out 0s;
}

.form-error {
  font-size: 0.8rem;
  color: #f87171;
  min-height: 18px;
}

.form-submit {
  margin-top: 4px;
  padding: 13px 20px;
  border-radius: 12px;
  background: var(--leaf);
  color: #fff;
  font-weight: 700;
  font-size: 0.95rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: background .18s, transform .12s;
  cursor: none;
}
.form-submit:hover:not(:disabled) { background: var(--moss); transform: translateY(-1px); }
.form-submit:disabled { opacity: .5; }

/* ---- FOOTER ---- */
.auth-footer {
  font-size: 0.75rem;
  color: rgba(255,255,255,.18);
  letter-spacing: 0.03em;
}
