:root {
  color-scheme: light;
  --navy-950: #06283d;
  --navy-900: #083b5c;
  --navy-800: #0b4a70;
  --sky-500: #1496d4;
  --sky-100: #dff3fc;
  --amber-500: #e8a317;
  --amber-100: #fff4d6;
  --red-600: #c83d4f;
  --green-700: #237a57;
  --ink: #17232d;
  --muted: #607180;
  --line: #d8e0e6;
  --panel: #ffffff;
  --page: #edf2f5;
  --shadow: 0 12px 32px rgba(6, 40, 61, 0.11);
}

* {
  box-sizing: border-box;
}

html {
  min-height: 100%;
  background: var(--page);
  font-family:
    Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
    sans-serif;
  color: var(--ink);
}

body {
  min-height: 100vh;
  margin: 0;
  background:
    linear-gradient(180deg, #e4edf2 0, var(--page) 220px),
    var(--page);
}

button,
select,
input {
  font: inherit;
}

button {
  cursor: pointer;
}

button:focus-visible,
select:focus-visible,
input:focus-visible,
.choice-hit:focus-visible {
  outline: 3px solid rgba(20, 150, 212, 0.35);
  outline-offset: 2px;
}

.shell {
  min-height: 100vh;
}

.topbar {
  display: flex;
  min-height: 68px;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 12px clamp(18px, 4vw, 52px);
  color: white;
  background: var(--navy-950);
  border-bottom: 4px solid var(--sky-500);
}

.brand-kicker {
  margin: 0 0 2px;
  color: #8bd4f4;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.brand-title {
  margin: 0;
  font-size: clamp(1rem, 2.4vw, 1.25rem);
  font-weight: 720;
  letter-spacing: -0.01em;
}

.header-status {
  display: flex;
  align-items: center;
  gap: 8px;
}

.version-chip {
  display: inline-flex;
  min-height: 28px;
  align-items: center;
  padding: 4px 9px;
  border: 1px solid rgba(139, 212, 244, 0.45);
  border-radius: 999px;
  color: #bfe9fb;
  background: rgba(20, 150, 212, 0.12);
  font-size: 0.72rem;
  font-weight: 760;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.header-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 36px;
  padding: 7px 12px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 999px;
  color: #d9f2fc;
  font-size: 0.85rem;
  white-space: nowrap;
}

.header-chip::before {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #4ade80;
  content: "";
}

.workspace {
  width: min(1180px, calc(100% - 32px));
  margin: 0 auto;
  padding: clamp(24px, 5vw, 48px) 0 56px;
}

.home-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.65fr);
  gap: 22px;
  align-items: start;
}

.card {
  background: var(--panel);
  border: 1px solid rgba(8, 59, 92, 0.12);
  border-radius: 16px;
  box-shadow: var(--shadow);
}

.start-card {
  overflow: hidden;
}

.start-heading {
  padding: clamp(24px, 5vw, 42px);
  background:
    radial-gradient(circle at 88% 18%, rgba(56, 189, 248, 0.22), transparent 31%),
    linear-gradient(145deg, #083b5c, #06283d);
  color: white;
}

.eyebrow {
  margin: 0 0 10px;
  color: #8bd4f4;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.start-heading h1,
.results-heading h1 {
  max-width: 720px;
  margin: 0;
  font-size: clamp(1.8rem, 4vw, 3rem);
  line-height: 1.05;
  letter-spacing: -0.045em;
}

.start-heading p {
  max-width: 680px;
  margin: 15px 0 0;
  color: #d6e9f2;
  font-size: 1rem;
  line-height: 1.55;
}

.start-body {
  padding: clamp(22px, 4vw, 36px);
}

.facts {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-bottom: 28px;
}

.fact {
  min-height: 82px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #f8fafb;
}

.fact strong {
  display: block;
  margin-bottom: 3px;
  color: var(--navy-900);
  font-size: 1.35rem;
}

.fact span {
  color: var(--muted);
  font-size: 0.85rem;
  line-height: 1.3;
}

.form-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: end;
}

.field label {
  display: block;
  margin-bottom: 7px;
  color: #334754;
  font-size: 0.86rem;
  font-weight: 750;
}

.field select {
  width: 100%;
  min-height: 46px;
  padding: 0 40px 0 13px;
  border: 1px solid #bcc9d2;
  border-radius: 9px;
  color: var(--ink);
  background: white;
}

.button {
  display: inline-flex;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 18px;
  border: 1px solid #b9cad5;
  color: var(--navy-900);
  background: white;
  border-radius: 9px;
  font-weight: 760;
  text-decoration: none;
  transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease;
}

.button:hover {
  transform: translateY(-1px);
}

.button-primary {
  border-color: transparent;
  color: white;
  background: var(--sky-500);
  box-shadow: 0 8px 18px rgba(20, 150, 212, 0.22);
}

.button-primary:hover {
  background: #0e86bf;
}

.button-secondary {
  color: var(--navy-900);
  border-color: #b9cad5;
  background: white;
}

.button-danger {
  border-color: transparent;
  color: white;
  background: var(--red-600);
}

.button-quiet {
  min-height: 38px;
  padding: 7px 11px;
  color: var(--navy-900);
  border-color: #cad5dc;
  background: #f8fafb;
  font-size: 0.88rem;
}

.resume-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 18px;
  padding: 16px;
  border: 1px solid #8bcce8;
  border-radius: 11px;
  background: var(--sky-100);
}

.resume-banner strong,
.resume-banner span {
  display: block;
}

.resume-banner span {
  margin-top: 3px;
  color: #375867;
  font-size: 0.88rem;
}

.note {
  margin: 18px 0 0;
  color: var(--muted);
  font-size: 0.86rem;
  line-height: 1.5;
}

.side-card {
  padding: 22px;
}

.side-card + .side-card {
  margin-top: 18px;
}

.section-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 16px;
  color: var(--navy-900);
  font-size: 1.03rem;
}

.status-pill {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 4px 8px;
  border-radius: 999px;
  color: #8a5a00;
  background: var(--amber-100);
  font-size: 0.75rem;
  font-weight: 800;
}

.baseline-summary {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.mini-stat {
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 9px;
}

.mini-stat strong {
  display: block;
  color: var(--navy-900);
  font-size: 1.18rem;
}

.mini-stat span {
  color: var(--muted);
  font-size: 0.79rem;
}

.attempt-list {
  display: grid;
  gap: 9px;
}

.attempt-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px;
  align-items: center;
  width: 100%;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 9px;
  color: inherit;
  background: #fbfcfd;
  text-align: left;
}

.attempt-row:hover {
  border-color: #84bfd9;
  background: #f3faff;
}

.attempt-row strong,
.attempt-row span {
  display: block;
}

.attempt-row span,
.attempt-score small {
  margin-top: 2px;
  color: var(--muted);
  font-size: 0.78rem;
}

.attempt-score {
  color: var(--navy-900);
  font-weight: 820;
  text-align: right;
}

.utility-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
}

.empty-state {
  padding: 18px;
  border: 1px dashed #bdcbd4;
  border-radius: 10px;
  color: var(--muted);
  text-align: center;
}

/* Exam surface */
.exam-shell {
  min-height: 100vh;
  background: #f1f4f6;
}

.exam-header {
  position: sticky;
  z-index: 30;
  top: 0;
  color: white;
  background: var(--navy-900);
  box-shadow: 0 4px 16px rgba(6, 40, 61, 0.22);
}

.exam-header-main {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 18px;
  align-items: center;
  min-height: 64px;
  padding: max(9px, env(safe-area-inset-top)) clamp(16px, 3vw, 34px) 9px;
}

.exam-item-label,
.exam-name,
.timer-label,
.timer {
  display: block;
}

.exam-item-label,
.timer-label {
  color: #b9d6e4;
  font-size: 0.76rem;
  font-weight: 700;
}

.exam-name {
  font-size: 0.95rem;
  font-weight: 760;
  text-align: center;
}

.timer-wrap {
  text-align: right;
}

.timer-line {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}

.pause-button {
  min-height: 32px;
  padding: 5px 10px;
  border: 1px solid rgba(255, 255, 255, 0.42);
  border-radius: 7px;
  color: white;
  background: rgba(255, 255, 255, 0.08);
  font-size: 0.82rem;
  font-weight: 760;
}

.pause-button:hover {
  background: rgba(255, 255, 255, 0.16);
}

.timer {
  font-variant-numeric: tabular-nums;
  font-weight: 820;
}

.timer.warning {
  color: #ffd98a;
}

.exam-progress {
  height: 4px;
  background: rgba(255, 255, 255, 0.13);
}

.exam-progress span {
  display: block;
  height: 100%;
  background: var(--sky-500);
  transition: width 180ms ease;
}

.exam-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 270px;
  gap: 18px;
  width: min(1480px, calc(100% - 28px));
  margin: 0 auto;
  padding: 18px 0 24px;
  align-items: start;
}

.exam-layout.navigator-hidden {
  grid-template-columns: minmax(0, 1fr);
}

.exam-layout.navigator-hidden .navigator {
  display: none;
}

.question-panel {
  min-width: 0;
  overflow: hidden;
  background: white;
  border: 1px solid #d5dee4;
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(6, 40, 61, 0.08);
}

.question-tools {
  display: flex;
  min-height: 62px;
  flex-direction: column;
  align-items: stretch;
  gap: 6px;
  padding: 8px 14px;
  border-bottom: 1px solid var(--line);
  background: #f8fafb;
}

.question-tool-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.reading-controls {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.navigator-toggle {
  display: inline-flex;
  margin-right: 4px;
}

.pause-backdrop {
  position: fixed;
  z-index: 80;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(5, 27, 42, 0.76);
  backdrop-filter: blur(6px);
}

.pause-card {
  width: min(420px, 100%);
  padding: 30px;
  border-radius: 16px;
  background: white;
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.3);
  text-align: center;
}

.pause-card .eyebrow {
  color: var(--sky-500);
}

.pause-card h2 {
  margin: 0;
  color: var(--navy-900);
}

.pause-card p:not(.eyebrow) {
  margin: 10px 0 22px;
  color: var(--muted);
}

.zoom-label {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 700;
}

.zoom-button {
  width: 34px;
  height: 34px;
  padding: 0;
  border: 1px solid #c5d1d8;
  border-radius: 7px;
  color: var(--navy-900);
  background: white;
  font-size: 1.2rem;
  font-weight: 760;
  line-height: 1;
}

.zoom-button:disabled {
  color: #9aa7af;
  background: #eef2f4;
  cursor: default;
}

.zoom-value {
  min-width: 48px;
  color: #304653;
  font-size: 0.78rem;
  font-weight: 760;
  text-align: center;
}

.mark-control {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #304653;
  font-weight: 720;
}

.mark-control input {
  width: 18px;
  height: 18px;
  accent-color: var(--amber-500);
}

.question-meta {
  color: var(--muted);
  font-size: 0.8rem;
  font-variant-numeric: tabular-nums;
  line-height: 1.35;
}

.question-scroll {
  overflow-x: auto;
  padding: clamp(12px, 2vw, 22px);
  scroll-padding: 24px;
}

.question-stage {
  position: relative;
  width: 100%;
  min-width: 720px;
  margin: 0 auto;
  line-height: 0;
}

.question-image {
  display: block;
  width: 100%;
  height: auto;
  user-select: none;
  -webkit-user-drag: none;
}

.native-question-stage {
  min-width: 0;
  max-width: 980px;
  line-height: 1.5;
}

.native-question-content {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0 10px;
  padding: clamp(18px, 3vw, 34px);
  color: #142f40;
  font-size: calc(1rem * var(--native-question-scale, 1));
}

.native-question-number,
.native-question-stem {
  margin: 0;
  font-weight: 650;
  line-height: 1.62;
}

.native-choice-list {
  grid-column: 2;
  display: grid;
  gap: 8px;
  margin-top: 20px;
}

.native-choice-row {
  display: grid;
  grid-template-columns: 24px 28px minmax(0, 1fr);
  align-items: start;
  gap: 8px;
  padding: 10px 12px;
  border: 1px solid transparent;
  border-radius: 10px;
  cursor: pointer;
  line-height: 1.45;
}

.native-choice-row.selected {
  border-color: #9bd3ea;
  background: #eff9fd;
}

.native-choice-row .native-choice-hit {
  position: static;
  width: 20px;
  height: 20px;
  margin-top: 2px;
  transform: none;
  box-shadow: none !important;
}

.native-choice-row .native-choice-hit:hover,
.native-choice-row .native-choice-hit:checked {
  box-shadow: none !important;
}

.native-choice-row.correct {
  border-color: #91cfb2;
  background: #eef9f3;
}

.native-choice-row.eliminated {
  border-color: #e7aab2;
  background: #fff2f4;
  color: #8c3440;
}

.native-choice-row:has(input:disabled) {
  cursor: default;
}

.choice-hit {
  position: absolute;
  width: clamp(18px, 1.55vw, 22px);
  height: clamp(18px, 1.55vw, 22px);
  margin: 0;
  padding: 0;
  transform: translate(-50%, -50%);
  appearance: none;
  border: 2px solid #9aa8b2;
  border-radius: 50%;
  background: white;
  box-shadow: 0 0 0 16px white;
  cursor: pointer;
  z-index: 2;
}

.choice-row-hit {
  position: absolute;
  left: 1%;
  right: 1%;
  height: max(34px, 5.25%);
  transform: translateY(-50%);
  border-radius: 8px;
  cursor: pointer;
  z-index: 1;
}

.choice-row-hit:hover {
  background: rgba(20, 150, 212, 0.08);
}

.choice-row-hit.disabled {
  pointer-events: none;
}

.choice-hit:focus-visible {
  outline: 2px solid var(--sky-500);
  outline-offset: 3px;
}

.choice-hit:checked {
  border: 5px solid var(--sky-500);
  background: white;
}

.question-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 13px 14px;
  border-top: 1px solid var(--line);
  background: #f8fafb;
}

.block-review-workspace {
  width: min(860px, calc(100% - 28px));
  margin: 0 auto;
  padding: clamp(24px, 6vw, 72px) 0;
}

.block-review-card {
  padding: clamp(22px, 4vw, 38px);
}

.block-review-card h1 {
  margin: 4px 0 6px;
  color: var(--navy-900);
  font-size: clamp(1.7rem, 4vw, 2.5rem);
}

.block-review-summary {
  margin: 0 0 22px;
  color: var(--muted);
}

.block-review-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.review-pool-button {
  min-height: 108px;
  padding: 18px;
  border: 1px solid #b9cbd5;
  border-radius: 12px;
  color: var(--navy-900);
  background: #f8fbfc;
  text-align: left;
  cursor: pointer;
}

.review-pool-button:hover:not(:disabled) {
  border-color: var(--sky-500);
  background: #edf8fd;
}

.review-pool-button:disabled {
  opacity: 0.52;
  cursor: default;
}

.review-pool-button strong,
.review-pool-button span {
  display: block;
}

.review-pool-button strong {
  margin-bottom: 8px;
  font-size: 1rem;
}

.review-pool-button span {
  color: var(--muted);
}

.block-review-footer {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 22px;
}

@media (max-width: 680px) {
  .block-review-actions { grid-template-columns: 1fr; }
  .block-review-footer { align-items: stretch; flex-direction: column; }
}

.nav-pair {
  display: flex;
  gap: 8px;
}

.navigator {
  position: sticky;
  top: 86px;
  padding: 16px;
  background: white;
  border: 1px solid #d5dee4;
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(6, 40, 61, 0.08);
}

.navigator-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 12px;
}

.navigator-title strong {
  color: var(--navy-900);
}

.navigator-title span {
  color: var(--muted);
  font-size: 0.78rem;
}

.question-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 7px;
}

.qnav {
  position: relative;
  aspect-ratio: 1;
  min-width: 0;
  border: 1px solid #c8d3da;
  border-radius: 7px;
  color: #3c505d;
  background: #f7f9fa;
  font-size: 0.82rem;
  font-weight: 740;
}

.qnav:hover:not(:disabled) {
  border-color: var(--sky-500);
}

.qnav.answered {
  color: white;
  border-color: var(--navy-800);
  background: var(--navy-800);
}

.qnav.marked::after {
  position: absolute;
  top: 3px;
  right: 3px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--amber-500);
  box-shadow: 0 0 0 2px white;
  content: "";
}

.qnav.current {
  outline: 3px solid rgba(20, 150, 212, 0.35);
  outline-offset: 1px;
}

.qnav:disabled {
  color: #98a5ad;
  border-style: dashed;
  background: #eef1f3;
  cursor: not-allowed;
}

.qnav.locked {
  color: #5d6b74;
  border-style: solid;
  background: repeating-linear-gradient(135deg, #eef1f3, #eef1f3 5px, #e2e8ec 5px, #e2e8ec 10px);
}

.legend {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px 12px;
  margin-top: 14px;
  color: var(--muted);
  font-size: 0.74rem;
}

.legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.legend i {
  width: 10px;
  height: 10px;
  border: 1px solid #b7c4cc;
  border-radius: 3px;
  background: #f7f9fa;
}

.legend .legend-answered {
  border-color: var(--navy-800);
  background: var(--navy-800);
}

.legend .legend-marked {
  border-color: var(--amber-500);
  border-radius: 50%;
  background: var(--amber-500);
}

.keyboard-note {
  margin: 14px 0 0;
  color: var(--muted);
  font-size: 0.74rem;
  line-height: 1.45;
}

/* Results */
.results-heading {
  padding: 28px clamp(24px, 5vw, 42px);
  color: white;
  background: linear-gradient(140deg, var(--navy-900), var(--navy-950));
  border-radius: 16px 16px 0 0;
}

.results-heading p {
  margin: 12px 0 0;
  color: #d6e9f2;
}

.results-body {
  padding: clamp(20px, 4vw, 36px);
}

.metric-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
  margin-bottom: 24px;
}

.metric {
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #f9fbfc;
}

.metric strong {
  display: block;
  color: var(--navy-900);
  font-size: clamp(1.35rem, 3vw, 2rem);
  letter-spacing: -0.03em;
}

.metric span {
  color: var(--muted);
  font-size: 0.82rem;
}

.pending-callout {
  margin-bottom: 22px;
  padding: 14px 16px;
  border: 1px solid #e8c470;
  border-radius: 10px;
  color: #704c08;
  background: var(--amber-100);
  line-height: 1.48;
}

.results-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 20px;
}

.attempt-passes-card {
  margin: 0 0 24px;
  padding: 18px;
  border: 1px solid #9fcddd;
  border-radius: 12px;
  background: linear-gradient(145deg, #f7fcfe, #eef8fb);
}

.attempt-passes-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 14px;
}

.attempt-passes-head h2,
.attempt-passes-head p {
  margin: 0;
}

.attempt-passes-head h2 {
  color: var(--navy-950);
  font-size: 1.15rem;
}

.attempt-passes-head > p {
  max-width: 650px;
  color: var(--muted);
  font-size: 0.84rem;
  line-height: 1.45;
}

.attempt-pass-list {
  display: grid;
  gap: 8px;
}

.attempt-pass-row {
  display: grid;
  grid-template-columns: 34px minmax(180px, 1.4fr) repeat(4, minmax(100px, 0.75fr));
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid #cfdee5;
  border-radius: 10px;
  background: #fff;
}

.attempt-pass-row > span:not(.attempt-pass-name):not(.attempt-pass-number) {
  text-align: center;
}

.attempt-pass-row strong,
.attempt-pass-row small {
  display: block;
}

.attempt-pass-row small {
  margin-top: 2px;
  color: var(--muted);
  font-size: 0.75rem;
  line-height: 1.3;
}

.attempt-pass-number {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--navy-800);
  font-weight: 800;
}

.attempt-passes-note {
  margin: 12px 0 0;
  color: var(--muted);
  font-size: 0.78rem;
}

.review-progress-card {
  margin: 0 0 24px;
  padding: 18px;
  border: 1px solid #c8d8e1;
  border-radius: 12px;
  background: linear-gradient(145deg, #f7fbfd, #eef6fa);
}

.review-progress-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 14px;
}

.review-progress-head h2,
.review-progress-head p {
  margin: 0;
}

.review-progress-head h2 {
  color: var(--navy-950);
  font-size: 1.15rem;
}

.review-progress-head > p {
  max-width: 560px;
  color: var(--muted);
  font-size: 0.86rem;
  line-height: 1.45;
}

.review-pass-list {
  display: grid;
  gap: 8px;
}

.review-pass-entry {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: stretch;
  gap: 8px;
}

.review-pass-retake {
  align-self: stretch;
  min-width: 112px;
  white-space: nowrap;
}

.review-pass-row {
  display: grid;
  width: 100%;
  grid-template-columns: minmax(210px, 1.7fr) repeat(5, minmax(86px, 0.65fr));
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid #cfdae0;
  border-radius: 10px;
  color: var(--ink);
  background: white;
  text-align: left;
}

.review-pass-row:hover {
  border-color: #7eabbf;
  box-shadow: 0 4px 14px rgba(9, 56, 80, 0.08);
}

.review-pass-row > span:not(.review-pass-identity) {
  text-align: center;
}

.review-pass-row strong,
.review-pass-row small {
  display: block;
}

.review-pass-row strong {
  color: var(--navy-900);
  font-size: 1rem;
}

.review-pass-identity strong {
  font-size: 0.96rem;
}

.review-pass-row small {
  margin-top: 2px;
  color: var(--muted);
  font-size: 0.73rem;
  line-height: 1.25;
}

.review-pass-percent strong {
  font-size: 1.25rem;
}

.review-pass-gain strong {
  color: var(--green-700);
}

.review-progress-empty {
  padding: 16px;
  border: 1px dashed #b7c8d1;
  border-radius: 9px;
  color: var(--muted);
  background: white;
}

.table-wrap {
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 10px;
}

.review-table {
  width: 100%;
  min-width: 760px;
  border-collapse: collapse;
  font-size: 0.87rem;
}

.review-table th,
.review-table td {
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  white-space: nowrap;
}

