:root {
  color-scheme: dark;
  --bg: oklch(0.18 0.02 150);
  --bg-2: oklch(0.23 0.025 150);
  --card: oklch(0.25 0.025 150 / 0.82);
  --line: oklch(0.72 0.04 80 / 0.22);
  --text: oklch(0.92 0.025 82);
  --muted: oklch(0.76 0.025 82 / 0.78);
  --ember: oklch(0.72 0.16 55);
  --ember-soft: oklch(0.72 0.16 55 / 0.18);
  --green: oklch(0.74 0.12 145);
  --shadow: 0 24px 80px oklch(0.08 0.02 150 / 0.45);
  --radius: 24px;
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-height: 100vh;
  background:
    radial-gradient(circle at 18% 8%, var(--ember-soft), transparent 34rem),
    radial-gradient(circle at 88% 18%, oklch(0.48 0.09 185 / 0.20), transparent 28rem),
    linear-gradient(145deg, var(--bg), oklch(0.13 0.018 150));
  color: var(--text);
}

a { color: inherit; }
code { font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace; color: var(--ember); }

.site-shell {
  width: min(1120px, calc(100% - 32px));
  margin: 0 auto;
}

.hero { padding: 28px 0 56px; }
.topnav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 14px 0 52px;
}
.brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  font-weight: 700;
  letter-spacing: -0.02em;
}
.brand span { filter: drop-shadow(0 0 16px var(--ember-soft)); }
.navlinks { display: flex; flex-wrap: wrap; gap: 16px; color: var(--muted); font-size: 14px; }
.navlinks a { text-decoration: none; }
.navlinks a:hover { color: var(--text); }

.hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.65fr);
  gap: 28px;
  align-items: stretch;
}
.eyebrow {
  margin: 0 0 14px;
  color: var(--ember);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.13em;
}
h1, h2, h3 {
  font-family: Fraunces, Georgia, serif;
  margin: 0;
  letter-spacing: -0.045em;
  line-height: 0.98;
}
h1 { max-width: 780px; font-size: clamp(48px, 8vw, 96px); }
h2 { font-size: clamp(32px, 4vw, 54px); }
h3 { font-size: 30px; }
.lead {
  max-width: 710px;
  margin: 24px 0 0;
  color: var(--muted);
  font-size: clamp(18px, 2vw, 22px);
  line-height: 1.55;
}
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 18px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: oklch(1 0 0 / 0.05);
  color: var(--text);
  text-decoration: none;
  font-weight: 700;
}
.btn.primary { background: var(--ember); color: oklch(0.14 0.02 55); border-color: transparent; }
.btn:hover { transform: translateY(-1px); }
.btn:disabled,
.btn[aria-disabled="true"] {
  cursor: not-allowed;
  color: var(--muted);
  opacity: 0.62;
  transform: none;
}

.status-card, .start-card, .trainer-card, .path-card, .evaluator-card, .steps, .copy-block {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--card);
  box-shadow: var(--shadow);
  backdrop-filter: blur(18px);
}
.status-card { padding: 24px; }
.status-card h2 { font-size: 28px; }
.status-card ul { list-style: none; padding: 0; margin: 22px 0; display: grid; gap: 12px; }
.status-card li { display: flex; justify-content: space-between; gap: 16px; color: var(--muted); }
.status-card strong { color: var(--green); }
.status-card p { color: var(--muted); line-height: 1.55; margin: 0; }

.start-card {
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-height: 100%;
}
.start-card h2 { font-size: clamp(28px, 4vw, 42px); letter-spacing: 0; }
.start-card p { margin: 0; color: var(--muted); line-height: 1.55; }
.start-card .btn { align-self: flex-start; margin-top: auto; }
.start-meta {
  padding-top: 12px;
  border-top: 1px solid var(--line);
  font-size: 13px;
}

.section { padding: 46px 0; }
.section-head { display: flex; align-items: end; justify-content: space-between; margin-bottom: 20px; }
.trainer-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.trainer-card { padding: 24px; min-height: 280px; display: flex; flex-direction: column; }
.trainer-card p { color: var(--muted); line-height: 1.55; }
.quick-start-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.path-card { padding: 22px; min-height: 250px; display: flex; flex-direction: column; }
.path-card p { color: var(--muted); line-height: 1.55; }
.path-card .card-link { margin-top: auto; }
.evaluator-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) repeat(3, minmax(0, 0.75fr));
  gap: 16px;
  align-items: stretch;
}
.evaluator-card {
  display: flex;
  min-height: 260px;
  flex-direction: column;
  padding: 22px;
}
.evaluator-lead {
  border-left: 4px solid var(--ember);
  background:
    linear-gradient(145deg, oklch(0.30 0.032 155 / 0.92), oklch(0.22 0.026 150 / 0.96)),
    var(--card);
}
.evaluator-card > strong {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  margin-bottom: 18px;
  border: 1px solid oklch(0.72 0.12 205 / 0.42);
  border-radius: 999px;
  background: oklch(0.72 0.12 205 / 0.09);
  color: oklch(0.78 0.1 205);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 12px;
}
.evaluator-card p { color: var(--muted); line-height: 1.55; }
.evaluator-card .card-link { margin-top: auto; }
.evaluator-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: auto;
}
.tag {
  align-self: flex-start;
  margin-bottom: 18px;
  padding: 7px 10px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--ember);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 12px;
}
.card-link { margin-top: auto; color: var(--text); font-weight: 800; text-decoration-color: var(--ember); text-underline-offset: 5px; }
.friendly-progress {
  margin: 12px 0 18px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: oklch(1 0 0 / 0.04);
  color: var(--muted);
  font-size: 13px;
  line-height: 1.4;
}
.friendly-progress strong { color: var(--green); }

.split { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(320px, 1fr); gap: 22px; align-items: start; }
.steps { padding: 18px; display: grid; gap: 12px; }
.steps div { display: grid; grid-template-columns: 38px 1fr; gap: 12px; align-items: center; color: var(--muted); }
.steps strong {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--ember-soft);
  color: var(--ember);
}
.copy-block { padding: 22px; color: var(--muted); line-height: 1.6; }
.copy-block .btn { margin-top: 10px; }
.footer { padding: 44px 0 70px; color: var(--muted); border-top: 1px solid var(--line); }
.footer a { color: var(--text); }

