/* ===========================
   Auth pages (login/signup)
   Scoped styles so they don't
   affect dashboard or others.
   =========================== */

.auth-page {
  min-height: calc(100vh - 120px); /* leaves header/footer breathing room */
  display: grid;
  place-items: center;
  padding: 24px 16px;
}

.auth-card {
  width: min(420px, 100%);
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  box-shadow: 0 6px 24px rgba(0,0,0,0.06);
  padding: 24px;
}

.auth-logo-wrap {
  display: flex;
  justify-content: center;
  margin-bottom: 8px;
}
.auth-logo {
  height: 90px; /* adjust if your logo needs different size */
  width: auto;
  margin-bottom: 2px;
}

.auth-title {
  margin: 2px 0 6px 0;
  font-size: 22px;
  font-weight: 500;
  text-align: center;
  color: #0f172a; /* slate-900 */
}

/* Flashes inside the auth card */
.auth-flashes {
  display: grid;
  gap: 8px;
  margin: 8px 0 10px 0;
}
.auth-flash {
  border-radius: 8px;
  padding: 10px 12px;
  font-size: 14px;
  font-weight: 600;
}
.auth-flash--success {
  background: #ecfdf5;
  color: #065f46;
  border: 1px solid #a7f3d0;
}
.auth-flash--error, .auth-flash--danger {
  background: #fee2e2;
  color: #b91c1c;
  border: 1px solid #fecaca;
}
.auth-flash--warning {
  background: #fef9c3;
  color: #92400e;
  border: 1px solid #fde68a;
}
.auth-flash--info {
  background: #e6f0ff;
  color: #1e3a8a;
  border: 1px solid #c7d8ff;
}

/* Form fields */
.auth-form {
  margin-top: 6px;
}
.auth-field + .auth-field { margin-top: 12px; }

.auth-label {
  display: block;
  font-size: 14px;
  font-weight: 600;
  color: #374151; /* gray-700 */
  margin-bottom: 6px;
}

.auth-terms label {
  display: flex;
  align-items: center;
  gap: 6px;              /* space between checkbox and text */
  font-size: 14px;
  font-weight: 400;
  color: #4b5563;
}

.auth-input {
  width: 100%;
  border: 1px solid #d1d5db;   /* gray-300 */
  border-radius: 10px;
  padding: 10px 12px;
  font-size: 14px;
  outline: none;
  background: #fff;
  color: #111827;              /* gray-900 */
}
.auth-input:focus {
  border-color: #93c5fd;       /* blue-300 */
  box-shadow: 0 0 0 3px rgba(59,130,246,0.2); /* focus ring */
}

/* Links row under fields */
.auth-links {
  margin: 10px 0 12px 0;
  font-size: 14px;
  display: flex;
  justify-content: flex-start;
}
.auth-link {
  margin-left: 6px;
  font-size: 14px;
  color: #2563eb; /* blue-600 */
  text-decoration: none;
}
.auth-link:hover {
  text-decoration: underline;
}

/* Submit button */
.auth-btn {
  width: 100%;
  border: none;
  border-radius: 10px;
  padding: 10px 14px;

  /* 🔽 font settings – adjust these to taste */
  font-family: inherit;   /* use the same font as the page */
  font-size: 14px;        /* slightly smaller if it felt too big */
  font-weight: 600;       /* closer to other labels, not super bold */

  color: #ffffff;
  background: #0066ff;    /* consistent with your blue */
  cursor: pointer;
}

.auth-btn:active {
  transform: translateY(0.5px);
}

/* Hide app chrome (sidebar/layout) on auth pages only */
.dashboard-layout .sidebar { 
  display: none !important; 
}

/* Let the main area expand full width when sidebar is hidden */
.dashboard-layout { 
  display: block !important; 
}

/* Optional: reduce outer padding on the main/content to keep the card centered nicely */
.main, .content {
  padding: 0 !important;
}

/* -------- Plan cards on signup -------- */

.plan-card-row {
  display: flex;
  gap: 8px;
  flex-wrap: nowrap;          /* <— force one row */
  margin-top: 8px;
}

.plan-card {
  flex: 1 1 0;                /* <— three equal columns */
  max-width: none;            /* let them shrink to fit */
  cursor: pointer;
}

.plan-card input[type="radio"] {
  display: none;
}

.plan-card-body {
  border: 1px solid #ddd;
  border-radius: 8px;
  padding: 8px 10px;
  text-align: center;
  font-size: 0.85rem;
  background: #f5f5f5;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.plan-card-title {
  font-weight: 600;
  margin-bottom: 4px;
}

.plan-card-subtitle {
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 4px;
}

.plan-card-line {
  font-size: 0.65rem;
}

/* Highlight selected card in accent blue */
.plan-card input[type="radio"]:checked + .plan-card-body {
  border-color: #007bff;
  box-shadow: 0 0 0 1px #007bff33;
  background: #eef5ff;
}