:root {
  --brand: #0d3b66;
  --brand-dark: #082744;
  --yes: #198754;
  --in-part: #ffc107;
  --no: #dc3545;
  --na: #adb5bd;
}

body { background: #f4f6f9; }

.app-navbar { background: linear-gradient(90deg, var(--brand), var(--brand-dark)); }

.login-wrap {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--brand), var(--brand-dark));
}
.login-card { max-width: 420px; width: 100%; border: none; border-radius: 14px; box-shadow: 0 20px 45px rgba(0,0,0,.25); }

.summary-card { border: none; border-radius: 14px; box-shadow: 0 4px 18px rgba(0,0,0,.06); }
.summary-card .icon-wrap {
  width: 52px; height: 52px; border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.4rem; color: #fff;
}

.question-card { border: none; border-radius: 12px; box-shadow: 0 2px 10px rgba(0,0,0,.05); margin-bottom: 1rem; }
.question-card .q-number {
  width: 34px; height: 34px; border-radius: 50%;
  background: var(--brand); color: #fff; display: inline-flex;
  align-items: center; justify-content: center; font-weight: 600; margin-right: .5rem; flex-shrink: 0;
}

.option-pill { border-radius: 999px !important; }

.option-yes.active, .btn-check:checked + .option-yes { background: var(--yes) !important; border-color: var(--yes) !important; color:#fff; }
.option-in_part.active, .btn-check:checked + .option-in_part { background: var(--in-part) !important; border-color: var(--in-part) !important; color:#111; }
.option-no.active, .btn-check:checked + .option-no { background: var(--no) !important; border-color: var(--no) !important; color:#fff; }
.option-na.active, .btn-check:checked + .option-na { background: var(--na) !important; border-color: var(--na) !important; color:#111; }

.badge-yes { background: var(--yes); }
.badge-in_part { background: var(--in-part); color:#111; }
.badge-no { background: var(--no); }
.badge-na { background: var(--na); color:#111; }

.heat-cell { width: 100%; height: 34px; border-radius: 6px; display:flex; align-items:center; justify-content:center; color:#fff; font-size:.75rem; font-weight:600; }

#formProgressBar { height: 10px; border-radius: 999px; }

.signature-pad-wrap canvas { border: 1px dashed #adb5bd; border-radius: 8px; background:#fff; cursor: crosshair; touch-action: none; }

.sticky-progress { position: sticky; top: 62px; z-index: 900; background: #f4f6f9; padding-top: .5rem; }

@media print {
  .app-navbar, .no-print, footer, .btn, nav { display: none !important; }
  body { background: #fff; }
  .question-card { box-shadow: none; border: 1px solid #ccc; page-break-inside: avoid; }
  main { padding: 0 !important; }
}