@media (max-width: 820px) {
  .site-shell { width: min(100% - 22px, 1120px); }
  .topnav { align-items: flex-start; flex-direction: column; padding-bottom: 34px; }
  .hero-grid, .trainer-grid, .quick-start-grid, .evaluator-grid, .split { grid-template-columns: 1fr; }
  .today-main, .today-context { grid-template-columns: 1fr; }
  .today-progress { justify-items: start; }
  .section-head { align-items: flex-start; flex-direction: column; gap: 8px; }
  .section { padding: 32px 0; }
  .trainer-card { min-height: auto; }
}

/* Dashboard-specific */
.demo-profile-banner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 22px;
  align-items: center;
  margin: -20px 0 34px;
  padding: 22px;
  border: 1px solid oklch(0.74 0.12 145 / 0.38);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, oklch(0.28 0.035 155 / 0.94), oklch(0.22 0.026 150 / 0.96)),
    var(--card);
  box-shadow: var(--shadow);
}
.demo-profile-banner[hidden] { display: none; }
.demo-profile-banner h2 {
  max-width: 720px;
  font-size: clamp(30px, 4vw, 48px);
  letter-spacing: 0;
}
.demo-profile-banner p:not(.eyebrow) {
  max-width: 800px;
  margin: 14px 0 0;
  color: var(--muted);
  line-height: 1.55;
}
.demo-profile-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}
@media (max-width: 820px) {
  .demo-profile-banner { grid-template-columns: 1fr; margin-top: -10px; }
  .demo-profile-actions { justify-content: flex-start; }
}
.today-section { padding-top: 10px; }
.today-program { display: grid; }
.today-program-card {
  border: 1px solid var(--line);
  border-left: 4px solid var(--green);
  border-radius: var(--radius);
  background: linear-gradient(145deg, oklch(0.29 0.028 150 / 0.94), oklch(0.21 0.024 150 / 0.96));
  box-shadow: var(--shadow);
  padding: 24px;
}
.today-program-card.repair { border-left-color: var(--ember); }
.today-program-card.review { border-left-color: var(--green); }
.today-program-card.memory-review { border-left-color: oklch(0.72 0.12 205); }
.today-program-card.active-plan { border-left-color: var(--ember); }
.today-program-card.return { border-left-color: oklch(0.78 0.13 92); }
.today-program-card.onboarding { border-left-color: var(--green); }
.today-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(160px, 0.26fr);
  gap: 22px;
  align-items: start;
}
.today-main h3 {
  max-width: 760px;
  font-size: 44px;
  line-height: 1.04;
  letter-spacing: 0;
}
.today-main p {
  max-width: 790px;
  margin: 14px 0 0;
  color: var(--muted);
  font-size: 17px;
  line-height: 1.55;
}
.today-action { display: flex; flex-wrap: wrap; align-items: center; gap: 11px; margin-top: 18px; }
.today-action span {
  color: var(--muted);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.today-progress {
  display: grid;
  gap: 8px;
  justify-items: end;
  min-width: 0;
}
.today-progress strong {
  color: var(--text);
  font-family: Fraunces, Georgia, serif;
  font-size: 42px;
  line-height: 1;
}
.today-progress > span {
  color: var(--muted);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.today-progress > div {
  width: min(170px, 100%);
  height: 8px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: oklch(1 0 0 / 0.04);
}
.today-progress > div span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--ember), var(--green));
}
.today-context {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(240px, 0.42fr);
  gap: 16px;
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}
.today-why { display: grid; gap: 8px; }
.today-why .eyebrow, .today-citations .eyebrow { margin: 0; color: var(--green); font-size: 10px; }
.today-program-card.repair .today-why .eyebrow,
.today-program-card.repair .today-citations .eyebrow { color: var(--ember); }
.today-why p { margin: 0; color: var(--text); line-height: 1.45; }
.today-tags, .today-facts, .today-citations > div {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.today-tags span, .today-facts span, .today-citations span:not(.eyebrow) {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 29px;
  padding: 5px 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: oklch(1 0 0 / 0.035);
  color: var(--muted);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 10px;
  line-height: 1.25;
}
.today-facts { align-content: start; justify-content: flex-start; }
.today-facts strong, .today-citations strong { color: var(--text); }
.today-stage-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}
.today-stage-strip span {
  display: grid;
  gap: 4px;
  min-width: 0;
  min-height: 58px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: oklch(1 0 0 / 0.03);
  color: var(--muted);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 10px;
  line-height: 1.25;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.today-stage-strip strong {
  overflow-wrap: anywhere;
  color: var(--text);
  font-family: Inter, system-ui, sans-serif;
  font-size: 12px;
  line-height: 1.2;
  text-transform: none;
  letter-spacing: 0;
}
.today-stage-strip span.active {
  border-color: oklch(0.74 0.12 145 / 0.62);
  background: oklch(0.74 0.12 145 / 0.1);
  color: var(--text);
}
.today-program-card.repair .today-stage-strip span.active,
.today-program-card.active-plan .today-stage-strip span.active {
  border-color: oklch(0.72 0.16 55 / 0.62);
  background: var(--ember-soft);
}
.today-program-card.return .today-stage-strip span.active {
  border-color: oklch(0.78 0.13 92 / 0.62);
  background: oklch(0.78 0.13 92 / 0.1);
}
.today-program-card.memory-review .today-stage-strip span.active {
  border-color: oklch(0.72 0.12 205 / 0.62);
  background: oklch(0.72 0.12 205 / 0.1);
}
.today-citations {
  display: grid;
  gap: 8px;
  margin-top: 16px;
}
.guided-session-section { padding-top: 18px; }
.guided-session-panel { display: grid; }
.guided-session-card {
  display: grid;
  gap: 18px;
  border: 1px solid var(--line);
  border-left: 4px solid oklch(0.72 0.12 205);
  border-radius: var(--radius);
  background: linear-gradient(145deg, oklch(0.28 0.025 175 / 0.94), oklch(0.21 0.022 155 / 0.96));
  box-shadow: var(--shadow);
  padding: 22px;
}
.guided-session-card.ready,
.guided-session-card.active { border-left-color: var(--ember); }
.guided-session-card.empty,
.guided-session-card.complete { border-left-color: var(--green); }
.guided-session-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(150px, 0.24fr);
  gap: 18px;
  align-items: start;
}
.guided-session-head h3 {
  max-width: 760px;
  font-size: clamp(30px, 4vw, 44px);
  line-height: 1.06;
  letter-spacing: 0;
}
.guided-session-head p {
  max-width: 790px;
  margin: 12px 0 0;
  color: var(--muted);
  line-height: 1.55;
}
.guided-session-action {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: 16px;
}
.guided-session-action span {
  color: var(--muted);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 10px;
  line-height: 1.3;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.guided-session-receipt {
  display: grid;
  justify-items: end;
  gap: 7px;
  min-width: 0;
}
.guided-session-receipt span,
.guided-session-receipt small {
  max-width: 100%;
  color: var(--muted);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 10px;
  line-height: 1.35;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  overflow-wrap: anywhere;
}
.guided-session-receipt strong {
  color: var(--text);
  font-family: Fraunces, Georgia, serif;
  font-size: 36px;
  line-height: 1;
}
.guided-session-steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.guided-step {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 10px;
  min-width: 0;
  min-height: 230px;
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: oklch(1 0 0 / 0.035);
}
.guided-step.done { background: oklch(0.74 0.12 145 / 0.08); }
.guided-step.active,
.guided-step.open,
.guided-step.ready { background: oklch(0.72 0.16 55 / 0.08); }
.guided-step-number {
  display: inline-grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--text);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 12px;
  font-weight: 600;
}
.guided-step-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 8px;
}
.guided-step-meta span {
  color: var(--muted);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 10px;
  line-height: 1.3;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.guided-step h4 {
  font-size: 18px;
  line-height: 1.18;
  letter-spacing: 0;
}
.guided-step p {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}
.guided-step a {
  display: inline-flex;
  margin-top: 10px;
  color: var(--green);
  font-weight: 700;
}
.guided-step-evidence,
.guided-session-tags,
.guided-citations > div {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 10px;
}
.guided-step-evidence span,
.guided-session-tags span,
.guided-citations span:not(.eyebrow) {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  max-width: 100%;
  min-height: 28px;
  padding: 5px 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: oklch(1 0 0 / 0.035);
  color: var(--muted);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 10px;
  line-height: 1.25;
  overflow-wrap: anywhere;
}
.guided-step-evidence strong,
.guided-session-tags strong,
.guided-citations strong { color: var(--text); }
.guided-outcome {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 0.42fr);
  gap: 16px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}
