:root {
  --brand-red: #c8102e;
  --brand-dark: #1a1a1a;
}

body {
  background: #f4f5f7;
}

.brand-bar {
  background: var(--brand-dark);
  color: #fff;
  border-bottom: 3px solid var(--brand-red);
}

.brand-logo {
  color: #fff;
  font-weight: 700;
  font-size: 1.15rem;
  letter-spacing: .02em;
}

.site-footer {
  color: #6c757d;
  border-top: 1px solid #e2e5e9;
  background: #fff;
}

.footer-credit-link {
  color: inherit;
  text-decoration: none;
  font-weight: 600;
}
.footer-credit-link:hover {
  text-decoration: underline;
}

.auth-card {
  max-width: 420px;
  margin: 3.5rem auto;
}

.form-card {
  max-width: 900px;
  margin: 1.5rem auto;
}

.section-nav .nav-link {
  text-align: left;
}
.section-nav .nav-link.active {
  background: var(--brand-red);
  color: #fff;
}

.save-indicator {
  font-size: .85rem;
}

.upload-slot {
  border: 1px dashed #adb5bd;
  border-radius: .5rem;
  padding: .75rem;
}
.upload-slot.has-file {
  border-style: solid;
  border-color: #198754;
  background: #f1fbf5;
}

.readonly-banner {
  position: sticky;
  top: 0;
  z-index: 20;
}

.repeater-row {
  background: #fafbfc;
  border-color: #dee2e6 !important;
}
.repeater-row .btn-close {
  font-size: .65rem;
}

#overall-progress-bar {
  transition: width .3s ease;
  font-size: .75rem;
  font-weight: 600;
}

.step-nav .btn {
  min-width: 7rem;
}

.meta-card .form-label {
  font-weight: 600;
}
.meta-card .form-text {
  font-size: .8rem;
}

@media (max-width: 767.98px) {
  .form-card { margin: 0; }
  .section-nav { margin-bottom: 1rem; }
  .step-nav .btn { min-width: 45%; }
}
