/* Responsive, legitimate-looking background and layout */
:root {
  --bg-start: #f7f9fc;
  --bg-end: #e6edf7;
  --primary: #0d6efd;
  --text: #1f2d3d;
}

html, body {
  height: 100%;
}

.app-bg {
  min-height: 100vh;
  background: linear-gradient(180deg, var(--bg-start), var(--bg-end));
  background-attachment: fixed;
}

.card {
  border-radius: 14px;
}

.navbar-brand {
  letter-spacing: 0.4px;
}

/* Subtle pattern overlay for legitimacy */
.app-bg::before {
  content: "";
  position: fixed;
  inset: 0;
  background-image:
    radial-gradient(rgba(13,110,253,0.06) 1px, transparent 1px),
    radial-gradient(rgba(13,110,253,0.04) 1px, transparent 1px);
  background-size: 16px 16px, 28px 28px;
  background-position: 0 0, 8px 8px;
  pointer-events: none;
}

/* Mobile spacing */
@media (max-width: 576px) {
  .card-header h1.h4 {
    font-size: 1.05rem;
  }
  .navbar-brand {
    font-size: 1rem;
  }
}

/* Form improvements */
.form-label {
  font-weight: 600;
}

.invalid-feedback {
  display: none;
}

.was-validated .form-control:invalid ~ .invalid-feedback,
.was-validated .form-select:invalid ~ .invalid-feedback {
  display: block;
}

/* Footer */
footer {
  color: #6c757d;
}

/* High-contrast focus */
:focus-visible {
  outline: 3px solid rgba(13,110,253,0.35);
  outline-offset: 2px;
}