.review-table th {
  color: #48606f;
  background: #f5f8fa;
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.review-table tbody tr:last-child td {
  border-bottom: 0;
}

.review-table tbody tr:hover {
  background: #f7fbfd;
}

.answer-locked {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 650;
}

.result-question-row {
  cursor: pointer;
}

.result-question-row:focus-visible {
  outline: 3px solid rgba(14, 165, 233, 0.35);
  outline-offset: -3px;
}

.review-timeline {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.review-choice-sequence {
  display: flex;
  align-items: center;
  gap: 4px;
}

.choice-sequence-arrow {
  color: #8a9aa4;
  font-weight: 800;
}

.attempt-answer-path {
  min-width: 150px;
}

.attempt-choice-sequence {
  display: flex;
  align-items: center;
  gap: 4px;
}

.attempt-choice-badge {
  display: inline-flex;
  min-width: 28px;
  height: 26px;
  align-items: center;
  justify-content: center;
  padding: 0 6px;
  border-radius: 7px;
  background: #42677a;
  color: white;
  font-weight: 800;
}

.attempt-choice-badge.correct {
  background: var(--green-700) !important;
}

.attempt-choice-badge.incorrect {
  background: var(--red-600) !important;
}

.attempt-choice-badge.locked {
  background: #42677a;
}

.attempt-choice-badge[data-answer-state="correct"],
.review-timeline-item[data-answer-state="correct"] {
  background: var(--green-700) !important;
  color: #fff !important;
}

.attempt-choice-badge[data-answer-state="incorrect"],
.review-timeline-item[data-answer-state="incorrect"] {
  background: var(--red-600) !important;
  color: #fff !important;
}

.attempt-choice-badge[data-answer-state="locked"] {
  background: #42677a !important;
  color: #fff !important;
}

.attempt-outcome {
  display: block;
  margin-top: 4px;
  font-size: 0.68rem;
  font-weight: 750;
}

.attempt-outcome.improved {
  color: var(--green-700);
}

.attempt-outcome.harmed {
  color: var(--red-600);
}

.attempt-outcome.neutral {
  color: var(--muted);
}

.timing-detail {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
}

.review-timeline-item {
  display: inline-flex;
  min-width: 34px;
  height: 28px;
  align-items: center;
  justify-content: center;
  gap: 3px;
  padding: 0 6px;
  border-radius: 7px;
  color: white;
  font-weight: 800;
}

.review-timeline-item.correct {
  background: var(--green-700) !important;
}

.review-timeline-item.incorrect {
  background: var(--red-600) !important;
}

.review-timeline-item small {
  font-size: 0.58rem;
  opacity: 0.82;
}

.review-timeline-empty {
  color: var(--muted);
}

.answer-badge {
  display: inline-flex;
  min-width: 28px;
  min-height: 28px;
  align-items: center;
  justify-content: center;
  border-radius: 7px;
  color: var(--navy-900);
  background: #e9f3f8;
  font-weight: 820;
}

.answer-badge.blank {
  color: #7d8b94;
  background: #eff2f4;
}

.answer-badge.correct {
  color: white;
  background: var(--green-700);
}

.answer-badge.incorrect {
  color: white;
  background: var(--red-600);
}

.comparison-change {
  color: #9b5e00;
  font-weight: 760;
}

.comparison-same {
  color: var(--green-700);
  font-weight: 760;
}

/* Learning review */
.review-workspace {
  width: min(1480px, calc(100% - 28px));
  margin: 0 auto;
  padding: 10px 0 38px;
}

.review-shell .topbar {
  min-height: 46px;
  padding: 6px clamp(16px, 3vw, 34px);
  border-bottom-width: 3px;
}

.review-shell .brand-kicker {
  display: none;
}

.review-shell .brand-title {
  font-size: 0.94rem;
}

.review-shell .header-chip {
  min-height: 28px;
  padding: 4px 9px;
  font-size: 0.76rem;
}

.review-shell .version-chip {
  min-height: 24px;
  padding: 3px 8px;
  font-size: 0.69rem;
}

.blind-rechallenge-banner,
.retrieval-pass-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 8px;
  padding: 9px 12px;
  border: 1px solid #8fc5dd;
  border-radius: 10px;
  background: #eaf7fc;
}

.blind-rechallenge-banner div,
.retrieval-pass-banner div {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
}

.blind-rechallenge-banner strong,
.retrieval-pass-banner strong {
  color: var(--navy-950);
}

.blind-rechallenge-banner span,
.blind-rechallenge-banner small,
.retrieval-pass-banner span,
.retrieval-pass-banner small {
  color: var(--muted);
  line-height: 1.35;
}

.retrieval-pass-banner {
  border-color: #a8d8c3;
  background: #eef9f4;
}

.review-toolbar {
  display: grid;
  grid-template-columns: auto auto 1fr auto;
  align-items: center;
  gap: 10px;
  margin-bottom: 7px;
}

.review-toolbar.pass-toolbar {
  grid-template-columns: auto auto 1fr auto auto;
}

.review-pass-action {
  min-height: 30px;
  padding: 5px 10px;
  font-size: 0.78rem;
}

.review-toolbar h1 {
  margin: 0;
  color: var(--navy-950);
  font-size: 1.08rem;
  letter-spacing: -0.015em;
}

.review-toolbar p {
  margin: 0;
  color: var(--muted);
  font-size: 0.82rem;
}

.text-button {
  padding: 0;
  border: 0;
  color: var(--sky-500);
  background: transparent;
  font-weight: 780;
}

.review-score {
  display: flex;
  min-width: 76px;
  align-items: baseline;
  justify-content: center;
  gap: 5px;
  padding: 5px 9px;
  border: 1px solid #c7d6df;
  border-radius: 10px;
  background: white;
  text-align: right;
}

.review-score strong,
.review-score span {
  display: inline;
}

.review-score strong {
  color: var(--navy-900);
  font-size: 1rem;
}

.review-score span {
  color: var(--muted);
  font-size: 0.76rem;
}

.review-filters {
  display: flex;
  overflow-x: auto;
  gap: 7px;
  margin-bottom: 8px;
  padding: 1px 1px 4px;
  scrollbar-width: thin;
}

.review-pass-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 8px;
  padding: 8px 12px;
  border: 1px solid #bcd7e4;
  border-radius: 9px;
  color: #174b63;
  background: #edf8fc;
  font-size: 0.8rem;
}

.review-pass-strip span {
  color: #4f6c7a;
}

.review-pass-strip > div:first-child > span {
  display: block;
  margin-top: 2px;
}

.review-pace {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 16px;
}

.review-pace > span {
  min-width: 70px;
  text-align: center;
}

.review-pace strong,
.review-pace small {
  display: block;
}

.review-pace strong {
  color: var(--navy-900);
  font-size: 0.9rem;
}

.review-pace small {
  margin-top: 1px;
  color: var(--muted);
  font-size: 0.67rem;
}

.review-pace .pace-status {
  min-width: 88px;
  padding: 5px 8px;
  border-radius: 999px;
  color: #11633d;
  background: #dcf5e8;
  font-weight: 800;
}

.review-pace .pace-status.behind {
  color: #8a4b00;
  background: #fff0c9;
}

.review-pace .pace-status.expired {
  color: #9d2638;
  background: #ffe7eb;
}

.filter-chip {
  flex: 0 0 auto;
  min-height: 32px;
  padding: 5px 11px;
  border: 1px solid #bdcbd4;
  border-radius: 999px;
  color: #405663;
  background: white;
  font-size: 0.8rem;
  font-weight: 740;
}

.filter-chip.active {
  color: white;
  border-color: var(--navy-800);
  background: var(--navy-800);
}

.review-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}

.review-question {
  overflow: hidden;
  border-radius: 12px;
}

.review-question-head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 16px;
  padding: 9px 14px;
  border-bottom: 1px solid var(--line);
  background: #f8fafb;
}

.review-position {
  display: block;
  margin-bottom: 5px;
  color: var(--navy-900);
  font-size: 0.86rem;
  font-weight: 800;
}

.review-answer-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
  color: var(--muted);
  font-size: 0.82rem;
}

.answer-hidden-label {
  color: #48606f;
  font-size: 0.9rem;
  font-weight: 680;
}

.original-answer {
  margin-left: 6px;
  padding-left: 10px;
  border-left: 1px solid #cbd6dc;
}

.answer-arrow {
  margin: 0 3px;
  color: #91a0aa;
}

.review-question-meta {
  display: flex;
  flex-direction: column;
  align-items: end;
  gap: 5px;
  color: var(--muted);
  font-size: 0.78rem;
  text-align: right;
}

.review-question-meta span:first-child {
  color: var(--navy-900);
  font-weight: 760;
}

.review-zoom {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: 3px;
}

.review-zoom button {
  width: 32px;
  height: 32px;
  padding: 0;
  border: 1px solid #bdcbd4;
  border-radius: 7px;
  color: var(--navy-900);
  background: white;
  font-size: 1.1rem;
  font-weight: 800;
}

.review-zoom button:disabled {
  color: #9aa7af;
  background: #edf1f3;
  cursor: default;
}

.review-zoom output {
  min-width: 42px;
  font-weight: 780;
  text-align: center;
}

.review-image-wrap {
  overflow-x: auto;
  padding: clamp(8px, 1.3vw, 14px);
  background: white;
}

.review-question-stage {
  position: relative;
  min-width: 100%;
  line-height: 0;
}

.review-question-stage img {
  display: block;
  width: 100%;
  height: auto;
}

.review-question-stage.native-question-stage {
  width: 100%;
  max-width: 980px;
  margin: 0 auto;
}

.review-choice-hit:disabled {
  opacity: 1;
  cursor: default;
}

.review-choice-hit.review-correct {
  border-color: var(--green-700);
  background: #dcf6e9;
  box-shadow: 0 0 0 4px rgba(35, 122, 87, 0.2), 0 0 0 9px white;
}

.review-choice-hit.review-incorrect:checked,
.review-choice-hit.review-eliminated {
  border-color: var(--red-600);
  background: #ffe5e8;
  box-shadow: 0 0 0 4px rgba(200, 61, 79, 0.18), 0 0 0 9px white;
}

.review-nav {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 12px;
  border-top: 1px solid var(--line);
  background: #f8fafb;
}

.learning-panel {
  position: static;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.learning-panel .reflection-card,
.learning-panel .ai-tutor-card,
.learning-panel .review-disclaimer {
  grid-column: 1 / -1;
}

.review-checked-label {
  align-self: center;
  color: var(--green-700);
  font-size: 0.82rem;
  font-weight: 760;
}

.compact-check-button {
  min-width: 180px;
}

.learning-card {
  padding: 16px 17px;
  border: 1px solid #d4dfe5;
  border-radius: 11px;
  background: white;
  box-shadow: 0 7px 20px rgba(6, 40, 61, 0.06);
}

.learning-card p {
  margin: 0;
  color: #334853;
  font-size: 0.94rem;
  line-height: 1.55;
}

.learning-card h2 {
  margin: 3px 0 0;
  color: var(--navy-950);
  font-size: 1.12rem;
  line-height: 1.35;
}

.active-recall-card {
  padding: 20px;
  border: 2px solid #9ccfe6;
  background: #f5fbfe;
}

.active-recall-card h2 {
  margin-bottom: 7px;
  font-size: 1.25rem;
}

.active-recall-card .recall-instruction {
  color: #48606f;
}

.review-choice-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  margin: 18px 0 14px;
}

.review-choice {
  min-height: 48px;
  border: 1px solid #aebfc9;
  border-radius: 9px;
  color: var(--navy-900);
  background: white;
  font-size: 1rem;
  font-weight: 850;
}

.review-choice:hover,
.review-choice.selected {
  border-color: var(--sky-500);
  background: var(--sky-100);
  box-shadow: inset 0 0 0 2px var(--sky-500);
}

.check-answer-button {
  width: 100%;
}

.check-answer-button:disabled {
  color: #7b8992;
  background: #dce4e8;
  box-shadow: none;
  cursor: default;
}

.answer-protection {
  margin-top: 10px !important;
  color: var(--muted) !important;
  font-size: 0.78rem !important;
}

.try-again-button {
  margin-top: 10px;
}

.learning-card .learning-label {
  margin-bottom: 5px;
  color: var(--navy-800);
  font-size: 0.73rem;
  font-weight: 850;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.verdict-card {
  border-left-width: 5px;
}

.verdict-correct {
  border-left-color: var(--green-700);
  background: #f0faf5;
}

.verdict-missed {
  border-left-color: var(--red-600);
  background: #fff5f6;
}

.audit-card {
  border-color: #e6c36d;
  background: var(--amber-100);
}

.reflection-card label:not(.retry-control) {
  display: block;
  margin: 12px 0 6px;
  color: #334754;
  font-size: 0.82rem;
  font-weight: 760;
}

.reflection-card select,
.reflection-card textarea {
  width: 100%;
  border: 1px solid #bdcbd4;
  border-radius: 8px;
  color: var(--ink);
  background: white;
}

.reflection-card select {
  min-height: 42px;
  padding: 0 10px;
}

.reflection-card textarea {
  min-height: 84px;
  padding: 10px;
  resize: vertical;
  font: inherit;
  line-height: 1.45;
}

.confidence-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px;
  margin-top: 10px;
}

.confidence-button {
  min-height: 40px;
  padding: 7px 9px;
  border: 1px solid #bdcbd4;
  border-radius: 8px;
  color: #405663;
  background: #f8fafb;
  font-size: 0.82rem;
  font-weight: 740;
}

.confidence-button.selected {
  color: white;
  border-color: var(--navy-800);
  background: var(--navy-800);
}

.retry-control {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
  color: #334754;
  font-size: 0.86rem;
  font-weight: 760;
}

.retry-control input {
  width: 18px;
  height: 18px;
  accent-color: var(--amber-500);
}

.review-disclaimer {
  margin: 1px 3px 0;
  color: var(--muted);
  font-size: 0.75rem;
  line-height: 1.45;
}

.miss-reason-picker {
  position: relative;
}

.miss-reason-trigger {
  display: flex;
  width: 100%;
  min-height: 44px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 12px;
  border: 1px solid #adc6d3;
  border-radius: 9px;
  color: var(--navy-900);
  background: white;
  font: inherit;
  font-weight: 650;
  text-align: left;
}

.miss-reason-trigger[aria-expanded="true"] {
  border-color: var(--sky-500);
  box-shadow: 0 0 0 3px rgba(20, 150, 212, 0.14);
}

.miss-reason-panel {
  position: relative;
  z-index: 8;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 7px;
  padding: 12px;
  border: 1px solid #b8ccd7;
  border-radius: 10px;
  background: #f8fcfe;
  box-shadow: 0 12px 28px rgba(22, 55, 72, 0.12);
}

.miss-reason-panel[hidden] {
  display: none;
}

.miss-reason-panel section {
  min-width: 0;
}

.miss-reason-panel h3 {
  margin: 0 0 6px;
  color: var(--navy-800);
  font-size: 0.76rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.miss-reason-panel section > div {
  display: grid;
  gap: 5px;
}

.miss-reason-option,
.miss-reason-clear {
  min-height: 36px;
  padding: 7px 9px;
  border: 1px solid #cfdae0;
  border-radius: 7px;
  color: #294554;
  background: white;
  font: inherit;
  font-size: 0.82rem;
  line-height: 1.25;
  text-align: left;
}

.miss-reason-option:hover,
.miss-reason-option.selected {
  border-color: var(--sky-500);
  background: var(--sky-100);
}

.miss-reason-clear {
  align-self: end;
  color: var(--muted);
  text-align: center;
}

.performance-coach-card {
  margin-top: 18px;
  padding: clamp(16px, 2.3vw, 24px);
  border: 1px solid #9fc8da;
  border-radius: 13px;
  background: linear-gradient(145deg, #f7fcff, #eef7fb);
}

.performance-coach-head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 16px;
}

.performance-coach-head h2 {
  margin: 2px 0 0;
  color: var(--navy-900);
}

.performance-coach-head > span {
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 700;
}

.performance-coach-intro {
  max-width: 920px;
  margin: 10px 0 14px;
  color: #49616f;
  line-height: 1.5;
}

.coach-scope-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.coach-status {
  min-height: 20px;
  margin: 8px 0 0;
  color: #315f75;
  font-size: 0.85rem;
  font-weight: 700;
}

.coach-feedback,
.coach-empty {
  margin-top: 10px;
  padding: 14px;
  border: 1px solid #c5d9e3;
  border-radius: 10px;
  background: white;
}

.coach-feedback > div:first-child {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
  color: var(--navy-900);
}

.coach-feedback > div:first-child span,
.coach-empty {
  color: var(--muted);
  font-size: 0.84rem;
}

.coach-feedback > div:last-child {
  color: #294554;
  line-height: 1.6;
}

.coach-conversation {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #c5d9e3;
}

.coach-thread {
  display: grid;
  gap: 9px;
}

.coach-thread-empty {
  margin: 0;
  color: var(--muted);
  font-size: 0.9rem;
}

.coach-message {
  max-width: 88%;
  padding: 11px 13px;
  border: 1px solid #c5d9e3;
  border-radius: 10px;
  background: #fff;
  color: #294554;
  line-height: 1.5;
}

.coach-message.user {
  justify-self: end;
  border-color: #9fc8da;
  background: #e9f7fd;
}

.coach-message strong {
  display: block;
  margin-bottom: 4px;
  color: var(--navy-900);
  font-size: 0.78rem;
}

.coach-prompt-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 12px;
}

.coach-prompt-chip {
  padding: 7px 10px;
  border: 1px solid #9fc8da;
  border-radius: 999px;
  background: #fff;
  color: #315f75;
  font: inherit;
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
}

.coach-followup-form {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: stretch;
  margin-top: 10px;
}

.coach-question-library {
  margin-top: 14px;
  padding: 14px;
  border: 1px solid #c5d9e3;
  border-radius: 12px;
  background: #f8fcfe;
}

.coach-question-library-head {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  color: var(--muted);
  font-size: 0.8rem;
}

.coach-question-library-head div {
  display: grid;
  gap: 2px;
}

.coach-question-library-head strong {
  color: var(--navy-900);
  font-size: 0.95rem;
}

.coach-question-library-list {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}

.coach-saved-question {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  border: 1px solid #bad2dd;
  border-radius: 10px;
  background: #fff;
  overflow: hidden;
}

.coach-saved-question-use,
.coach-saved-question-remove {
  border: 0;
  background: transparent;
  color: #294554;
  font: inherit;
  cursor: pointer;
}

.coach-saved-question-use {
  padding: 11px 13px;
  text-align: left;
  line-height: 1.4;
}

.coach-saved-question-use:hover,
.coach-saved-question-use:focus-visible {
  background: #e9f7fd;
}

.coach-saved-question-remove {
  padding: 8px 12px;
  border-left: 1px solid #d7e4ea;
  color: #8b3e2f;
  font-size: 0.8rem;
  font-weight: 750;
}

.coach-question-library-note,
.coach-question-library-empty {
  margin: 9px 0 0;
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.45;
}

.coach-followup-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

.coach-followup-form label {
  color: var(--navy-900);
  font-weight: 750;
}

.coach-followup-form textarea {
  width: 100%;
  min-height: 150px;
  padding: 12px 14px;
  border: 1px solid #aebfc9;
  border-radius: 9px;
  font: inherit;
  font-size: 1rem;
  line-height: 1.5;
  resize: vertical;
}

.coach-followup-actions .button {
  min-width: 140px;
}

.coach-followup-status {
  min-height: 1.35em;
  margin: 0;
  color: #9b421f;
  font-size: 0.9rem;
  font-weight: 700;
}

@media (max-width: 760px) {
  .miss-reason-panel {
    grid-template-columns: 1fr;
  }

  .performance-coach-head {
    display: block;
  }

  .coach-message {
    max-width: 100%;
  }

  .coach-question-library-head,
  .coach-followup-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .coach-followup-actions .button {
    width: 100%;
  }
}

.ai-tutor-card {
  border-color: #8fc9e4;
  background: #f7fcff;
}

.ai-tutor-heading {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 14px;
}

.ai-saved-status {
  flex: 0 0 auto;
  padding: 5px 8px;
  border: 1px solid #b7d9e9;
  border-radius: 999px;
  color: #325b70;
  background: white;
  font-size: 0.76rem;
  font-weight: 740;
}

.ai-thread {
  display: grid;
  max-height: 460px;
  overflow-y: auto;
  gap: 10px;
  margin: 14px 0;
  padding: 12px;
  border: 1px solid #c8dce7;
  border-radius: 10px;
  background: white;
}

.ai-empty {
  color: var(--muted) !important;
  font-size: 0.88rem !important;
}

.ai-message {
  max-width: min(92%, 900px);
  padding: 11px 13px;
  border-radius: 10px;
  color: #263e4b;
  font-size: 0.94rem;
  line-height: 1.55;
}

.ai-message.ai-question {
  justify-self: end;
  border: 1px solid #aad0e2;
  background: #eaf7fd;
}

.ai-message.ai-answer {
  justify-self: start;
  border: 1px solid #d3dee4;
  background: #f8fafb;
}

.ai-message-role {
  margin: 0 0 4px !important;
  color: var(--navy-800) !important;
  font-size: 0.72rem !important;
  font-weight: 850;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.ai-prompt-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-bottom: 12px;
}

.ai-prompt-chips button {
  min-height: 34px;
  padding: 6px 10px;
  border: 1px solid #adc6d3;
  border-radius: 999px;
  color: #365669;
  background: white;
  font-size: 0.78rem;
  font-weight: 730;
}

.ai-prompt-chips button:hover {
  border-color: var(--sky-500);
  background: var(--sky-100);
}

.ai-question-label {
  display: block;
  margin-bottom: 6px;
  color: #334754;
  font-size: 0.84rem;
  font-weight: 780;
}

.ai-question-input {
  width: 100%;
  min-height: 82px;
  padding: 10px 11px;
  resize: vertical;
  border: 1px solid #adc6d3;
  border-radius: 9px;
  color: var(--ink);
  background: white;
  font: inherit;
  font-size: 1rem;
  line-height: 1.45;
}

.ai-question-input:focus {
  outline: 3px solid rgba(14, 165, 233, 0.2);
  border-color: var(--sky-500);
}

.ai-tutor-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 9px;
}

.ai-tutor-actions span {
  color: var(--muted);
  font-size: 0.78rem;
}

.ai-tutor-actions .button {
  min-width: 108px;
}

.ai-error {
  min-height: 1.2em;
  margin-top: 8px !important;
  color: var(--red-600) !important;
  font-size: 0.82rem !important;
  font-weight: 680;
}

.review-empty {
  padding: 34px;
  text-align: center;
}

.review-empty h2 {
  margin: 0 0 8px;
  color: var(--navy-900);
}

.review-empty p {
  margin: 0 0 18px;
  color: var(--muted);
}

