/* =========================================================================
   Milvus Client Portal — Auth pages (sign-in, forgot-password, register)
   Referenced by client/auth/layout.blade.php and client-portal/auth views.
   ========================================================================= */

*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-size: 15px; line-height: 1.6;
  color: #0C0E1A;
  background: #FBFAF7;
  -webkit-font-smoothing: antialiased;
}
[dir="rtl"] body {
  font-family: 'Tajawal', 'Noto Naskh Arabic', sans-serif;
}
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; background: none; border: 0; padding: 0; color: inherit; }
input, textarea, select { font: inherit; color: inherit; }
h1, h2, h3 { margin: 0; line-height: 1.2; }

.auth-shell {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 100vh; min-height: 100dvh;
}
@media (max-width: 768px) {
  .auth-shell { grid-template-columns: 1fr; }
}

.auth-visual {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  padding: 40px;
  background: #0C0E1A;
}
@media (max-width: 768px) {
  .auth-visual { display: none; }
}
.auth-visual > img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  opacity: 0.5;
}
.auth-visual-content {
  position: relative; z-index: 1;
  color: #fff;
  width: 100%;
}
.auth-brand {
  display: inline-flex; align-items: center; gap: 10px;
  margin-bottom: 40px;
  text-decoration: none; color: #fff;
}
.auth-brand svg { width: 36px; height: 36px; }
.auth-brand span {
  font-family: 'Cormorant Garamond', serif;
  font-size: 20px; font-weight: 600;
}
.auth-poetry-tag {
  font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase;
  color: rgba(255,255,255,0.5);
  margin-bottom: 12px;
}
.auth-poetry-quote {
  font-family: 'Cormorant Garamond', serif;
  font-size: 28px; font-weight: 500; font-style: italic;
  line-height: 1.3; color: rgba(255,255,255,0.9);
  max-width: 400px; margin: 0 0 12px;
}
[dir="rtl"] .auth-poetry-quote {
  font-family: 'Tajawal', sans-serif;
  font-style: normal; font-weight: 700;
}
.auth-poetry-attrib {
  font-size: 12px; color: rgba(255,255,255,0.45);
}

.auth-form-wrap {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 48px 40px;
  min-height: 100vh; min-height: 100dvh;
}
@media (max-width: 480px) {
  .auth-form-wrap { padding: 32px 20px; }
}

.auth-back {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 13px; color: #4A5B78;
  margin-bottom: 32px;
  min-height: 44px;
}
.auth-back svg { width: 18px; height: 18px; }
[dir="rtl"] .auth-back svg { transform: scaleX(-1); }

.auth-form {
  max-width: 400px; width: 100%;
}
.auth-eyebrow {
  font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase;
  color: #B88846;
  margin-bottom: 12px;
}
.auth-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(28px, 4vw, 36px);
  font-weight: 600; color: #11233F;
  margin-bottom: 8px;
}
[dir="rtl"] .auth-title {
  font-family: 'Tajawal', sans-serif;
  font-weight: 700;
}
.auth-subtitle {
  font-size: 14px; color: #4A5B78;
  margin: 0 0 28px; line-height: 1.5;
}

/* Form elements */
.auth-form label,
.auth-form .field {
  display: flex; flex-direction: column; gap: 6px;
  margin-bottom: 18px;
}
.auth-form label span,
.auth-form .field-label {
  font-size: 11px; font-weight: 500; letter-spacing: 0.08em;
  text-transform: uppercase; color: #B88846;
}
.auth-form input[type="text"],
.auth-form input[type="email"],
.auth-form input[type="password"],
.auth-form input[type="tel"] {
  padding: 14px 16px; border: 1px solid rgba(17,35,63,0.12);
  border-radius: 10px; font-size: 15px; background: #fff;
  transition: border-color 160ms ease;
  min-height: 48px;
}
.auth-form input:focus { outline: 0; border-color: #B88846; }

.auth-form .checkbox-row {
  display: flex; align-items: center; gap: 8px;
  font-size: 13px; color: #4A5B78; cursor: pointer;
  min-height: 44px; margin-bottom: 18px;
}
.auth-form .checkbox-row input { width: 18px; height: 18px; accent-color: #11233F; }

.auth-form button[type="submit"],
.auth-form .btn-primary {
  width: 100%; padding: 14px; border: 0; border-radius: 10px;
  background: #11233F; color: #fff; font-size: 15px; font-weight: 500;
  cursor: pointer; min-height: 48px;
  transition: background 160ms ease;
}
.auth-form button[type="submit"]:hover,
.auth-form .btn-primary:hover { background: #1B3A5C; }

.auth-form .error-text,
.auth-form .field-error {
  font-size: 12px; color: #DC2626;
}
.auth-form .link-muted {
  font-size: 13px; color: #4A5B78;
  text-decoration: underline;
  min-height: 44px; display: inline-flex; align-items: center;
}
.auth-form .alert {
  padding: 12px 16px; border-radius: 10px; font-size: 14px;
  margin-bottom: 18px;
}
.auth-form .alert-success {
  background: rgba(76,179,125,0.1); color: #065F46;
  border: 1px solid rgba(76,179,125,0.2);
}
.auth-form .alert-error {
  background: rgba(220,38,38,0.06); color: #DC2626;
  border: 1px solid rgba(220,38,38,0.12);
}
