:root {
  --brand: #179CCE;
  --dark: #1f2937;
  --light: #f5f8fb;
}

* { box-sizing: border-box; }

body {
  font-family: Georgia, 'Times New Roman', serif;
  background: linear-gradient(135deg, #f7fbff 0%, #eef7fb 50%, #ffffff 100%);
  color: var(--dark);
  min-height: 100vh;
}

.site-header {
  background: var(--brand);
  color: #fff;
  text-align: center;
  padding: 2.4rem 1rem;
}

.site-header h1 { font-weight: 700; letter-spacing: .3px; }
.site-header p { margin-bottom: 0; font-size: 1.1rem; }

.navbar { box-shadow: 0 4px 14px rgba(0,0,0,.08); }
.navbar-brand, .nav-link { font-family: Georgia, 'Times New Roman', serif; }

.hero-card, .form-card, .table-card {
  background: #fff;
  border: 0;
  border-radius: 18px;
  box-shadow: 0 12px 28px rgba(31,41,55,.10);
}

.hero-card {
  border-left: 8px solid var(--brand);
}

.badge-soft {
  background: rgba(23,156,206,.12);
  color: #0b6789;
  border: 1px solid rgba(23,156,206,.25);
}

.form-label { font-weight: 700; }
.form-control, .form-select { border-radius: 10px; }
.form-control:focus, .form-select:focus {
  border-color: var(--brand);
  box-shadow: 0 0 0 .2rem rgba(23,156,206,.18);
}

.btn-brand {
  background: var(--brand);
  border-color: var(--brand);
  color: #fff;
  border-radius: 999px;
  padding: .75rem 1.5rem;
  font-weight: 700;
}
.btn-brand:hover { background: #107fa8; border-color: #107fa8; color: #fff; }

.btn-outline-brand {
  border-color: var(--brand);
  color: var(--brand);
  border-radius: 999px;
  font-weight: 700;
}
.btn-outline-brand:hover { background: var(--brand); color: #fff; }

.footer {
  background: #111827;
  color: #e5e7eb;
  text-align: center;
  padding: 1.4rem 1rem;
  margin-top: 3rem;
}

.required { color: #b91c1c; }
.small-note { font-size: .9rem; color: #6b7280; }