.modal-backdrop {
  position: fixed;
  z-index: 100;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 18px;
  background: rgba(5, 27, 42, 0.68);
}

.modal {
  width: min(480px, 100%);
  padding: 24px;
  border-radius: 14px;
  background: white;
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.25);
}

.modal h2 {
  margin: 0 0 10px;
  color: var(--navy-900);
}

.modal p {
  margin: 0;
  color: var(--muted);
  line-height: 1.5;
}

.modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 9px;
  margin-top: 22px;
}

.toast-region {
  position: fixed;
  z-index: 200;
  right: 18px;
  bottom: 18px;
  display: grid;
  gap: 8px;
}

.toast {
  max-width: 360px;
  padding: 12px 14px;
  color: white;
  border-radius: 9px;
  background: #203746;
  box-shadow: 0 12px 28px rgba(6, 40, 61, 0.22);
  animation: toast-in 160ms ease-out;
}

@keyframes toast-in {
  from {
    transform: translateY(8px);
    opacity: 0;
  }
}

@media (max-width: 1250px) {
  .exam-layout {
    grid-template-columns: 1fr;
    width: min(1240px, calc(100% - 16px));
  }

  .navigator {
    position: static;
    order: -1;
    display: none;
  }

  .navigator.navigator-open {
    display: block;
  }

  .question-grid {
    grid-template-columns: repeat(10, 1fr);
  }

  .keyboard-note,
  .legend {
    display: none;
  }
}

@media (max-width: 930px) {
  .home-grid {
    grid-template-columns: 1fr;
  }

  .metric-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .review-pass-row {
    grid-template-columns: minmax(190px, 1.5fr) repeat(2, minmax(92px, 0.7fr));
  }

  .review-pass-entry {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .review-pass-gain,
  .review-pass-coverage,
  .review-pass-average,
  .review-pass-time {
    display: none;
  }

  .review-layout {
    grid-template-columns: 1fr;
  }

  .learning-panel {
    position: static;
    grid-template-columns: 1fr;
  }

  .learning-panel .reflection-card,
  .learning-panel .ai-tutor-card,
  .learning-panel .review-disclaimer {
    grid-column: auto;
  }
}

@media (max-width: 620px) {
  .topbar {
    min-height: 60px;
  }

  .header-chip {
    display: none;
  }

  .header-status {
    flex-shrink: 0;
  }

  .workspace {
    width: min(100% - 20px, 1180px);
    padding-top: 14px;
  }

  .home-grid {
    gap: 12px;
  }

  .facts {
    grid-template-columns: 1fr;
  }

  .fact {
    min-height: 0;
  }

  .form-row {
    grid-template-columns: 1fr;
  }

  .form-row .button {
    width: 100%;
  }

  .exam-header-main {
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }

  .exam-name {
    display: none;
  }

  .exam-layout {
    width: calc(100% - 12px);
    gap: 10px;
    padding-top: 8px;
  }

  .navigator {
    padding: 10px;
    overflow-x: auto;
  }

  .question-grid {
    min-width: 620px;
  }

  .question-scroll {
    padding: 16px 8px 12px;
  }

  .question-stage {
    min-width: 700px;
  }

  .question-tools {
    padding-inline: 10px;
  }

  .zoom-label {
    display: none;
  }

  .question-footer {
    align-items: stretch;
  }

  .question-footer .button {
    padding-inline: 12px;
  }

  .metric-grid {
    grid-template-columns: 1fr 1fr;
  }

  .review-progress-card {
    padding: 14px;
  }

  .attempt-passes-card {
    padding: 14px;
  }

  .attempt-passes-head {
    display: block;
  }

  .attempt-passes-head > p {
    margin-top: 6px;
  }

  .attempt-pass-row {
    grid-template-columns: 32px minmax(0, 1fr) minmax(92px, auto);
    gap: 8px;
    padding: 10px;
  }

  .attempt-pass-row > span:nth-child(5),
  .attempt-pass-row > span:nth-child(6) {
    display: none;
  }

  .attempt-pass-row > span:nth-child(3) {
    display: none;
  }

  .review-progress-head {
    display: block;
  }

  .review-progress-head > p {
    margin-top: 6px;
  }

  .review-pass-row {
    grid-template-columns: 1fr auto;
    padding: 10px;
  }

  .review-pass-entry {
    grid-template-columns: 1fr;
  }

  .review-pass-retake {
    min-height: 42px;
  }

  .review-pass-correct {
    display: none;
  }

  .review-workspace {
    width: calc(100% - 14px);
    padding-top: 12px;
  }

  .review-toolbar {
    grid-template-columns: auto auto 1fr;
    align-items: start;
  }

  .review-toolbar.pass-toolbar {
    grid-template-columns: auto auto 1fr auto;
  }

  .review-toolbar p {
    display: none;
  }

  .review-toolbar .review-score {
    justify-self: end;
  }

  .review-pass-action {
    grid-column: 1 / -1;
    justify-self: start;
  }

  .review-score {
    min-width: 72px;
    padding: 5px 8px;
  }

  .review-pass-strip {
    display: block;
  }

  .review-pass-strip span {
    display: block;
    margin-top: 3px;
  }

  .review-pace {
    justify-content: space-between;
    margin-top: 9px;
    gap: 5px;
  }

  .review-pace > span {
    min-width: 0;
  }

  .review-question-head {
    flex-direction: column;
  }

  .review-question-meta {
    flex-direction: row;
    align-items: center;
    text-align: left;
  }

  .review-image-wrap {
    padding: 12px 7px;
  }

  .review-question-stage {
    min-width: 690px;
  }

  .review-nav .button {
    min-height: 42px;
    padding-inline: 10px;
  }

  .compact-check-button {
    min-width: 138px;
  }

  .confidence-row {
    grid-template-columns: 1fr;
  }

  .ai-tutor-heading,
  .ai-tutor-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .ai-saved-status {
    align-self: flex-start;
  }

  .ai-tutor-actions .button {
    width: 100%;
  }

  .modal-actions {
    flex-direction: column-reverse;
  }

  .modal-actions .button {
    width: 100%;
  }
}

.library-link {
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  padding: 6px 10px;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 9px;
  color: white;
  font-size: 0.82rem;
  font-weight: 760;
  text-decoration: none;
}

.library-link:hover {
  background: rgba(255, 255, 255, 0.1);
}

.library-workspace {
  max-width: 1050px;
}

.library-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 28px;
  margin-bottom: 24px;
}

.library-heading h1 {
  margin: 0;
  color: var(--navy-950);
  font-size: clamp(2rem, 5vw, 3.4rem);
  line-height: 1;
  letter-spacing: -0.045em;
}

.library-heading > p {
  max-width: 480px;
  margin: 0;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.55;
}

.library-heading-actions {
  display: grid;
  max-width: 480px;
  justify-items: start;
  gap: 12px;
}

.library-heading-actions p {
  margin: 0;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.55;
}

.form-library-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.form-library-card {
  display: flex;
  min-height: 280px;
  flex-direction: column;
  padding: 24px;
}

.form-library-card-head,
.form-library-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: var(--muted);
  font-size: 0.82rem;
}

