/* TPC Quiz Studio 1.4.1 — front end */
.tpcqs-quiz,
.tpcqs-quiz * { box-sizing: border-box; }

.tpcqs-quiz {
  --tpcqs-ink: #243532;
  --tpcqs-copy: #4f625e;
  --tpcqs-muted: #71817e;
  --tpcqs-line: #d6e0de;
  --tpcqs-line: color-mix(in srgb, var(--tpcqs-accent) 22%, #d8dfdd);
  --tpcqs-line-strong: #b8cbc7;
  --tpcqs-line-strong: color-mix(in srgb, var(--tpcqs-accent) 44%, #c8d2d0);
  --tpcqs-correct: #1e6845;
  --tpcqs-correct-soft: #eef8f2;
  --tpcqs-wrong: #963c38;
  --tpcqs-wrong-soft: #fff2f0;
  --tpcqs-warning: #835a0c;
  --tpcqs-warning-soft: #fff8e9;
  --tpcqs-focus: #6048be;

  width: 100% !important;
  max-width: none !important;
  min-width: 0;
  margin: 0;
  padding: 0 0 1.25rem;
  color: var(--tpcqs-ink);
  font-family: inherit;
  font-size: 15.5px;
  font-weight: 400;
  line-height: 1.58;
  overflow-wrap: anywhere;
}

.tpcqs-quiz [hidden] { display: none !important; }
.tpcqs-quiz p,
.tpcqs-quiz h2,
.tpcqs-quiz h3,
.tpcqs-quiz h4,
.tpcqs-quiz ol,
.tpcqs-quiz ul,
.tpcqs-quiz form,
.tpcqs-quiz fieldset,
.tpcqs-quiz legend,
.tpcqs-quiz label,
.tpcqs-quiz section,
.tpcqs-quiz div { max-width: none; }
.tpcqs-quiz button,
.tpcqs-quiz input { font: inherit; }

.tpcqs-intro,
.tpcqs-intro > p,
.tpcqs-intro-copy,
.tpcqs-intro-copy > p,
.tpcqs-goal,
.tpcqs-meta {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.tpcqs-intro {
  margin: 0 0 0.9rem;
  padding: clamp(1rem, 2.5vw, 1.45rem);
  background: linear-gradient(135deg, var(--tpcqs-soft), #fff 76%);
  border: 1px solid var(--tpcqs-line);
  border-top: 3px solid var(--tpcqs-accent);
  border-radius: 12px;
  box-shadow: 0 4px 16px rgba(31, 54, 50, 0.045);
}

.tpcqs-kicker {
  margin: 0 0 0.38rem !important;
  color: var(--tpcqs-accent-text, var(--tpcqs-accent));
  font-size: 0.78rem;
  font-weight: 650;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}
.tpcqs-intro-copy { color: var(--tpcqs-copy); }
.tpcqs-intro-copy > :first-child { margin-top: 0; }
.tpcqs-intro-copy > :last-child { margin-bottom: 0; }
.tpcqs-goal {
  margin-top: 0.8rem !important;
  margin-bottom: 0 !important;
  color: var(--tpcqs-copy);
  font-size: 0.91rem;
}
.tpcqs-goal span {
  display: inline-block;
  margin-right: 0.48rem;
  color: var(--tpcqs-ink);
  font-weight: 650;
}
.tpcqs-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 0.82rem !important;
  margin-bottom: 0 !important;
  padding: 0;
  list-style: none;
}
.tpcqs-meta li {
  margin: 0;
  padding: 0.2rem 0.55rem;
  color: var(--tpcqs-muted);
  font-size: 0.78rem;
  line-height: 1.35;
  background: rgba(255,255,255,.8);
  border: 1px solid var(--tpcqs-line);
  border-radius: 999px;
}

.tpcqs-progress {
  display: grid;
  grid-template-columns: auto minmax(120px, 1fr);
  align-items: center;
  gap: 0.75rem;
  width: 100%;
  margin: 0 0 0.82rem;
  color: var(--tpcqs-muted);
  font-size: 0.8rem;
}
.tpcqs-progress-label strong { color: var(--tpcqs-ink); font-weight: 650; }
.tpcqs-progress-track {
  display: block;
  height: 5px;
  overflow: hidden;
  background: #e9efed;
  border-radius: 99px;
}
.tpcqs-progress-track span {
  display: block;
  width: 0;
  height: 100%;
  background: var(--tpcqs-accent);
  border-radius: inherit;
  transition: width 180ms ease;
}

.tpcqs-form { width: 100%; margin: 0; }
.tpcqs-question {
  min-width: 0;
  width: 100%;
  margin: 0 0 0.78rem;
  padding: clamp(0.88rem, 2vw, 1.08rem);
  position: relative;
  background: #fff;
  border: 0;
  border-radius: 11px;
  box-shadow: 0 3px 12px rgba(31, 54, 50, 0.038);
}
.tpcqs-question::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  border: 1px solid var(--tpcqs-line);
  border-radius: inherit;
}
.tpcqs-question > * { position: relative; z-index: 1; }
.tpcqs-question legend {
  display: flex;
  float: left;
  align-items: flex-start;
  width: 100%;
  margin: 0 0 0.72rem;
  padding: 0;
  color: var(--tpcqs-ink);
  font-size: 1rem;
  font-weight: 620;
  line-height: 1.45;
}
.tpcqs-question legend + * { clear: both; }
.tpcqs-number {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 1.68rem;
  height: 1.68rem;
  margin: 0.02rem 0.62rem 0 0;
  color: var(--tpcqs-accent);
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1;
  background: var(--tpcqs-soft);
  border: 1px solid var(--tpcqs-line-strong);
  border-radius: 50%;
}
.tpcqs-legend-copy { display: grid; gap: 0.13rem; min-width: 0; }
.tpcqs-stage {
  color: var(--tpcqs-muted);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.045em;
  line-height: 1.2;
  text-transform: uppercase;
}
.tpcqs-prompt { display: block; }
.tpcqs-hint {
  margin: -0.12rem 0 0.65rem 2.3rem;
  color: var(--tpcqs-copy);
  font-size: 0.84rem;
}
.tpcqs-hint summary {
  width: fit-content;
  color: var(--tpcqs-accent-text, var(--tpcqs-accent));
  cursor: pointer;
  text-decoration: underline;
  text-decoration-color: rgba(70, 89, 84, .55);
  text-decoration-color: color-mix(in srgb, var(--tpcqs-accent) 45%, transparent);
  text-underline-offset: 0.16em;
}
.tpcqs-hint p { margin: 0.35rem 0 0 !important; padding: 0.5rem 0.65rem; background: var(--tpcqs-soft); border-left: 2px solid var(--tpcqs-accent); }
.tpcqs-options { display: grid; gap: 0.42rem; width: 100%; }
.tpcqs-option {
  display: grid;
  grid-template-columns: 1.05rem 1.55rem minmax(0, 1fr);
  align-items: start;
  gap: 0.5rem;
  width: 100%;
  margin: 0;
  padding: 0.59rem 0.67rem;
  color: var(--tpcqs-ink);
  font-size: 0.91rem;
  font-weight: 400;
  line-height: 1.45;
  cursor: pointer;
  background: #fff;
  border: 1px solid #d9e3e0;
  border-radius: 8px;
  transition: border-color 140ms ease, background-color 140ms ease, box-shadow 140ms ease;
}
.tpcqs-option:hover { background: var(--tpcqs-soft); border-color: var(--tpcqs-line-strong); }
.tpcqs-option:focus-within { border-color: var(--tpcqs-focus); box-shadow: 0 0 0 3px rgba(96,72,190,.16); }
.tpcqs-option input { width: 1rem; height: 1rem; margin: 0.18rem 0 0; accent-color: var(--tpcqs-accent); }
.tpcqs-letter {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.45rem;
  height: 1.45rem;
  color: var(--tpcqs-muted);
  font-size: 0.73rem;
  font-weight: 650;
  background: #f5f7f6;
  border: 1px solid #d9e3e0;
  border-radius: 5px;
}
.tpcqs-option.is-selected { background: var(--tpcqs-soft); border-color: var(--tpcqs-accent); }
.tpcqs-option.is-selected .tpcqs-letter { color: #fff; background: var(--tpcqs-accent); border-color: var(--tpcqs-accent); }
.tpcqs-question.is-unanswered { background: var(--tpcqs-warning-soft); }
.tpcqs-question.is-unanswered::before { border-color: #d8b36b; }
.tpcqs-question.is-correct::before { border-left: 4px solid var(--tpcqs-correct); }
.tpcqs-question.is-incorrect::before { border-left: 4px solid var(--tpcqs-wrong); }
.tpcqs-option.is-correct-answer { background: var(--tpcqs-correct-soft); border-color: #84b69a; }
.tpcqs-option.is-selected-wrong { background: var(--tpcqs-wrong-soft); border-color: #d19a96; }
.tpcqs-feedback {
  margin: 0.62rem 0 0 !important;
  padding: 0.5rem 0.62rem;
  font-size: 0.84rem;
  border-radius: 7px;
}
.tpcqs-feedback.is-correct { color: var(--tpcqs-correct); background: var(--tpcqs-correct-soft); border: 1px solid #b9d8c5; }
.tpcqs-feedback.is-incorrect { color: var(--tpcqs-wrong); background: var(--tpcqs-wrong-soft); border: 1px solid #e2b8b5; }

.tpcqs-alert {
  width: 100%;
  margin: 0.9rem 0 0 !important;
  padding: 0.65rem 0.75rem;
  color: var(--tpcqs-warning);
  text-align: center;
  background: var(--tpcqs-warning-soft);
  border: 1px solid #dec17c;
  border-radius: 8px;
}
.tpcqs-primary-action { display: flex; justify-content: center; margin: 1.05rem 0 0; }
.tpcqs-finish {
  min-height: 2.65rem;
  margin: 0;
  padding: 0.62rem 1.15rem;
  color: #fff;
  font-size: 0.94rem;
  font-weight: 680;
  cursor: pointer;
  background: var(--tpcqs-accent);
  border: 1px solid var(--tpcqs-accent);
  border-radius: 8px;
  box-shadow: 0 4px 11px rgba(31, 54, 50, .13);
  box-shadow: 0 4px 11px color-mix(in srgb, var(--tpcqs-accent) 22%, transparent);
}
.tpcqs-finish:hover { filter: brightness(.9); }
.tpcqs-finish:disabled { cursor: default; opacity: .64; filter: none; }
.tpcqs-form.is-locked .tpcqs-option { cursor: default; }
.tpcqs-form.is-locked .tpcqs-option:hover:not(.is-correct-answer):not(.is-selected-wrong) { background: #fff; border-color: #d9e3e0; }
.tpcqs-form.is-locked .tpcqs-option.is-selected,
.tpcqs-form.is-locked .tpcqs-option.is-correct-answer,
.tpcqs-form.is-locked .tpcqs-option.is-selected-wrong { cursor: default; }
.tpcqs-finish:focus-visible,
.tpcqs-secondary-actions button:focus-visible { outline: 3px solid rgba(96,72,190,.28); outline-offset: 3px; }

.tpcqs-results {
  width: 100%;
  margin: 1.25rem 0 0;
  padding: clamp(0.95rem, 2.4vw, 1.25rem);
  background: #fbfdfc;
  border: 1px solid var(--tpcqs-line-strong);
  border-radius: 12px;
  box-shadow: 0 4px 16px rgba(31,54,50,.045);
}
.tpcqs-result-summary { padding-bottom: 0.82rem; border-bottom: 1px solid var(--tpcqs-line); }
.tpcqs-result-kicker { margin: 0 0 0.18rem !important; color: var(--tpcqs-accent-text, var(--tpcqs-accent)); font-size: 0.73rem; font-weight: 650; letter-spacing: .05em; text-transform: uppercase; }
.tpcqs-score { margin: 0 !important; color: var(--tpcqs-ink); font-size: 1.16rem; font-weight: 660; line-height: 1.35; }
.tpcqs-result-message { margin: 0.3rem 0 0 !important; color: var(--tpcqs-copy); font-size: 0.91rem; }
.tpcqs-learning-summary { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 0.7rem; margin: 0.82rem 0; }
.tpcqs-learning-summary > div { padding: 0.72rem; background: #fff; border: 1px solid var(--tpcqs-line); border-radius: 8px; }
.tpcqs-learning-summary h3 { margin: 0 0 0.35rem !important; font-size: 0.87rem; font-weight: 650; }
.tpcqs-learning-summary ul { margin: 0 !important; padding-left: 1.05rem; color: var(--tpcqs-copy); font-size: 0.82rem; }
.tpcqs-learning-summary li + li { margin-top: 0.22rem; }
.tpcqs-review { margin: 0.9rem 0 0 !important; padding: 0; list-style: none; }
.tpcqs-review-item { margin: 0 0 0.65rem; padding: 0.75rem; background: #fff; border: 1px solid var(--tpcqs-line); border-radius: 8px; }
.tpcqs-review-item:last-child { margin-bottom: 0; }
.tpcqs-review-item > h3 { margin: 0 0 0.28rem !important; font-size: 0.9rem; font-weight: 650; line-height: 1.42; }
.tpcqs-review-answer { margin: 0 0 0.52rem !important; color: var(--tpcqs-copy); font-size: 0.82rem; }
.tpcqs-explanation-part { margin-top: 0.46rem; padding-top: 0.46rem; border-top: 1px dashed var(--tpcqs-line); }
.tpcqs-explanation-part h4 { margin: 0 0 0.12rem !important; color: var(--tpcqs-accent-text, var(--tpcqs-accent)); font-size: 0.75rem; font-weight: 650; letter-spacing: .025em; }
.tpcqs-explanation-part p { margin: 0 !important; color: var(--tpcqs-copy); font-size: 0.84rem; }
.tpcqs-secondary-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0.9rem 0 0; }
.tpcqs-secondary-actions button {
  min-height: 2.15rem;
  padding: 0.43rem 0.72rem;
  color: var(--tpcqs-accent);
  font-size: 0.82rem;
  font-weight: 580;
  cursor: pointer;
  background: #fff;
  border: 1px solid var(--tpcqs-line-strong);
  border-radius: 7px;
}
.tpcqs-secondary-actions button:hover { background: var(--tpcqs-soft); }
.tpcqs-manual-content { width: 100%; max-width: none; margin-top: 1.1rem; }
.tpcqs-editor-warning,
.tpcqs-noscript { padding: 0.75rem; color: var(--tpcqs-warning); background: var(--tpcqs-warning-soft); border: 1px solid #dec17c; border-radius: 8px; }

.tpcqs-index { width: 100%; max-width: none; }
.tpcqs-index [hidden] { display: none !important; }
.tpcqs-index-search { display: grid; gap: 0.28rem; margin: 0 0 0.8rem; color: var(--tpcqs-copy); font-size: 0.8rem; }
.tpcqs-index-search input { width: 100%; min-height: 2.35rem; padding: 0.48rem 0.65rem; border: 1px solid #ccd8d5; border-radius: 8px; }
.tpcqs-index-list { display: grid; gap: 0.55rem; }
.tpcqs-index-card { display: grid; grid-template-columns: 2.7rem minmax(0,1fr); gap: 0.7rem; align-items: start; padding: 0.72rem; background: #fff; border: 1px solid #dae3e1; border-radius: 9px; }
.tpcqs-index-number { display: inline-flex; align-items: center; justify-content: center; min-height: 2rem; color: var(--tpcqs-accent, #5f4a8b); font-size: 0.76rem; font-weight: 650; background: var(--tpcqs-soft, #f4f1f8); border-radius: 6px; }
.tpcqs-index-card h3 { margin: 0 !important; font-size: 0.94rem; font-weight: 630; }
.tpcqs-index-card p { margin: 0.2rem 0 0 !important; color: #5d6c69; font-size: 0.82rem; }
.tpcqs-index-card a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .17em; }
.tpcqs-index-status { margin: -.35rem 0 .65rem !important; color: #687774; font-size: .78rem; }
.tpcqs-index-empty { margin: .75rem 0 0 !important; padding: .7rem; color: #5d6c69; text-align: center; background: #f6f8f7; border: 1px solid #dae3e1; border-radius: 8px; }

@media (max-width: 640px) {
  .tpcqs-quiz { font-size: 15px; }
  .tpcqs-progress { grid-template-columns: 1fr; gap: 0.35rem; }
  .tpcqs-question { padding: 0.82rem; }
  .tpcqs-option { grid-template-columns: 1rem 1.45rem minmax(0,1fr); gap: 0.42rem; padding: 0.56rem; }
  .tpcqs-hint { margin-left: 0; }
  .tpcqs-learning-summary { grid-template-columns: 1fr; }
  .tpcqs-secondary-actions button { flex: 1 1 8rem; }
}

@media (prefers-reduced-motion: reduce) {
  .tpcqs-quiz *, .tpcqs-quiz *::before, .tpcqs-quiz *::after { scroll-behavior: auto !important; transition: none !important; }
}

@media print {
  .tpcqs-progress,
  .tpcqs-primary-action,
  .tpcqs-secondary-actions,
  .tpcqs-hint,
  .tpcqs-alert,
  .tpcqs-manual-content { display: none !important; }

  /* Direct Ctrl+P produces a clean worksheet. The explicit Print Results
     action adds body.tpc-print-results-mode before invoking browser print. */
  body:not(.tpc-print-results-mode) .tpcqs-results { display: none !important; }
  body:not(.tpc-print-results-mode) .tpcqs-feedback { display: none !important; }
  body.tpc-print-results-mode .tpcqs-form,
  body.tpc-print-results-mode .tpcqs-intro { display: none !important; }

  .tpcqs-quiz,
  .tpcqs-intro,
  .tpcqs-question,
  .tpcqs-results,
  .tpcqs-review-item { box-shadow: none !important; }

  .tpcqs-question,
  .tpcqs-review-item,
  .tpcqs-explanation-part { break-inside: avoid !important; page-break-inside: avoid !important; }
}

/* The active TPC theme owns the outer page shell and spacing.
   Quiz Studio only supplies the subject-aware H1 color within that shell. */
body.tpcqs-single-quiz :where(h1.entry-title, h1.wp-block-post-title, .entry-header h1) {
  color: var(--tpcqs-page-accent, #438D82);
}