.guided-outcome h4 {
  font-size: 22px;
  line-height: 1.15;
  letter-spacing: 0;
}
.guided-outcome p {
  max-width: 740px;
  margin: 9px 0 0;
  color: var(--muted);
  line-height: 1.5;
}
.guided-citations {
  display: grid;
  align-content: start;
  gap: 8px;
}
.guided-citations .eyebrow { margin: 0; color: oklch(0.72 0.12 205); font-size: 10px; }
.guided-outcome-ledger {
  display: grid;
  gap: 12px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}
.guided-outcome-ledger-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.guided-outcome-ledger-head .eyebrow { margin: 0; color: oklch(0.72 0.12 205); }
.guided-outcome-ledger-head span {
  color: var(--muted);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 10px;
  line-height: 1.3;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.guided-outcome-rows { display: grid; gap: 10px; }
.guided-outcome-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(240px, 0.36fr);
  gap: 14px;
  align-items: start;
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: oklch(1 0 0 / 0.03);
}
.guided-outcome-row .eyebrow { margin: 0 0 7px; color: var(--green); font-size: 10px; }
.guided-outcome-row h4 {
  font-size: 19px;
  line-height: 1.16;
  letter-spacing: 0;
}
.guided-outcome-row p {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}
.guided-outcome-row-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.guided-outcome-row-facts span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  max-width: 100%;
  min-height: 28px;
  padding: 5px 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: oklch(1 0 0 / 0.035);
  color: var(--muted);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 10px;
  line-height: 1.25;
  overflow-wrap: anywhere;
}
.guided-outcome-row-facts strong { color: var(--text); }
@media (max-width: 520px) {
  .today-main h3 { font-size: 34px; }
  .today-program-card { padding: 20px; }
  .today-stage-strip { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 980px) {
  .guided-session-steps { grid-template-columns: 1fr 1fr; }
  .guided-step { min-height: 190px; }
}
@media (max-width: 640px) {
  .guided-session-head,
  .guided-outcome,
  .guided-outcome-row { grid-template-columns: 1fr; }
  .guided-session-receipt { justify-items: start; }
  .guided-session-steps { grid-template-columns: 1fr; }
  .guided-step { min-height: 0; }
}

.stats-mini { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin: 16px 0; font-size: 14px; color: var(--muted); }
.stats-mini strong { color: var(--text); font-size: 18px; display: block; }
.stats-mini .last-session { grid-column: span 2; font-size: 12px; }
.stats-mini.empty { grid-column: span 2; text-align: center; padding: 20px; color: var(--muted); }

.practice-plan { margin-bottom: 18px; }
.practice-plan-card {
  border: 1px solid var(--line);
  border-left: 4px solid var(--ember);
  border-radius: var(--radius);
  background: linear-gradient(145deg, oklch(0.27 0.026 150 / 0.92), oklch(0.21 0.024 150 / 0.94));
  box-shadow: var(--shadow);
  padding: 22px;
}
.practice-plan-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; align-items: start; margin-bottom: 18px; }
.practice-plan-head h3 { font-size: clamp(30px, 4vw, 46px); letter-spacing: -0.025em; }
.practice-plan-head p { margin: 10px 0 0; max-width: 760px; color: var(--muted); line-height: 1.55; }
.practice-plan-head .btn { margin-top: 14px; min-height: 38px; padding: 0 14px; font-size: 13px; }
.practice-plan-head > span { padding: 7px 10px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-family: "JetBrains Mono", monospace; font-size: 11px; white-space: nowrap; }
.plan-primary-action { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 14px; }
.plan-primary-action .btn { margin-top: 0; }
.plan-primary-action span { color: var(--muted); font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 11px; text-transform: uppercase; letter-spacing: 0.06em; }
.plan-progress { height: 7px; margin: -2px 0 18px; overflow: hidden; border: 1px solid var(--line); border-radius: 999px; background: oklch(1 0 0 / 0.04); }
.plan-progress span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--ember), var(--green)); }
.advisor-receipt {
  display: grid;
  gap: 12px;
  margin: 0 0 16px;
  padding: 15px;
  border: 1px solid oklch(0.72 0.12 205 / 0.34);
  border-left: 4px solid oklch(0.72 0.12 205);
  border-radius: 8px;
  background: oklch(0.72 0.12 205 / 0.07);
}
.advisor-receipt.repair { border-left-color: var(--ember); background: oklch(0.72 0.16 55 / 0.08); }
.advisor-receipt.review { border-left-color: var(--green); background: oklch(0.74 0.12 145 / 0.07); }
.advisor-receipt-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: start;
}
.advisor-receipt-head .eyebrow { margin-bottom: 7px; color: oklch(0.72 0.12 205); }
.advisor-receipt.repair .advisor-receipt-head .eyebrow { color: var(--ember); }
.advisor-receipt.review .advisor-receipt-head .eyebrow { color: var(--green); }
.advisor-receipt h4 {
  margin: 0;
  color: var(--text);
  font-size: 24px;
  line-height: 1.08;
}
.advisor-receipt-head > span {
  padding: 5px 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 10px;
}
.advisor-receipt p { margin: 0; color: var(--text); font-size: 14px; line-height: 1.45; }
.advisor-chain, .advisor-citations > div {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.advisor-chain span, .advisor-citations span:not(.eyebrow) {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 28px;
  padding: 5px 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: oklch(1 0 0 / 0.035);
  color: var(--muted);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 10px;
  line-height: 1.25;
}
.advisor-chain strong, .advisor-citations strong {
  color: var(--text);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.advisor-citations { display: grid; gap: 7px; }
.advisor-citations .eyebrow { margin: 0; color: var(--muted); font-size: 10px; }
.advisor-next-action {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  color: var(--muted);
  font-size: 13px;
}
.advisor-next-action strong {
  color: var(--text);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.advisor-next-action a {
  color: var(--text);
  font-weight: 800;
  text-decoration-color: var(--ember);
  text-underline-offset: 4px;
}
.plan-return-receipt {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin: 0 0 16px;
  padding: 11px 12px;
  border: 1px solid oklch(0.74 0.12 145 / 0.34);
  border-radius: 8px;
  background: oklch(0.74 0.12 145 / 0.08);
}
.plan-return-receipt > div:first-child { display: grid; gap: 3px; min-width: min(100%, 280px); flex: 1 1 280px; }
.plan-return-receipt strong { color: var(--text); font-size: 14px; }
.plan-return-receipt span { color: var(--muted); font-size: 13px; line-height: 1.4; }
.plan-return-receipt .btn { min-height: 36px; padding: 0 12px; font-size: 13px; }
.plan-return-next { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 11px !important; text-transform: uppercase; letter-spacing: 0.06em; }
.plan-step-explanation {
  display: grid;
  gap: 7px;
  margin: 10px 0 0;
  padding: 10px 11px;
  border: 1px solid oklch(0.74 0.12 145 / 0.26);
  border-left: 3px solid var(--green);
  border-radius: 8px;
  background: oklch(0.74 0.12 145 / 0.06);
}
.plan-step-explanation.compact { max-width: 760px; margin-top: 10px; }
.plan-return-receipt .plan-step-explanation { flex: 1 1 100%; margin-top: 2px; }
.plan-step-explanation .eyebrow { color: var(--green); font-size: 10px; }
.plan-step-explanation p { margin: 0; color: var(--text); font-size: 13px; line-height: 1.45; }
.plan-step-facts { display: flex; flex-wrap: wrap; gap: 6px; }
.plan-step-facts span {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 4px 7px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: oklch(1 0 0 / 0.035);
  color: var(--muted);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 10px !important;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.plan-steps { display: grid; gap: 10px; }
.plan-step { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 12px; padding: 14px 0; border-top: 1px solid var(--line); }
.plan-step-number { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--ember-soft); color: var(--ember); font-family: "JetBrains Mono", monospace; font-weight: 800; }
.plan-step-meta { display: flex; flex-wrap: wrap; gap: 8px; color: var(--muted); font-family: "JetBrains Mono", monospace; font-size: 11px; text-transform: uppercase; letter-spacing: 0.06em; }
.plan-step-status { border: 1px solid var(--line); border-radius: 999px; padding: 2px 7px; color: var(--muted); }
.plan-step-status.active { border-color: oklch(0.72 0.16 55 / 0.62); background: var(--ember-soft); color: var(--ember); }
.plan-step-status.done { border-color: oklch(0.74 0.12 145 / 0.55); background: oklch(0.74 0.12 145 / 0.12); color: var(--green); }
.plan-step.active .plan-step-number { background: var(--ember-soft); color: var(--ember); }
.plan-step.done { opacity: 0.78; }
.plan-step.done .plan-step-number { background: oklch(0.74 0.12 145 / 0.14); color: var(--green); }
.plan-step h4 { margin: 7px 0 6px; color: var(--text); font-size: 22px; line-height: 1.1; }
.plan-step p { margin: 0 0 10px; color: var(--muted); line-height: 1.45; }
.plan-step a { display: inline-flex; margin-top: 10px; color: var(--text); font-weight: 800; text-decoration-color: var(--ember); text-underline-offset: 4px; }
.plan-step-ledger { display: flex; flex-wrap: wrap; gap: 7px; margin: 10px 0 0; }
.plan-step-ledger span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 30px;
  padding: 5px 8px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: oklch(1 0 0 / 0.04);
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}
.plan-step-ledger strong {
  color: var(--text);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.plan-step.done .plan-step-ledger span { border-color: oklch(0.74 0.12 145 / 0.28); background: oklch(0.74 0.12 145 / 0.07); }

.due-card { border-color: var(--ember); box-shadow: 0 0 0 1px var(--ember), var(--shadow); }
.due-card .tag.due { color: var(--text); background: var(--ember-soft); border-color: var(--ember); }
.due-reasons { display: flex; flex-direction: column; gap: 8px; margin: 12px 0; }
.due-reason { font-size: 13px; color: var(--muted); padding: 8px 10px; background: oklch(1 0 0 / 0.04); border-radius: 10px; border: 1px solid var(--line); }
.weak-tags, .mastery-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.weak-tag { padding: 4px 8px; border-radius: 8px; background: var(--ember-soft); color: var(--ember); font-family: "JetBrains Mono", monospace; font-size: 11px; border: 1px solid var(--ember); }
.mastery-chip { padding: 5px 8px; border-radius: 8px; background: oklch(0.74 0.12 145 / 0.14); color: var(--green); font-family: "JetBrains Mono", monospace; font-size: 11px; border: 1px solid oklch(0.74 0.12 145 / 0.44); }
.competency-chip-block { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.competency-chip { padding: 6px 9px; border-radius: 10px; background: oklch(0.72 0.16 55 / 0.14); color: var(--ember); font-family: "JetBrains Mono", monospace; font-size: 11px; border: 1px solid oklch(0.72 0.16 55 / 0.48); }
.repair-block {
  margin-top: 16px;
  padding: 2px 0 2px 14px;
  border-left: 2px solid var(--green);
}
.repair-block.compact { margin-top: 4px; }
.repair-block .eyebrow {
  margin-bottom: 7px;
  color: var(--green);
}
.repair-block strong {
  display: block;
  color: var(--text);
  font-size: 15px;
}
.repair-block p {
  margin: 7px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}
.repair-block a {
  display: inline-flex;
  margin-top: 8px;
  color: var(--text);
  font-size: 13px;
  font-weight: 800;
  text-decoration-color: var(--green);
  text-underline-offset: 4px;
}

.evidence-ledger { display: grid; gap: 10px; }
.ledger-row {
  display: grid;
  grid-template-columns: minmax(150px, 0.34fr) minmax(0, 1fr);
  gap: 16px;
  padding: 16px;
  border: 1px solid var(--line);
  border-left: 4px solid var(--green);
  border-radius: 8px;
  background: linear-gradient(145deg, oklch(0.27 0.026 150 / 0.86), oklch(0.22 0.024 150 / 0.9));
  box-shadow: 0 12px 28px oklch(0 0 0 / 0.14);
}
.ledger-row.open, .ledger-row.reopened { border-left-color: var(--ember); }
.ledger-row.miss { border-left-color: oklch(0.66 0.18 26); }
.ledger-row.correct { border-left-color: oklch(0.72 0.12 205); }
.ledger-status { display: grid; align-content: start; gap: 8px; }
.ledger-status span {
  width: fit-content;
  padding: 5px 9px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: oklch(1 0 0 / 0.04);
  color: var(--text);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0;
}
.ledger-status time { color: var(--muted); font-size: 12px; }
.ledger-main h3 { margin: 0 0 6px; color: var(--text); font-size: 22px; line-height: 1.12; }
.ledger-main p { margin: 0; color: var(--muted); line-height: 1.45; }
.ledger-facts { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 11px; }
.ledger-facts span {
  display: inline-flex;
  align-items: center;
  min-height: 27px;
  padding: 4px 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: oklch(1 0 0 / 0.035);
  color: var(--muted);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 11px;
  line-height: 1.25;
  letter-spacing: 0;
}

.memory-facts { display: grid; gap: 14px; }
.memory-summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: oklch(1 0 0 / 0.035);
}
.memory-summary span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 30px;
  padding: 5px 9px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 11px;
}
.memory-summary strong { color: var(--text); }
.memory-summary .btn { min-height: 32px; padding: 0 10px; font-size: 12px; }
.memory-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.memory-card {
  border: 1px solid var(--line);
  border-left: 4px solid oklch(0.72 0.12 205);
  border-radius: 8px;
  background: linear-gradient(145deg, oklch(0.27 0.026 150 / 0.86), oklch(0.22 0.024 150 / 0.92));
  box-shadow: 0 12px 28px oklch(0 0 0 / 0.14);
  padding: 16px;
}
.memory-card.weak_signal, .memory-card.recurring_trap { border-left-color: var(--ember); }
.memory-card.repaired_signal, .memory-card.stable_strength { border-left-color: var(--green); }
.memory-card.stale_skill, .memory-card.next_review_due { border-left-color: oklch(0.72 0.12 205); }
.memory-card-head { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.memory-card-head span {
  color: var(--ember);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.memory-card h3 { margin: 0 0 7px; color: var(--text); font-size: 22px; line-height: 1.12; }
.memory-card p { margin: 0; color: var(--muted); line-height: 1.45; }
.memory-evidence, .memory-meta { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 11px; }
.memory-evidence span, .memory-meta span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 27px;
  padding: 4px 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: oklch(1 0 0 / 0.035);
  color: var(--muted);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 11px;
  line-height: 1.25;
}
.memory-evidence strong { color: var(--text); }
.memory-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 12px; }
.memory-delete {
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--muted);
  font: 700 12px/1 "Inter", sans-serif;
  text-decoration: underline;
  text-decoration-color: var(--line);
  text-underline-offset: 4px;
  cursor: pointer;
}
.memory-delete:hover { color: var(--text); text-decoration-color: var(--ember); }
.memory-delete.correction { text-decoration-color: oklch(0.72 0.12 205 / 0.5); }
.memory-delete.correction:hover { text-decoration-color: oklch(0.72 0.12 205); }
.memory-corrections {
  display: grid;
  gap: 8px;
  padding: 12px;
  border: 1px solid oklch(0.72 0.12 205 / 0.28);
  border-radius: 8px;
  background: oklch(0.72 0.12 205 / 0.055);
}
.memory-corrections-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.memory-corrections-head .eyebrow { margin: 0; color: oklch(0.72 0.12 205); }
.memory-corrections-head > span:last-child {
  color: var(--muted);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 11px;
}
.memory-correction-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: start;
  padding: 10px 0;
  border-top: 1px solid var(--line);
}
.memory-correction-row strong {
  color: var(--text);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 12px;
}
.memory-correction-row p { margin: 4px 0 0; color: var(--muted); font-size: 13px; line-height: 1.4; }
.memory-correction-row .memory-delete { white-space: nowrap; }

