:root {
  --bg: #f6f9fb;
  --card: #ffffff;
  --primary: #0e5db3;
  --accent: #0b7dda;
  --text: #1b2a3a;
  --muted: #66788a;
  --danger: #c62828;
  --success: #2e7d32;
  --border: #e2e8f0;
}
#formcontent a {
  text-decoration: underline !important;
}
#formcontent a:hover {
  text-decoration: none !important;
}
form {
  border: 1px solid #ddd;
  border-radius: 10px;
  padding: 1rem
}
h2 {
  font-weight: bold;
  font-size: 20px;
  padding: 0 0 5px 0;
  color: #67839f;
  border-bottom: 3px solid #e2ecf6;
}
.error {
  font-size: 0.875rem;
  color: var(--danger);
  padding: 0.1rem 0;
  margin-top: 0.35rem;
}
.row-error {
  grid-column: span 12;
}
.success {
  border-left: 4px solid var(--success);
  background: #e8f5e9;
  color: #1b5e20;
  padding: 0.75rem 1rem;
  border-radius: 6px;
  margin-bottom: 1rem;
}
.radio-group, .inline {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  align-items: center;
}
.captcha-box {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}
.captcha-code {
  font-family: "Courier New", monospace;
  background: #0c1f3d;
  color: #eaf2ff;
  padding: 0.5rem 0.75rem;
  border-radius: 6px;
  letter-spacing: 0.3rem;
  font-weight: 700;
  user-select: none;
}
.req {
  color: var(--danger);
  margin-left: 0.15rem;
}
.note {
  background: #f0f4f8;
  padding: 0.75rem 1rem;
  border-radius: 8px;
  border: 1px solid var(--border);
  color: #243b53;
}
::placeholder {
  color: #9aa5b1 !important; /* Bootstrap muted gray */
  opacity: 1; /* Firefox needs this */
}
.form-check-group.is-invalid {
  border: 1px solid #dc3545;
  padding: 0.5rem;
  border-radius: 0.5rem;
}
textarea {
  resize: none;
}