.ccq { max-width: 820px; margin: 0 auto; padding: 16px; }
.ccq__title { font-size: 28px; margin: 0 0 16px; }

.ccq__kicker { font-size: 14px; opacity: .75; margin-bottom: 6px; }
.ccq__step-title { font-size: 18px; font-weight: 700; margin: 6px 0 10px; }
.ccq__question { font-size: 18px; margin: 0 0 14px; }

.ccq__info {
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 12px;
  padding: 12px;
  margin: 10px 0 16px;
  background: rgba(0,0,0,.03);
}
.ccq__info-label { font-weight: 700; margin-bottom: 6px; }
.ccq__info-text { line-height: 1.35; }
.ccq__a { text-decoration: underline; }

.ccq__opts { display: grid; gap: 10px; }

.ccq__opt {
  display: grid;
  grid-template-columns: 22px 1fr auto;
  align-items: center;
  gap: 10px;
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 14px;
  padding: 12px;
  cursor: pointer;
  user-select: none;
}
.ccq__opt--selected { border-color: rgba(0,0,0,.35); background: rgba(0,0,0,.03); }
.ccq__radio { margin: 0; }
.ccq__opt-text { line-height: 1.3; }

.ccq__badge {
  font-weight: 700;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.18);
  opacity: .55;
  min-width: 42px;
  text-align: center;
}
.ccq__badge--active {
  opacity: 1;
  border-color: rgba(0,0,0,.35);
}

.ccq__nav {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 10px;
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid rgba(0,0,0,.12);
}
.ccq__status { text-align: center; font-size: 16px; }
.ccq__status-label { opacity: .7; margin-right: 6px; }
.ccq__status-value { font-weight: 800; }

.ccq__btn {
  border: 1px solid rgba(0,0,0,.18);
  border-radius: 12px;
  padding: 10px 14px;
  cursor: pointer;
  font-weight: 700;
  background: white;
}
.ccq__btn:disabled { opacity: .5; cursor: not-allowed; }
.ccq__btn--primary { }
.ccq__btn--secondary { }

.ccq__hidden { display: none; }

.ccq__result { margin-top: 18px; }
.ccq__result-card {
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 16px;
  padding: 14px;
  background: rgba(0,0,0,.02);
}
.ccq__result-title { font-size: 22px; font-weight: 900; margin-bottom: 6px; }
.ccq__result-subtitle { font-size: 16px; opacity: .85; margin-bottom: 10px; }
.ccq__score { margin: 10px 0; }

.ccq__result-actions { margin: 12px 0 18px; }

.ccq__summary-title { font-size: 18px; margin: 0 0 10px; }
.ccq__summary { display: grid; gap: 10px; }

.ccq__summary-item {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 14px;
  padding: 12px;
}
.ccq__summary-title-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  align-items: baseline;
}
.ccq__summary-step { font-weight: 800; }
.ccq__summary-points { font-weight: 900; opacity: .9; }
.ccq__summary-answer { margin-top: 4px; opacity: .9; }
.ccq__linkbtn {
  border: none;
  background: transparent;
  text-decoration: underline;
  cursor: pointer;
  font-weight: 700;
  padding: 6px 8px;
}

.ccq__error {
  padding: 12px;
  border: 1px solid rgba(180, 0, 0, .35);
  border-radius: 12px;
}