.mastery-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.competency-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mastery-card {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: linear-gradient(145deg, oklch(0.28 0.026 150 / 0.9), oklch(0.22 0.024 150 / 0.92));
  box-shadow: var(--shadow);
  padding: 22px;
}
.mastery-card-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.mastery-key, .mastery-score { font-family: "JetBrains Mono", monospace; font-size: 12px; }
.mastery-key { color: var(--green); }
.mastery-score { color: var(--ember); }
.mastery-card h3 { font-size: 28px; letter-spacing: -0.02em; }
.mastery-card p { color: var(--muted); line-height: 1.55; margin: 12px 0 18px; }
.mastery-meta { display: grid; gap: 7px; color: var(--muted); font-size: 12px; }
.mastery-meta span:first-child { color: var(--text); font-family: "JetBrains Mono", monospace; }
.competency-card { border-color: oklch(0.72 0.16 55 / 0.42); }

.weak-list { display: flex; flex-direction: column; gap: 12px; }
.weak-row { display: grid; grid-template-columns: 1fr auto; gap: 16px; align-items: center; padding: 16px; border: 1px solid var(--line); border-radius: 16px; background: var(--card); }
.weak-main { display: flex; flex-direction: column; gap: 6px; }
.weak-tag-large { font-family: "JetBrains Mono", monospace; font-size: 16px; color: var(--text); }
.weak-trainers { font-size: 12px; color: var(--muted); }
.weak-stats { display: flex; flex-direction: column; gap: 4px; align-items: flex-end; }
.weak-stats .wrong { font-family: "JetBrains Mono", monospace; font-size: 14px; color: var(--ember); }
.weak-stats .score { font-size: 12px; color: var(--muted); }