.form-library-card-head span {
  color: var(--sky-500);
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.form-library-card h2 {
  margin: 26px 0 8px;
  color: var(--navy-950);
  font-size: 1.5rem;
}

.form-library-card > p {
  margin: 0 0 24px;
  color: var(--muted);
  line-height: 1.5;
}

.form-library-meta {
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}

.form-library-meta strong {
  color: var(--green-700);
}

.form-open-button {
  justify-content: center;
  margin-top: 16px;
  text-decoration: none;
}

.import-lab {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(340px, 0.85fr) auto;
  gap: 24px;
  align-items: center;
  margin: 0 0 24px;
  padding: 24px;
  border-color: rgba(20, 150, 212, 0.35);
  background: linear-gradient(135deg, #ffffff, #effaff);
}

.import-lab h2,
.import-dialog h2 {
  margin: 0;
  color: var(--navy-950);
  font-size: 1.45rem;
  letter-spacing: -0.025em;
}

.import-lab p:not(.eyebrow) {
  margin: 8px 0 0;
  color: var(--muted);
  line-height: 1.5;
}

.import-lab-flow {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 5px;
}

.import-lab-flow span {
  padding: 9px 6px;
  border: 1px solid #c6e5f3;
  border-radius: 8px;
  color: var(--navy-800);
  background: rgba(255, 255, 255, 0.8);
  font-size: 0.72rem;
  font-weight: 800;
  text-align: center;
}

.imported-form-card { border-top: 4px solid var(--sky-500); }

.import-remove-button {
  width: 100%;
  margin-top: 8px;
  color: #8b3340;
  background: white;
  border: 1px solid #e8c6cb;
}

.import-dialog {
  width: min(760px, calc(100% - 28px));
  max-height: calc(100vh - 32px);
  padding: 0;
  overflow: auto;
  border: 0;
  border-radius: 18px;
  color: var(--ink);
  background: white;
  box-shadow: 0 24px 80px rgba(6, 40, 61, 0.28);
}

.import-dialog::backdrop {
  background: rgba(6, 40, 61, 0.62);
  backdrop-filter: blur(3px);
}

.import-dialog-card { padding: clamp(22px, 5vw, 36px); }

.import-dialog-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}

.dialog-close {
  width: 40px;
  height: 40px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 50%;
  color: var(--navy-900);
  background: white;
  font-size: 1.65rem;
  line-height: 1;
}

.import-intro {
  margin: 14px 0 22px;
  color: var(--muted);
  line-height: 1.5;
}

.import-field {
  display: grid;
  gap: 7px;
  margin: 15px 0;
  color: var(--navy-950);
  font-weight: 750;
}

.import-field span {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.import-field em,
.import-field small {
  color: var(--muted);
  font-size: 0.78rem;
  font-style: normal;
  font-weight: 550;
}

.import-field input {
  min-height: 46px;
  padding: 10px 12px;
  border: 1px solid #b8c9d4;
  border-radius: 9px;
  background: #fbfdfe;
}

.import-attestation {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  align-items: start;
  margin: 20px 0;
  color: #455763;
  font-size: 0.88rem;
  line-height: 1.45;
}

.import-attestation input {
  width: 20px;
  height: 20px;
  margin: 1px 0 0;
}

.import-callout {
  display: grid;
  gap: 4px;
  padding: 14px;
  border: 1px solid #cbe8f5;
  border-radius: 10px;
  color: var(--navy-800);
  background: #f1faff;
}

.import-callout span {
  color: var(--muted);
  font-size: 0.84rem;
  line-height: 1.45;
}

.import-status {
  margin-top: 16px;
  color: var(--muted);
  font-size: 0.88rem;
  line-height: 1.45;
}

.import-status.is-working,
.import-status.is-ready,
.import-status.is-error {
  padding: 12px 14px;
  border-radius: 9px;
}

.import-status.is-working { background: #edf8fd; color: var(--navy-800); }
.import-status.is-ready { background: #eaf8f1; color: var(--green-700); }
.import-status.is-error { background: #fff0f2; color: var(--red-600); }

.import-preview {
  margin-top: 16px;
  padding: 16px;
  border: 1px solid #bbd8e5;
  border-radius: 12px;
  background: #fbfdfe;
}

.import-preview-head {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 14px;
}

.import-preview-head div {
  display: grid;
  gap: 3px;
  padding: 11px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
}

.import-preview-head span,
.import-preview-questions article span {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.import-warnings {
  margin-bottom: 14px;
  padding: 12px;
  border-radius: 8px;
  color: #78520a;
  background: var(--amber-100);
}

.import-warnings ul { margin: 7px 0 0; padding-left: 20px; }

.import-preview-questions { display: grid; gap: 9px; }

.import-preview-questions article {
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
}

.import-preview-questions p { margin: 5px 0; line-height: 1.42; }
.import-preview-questions small { color: var(--muted); }

.import-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 20px;
}

.import-actions [hidden],
.import-preview[hidden] {
  display: none !important;
}

.explanation-mode-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border-color: rgba(20, 150, 212, 0.35);
  background: #f4fbfe;
}

.explanation-mode-card p {
  margin: 3px 0 0;
  color: var(--muted);
  font-size: 0.86rem;
}

.explanation-mode-toggle {
  display: inline-grid;
  grid-template-columns: 1fr 1fr;
  padding: 3px;
  border: 1px solid #b9d5e2;
  border-radius: 10px;
  background: white;
}

.explanation-mode-toggle button {
  min-height: 36px;
  padding: 6px 12px;
  border: 0;
  border-radius: 7px;
  color: var(--navy-900);
  background: transparent;
  font-weight: 760;
}

.explanation-mode-toggle button.selected {
  color: white;
  background: var(--navy-800);
}

.deep-learning-card p:last-child {
  line-height: 1.62;
}

.takeaway-card {
  border-left: 5px solid var(--amber-500);
  background: var(--amber-100);
}

.dashboard-workspace {
  width: min(1380px, calc(100% - 32px));
  padding-top: 30px;
}

.dashboard-loading {
  display: grid;
  min-height: 55vh;
  place-content: center;
  gap: 8px;
  color: var(--navy-950);
  text-align: center;
}

.dashboard-loading span {
  color: var(--muted);
  font-weight: 500;
}

.dashboard-title-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 28px;
  margin-bottom: 22px;
}

.dashboard-title-row h1 {
  margin: 0;
  color: var(--navy-950);
  font-size: clamp(2rem, 5vw, 3.5rem);
  line-height: 1;
  letter-spacing: -0.05em;
}

.dashboard-title-row > div:first-child > p:last-child {
  max-width: 760px;
  margin: 14px 0 0;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.58;
}

.dashboard-freshness {
  display: grid;
  min-width: 190px;
  padding: 18px 20px;
  border: 1px solid rgba(8, 59, 92, 0.14);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.72);
}

.dashboard-freshness strong {
  color: var(--navy-900);
  font-size: 2rem;
  line-height: 1;
}

.dashboard-freshness span {
  margin-top: 4px;
  color: var(--ink);
  font-weight: 750;
}

.dashboard-freshness small {
  margin-top: 8px;
  color: var(--muted);
}

.dashboard-title-actions {
  display: grid;
  justify-items: stretch;
  gap: 10px;
}

.snapshot-source {
  color: #176143;
  font-size: 0.78rem;
  font-weight: 800;
  text-align: center;
}

.demo-replay-note {
  max-width: 760px;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 650;
  line-height: 1.5;
}

.cycle-next-step {
  display: grid;
  min-width: min(100%, 430px);
  gap: 3px;
  padding: 11px 13px;
  border: 1px solid #8fc5dd;
  border-radius: 10px;
  color: var(--navy-950);
  background: #eaf7fc;
}

.cycle-next-step span {
  color: var(--muted);
  font-size: 0.82rem;
}

.dashboard-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}

.dashboard-stat-grid article {
  position: relative;
  display: grid;
  min-height: 132px;
  align-content: center;
  padding: 18px;
  border: 1px solid rgba(8, 59, 92, 0.13);
  border-radius: 14px;
  background: white;
  box-shadow: 0 7px 20px rgba(6, 40, 61, 0.06);
}

.info-control {
  position: relative;
  display: inline-flex;
  vertical-align: middle;
}

.info-button {
  display: inline-grid;
  width: 22px;
  height: 22px;
  margin-left: 5px;
  padding: 0;
  place-items: center;
  border: 1px solid #8bb7ca;
  border-radius: 50%;
  color: #0a668e;
  background: #eef9fd;
  font: 800 0.78rem/1 Georgia, serif;
  cursor: pointer;
}

.dashboard-stat-grid .info-control {
  position: absolute;
  top: 12px;
  right: 12px;
}

.info-popover {
  position: absolute;
  z-index: 20;
  top: calc(100% + 8px);
  right: 0;
  display: grid;
  width: min(330px, calc(100vw - 48px));
  gap: 5px;
  padding: 12px 13px;
  border: 1px solid #9fc8da;
  border-radius: 10px;
  color: #294554;
  background: white;
  box-shadow: 0 14px 34px rgba(6, 40, 61, 0.18);
  font-size: 0.82rem;
  font-weight: 500;
  line-height: 1.48;
  text-align: left;
}

.info-popover strong {
  color: var(--navy-950);
  font-size: 0.86rem;
}

.dashboard-stat-grid article > .info-control .info-popover {
  right: -4px;
}

.investor-demo-card,
.coach-spotlight {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.9fr) auto;
  align-items: center;
  gap: 20px;
  margin-bottom: 16px;
  padding: 22px;
  border-color: #8fcde7;
  background: linear-gradient(135deg, #f5fcff, #eef9f4);
}

.investor-demo-card h2,
.coach-spotlight h2 {
  margin: 3px 0 7px;
  color: var(--navy-950);
}

.investor-demo-card p,
.coach-spotlight p {
  margin: 0;
  color: var(--muted);
  line-height: 1.5;
}

.investor-demo-card ol {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.investor-demo-card li,
.coach-spotlight-proof span {
  display: grid;
  gap: 2px;
  padding: 9px 11px;
  border: 1px solid #c3dce6;
  border-radius: 9px;
  background: rgba(255, 255, 255, 0.78);
}

.investor-demo-card li span,
.coach-spotlight-proof span {
  color: var(--muted);
  font-size: 0.8rem;
}

.investor-demo-card .button {
  white-space: normal;
  text-decoration: none;
}

.sandbox-banner {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 18px;
  padding: 13px 16px;
  border: 1px solid #9bd7ec;
  border-radius: 14px;
  background: #effaff;
  color: #174a61;
}

.sandbox-banner strong {
  flex: 0 0 auto;
  color: #073d57;
}

.header-chip.sandbox {
  border-color: #82d3ee;
  background: rgba(25, 161, 211, 0.14);
  color: #d9f6ff;
}

.sandbox-inline-note {
  display: inline-flex;
  margin-top: 12px;
  color: #24708a;
  font-size: 0.875rem;
  font-weight: 750;
}

@media (max-width: 700px) {
  .sandbox-banner {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }
}

.coach-spotlight {
  grid-template-columns: minmax(0, 1.4fr) minmax(300px, 0.8fr) auto;
  margin-top: 16px;
  background: linear-gradient(135deg, #f2faff, #ffffff);
}

.coach-spotlight-proof {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.coach-spotlight-proof span {
  display: inline-flex;
  color: #155e75;
  font-weight: 750;
}

.panel-definition {
  margin: 12px 0 -4px;
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.45;
}

.dashboard-stat-grid span,
.coaching-prescription-grid span,
.before-after span {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.dashboard-stat-grid strong {
  margin: 4px 0;
  color: var(--navy-900);
  font-size: 2rem;
  line-height: 1.05;
}

.dashboard-stat-grid small {
  color: var(--muted);
}

.visual-signal-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}

.signal-card {
  display: flex;
  min-height: 126px;
  align-items: center;
  gap: 14px;
  padding: 16px;
  border: 1px solid rgba(8, 59, 92, 0.13);
  border-radius: 14px;
  background: white;
  box-shadow: 0 7px 20px rgba(6, 40, 61, 0.05);
}

.signal-ring {
  --ring-color: #1787b8;
  display: grid;
  width: 76px;
  height: 76px;
  flex: 0 0 76px;
  place-items: center;
  border-radius: 50%;
  background: conic-gradient(var(--ring-color) calc(var(--signal) * 1%), #e5edf1 0);
}

.signal-ring::before {
  content: "";
  grid-area: 1 / 1;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: white;
}

.signal-ring span {
  z-index: 1;
  grid-area: 1 / 1;
  color: var(--navy-950);
  font-weight: 900;
}

.signal-ring.green { --ring-color: #21845e; }
.signal-ring.navy { --ring-color: #0d4f73; }
.signal-ring.amber { --ring-color: #e2a10b; }

.signal-card > div:last-child {
  display: grid;
  gap: 5px;
}

.signal-card strong {
  color: var(--navy-950);
  font-size: 0.95rem;
}

.signal-card small {
  color: var(--muted);
  font-size: 0.875rem;
  line-height: 1.4;
}

.memory-queue-card {
  display: grid;
  gap: 18px;
  padding: clamp(20px, 4vw, 30px);
}

.memory-queue-intro {
  max-width: 850px;
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}

.retrieval-principles {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.retrieval-principles span {
  display: flex;
  min-height: 46px;
  align-items: center;
  gap: 9px;
  padding: 8px 11px;
  border-radius: 10px;
  color: var(--navy-900);
  background: #eef6f9;
  font-size: 0.83rem;
  font-weight: 750;
}

.retrieval-principles strong {
  display: grid;
  width: 25px;
  height: 25px;
  flex: 0 0 25px;
  place-items: center;
  border-radius: 50%;
  color: white;
  background: var(--navy-800);
  font-size: 0.75rem;
}

.memory-queue-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.memory-stack {
  display: grid;
  min-height: 130px;
  align-content: center;
  text-align: left;
  gap: 3px;
  padding: 16px;
  border: 1px solid rgba(8, 59, 92, 0.12);
  border-top: 5px solid #7e9bab;
  border-radius: 12px;
  background: #f9fbfc;
  font: inherit;
  cursor: pointer;
  transition: transform 140ms ease, box-shadow 140ms ease, border-color 140ms ease;
}

.memory-stack:hover:not(:disabled),
.memory-stack:focus-visible {
  transform: translateY(-2px);
  border-color: #55add2;
  box-shadow: 0 9px 22px rgba(6, 40, 61, 0.11);
}

.memory-stack:disabled {
  cursor: default;
  opacity: 1;
}

.memory-stack.due { border-top-color: #d14355; }
.memory-stack.fragile { border-top-color: #e2a10b; }
.memory-stack.recovered { border-top-color: #1787b8; }
.memory-stack.stable { border-top-color: #21845e; }

.memory-stack strong {
  color: var(--navy-950);
  font-size: 2rem;
  line-height: 1;
}

.memory-stack span {
  color: var(--navy-900);
  font-weight: 850;
}

.memory-stack small,
.memory-queue-actions span {
  color: var(--muted);
  line-height: 1.4;
}

.memory-stack em {
  margin-top: 8px;
  color: var(--sky-600, #0878a9);
  font-size: 0.76rem;
  font-style: normal;
  font-weight: 850;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

.memory-queue-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.retrieval-history {
  display: grid;
  grid-template-columns: minmax(190px, 1.2fr) repeat(4, minmax(150px, 1fr));
  gap: 9px;
  padding-top: 16px;
  border-top: 1px solid rgba(8, 59, 92, 0.12);
}

.retrieval-history > div,
.retrieval-history article {
  display: grid;
  align-content: center;
  gap: 3px;
}

.retrieval-history > div span,
.retrieval-history article small {
  color: var(--muted);
  line-height: 1.35;
}

.retrieval-history article {
  padding: 11px 12px;
  border-radius: 10px;
  background: #f2f7f9;
}

.retrieval-history article > span,
.retrieval-history article em {
  color: var(--muted);
  font-size: 0.72rem;
  font-style: normal;
  font-weight: 800;
  text-transform: uppercase;
}

.retrieval-history article button {
  justify-self: start;
  margin-top: 4px;
  padding: 3px 0;
  border: 0;
  color: var(--sky-600, #0878a9);
  background: transparent;
  font: inherit;
  font-size: 0.76rem;
  font-weight: 850;
  cursor: pointer;
  text-transform: uppercase;
}

.retrieval-history article strong {
  color: var(--navy-950);
  font-size: 1.35rem;
}

.coaching-loop-card {
  padding: clamp(20px, 4vw, 30px);
  border-color: rgba(20, 150, 212, 0.42);
  background: linear-gradient(135deg, white 0%, #f2fbff 100%);
}

.coaching-loop-head,
.dashboard-panel-head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 18px;
}

.coaching-loop-head h2,
.dashboard-panel-head h2 {
  margin: 0;
  color: var(--navy-950);
  font-size: clamp(1.25rem, 3vw, 1.65rem);
  line-height: 1.15;
}

.loop-status {
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  padding: 6px 11px;
  border-radius: 999px;
  color: #805700;
  background: var(--amber-100);
  font-size: 0.82rem;
  font-weight: 800;
  white-space: nowrap;
}

.loop-status.active {
  color: #176143;
  background: #dcf7ea;
}

.loop-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 7px;
  margin: 22px 0;
}

.loop-steps span {
  padding: 9px 10px;
  border: 1px solid var(--line);
  border-radius: 9px;
  color: var(--muted);
  background: white;
  font-size: 0.82rem;
  font-weight: 800;
  text-align: center;
}

.loop-steps .done {
  color: var(--navy-800);
  border-color: #9fcfe4;
  background: #eaf8fe;
}

.loop-steps .active {
  color: #176143;
  border-color: #9fd5bb;
  background: #e7f8ef;
}

.coaching-prescription-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.coaching-prescription-grid > div {
  min-height: 145px;
  padding: 16px;
  border: 1px solid #c7dce6;
  border-radius: 12px;
  background: white;
}

.coaching-prescription-grid strong {
  display: block;
  margin-top: 8px;
  color: var(--navy-950);
  font-size: 1rem;
  line-height: 1.45;
}

.coaching-prescription-grid p {
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 0.88rem;
  line-height: 1.45;
}

.coaching-loop-actions,
.dashboard-coach-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 16px;
}

.coaching-loop-actions a {
  text-decoration: none;
}

.dashboard-chart-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 16px;
}

.dashboard-panel,
.dashboard-coach-card,
.dashboard-evidence-card {
  padding: 22px;
}

.dashboard-panel-head > span {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 750;
  white-space: nowrap;
}

.metric-rows {
  display: grid;
  gap: 11px;
  margin-top: 20px;
}

.metric-row {
  display: grid;
  grid-template-columns: 76px minmax(80px, 1fr) 50px 46px;
  align-items: center;
  gap: 9px;
  color: #294554;
  font-size: 0.88rem;
}

.metric-row strong,
.metric-row small {
  text-align: right;
}

.metric-row small {
  color: var(--muted);
}

.dashboard-bar-track {
  display: block;
  height: 11px;
  overflow: hidden;
  border-radius: 999px;
  background: #e7eef2;
}

.dashboard-bar {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--sky-500), #49b9e9);
}

.dashboard-bar.green {
  background: linear-gradient(90deg, var(--green-700), #43a978);
}

.outcome-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  margin-top: 20px;
}

.outcome-card {
  display: grid;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #f8fafb;
}

.outcome-card strong {
  color: var(--navy-900);
  font-size: 1.7rem;
}

.outcome-card span {
  font-weight: 800;
}

.outcome-card small {
  margin-top: 5px;
  color: var(--muted);
}

.outcome-card.improved {
  border-color: #a9d8c1;
  background: #effaf4;
}

.outcome-card.harmed {
  border-color: #edb8bf;
  background: #fff4f5;
}

.panel-note,
.dashboard-empty-copy {
  margin: 16px 0 0;
  color: var(--muted);
  font-size: 0.88rem;
  line-height: 1.5;
}

.before-after {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 14px;
  margin-top: 22px;
}

.before-after > div:not(.before-after-delta) {
  display: grid;
  min-height: 125px;
  align-content: center;
  padding: 15px;
  border: 1px solid var(--line);
  border-radius: 11px;
}

.before-after > div:last-child {
  border-color: #a9d8c1;
  background: #effaf4;
}

.before-after strong {
  margin: 4px 0;
  color: var(--navy-900);
  font-size: 1.7rem;
}

.before-after small {
  color: var(--muted);
  line-height: 1.4;
}

.before-after-delta {
  display: grid;
  color: var(--green-700);
  text-align: center;
}

.before-after-delta strong {
  font-size: 1.1rem;
}

.before-after-delta span {
  font-size: 0.7rem;
}

.review-spark-list {
  display: grid;
  gap: 12px;
  margin-top: 22px;
}

.review-spark-list > div {
  display: grid;
  grid-template-columns: 62px minmax(80px, 1fr) 48px 42px;
  align-items: center;
  gap: 9px;
  font-size: 0.86rem;
}

.review-spark-list strong,
.review-spark-list small {
  text-align: right;
}

.review-spark-list small {
  color: var(--muted);
}

.dashboard-coach-card,
.dashboard-evidence-card {
  margin-top: 16px;
}

.dashboard-coach-report,
.dashboard-coach-message {
  margin-top: 14px;
  padding: 15px;
  border: 1px solid #c5d9e3;
  border-radius: 11px;
  background: #f8fcfe;
  color: #294554;
  line-height: 1.58;
}

.dashboard-coach-report > strong,
.dashboard-coach-message > strong {
  display: block;
  margin-bottom: 7px;
  color: var(--navy-950);
}

.dashboard-coach-message.user {
  margin-left: min(15%, 140px);
  border-color: #9fc8da;
  background: #e9f7fd;
}

#dashboard-coach-form {
  display: grid;
  gap: 8px;
  margin-top: 16px;
}

#dashboard-coach-form label {
  color: var(--navy-950);
  font-weight: 800;
}

#dashboard-coach-form textarea {
  width: 100%;
  min-height: 110px;
  padding: 12px 14px;
  border: 1px solid #aebfc9;
  border-radius: 9px;
  font: inherit;
  line-height: 1.5;
  resize: vertical;
}

#dashboard-coach-form > div {
  display: flex;
  justify-content: flex-end;
}

.evidence-filters {
  display: grid;
  grid-template-columns: repeat(5, minmax(130px, 1fr));
  gap: 10px;
  margin-top: 16px;
}

.evidence-filters label {
  display: grid;
  gap: 5px;
  color: #496273;
  font-size: 0.76rem;
  font-weight: 800;
  text-transform: uppercase;
}

.evidence-filters select {
  width: 100%;
  min-height: 42px;
  padding: 8px 10px;
  border: 1px solid #b7c8d1;
  border-radius: 9px;
  color: var(--navy-950);
  background: white;
  font: inherit;
  font-size: 0.86rem;
  font-weight: 700;
  text-transform: none;
}

.rechallenge-link,
.private-recall-label {
  display: inline-flex;
  padding: 6px 9px;
  border-radius: 8px;
  font-size: 0.76rem;
  font-weight: 850;
  white-space: nowrap;
}

.rechallenge-link {
  color: white !important;
  background: var(--navy-800);
  text-decoration: none;
}

.private-recall-label {
  color: #526874;
  background: #edf2f5;
}

.dashboard-table-wrap {
  overflow: auto;
  margin-top: 18px;
  border: 1px solid var(--line);
  border-radius: 11px;
}

.dashboard-table {
  width: 100%;
  min-width: 920px;
  border-collapse: collapse;
  background: white;
  font-size: 0.86rem;
}

.dashboard-table th,
.dashboard-table td {
  padding: 11px 12px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: middle;
}

.dashboard-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  color: #496273;
  background: #f2f6f8;
  font-size: 0.74rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.dashboard-table a {
  color: var(--navy-800);
  font-weight: 800;
}

.answer-path { display:flex; flex-wrap:wrap; align-items:center; gap:4px; }
.answer-path-step { display:inline-flex; align-items:center; white-space:nowrap; }
.path-pill {
  display: inline-grid;
  min-width: 28px;
  min-height: 28px;
  padding: 3px 7px;
  line-height: 1.3;
  white-space: nowrap;
  place-items: center;
  border-radius: 7px;
  color: white;
  background: #4a6f82;
  font-weight: 850;
}

.path-pill.correct {
  background: var(--green-700);
}

.path-pill.wrong {
  background: var(--red-600);
}

.path-separator {
  margin: 0 4px;
  color: #8395a0;
  font-weight: 900;
}

.outcome-label {
  display: inline-flex;
  padding: 5px 8px;
  border-radius: 999px;
  color: #405765;
  background: #edf2f5;
  font-size: 0.74rem;
  font-weight: 800;
  text-transform: capitalize;
  white-space: nowrap;
}

.outcome-label.improved,
.outcome-label.correct,
.outcome-label.changed-correct {
  color: #176143;
  background: #e1f5eb;
}

.outcome-label.harmed,
.outcome-label.incorrect,
.outcome-label.still-incorrect {
  color: #9a2f3f;
  background: #fde9ec;
}

.dashboard-empty-state {
  max-width: 760px;
  margin: 8vh auto;
  padding: clamp(28px, 6vw, 56px);
  text-align: center;
}

.dashboard-empty-state h1 {
  margin: 0;
  color: var(--navy-950);
  font-size: clamp(1.8rem, 5vw, 3rem);
}

.dashboard-empty-state > p:not(.eyebrow) {
  margin: 16px auto 24px;
  color: var(--muted);
  line-height: 1.6;
}

.dashboard-empty-state a {
  display: inline-flex;
  text-decoration: none;
}

@media (max-width: 760px) {
  .import-lab {
    grid-template-columns: 1fr;
  }

  .import-lab-flow {
    grid-template-columns: repeat(2, 1fr);
  }

  .import-preview-head {
    grid-template-columns: 1fr;
  }

  .import-actions {
    flex-wrap: wrap;
  }

  .import-actions .button {
    flex: 1 1 150px;
  }

  .library-heading {
    display: block;
  }

  .library-heading > p {
    margin-top: 12px;
  }

  .library-heading-actions {
    margin-top: 12px;
  }

  .form-library-grid {
    grid-template-columns: 1fr;
  }

  .explanation-mode-card {
    align-items: stretch;
    flex-direction: column;
  }

  .dashboard-title-row,
  .dashboard-chart-grid,
  .coaching-prescription-grid,
  .investor-demo-card,
  .coach-spotlight {
    grid-template-columns: 1fr;
  }

  .investor-demo-card .button,
  .coach-spotlight .button {
    width: 100%;
    justify-content: center;
  }

  .dashboard-freshness {
    min-width: 0;
  }

  .dashboard-title-actions {
    width: 100%;
  }

  .dashboard-stat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .visual-signal-grid,
  .memory-queue-grid,
  .retrieval-principles,
  .evidence-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .retrieval-history {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .retrieval-history > div {
    grid-column: 1 / -1;
  }

  .loop-steps {
    grid-template-columns: repeat(2, 1fr);
  }

  .coaching-loop-head,
  .dashboard-panel-head {
    align-items: stretch;
    flex-direction: column;
  }

  .before-after {
    grid-template-columns: 1fr;
  }

  .dashboard-coach-message.user {
    margin-left: 0;
  }

  .coaching-loop-actions .button,
  .coaching-loop-actions a,
  .dashboard-coach-actions .button,
  #dashboard-coach-form .button {
    width: 100%;
    justify-content: center;
  }

}

@media (max-width: 460px) {
  .dashboard-stat-grid,
  .outcome-grid,
  .visual-signal-grid,
  .memory-queue-grid,
  .retrieval-history,
  .retrieval-principles,
  .evidence-filters {
    grid-template-columns: 1fr;
  }

  .retrieval-history > div {
    grid-column: auto;
  }

  .metric-row {
    grid-template-columns: 72px minmax(70px, 1fr) 45px;
  }

  .metric-row small {
    display: none;
  }

  .native-question-content {
    grid-template-columns: 1fr;
    padding: 16px;
  }

  .native-question-number {
    display: none;
  }

  .native-choice-list {
    grid-column: 1;
  }

  .info-popover {
    position: fixed;
    top: 50%;
    right: 24px;
    left: 24px;
    width: auto;
    transform: translateY(-50%);
  }
}

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

/* Build 20: separated investor demo and authenticated learner workspace */

/* Build 21: learner-controlled per-question timer */
.item-timer-toggle {
  min-height: 2.25rem;
  padding: 0.45rem 0.7rem;
  white-space: nowrap;
}

.review-question-meta > [hidden] {
  display: none;
}
.investor-shell {
  background:
    radial-gradient(circle at 90% 5%, rgba(20, 150, 212, 0.14), transparent 26rem),
    linear-gradient(180deg, #e7f1f6 0, var(--page) 36rem);
}

.investor-home-workspace {
  width: min(1240px, calc(100% - 32px));
}

.investor-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(300px, 0.7fr);
  gap: clamp(28px, 5vw, 64px);
  align-items: center;
  padding: clamp(30px, 6vw, 68px);
  overflow: hidden;
  color: white;
  border: 0;
  background:
    radial-gradient(circle at 88% 20%, rgba(56, 189, 248, 0.28), transparent 34%),
    linear-gradient(135deg, #0b4a70, #06283d 68%);
}

.investor-hero-copy h1 {
  max-width: 760px;
  margin: 0;
  font-size: clamp(2.2rem, 4.6vw, 3.8rem);
  line-height: 1.08;
  letter-spacing: -0.04em;
}

.investor-hero-copy > p:not(.eyebrow) {
  max-width: 700px;
  margin: 22px 0 0;
  color: #d6edf7;
  font-size: clamp(1rem, 2vw, 1.18rem);
  line-height: 1.6;
}

.investor-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 28px;
}

.investor-hero-actions .button:not(.button-primary) {
  color: white;
  border-color: rgba(255, 255, 255, 0.42);
  background: rgba(255, 255, 255, 0.08);
}

.mvp-readiness {
  padding: 22px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 18px;
  background: rgba(4, 31, 48, 0.62);
  backdrop-filter: blur(10px);
}

.mvp-readiness > div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
}

.mvp-readiness > div span,
.mvp-readiness p {
  color: #acd9eb;
  font-size: 0.8rem;
}

.mvp-readiness ol {
  display: grid;
  gap: 8px;
  margin: 16px 0;
  padding: 0;
  list-style: none;
}

.mvp-readiness li a {
  display: grid;
  grid-template-columns: 28px 1fr auto;
  gap: 10px;
  align-items: center;
  min-height: 44px;
  color: inherit;
  text-decoration: none;
  padding: 6px 8px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.07);
}

.mvp-readiness li a:hover { background: rgba(255, 255, 255, 0.16); }
.mvp-readiness li a:focus-visible { outline: 2px solid #8bd4f4; outline-offset: 3px; }

.mvp-readiness li b {
  display: grid;
  width: 24px;
  height: 24px;
  place-items: center;
  border-radius: 50%;
  color: var(--navy-950);
  background: #8bd4f4;
  font-size: 0.72rem;
}

.mvp-readiness li em {
  color: #84efbb;
  font-size: 0.73rem;
  font-style: normal;
  font-weight: 800;
}

.mvp-readiness p { margin: 0; line-height: 1.45; }

.demo-paths,
.product-proof,
.architecture-strip {
  margin-top: 24px;
}

.section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 16px;
}

.section-heading h2,
.product-proof h2,
.architecture-strip h2 {
  margin: 0;
  color: var(--navy-950);
  font-size: clamp(1.65rem, 4vw, 2.5rem);
  letter-spacing: -0.04em;
}

.section-heading .eyebrow,
.product-proof .eyebrow,
.architecture-strip .eyebrow,
.workspace-welcome .eyebrow {
  color: var(--sky-500);
}

.demo-path-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.demo-path-card {
  display: flex;
  min-height: 310px;
  flex-direction: column;
  padding: 24px;
}

.demo-path-card.featured {
  border-top: 4px solid var(--sky-500);
}

.path-number {
  color: #aec4cf;
  font-size: 2rem;
  font-weight: 850;
  letter-spacing: -0.04em;
}

.path-label {
  margin: 20px 0 5px;
  color: var(--sky-500);
  font-size: 0.73rem;
  font-weight: 850;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.demo-path-card h3 {
  margin: 0;
  color: var(--navy-950);
  font-size: 1.45rem;
}

.demo-path-card > p:not(.path-label) {
  margin: 12px 0 24px;
  color: var(--muted);
  line-height: 1.52;
}

.demo-path-card .button {
  justify-content: center;
  margin-top: auto;
  text-decoration: none;
}

.product-proof {
  padding: clamp(24px, 5vw, 42px);
}

.product-proof-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--line);
}

.product-proof-head > span {
  color: var(--muted);
  font-size: 0.85rem;
}

.proof-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin-top: 1px;
  background: var(--line);
}

.proof-grid > div {
  position: relative;
  display: flex;
  min-height: 158px;
  flex-direction: column;
  padding: 22px;
  background: white;
}

.proof-grid strong { color: var(--navy-950); font-size: 1.05rem; }
.proof-grid span { margin-top: 8px; color: var(--muted); line-height: 1.45; }
.proof-grid em { margin-top: auto; padding-top: 12px; color: var(--green-700); font-size: 0.72rem; font-style: normal; font-weight: 850; letter-spacing: 0.08em; text-transform: uppercase; }

.architecture-strip {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 30px;
  align-items: center;
  padding: 30px;
  border-radius: 16px;
  background: #dff3fc;
}

.exam-family-chips {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.exam-family-chips span {
  padding: 9px 12px;
  border: 1px solid #b5d9e8;
  border-radius: 999px;
  color: var(--navy-800);
  background: rgba(255, 255, 255, 0.75);
  font-size: 0.82rem;
  font-weight: 760;
}

.workspace-user {
  color: white;
  font-size: 0.86rem;
  font-weight: 760;
}

.workspace-welcome {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  margin-bottom: 22px;
}

.workspace-welcome h1 {
  margin: 0;
  color: var(--navy-950);
  font-size: clamp(2rem, 5vw, 3.4rem);
  letter-spacing: -0.05em;
}

.workspace-welcome p:not(.eyebrow) {
  max-width: 650px;
  margin: 10px 0 0;
  color: var(--muted);
  line-height: 1.55;
}

.workspace-welcome .button { flex: 0 0 auto; text-decoration: none; }

.initial-loading,
.load-error {
  display: grid;
  min-height: 70vh;
  place-content: center;
  gap: 12px;
  padding: 30px;
  text-align: center;
}

.load-error h1 { margin: 0; color: var(--navy-950); }
.load-error p { max-width: 540px; margin: 0 auto 10px; color: var(--muted); }

@media (max-width: 900px) {
  .investor-hero,
  .architecture-strip { grid-template-columns: 1fr; }
  .demo-path-grid,
  .proof-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .exam-family-chips { justify-content: flex-start; }
}

@media (max-width: 640px) {
  .investor-home-workspace { width: min(100% - 20px, 1240px); padding-top: 18px; }
  .investor-topbar,
  .workspace-welcome,
  .product-proof-head { align-items: stretch; flex-direction: column; }
  .header-status { flex-wrap: wrap; }
  .investor-hero { padding: 28px 22px; }
  .investor-hero-copy h1 { font-size: clamp(2.15rem, 12vw, 3.5rem); }
  .investor-hero-actions .button,
  .workspace-welcome .button { width: 100%; justify-content: center; }
  .demo-path-grid,
  .proof-grid { grid-template-columns: 1fr; }
  .demo-path-card { min-height: 0; }
}

/* Keep scan controls inside their own row; broad white halos obscured letters. */
.question-stage:not(.native-question-stage) .choice-hit,
.review-question-stage:not(.native-question-stage) .choice-hit { box-shadow: none !important; width: 20px; height: 20px; }
.attempt-analysis-panel { padding: 24px; margin: 20px 0; }
.attempt-analysis-panel select { display: block; width: 100%; max-width: 700px; padding: 12px; margin: 12px 0; border: 1px solid #b9cbd5; border-radius: 8px; background: white; color: var(--navy-900); font: inherit; }
.attempt-exposure-stats { display: flex; flex-wrap: wrap; gap: 24px; padding: 12px 0; }
.attempt-exposure-stats strong { font-size: 24px; }
.attempt-history-table { overflow-x: auto; margin-top: 12px; }
.attempt-history-table table { width: 100%; border-collapse: collapse; }
.attempt-history-table th, .attempt-history-table td { text-align: left; padding: 12px; border-bottom: 1px solid #dce5eb; }
.attempt-history-table small { display: block; }

.attempt-progress-card { padding: clamp(18px, 3vw, 30px); margin: 22px 0; }
.attempt-progress-head { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.attempt-progress-head h2 { margin: 4px 0; font-size: clamp(24px, 3vw, 34px); }
.progress-score-change { text-align: right; }
.progress-score-change strong { display: block; color: #0b6284; font-size: 40px; line-height: 1.1; }
.progress-score-change span { font-size: 14px; color: #5a6e7a; }
.progress-summary { display: flex; flex-wrap: wrap; gap: 12px 28px; margin: 18px 0 30px; color: #526775; font-size: 16px; }
.progress-summary b { color: #0b354b; }
.progress-chart-layout { display: flex; gap: 10px; }
.progress-y-axis { position: relative; width: 45px; flex: 0 0 45px; height: 240px; color: #5a6e7a; font-size: 14px; }
.progress-y-axis span { position: absolute; right: 0; transform: translateY(-50%); }
.progress-chart-main { flex: 1; min-width: 0; }
.progress-plot { position: relative; height: 240px; }
.progress-plot svg { display: block; width: 100%; height: 100%; overflow: visible; }
.progress-grid-line { stroke: #dce7ed; stroke-width: 1; vector-effect: non-scaling-stroke; }
.progress-cumulative-line { stroke: #7994a4; stroke-width: 1.5; stroke-dasharray: 5 6; vector-effect: non-scaling-stroke; }
.progress-score-line { stroke: #1598c7; stroke-width: 3; fill: none; stroke-linejoin: round; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.progress-point { position: absolute; transform: translate(-50%, -50%); width: 12px; height: 12px; }
.progress-point i { display: block; width: 12px; height: 12px; border: 3px solid #1598c7; background: white; border-radius: 50%; box-sizing: border-box; }
.progress-point.selected i { background: #0b354b; border-color: #0b354b; outline: 4px solid #c7edf7; }
.progress-point b { position: absolute; bottom: 21px; left: 50%; transform: translateX(-50%); font-size: 18px; line-height: 1; color: #0b354b; background: white; padding: 2px 4px; border-radius: 4px; }
.progress-point b.below { bottom: auto; top: 21px; }
.progress-attempt-labels { display: grid; grid-template-columns: repeat(var(--attempt-count), minmax(0,1fr)); margin-top: 18px; gap: 6px; }
.progress-attempt-labels button { font: inherit; color: #0b354b; border: 1px solid transparent; background: transparent; border-radius: 8px; padding: 8px 2px; cursor: pointer; overflow-wrap: anywhere; }
.progress-attempt-labels button:hover, .progress-attempt-labels button[aria-pressed="true"] { background: #edf8fc; border-color: #aedcea; }
.progress-attempt-labels button:focus-visible { outline: 2px solid #1598c7; outline-offset: 2px; }
.progress-attempt-labels span, .progress-attempt-labels strong, .progress-attempt-labels small { display: block; margin: 3px 0; font-size: 14px; }
.progress-attempt-labels span, .progress-attempt-labels small { color: #5a6e7a; }
.progress-legend { display: flex; flex-wrap: wrap; gap: 12px 24px; margin: 22px 0 10px; color: #526775; font-size: 14px; }
.progress-legend span { display: flex; align-items: center; gap: 8px; }
.progress-legend i { width: 22px; border-top: 3px solid #1598c7; }
.progress-legend .cumulative-key { border-top: 2px dashed #7994a4; }
@media(max-width: 600px) {
 .attempt-progress-head { align-items: flex-start; gap: 12px; }
 .progress-score-change strong { font-size: 32px; }
 .progress-score-change { max-width: 125px; }
 .progress-point b { font-size: 16px; }
 .progress-y-axis { width: 35px; flex-basis: 35px; }
 .progress-attempt-labels span { font-size: 12px; }
}

.review-retention-panel .review-spark-list > .recall-pass-row { grid-template-columns: minmax(180px, 1.2fr) minmax(80px, 1fr) 55px 105px; gap: 16px; font-size: 16px; padding: 12px 0; border-bottom: 1px solid #e1e9ee; }
.recall-pass-context > b, .recall-pass-context > span, .recall-pass-context > small { display: block; margin: 3px 0; text-align: left; }
.recall-pass-context > span, .recall-pass-context > small, .recall-pass-row > small { font-size: 14px; }
.recall-pass-row > small > span { display: block; }
@media(max-width: 600px) {
 .review-retention-panel .review-spark-list > .recall-pass-row { grid-template-columns: minmax(0, 1fr) 50px 98px; gap: 8px; }
 .recall-pass-row .dashboard-bar-track { display: none; }
}

.coach-scan-highlight { position: absolute; background: rgba(255, 211, 57, .32); box-shadow: 0 0 0 2px rgba(255, 211, 57, .32); pointer-events: none; z-index: 1; }
.coach-clue-mark, .ai-clue-quotes mark { background: #fff0ac; color: #172f40; border-radius: 3px; padding: 0 3px; }
.ai-clue-quotes { margin: 12px 0; line-height: 1.8; }
.reason-coaching-action { margin: 12px 0; padding: 14px; border: 1px solid #b7ddeb; border-radius: 8px; background: #f0f9fd; }
.reason-coaching-action p { margin: 0 0 10px; }
.first-review-list { display: grid; gap: 16px; margin: 20px 0; }
.first-review-list > article { padding: 18px; border: 1px solid #d8e5ec; border-radius: 10px; }
.first-review-list small, .first-review-list article > div:first-child > span { display: block; margin-top: 5px; color: #536e7c; font-size: 14px; }
.first-review-counts { display: flex; flex-wrap: wrap; gap: 20px; margin: 16px 0; }
.first-review-counts strong { font-size: 24px; color: #0b354b; }
.reason-pattern-panel { margin-top: 20px; }
.reason-evidence-list > div { padding: 14px 0; border-bottom: 1px solid #d8e5ec; }
.reason-evidence-list span, .reason-evidence-list small { display: block; margin-top: 6px; }
.reason-evidence-list small, .length-evidence small { color: #536e7c; font-size: 14px; }
.length-evidence { margin: 20px 0; padding: 14px; background: #f0f8fc; border-radius: 8px; }
.length-evidence > * { display: block; margin: 6px 0; }
.import-preview-questions { max-height: 520px; overflow-y: auto; }

.recall-timing-choice { display: grid; gap: .65rem; margin: 1rem 0; padding: 1rem; border: 1px solid #b5d4de; border-radius: 12px; background: #f2fafd; }
.recall-timing-choice select { width: min(100%, 420px); padding: .7rem; border: 1px solid #9bb7c4; border-radius: 8px; background: white; color: #123e51; font: inherit; }
.recall-timing-choice span { color: #526774; font-size: .9rem; }

.length-dimension-controls{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.length-dimension-controls button{padding:.7rem 1rem;border:1px solid #b5d4de;border-radius:8px;color:#123e51;background:white;font:inherit;cursor:pointer}.length-dimension-controls button[aria-pressed=true]{color:white;background:#104f70}.reading-load-bars article{display:grid;grid-template-columns:100px minmax(0,1fr) 145px;gap:1rem;align-items:center;padding:1rem 0;border-bottom:1px solid #e1e9ec}.reading-load-bars small{display:block;color:#526774;font-size:.8rem;margin-top:.35rem}.reading-load-track{height:20px;background:#e5edf0;border-radius:5px;overflow:hidden}.reading-load-track span{display:block;height:100%;background:#1887af}.reading-load-bars article>span{text-align:right}.reading-load-bars article>span>strong{font-size:1.35rem}@media(max-width:600px){.reading-load-bars article{grid-template-columns:75px minmax(0,1fr) 85px;gap:.5rem}.reading-load-bars small{font-size:.72rem}}

.pace-inline-select{width:55px!important;min-width:0!important;max-width:55px!important;padding:0 2px!important;height:26px!important;line-height:normal;background:transparent;border:1px solid #b5c5cc;border-radius:2px;color:inherit;font:inherit;font-weight:inherit;cursor:pointer}.pace-inline-select:focus-visible{outline:2px solid #1887af;outline-offset:2px}.pace-card-heading{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.pace-card-content{min-width:0}.pace-card-secondary{border-top:1px solid #dce7eb;margin-top:.5rem;padding-top:.35rem}.pace-signal-card .signal-ring{flex-shrink:0}.pace-signal-card small{line-height:1.35}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Investor and learner overview: essential numbers first, detail on demand. */
.dashboard-title-row h1{font-size:clamp(1.7rem,3.5vw,2.8rem);line-height:1.15;letter-spacing:-.035em}.evidence-status{display:flex;align-items:baseline;gap:1rem;padding:1rem 1.2rem;margin-bottom:1rem;border:1px solid #b5d4de;border-left:4px solid #1689ac;border-radius:10px;background:#f1fafd}.evidence-status span{font-size:.95rem;color:#526774}.dashboard-stat-grid,.visual-signal-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.question-groups{padding:1rem 1.2rem;margin:1rem 0}.question-groups summary,.scheduling-detail summary{font-weight:700;cursor:pointer;color:#123e51}.question-group-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.question-group-grid p{font-size:.95rem}.scheduling-detail{margin:1rem 0}.validation-plan{margin:1.5rem 0;padding:1.5rem}.validation-plan h2{margin:.35rem 0 .75rem;font-size:clamp(1.5rem,3vw,2rem)}.validation-plan p{line-height:1.6;color:#526774;font-size:1rem}.validation-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:1rem}.validation-grid article{border-top:2px solid #1887af;padding-top:1rem}.validation-grid h3{font-size:1.1rem;margin:0 0 .5rem}.architecture-strip>p{line-height:1.5;color:#526774}.progress-score-change strong{font-size:1.65rem}.recall-next-card a{display:inline-block;margin-top:.5rem}.signal-card small{font-size:.875rem}.reading-load-bars small{font-size:.875rem}.dashboard-stat-grid small{font-size:.875rem}.pace-signal-card .pace-inline-select{font-size:inherit}@media(max-width:900px){.dashboard-stat-grid,.visual-signal-grid{grid-template-columns:1fr 1fr}.evidence-status{display:grid;gap:.4rem}}@media(max-width:600px){.dashboard-stat-grid,.visual-signal-grid,.validation-grid,.question-group-grid{grid-template-columns:1fr}.dashboard-title-row h1{font-size:1.8rem}.evidence-status{padding:.9rem}.signal-card{min-height:130px}.reading-load-bars small{font-size:.8rem}.progress-score-change strong{font-size:1.4rem}}

.recall-timing-choice { grid-template-columns: auto auto minmax(0, 420px); align-items: center; justify-content: start; }
.recall-timing-choice .pace-inline-select { width: auto; padding: .15rem .3rem; border-radius: 3px; }
.recall-timing-choice > span { grid-column: 1 / -1; }
@media(max-width: 600px) { .recall-timing-choice { grid-template-columns: auto 1fr; } .recall-timing-choice #recall-timer-mode { grid-column: 1 / -1; } .recall-timing-choice .pace-inline-select { justify-self: start; } }

/* A quiet closing boundary for the public product page. */
.investor-home-workspace .exam-family-chips { grid-column: 1 / -1; justify-content: flex-start; }
.investor-footer { margin-top: 1.5rem; background: var(--navy-950); color: #d5e4ed; border-top: 3px solid var(--sky-500); }
.investor-footer-inner { width: min(1240px, calc(100% - 32px)); margin: 0 auto; padding: 2.25rem 0 1.5rem; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem 2rem; }
.investor-footer a { color: #d5e4ed; text-decoration: none; }
.investor-footer a:hover { color: white; text-decoration: underline; text-underline-offset: .25rem; }
.investor-footer a:focus-visible { outline: 2px solid #77d2f4; outline-offset: 5px; border-radius: 2px; }
.investor-footer .investor-footer-brand { color: white; font-size: 1.2rem; font-weight: 800; letter-spacing: -.025em; }
.investor-footer nav { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; font-size: .95rem; }
.investor-footer small { flex-basis: 100%; padding-top: 1.25rem; border-top: 1px solid #365768; font-size: .875rem; color: #b7cedb; }
@media (max-width: 640px) { .investor-footer-inner { width: calc(100% - 32px); align-items: flex-start; flex-direction: column; gap: 1.25rem; } .investor-footer nav { gap: .8rem 1.2rem; } .investor-footer small { width: 100%; } }

.proof-grid em, .path-label { font-size: .875rem; }
.investor-footer nav a { padding: .3rem 0; }
.load-error { width: min(100% - 32px, 680px); margin: 3rem auto; line-height: 1.6; }
.load-error .button { margin: .5rem .5rem 0 0; }

.workspace-study-actions { display:flex; flex-wrap:wrap; gap:.65rem; justify-content:flex-end; }
.takeaway-save-note { margin:.4rem 0 1rem; color:#526774; font-size:.9rem; line-height:1.5; }
.takeaway-save-note a { color:#0b698d; font-weight:700; text-underline-offset:.2rem; }
.review-sheet-workspace { width:min(1040px, calc(100% - 32px)); padding-bottom:3rem; }
.review-sheet-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:2rem; margin:1rem 0 1.5rem; }
.review-sheet-heading h1 { margin:.3rem 0 .75rem; color:var(--navy-950); font-size:clamp(1.8rem,4vw,2.8rem); line-height:1.15; letter-spacing:-.035em; }
.review-sheet-heading p { max-width:720px; font-size:1rem; line-height:1.6; color:#526774; }
.review-sheet-heading > button { flex-shrink:0; }
.review-sheet-controls { position:sticky; top:.5rem; z-index:5; padding:1rem; border:1px solid #b5d4de; box-shadow:0 4px 16px #082f4910; }
.review-sheet-modes { display:flex; flex-wrap:wrap; gap:.5rem; }
.review-sheet-modes button { border:1px solid #b5d4de; border-radius:7px; padding:.65rem 1rem; background:#f3f9fc; color:#123e51; font:inherit; font-weight:700; cursor:pointer; }
.review-sheet-modes button[aria-pressed="true"] { color:white; background:#0f4b6b; border-color:#0f4b6b; }
.review-sheet-filter-row { display:flex; flex-wrap:wrap; gap:1rem; align-items:end; margin-top:1rem; }
.review-sheet-filter-row label { display:grid; gap:.4rem; font-size:.9rem; font-weight:700; color:#123e51; }
.review-sheet-filter-row select,.review-sheet-filter-row input[type="search"] { width:100%; min-height:42px; border:1px solid #a6bfcb; border-radius:7px; padding:.55rem .7rem; font:inherit; color:#123e51; background:white; }
.review-sheet-filter-row > label:first-child { flex:1 1 230px; }
.review-sheet-filter-row .review-sheet-search { flex:2 1 260px; }
.review-sheet-filter-row .review-sheet-missed { display:flex; align-items:center; gap:.5rem; min-height:42px; font-weight:600; }
.review-sheet-missed input { width:18px; height:18px; accent-color:#0f4b6b; }
.review-sheet-mode-note,.review-sheet-count { font-size:.9rem; line-height:1.5; color:#526774; }
.review-sheet-count { font-weight:700; color:#123e51; }
.review-sheet-list { display:grid; gap:1rem; }
.review-sheet-entry { padding:1.3rem 1.5rem; border:1px solid #cddfe6; box-shadow:none; }
.review-sheet-entry > header { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
.review-sheet-source { color:#526774; font-size:.9rem; }
.review-sheet-entry h2 { margin:.35rem 0; font-size:1.15rem; color:#123e51; }
.review-sheet-entry small { font-size:.875rem; color:#526774; }
.review-sheet-entry header .button { padding:.45rem .75rem; min-height:40px; font-size:.9rem; flex-shrink:0; }
.review-sheet-own-note,.review-sheet-prepared { margin-top:1rem; padding-top:1rem; border-top:1px solid #dbe7ed; }
.review-sheet-section-title { display:flex; flex-wrap:wrap; gap:.5rem 1rem; align-items:baseline; }
.review-sheet-own-note strong,.review-sheet-prepared > strong { color:#0e5772; font-size:.9rem; }
.review-sheet-entry p { line-height:1.65; margin:.5rem 0 0; white-space:pre-wrap; overflow-wrap:anywhere; }
.review-sheet-takeaway { border-left:3px solid #1689ac; padding-left:.9rem; font-size:1.05rem; color:#123e51; }
.review-sheet-reason { font-size:.9rem; color:#526774; }
.review-sheet-reason span { font-weight:700; }
.review-sheet-answer { font-weight:700; }
.review-sheet-muted,.review-sheet-storage-note { color:#526774; font-size:.9rem; line-height:1.6; }
.review-sheet-storage-note { margin-top:1.5rem; }
.review-sheet-empty { padding:1.5rem; line-height:1.6; }
.review-sheet-empty h2 { font-size:1.3rem; }
@media(max-width:640px) {
 .workspace-study-actions { justify-content:flex-start; }
 .review-sheet-heading { flex-direction:column; gap:.6rem; }
 .review-sheet-controls { position:static; }
 .review-sheet-modes { display:grid; grid-template-columns:1fr 1fr; }
 .review-sheet-modes button { padding:.65rem .35rem; font-size:.9rem; }
 .review-sheet-entry { padding:1rem; }
 .review-sheet-entry > header { flex-direction:column; gap:.75rem; }
 .review-sheet-filter-row > label { flex-basis:100%; }
}
@media print {
 .review-sheet-shell .topbar,.review-sheet-controls,.review-sheet-heading > button,.review-sheet-entry header .button { display:none !important; }
 .review-sheet-shell { background:white; }
 .review-sheet-workspace { width:100%; padding:0; margin:0; }
 .review-sheet-list { display:block; }
 .review-sheet-entry { break-inside:avoid; margin-bottom:1rem; padding:1rem 0; border:0; border-bottom:1px solid #aaa; }
 .review-sheet-heading h1 { font-size:24pt; }
 .review-sheet-entry p { color:black; }
}

.review-sheet-attempt-link { color:#526774; font-size:.875rem; text-underline-offset:.2rem; }
.review-sheet-attempt-link:hover { color:#0b698d; }
@media print { .review-sheet-attempt-link { text-decoration:none; } }

.miss-reason-card > label { display:block; margin:.5rem 0; color:#123e51; font-weight:700; }
.miss-reason-card .miss-reason-trigger { width:100%; }

/* Keep review outcomes scannable; supporting evidence stays available on demand. */
.first-review-result { margin: 16px 0 12px; line-height: 1.6; }
.first-review-result > strong { color: #0b354b; font-size: 1.5rem; }
.dashboard-evidence-details { margin-top: 12px; font-size: 1rem; line-height: 1.6; }
.dashboard-evidence-details > summary { width: fit-content; color: #125574; cursor: pointer; font-size: .875rem; font-weight: 600; }
.dashboard-evidence-details > summary:focus-visible { outline: 2px solid #139ccc; outline-offset: 4px; }
.dashboard-evidence-details p { margin: 10px 0; }
.reason-pattern-summary { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; align-items: baseline; }
.reason-evidence-list .reason-pattern-summary > span { margin: 0; color: #536e7c; }
.reason-question-list { margin: 12px 0; padding-left: 22px; }
.reason-question-list li { margin: 8px 0; }
.reason-question-list a { display: inline-block; padding: 4px 2px; text-decoration: underline; color: #125574; }

.scheduling-detail > summary { padding: 10px 0; min-height: 44px; box-sizing: border-box; }
.scheduling-detail > summary:focus-visible { outline: 2px solid #139ccc; outline-offset: 4px; }
.scheduling-explanation { margin: 8px 0 16px; padding: 14px 18px; border-left: 3px solid #1887af; background: #f1fafd; }
.scheduling-explanation p { margin: 0; font-size: 1rem; line-height: 1.6; color: #354f5e; }
.scheduling-explanation p + p { margin-top: 12px; }

.reading-target-control { display: inline-flex; align-items: center; gap: 8px; font-size: .875rem; white-space: nowrap; }
.reading-observation { margin: 16px 0 0; padding: 12px 16px; border-left: 3px solid #1887af; background: #f1fafd; font-size: 1rem; line-height: 1.6; }

.reading-target-input { width: 72px; min-width: 0; padding: 2px 4px; border: 1px solid #b5c5cc; border-radius: 2px; background: transparent; color: inherit; font: inherit; font-size: 1rem; }
.reading-target-input:focus-visible { outline: 2px solid #1887af; outline-offset: 2px; }

.roadmap-status { display: block; margin-bottom: 10px; color: #125574; font-size: .875rem; font-weight: 700; }

.product-roadmap > p { max-width: 82ch; }
.roadmap-group-title { margin: 24px 0 16px; font-size: 1.125rem; }
.roadmap-priority-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 32px; }
.roadmap-priority-grid article { border-top: 2px solid #1887af; padding-top: 16px; min-width: 0; }
.roadmap-priority-grid h3 { margin: 0 0 10px; font-size: 1.125rem; line-height: 1.4; }
.product-roadmap .roadmap-benefit { color: #123e51; margin-bottom: 0; }
.roadmap-exploration { margin-top: 32px; padding: 24px; border-radius: 12px; background: #eff7fa; }
.roadmap-exploration > h3 { margin: 0 0 20px; font-size: 1.25rem; }
.roadmap-exploration-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.roadmap-exploration-grid h4 { margin: 0 0 10px; font-size: 1rem; line-height: 1.5; }
.roadmap-exploration-grid p { margin-bottom: 0; }
.product-roadmap .roadmap-footnote { margin: 20px 0 0; font-size: .875rem; max-width: none; }
@media (max-width: 900px) { .roadmap-exploration-grid { grid-template-columns: 1fr; gap: 20px; } }
@media (max-width: 600px) { .roadmap-priority-grid { grid-template-columns: 1fr; } .roadmap-exploration { padding: 20px 16px; } }

.account-sync-status { position: fixed; z-index: 100; bottom: 12px; right: 16px; padding: 6px 10px; border: 1px solid #c2d4db; border-radius: 6px; background: #fff; color: #526774; font: inherit; font-size: .875rem; box-shadow: 0 2px 8px #092f4010; }
.account-sync-status.needs-attention { border-color: #bc831c; color: #714c09; }
.account-sync-status:focus-visible { outline: 2px solid #1887af; outline-offset: 3px; }
.sync-conflict-dialog { max-width: min(600px, calc(100vw - 32px)); padding: 28px; border: 1px solid #b5c5cc; border-radius: 12px; color: #123e51; }
.sync-conflict-dialog::backdrop { background: #092f4070; }
.sync-conflict-dialog h2 { font-size: 1.5rem; margin-top: 0; }
.sync-conflict-dialog p { font-size: 1rem; line-height: 1.6; }
.sync-conflict-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; }
.sync-conflict-actions button { padding: 10px 12px; font: inherit; border: 1px solid #b5c5cc; border-radius: 6px; background: #f1fafd; cursor: pointer; }
@media print { .account-sync-status, .sync-conflict-dialog { display: none !important; } }

.public-exam-access { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 8px 20px; padding: 8px 20px; border-bottom: 1px solid #ffffff26; }
.public-exam-access a { font-size: .875rem; color: #e5f5fc; font-weight: 700; text-decoration: none; padding: 4px; }
.public-exam-access a:hover { text-decoration: underline; }
.public-exam-access a:focus-visible { outline: 2px solid #8bd4f4; outline-offset: 2px; }

.site-feedback-launcher { min-height: 44px; padding: 8px 12px; font: inherit; font-size: .875rem; cursor: pointer; background: transparent; }
body > .site-feedback-launcher { margin: 12px 16px; color: #123e51; border-color: #c2d4db; }
.exam-name .site-feedback-launcher { display: block; margin: 4px auto 0; }
.site-feedback-launcher:focus-visible { outline: 2px solid #1887af; outline-offset: 3px; }
.site-feedback-dialog { width: min(560px, calc(100% - 32px)); max-height: calc(100dvh - 32px); padding: 24px; overflow: auto; border: 1px solid #b5c5cc; border-radius: 14px; color: #123e51; }
.site-feedback-dialog::backdrop { background: #092f4070; }
.site-feedback-head { display: flex; align-items: start; justify-content: space-between; gap: 16px; }
.site-feedback-head h2 { margin: 0; font-size: 1.5rem; }
.site-feedback-head button { border: 0; background: transparent; font-size: 1.75rem; min-width: 44px; min-height: 44px; cursor: pointer; }
.site-feedback-dialog p { font-size: 1rem; line-height: 1.5; }
.site-feedback-dialog label { display: grid; gap: 8px; margin: 16px 0; font-size: 1rem; font-weight: 600; }
.site-feedback-dialog label > span { font-weight: 400; }
.site-feedback-dialog input:not([type=checkbox]), .site-feedback-dialog textarea, .site-feedback-dialog select { width: 100%; padding: 10px 12px; border: 1px solid #b5c5cc; border-radius: 6px; color: inherit; font: inherit; background: white; }
.site-feedback-dialog textarea { resize: vertical; }
.site-feedback-dialog .feedback-context-option { display: flex; align-items: start; gap: 10px; font-size: .875rem; }
.feedback-context-option input { margin-top: 4px; flex: 0 0 auto; }
.site-feedback-dialog .feedback-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.site-feedback-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 12px; }
.site-feedback-status { min-height: 24px; }
.feedback-inbox-heading { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 24px; }
.feedback-inbox-heading h1 { font-size: clamp(1.75rem, 4vw, 2.5rem); margin-bottom: 8px; }
.feedback-report { padding: 24px; margin-bottom: 20px; }
.feedback-report header { display: flex; justify-content: space-between; align-items: start; flex-wrap: wrap; gap: 16px; }
.feedback-report-kind { font-weight: 700; font-size: 1rem; }
.feedback-report header p, .feedback-report-meta { color: #526774; font-size: .875rem; overflow-wrap: anywhere; }
.feedback-report-message { white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.6; font-size: 1rem; }
.feedback-report select { padding: 6px; margin-left: 8px; font: inherit; }
.feedback-error { color: #a52a3e; font-size: 1rem; }
@media print { .site-feedback-launcher, .site-feedback-dialog { display: none !important; } }

.evidence-sort-heading { display:flex; align-items:center; gap:8px; width:100%; min-height:44px; border:0; padding:0; background:transparent; color:inherit; font:inherit; font-weight:inherit; text-align:left; cursor:pointer; white-space:nowrap; }
.evidence-sort-heading span { font-size:11px; opacity:.7; }
.evidence-sort-heading:focus-visible { outline:2px solid #1596ca; outline-offset:3px; border-radius:3px; }
.dashboard-table th[aria-sort="ascending"], .dashboard-table th[aria-sort="descending"] { color:#0b668b; }

.results-table-controls { display:flex; flex-wrap:wrap; gap:10px; margin:24px 0 12px; }
.review-table th[aria-sort="ascending"], .review-table th[aria-sort="descending"] { color:#0b668b; }

.challenge-choice-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.demo-path-card .challenge-choice-actions { margin-top:auto; }
.clinical-reference-card a { display:block; color:#0b668b; font-size:14px; line-height:1.6; overflow-wrap:anywhere; }

.question-quality-plan { margin-top: 28px; padding: 22px 24px; border: 1px solid #bdd8e4; border-radius: 12px; background: #f4fafe; }
.question-quality-plan h3 { margin: 0 0 14px; font-size: 1.125rem; }
.question-quality-plan ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 32px; padding-left: 22px; margin: 0 0 16px; }
.question-quality-plan li { padding-left: 3px; line-height: 1.6; }
.question-quality-plan p { margin: 0; }
.market-context > p { max-width: 85ch; }
.market-estimates { margin-top: 20px; }
.market-estimates summary { cursor: pointer; color: #125574; font-weight: 700; line-height: 1.5; }
.market-estimates summary:focus-visible { outline: 2px solid #1887af; outline-offset: 4px; }
.market-estimates p { margin-top: 16px; max-width: 95ch; }
.market-estimates a { color: #125574; text-decoration: underline; }
@media (max-width: 600px) { .question-quality-plan { padding: 20px 16px; } .question-quality-plan ol { grid-template-columns: 1fr; } }

.expert-review-roadmap { margin-top: 28px; border-top: 2px solid #1887af; padding-top: 20px; }
.expert-review-roadmap h3 { margin: 0 0 12px; font-size: 1.25rem; line-height: 1.4; }
.expert-review-roadmap p { max-width: 90ch; }

.product-vision { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.5fr); gap: 24px 40px; align-items: center; margin-top: 24px; padding: clamp(24px, 4vw, 36px); border-left: 4px solid #1887af; }
.product-vision .eyebrow { color: #1887af; }
.product-vision h2 { margin: 0; color: var(--navy-950); font-size: clamp(1.5rem, 3vw, 2rem); line-height: 1.2; letter-spacing: -.025em; }
.product-vision > p { margin: 0; line-height: 1.65; }
@media (max-width: 760px) { .product-vision { grid-template-columns: 1fr; gap: 16px; } }

/* Study-material question builder */
.import-dialog fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.import-dialog [hidden] { display: none !important; }
.builder-mode { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0; }
.builder-fields { display: grid; grid-template-columns: minmax(0, 2fr) minmax(90px, .7fr) minmax(110px, 1fr); gap: 14px; }
.builder-fields .import-field { min-width: 0; }
.import-field textarea, .import-field select { width: 100%; min-width: 0; padding: 12px; border: 1px solid #b8c9d4; border-radius: 9px; background: #fbfdfe; color: var(--ink); font: inherit; font-weight: 400; line-height: 1.5; }
.import-field textarea { resize: vertical; }
.import-field input { min-width: 0; width: 100%; font-size: 1rem; }
.import-field small { font-size: .875rem; line-height: 1.5; }
.builder-recording { padding: 16px; border: 1px solid var(--line); border-radius: 10px; margin: 16px 0; }
.builder-recording summary, .import-preview-questions summary { cursor: pointer; font-weight: 700; color: var(--navy-800); }
.builder-plan { padding: 14px; background: #edf8fc; border-radius: 10px; line-height: 1.5; overflow-wrap: anywhere; }
.import-preview-questions p { overflow-wrap: anywhere; }
@media (max-width: 600px) { .builder-fields { grid-template-columns: 1fr; gap: 0; } }

.builder-natural { padding: 18px; margin: 18px 0; border: 1px solid #b6dce9; border-radius: 12px; background: #f1faff; }
.builder-natural h3 { margin: 0; font-size: 1.125rem; }
.builder-refine > summary { cursor: pointer; font-weight: 750; color: var(--navy-800); margin: 16px 0; }
.builder-natural [role=status], .builder-recording [role=status] { line-height: 1.5; font-size: .95rem; }

.builder-material { margin: 18px 0; }
.builder-material > summary, .builder-refine > summary { cursor: pointer; color: var(--navy-800); font-weight: 700; padding: 12px 0; }
.optional-label { margin-left: 6px; font-size: .875rem; font-weight: 400; color: var(--muted); }
.upload-use-note, .builder-review-note { color: var(--muted); font-size: .875rem; line-height: 1.5; }
.builder-natural { margin-bottom: 8px; }

.attempt-confidence-control { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding-top: 12px; font-size: .9375rem; }
.attempt-confidence-control input { width: 76px; min-height: 36px; border: 1px solid #9eb7c5; border-radius: 6px; padding: 6px 8px; font: inherit; }
.attempt-confidence-control small { color: var(--muted); font-size: .875rem; }
.confidence-summary { padding: 24px; margin: 20px 0; border: 1px solid var(--line); border-radius: 14px; background: #f5fbfe; }
.confidence-summary h2 { margin: 8px 0 20px; font-size: 1.4rem; }
.confidence-comparison { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.confidence-comparison strong { display: block; color: var(--navy-800); font-size: 1.8rem; }
.confidence-comparison span { color: var(--muted); }
.confidence-summary p { line-height: 1.5; }
.confidence-summary summary { cursor: pointer; color: var(--navy-800); font-weight: 700; }
.confidence-summary table { width: 100%; margin-top: 16px; border-collapse: collapse; }
.confidence-summary th,.confidence-summary td { padding: 10px 8px; text-align: left; border-bottom: 1px solid var(--line); }
.confidence-chart { --confidence-label-width:125px; --confidence-value-width:100px; margin:24px 0 16px; padding:20px; background:#fff; border:1px solid var(--line); border-radius:10px; }
.confidence-chart figcaption { display:grid; gap:5px; margin-bottom:18px; color:var(--navy-900); }
.confidence-chart figcaption span,.confidence-chart-label small,.confidence-chart-value small { display:block; font-size:.875rem; color:var(--muted); line-height:1.4; }
.confidence-chart-axis { display:flex; justify-content:space-between; margin:0 calc(var(--confidence-value-width) + 16px) 4px calc(var(--confidence-label-width) + 16px); color:var(--muted); font-size:.75rem; }
.confidence-chart-row { display:grid; grid-template-columns:var(--confidence-label-width) minmax(0,1fr) var(--confidence-value-width); gap:16px; align-items:center; padding:10px 0; }
.confidence-chart-label strong,.confidence-chart-value strong { color:var(--navy-900); }
.confidence-chart-value { text-align:right; font-variant-numeric:tabular-nums; }
.confidence-chart-track { position:relative; height:22px; background:#e5eef2; border-radius:4px; overflow:hidden; }
.confidence-chart-track::after { content:""; position:absolute; inset:0 auto 0 50%; border-left:1px dashed #8ca5b5; }
.confidence-chart-track > span { display:block; height:100%; background:#176f98; }
.confidence-chart-empty .confidence-chart-track { background:transparent; border:1px dashed #c8d8e1; }
.confidence-chart-empty .confidence-chart-track::after { display:none; }
.confidence-chart-note { font-size:.875rem; color:var(--muted); }
@media (max-width:600px) {
  .confidence-chart { --confidence-value-width:68px; padding:14px 10px; }
  .confidence-chart-row { grid-template-columns:minmax(0,1fr) var(--confidence-value-width); gap:8px; }
  .confidence-chart-label { grid-column:1/-1; display:flex; align-items:baseline; justify-content:space-between; gap:8px; }
  .confidence-chart-axis { margin-left:0; margin-right:calc(var(--confidence-value-width) + 8px); }
  .confidence-chart-label,.confidence-chart-value { font-size:.875rem; }
  .confidence-chart-label small,.confidence-chart-value small { font-size:.75rem; }
}
@media (hover: none) { .choice-row-hit:hover { background: transparent; } }
@media (max-width: 600px) { .confidence-comparison { grid-template-columns: 1fr; } .confidence-summary { padding: 18px; } .confidence-summary table { font-size: .875rem; } }

.attempt-confidence-buttons { display: flex; flex-wrap: wrap; gap: 6px; }
.attempt-confidence-buttons .confidence-button { min-height: 44px; min-width: 84px; padding: 7px 12px; }
.attempt-confidence-buttons .confidence-button small { display: block; font-size: .875rem; color: inherit; }
.attempt-confidence-buttons .confidence-button:disabled { opacity: .5; cursor: default; }
.attempt-confidence-buttons [data-attempt-confidence="0"] { color: #9f1239; background: #fff1f2; border-color: #e6b4c0; }
.attempt-confidence-buttons [data-attempt-confidence="33"] { color: #805400; background: #fff8e7; border-color: #d9c28a; }
.attempt-confidence-buttons [data-attempt-confidence="66"] { color: #075985; background: #eff7ff; border-color: #9ec7df; }
.attempt-confidence-buttons [data-attempt-confidence="100"] { color: #166534; background: #edf9f3; border-color: #9cccb0; }
.attempt-confidence-buttons [data-attempt-confidence="0"].selected { background: #9f1239; color: white; border-color: #9f1239; }
.attempt-confidence-buttons [data-attempt-confidence="33"].selected { background: #805400; color: white; border-color: #805400; }
.attempt-confidence-buttons [data-attempt-confidence="66"].selected { background: #075985; color: white; border-color: #075985; }
.attempt-confidence-buttons [data-attempt-confidence="100"].selected { background: #166534; color: white; border-color: #166534; }
.attempt-confidence-buttons .confidence-button:focus-visible { outline: 2px solid #142f40; outline-offset: 3px; }

.attempt-confidence-buttons [data-attempt-confidence="50"] { color: #805400; background: #fff8e7; border-color: #d9c28a; }
.attempt-confidence-buttons [data-attempt-confidence="50"].selected { color: white; background: #805400; border-color: #805400; }

.removed-attempts { padding: 20px 24px; margin: 16px 0; }
.removed-attempts summary { cursor: pointer; font-weight: 700; }
.removed-attempt-row { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 0; border-bottom:1px solid var(--line); }
.removed-attempt-row small { display:block; margin-top:4px; }

.attempt-insights { margin:24px 0; padding:24px; border:1px solid var(--line); border-radius:14px; background:#f5fbfe; }
.attempt-insights h2 { font-size:1.4rem; margin:6px 0 20px; }
.attempt-insight-signals { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.attempt-insight-signals article { display:flex; flex-direction:column; gap:6px; }
.attempt-insight-signals article>strong { font-size:1.8rem; color:var(--navy-800); }
.attempt-insight-signals small,.attempt-insight-note { color:var(--muted); font-size:.875rem; line-height:1.5; }
.attempt-insight-details details,.attempt-navigation-details { padding:16px 0; border-top:1px solid var(--line); }
.attempt-insight-details summary,.attempt-navigation-details>summary { font-weight:700; cursor:pointer; color:var(--navy-800); }
.attempt-insight-details p { line-height:1.5; font-size:.9375rem; }
.attempt-insight-details p small { display:block; }
.attempt-insight-bar { display:grid; grid-template-columns:100px minmax(60px,1fr) 100px; align-items:center; gap:12px; margin:12px 0; }
.attempt-insight-bar small { display:block; font-size:.875rem; }
.attempt-insight-track { height:14px; background:#e1ebef; border-radius:5px; overflow:hidden; }
.attempt-insight-track i { display:block; height:100%; background:#1689ac; }
.attempt-reading-controls { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:16px 0; }
.attempt-reading-controls input { width:80px; }
.attempt-reading-controls input,.attempt-reading-controls select { padding:6px 8px; border:1px solid var(--line); border-radius:6px; font:inherit; }
@media(max-width:600px) { .attempt-insights { padding:18px; } .attempt-insight-signals { grid-template-columns:1fr; } .attempt-insight-bar { grid-template-columns:85px minmax(35px,1fr) 85px; gap:8px; font-size:.875rem; } }

/* Completion embeds the same insight cards as the selected-attempt dashboard. */
.completed-insights-heading { margin:28px 0 18px; }
.completed-insights-heading h2 { margin:6px 0 10px; color:var(--navy-950); }
.completed-insights-heading > p:last-child { margin:0; color:var(--muted); line-height:1.5; }
.completed-attempt-insights .custom-charts-section { margin:18px 0; }
.completed-attempt-insights > section { margin: 1.5rem 0; }
.completed-attempt-insights .visual-signal-grid { grid-template-columns: minmax(0,1fr); }
.completed-attempt-insights .dashboard-panel { padding: 1.5rem; }
@media(max-width:600px) { .completed-attempt-insights .visual-signal-grid {grid-template-columns:1fr;} }

.practice-setup{border:0;padding:0;margin:1.5rem 0}.practice-setup legend{font-weight:700;margin-bottom:.75rem}.practice-mode-options{display:grid;gap:.75rem}.practice-mode-options>label{display:flex;gap:.75rem;padding:1rem;border:1px solid #bfd0db;border-radius:10px;cursor:pointer}.practice-mode-options input{margin-top:.3rem;accent-color:#1596c4}.practice-mode-options strong,.practice-mode-options small{display:block}.practice-mode-options small{margin-top:.3rem;font-size:.875rem;line-height:1.45;color:#526774}.practice-aid-options{padding:1rem;background:#f0f8fc;border-radius:10px;margin-top:.75rem}.practice-aid-options label{display:flex;align-items:center;gap:.6rem;margin:.6rem 0}.practice-aid-options[hidden]{display:none}.exam-simulation .site-feedback-launcher,.exam-simulation .public-exam-access{display:none!important}

.exam-simulation .review-score{display:none}

.dashboard-evidence-summary{cursor:pointer;font-size:1.1rem;color:var(--navy-800)}.dashboard-evidence-summary span{font-size:.875rem;font-weight:400;margin-left:1rem;color:var(--muted)}.dashboard-evidence-card[open] .dashboard-evidence-summary{margin-bottom:1.25rem}

.results-question-details{margin-top:1.5rem}.results-question-details>summary{font-size:1.1rem;font-weight:700;color:var(--navy-800);cursor:pointer}.results-question-details[open]>summary{margin-bottom:1rem}

/* Question controls stay in normal flow below the variable-height exam header. */
.question-status-row { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:6px 16px; }
.question-item-clock { display:inline-flex; gap:8px; align-items:center; font-size:.875rem; color:var(--navy-900); font-variant-numeric:tabular-nums; }
.question-item-clock strong { font-size:1rem; }
.question-tool-row { flex-wrap:wrap; }
.reading-controls { flex-wrap:wrap; }
.navigator { position:static; }
.question-grid { max-height:50vh; overflow:auto; overscroll-behavior:contain; }
@media (max-width:700px) { .question-grid { min-width:0; grid-template-columns:repeat(5,minmax(44px,1fr)); } }

.coach-include-review { display:inline-flex; align-items:center; gap:8px; font-size:.95rem; }
.coach-include-review input { width:18px; height:18px; accent-color:var(--sky-500); }
.results-body > .performance-coach-card { margin:20px 0 28px; }
.attempt-strategy-details { margin:20px 0; }
.attempt-strategy-details > summary,.coach-question-library > summary,.coach-saved-analyses > summary { cursor:pointer; color:var(--navy-900); font-weight:700; padding:10px 0; }
.attempt-strategy-details .coaching-loop-card { margin-top:12px; }
.coach-status:empty { display:none; }

.section-visibility-controls { display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; margin:18px 0; padding-bottom:12px; border-bottom:1px solid var(--line); }
.section-visibility-controls > span { font-weight:700; color:var(--navy-900); }
.section-visibility-controls .button { min-height:36px; padding:6px 10px; }
.section-visibility-controls small { color:var(--muted); font-size:.875rem; }

.section-visibility-controls .button[aria-pressed="true"] { background:var(--navy-800, #104d6a); color:#fff; border-color:var(--navy-800, #104d6a); }

.section-visibility-controls { gap:6px 10px; margin:12px 0; padding-bottom:10px; }
.section-visibility-controls > span { font-size:.875rem; color:var(--muted); font-weight:600; }
.section-visibility-controls .button { min-height:32px; padding:4px 9px; font-size:.875rem; box-shadow:none; }
.completed-attempt-insights .dashboard-stat-grid { display:flex; flex-wrap:wrap; gap:12px; }
.completed-attempt-insights .dashboard-stat-grid article { flex:1 1 220px; padding:16px 20px; }
.completed-attempt-insights .dashboard-stat-grid strong { font-size:1.6rem; }

/* Shared footer stays outside client-rendered page content and ends at the safe area. */
html:has(body > .site-footer),
body:has(> .site-footer) { background:var(--navy-950); }
body:has(> .site-footer) { display:flex; flex-direction:column; }
.site-content {
  flex:1;
  background:linear-gradient(180deg, #e4edf2 0, var(--page) 220px), var(--page);
}
.investor-home-workspace { padding-bottom:24px; }
.site-footer { margin-top:0; padding-bottom:env(safe-area-inset-bottom, 0px); }
.site-footer .investor-footer-inner { padding-top:24px; padding-bottom:16px; gap:16px 24px; }
.site-footer small { padding-top:16px; }
/* During a question attempt, keep copyright without unrelated navigation. */
body:has(.exam-shell) > .site-footer nav,
body:has(.exam-shell) > .site-footer .investor-footer-brand { display:none; }
body:has(.exam-shell) > .site-footer .investor-footer-inner { padding-top:12px; padding-bottom:12px; }
body:has(.exam-shell) > .site-footer small { border-top:0; padding-top:0; }

/* Data-dependent insight cards fill the available space as comparisons appear. */
.dashboard-stat-grid,
.visual-signal-grid,
.dashboard-chart-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.question-group-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }

#selected-attempt-insights { scroll-margin-top: 90px; }

.recall-customization { margin: 16px 0; padding: 16px; border: 1px solid var(--line); border-radius: 10px; background: #f3faff; }
.recall-customization summary { color: var(--navy-900); font-weight: 750; cursor: pointer; }
.recall-customization p { line-height: 1.5; }
.recall-customization form { display: grid; gap: 10px; }
.recall-customization textarea { width: 100%; padding: 12px; border: 1px solid #b9cad5; border-radius: 8px; font: inherit; resize: vertical; }
.recall-plan-actions,.recall-quick-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 10px 0; }
.recall-quick-actions select { max-width: 100%; padding: 9px; border: 1px solid #b9cad5; border-radius: 8px; background: white; font: inherit; }
.recall-plan-preview { border-top: 1px solid var(--line); margin-top: 16px; padding-top: 12px; }
.recall-plan-table { max-height: 320px; overflow: auto; }
.recall-plan-table table { width: 100%; border-collapse: collapse; }
.recall-plan-table th,.recall-plan-table td { padding: 10px; text-align: left; border-bottom: 1px solid var(--line); font-size: .9rem; }
.recall-plan-table th { background: #e8f2f6; }
.scheduled-recall-list { margin: 16px 0; }
.scheduled-recall-list ul { max-height: 280px; overflow: auto; line-height: 1.7; }
/* Existing-question selection and the shared action assistant. */
.bank-heading { margin: 32px 0 24px; }
.bank-heading h1 { font-size: clamp(28px,4vw,42px); margin: 8px 0; }
.bank-tabs { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 20px; }
.bank-tabs > button { flex:1 1 190px; padding:14px 16px; border:1px solid #bbcdd8; border-radius:10px; background:#fff; color:#173747; text-align:left; font:inherit; cursor:pointer; }
.bank-tabs > button strong,.bank-tabs > button small { display:block; }
.bank-tabs > button small { margin-top:5px; color:#5d7280; font-size:13px; }
.bank-tabs > button[aria-selected="true"] { border-color:#1598cc; background:#e7f6fc; box-shadow:inset 0 -3px #1598cc; }
.bank-tabs > button:focus-visible { outline:3px solid #1598cc; outline-offset:3px; }
.bank-layout { display: grid; grid-template-columns: minmax(0,2fr) minmax(280px,1fr); gap: 24px; align-items: start; }
.bank-selection,.bank-block { padding: 24px; }
.bank-exam-label,.bank-block > label { display:block; font-weight:700; margin: 14px 0 8px; }
.bank-selection > select,.bank-selection > input,.bank-block > input { width:100%; padding:12px; border:1px solid #bbcdd8; border-radius:8px; font:inherit; background:white; }
.bank-filters { border:0; padding:0; margin:22px 0 12px; display:flex; gap:10px; flex-wrap:wrap; }
.bank-filters legend { font-weight:700; margin-bottom:10px; }
.bank-filters label { display:flex; align-items:center; gap:8px; padding:10px 12px; border:1px solid #d0dce4; border-radius:8px; cursor:pointer; }
.bank-filters label:has(input:checked) { background:#e7f6fc; border-color:#1598cc; }
.bank-filters strong { margin-left:8px; color:#0a4b69; }
.bank-status-help { margin:0 0 16px; color:#5d7280; font-size:14px; }
.bank-status-help summary { cursor:pointer; padding:8px 0; }
.bank-tree-hint { margin:0 0 16px; color:#617583; font-size:14px; }
.bank-tree-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:24px 0 12px; flex-wrap:wrap; }
.bank-tree-head h2 { margin:0; font-size:22px; }
.bank-search-label { display:block; margin-bottom:8px; }
.bank-tree { margin-top:16px; }
.bank-node { padding:8px 0; }
.bank-node-row { display:flex; align-items:flex-start; gap:10px; }
.bank-node-row > input { margin-top:13px; width:18px; height:18px; flex-shrink:0; }
.bank-branch { flex:1; min-width:0; }
.bank-branch summary { cursor:pointer; padding:11px 3px; min-height:44px; box-sizing:border-box; font-weight:650; }
.bank-leaf { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:11px 3px; min-height:44px; box-sizing:border-box; }
.bank-node-empty { color:#617583; }
.bank-branch summary > span,.bank-branch > small { color:#687d8a; font-weight:400; margin-left:10px; font-size:14px; }
.bank-branch > .bank-node { margin-left:14px; border-left:1px solid #dce6ec; padding-left:14px; }
.bank-block { position:sticky; top:24px; }
.bank-block small,.bank-block p { color:#617583; line-height:1.5; }
.bank-plan { border-top:1px solid #d9e4eb; margin-top:16px; padding-top:16px; }
.bank-plan .button { margin:6px 0; }
.bank-empty { padding:22px 0; }
.bank-classification-note,.source-sets { margin:24px 0; }
.source-sets summary,.bank-classification-note summary { cursor:pointer; color:#0e4c67; font-weight:650; }
.source-sets .form-library-grid { margin-top:20px; }
.bank-error { padding:14px; background:#fff0f1; color:#9c3040; border-radius:8px; }
.bank-public { max-width:1280px; }
.action-launch { position:fixed; right:20px; bottom:70px; z-index:45; box-shadow:0 4px 16px #082e4930; }
.action-dialog { width:min(600px,calc(100vw - 32px)); max-height:calc(100dvh - 40px); overflow:auto; border:1px solid #d2e0e8; border-radius:16px; padding:24px; color:#153847; }
.action-dialog::backdrop { background:#092b42a6; }
.action-dialog h2 { margin:0; font-size:26px; }
.action-head { display:flex; justify-content:space-between; gap:20px; align-items:center; }
.action-head button { background:none; border:0; font-size:30px; cursor:pointer; color:#486474; }
.action-dialog textarea { width:100%; padding:12px; font:inherit; border:1px solid #b9cbd6; border-radius:8px; margin:8px 0; resize:vertical; }
.action-dialog label { font-weight:700; }
.action-dialog small { color:#657c8b; }
.action-actions { display:flex; gap:10px; margin-top:16px; flex-wrap:wrap; }
#action-plan { padding:16px; margin-top:16px; background:#eff8fc; border-radius:10px; }
#action-plan .button { margin:6px 6px 0 0; }
#action-status { line-height:1.5; }
@media(max-width:760px) { .bank-layout { grid-template-columns:1fr; } .bank-block { position:static; } .bank-selection,.bank-block { padding:18px; } .bank-tabs > button { flex-basis:calc(50% - 8px); min-width:0; padding:12px; } .bank-leaf { flex-wrap:wrap; } .bank-branch summary > span { display:block; margin:4px 0 0; } .bank-branch > .bank-node { margin-left:6px; padding-left:10px; } .action-launch { right:12px; bottom:64px; padding:12px 16px; font-size:14px; } }

/* Keep pace details on separate readable lines, including narrow tablet tiles. */
.pace-card-secondary { display: grid; gap: 4px; }
.pace-signal-card small { display: block; }
.pace-chart-scroll { overflow-x: auto; padding: 18px 4px 4px; }
.pace-chart-scroll:focus-visible { outline: 2px solid #1598c7; outline-offset: 4px; }

.pace-chart-target, .time-window-controls label { display:flex; align-items:center; gap:8px; color:var(--navy-950); font-weight:600; }
.pace-chart-target select, .time-window-controls select { width:auto; min-height:42px; margin:0; }
.pace-chart-target { margin-left:auto; }
.pace-chart-details { display:grid; gap:6px; }
.pace-selected-summary { display:grid; gap:8px; border-top:1px solid #dce7eb; padding-top:16px; color:#526775; }
.pace-selected-summary > strong { color:var(--navy-950); }
.time-window-controls { display:flex; gap:12px; flex-wrap:wrap; }
.time-window-scroll { overflow-x:auto; padding:8px 4px; }
.time-window-scroll:focus-visible { outline:2px solid #1598c7; outline-offset:4px; }
.time-window-plot { display:grid; gap:16px; margin:12px 0; }
.time-window-column { display:grid; grid-template-rows:2.6em auto 2.6em 2.6em; align-content:start; line-height:1.3; gap:8px; text-align:center; color:var(--navy-950); font-size:.9rem; }
.time-window-column small { color:var(--muted); }
.time-window-column .window-average { font-weight:600; }
.time-window-bar-space { height:210px; display:flex; align-items:flex-end; border-bottom:1px solid #a9bdc9; background:repeating-linear-gradient(to top, transparent 0,transparent 51px,#e6edf1 51px,#e6edf1 52px); }
.time-window-bar { display:flex; flex-direction:column; width:55%; margin:0 auto; overflow:hidden; border-radius:5px 5px 0 0; }
.window-correct { background:#21845e; }
.window-not-correct { background:#cc791e; }
.time-window-legend { display:flex; flex-wrap:wrap; gap:12px 24px; color:var(--muted); font-size:.9rem; margin:14px 0; }
.time-window-legend span { display:flex; align-items:center; gap:8px; }
.time-window-legend i { width:14px; height:14px; border-radius:3px; }
.time-window-tail { display:grid; gap:6px; padding:14px 0; border-top:1px solid #dce7eb; }
.time-window-tail small { color:var(--muted); }
.visual-signal-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr)); }
@media(max-width:900px) { .pace-progress-card .attempt-progress-head, .time-window-card .attempt-progress-head { flex-wrap:wrap; } .pace-chart-target { margin-left:0; } }
/* Related timing comparisons share one card, with direct labels on every series. */
.window-paired-bars { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.window-paired-item { display:grid; grid-template-rows:2.6em 210px 2.6em; min-width:0; gap:6px; }
.window-paired-item > small { display:block; align-self:center; line-height:1.3; }
.window-paired-item .time-window-bar { width:75%; }
.time-window-bar.finalCorrect .window-correct { background:#21845e; }
.time-window-bar.finalCorrect .window-not-correct { background:#cc791e; }
.score-time-panel { border-top:1px solid #dce7eb; margin-top:22px; padding-top:18px; }
.score-time-panel h3 { font-size:1.2rem; margin:0 0 8px; }
.score-time-scroll, .requested-comparison-scroll { overflow-x:auto; padding:14px 8px 6px 40px; }
.score-time-plot { position:relative; height:200px; }
.score-time-plot svg { width:100%; height:100%; overflow:visible; }
.score-time-axis { position:absolute; top:0; bottom:0; left:-36px; display:flex; flex-direction:column; justify-content:space-between; font-size:.75rem; color:var(--muted); }
.score-time-labels { display:grid; gap:8px; text-align:center; font-size:.85rem; margin:12px 0; }
.score-time-labels span, .score-time-labels small { display:block; margin-top:5px; color:var(--muted); }
.chart-request-card { padding:20px; margin:20px 0; }
.chart-request-card summary { font-size:1.15rem; font-weight:700; cursor:pointer; }
.chart-request-card form { display:grid; gap:12px; padding-top:18px; }
.chart-request-card textarea { width:100%; box-sizing:border-box; font:inherit; min-height:84px; padding:12px; }
.chart-request-examples, .chart-request-actions { display:flex; flex-wrap:wrap; gap:10px 18px; }
.chart-request-card small { color:var(--muted); line-height:1.5; }
.requested-chart { padding:clamp(18px,3vw,30px); margin:20px 0; }
.requested-chart .time-window-card { border:none; box-shadow:none; padding:0; }
.requested-chart h2 { font-size:clamp(22px,3vw,30px); }
.requested-comparison-plot { display:grid; gap:24px; }
.requested-comparison-plot > div { text-align:center; font-size:.9rem; }
.requested-metric-bars { display:flex; justify-content:center; gap:10px; margin-top:14px; }
.requested-metric-bars > div { flex:1; min-width:55px; }
.requested-metric-bars small, .requested-metric-bars b { display:block; margin-top:6px; }
.requested-bar-space { height:180px; display:flex; align-items:flex-end; background:repeating-linear-gradient(to top,transparent 0,transparent 44px,#e6edf1 44px,#e6edf1 45px); border-bottom:1px solid #a9bdc9; }
.requested-bar { display:block; width:65%; margin:0 auto; background:#1598c7; border-radius:4px 4px 0 0; }
.requested-bar.final { background:#0b4f73; }.requested-bar.pace { background:#21845e; }
.score-time-scroll:focus-visible, .requested-comparison-scroll:focus-visible { outline:2px solid #1598c7; outline-offset:3px; }
.chart-conversation { list-style:none; display:grid; gap:10px; padding:0; margin:12px 0; max-height:340px; overflow-y:auto; overscroll-behavior:auto; }
.chart-message { padding:12px 14px; border-radius:12px; background:#f0f5f8; max-width:92%; overflow-wrap:anywhere; }
.chart-message.user { justify-self:end; background:#e4f3fb; }
.chart-message strong { font-size:.8rem; color:var(--muted); }
.chart-message p { margin:5px 0 0; white-space:pre-wrap; }
.insight-examples-heading { margin:28px 0 16px; }
.insight-examples-heading h2 { font-size:clamp(22px,3vw,30px); }
.enhancement-request-form { border-top:1px solid #dce7eb; margin-top:20px; }
.enhancement-request-history { margin-top:16px; }
.enhancement-request-history article { padding:12px 0; border-top:1px solid #dce7eb; overflow-wrap:anywhere; }
.enhancement-notice { padding:16px; border-radius:12px; background:#e7f6ee; margin:16px 0; }

.generation-conversation { display: grid; gap: .65rem; margin: .8rem 0; max-height: 22rem; overflow-y: auto; }
.generation-conversation p { margin: 0; padding: .8rem; border-radius: .65rem; background: var(--surface-soft, #f1f7fa); overflow-wrap: anywhere; }

/* Visit duration is the main elapsed-window visual; outcome counts remain expandable. */
.visit-time-first { background:#087f8c; }
.visit-time-all { background:#173d63; }
.visit-time-axis-title { margin:8px 0 0; color:var(--muted); font-size:.85rem; }
.visit-time-scroll { overflow-x:auto; padding:28px 4px 10px; }
.visit-time-scroll:focus-visible { outline:2px solid #1598c7; outline-offset:4px; }
.visit-time-chart { display:grid; column-gap:16px; }
.visit-time-axis { position:sticky; left:0; z-index:2; height:210px; background:white; color:var(--muted); font-size:.8rem; }
.visit-time-axis span { position:absolute; right:10px; transform:translateY(50%); white-space:nowrap; }
.visit-time-column { display:grid; grid-template-rows:210px 2.6em 2.6em; gap:12px; text-align:center; font-size:.85rem; line-height:1.3; min-width:0; }
.visit-time-column strong { align-self:center; }
.visit-time-column small { color:var(--muted); }
.visit-time-bars { display:grid; grid-template-columns:1fr 1fr; gap:10px; position:relative; border-bottom:1px solid #a9bdc9; background:none; }
.visit-time-bar-slot { display:flex; justify-content:center; align-items:flex-end; position:relative; }
.visit-time-bar { width:75%; min-height:1px; position:relative; border-radius:4px 4px 0 0; }
.visit-time-bar > .visit-time-value { position:absolute; bottom:100%; left:50%; transform:translateX(-50%); padding-bottom:4px; font-size:.75rem; white-space:nowrap; color:var(--navy-950); }
.visit-time-missing { position:absolute; bottom:4px; color:var(--muted); }
.visit-time-target { position:absolute; left:0; right:0; border-top:2px dashed #a77724; pointer-events:none; z-index:1; }
.time-window-legend .visit-time-target-key { height:0; background:none; border-top:2px dashed #a77724; border-radius:0; }
.window-accuracy-details { margin:14px 0; }

/* Mean-time bar heights with equal question slices; color proportions encode counts. */
.visit-time-column { grid-template-rows:210px auto 2.6em 2.6em; }
.visit-time-bar { background:transparent; overflow:visible; }
.visit-time-stack { position:absolute; inset:0; overflow:hidden; border-radius:inherit; }
.visit-time-stack > .visit-outcome-segment { display:block; position:absolute; left:0; width:100%; min-height:0; padding:0; margin:0; border:0; box-sizing:border-box; }
.visit-time-bar > .visit-time-value { position:absolute; bottom:100%; }
.visit-outcome-unmarkedCorrect { background:#21845e; }
.visit-outcome-unmarkedIncorrect { background:#cc791e; }
.visit-outcome-markedCorrect { background:#156f9b; }
.visit-outcome-markedIncorrect { background:#aa476a; }
.visit-outcome-unknown { background:repeating-linear-gradient(135deg,#718096 0 3px,#edf0f3 3px 6px); }
.visit-outcome-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.visit-outcome-counts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px; align-content:start; }
.visit-outcome-count { border-radius:4px; color:white; font-size:.8rem; font-weight:700; padding:3px 1px; }
.visit-outcome-count.visit-outcome-unknown { color:#172631; grid-column:1/-1; }
.visit-outcome-note { font-size:.85rem; }

.visit-outcome-segment.visit-outcome-markedCorrect,
.visit-outcome-segment.visit-outcome-markedIncorrect { background-image:repeating-linear-gradient(135deg,transparent 0 5px,rgba(255,255,255,.28) 5px 7px); }

.visit-outcome-unanswered { background:#68778f; }
.visit-outcome-count.visit-outcome-unanswered { grid-column:1/-1; }
.visit-time-stack > .visit-outcome-segment { box-shadow:inset 0 1px 0 rgba(255,255,255,.7); }

.visit-time-gridline { position:absolute; left:0; right:0; border-top:1px solid #e6edf1; pointer-events:none; }

.action-chat-tools { display:flex; justify-content:flex-end; margin:8px 0; }
.action-messages { max-height:32dvh; overflow-y:auto; overscroll-behavior:auto; padding:4px; margin:12px 0; }
.action-message { border-radius:10px; padding:12px 14px; margin:10px 0; line-height:1.5; }
.action-message p { margin:4px 0 0; white-space:pre-wrap; overflow-wrap:anywhere; }
.action-message strong { font-size:.85rem; }
.action-message-user { background:#e4f3fa; margin-left:24px; }
.action-message-assistant { background:#f2f5f7; margin-right:24px; }
.action-chat-empty { color:#617583; line-height:1.5; }
@media(max-width:600px) { .action-dialog { padding:16px; } .action-message-user { margin-left:12px; } .action-message-assistant { margin-right:12px; } }

.journey-scroll { overflow-x:auto; margin:18px 0; }
.journey-table { border-collapse:separate; border-spacing:0; width:100%; table-layout:fixed; font-size:.72rem; }
.journey-table th:first-child { position:sticky; left:0; z-index:2; width:150px; background:white; text-align:left; padding:8px; }
.journey-table th small { display:block; font-weight:400; color:#617583; margin-top:6px; line-height:1.4; }
.journey-table td,.journey-table th { border-bottom:1px solid #dce7eb; vertical-align:bottom; }
.journey-table thead button { border:0; background:none; font:inherit; color:#124f70; cursor:pointer; min-height:36px; width:100%; }
.journey-cell { display:block; position:relative; width:100%; height:96px; border:0; padding:0; background:transparent; cursor:pointer; }
.journey-cell-bar { position:absolute; bottom:24px; left:12.5%; width:75%; max-height:64px; border-radius:3px 3px 0 0; }
.journey-cell-time { position:absolute; bottom:3px; left:0; width:100%; font-size:.65rem; white-space:nowrap; color:#153847; }
.journey-mark { position:absolute; top:3px; left:0; width:100%; color:#153847; font-size:.65rem; font-weight:700; white-space:nowrap; }
.journey-empty { color:#8a9daa; }
.journey-final { display:block; width:90%; margin:8px auto; border:0; border-radius:4px; color:white; min-height:28px; font:inherit; cursor:pointer; }
.journey-cell:focus-visible,.journey-final:focus-visible,.journey-table thead button:focus-visible { outline:2px solid #1598c7; outline-offset:-2px; }
.journey-detail { border-top:1px solid #dce7eb; padding-top:14px; margin:14px 0; }
.journey-detail li { padding:5px 0; line-height:1.5; }
.attempt-journey > details { margin-top:16px; }

.journey-counts { display:block; margin-top:5px; color:#153847; }

.visit-time-companion { border-top:1px solid #dce7eb; margin-top:28px; padding-top:24px; }

.attempt-timeline-scroll { overflow-x:auto; margin:18px 0; }
.attempt-timeline-svg { display:block; width:100%; min-width:1220px; height:auto; background:white; }
.attempt-timeline-svg text { font:11px system-ui,sans-serif; fill:#153847; }
.attempt-timeline-svg a { cursor:pointer; }
.attempt-timeline-svg a:focus { outline:2px solid #1496d4; }
.timeline-checkpoints { display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:8px; }
.timeline-checkpoints > div { background:#f1f7fa; border-radius:6px; padding:10px; }
.timeline-checkpoints strong,.timeline-checkpoints span { display:block; font-size:.8rem; line-height:1.6; }

.attempt-timeline-svg .timeline-visit-label { font-size:9px; font-weight:700; }
.timeline-revisit-list ol { columns:2; column-gap:28px; padding-left:24px; }
.timeline-revisit-list li { break-inside:avoid; margin:8px 0; font-size:14px; }
@media(max-width:700px) { .timeline-revisit-list ol { columns:1; } }

/* Keep help attached to its compact trigger, including inside grid cards. */
.info-control { width:max-content; max-width:100%; justify-self:start; align-self:center; flex:0 0 auto; }
.info-control .info-button { box-sizing:border-box; min-width:24px; max-width:24px; width:24px; min-height:24px; max-height:24px; height:24px; flex:none; line-height:1; letter-spacing:normal; text-transform:none; }
.info-control .info-popover { position:absolute; top:calc(100% + 8px); left:0; right:auto; transform:none; width:min(330px,calc(100vw - 64px)); box-sizing:border-box; letter-spacing:normal; text-transform:none; }
.dashboard-stat-grid article > .info-control .info-popover { left:auto; right:0; }
.info-control .info-popover strong { margin:0; font-size:.86rem; line-height:1.4; }
.info-control .info-popover span { font-size:.82rem; font-weight:500; letter-spacing:normal; text-transform:none; }
.attempt-journey, .attempt-timeline { padding:clamp(18px,3vw,30px); margin:22px 0; }
.action-launch { display:grid; gap:4px; text-align:left; max-width:calc(100vw - 24px); }
.action-launch small { font-size:11px; line-height:1.35; font-weight:400; white-space:normal; }

.dashboard-shell .dashboard-workspace { width:calc(100% - clamp(24px,4vw,64px)); max-width:none; }

/* Wide chart contents scroll locally instead of widening the insights page. */
.dashboard-shell,.completed-attempt-insights { min-width:0; max-width:100%; }
.dashboard-shell .topbar > *,
.dashboard-workspace > *,
.dashboard-workspace .card,
.completed-attempt-insights .card,
:is(.dashboard-shell,.completed-attempt-insights) :is(.dashboard-title-row,.dashboard-chart-grid,.visual-signal-grid,.dashboard-stat-grid,.memory-queue-grid,.question-group-grid,.attempt-progress-head,.dashboard-panel-head) > * { min-width:0; max-width:100%; }
:is(.dashboard-shell,.completed-attempt-insights) :is(.journey-scroll,.attempt-timeline-scroll,.timeline-score-scroll,.visit-time-scroll,.time-window-scroll,.score-time-scroll,.pace-chart-scroll,.dashboard-table-wrap,.attempt-history-table) { width:100%; min-width:0; max-width:100%; }
@media (max-width:760px) {
  .dashboard-shell .topbar { flex-direction:column; align-items:stretch; gap:14px; padding:16px; }
  .dashboard-shell .header-status { width:100%; min-width:0; flex-shrink:1; flex-wrap:wrap; justify-content:flex-start; gap:8px; }
  .dashboard-shell .header-status .library-link,.dashboard-shell .header-status button { min-height:44px; }
  .dashboard-shell .version-chip { max-width:100%; white-space:normal; }
  .dashboard-shell .dashboard-workspace { width:calc(100% - 24px); padding-top:20px; }
  :is(.dashboard-shell,.completed-attempt-insights) .attempt-progress-head { flex-wrap:wrap; align-items:flex-start; gap:12px; }
  :is(.dashboard-shell,.completed-attempt-insights) :is(.reading-target-control,.pace-chart-target,.time-window-controls label) { flex-wrap:wrap; white-space:normal; max-width:100%; }
  :is(.dashboard-shell,.completed-attempt-insights) :is(select,textarea) { min-width:0; max-width:100%; }
  :is(.dashboard-shell,.completed-attempt-insights) :is(h1,h2,.panel-note,.chart-message p) { overflow-wrap:anywhere; }
}
@media (max-width:480px) {
  .dashboard-shell .dashboard-panel,.completed-attempt-insights .dashboard-panel { padding:18px; }
  :is(.dashboard-shell,.completed-attempt-insights) .evidence-filters { grid-template-columns:minmax(0,1fr); }
  :is(.dashboard-shell,.completed-attempt-insights) .journey-view-tools > label { width:100%; }
  :is(.dashboard-shell,.completed-attempt-insights) #journey-inspect { width:100%; }
}

/* Keep the challenge introduction readable at tablet widths. */
.investor-demo-card {
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
}
.investor-demo-card > * { min-width: 0; }
.investor-demo-card .challenge-choice-actions { grid-column: 1 / -1; }
.investor-demo-card .challenge-choice-actions .button {
  max-width: 100%;
  overflow-wrap: anywhere;
  text-align: center;
}
/* The workspace capability completes the grid without empty colored cells. */
.proof-grid > div:last-child { grid-column: 1 / -1; }
@media (max-width: 1100px) {
  .investor-demo-card { grid-template-columns: minmax(0, 1fr); }
}

/* Consistent action groups and balanced investor-page sections. */
.investor-hero-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.investor-hero-actions > .button-primary { grid-column: 1 / -1; }
.investor-hero-actions .button { min-width: 0; white-space: normal; text-align: center; justify-content: center; }
.demo-path-card .challenge-choice-actions { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; width: 100%; }
.demo-path-card .challenge-choice-actions .button { margin: 0; width: 100%; white-space: normal; text-align: center; }
.proof-grid > div:last-child { min-height: 0; }
.proof-grid > div:last-child em { margin-top: 0; }
.roadmap-implementation { margin: 16px 0; }
.roadmap-implementation summary { cursor: pointer; color: #125574; font-weight: 700; }
.roadmap-implementation summary:focus-visible { outline: 2px solid #1887af; outline-offset: 4px; }
.roadmap-exploration-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.roadmap-exploration-grid > article:first-child { grid-column: 1 / -1; }
.validation-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); }
@media (max-width: 700px) {
  .investor-hero-actions, .roadmap-exploration-grid, .validation-grid { grid-template-columns: minmax(0, 1fr); }
}

/* First-screen hierarchy: the product promise, then clear ways to explore. */
.investor-hero { grid-template-columns: minmax(0, 1.35fr) minmax(290px, .85fr); padding: clamp(28px, 4.5vw, 56px); gap: clamp(28px, 4vw, 48px); }
.investor-hero-copy h1 { font-size: clamp(2rem, 3.8vw, 3.25rem); line-height: 1.12; text-wrap: balance; }
.investor-hero-copy h1 span { display: block; color: #93ddf6; margin-top: .12em; }
.investor-hero-copy > p:not(.eyebrow) { font-size: 1.0625rem; line-height: 1.65; max-width: 55ch; margin-top: 20px; }
.investor-hero-copy > .hero-demo-note { font-size: .8125rem !important; color: #b6d6e4 !important; margin-top: 14px !important; }
.investor-hero-actions { margin-top: 24px; }
.investor-hero-actions .button { min-height: 48px; padding: 12px 16px; font-size: .9375rem; gap: 10px; }
.mvp-readiness { padding: 24px; }
.mvp-readiness > div > strong { color: #9debc6; font-size: .75rem; white-space: nowrap; padding: 5px 8px; border: 1px solid #87e9b944; border-radius: 6px; }
.mvp-readiness li a { padding: 12px 10px; gap: 12px; }
.mvp-readiness li span strong { display: block; font-size: .9375rem; font-weight: 700; }
.mvp-readiness li span small { display: block; margin-top: 4px; font-size: .8125rem; line-height: 1.35; color: #c1d8e3; }
.mvp-readiness li em { color: #a5cbdc; font-size: 1rem; }
.product-vision { padding: 28px 32px; gap: 24px; }
.product-vision h2 { font-size: clamp(1.4rem, 2.5vw, 1.8rem); }
.product-vision > p { color: #526774; }
.demo-paths > .section-heading { display: block; margin: 36px 0 20px; }
.demo-paths > .section-heading .eyebrow { margin: 0 0 10px; }
.demo-paths > .section-heading h2 { font-size: clamp(1.65rem, 3vw, 2.15rem); }
.demo-path-card { padding: 26px; min-height: 0; }
.demo-path-card .path-number { font-size: 1.5rem; color: #688d9e; }
.demo-path-card .path-label { margin-top: 16px; }
.demo-path-card h3 { font-size: 1.25rem; line-height: 1.35; text-wrap: balance; }
.demo-path-card > p:not(.path-label) { margin-bottom: 16px; }
.demo-path-card > .demo-card-note { font-size: .8125rem; line-height: 1.5; padding-top: 12px; border-top: 1px solid var(--line); }
.demo-path-card > .button, .demo-path-card .challenge-choice-actions { margin-top: auto; }
.demo-path-card .button { font-size: .875rem; min-height: 44px; }
body:has(.investor-shell) .action-launch { padding: 12px 18px; border-radius: 999px; font-size: .875rem; bottom: 20px; }
body:has(.investor-shell) .action-launch small { display: none; }
@media (max-width: 1000px) {
  .investor-hero { grid-template-columns: minmax(0, 1fr); }
  .mvp-readiness ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .demo-path-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .mvp-readiness ol { grid-template-columns: minmax(0, 1fr); }
  .investor-hero, .product-vision, .demo-path-card { padding: 24px; }
  .investor-hero-copy h1 { font-size: 2rem; }
}

/* Lead with behavioral coaching; let visitors choose how much detail to read. */
.demo-path-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.demo-path-card .challenge-choice-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.demo-path-card .button { min-height: 52px; }
.practice-next-step { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px 32px; align-items: center; margin-top: 20px; padding: 22px 26px; border: 1px solid #cddce4; border-radius: 14px; background: #f5f9fb; }
.practice-next-step h3 { margin: 0 0 6px; color: var(--navy-950); font-size: 1.125rem; }
.practice-next-step p { margin: 0; color: #526774; line-height: 1.55; }
.practice-next-actions { display: grid; gap: 4px; text-align: center; }
.practice-next-actions .button { min-height: 44px; white-space: normal; text-align: center; justify-content: center; }
.practice-next-actions .library-link { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; color: #125574; font-size: .875rem; }
.coaching-core-grid, .near-term-priorities { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px 32px; }
.coaching-core-grid { margin-top: 24px; }
.coaching-core-grid article, .near-term-priorities article { min-width: 0; }
.core-step { color: #187699; font-size: .8125rem; font-weight: 750; letter-spacing: .055em; text-transform: uppercase; }
.coaching-core-grid h3, .near-term-priorities h3 { margin: 10px 0; color: var(--navy-950); font-size: 1.125rem; line-height: 1.4; }
.coaching-core-grid p { margin: 0; color: #526774; font-size: 1rem; line-height: 1.6; }
.near-term-priorities { margin-top: 28px; }
.near-term-priorities article { border-top: 2px solid #1887af; padding-top: 16px; }
.near-term-priorities p { margin-bottom: 0; }
.product-roadmap .roadmap-evidence-note { margin: 24px 0 0; padding: 12px 16px; border-left: 3px solid #9bbdcc; background: #f3f8fa; font-size: .9375rem; }
.investor-disclosure { margin-top: 24px; border-top: 1px solid var(--line); }
.investor-disclosure > summary { min-height: 44px; padding: 18px 0; cursor: pointer; color: #125574; font-size: 1rem; font-weight: 700; line-height: 1.5; }
.investor-disclosure > summary::marker { color: #1887af; }
.investor-disclosure > summary > span { display: block; margin: 4px 0 0 1.1rem; color: #607581; font-size: .875rem; font-weight: 400; line-height: 1.5; }
.investor-disclosure > summary:focus-visible { outline: 2px solid #1887af; outline-offset: 4px; border-radius: 4px; }
.investor-disclosure[open] > summary { margin-bottom: 8px; }
.disclosure-body, .roadmap-later-body { min-width: 0; padding-bottom: 8px; }
.disclosure-body h3 { margin: 0 0 12px; color: var(--navy-950); font-size: 1.125rem; line-height: 1.4; }
.supporting-features .expert-review-roadmap p { color: #526774; line-height: 1.6; }
.roadmap-later .roadmap-priority-grid > article:first-child { grid-column: 1 / -1; }
.roadmap-vision { margin-top: 28px; padding: 24px; border-radius: 12px; background: #eff7fa; }
.roadmap-vision h3 { margin: 0; color: var(--navy-950); font-size: 1.25rem; line-height: 1.4; }
.roadmap-vision .exam-family-chips { justify-content: flex-start; margin-top: 16px; }
.market-disclosure { margin: 24px 0; padding: 20px 24px; }
.market-disclosure > summary { padding: 0; }
.market-disclosure .disclosure-body { padding-top: 20px; }
.market-disclosure p { color: #526774; line-height: 1.6; }
.market-disclosure a { color: #125574; text-decoration: underline; }
.market-disclosure .roadmap-footnote { font-size: .875rem; }
.investor-closing { grid-template-columns: minmax(0, 1.4fr) minmax(0, .8fr); }
.investor-closing p { margin: 14px 0 0; color: #526774; line-height: 1.6; }
.investor-closing-actions { display: grid; gap: 12px; }
.investor-closing-actions .button { min-height: 48px; justify-content: center; text-align: center; white-space: normal; }
@media (max-width: 1000px) {
  .demo-path-grid { grid-template-columns: minmax(0, 1fr); }
  .coaching-core-grid, .near-term-priorities { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .coaching-core-grid article + article { padding-top: 20px; border-top: 1px solid var(--line); }
}
@media (max-width: 760px) {
  .practice-next-step, .investor-closing { grid-template-columns: minmax(0, 1fr); }
  .practice-next-actions { justify-items: start; text-align: left; }
}
@media (max-width: 600px) {
  .demo-path-card .challenge-choice-actions { grid-template-columns: minmax(0, 1fr); }
  .practice-next-step, .market-disclosure { padding: 20px; }
  .practice-next-actions { justify-items: stretch; }
  .roadmap-vision { padding: 20px 16px; }
}


/* Shared chart readability: case study, workspace, and completed attempts. */
.chart-scroll-controls { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:12px 0 4px; padding:8px 12px; border-radius:8px; background:#f0f6f9; color:#315466; font-size:.85rem; }
.chart-scroll-controls[hidden], .chart-scroll-controls button[hidden] { display:none; }
.chart-scroll-controls > div { display:flex; gap:8px; flex-shrink:0; }
.chart-scroll-controls button { min-height:44px; padding:8px 12px; border:1px solid #b8cdd8; border-radius:7px; background:white; color:#124f70; font:inherit; font-weight:650; cursor:pointer; }
.chart-scroll-controls button:disabled { opacity:.4; cursor:default; }
.chart-scroll-controls button:focus-visible, [data-chart-scroll]:focus-visible { outline:2px solid #117cab; outline-offset:3px; }
[data-chart-scroll] { scrollbar-width:thin; scrollbar-color:#809cab #edf3f6; }
.chart-key-facts { display:flex; gap:12px 24px; flex-wrap:wrap; padding:14px 0; margin:8px 0; border-block:1px solid #dce7eb; color:#536c7a; font-size:.88rem; }
.chart-key-facts strong { color:#153847; margin-right:4px; }
.chart-coverage-note { padding:10px 14px; border-left:3px solid #9bb8c7; background:#f4f8fa; color:#536c7a; font-size:.9rem; line-height:1.5; }
.attempt-journey .attempt-progress-head { flex-wrap:wrap; gap:16px; }
.attempt-journey .attempt-progress-head > label { display:grid; gap:6px; font-size:.85rem; max-width:100%; }
.attempt-journey .attempt-progress-head select { max-width:100%; min-height:44px; }
.journey-scroll { border:1px solid #dce7eb; border-radius:10px; }
.journey-table { font-size:.8rem; }
.journey-table th:first-child { width:160px; box-shadow:3px 0 4px #163e4d0c; }
.journey-table thead th { background:#f1f7fa; }
.journey-table thead th:first-child { background:#f1f7fa; }
.journey-table tbody td { border-right:1px solid #edf2f5; }
.journey-table tbody tr:nth-child(even) td { background:#fafcfd; }
.journey-table thead button { min-height:44px; padding:4px 0; }
.journey-cell-time { font-size:.74rem; }
.journey-mark { font-size:.77rem; }
.journey-final { min-height:36px; }
.visit-time-column { grid-template-rows:210px auto 160px auto auto; gap:10px; }
@supports (grid-template-rows:subgrid) {
  .visit-time-chart { grid-template-rows:210px auto auto auto auto; row-gap:10px; }
  .visit-time-axis { grid-column:1; grid-row:1; }
  .visit-time-column { grid-row:1 / span 5; grid-template-rows:subgrid; }
}
.visit-time-series-labels { display:grid; grid-template-columns:1fr 1fr; gap:10px; font-size:.8rem; font-weight:650; color:#153847; }
.visit-outcome-counts { display:flex; flex-direction:column; gap:4px; align-items:stretch; }
.visit-outcome-count { font-size:.78rem; padding:3px 4px; }
.window-label-caption { display:block; font-size:.72rem; font-weight:400; margin-bottom:4px; }
.visit-time-axis-title { color:#153847; font-weight:650; }
.chart-method-note, .timeline-recording-details, .timeline-revisit-list, .timeline-checkpoint-details { margin-top:16px; }
.chart-method-note summary, .timeline-recording-details summary, .timeline-revisit-list summary, .timeline-checkpoint-details summary { min-height:44px; padding:12px 0; cursor:pointer; font-size:.88rem; font-weight:650; color:#21546b; }
.chart-method-note p, .timeline-recording-details p { font-size:.88rem; color:#617583; line-height:1.6; }
.attempt-timeline-scroll { max-height: min(620px, 68vh); overflow:auto; border:1px solid #dce7eb; border-radius:10px; margin:12px 0 22px; }
.timeline-canvas { min-width:1100px; }
.attempt-timeline-svg { min-width:0; }
.attempt-timeline-svg text { font-size:12px; }
.timeline-axis-sticky { position:sticky; top:0; z-index:3; background:#f1f7fa; border-bottom:1px solid #c8d8e2; }
.timeline-activity-plot { background:white; }
.timeline-event-legend .timeline-key-first { width:11px; height:11px; border-radius:50%; background:#617583; }
.timeline-event-legend .timeline-key-revision { width:11px; height:11px; border-radius:0; background:#617583; }
.timeline-score-summary { padding-top:4px; }
.timeline-score-scroll { overflow-x:auto; padding:6px 0; }
.timeline-score-plot { min-width:700px; }
.timeline-checkpoints { margin-top:10px; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); }
.timeline-checkpoints span { color:#536c7a; }
.timeline-accuracy-summary { margin-top:24px; }
.timeline-accuracy-summary h3 { margin:0; }
.timeline-accuracy-summary .attempt-progress-head { align-items:center; flex-wrap:wrap; gap:12px; }
.timeline-accuracy-summary label { display:flex; align-items:center; gap:8px; font-size:.85rem; }
.accuracy-count-scroll { overflow-x:auto; margin-top:12px; max-width:100%; }
.accuracy-count-table { width:100%; min-width:720px; border-collapse:collapse; font-size:.82rem; }
.accuracy-count-table th,.accuracy-count-table td { padding:10px 12px; text-align:left; border-bottom:1px solid #dce7eb; }
.accuracy-count-table thead { background:#f1f7fa; }
.accuracy-count-table tbody th { white-space:nowrap; }
body:has(.dashboard-shell, .completed-attempt-insights) .action-launch { padding:12px 18px; border-radius:999px; font-size:.875rem; bottom:20px; }
body:has(.dashboard-shell, .completed-attempt-insights) .action-launch small { display:none; }
@media(max-width:600px) {
  .chart-scroll-controls { align-items:flex-start; flex-direction:column; gap:6px; }
  .chart-scroll-controls > div { align-self:flex-end; }
  .chart-key-facts { flex-direction:column; gap:8px; }
  .attempt-journey .attempt-progress-head > label { width:100%; }
  .attempt-journey .attempt-progress-head select { width:100%; }
  .attempt-timeline-scroll { max-height:65vh; }
}


/* Total-time bars and an optional full-width question overview. */
.journey-view-tools { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; margin:18px 0 10px; }
.journey-view-switch { display:flex; gap:4px; padding:4px; border-radius:9px; background:#edf4f8; }
.journey-view-switch button { min-height:44px; border:1px solid transparent; border-radius:6px; padding:8px 14px; font:inherit; font-size:.86rem; color:#315466; background:transparent; cursor:pointer; }
.journey-view-switch button[aria-pressed="true"] { color:#0c4a68; background:white; border-color:#b8cdd8; font-weight:700; box-shadow:0 1px 3px #173c4c12; }
.journey-view-switch button:focus-visible, #journey-inspect:focus-visible { outline:2px solid #117cab; outline-offset:2px; }
.journey-view-tools label { display:flex; align-items:center; flex-wrap:wrap; gap:8px; color:#315466; font-size:.86rem; }
#journey-inspect { width:auto; min-height:44px; max-width:100%; margin:0; }
.journey-view-note { color:#536c7a; font-size:.85rem; line-height:1.5; }
.pace-target-field { display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
.pace-target-field .pace-target-input { width:5.5rem; min-width:0; min-height:44px; margin:0; padding:8px; font:inherit; color:#153847; background:white; border:1px solid #b8cdd8; border-radius:6px; }
.pace-target-input:focus-visible { outline:2px solid #117cab; outline-offset:2px; }
.journey-view-tools .pace-chart-target { margin-left:0; }
.journey-completion { --journey-total-baseline:24px; }
.journey-completion > th, .journey-completion > td { border-top:2px solid #b8cdd8; background:#edf6fa!important; }
.journey-completion > td { padding:0; }
.journey-completion .journey-total-cell { height:104px; }
.journey-completion .journey-cell-bar { bottom:var(--journey-total-baseline); }
.journey-pace-line { position:absolute; left:0; right:-1px; bottom:calc(var(--journey-total-baseline) + var(--journey-pace-height)); border-top:2px dashed #a77724; box-shadow:0 -1px 0 #ffffffb3,0 1px 0 #ffffffb3; pointer-events:none; z-index:1; }
.journey-pace-caption { display:flex; align-items:center; gap:4px; margin-top:6px; color:#714b14; font-weight:650; }
.journey-pace-key { width:14px; flex-shrink:0; border-top:2px dashed #a77724; }
.journey-completion .journey-cell-time { font-weight:700; }
.journey-compact .journey-table { width:100%; min-width:0; }
.journey-compact .journey-table th:first-child { width:110px; padding:6px; font-size:.73rem; }
.journey-compact .journey-table th small { font-size:.67rem; line-height:1.4; }
.journey-compact .journey-table td, .journey-compact .journey-table th:not(:first-child) { padding:0; }
.journey-compact .journey-table thead button { position:relative; min-width:0; min-height:40px; }
.journey-compact .journey-question-label { display:none; }
.journey-compact .journey-major-label .journey-question-label { display:block; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:max-content; font-size:.65rem; }
.journey-compact th:nth-child(2) .journey-question-label { left:2px; transform:translateY(-50%); }
.journey-compact th:last-child .journey-question-label { left:auto; right:2px; transform:translateY(-50%); }
.journey-compact .journey-cell { height:78px; min-width:0; }
.journey-compact .journey-cell-bar { bottom:8px; left:15%; width:70%; border-radius:2px 2px 0 0; }
.journey-compact .journey-cell-time, .journey-compact .journey-mark { display:none; }
.journey-compact .journey-completion .journey-total-cell { height:100px; }
.journey-compact .journey-completion { --journey-total-baseline:22px; }
.journey-compact .journey-total-cell .journey-cell-bar { bottom:var(--journey-total-baseline); }
.journey-compact .journey-total-cell .journey-cell-time { display:block; font-size:.6rem; }
.journey-compact .journey-total-cell .journey-mark { display:block; font-size:.65rem; }
.journey-compact .journey-cell-bar.visit-outcome-markedCorrect,
.journey-compact .journey-cell-bar.visit-outcome-markedIncorrect { background-image:repeating-linear-gradient(135deg,transparent 0 3px,rgba(255,255,255,.45) 3px 5px); }
@media(max-width:1000px) {
  .journey-compact .journey-table th:first-child { width:90px; }
  .journey-compact .journey-total-cell .journey-cell-time { display:none; }
  .journey-compact .journey-completion .journey-total-cell { height:90px; }
  .journey-compact .journey-completion { --journey-total-baseline:8px; }
}
@media(max-width:600px) {
  .journey-view-tools { align-items:stretch; flex-direction:column; }
  .journey-view-switch button { flex:1; }
  .journey-view-tools label { align-items:stretch; flex-direction:column; }
  #journey-inspect { width:100%; }
  .journey-compact .journey-total-cell .journey-mark { display:none; }
}
.builder-answer-options { margin: 1.1rem 0; padding: 1rem; border: 1px solid var(--line, #cbdde5); border-radius: .8rem; background: #f3f8fb; }
.builder-answer-options legend { padding: 0 .35rem; font-weight: 750; color: var(--navy-800, #173d50); }
.builder-answer-options .import-attestation { align-items: flex-start; margin: .5rem 0 .85rem; }
.builder-answer-options input[type="checkbox"] { flex: 0 0 auto; width: 1.15rem; height: 1.15rem; margin-top: .15rem; }
.builder-answer-options strong, .builder-answer-options small { display: block; }
.builder-answer-options small { margin-top: .25rem; line-height: 1.45; color: var(--muted); }
.builder-answer-options .note { margin-bottom: 0; }
.unscored-note { padding: .8rem 1rem; border-radius: .7rem; background: #eef5f8; color: #315467; line-height: 1.5; }