/* Public quality report */
.quality-pass { color: var(--green); }
.quality-fail { color: var(--ember); }
.quality-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.quality-metric, .quality-lesson, .quality-evidence-lesson {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--card);
  box-shadow: var(--shadow);
  padding: 20px;
}
.quality-metric span, .quality-key, .quality-state {
  color: var(--ember);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.quality-metric strong {
  display: block;
  margin: 10px 0 8px;
  color: var(--text);
  font-family: Fraunces, Georgia, serif;
  font-size: clamp(34px, 5vw, 58px);
  line-height: 0.95;
}
.quality-metric p, .quality-path { color: var(--muted); line-height: 1.5; margin: 0; }
.quality-lessons { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.quality-lesson { display: flex; flex-direction: column; gap: 14px; }
.quality-lesson.fail { border-color: var(--ember); box-shadow: 0 0 0 1px var(--ember), var(--shadow); }
.quality-card-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.quality-card-head > div { display: grid; gap: 7px; }
.quality-state { color: var(--green); }
.quality-lesson.fail .quality-state { color: var(--ember); }
.quality-counts, .quality-chip-row { display: flex; flex-wrap: wrap; gap: 8px; }
.quality-counts span, .quality-chip {
  padding: 6px 9px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 12px;
}
.quality-chip.mastery {
  color: var(--green);
  border-color: oklch(0.74 0.12 145 / 0.44);
  background: oklch(0.74 0.12 145 / 0.12);
}
.quality-issues { display: grid; gap: 8px; }
.quality-issues p {
  margin: 0;
  padding: 9px 11px;
  border: 1px solid var(--ember);
  border-radius: 10px;
  background: var(--ember-soft);
  color: var(--text);
  font-size: 13px;
  line-height: 1.4;
}
.quality-evidence { display: grid; gap: 18px; }
.quality-evidence-lesson { display: grid; gap: 18px; }
.quality-evidence-lesson h3 { font-size: 34px; letter-spacing: 0; line-height: 1.04; }
.quality-guarantees { display: flex; flex-wrap: wrap; gap: 8px; }
.quality-check {
  padding: 6px 9px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.quality-check.pass {
  border-color: oklch(0.74 0.12 145 / 0.42);
  background: oklch(0.74 0.12 145 / 0.1);
  color: var(--green);
}
.quality-check.fail {
  border-color: var(--ember);
  background: var(--ember-soft);
  color: var(--ember);
}
.quality-evidence-rows { display: grid; gap: 0; border-top: 1px solid var(--line); }
.quality-evidence-row {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, 1fr);
  gap: 20px;
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
}
.quality-evidence-row:last-child { border-bottom: 0; padding-bottom: 0; }
.quality-evidence-main { display: grid; gap: 10px; }
.quality-evidence-main h4 {
  margin: 0;
  color: var(--text);
  font-family: Fraunces, Georgia, serif;
  font-size: 24px;
  letter-spacing: 0;
  line-height: 1.05;
}
.quality-evidence-main p:not(.quality-path) { margin: 0; color: var(--muted); line-height: 1.55; }
.quality-evidence-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  align-content: start;
}
.quality-evidence-meta div { display: grid; gap: 7px; min-width: 0; }
.quality-evidence-meta strong {
  color: var(--text);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.quality-evidence-meta span { display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; }
.quality-evidence-checks { grid-column: 1 / -1; }

/* Public program map */
.program-copy { margin: 18px 0 0; color: var(--muted); line-height: 1.6; }
.program-pillars { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.program-pillar, .program-capability, .program-proof-panel {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--card);
  box-shadow: var(--shadow);
}
.program-pillar {
  min-height: 270px;
  padding: 22px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.program-pillar.fail, .program-capability.fail { border-color: var(--ember); box-shadow: 0 0 0 1px var(--ember), var(--shadow); }
.program-pillar h3, .program-capability h3, .program-proof-panel h3 {
  font-size: clamp(26px, 3vw, 34px);
  letter-spacing: 0;
  line-height: 1.04;
}
.program-pillar p, .program-capability p {
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}
.program-proof-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: auto;
}
.program-chip {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 5px 9px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: oklch(1 0 0 / 0.035);
  color: var(--muted);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 11px;
  line-height: 1.25;
  overflow-wrap: anywhere;
  text-decoration: none;
}
.program-chip.pass {
  border-color: oklch(0.74 0.12 145 / 0.42);
  background: oklch(0.74 0.12 145 / 0.1);
  color: var(--green);
}
.program-chip.fail {
  border-color: var(--ember);
  background: var(--ember-soft);
  color: var(--ember);
}
.program-chip.mastery {
  border-color: oklch(0.72 0.12 205 / 0.42);
  background: oklch(0.72 0.12 205 / 0.09);
  color: oklch(0.78 0.1 205);
}
a.program-chip:hover { color: var(--text); border-color: var(--ember); }
.program-capabilities { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.program-capability {
  display: grid;
  gap: 14px;
  padding: 20px;
}
.program-contracts {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.program-contracts li {
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-left: 3px solid var(--green);
  border-radius: 8px;
  background: oklch(1 0 0 / 0.035);
  color: var(--text);
  line-height: 1.42;
}
.program-proof-block { display: grid; gap: 7px; }
.program-proof-block strong {
  color: var(--text);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.program-proof-block div { display: flex; flex-wrap: wrap; gap: 6px; }
.program-proof-panel {
  display: grid;
  gap: 18px;
  padding: 20px;
}
.program-guarantees, .program-reports { display: grid; gap: 10px; }
.program-guarantee, .program-report {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  padding: 12px 0;
  border-top: 1px solid var(--line);
  text-decoration: none;
}
.program-guarantee > span, .program-report > span {
  width: fit-content;
  padding: 5px 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.program-guarantee.pass > span, .program-report.pass > span {
  border-color: oklch(0.74 0.12 145 / 0.42);
  color: var(--green);
  background: oklch(0.74 0.12 145 / 0.1);
}
.program-guarantee.fail > span, .program-report.fail > span {
  border-color: var(--ember);
  color: var(--ember);
  background: var(--ember-soft);
}
.program-guarantee strong, .program-report strong { color: var(--text); }
.program-guarantee p, .program-report p {
  margin: 4px 0 0;
  color: var(--muted);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 11px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

/* Public proof and health surface */
.proof-digest {
  display: grid;
  gap: 16px;
}
.proof-digest-lead, .proof-digest-card, .proof-digest-panel {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--card);
  box-shadow: var(--shadow);
}
.proof-digest-lead {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: end;
  padding: 22px;
}
.proof-digest-lead.fail, .proof-digest-card.fail, .proof-change-row.fail {
  border-color: var(--ember);
  box-shadow: 0 0 0 1px var(--ember), var(--shadow);
}
.proof-digest-lead h3, .proof-digest-card h3, .proof-digest-panel h3 {
  font-size: clamp(25px, 3vw, 34px);
  letter-spacing: 0;
  line-height: 1.04;
}
.proof-digest-lead p, .proof-digest-card p, .proof-digest-panel p {
  margin: 10px 0 0;
  color: var(--muted);
  line-height: 1.55;
}
.proof-digest-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
.proof-digest-card {
  display: flex;
  min-height: 310px;
  flex-direction: column;
  gap: 13px;
  padding: 20px;
}
.proof-digest-detail {
  padding-top: 10px;
  border-top: 1px solid var(--line);
}
.proof-digest-lower {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: 16px;
  align-items: start;
}
.proof-digest-panel {
  display: grid;
  gap: 12px;
  padding: 20px;
}
.proof-change-row {
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  padding: 12px 0;
  border-top: 1px solid var(--line);
}
.proof-change-row > span {
  width: fit-content;
  padding: 5px 8px;
  border: 1px solid oklch(0.74 0.12 145 / 0.42);
  border-radius: 999px;
  background: oklch(0.74 0.12 145 / 0.1);
  color: var(--green);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.proof-change-row strong { color: var(--text); }
.proof-digest-panel ul {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.proof-digest-panel li {
  padding: 11px 12px;
  border: 1px solid var(--line);
  border-left: 3px solid oklch(0.72 0.12 205 / 0.58);
  border-radius: 8px;
  color: var(--muted);
  line-height: 1.45;
}
.proof-artifacts {
  display: grid;
  grid-template-columns: minmax(260px, 0.8fr) minmax(0, 1.2fr);
  gap: 16px;
  align-items: start;
}
.proof-command-card, .proof-artifact-list, .proof-surface, .proof-walkthrough-summary, .proof-walkthrough-step, .proof-capability-summary, .proof-capability-row, .proof-guided-card, .proof-health-card, .proof-review-table, .proof-summary-preview {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--card);
  box-shadow: var(--shadow);
}
.proof-command-card {
  display: grid;
  gap: 14px;
  padding: 20px;
}
.proof-command-card.fail { border-color: var(--ember); }
.proof-command-card h3, .proof-surface h3, .proof-walkthrough-summary h3, .proof-capability-summary h3, .proof-guided-card h3, .proof-health-card h3 {
  font-size: clamp(25px, 3vw, 33px);
  letter-spacing: 0;
  line-height: 1.04;
}
.proof-command-card ol {
  display: grid;
  gap: 10px;
  margin: 0;
  padding-left: 20px;
  color: var(--muted);
}
.proof-command-card code {
  color: var(--text);
  overflow-wrap: anywhere;
}
.proof-command-card p {
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}
.proof-artifact-list {
  display: grid;
  gap: 0;
  padding: 8px 18px;
}
.proof-walkthrough {
  display: grid;
  gap: 14px;
}
.proof-walkthrough-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: end;
  padding: 20px;
}
.proof-walkthrough-summary.fail {
  border-color: var(--ember);
  box-shadow: 0 0 0 1px var(--ember), var(--shadow);
}
.proof-walkthrough-summary p {
  margin: 10px 0 0;
  color: var(--muted);
  line-height: 1.55;
}
.proof-walkthrough-steps {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 12px;
  align-items: start;
}
.proof-walkthrough-step {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 12px;
  min-height: 360px;
  padding: 16px;
  border-top: 3px solid oklch(0.72 0.12 205 / 0.58);
}
.proof-walkthrough-number {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border: 1px solid oklch(0.72 0.12 205 / 0.42);
  border-radius: 999px;
  background: oklch(0.72 0.12 205 / 0.09);
  color: oklch(0.78 0.1 205);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 12px;
}
.proof-walkthrough-step h3 {
  font-size: clamp(20px, 2.3vw, 25px);
  letter-spacing: 0;
  line-height: 1.08;
}
.proof-walkthrough-step p {
  margin: 10px 0 12px;
  color: var(--muted);
  line-height: 1.48;
}
.proof-walkthrough-step .program-chip[href] {
  width: fit-content;
  margin-top: 10px;
}
.proof-surfaces {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
.proof-guided {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 16px;
  align-items: start;
}
.proof-capability-matrix {
  display: grid;
  gap: 12px;
}
.proof-capability-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: end;
  padding: 20px;
}
.proof-capability-summary.fail, .proof-capability-row.fail {
  border-color: var(--ember);
  box-shadow: 0 0 0 1px var(--ember), var(--shadow);
}
.proof-capability-summary p {
  margin: 10px 0 0;
  color: var(--muted);
  line-height: 1.55;
}
.proof-capability-row {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(185px, 0.75fr) minmax(185px, 0.75fr) minmax(185px, 0.75fr);
  gap: 16px;
  align-items: start;
  padding: 18px;
  border-left: 3px solid var(--green);
}
.proof-capability-row.fail { border-left-color: var(--ember); }
.proof-capability-main {
  display: grid;
  gap: 10px;
}
.proof-capability-main h3 {
  font-size: clamp(21px, 2.3vw, 27px);
  letter-spacing: 0;
  line-height: 1.08;
}
.proof-capability-main p {
  margin: 0;
  color: var(--muted);
  line-height: 1.48;
}
.proof-capability-contract {
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-left: 3px solid oklch(0.72 0.12 205 / 0.58);
  border-radius: 8px;
  background: oklch(1 0 0 / 0.035);
  color: var(--text) !important;
}
.proof-capability-cell {
  display: grid;
  min-width: 0;
  gap: 8px;
  align-content: start;
}
.proof-capability-cell strong {
  color: var(--text);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.proof-surface {
  display: flex;
  min-height: 295px;
  flex-direction: column;
  gap: 14px;
  padding: 20px;
}
.proof-guided-card {
  display: grid;
  align-content: start;
  gap: 14px;
  padding: 20px;
}
.proof-surface.fail {
  border-color: var(--ember);
  box-shadow: 0 0 0 1px var(--ember), var(--shadow);
}
.proof-guided-card.fail {
  border-color: var(--ember);
  box-shadow: 0 0 0 1px var(--ember), var(--shadow);
}
.proof-surface p, .proof-guided-card p {
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}
.proof-health-panel {
  display: grid;
  grid-template-columns: minmax(210px, 0.7fr) minmax(0, 1.3fr);
  gap: 16px;
}
.proof-health-card {
  display: grid;
  gap: 10px;
  padding: 20px;
}
.proof-health-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 9px 0;
  border-top: 1px solid var(--line);
}
.proof-health-row span {
  color: var(--muted);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 12px;
  overflow-wrap: anywhere;
}
.proof-health-row strong {
  color: var(--green);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 14px;
}
.proof-review {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 16px;
  align-items: start;
}
.proof-review-table {
  display: grid;
  gap: 0;
  padding: 8px 18px;
}
.proof-review-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 96px 92px 112px;
  gap: 12px;
  align-items: center;
  padding: 12px 0;
  border-top: 1px solid var(--line);
}
.proof-review-row:first-child { border-top: 0; }
.proof-review-row strong {
  color: var(--text);
  overflow-wrap: anywhere;
}
.proof-review-row span {
  color: var(--muted);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 11px;
  line-height: 1.3;
}
.proof-summary-preview {
  min-height: 260px;
  max-height: 420px;
  margin: 0;
  padding: 18px;
  overflow: auto;
  color: var(--muted);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 12px;
  line-height: 1.55;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

@media (max-width: 820px) {
  .practice-plan-head { grid-template-columns: 1fr; }
  .practice-plan-head > span { justify-self: start; white-space: normal; }
  .advisor-receipt-head { grid-template-columns: 1fr; }
  .advisor-receipt-head > span { justify-self: start; }
  .ledger-row { grid-template-columns: 1fr; gap: 10px; }
  .memory-correction-row { grid-template-columns: 1fr; }
  .memory-correction-row .memory-delete { justify-self: start; }
  .mastery-list, .competency-list, .memory-grid { grid-template-columns: 1fr; }
  .quality-metrics, .quality-lessons { grid-template-columns: 1fr; }
  .program-pillars, .program-capabilities, .proof-digest-lead, .proof-digest-grid, .proof-digest-lower, .proof-artifacts, .proof-walkthrough-summary, .proof-walkthrough-steps, .proof-surfaces, .proof-capability-summary, .proof-capability-row, .proof-guided, .proof-health-panel, .proof-review { grid-template-columns: 1fr; }
  .program-pillar { min-height: auto; }
  .proof-digest-card, .proof-surface, .proof-walkthrough-step { min-height: auto; }
  .quality-evidence-row { grid-template-columns: 1fr; }
  .quality-evidence-meta { grid-template-columns: 1fr; }
  .quality-evidence-lesson h3 { font-size: 28px; }
}

@media (max-width: 520px) {
  .program-guarantee, .program-report { grid-template-columns: 1fr; }
  .proof-change-row { grid-template-columns: 1fr; }
  .proof-review-row { grid-template-columns: 1fr; }
}
