:root {
  color-scheme: light;
  --ink: #20221f;
  --muted: #6f716b;
  --faint: #9b9d97;
  --paper: #f4f1ea;
  --white: #fffefa;
  --line: #ddd9cf;
  --line-dark: #c8c2b6;
  --green: #365b4a;
  --green-soft: #e4ece6;
  --amber: #9a642c;
  --amber-soft: #f5e9d8;
  --red: #8b4740;
  --red-soft: #f4e3df;
  --blue: #415f73;
  --sidebar: 272px;
  --serif: Georgia, "Times New Roman", serif;
  --sans: "Source Sans 3", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-height: 100vh;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-optical-sizing: auto;
}
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
button:focus-visible, a:focus-visible, summary:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 3px solid rgba(54,91,74,.32); outline-offset: 3px; }
.skip-link { position: fixed; top: 10px; left: 10px; z-index: 100; transform: translateY(-150%); border-radius: 4px; background: var(--ink); color: white; padding: 10px 14px; font-size: .75rem; font-weight: 800; transition: transform .15s ease; }
.skip-link:focus { transform: translateY(0); }

.sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 20;
  display: flex;
  flex-direction: column;
  width: var(--sidebar);
  border-right: 1px solid var(--line);
  background: #ece8df;
  padding: 22px 16px 16px;
  transition: width .22s ease, transform .22s ease;
}
.brand-row { display: flex; align-items: center; justify-content: space-between; padding: 0 3px 22px; }
.brand { display: flex; align-items: center; gap: 10px; color: var(--ink); font-family: var(--serif); font-size: 1.28rem; font-weight: 700; text-decoration: none; }
.brand-mark { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50% 50% 50% 5px; background: var(--ink); color: var(--paper); font-size: .9rem; }
.icon-button { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid transparent; border-radius: 50%; background: transparent; color: var(--muted); }
.icon-button:hover { border-color: var(--line-dark); background: rgba(255,255,255,.45); color: var(--ink); }
.new-check { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 42px; border: 1px solid var(--line-dark); border-radius: 7px; background: rgba(255,255,255,.42); color: var(--ink); padding: 0 10px; font-size: .8rem; font-weight: 750; text-align: left; transition: background .15s ease, border-color .15s ease; }
.new-check:hover { border-color: #aaa498; background: rgba(255,255,255,.75); }
.new-check-icon { display: grid; flex: 0 0 auto; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--ink); color: white; }
.new-check-icon svg { display: block; width: 15px; height: 15px; }
.new-check-label { min-width: 0; }
.side-nav { display: grid; gap: 3px; margin: 22px 0; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.nav-item { display: grid; grid-template-columns: 22px 1fr auto; align-items: center; gap: 8px; min-height: 39px; border: 0; border-radius: 6px; background: transparent; color: var(--muted); padding: 0 10px; font-size: .85rem; text-align: left; }
.nav-item:hover, .nav-item.is-active { background: rgba(255,255,255,.58); color: var(--ink); }
.nav-item.is-active { font-weight: 700; }
.notification-icon, .home-icon, .practice-icon { display: grid; place-items: center; }
.notification-icon svg, .home-icon svg, .practice-icon svg { display: block; width: 17px; height: 17px; }
.nav-item em { min-width: 21px; border-radius: 10px; background: rgba(73,101,83,.12); color: var(--green); padding: 2px 6px; font-size: .68rem; font-style: normal; text-align: center; }
.nav-item em.is-due { background: var(--amber-soft); color: var(--amber); }
.nav-item em.has-scheduled { background: var(--green-soft); color: var(--green); }
.library-head { display: flex; justify-content: space-between; padding: 0 8px 11px; color: var(--muted); font-size: .66rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.library-head span:last-child { color: var(--faint); font-weight: 600; letter-spacing: 0; text-transform: none; }
.library-list { display: grid; gap: 7px; overflow-y: auto; padding: 1px 0 12px; }
.empty-library { display: grid; place-items: center; gap: 5px; border: 1px dashed var(--line-dark); border-radius: 8px; padding: 24px 16px; color: var(--muted); text-align: center; }
.empty-library > span { font-size: 1.6rem; }
.empty-library p { margin: 0; font-family: var(--serif); font-size: .92rem; line-height: 1.45; }
.book-group { border-bottom: 1px solid rgba(200,194,182,.55); padding-bottom: 7px; }
.book-group summary { display: flex; align-items: center; justify-content: space-between; gap: 8px; cursor: pointer; list-style: none; padding: 8px; }
.book-group.is-dragging { opacity: .42; }
.book-group.drop-before { box-shadow: inset 0 2px 0 var(--green); }
.book-group.drop-after { box-shadow: inset 0 -2px 0 var(--green); }
.book-group summary::-webkit-details-marker { display: none; }
.book-group summary strong { flex: 1 1 auto; overflow: hidden; font-family: var(--serif); font-size: .88rem; text-overflow: ellipsis; white-space: nowrap; }
.book-group summary span { color: var(--faint); font-size: .7rem; }
.book-drag-handle { flex: 0 0 auto; width: 11px; height: 17px; fill: var(--faint); cursor: grab; }
.book-group summary:active .book-drag-handle { cursor: grabbing; }
.book-summary-meta { display: flex; flex: 0 0 auto; align-items: center; gap: 5px; }
.book-chevron { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; transition: transform .18s ease; }
.book-group[open] .book-chevron { transform: rotate(90deg); }
.book-group summary:hover .book-chevron { color: var(--ink); }
.book-progress { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 8px; padding: 0 8px 8px; }
.book-progress-track { height: 3px; overflow: hidden; border-radius: 999px; background: #d8d2c7; }
.book-progress-track span { display: block; width: var(--book-progress); height: 100%; background: var(--green); }
.book-progress small { color: var(--muted); font-size: .6rem; white-space: nowrap; }
.book-insights-link { display: flex; align-items: center; justify-content: space-between; width: calc(100% - 16px); margin: 0 8px 5px; border: 0; border-radius: 4px; background: rgba(54,91,74,.08); color: var(--green); padding: 7px 8px; font-size: .67rem; font-weight: 800; text-align: left; }
.book-insights-link:hover { background: var(--green-soft); }
.chapter-link { display: grid; grid-template-columns: 1fr auto; gap: 3px 8px; width: calc(100% - 8px); margin-left: 8px; border: 0; border-left: 2px solid transparent; background: transparent; padding: 8px 9px; color: var(--muted); text-align: left; }
.chapter-link:hover { border-left-color: var(--green); background: rgba(255,255,255,.42); color: var(--ink); }
.chapter-link.is-draft { border-left-color: var(--amber); background: rgba(245,233,216,.45); }
.chapter-link.is-draft small { color: var(--amber); font-weight: 800; }
.chapter-link strong { overflow: hidden; font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.chapter-link small { font-size: .66rem; }
.review-scheduled-icon { display: grid; place-items: center; width: 18px; height: 18px; color: var(--green); }
.review-scheduled-icon.is-due { color: var(--amber); }
.review-scheduled-icon svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.status-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--green); }
.status-dot.due { background: var(--amber); }
.sidebar-foot { position: relative; margin-top: auto; border-top: 1px solid var(--line); padding-top: 12px; }
.sidebar-foot button { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 9px; width: 100%; border: 0; background: transparent; color: var(--muted); font-size: .78rem; text-align: left; }
.avatar { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: #d8d2c6; color: var(--ink); font-family: var(--serif); }
.avatar.has-image { overflow: hidden; background: transparent; }
.avatar img { width: 100%; height: 100%; object-fit: cover; }
.signed-out-mark { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid var(--line-dark); border-radius: 50%; background: transparent; color: var(--muted); transition: border-color .15s ease, color .15s ease, background .15s ease; }
.signed-out-mark svg { display: block; width: 22px; height: 22px; }
.profile-menu { position: absolute; z-index: 35; right: 0; bottom: 48px; width: 224px; border: 1px solid var(--line-dark); border-radius: 6px; background: var(--white); padding: 7px; box-shadow: 0 16px 44px rgba(32,34,31,.16); }
.profile-menu[hidden] { display: none; }
.profile-menu-head { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 10px; border-bottom: 1px solid var(--line); margin-bottom: 5px; padding: 9px 8px 12px; }
.profile-menu-head strong, .profile-menu-head small { display: block; }
.profile-menu-head strong { font-family: var(--serif); font-size: .9rem; }
.profile-menu-head small { margin-top: 2px; color: var(--muted); font-size: .64rem; }
.profile-menu > button { display: block; min-height: 36px; border-radius: 4px; padding: 0 9px; color: var(--ink); font-size: .73rem; }
.profile-menu > button:hover { background: var(--soft); }
.profile-menu > .logout-button { color: var(--red); }
.sidebar-foot .signed-out-note { display: none; align-items: center; gap: 9px; color: var(--muted); font-size: .73rem; }
.signed-out-note:hover .signed-out-mark { border-color: currentColor; color: var(--ink); }

.shell { min-height: 100vh; margin-left: var(--sidebar); transition: margin-left .22s ease; }
.topbar { position: sticky; top: 0; z-index: 10; display: flex; align-items: center; justify-content: flex-end; min-height: 54px; border-bottom: 1px solid var(--line); background: rgba(244,241,234,.91); padding: 8px clamp(24px, 4vw, 62px); backdrop-filter: blur(12px); }
.eyebrow { color: var(--green); font-size: .66rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.top-actions { display: flex; align-items: center; gap: 18px; }
.marketing-nav { display: none; align-items: center; gap: 3px; margin-right: auto; }
.marketing-nav button { min-height: 34px; border: 0; border-radius: 4px; background: transparent; color: var(--muted); padding: 0 9px; font-size: .68rem; font-weight: 700; }
.marketing-nav button:hover, .marketing-nav button.is-active { background: rgba(255,255,255,.62); color: var(--ink); }
body.logged-out .marketing-nav { display: flex; }
.marketing-mobile-menu { display: none; position: relative; margin-right: auto; }
.marketing-mobile-menu summary { cursor: pointer; list-style: none; color: var(--muted); padding: 7px 9px; font-size: .7rem; font-weight: 750; }
.marketing-mobile-menu summary::-webkit-details-marker { display: none; }
.marketing-mobile-menu > div { position: absolute; z-index: 45; top: 40px; left: 0; display: grid; width: 190px; border: 1px solid var(--line-dark); background: var(--white); padding: 7px; box-shadow: 0 15px 35px rgba(32,34,31,.15); }
.marketing-mobile-menu button { border: 0; background: transparent; color: var(--ink); padding: 10px; font-size: .72rem; text-align: left; }
.marketing-mobile-menu button:hover { background: var(--paper); }
.auth-actions { display: none; align-items: center; gap: 13px; padding-left: 2px; }
.primary.compact { min-height: 36px; padding: 0 13px; font-size: .7rem; }
.text-button { border: 0; background: transparent; color: var(--muted); padding: 4px 0; font-size: .76rem; font-weight: 700; }
.text-button:hover { color: var(--ink); text-decoration: underline; }
.mobile-menu { display: none; }
main { position: relative; min-height: calc(100vh - 54px); }
.view { display: none; }
.view.is-active { display: block; animation: rise .28s ease; }
@keyframes rise { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
.toast { position: fixed; z-index: 50; right: 28px; bottom: 28px; max-width: 360px; border-radius: 6px; background: var(--ink); color: white; padding: 12px 16px; font-size: .78rem; opacity: 0; pointer-events: none; transform: translateY(8px); transition: .2s ease; }
.toast.is-visible { opacity: 1; transform: translateY(0); }

.book-insights-view { width: min(1100px, calc(100% - 48px)); margin: 0 auto; padding: 38px 0 80px; }
.insights-hero { max-width: 800px; padding: 34px 0 38px; }
.insights-hero h1 { margin: 8px 0 7px; font-family: var(--serif); font-size: clamp(2.7rem, 6vw, 5.4rem); font-weight: 500; letter-spacing: -.05em; line-height: .98; }
.insights-byline { margin: 0; color: var(--muted); font-size: .78rem; }
.insights-synthesis { max-width: 720px; margin: 29px 0 0; font-family: var(--serif); font-size: clamp(1.18rem, 2vw, 1.55rem); line-height: 1.55; }
.insights-stats { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--line-dark); background: var(--line); gap: 1px; }
.insights-stats article { min-width: 0; background: var(--white); padding: 18px; }
.insights-stats span { display: block; color: var(--muted); font-size: .61rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.insights-stats strong { display: block; margin-top: 8px; font-family: var(--serif); font-size: 1.65rem; font-weight: 500; }
.insights-stats .insights-text-stat { overflow: hidden; font-size: .93rem; line-height: 1.8; text-overflow: ellipsis; white-space: nowrap; }
.insights-grid { display: grid; grid-template-columns: 1.35fr .85fr; gap: 18px; margin-top: 18px; }
.insights-panel, .chapter-signals { border: 1px solid var(--line-dark); background: rgba(255,254,250,.72); padding: 25px; }
.insights-panel header, .chapter-signals > header { margin-bottom: 22px; }
.insights-panel h2, .chapter-signals h2 { margin: 6px 0 0; font-family: var(--serif); font-size: 1.35rem; font-weight: 500; }
.retained-list { display: grid; gap: 1px; background: var(--line); }
.retained-list article { display: grid; grid-template-columns: 25px 1fr; gap: 11px; background: var(--white); padding: 16px; }
.retained-list article > span { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--green-soft); color: var(--green); font-size: .68rem; font-weight: 900; }
.retained-list strong { font-family: var(--serif); font-size: 1.05rem; }
.retained-list p { margin: 5px 0 0; color: var(--muted); font-size: 1.04rem; line-height: 1.68; }
.gap-list { display: grid; gap: 10px; }
.gap-list div { display: flex; align-items: center; justify-content: space-between; gap: 15px; border-bottom: 1px solid var(--line); padding: 0 0 10px; }
.gap-list span { font-family: var(--serif); font-size: 1.05rem; }
.gap-list strong { color: var(--muted); font-size: .62rem; }
.insights-empty { border: 1px dashed var(--line-dark); padding: 22px; text-align: center; }
.insights-empty strong { font-family: var(--serif); }
.insights-empty p { margin: 6px 0 0; color: var(--muted); font-size: .72rem; line-height: 1.5; }
.learning-report { display: grid; gap: 18px; }
.report-hero { border-bottom: 1px solid var(--line-dark); padding-bottom: 32px; }
.report-progress { display: grid; grid-template-columns: minmax(0, 360px) auto; gap: 12px; align-items: center; width: min(470px, 100%); margin-top: 18px; }
.report-progress span { display: block; height: 6px; overflow: hidden; border-radius: 999px; background: #ded8cd; }
.report-progress i { display: block; height: 100%; border-radius: inherit; background: var(--ink); }
.report-progress strong { color: var(--muted); font-size: .68rem; }
.report-insight-strip { display: grid; grid-template-columns: 1.15fr .95fr .95fr; gap: 16px; }
.report-insight-card { min-height: 230px; border: 1px solid var(--line-dark); padding: clamp(22px, 3vw, 32px); box-shadow: 9px 9px 0 #d5d0c5; }
.report-insight-card > span { display: block; font-size: .62rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.report-insight-card h2 { margin: 18px 0 12px; font-family: var(--serif); font-size: clamp(1.25rem, 2.1vw, 1.85rem); font-weight: 500; line-height: 1.2; }
.report-insight-card p { margin: 0; font-size: 1.06rem; line-height: 1.74; }
.report-insight-card.tone-ink { background: var(--ink); color: white; }
.report-insight-card.tone-ink > span { color: #9fc0aa; }
.report-insight-card.tone-ink p { color: rgba(255,255,255,.68); }
.report-insight-card.tone-amber { border-color: rgba(154,100,44,.34); background: var(--amber-soft); }
.report-insight-card.tone-amber > span { color: var(--amber); }
.report-insight-card.tone-amber p { color: #6f5941; }
.report-insight-card.tone-paper { background: rgba(255,254,250,.78); }
.report-insight-card.tone-paper > span { color: var(--green); }
.report-insight-card.tone-paper p { color: var(--muted); }
.report-snapshot { margin-top: 0; }
.report-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; }
.report-panel { min-width: 0; }
.report-panel header p { margin: 8px 0 0; color: var(--muted); font-size: .72rem; line-height: 1.5; }
.report-list { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.report-list li { position: relative; border-left: 2px solid var(--line-dark); padding-left: 12px; color: var(--muted); font-family: var(--serif); font-size: 1.06rem; line-height: 1.72; }
.report-empty { margin: 0; color: var(--faint); font-size: 1rem; line-height: 1.68; }
.report-map-grid { display: grid; gap: 18px; }
.report-map-grid > div > span, .report-evidence > span { display: block; margin-bottom: 9px; color: var(--muted); font-size: .6rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.report-pattern-list { display: grid; gap: 12px; }
.report-pattern-list article { border: 1px solid var(--line); background: rgba(255,254,250,.62); padding: 16px; }
.report-pattern-list span { display: block; color: var(--muted); font-size: .61rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.report-pattern-list strong { display: block; margin-top: 7px; font-family: var(--serif); font-size: 1rem; font-weight: 500; }
.report-pattern-list p, .report-next > p { margin: 10px 0 0; color: var(--muted); font-size: 1.06rem; line-height: 1.74; }
.report-evidence { margin-top: 22px; border-top: 1px solid var(--line); padding-top: 18px; }
.report-chapter-signals { margin-top: 18px; }
.chapter-signals { margin-top: 18px; }
.chapter-signals > div { display: grid; gap: 1px; background: var(--line); }
.chapter-signals button { display: grid; grid-template-columns: 1fr auto 18px; align-items: center; gap: 18px; width: 100%; border: 0; background: var(--white); color: var(--ink); padding: 15px 17px; text-align: left; }
.chapter-signals button:hover { background: #f9f7f1; }
.chapter-signals button strong, .chapter-signals button small { display: block; }
.chapter-signals button strong { font-family: var(--serif); font-size: .91rem; }
.chapter-signals button small { margin-top: 4px; color: var(--muted); font-size: .64rem; }
.signal-bands { display: flex; gap: 7px; }
.signal-bands em { border-radius: 999px; background: var(--green-soft); color: var(--green); padding: 4px 8px; font-size: .58rem; font-style: normal; font-weight: 800; }
.signal-bands .recall-score-tag.is-strong { background: var(--green-soft); color: var(--green); }
.signal-bands .recall-score-tag.is-developing { background: var(--amber-soft); color: var(--amber); }
.signal-bands .recall-score-tag.is-needs-pass { background: #eee8df; color: #74695c; }

.home-view { padding: clamp(24px, 4vw, 48px) clamp(24px, 6vw, 86px) 70px; }
.home-hero { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr); gap: clamp(40px, 7vw, 110px); align-items: center; width: min(1140px, 100%); margin: 0 auto 82px; }
.home-hero[hidden] { display: none; }
.returning-home { width: min(1140px, 100%); margin: 0 auto 52px; }
.returning-home[hidden] { display: none; }
.next-action-card { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: clamp(24px, 5vw, 72px); min-height: 248px; overflow: hidden; margin: 0 0 34px; background: var(--ink); color: white; padding: clamp(28px, 5vw, 54px); box-shadow: 16px 16px 0 #d8d2c7; animation: homeRise .38s ease both; }
.next-action-card::before { content: ""; position: absolute; inset: 0; background: linear-gradient(110deg, rgba(255,255,255,.08), transparent 38%), repeating-linear-gradient(90deg, rgba(255,255,255,.055) 0 1px, transparent 1px 58px); pointer-events: none; }
.next-action-card::after { content: ""; position: absolute; right: clamp(24px, 7vw, 90px); top: 50%; width: 1px; height: 72%; background: rgba(255,255,255,.18); transform: translateY(-50%); }
.next-action-marker { position: absolute; right: clamp(30px, 6vw, 88px); bottom: clamp(20px, 4vw, 42px); color: rgba(255,255,255,.13); font-family: var(--serif); font-size: clamp(4rem, 11vw, 8.5rem); line-height: .8; pointer-events: none; }
.next-action-copy { min-width: 0; }
.next-action-copy .eyebrow { color: #a9c8b4; }
.next-action-copy h2 { max-width: 760px; margin: 14px 0 14px; font-family: var(--serif); font-size: clamp(2.15rem, 5vw, 4.45rem); font-weight: 500; line-height: .98; }
.next-action-copy p { max-width: 620px; margin: 0; color: rgba(255,255,255,.68); font-size: .86rem; line-height: 1.65; }
.next-action-card .primary { position: relative; z-index: 1; align-self: end; border-color: white; background: white; color: var(--ink); white-space: nowrap; box-shadow: 0 12px 30px rgba(0,0,0,.14); }
.next-action-card .primary:hover { transform: translateY(-1px); }
.learning-snapshot { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(18px, 4vw, 52px); margin: 0 0 34px; padding: 26px 0 6px; border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); animation: homeRise .38s ease .08s both; }
.learning-snapshot article { min-width: 0; padding: 0 0 18px; }
.learning-snapshot article > span { display: block; color: var(--muted); font-size: .62rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.learning-snapshot article > .stat-label { display: flex; align-items: center; gap: 6px; }
.stat-info-button { display: inline-grid; place-items: center; width: 16px; height: 16px; border: 1px solid var(--line-dark); border-radius: 50%; background: transparent; color: var(--muted); padding: 0; font-family: var(--serif); font-size: .62rem; font-weight: 700; line-height: 1; text-transform: none; }
.stat-info-button:hover { border-color: var(--green); background: var(--green-soft); color: var(--green); }
.learning-snapshot strong { display: block; margin: 9px 0 3px; font-family: var(--serif); font-size: clamp(1.9rem, 4vw, 3.2rem); font-weight: 500; line-height: 1; }
.learning-snapshot .text-stat { overflow: hidden; font-size: 1rem; line-height: 1.9; text-overflow: ellipsis; white-space: nowrap; }
.learning-snapshot small { color: var(--faint); font-size: .64rem; }
.continue-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 24px; margin: 0 0 30px; border-bottom: 1px solid var(--line-dark); padding: 0 0 24px; animation: homeRise .38s ease .04s both; }
.continue-marker { display: none; }
.continue-kicker { display: flex; align-items: center; gap: 8px; }
.focus-edit-button { display: inline-grid; place-items: center; width: 24px; height: 24px; border: 1px solid transparent; border-radius: 50%; background: transparent; color: var(--faint); padding: 0; font-family: var(--serif); font-size: .72rem; line-height: 1; }
.focus-edit-button:hover, .focus-edit-button[aria-expanded="true"] { border-color: var(--line-dark); background: var(--paper); color: var(--ink); }
.continue-copy h2 { margin: 7px 0 4px; font-family: var(--serif); font-size: clamp(1.35rem, 2.5vw, 2rem); font-weight: 500; }
.continue-copy p { margin: 0; color: #65766b; font-size: .74rem; }
.continue-progress { display: grid; grid-template-columns: minmax(0, 240px) auto; gap: 10px; align-items: center; margin-top: 11px; }
.continue-progress[hidden] { display: none; }
.continue-progress span { display: block; height: 5px; overflow: hidden; border-radius: 999px; background: #ded8cd; }
.continue-progress i { display: block; width: 0; height: 100%; border-radius: inherit; background: var(--ink); transition: width .22s ease; }
.continue-progress small { color: var(--muted); font-size: .62rem; font-weight: 800; }
.continue-focus-control { display: flex; align-items: center; gap: 10px; width: min(360px, 100%); margin-top: 12px; color: var(--muted); font-size: .62rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.continue-focus-control[hidden] { display: none; }
.continue-focus-control select { min-width: 0; flex: 1; border: 1px solid var(--line-dark); background: var(--paper); color: var(--ink); padding: 7px 10px; font: inherit; letter-spacing: 0; text-transform: none; }
.continue-actions { display: flex; align-items: center; gap: 17px; }
.continue-actions .secondary { background: rgba(255,254,250,.64); }
h1, h2, h3, p { overflow-wrap: break-word; }
.home-hero h1, .page-heading h1, .step-heading h1 { margin: 13px 0 18px; font-family: var(--serif); font-size: clamp(2.65rem, 5vw, 5.2rem); font-weight: 500; letter-spacing: -.045em; line-height: .98; }
.home-hero h1 { margin-top: 0; }
.home-hero h1 em { color: var(--green); font-weight: 400; }
.home-hero > div > p, .page-heading > p, .step-heading > p { max-width: 630px; margin: 0; color: var(--muted); font-family: var(--serif); font-size: 1.05rem; line-height: 1.6; }
.home-hero .hero-reassurance { margin-top: 12px; color: var(--faint); font-family: var(--sans); font-size: .68rem; }
.primary, .secondary { min-height: 46px; border-radius: 5px; padding: 0 18px; font-size: .78rem; font-weight: 800; letter-spacing: .01em; }
.primary { display: inline-flex; align-items: center; justify-content: center; gap: 22px; border: 1px solid var(--ink); background: var(--ink); color: white; }
.primary:hover { background: #343730; }
.primary.large { margin-top: 30px; min-height: 51px; padding: 0 21px; }
.secondary { border: 1px solid var(--line-dark); background: transparent; color: var(--ink); }
.secondary:hover { background: rgba(255,255,255,.7); }
.loop-card { position: relative; border: 1px solid var(--line-dark); background: rgba(255,254,250,.64); padding: 25px 28px 18px; box-shadow: 14px 14px 0 #e4dfd4; }
.loop-card::before { content: ""; position: absolute; inset: 8px -8px -8px 8px; z-index: -1; border: 1px solid var(--line); }
.loop-label { display: block; border-bottom: 1px solid var(--line); padding-bottom: 14px; color: var(--muted); font-size: .66rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.loop-card ol { margin: 0; padding: 0; list-style: none; }
.loop-card li { display: grid; grid-template-columns: 35px 1fr; gap: 12px; align-items: center; border-bottom: 1px solid var(--line); padding: 15px 0; }
.loop-card li:last-child { border-bottom: 0; }
.loop-card li > span { color: var(--green); font-family: var(--serif); font-size: .85rem; font-style: italic; }
.loop-card strong { font-family: var(--serif); font-size: 1rem; }
.loop-card p { margin: 2px 0 0; color: var(--muted); font-size: .74rem; }
.logged-out-value { display: none; width: min(1140px, 100%); margin: -22px auto 20px; border-top: 1px solid var(--line-dark); padding-top: 42px; }
.logged-out-value > header { max-width: 560px; margin-bottom: 25px; }
.logged-out-value h2 { margin: 7px 0 0; font-family: var(--serif); font-size: clamp(1.8rem, 3vw, 2.7rem); font-weight: 500; letter-spacing: -.03em; }
.hero-actions { display: flex; align-items: center; gap: 22px; margin-top: 30px; }
.hero-actions .primary.large { margin-top: 0; }
.hero-secondary { color: var(--ink); text-decoration: underline; text-decoration-color: var(--line-dark); text-underline-offset: 5px; }
.logged-out-value > div { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(24px, 5vw, 66px); }
.logged-out-value article { position: relative; border-top: 1px solid var(--line-dark); padding: 25px 0 10px; }
.logged-out-value article > span { position: absolute; top: 14px; right: 0; color: rgba(54,91,74,.16); font-family: var(--serif); font-size: 2.8rem; font-style: italic; line-height: 1; }
.logged-out-value h3 { margin: 17px 0 8px; font-family: var(--serif); font-size: 1.05rem; font-weight: 600; }
.logged-out-value p { margin: 0; color: var(--muted); font-size: .72rem; line-height: 1.6; }
.audience-line { margin: 38px 0 0; background: var(--ink); color: rgba(255,255,255,.75); padding: 20px 24px; font-family: var(--serif); font-size: .9rem; line-height: 1.6; }
.audience-line strong { color: white; }
body.logged-out .logged-out-value { display: block; }
.logged-out-section { display: none; width: min(1140px, 100%); margin: 88px auto 0; }
body.logged-out .logged-out-section { display: block; }
.product-tour > header { display: flex; align-items: end; justify-content: space-between; gap: 40px; margin-bottom: 30px; }
.product-tour > header > div { max-width: 720px; }
.carousel-control { flex: 0 0 auto; border: 0; border-bottom: 1px solid var(--line-dark); background: transparent; color: var(--muted); padding: 8px 0; font-size: .66rem; font-weight: 750; }
.product-tour h2, .compounding-value h2, .landing-cta h2 { margin: 8px 0 12px; font-family: var(--serif); font-size: clamp(2rem, 4vw, 3.5rem); font-weight: 500; letter-spacing: -.04em; line-height: 1.05; }
.product-tour > header p, .compounding-copy > p, .landing-cta > p { margin: 0; color: var(--muted); font-family: var(--serif); font-size: 1rem; line-height: 1.65; }
.product-carousel-window { overflow: hidden; margin-inline: calc((100vw - min(1140px, 100vw - 48px)) / -2); padding: 8px 0 18px; mask-image: linear-gradient(to right, transparent, black 7%, black 93%, transparent); }
.product-carousel-track { display: flex; width: max-content; animation: product-marquee 44s linear infinite; }
.product-carousel-window:hover .product-carousel-track,
.product-carousel-window.is-paused .product-carousel-track { animation-play-state: paused; }
.product-carousel-group { display: flex; gap: 16px; padding-right: 16px; }
.product-frame { width: 310px; min-height: 300px; border: 1px solid var(--line-dark); background: var(--white); padding: 24px; box-shadow: 0 9px 25px rgba(32,34,31,.07); }
.product-frame.compare-frame { background: #edf1e9; }
.product-frame.challenge-frame { background: #f2e9dc; }
.product-frame.review-frame { background: var(--ink); color: white; }
.product-frame.review-frame .frame-step, .product-frame.review-frame strong { color: #a9c8b4; }
.product-frame.review-frame small { color: rgba(255,255,255,.62); }
.product-frame.review-frame .mock-review-row { border-color: rgba(255,255,255,.16); }
.product-frame.practice-frame { background: #f7f3e9; }
.product-frame:nth-child(even) { transform: translateY(10px); }
.frame-step { color: var(--green); font-size: .62rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.product-frame h3 { margin: 16px 0 24px; font-family: var(--serif); font-size: 1.35rem; font-weight: 500; line-height: 1.2; }
.product-frame > small { display: block; margin-top: 17px; color: var(--muted); font-size: .66rem; line-height: 1.5; }
.mock-answer { display: grid; gap: 10px; border: 1px solid var(--line); background: #fbfaf6; padding: 17px; }
.mock-answer i { height: 6px; border-radius: 999px; background: #d7d4cb; }
.mock-answer i:nth-child(2) { width: 92%; }.mock-answer i:nth-child(3) { width: 78%; }.mock-answer i:nth-child(4) { width: 55%; }
.mock-signal { display: grid; grid-template-columns: 25px 1fr; align-items: center; gap: 10px; margin-top: 9px; border: 1px solid var(--line); padding: 12px; font-size: .7rem; }
.mock-signal b { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; }
.mock-signal.good b { background: var(--green-soft); color: var(--green); }.mock-signal.gap b { background: var(--amber-soft); color: var(--amber); }
.product-frame blockquote { margin: 0; border-left: 3px solid var(--amber); background: var(--amber-soft); padding: 15px; font-family: var(--serif); font-size: .86rem; line-height: 1.5; }
.mock-button { margin-top: 17px; background: var(--ink); color: white; padding: 10px 12px; font-size: .67rem; font-weight: 800; text-align: center; }
.mock-review-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; border-bottom: 1px solid var(--line); padding: 12px 0; font-size: .68rem; }
.mock-review-row strong { color: var(--green); }
.mock-success { display: grid; grid-template-columns: 42px 1fr; align-items: center; gap: 12px; border: 1px solid var(--green); background: var(--green-soft); padding: 14px; font-size: .68rem; }
.mock-success b { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--green); color: white; font-size: 1rem; }
.mock-success strong { display: block; margin-bottom: 2px; }
@keyframes product-marquee { to { transform: translateX(-50%); } }
@keyframes homeRise {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}
.compounding-value { display: none; grid-template-columns: .9fr 1.1fr; gap: clamp(40px, 8vw, 110px); align-items: center; background: #ebe7dd; padding: clamp(45px, 7vw, 78px); }
body.logged-out .compounding-value { display: grid; }
.compounding-copy ul { display: grid; gap: 12px; margin: 28px 0 0; padding: 0; list-style: none; }
.compounding-copy li { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: .75rem; }
.compounding-copy li span { display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: var(--green-soft); color: var(--green); font-size: .6rem; font-weight: 900; }
.insight-carousel { position: relative; min-height: 365px; }
.insight-slide { position: absolute; inset: 0; border: 1px solid rgba(255,255,255,.14); background: var(--ink); color: white; padding: clamp(26px, 4vw, 42px); box-shadow: 13px 13px 0 #d5d0c5; opacity: 0; transform: translateY(10px); animation: insight-rotate 15s ease-in-out infinite; }
.insight-slide p, .insight-slide small { color: rgba(255,255,255,.64); }
.insight-carousel:hover .insight-slide { animation-play-state: paused; }
.insight-slide.slide-two { animation-delay: 5s; }.insight-slide.slide-three { animation-delay: 10s; }
.insight-slide > span { color: var(--green); font-size: .63rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.insight-slide h3 { margin: 20px 0 12px; font-family: var(--serif); font-size: clamp(1.6rem, 3vw, 2.35rem); font-weight: 500; line-height: 1.15; }
.insight-slide p { color: var(--muted); font-family: var(--serif); line-height: 1.65; }
.insight-slide > div { margin-top: 28px; }
.insight-slide > div:not(.insight-action):not(.retention-mark) { display: grid; gap: 8px; }
.insight-slide i { display: block; width: var(--strength); height: 5px; border-radius: 99px; background: var(--green); }
.insight-slide small { color: var(--muted); font-size: .64rem; }
.insight-action { border: 1px solid var(--line-dark); padding: 11px 14px; color: var(--green); font-size: .7rem; font-weight: 800; }
.retention-mark { display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--line); padding-top: 18px; color: var(--muted); font-family: var(--serif); }
.retention-mark b { display: grid; place-items: center; width: 35px; height: 35px; border-radius: 50%; background: var(--green); color: white; }
@keyframes insight-rotate { 0%, 27% { opacity: 1; transform: translateY(0); } 33%, 100% { opacity: 0; transform: translateY(-8px); } }
.skill-acquisition { border-top: 1px solid var(--line-dark); padding-top: 72px; }
.skill-acquisition > header { max-width: 770px; margin-bottom: 30px; }
.skill-acquisition h2 { margin: 8px 0 12px; font-family: var(--serif); font-size: clamp(2rem, 4vw, 3.5rem); font-weight: 500; letter-spacing: -.04em; line-height: 1.05; }
.skill-acquisition > header p { margin: 0; color: var(--muted); font-family: var(--serif); font-size: 1rem; line-height: 1.65; }
.skill-acquisition-grid { display: grid; grid-template-columns: repeat(2, 1fr); column-gap: clamp(35px, 7vw, 90px); }
.skill-acquisition-grid article { display: grid; grid-template-columns: 42px 1fr; border-top: 1px solid var(--line-dark); padding: 22px 0 26px; }
.skill-acquisition-grid article > span { grid-row: 1 / 3; color: var(--green); font-family: var(--serif); font-size: .8rem; font-style: italic; }
.skill-acquisition-grid h3 { margin: 15px 0 8px; font-family: var(--serif); font-size: 1rem; }
.skill-acquisition-grid article h3 { margin-top: 0; }
.skill-acquisition-grid p { margin: 0; color: var(--muted); font-size: .7rem; line-height: 1.6; }
.reinforcement-path { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; align-items: center; gap: 16px; margin-top: 25px; background: var(--ink); color: white; padding: 26px; }
.reinforcement-path > div { display: grid; grid-template-columns: 27px 1fr; gap: 3px 10px; align-items: center; }
.reinforcement-path > div > span { grid-row: 1 / 3; display: grid; place-items: center; width: 27px; height: 27px; border-radius: 50%; background: var(--green); color: white; font-size: .62rem; font-weight: 850; }
.reinforcement-path strong { font-family: var(--serif); font-size: .87rem; }
.reinforcement-path small { color: rgba(255,255,255,.6); font-size: .62rem; }
.reinforcement-path > i { color: rgba(255,255,255,.45); font-style: normal; }
.landing-faq { display: none; grid-template-columns: .8fr 1.2fr; gap: clamp(45px, 9vw, 120px); border-top: 1px solid var(--line-dark); padding-top: 70px; }
body.logged-out .landing-faq { display: grid; }
.landing-faq h2 { margin: 8px 0 12px; font-family: var(--serif); font-size: clamp(2rem, 4vw, 3.5rem); font-weight: 500; letter-spacing: -.04em; line-height: 1.05; }
.landing-faq > div > p { color: var(--muted); font-family: var(--serif); line-height: 1.65; }
.faq-list details { border-bottom: 1px solid var(--line-dark); padding: 18px 0; }
.faq-list details:first-child { border-top: 1px solid var(--line-dark); }
.faq-list summary { cursor: pointer; font-family: var(--serif); font-size: 1rem; font-weight: 600; }
.faq-list p { margin: 12px 30px 0 0; color: var(--muted); font-size: .72rem; line-height: 1.65; }
.landing-cta { background: var(--ink); color: white; padding: clamp(42px, 7vw, 82px); text-align: center; }
.landing-cta h2 { max-width: 780px; margin-inline: auto; }
.landing-cta > p { max-width: 560px; margin-inline: auto; color: rgba(255,255,255,.65); }
.landing-cta .eyebrow { color: #a9c8b4; }
.landing-cta-actions { display: flex; align-items: center; justify-content: center; gap: 24px; margin-top: 25px; }
.landing-cta .primary { margin-top: 0; border-color: white; background: white; color: var(--ink); }
.landing-cta .text-button { color: white; text-decoration: underline; text-decoration-color: rgba(255,255,255,.35); text-underline-offset: 5px; }
.landing-footer { display: none; align-items: center; justify-content: flex-end; gap: 18px; width: min(1140px, 100%); margin: 28px auto 0; padding: 0 0 8px; color: var(--muted); font-size: .72rem; text-align: right; }
body.logged-out .landing-footer { display: flex; }
.landing-footer button { border: 0; background: transparent; color: var(--ink); padding: 0; font: inherit; font-weight: 750; text-decoration: underline; text-decoration-color: var(--line-dark); text-underline-offset: 5px; }
.landing-footer button:hover { color: var(--green); text-decoration-color: currentColor; }
.dashboard-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 26px 42px; align-items: start; width: min(1140px, 100%); margin: 0 auto; animation: homeRise .38s ease .12s both; }
.dashboard-section { min-width: 0; }
.dashboard-section:not(.practice-promo) { grid-column: span 6; border-top: 1px solid var(--line-dark); padding-top: 18px; }
.dashboard-section:nth-of-type(1):not(.practice-promo) { grid-column: span 7; }
.dashboard-section:nth-of-type(2):not(.practice-promo) { grid-column: span 5; }
.practice-promo.is-ready { order: -1; }
.section-head { position: relative; display: flex; align-items: end; justify-content: space-between; gap: 18px; padding-bottom: 8px; }
.section-head::before { content: ""; position: absolute; top: -19px; left: 0; width: 46px; height: 2px; background: var(--green); transform-origin: left center; transition: width .18s ease; }
.dashboard-section:hover .section-head::before { width: 74px; }
.section-head h2 { margin: 5px 0 0; font-family: var(--serif); font-size: clamp(1.35rem, 2vw, 1.8rem); font-weight: 500; }
.review-list, .recent-list { display: grid; gap: 9px; padding-top: 14px; }
.empty-state { border-top: 1px solid var(--line); background: transparent; padding: 18px 0 4px; color: var(--muted); }
.empty-state strong { display: block; margin-bottom: 6px; color: var(--ink); font-family: var(--serif); font-size: 1rem; }
.review-item, .recent-item { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 14px; border-bottom: 1px solid var(--line); background: transparent; padding: 14px 0; transition: background .16s ease, padding .16s ease; }
.recent-item.is-draft { border-color: #d7b98f; background: linear-gradient(90deg, rgba(245,233,216,.45), transparent 78%); padding-inline: 12px; }
.recent-item.is-draft .status-dot { background: var(--amber); }
.review-item:hover, .recent-item:hover { background: rgba(255,254,250,.58); padding-inline: 12px; }
.date-tile { display: grid; place-items: center; width: 44px; height: 48px; border-right: 1px solid var(--line); color: var(--muted); font-size: .62rem; text-transform: uppercase; }
.date-tile strong { color: var(--ink); font-family: var(--serif); font-size: 1.18rem; font-weight: 500; }
.item-copy { min-width: 0; }
.item-copy strong { display: block; overflow: hidden; font-family: var(--serif); font-size: .94rem; text-overflow: ellipsis; white-space: nowrap; }
.item-copy small { color: var(--muted); font-size: .68rem; }
.status-tag { border-radius: 999px; background: var(--green-soft); color: var(--green); padding: 5px 8px; font-size: .62rem; font-weight: 800; white-space: nowrap; }
.status-tag.due { background: var(--amber-soft); color: var(--amber); }
.status-tag.repair { background: var(--red-soft); color: var(--red); }
.item-action { border: 0; background: transparent; color: var(--green); font-size: .72rem; font-weight: 800; }
.review-actions { display: flex; align-items: center; gap: 13px; }
.review-actions .cancel-review { color: var(--red); }
.review-manage { position: relative; }
.review-manage summary { color: var(--muted); cursor: pointer; font-size: .66rem; font-weight: 800; list-style: none; }
.review-manage summary::-webkit-details-marker { display: none; }
.review-manage[open] summary { color: var(--ink); }
.reschedule-panel { position: absolute; z-index: 12; right: 0; top: calc(100% + 10px); display: grid; min-width: 310px; gap: 10px; border: 1px solid var(--line-dark); background: var(--white); padding: 13px; box-shadow: 8px 8px 0 rgba(47,49,45,.1); }
.reschedule-panel > span { color: var(--muted); font-size: .66rem; font-weight: 700; }
.reschedule-options { display: flex; flex-wrap: wrap; gap: 7px; }
.reschedule-options button { min-height: 31px; border: 1px solid var(--line-dark); border-radius: 4px; background: var(--white); color: var(--ink); padding: 0 10px; font-size: .66rem; font-weight: 750; }
.reschedule-options button:hover { border-color: var(--green); background: var(--green-soft); color: var(--green); }

.page-heading { width: min(900px, calc(100% - 48px)); margin: 0 auto; padding: 70px 0 28px; border-bottom: 1px solid var(--line-dark); }
.page-heading h1 { font-size: clamp(2.7rem, 6vw, 4.7rem); }
.reviews-view .review-list { display: grid; gap: 24px; width: min(900px, calc(100% - 48px)); margin: 0 auto; padding: 26px 0 70px; }
.review-list.wide .review-item { padding: 18px; }
.review-chunk { border-top: 1px solid var(--line-dark); padding-top: 18px; }
.review-chunk > header { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 18px; margin-bottom: 6px; }
.review-chunk > header span { color: var(--green); font-size: .64rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.review-chunk > header p { max-width: 560px; margin: 7px 0 0; color: var(--muted); font-size: .72rem; line-height: 1.5; }
.review-chunk > header strong { display: grid; place-items: center; min-width: 32px; height: 32px; border-radius: 999px; background: var(--green-soft); color: var(--green); font-size: .76rem; }
.review-chunk.is-due > header span { color: var(--amber); }
.review-chunk.is-due > header strong { background: var(--amber-soft); color: var(--amber); }
.review-chunk.is-later { opacity: .84; }
.review-session-start { margin: 6px 0 10px; }
.review-chunk-list { display: grid; gap: 0; }
.review-chunk-more { margin: 12px 0 0; color: var(--faint); font-size: .68rem; }
.marketing-view { width: min(1040px, calc(100% - 48px)); margin: 0 auto; padding: 72px 0 90px; }
.marketing-hero { max-width: 820px; border-bottom: 1px solid var(--line-dark); padding-bottom: 38px; }
.marketing-hero h1 { margin: 10px 0 16px; font-family: var(--serif); font-size: clamp(2.8rem, 6vw, 5.2rem); font-weight: 500; letter-spacing: -.05em; line-height: .98; }
.marketing-hero p { max-width: 720px; margin: 0; color: var(--muted); font-family: var(--serif); font-size: 1.08rem; line-height: 1.65; }
.deep-dive-steps { display: grid; gap: 0; max-width: 780px; margin: 38px 0 0 30px; border-left: 1px solid var(--line-dark); }
.deep-dive-steps article { position: relative; display: grid; grid-template-columns: 55px 1fr; gap: 18px; padding: 8px 0 42px 42px; }
.deep-dive-steps article::before { content: ""; position: absolute; top: 12px; left: -5px; width: 9px; height: 9px; border-radius: 50%; background: var(--green); }
.deep-dive-steps article > span, .marketing-card-grid article > span { color: var(--green); font-family: var(--serif); font-style: italic; }
.deep-dive-steps h2, .marketing-card-grid h2, .principles-list h2, .trust-grid h2 { margin: 0 0 7px; font-family: var(--serif); font-size: 1.16rem; font-weight: 600; }
.deep-dive-steps p, .marketing-card-grid p, .principles-list p, .trust-grid p { margin: 0; color: var(--muted); font-size: .75rem; line-height: 1.65; }
.marketing-callout { margin-top: 24px; border-left: 3px solid var(--green); background: var(--green-soft); padding: 20px 22px; }
.marketing-callout strong { font-family: var(--serif); font-size: 1rem; }
.marketing-callout p { margin: 6px 0 0; color: var(--muted); font-size: .74rem; line-height: 1.6; }
.marketing-card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(20px, 4vw, 45px); margin-top: 38px; }
.marketing-card-grid article { border-top: 2px solid var(--ink); padding: 23px 0; }
.marketing-card-grid article:nth-child(2n) { border-color: var(--green); }
.marketing-card-grid h2 { margin-top: 15px; }
.proficiency-explainer { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; align-items: center; gap: 16px; margin-top: 22px; border: 1px solid var(--green); background: var(--green-soft); padding: 22px; }
.proficiency-explainer div { display: grid; gap: 4px; }
.proficiency-explainer strong { font-family: var(--serif); font-size: .9rem; }
.proficiency-explainer small { color: var(--muted); font-size: .63rem; }
.proficiency-explainer i { color: var(--green); font-style: normal; }
.principles-list { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(20px, 4vw, 50px); margin-top: 38px; }
.principles-list article { border-left: 3px solid var(--green); padding: 8px 0 8px 24px; }
.principles-list article > span { display: block; margin-top: 16px; color: var(--green); font-size: .62rem; font-weight: 800; }
.example-flow { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 25px; }
.example-flow article { border: 1px solid var(--line-dark); background: var(--white); padding: 23px; }
.example-flow article > span, .trust-grid article > span { color: var(--green); font-size: .62rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.example-flow blockquote { margin: 14px 0 0; border-left: 2px solid var(--line-dark); padding-left: 15px; color: var(--muted); font-family: var(--serif); line-height: 1.65; }
.example-flow h2 { margin: 13px 0 7px; font-family: var(--serif); font-size: 1.12rem; }
.example-flow p { margin: 0; color: var(--muted); font-size: .74rem; line-height: 1.6; }
.example-flow .example-review { grid-column: 1 / -1; }
.example-review div { display: flex; justify-content: space-between; gap: 15px; border-bottom: 1px solid var(--line); padding: 13px 0; font-size: .72rem; }
.example-review b { color: var(--green); }
.example-review p { margin-top: 13px; }
.trust-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 18px; margin-top: 38px; }
.trust-grid article { background: #ebe7dd; padding: 30px; }
.trust-grid article:nth-child(3n + 1) { background: var(--ink); color: white; }
.trust-grid article:nth-child(3n + 1) p { color: rgba(255,255,255,.65); }
.trust-grid h2 { margin-top: 13px; }
.privacy-note { margin-top: 20px; border: 1px solid var(--amber); background: var(--amber-soft); padding: 20px 22px; }
.privacy-note strong { font-family: var(--serif); }
.privacy-note p { margin: 6px 0 0; color: var(--muted); font-size: .72rem; line-height: 1.6; }
.account-view { width: min(900px, calc(100% - 48px)); margin: 0 auto; padding: 65px 0 90px; }
.account-heading { max-width: 670px; padding-bottom: 38px; }
.account-heading .back-link { margin-bottom: 45px; }
.account-heading h1 { margin: 10px 0 13px; font-family: var(--serif); font-size: clamp(2.7rem, 6vw, 4.7rem); font-weight: 500; letter-spacing: -.05em; line-height: 1; }
.account-heading > p { margin: 0; color: var(--muted); font-family: var(--serif); font-size: 1rem; line-height: 1.65; }
.account-settings-list { border-top: 1px solid var(--line-dark); }
.account-setting { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(35px, 8vw, 90px); border-bottom: 1px solid var(--line-dark); padding: 34px 0; }
.account-setting h2 { margin: 0 0 8px; font-family: var(--serif); font-size: 1.18rem; }
.account-setting > div > p { margin: 0; color: var(--muted); font-size: .7rem; line-height: 1.6; }
.account-control { display: grid; gap: 13px; }
.account-control .secondary { justify-self: start; min-height: 39px; padding: 0 14px; font-size: .7rem; font-weight: 800; }
.account-status { min-height: 1em; color: var(--muted); font-size: .65rem; line-height: 1.5; }
.account-status.is-success { color: var(--green); }
.account-status.is-error { color: var(--red); }
:root[data-color-mode="dark"] { color-scheme: dark; }
.color-mode-options { display: inline-grid; grid-template-columns: repeat(3, 1fr); width: min(340px, 100%); overflow: hidden; border: 1px solid var(--line-dark); border-radius: 999px; background: var(--paper); padding: 4px; }
.color-mode-option { position: relative; display: grid; place-items: center; min-height: 34px; border-radius: 999px; color: var(--muted); cursor: pointer; font-size: .68rem; font-weight: 850; }
.color-mode-option input { position: absolute; inline-size: 1px; block-size: 1px; opacity: 0; pointer-events: none; }
.color-mode-option.is-selected { background: var(--ink); color: var(--white); }
.color-theme-options { display: grid; gap: 10px; }
.color-theme-option { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 14px; border: 1px solid var(--line-dark); border-radius: 8px; background: rgba(255,254,250,.52); padding: 13px 14px; cursor: pointer; transition: border-color .16s ease, background .16s ease, box-shadow .16s ease; }
.color-theme-option:hover, .color-theme-option.is-selected { border-color: var(--green); background: var(--white); box-shadow: 3px 3px 0 rgba(47,49,45,.08); }
.color-theme-option input { position: absolute; inline-size: 1px; block-size: 1px; opacity: 0; pointer-events: none; }
.palette-swatches { display: grid; grid-template-columns: repeat(2, 18px); gap: 4px; width: 40px; }
.palette-swatches i { display: block; width: 18px; height: 18px; border: 1px solid rgba(47,49,45,.14); border-radius: 50%; }
.color-theme-option strong { display: block; margin-bottom: 3px; color: var(--ink); font-size: .76rem; }
.color-theme-option small { display: block; color: var(--muted); font-size: .66rem; line-height: 1.45; }
.color-preview-card { display: grid; gap: 12px; margin-top: 4px; border: 1px solid var(--line-dark); border-radius: 12px; background: linear-gradient(145deg, var(--white), var(--paper)); padding: 16px; box-shadow: 8px 8px 0 rgba(47,49,45,.06); }
.preview-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--muted); font-size: .64rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.preview-header strong { color: var(--green); font-size: .68rem; }
.preview-reading-card { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 14px; border: 1px solid var(--line); background: var(--white); padding: 16px; }
.preview-marker { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--green); color: var(--white); font-size: 1.2rem; }
.preview-reading-card small { display: block; color: var(--green); font-size: .6rem; font-weight: 850; letter-spacing: .15em; text-transform: uppercase; }
.preview-reading-card strong { display: block; margin-top: 3px; color: var(--ink); font-family: var(--serif); font-size: 1.08rem; font-weight: 500; }
.preview-reading-card p { margin: 3px 0 0; color: var(--muted); font-size: .7rem; }
.preview-reading-card button { min-height: 36px; border: 1px solid var(--ink); border-radius: 6px; background: var(--ink); color: var(--white); padding: 0 14px; font-size: .68rem; font-weight: 850; }
.preview-feedback-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.preview-feedback-grid article { border: 1px solid var(--line); background: rgba(255,254,250,.62); padding: 13px; }
.preview-feedback-grid span { display: block; margin-bottom: 7px; color: var(--amber); font-size: .6rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.preview-feedback-grid p { margin: 0; color: var(--muted); font-size: .72rem; line-height: 1.55; }
.preview-progress { height: 7px; overflow: hidden; border-radius: 999px; background: color-mix(in srgb, var(--line-dark), transparent 25%); }
.preview-progress i { display: block; height: 100%; border-radius: inherit; background: var(--green); }
:root[data-color-mode="dark"] .color-mode-option.is-selected { color: var(--paper); }
:root[data-color-mode="dark"] .sidebar { background: color-mix(in srgb, var(--paper), #000 8%); }
:root[data-color-mode="dark"] .topbar { background: color-mix(in srgb, var(--paper), transparent 4%); }
:root[data-color-mode="dark"] input,
:root[data-color-mode="dark"] textarea,
:root[data-color-mode="dark"] select { background: var(--white); color: var(--ink); }
:root[data-color-mode="dark"] .icon-button:hover,
:root[data-color-mode="dark"] .new-check,
:root[data-color-mode="dark"] .nav-item:hover,
:root[data-color-mode="dark"] .nav-item.is-active,
:root[data-color-mode="dark"] .insights-stats article,
:root[data-color-mode="dark"] .insights-panel,
:root[data-color-mode="dark"] .chapter-signals,
:root[data-color-mode="dark"] .retained-list article,
:root[data-color-mode="dark"] .report-insight-card.tone-paper,
:root[data-color-mode="dark"] .report-pattern-list article,
:root[data-color-mode="dark"] .chapter-signals button,
:root[data-color-mode="dark"] .loop-card,
:root[data-color-mode="dark"] .paper-card,
:root[data-color-mode="dark"] .book-path label > span,
:root[data-color-mode="dark"] .pdf-upload,
:root[data-color-mode="dark"] .answer-box,
:root[data-color-mode="dark"] .challenge-guide,
:root[data-color-mode="dark"] .confidence-options label > span,
:root[data-color-mode="dark"] .analysis-transition,
:root[data-color-mode="dark"] .analysis-meter-list article,
:root[data-color-mode="dark"] .calibration-card > div,
:root[data-color-mode="dark"] .calibration-card > p,
:root[data-color-mode="dark"] .path-card,
:root[data-color-mode="dark"] .path-card.checkpoint-hero p,
:root[data-color-mode="dark"] .band-card,
:root[data-color-mode="dark"] .feedback-card,
:root[data-color-mode="dark"] .next-challenge-pill,
:root[data-color-mode="dark"] .summary-cell,
:root[data-color-mode="dark"] .schedule-card,
:root[data-color-mode="dark"] .chapter-diagnosis article,
:root[data-color-mode="dark"] .chapter-question-card,
:root[data-color-mode="dark"] .history-card,
:root[data-color-mode="dark"] .edit-response-group,
:root[data-color-mode="dark"] dialog,
:root[data-color-mode="dark"] .dialog-head,
:root[data-color-mode="dark"] .google-auth-button,
:root[data-color-mode="dark"] .gap-glossary dl div,
:root[data-color-mode="dark"] .practice-lesson,
:root[data-color-mode="dark"] .practice-activity,
:root[data-color-mode="dark"] .practice-path,
:root[data-color-mode="dark"] .completed-practice,
:root[data-color-mode="dark"] .practice-path-item,
:root[data-color-mode="dark"] .worked-example,
:root[data-color-mode="dark"] .practice-activity blockquote,
:root[data-color-mode="dark"] .practice-feedback {
  border-color: color-mix(in srgb, var(--line-dark), var(--paper) 10%);
  background: color-mix(in srgb, var(--white), var(--paper) 10%);
}
:root[data-color-mode="dark"] .next-action-card {
  background: color-mix(in srgb, var(--ink), #000 16%);
  box-shadow: 14px 14px 0 color-mix(in srgb, var(--line-dark), #000 24%);
}
:root[data-color-mode="dark"] .learning-snapshot,
:root[data-color-mode="dark"] .continue-card,
:root[data-color-mode="dark"] .dashboard-section:not(.practice-promo),
:root[data-color-mode="dark"] .review-item,
:root[data-color-mode="dark"] .recent-item {
  border-color: color-mix(in srgb, var(--line-dark), var(--paper) 18%);
}
:root[data-color-mode="dark"] .practice-promo {
  background: linear-gradient(90deg, color-mix(in srgb, var(--green-soft), var(--paper) 38%), color-mix(in srgb, var(--paper), transparent 16%));
}
:root[data-color-mode="dark"] .practice-promo.is-complete { background: color-mix(in srgb, var(--white), var(--paper) 12%); }
:root[data-color-mode="dark"] .adaptive-schedule { background: color-mix(in srgb, var(--green-soft), var(--white) 12%); }
:root[data-color-mode="dark"] .continue-marker,
:root[data-color-mode="dark"] .path-marker,
:root[data-color-mode="dark"] .practice-path-number,
:root[data-color-mode="dark"] .practice-state,
:root[data-color-mode="dark"] .practice-feedback-icon { background: color-mix(in srgb, var(--white), var(--paper) 34%); }
:root[data-color-mode="dark"] .continue-progress span,
:root[data-color-mode="dark"] .report-progress span,
:root[data-color-mode="dark"] .book-progress-track { background: color-mix(in srgb, var(--line-dark), var(--paper) 42%); }
:root[data-color-mode="dark"] .review-item:hover,
:root[data-color-mode="dark"] .recent-item:hover,
:root[data-color-mode="dark"] .chapter-signals button:hover,
:root[data-color-mode="dark"] .secondary:hover { background: color-mix(in srgb, var(--white), var(--ink) 4%); }
:root[data-color-mode="dark"] .recent-item.is-draft { background: color-mix(in srgb, var(--amber-soft), var(--paper) 42%); border-color: color-mix(in srgb, var(--amber), var(--line-dark) 52%); }
:root[data-color-mode="dark"] .loop-card,
:root[data-color-mode="dark"] .paper-card,
:root[data-color-mode="dark"] .answer-box,
:root[data-color-mode="dark"] .challenge-guide,
:root[data-color-mode="dark"] .analysis-transition,
:root[data-color-mode="dark"] .color-preview-card { box-shadow: 8px 8px 0 rgba(0,0,0,.18); }
:root[data-color-mode="dark"] .brand-mark,
:root[data-color-mode="dark"] .new-check-icon,
:root[data-color-mode="dark"] .toast,
:root[data-color-mode="dark"] .report-insight-card.tone-ink,
:root[data-color-mode="dark"] .product-frame.review-frame,
:root[data-color-mode="dark"] .mock-button,
:root[data-color-mode="dark"] .insight-slide,
:root[data-color-mode="dark"] .reinforcement-path,
:root[data-color-mode="dark"] .landing-cta,
:root[data-color-mode="dark"] .chapter-tabs button.is-active,
:root[data-color-mode="dark"] .chapter-summary-card,
:root[data-color-mode="dark"] .progress li.is-active span,
:root[data-color-mode="dark"] .practice-feedback.needs-retry .practice-feedback-icon { color: var(--paper); }
:root[data-color-mode="dark"] .color-theme-option,
:root[data-color-mode="dark"] .preview-feedback-grid article { background: color-mix(in srgb, var(--white), transparent 28%); }
:root[data-color-mode="dark"] .color-theme-option:hover,
:root[data-color-mode="dark"] .color-theme-option.is-selected { background: var(--white); box-shadow: 3px 3px 0 rgba(0,0,0,.22); }

:root[data-color-mode="dark"] .primary,
:root[data-color-mode="dark"] .preview-reading-card button {
  border-color: color-mix(in srgb, var(--green), var(--ink) 18%);
  background: color-mix(in srgb, var(--green), var(--ink) 10%);
  color: var(--paper);
  box-shadow: none;
}

:root[data-color-mode="dark"] .primary:hover,
:root[data-color-mode="dark"] .preview-reading-card button:hover {
  border-color: color-mix(in srgb, var(--green), var(--ink) 34%);
  background: color-mix(in srgb, var(--green), var(--ink) 22%);
  color: var(--paper);
}

:root[data-color-mode="dark"] .secondary,
:root[data-color-mode="dark"] .file-button,
:root[data-color-mode="dark"] .google-auth-button {
  border-color: color-mix(in srgb, var(--line-dark), var(--ink) 12%);
  background: color-mix(in srgb, var(--white), var(--paper) 8%);
  color: var(--ink);
}

:root[data-color-mode="dark"] .secondary:hover,
:root[data-color-mode="dark"] .file-button:hover,
:root[data-color-mode="dark"] .google-auth-button:hover {
  border-color: color-mix(in srgb, var(--green), var(--line-dark) 16%);
  background: color-mix(in srgb, var(--white), var(--ink) 8%);
  color: var(--ink);
}

:root[data-color-mode="dark"] .text-button,
:root[data-color-mode="dark"] .back-link,
:root[data-color-mode="dark"] .auth-switch {
  color: color-mix(in srgb, var(--muted), var(--ink) 18%);
}

:root[data-color-mode="dark"] .text-button:hover,
:root[data-color-mode="dark"] .back-link:hover,
:root[data-color-mode="dark"] .auth-switch:hover {
  color: var(--ink);
}

:root[data-color-mode="dark"] .danger-button {
  border-color: color-mix(in srgb, var(--red), var(--line-dark) 20%);
  color: var(--red);
}
.local-data-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.local-data-actions .secondary { width: auto; }
.file-button { display: inline-grid; place-items: center; cursor: pointer; }
#import-local-data { position: absolute; inline-size: 1px; block-size: 1px; opacity: 0; pointer-events: none; }
.session-policy { display: flex; flex-wrap: wrap; gap: 8px; }
.session-policy span { border-radius: 999px; background: var(--green-soft); color: var(--green); padding: 7px 10px; font-size: .64rem; }
.danger-button { border-color: rgba(139,71,64,.45); color: var(--red); }
.practice-view { width: min(900px, calc(100% - 48px)); margin: 0 auto 70px; }
.practice-view .page-heading { width: 100%; }
.practice-recommendation { display: flex; align-items: flex-start; justify-content: space-between; gap: 25px; margin: 30px 0 18px; border: 1px solid var(--green); background: var(--green-soft); padding: 23px 25px; }
.practice-recommendation h2, .practice-lesson h2, .practice-activity h2 { margin: 6px 0 8px; font-family: var(--serif); font-size: 1.35rem; font-weight: 500; }
.practice-recommendation p, .practice-lesson > p { margin: 0; color: var(--muted); font-size: .76rem; line-height: 1.6; }
.practice-time { flex: 0 0 auto; border-radius: 999px; background: var(--white); color: var(--green); padding: 5px 9px; font-size: .62rem; font-weight: 800; }
.skill-proficiency { display: grid; gap: 7px; margin-top: 17px; }
.skill-proficiency > span { color: var(--green); font-size: .62rem; font-weight: 800; }
.skill-proficiency > div { width: min(280px, 100%); height: 4px; overflow: hidden; border-radius: 999px; background: rgba(54,91,74,.18); }
.skill-proficiency i { display: block; width: 0; height: 100%; background: var(--green); transition: width .25s ease; }
.practice-path, .completed-practice { margin-top: 18px; border: 1px solid var(--line-dark); background: rgba(255,254,250,.68); padding: 23px 25px; }
.practice-path > header { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.practice-path h2, .completed-practice h2 { margin: 6px 0 0; font-family: var(--serif); font-size: 1.25rem; font-weight: 500; }
.practice-path > header small { color: var(--muted); font-size: .64rem; }
.practice-path-list { display: grid; gap: 8px; }
.practice-path-item { display: grid; grid-template-columns: 31px 1fr auto; align-items: center; gap: 12px; border: 1px solid var(--line); background: var(--white); padding: 13px 14px; }
.practice-path-item.is-focus { border-color: var(--green); box-shadow: inset 3px 0 0 var(--green); }
.practice-path-item.is-done { background: #f0f3ed; }
.practice-path-item.is-locked { opacity: .62; }
.practice-path-number { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--paper); color: var(--muted); font-size: .68rem; font-weight: 800; }
.practice-path-item.is-focus .practice-path-number { background: var(--green); color: white; }
.practice-path-item.is-done .practice-path-number { background: var(--green-soft); color: var(--green); }
.practice-path-copy strong, .practice-path-copy small { display: block; }
.practice-path-copy strong { font-family: var(--serif); font-size: .9rem; }
.practice-path-copy small { margin-top: 3px; color: var(--muted); font-size: .62rem; }
.practice-state { border-radius: 999px; background: var(--paper); color: var(--muted); padding: 4px 8px; font-size: .58rem; font-weight: 800; text-transform: uppercase; }
.practice-path-item.is-focus .practice-state { background: var(--green-soft); color: var(--green); }
.practice-path-item.is-done .practice-state { background: transparent; color: var(--green); }
.completed-practice[hidden] { display: none; }
.completed-practice > header { margin-bottom: 16px; }
.completed-practice-card { display: flex; align-items: center; justify-content: space-between; gap: 18px; border-top: 1px solid var(--line); padding-top: 15px; }
.completed-practice-card strong, .completed-practice-card small { display: block; }
.completed-practice-card strong { font-family: var(--serif); font-size: .94rem; }
.completed-practice-card small { margin-top: 3px; color: var(--muted); font-size: .64rem; }
.daily-practice-complete { display: grid; grid-template-columns: 58px 1fr; gap: 20px; align-items: start; margin-top: 18px; border: 1px solid var(--green); background: var(--green-soft); padding: clamp(24px, 4vw, 38px); animation: practice-success .35s ease both; }
.daily-practice-complete[hidden] { display: none; }
.daily-complete-mark { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: var(--green); color: white; font-family: var(--serif); font-size: 1.4rem; }
.daily-practice-complete h2 { margin: 6px 0 8px; font-family: var(--serif); font-size: 1.55rem; font-weight: 500; }
.daily-practice-complete p { max-width: 620px; margin: 0; color: var(--muted); font-family: var(--serif); line-height: 1.6; }
.daily-practice-complete small { display: block; margin-top: 14px; color: var(--green); font-size: .66rem; font-weight: 800; }
.practice-lesson, .practice-activity { margin-top: 18px; border: 1px solid var(--line-dark); background: rgba(255,254,250,.7); padding: 25px; }
.worked-example { margin-top: 18px; border-left: 3px solid var(--green); background: var(--white); padding: 15px 17px; }
.worked-example > span { color: var(--green); font-size: .6rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.worked-example p { margin: 8px 0 0; color: var(--muted); font-size: .74rem; }
.practice-activity blockquote { margin: 18px 0; border-left: 3px solid var(--line-dark); background: var(--white); padding: 18px 20px; font-family: var(--serif); line-height: 1.7; }
.practice-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 16px; }
.practice-feedback { display: grid; grid-template-columns: 42px 1fr; gap: 15px; align-items: start; margin-top: 18px; border: 1px solid var(--line-dark); background: var(--white); padding: 18px; color: var(--muted); line-height: 1.6; }
.practice-feedback[hidden] { display: none; }
.practice-feedback-icon { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: var(--paper); color: var(--muted); font-family: var(--serif); font-size: 1.05rem; font-weight: 700; }
.practice-feedback strong { display: block; color: var(--green); font-size: .65rem; letter-spacing: .09em; text-transform: uppercase; }
.practice-feedback h3 { margin: 3px 0 5px; color: var(--ink); font-family: var(--serif); font-size: 1.15rem; font-weight: 500; }
.practice-feedback p { margin: 0; font-family: var(--serif); }
.practice-next-move { display: grid; gap: 5px; margin-top: 12px; border-left: 2px solid currentColor; background: rgba(255,254,250,.58); padding: 10px 12px; }
.practice-next-move span { color: var(--muted); font-size: .57rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.practice-next-move code { color: var(--ink); font-family: var(--sans); font-size: .76rem; font-weight: 750; white-space: normal; }
.practice-feedback.is-correct { border-color: var(--green); background: var(--green-soft); animation: practice-success .35s ease both; }
.practice-feedback.is-correct .practice-feedback-icon { background: var(--green); color: white; }
.practice-feedback.is-close { border-color: #c89a62; background: var(--amber-soft); }
.practice-feedback.is-close .practice-feedback-icon { background: var(--amber); color: white; }
.practice-feedback.needs-retry .practice-feedback-icon { background: var(--ink); color: white; }
#practice-check:disabled { cursor: default; opacity: 1; background: var(--green); }
@keyframes practice-success { 0% { opacity: 0; transform: translateY(5px) scale(.99); } 65% { transform: translateY(0) scale(1.01); } 100% { opacity: 1; transform: scale(1); } }
.practice-promo { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 25px; margin-top: 8px; border: 0; border-left: 4px solid var(--green); background: linear-gradient(90deg, var(--green-soft), rgba(255,254,250,.42)); padding: 24px 26px; }
.practice-promo[hidden] { display: none; }
.practice-promo h2 { margin: 6px 0; font-family: var(--serif); font-size: clamp(1.3rem, 2.4vw, 1.9rem); font-weight: 500; }
.practice-promo p { margin: 0; color: var(--muted); font-size: .73rem; line-height: 1.5; }
.practice-promo.is-complete { border-left-color: var(--line-dark); background: rgba(255,254,250,.52); }
.practice-promo.is-complete .secondary { border-color: var(--line-dark); background: var(--paper); color: var(--ink); }
.home-practice-progress { display: grid; grid-template-columns: minmax(0, 220px) auto; gap: 10px; align-items: center; margin-top: 12px; }
.home-practice-progress > span { grid-column: 1 / -1; color: var(--green); font-size: .62rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.practice-promo.is-complete .home-practice-progress > span { color: var(--muted); }
.home-practice-progress div { height: 5px; overflow: hidden; border-radius: 999px; background: rgba(54,91,74,.18); }
.home-practice-progress i { display: block; width: 0; height: 100%; border-radius: inherit; background: var(--green); transition: width .22s ease; }
.practice-promo.is-complete .home-practice-progress i { background: var(--ink); }

.flow-view { width: min(960px, calc(100% - 48px)); margin: 0 auto; padding: 26px 0 80px; }
.flow-top { display: flex; align-items: center; justify-content: space-between; gap: 30px; border-bottom: 1px solid var(--line); padding-bottom: 23px; }
.flow-top-actions { display: flex; align-items: center; gap: 16px; }
.back-link { border: 0; background: transparent; color: var(--muted); padding: 4px 0; font-size: .75rem; font-weight: 700; }
.back-link:hover { color: var(--ink); }
.save-draft-button { border: 0; border-left: 1px solid var(--line-dark); background: transparent; color: var(--amber); padding: 4px 0 4px 16px; font-size: .72rem; font-weight: 800; }
.autosave-state { border-left: 1px solid var(--line-dark); color: var(--muted); padding: 4px 0 4px 16px; font-size: .66rem; }
.autosave-state.is-saved { color: var(--green); }
.save-draft-button:hover { color: #74491f; text-decoration: underline; }
.progress { display: flex; align-items: center; margin: 0; padding: 0; list-style: none; }
.progress li { display: flex; align-items: center; color: var(--faint); font-size: .64rem; font-weight: 700; }
.progress li:not(:last-child)::after { content: ""; width: clamp(18px, 4vw, 52px); height: 1px; margin: 0 8px; background: var(--line-dark); }
.progress li span { display: grid; place-items: center; width: 23px; height: 23px; margin-right: 6px; border: 1px solid var(--line-dark); border-radius: 50%; font-size: .62rem; }
.progress li.is-active, .progress li.is-complete { color: var(--ink); }
.progress li.is-active span { border-color: var(--ink); background: var(--ink); color: white; }
.progress li.is-complete span { border-color: var(--green); background: var(--green-soft); color: var(--green); }
.flow-step { display: none; padding-top: 64px; }
.flow-step.is-active { display: block; animation: rise .28s ease; }
.step-heading { max-width: 760px; margin-bottom: 31px; }
.step-heading h1 { font-size: clamp(2.5rem, 5vw, 4.5rem); }
.step-heading.centered { margin-right: auto; margin-left: auto; text-align: center; }
.step-heading.centered > p { margin-right: auto; margin-left: auto; }
.paper-card { border: 1px solid var(--line-dark); background: var(--white); padding: clamp(22px, 4vw, 38px); box-shadow: 8px 8px 0 #e5e0d6; }
.field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
label { display: grid; gap: 8px; }
label > span, legend { color: var(--ink); font-size: .72rem; font-weight: 800; }
label > span b { margin-left: 5px; color: var(--green); font-size: .56rem; letter-spacing: .08em; text-transform: uppercase; }
label > span i { margin-left: 5px; color: var(--faint); font-size: .62rem; font-style: normal; font-weight: 500; }
input, textarea, select { width: 100%; border: 1px solid var(--line-dark); border-radius: 3px; background: #fff; color: var(--ink); padding: 13px 14px; }
input::placeholder, textarea::placeholder { color: #aaa89f; }
textarea { resize: vertical; line-height: 1.6; }
.source-card { display: grid; gap: 21px; }
.book-path { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin: 0; border: 0; padding: 0; }
.book-path legend { grid-column: 1 / -1; margin-bottom: 1px; }
.book-path label { cursor: pointer; }
.book-path input { position: absolute; opacity: 0; pointer-events: none; }
.book-path label > span { display: grid; min-height: 76px; border: 1px solid var(--line); border-radius: 3px; background: rgba(255,255,255,.55); padding: 15px; }
.book-path label > span strong { font-family: var(--serif); font-size: .9rem; }
.book-path label > span small { margin-top: 5px; color: var(--muted); font-size: .65rem; font-weight: 500; }
.book-path input:checked + span { border-color: var(--green); background: var(--green-soft); box-shadow: inset 0 0 0 1px var(--green); }
.book-path input:disabled + span { cursor: not-allowed; opacity: .48; }
.book-path-panel[hidden] { display: none; }
.book-path-panel > p { margin: 7px 0 0; color: var(--muted); font-size: .66rem; }
.chapter-total-field > small { color: var(--muted); font-size: .64rem; }
.source-kind { display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; margin: 0; border: 0; padding: 0; }
.source-kind legend { grid-column: 1 / -1; margin-bottom: 1px; }
.source-kind label { cursor: pointer; }
.source-kind input, .confidence-options input, .schedule-options input, .mini-confidence input { position: absolute; opacity: 0; pointer-events: none; }
.source-kind label > span { display: grid; min-height: 67px; border: 1px solid var(--line); border-radius: 3px; padding: 13px; }
.source-kind label > span strong { font-size: .75rem; }
.source-kind label > span small { margin-top: 4px; color: var(--muted); font-size: .65rem; font-weight: 500; }
.source-kind input:checked + span { border-color: var(--green); background: var(--green-soft); box-shadow: inset 0 0 0 1px var(--green); }
.pdf-source { position: relative; margin-top: 14px; }
.pdf-source[hidden] { display: none; }
.pdf-upload { display: grid; grid-template-columns: 48px 1fr; align-items: center; gap: 13px; min-height: 76px; border: 1px dashed var(--line-dark); border-radius: 5px; background: rgba(255,255,255,.35); padding: 12px 15px; cursor: pointer; }
.pdf-upload:hover { border-color: var(--green); background: var(--green-soft); }
.pdf-upload input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.pdf-upload-icon { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 4px; background: var(--red-soft); color: var(--red); font-size: .58rem; font-weight: 900; letter-spacing: .05em; }
.pdf-upload strong, .pdf-upload small { display: block; }
.pdf-upload strong { font-family: var(--serif); font-size: .9rem; }
.pdf-upload small { margin-top: 4px; color: var(--muted); font-size: .65rem; }
.pdf-remove { position: absolute; right: 14px; top: 25px; z-index: 1; }
.pdf-source.has-file .pdf-upload { border-style: solid; border-color: var(--green); background: var(--green-soft); padding-right: 85px; }
.source-input small { display: flex; justify-content: space-between; color: var(--muted); font-size: .65rem; }
.check-row { display: flex; grid-template-columns: auto 1fr; align-items: center; gap: 9px; }
.check-row input { width: 16px; height: 16px; accent-color: var(--green); }
.check-row span { color: var(--muted); font-weight: 600; }
.flow-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 31px; }
.flow-actions.source-actions { justify-content: flex-end; }
.closed-source { display: flex; align-items: center; gap: 11px; width: fit-content; margin-bottom: 29px; border: 1px solid #cdd9cf; border-radius: 999px; background: var(--green-soft); color: var(--green); padding: 7px 13px; }
.closed-source > span { font-size: .7rem; }
.closed-source div { display: flex; align-items: baseline; gap: 7px; }
.closed-source strong { font-size: .67rem; text-transform: uppercase; letter-spacing: .06em; }
.closed-source small { color: #64796b; font-size: .65rem; }
.answer-box { border: 1px solid var(--line-dark); background: var(--white); padding: 8px; box-shadow: 8px 8px 0 #e5e0d6; }
.recall-rubric { margin: -6px 0 16px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.recall-rubric summary { cursor: pointer; padding: 12px 2px; color: var(--green); font-size: .68rem; font-weight: 800; }
.recall-rubric > div { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 24px; padding: 3px 2px 16px; }
.recall-rubric p { margin: 0; }
.recall-rubric strong, .recall-rubric span { display: block; }
.recall-rubric strong { margin-bottom: 3px; font-family: var(--serif); font-size: .78rem; }
.recall-rubric span { color: var(--muted); font-size: .65rem; line-height: 1.5; }
.answer-box textarea { min-height: 240px; border: 0; background: transparent; padding: 19px; font-family: var(--serif); font-size: 1.1rem; }
.answer-box textarea#repair { min-height: 340px; font-size: 1.28rem; line-height: 1.72; }
.answer-box textarea:focus { outline: 0; }
.answer-box > small { display: flex; justify-content: space-between; border-top: 1px solid var(--line); padding: 9px 11px 2px; color: var(--faint); font-size: .62rem; }
.challenge-guide { margin: -6px 0 18px; border: 1px solid var(--line-dark); background: #fbf8f0; padding: 21px 24px; box-shadow: 6px 6px 0 #ebe4d6; }
.challenge-guide strong { display: block; margin-bottom: 8px; font-family: var(--serif); font-size: 1.2rem; font-weight: 600; }
.challenge-guide p { margin: 0; color: var(--muted); font-size: 1rem; line-height: 1.65; }
.challenge-guide small { display: block; margin-top: 14px; color: var(--faint); font-size: .9rem; line-height: 1.55; }
.confidence-options { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: 38px 0; border: 0; padding: 0; }
.confidence-options label { cursor: pointer; }
.confidence-options label > span { display: grid; place-items: center; min-height: 156px; border: 1px solid var(--line-dark); background: rgba(255,254,250,.5); padding: 18px 10px; text-align: center; }
.confidence-options b { display: grid; place-items: center; width: 31px; height: 31px; margin-bottom: 13px; border: 1px solid var(--line-dark); border-radius: 50%; color: var(--muted); font-family: var(--serif); font-weight: 500; }
.confidence-options strong { font-family: var(--serif); font-size: 1rem; }
.confidence-options small { margin-top: 5px; color: var(--muted); font-size: .66rem; font-weight: 500; }
.confidence-options input:checked + span { border-color: var(--green); background: var(--green-soft); box-shadow: inset 0 0 0 1px var(--green); }
.confidence-options input:checked + span b { border-color: var(--green); background: var(--green); color: white; }
.centered-actions { justify-content: center; }
.analysis-transition { width: min(760px, 100%); margin: 18px auto 0; border: 1px solid var(--line-dark); background: rgba(255,254,250,.74); padding: clamp(24px, 4vw, 38px); box-shadow: 8px 8px 0 #ebe4d6; opacity: 1; transform: translateY(0); transition: opacity .42s ease, transform .42s cubic-bezier(.22, 1, .36, 1); }
.analysis-transition[hidden] { display: none; }
.analysis-transition.is-exiting { opacity: 0; transform: translateY(-10px); }
#feedback-results { opacity: 1; transform: translateY(0); transition: opacity .48s ease, transform .48s cubic-bezier(.22, 1, .36, 1); }
#feedback-results[hidden] { display: none; }
#feedback-results.is-entering { opacity: 0; transform: translateY(12px); }
.analysis-transition-head { text-align: center; }
.analysis-transition-head h2 { margin: 5px 0 6px; font-family: var(--serif); font-size: 1.35rem; font-weight: 500; }
.analysis-transition-head p { width: min(520px, 100%); margin: 0 auto; color: var(--muted); font-size: .72rem; line-height: 1.6; }
.analysis-meter-list { display: grid; gap: 9px; margin-top: 22px; }
.analysis-meter-list article { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; border: 1px solid var(--line); background: var(--white); padding: 14px 15px; }
.analysis-meter-list strong, .analysis-meter-list span { display: block; }
.analysis-meter-list strong { font-family: var(--serif); font-size: .94rem; font-weight: 600; }
.analysis-meter-list span { margin-top: 3px; color: var(--muted); font-size: .65rem; line-height: 1.45; }
.analysis-meter-list em { color: var(--faint); font-size: .6rem; font-style: normal; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.analysis-meter-list i { grid-column: 1 / -1; height: 4px; overflow: hidden; border-radius: 999px; background: var(--line); }
.analysis-meter-list b { display: block; width: var(--analysis-progress, 0%); height: 100%; border-radius: inherit; background: var(--green); transition: width .9s cubic-bezier(.22, 1, .36, 1); }
.analysis-meter-list article.is-measuring { border-color: rgba(50,95,73,.35); background: var(--green-soft); }
.analysis-meter-list article.is-measuring em { color: var(--green); }
.analysis-meter-list article.is-complete em { color: var(--green); }
.analysis-meter-list article.is-complete b { width: 100%; }
.evaluation-checkpoint { display: grid; gap: 14px; }
.checkpoint-hero { display: grid; grid-template-columns: auto 1fr; gap: 17px; align-items: center; border: 1px solid var(--line-dark); background: var(--green-soft); padding: 22px 24px; }
.checkpoint-mark { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--green); color: white; font-family: var(--serif); font-size: 1.22rem; }
.checkpoint-hero h2 { margin: 5px 0 7px; font-family: var(--serif); font-size: clamp(1.45rem, 2.6vw, 2.15rem); font-weight: 500; line-height: 1.1; letter-spacing: -.025em; }
.checkpoint-hero p { margin: 9px 0 0; color: #557063; font-size: .72rem; line-height: 1.55; }
.progression-meter-row { display: grid; grid-template-columns: minmax(0, 420px) auto; gap: 12px; align-items: center; width: min(520px, 100%); }
.progression-meter-row > strong { color: var(--green); font-family: var(--serif); font-size: .95rem; font-weight: 600; }
.progression-meter { width: 100%; height: 7px; overflow: hidden; border-radius: 999px; background: rgba(50,95,73,.16); }
.progression-meter span { display: block; width: var(--progression); height: 100%; border-radius: inherit; background: var(--green); }
.calibration-card { display: grid; grid-template-columns: auto auto 1fr; gap: 1px; border: 1px solid var(--line); background: var(--line); }
.calibration-card > div, .calibration-card > p { background: rgba(255,254,250,.76); padding: 14px 16px; }
.calibration-card span { display: block; color: var(--muted); font-size: .58rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.calibration-card strong { display: block; margin-top: 4px; font-family: var(--serif); font-size: .95rem; font-weight: 600; }
.calibration-card p { margin: 0; color: var(--muted); font-family: var(--serif); font-size: .84rem; line-height: 1.45; }
.learning-path { position: relative; display: grid; gap: 15px; }
.learning-path::before { content: ""; position: absolute; top: 28px; bottom: 32px; left: 23px; width: 1px; background: linear-gradient(180deg, rgba(50,95,73,.28), rgba(50,95,73,.09)); }
.path-step { position: relative; display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 17px; align-items: start; }
.path-marker { position: relative; z-index: 1; display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid var(--line-dark); border-radius: 50%; background: var(--white); color: var(--green); font-family: var(--serif); font-size: .94rem; font-weight: 650; box-shadow: 0 0 0 6px var(--cream); }
.path-step-signal .path-marker, .path-step-final .path-marker { background: var(--green); color: white; }
.path-step-warm .path-marker { border-color: rgba(176,112,58,.45); background: var(--amber-soft); color: var(--amber); }
.path-card { border: 1px solid var(--line); background: rgba(255,254,250,.78); padding: 21px 23px; }
.path-card-compact { display: grid; gap: 5px; padding: 17px 20px; }
.path-card-compact h3 { margin: 0; font-family: var(--serif); font-size: 1.08rem; font-weight: 600; }
.path-card-compact p { margin: 0; color: var(--muted); font-size: 1.04rem; line-height: 1.7; }
.path-card.checkpoint-hero { display: block; border-color: rgba(50,95,73,.48); background: linear-gradient(135deg, var(--green-soft), rgba(255,254,250,.86)); padding: 25px 27px; }
.path-card.checkpoint-hero h2 { margin-top: 6px; max-width: 720px; }
.path-card.checkpoint-hero p { display: inline-flex; margin-top: 12px; border: 1px solid rgba(50,95,73,.18); border-radius: 999px; background: rgba(255,254,250,.72); padding: 6px 10px; color: var(--green); font-family: var(--sans); font-size: .62rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.path-card .feedback-card { padding: 0; }
.path-card-note { margin-top: 13px !important; color: #6a5f50 !important; font-size: .88rem; }
.evaluation-grid { display: grid; grid-template-columns: 220px 1fr; gap: 19px; align-items: start; }
.band-card { position: sticky; top: 96px; border: 1px solid var(--line-dark); background: var(--white); padding: 24px; text-align: center; }
.band-card .band-icon { display: grid; place-items: center; width: 54px; height: 54px; margin: 0 auto 15px; border-radius: 50%; background: var(--green-soft); color: var(--green); font-family: var(--serif); font-size: 1.4rem; }
.band-card strong { display: block; font-family: var(--serif); font-size: 1.3rem; font-weight: 500; }
.band-card small { display: block; margin-top: 7px; color: var(--muted); line-height: 1.45; }
.feedback-stack { display: grid; gap: 12px; }
.feedback-card { border: 1px solid var(--line); background: rgba(255,254,250,.72); padding: 21px 23px; }
.feedback-card header { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.feedback-card header span { display: grid; place-items: center; min-width: 42px; height: 23px; border-radius: 999px; background: var(--green-soft); color: var(--green); padding: 0 8px; font-size: .55rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.feedback-card.gap header span { background: var(--amber-soft); color: var(--amber); }
.feedback-card h3 { margin: 0; font-family: var(--serif); font-size: 1.05rem; font-weight: 600; }
.feedback-card p { margin: 0; color: var(--muted); font-family: var(--serif); font-size: 1.06rem; line-height: 1.74; }
.feedback-card ul { display: grid; gap: 7px; margin: 0; padding-left: 18px; color: var(--muted); font-family: var(--serif); font-size: 1.04rem; line-height: 1.72; }
.feedback-card.distortion { border-color: rgba(139,71,64,.35); background: var(--red-soft); }
.feedback-card.distortion header span { background: rgba(139,71,64,.12); color: var(--red); }
.structured-evaluation .band-card .band-icon { width: 52px; height: 52px; font-size: 1rem; }
.feedback-concepts { display: grid; gap: 9px; margin-top: 15px; border: 1px solid rgba(44,45,40,.12); background: rgba(245,241,232,.55); padding: 13px 15px; }
.feedback-concepts > span { color: #746c60; font-size: .58rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.feedback-concepts ul { display: grid; gap: 8px; margin: 0; color: var(--muted); font-family: var(--serif); font-size: 1.06rem; line-height: 1.72; }
.feedback-concepts li { padding-left: 2px; }
.feedback-concepts li strong { display: block; margin-bottom: 3px; color: var(--ink); font-family: var(--sans); font-size: .68rem; font-weight: 850; letter-spacing: .02em; }
.feedback-concepts li span { display: block; }
.revision-example { display: grid; gap: 5px; margin-top: 10px; border-left: 2px solid rgba(46,103,148,.38); background: rgba(64,124,164,.08); padding: 10px 12px; }
.revision-example small { color: #5f6f78; font-family: var(--sans); font-size: .55rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.revision-example p { margin: 0; color: #4e5b62; font-family: var(--serif); font-size: .84rem; line-height: 1.45; }
.revision-example .revision-addition { color: #245f86; font-weight: 650; }
.evidence-block { margin-top: 14px; border-left: 2px solid #b8afa1; background: rgba(245,241,232,.62); padding: 14px 16px; }
.evidence-block.compact { padding: 16px 18px; }
.evidence-block span { display: block; margin-bottom: 7px; color: #746c60; font-size: .72rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.evidence-block blockquote { margin: 0; color: #514c45; font-family: var(--serif); font-size: 1.06rem; font-style: italic; line-height: 1.7; }
.evidence-block.compact blockquote { font-size: 1.2rem; line-height: 1.68; }
.evidence-block.is-revisit { border-left-color: var(--amber); background: var(--amber-soft); }
.evidence-block.is-revisit span { color: #99613a; }
.evidence-block.is-revisit blockquote { color: #5e4632; }
.feedback-card.next-move { border-color: rgba(44,45,40,.18); background: rgba(245,241,232,.64); }
.next-challenge-pill { display: grid; gap: 5px; margin-top: 13px; border: 1px solid var(--line-dark); background: var(--white); padding: 13px 15px; }
.next-challenge-pill span { color: #746c60; font-size: .58rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.next-challenge-pill strong { font-family: var(--serif); font-size: .94rem; font-weight: 600; line-height: 1.35; }
.feedback-controls { display: flex; justify-content: space-between; gap: 12px; margin-top: 12px; color: var(--faint); font-size: .64rem; }
.feedback-controls div { display: flex; gap: 14px; }
.evidence-mini { margin-bottom: 18px; border-left: 2px solid var(--green); background: var(--green-soft); padding: 15px 18px; color: #385345; font-family: var(--serif); font-size: .9rem; line-height: 1.5; }
.evidence-mini span { display: block; margin-bottom: 5px; color: var(--green); font-family: var(--sans); font-size: .58rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.evidence-mini blockquote { margin: 0; }
.completion-mark { display: grid; place-items: center; width: 70px; height: 70px; margin: 12px auto 26px; border: 1px solid color-mix(in srgb, var(--green), var(--line-dark) 30%); border-radius: 50%; background: var(--green); color: white; font-size: 1.65rem; box-shadow: 0 0 0 8px color-mix(in srgb, var(--green-soft), transparent 28%); }
.save-step .step-heading.centered .eyebrow { font-size: .74rem; letter-spacing: .16em; }
.completion-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; border: 1px solid var(--line-dark); background: var(--line); }
.summary-cell { background: var(--white); padding: 18px; }
.summary-cell span { color: var(--muted); font-size: .62rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.summary-cell .summary-label { display: flex; align-items: center; gap: 6px; }
.summary-cell strong { display: block; margin-top: 8px; font-family: var(--serif); font-size: 1rem; font-weight: 500; }
.schedule-card { display: grid; grid-template-columns: 1fr .9fr; gap: 28px; align-items: center; margin-top: 24px; border: 1px solid var(--line-dark); background: rgba(255,254,250,.64); padding: 25px; }
.schedule-card h2 { margin: 6px 0; font-family: var(--serif); font-size: 1.35rem; font-weight: 500; }
.schedule-card p { margin: 0; color: var(--muted); font-size: .73rem; }
.adaptive-schedule { display: grid; gap: 8px; border-left: 3px solid var(--green); background: var(--green-soft); padding: 18px 20px; }
.adaptive-schedule span { color: var(--green); font-size: .62rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.adaptive-schedule strong { font-family: var(--serif); font-size: 1.2rem; font-weight: 500; line-height: 1.35; }
.schedule-options { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin: 0; border: 0; padding: 0; }
.schedule-options span { display: grid; place-items: center; min-height: 39px; border: 1px solid var(--line); background: white; font-size: .7rem; font-weight: 700; }
.schedule-options input:checked + span { border-color: var(--green); background: var(--green-soft); color: var(--green); }

.review-session { width: min(850px, calc(100% - 48px)); margin: 0 auto; padding: 35px 0 80px; }
.review-session-inner { padding-top: 50px; }
.review-progress { display: grid; gap: 8px; margin: 26px 0 34px; }
.review-progress > span { color: var(--muted); font-size: .63rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.review-progress > div { height: 3px; overflow: hidden; border-radius: 999px; background: var(--line); }
.review-progress i { display: block; width: 50%; height: 100%; background: var(--green); transition: width .22s ease; }
.review-context-card { display: grid; grid-template-columns: .72fr 1.28fr; gap: 28px; align-items: start; margin: 0 0 34px; border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); padding: 22px 0; }
.review-context-card h2 { margin: 6px 0 8px; font-family: var(--serif); font-size: 1.2rem; font-weight: 500; }
.review-context-card p { margin: 0; color: var(--muted); font-size: .72rem; line-height: 1.6; }
.review-context-details { display: grid; gap: 12px; min-width: 0; }
.review-context-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin: 0; background: var(--line); border: 1px solid var(--line); }
.review-context-facts div { min-width: 0; background: rgba(255,254,250,.72); padding: 11px 12px; }
.review-context-facts dt, .review-synopsis-grid span { color: var(--muted); font-size: .56rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.review-context-facts dd { margin: 5px 0 0; overflow-wrap: anywhere; color: var(--ink); font-family: var(--serif); font-size: .78rem; line-height: 1.35; }
.review-synopsis-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.review-synopsis-grid article { min-width: 0; border: 1px solid var(--line); background: rgba(255,254,250,.6); padding: 14px 15px; }
.review-synopsis-grid p { margin-top: 7px; color: var(--ink); font-size: .78rem; line-height: 1.58; }
.review-context-note { border-left: 2px solid var(--line-dark); padding-left: 11px; }
.review-scaffold { margin: -10px 0 24px; border-left: 3px solid var(--amber); background: var(--amber-soft); padding: 17px 19px; }
.review-scaffold[hidden] { display: none; }
.review-scaffold > span { color: var(--amber); font-size: .61rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.review-scaffold blockquote { margin: 9px 0; font-family: var(--serif); font-size: .92rem; font-style: italic; line-height: 1.55; }
.review-scaffold p { margin: 0; color: var(--muted); font-size: .68rem; line-height: 1.5; }
.mini-confidence { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: 0; margin-top: 22px; border: 0; padding: 0; }
.mini-confidence legend { grid-column: 1 / -1; margin: 0 0 10px; font-size: .68rem; font-weight: 850; }
.confidence-scale-track { grid-column: 1 / -1; align-self: center; height: 4px; margin: 0 calc(100% / 6) -10px; overflow: hidden; border-radius: 999px; background: color-mix(in srgb, var(--line-dark), transparent 18%); }
.confidence-scale-track i { display: block; width: 0; height: 100%; border-radius: inherit; background: color-mix(in srgb, var(--amber), var(--line-dark) 8%); transition: width .18s ease; }
.mini-confidence:has(input[value="Partly"]:checked) .confidence-scale-track i { width: 0; }
.mini-confidence:has(input[value="Mostly"]:checked) .confidence-scale-track i { width: 50%; }
.mini-confidence:has(input[value="Very well"]:checked) .confidence-scale-track i { width: 100%; }
.mini-confidence label { position: relative; display: grid; justify-items: center; min-width: 0; padding-top: 22px; cursor: pointer; color: var(--muted); font-size: .68rem; font-weight: 800; }
.mini-confidence label::before { content: ""; position: absolute; top: 0; left: 50%; width: 14px; height: 14px; border: 2px solid var(--line-dark); border-radius: 50%; background: var(--paper); transform: translateX(-50%); transition: .16s ease; }
.mini-confidence span { width: 100%; min-width: 0; text-align: center; white-space: nowrap; }
.mini-confidence input:checked + span { color: var(--ink); }
.mini-confidence label:has(input:checked)::before { border-color: color-mix(in srgb, var(--amber), var(--ink) 16%); background: var(--amber); box-shadow: 0 0 0 5px color-mix(in srgb, var(--amber-soft), transparent 12%); }
.mini-confidence label:focus-within::before { outline: 2px solid color-mix(in srgb, var(--amber), transparent 28%); outline-offset: 3px; }
.chapter-view { width: min(1080px, calc(100% - 48px)); margin: 0 auto; padding: 35px 0 80px; }
.chapter-hero { padding: 53px 0 31px; border-bottom: 1px solid var(--line-dark); }
.chapter-hero h1 { margin: 8px 0; font-family: var(--serif); font-size: clamp(2.3rem, 5vw, 4rem); font-weight: 500; letter-spacing: -.035em; }
.chapter-hero p { margin: 0; color: var(--muted); }
.chapter-kicker { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.chapter-kicker time { color: var(--faint); font-size: .65rem; }
.chapter-tabs { display: inline-flex; gap: 3px; margin: 22px 0 18px; border: 1px solid var(--line-dark); background: rgba(245,241,232,.76); padding: 4px; }
.chapter-tabs button { min-width: 118px; border: 0; background: transparent; color: var(--muted); padding: 10px 16px; font-size: .68rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; cursor: pointer; }
.chapter-tabs button.is-active { background: var(--ink); color: white; box-shadow: 3px 3px 0 rgba(44,45,40,.12); }
.chapter-tab-panel { animation: panelIn .18s ease; }
.chapter-tab-panel[hidden] { display: none; }
.chapter-feedback-shell { max-width: 880px; }
.chapter-entry-history { max-width: 880px; }
@keyframes panelIn {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}
.chapter-overview { display: grid; grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr); gap: 16px 24px; align-items: start; padding-top: 24px; }
.chapter-summary-card { grid-column: 1; grid-row: 1 / 4; position: sticky; top: 76px; background: var(--ink); color: white; padding: clamp(25px, 4vw, 38px); }
.chapter-summary-card .eyebrow { color: #a9c8b4; }
.chapter-summary-card h2 { margin: 9px 0 18px; font-family: var(--serif); font-size: clamp(1.3rem, 2.4vw, 1.85rem); font-weight: 500; }
.chapter-summary-card p { margin: 0; color: rgba(255,255,255,.78); font-family: var(--serif); font-size: .9rem; line-height: 1.68; white-space: pre-wrap; }
.chapter-criteria { margin-top: 24px; border-top: 1px solid rgba(255,255,255,.16); padding-top: 15px; }
.chapter-criteria > span { color: rgba(255,255,255,.52); font-size: .58rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.chapter-criteria > div { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
.chapter-criteria > div span { border-radius: 999px; background: rgba(255,255,255,.1); color: rgba(255,255,255,.78); padding: 5px 8px; font-size: .6rem; font-weight: 750; }
.chapter-signal-grid { grid-column: 2; display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); }
.chapter-signal-grid > div { padding: 15px 16px; }
.chapter-signal-grid > div + div { border-left: 1px solid var(--line); }
.chapter-signal-grid > div:nth-child(3) { border-left: 0; border-top: 1px solid var(--line); }
.chapter-signal-grid > div:nth-child(4) { border-top: 1px solid var(--line); }
.chapter-signal-grid span, .chapter-diagnosis span, .question-prompt > span, .answer-panel > span { display: block; margin-bottom: 8px; color: var(--muted); font-size: .6rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.chapter-signal-grid strong { font-family: var(--serif); font-size: .88rem; }
.chapter-diagnosis { grid-column: 2; display: grid; gap: 8px; }
.chapter-diagnosis article { border-left: 3px solid var(--green); background: rgba(255,254,250,.58); padding: 15px 18px; }
.chapter-diagnosis article + article { border-color: var(--amber); }
.chapter-diagnosis h2 { margin: 0; font-family: var(--serif); font-size: 1.12rem; font-weight: 500; line-height: 1.68; }
.chapter-question-card { grid-column: 2; border: 1px solid var(--line-dark); background: var(--white); padding: 20px; }
.chapter-question-card > header { display: flex; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--line); padding-bottom: 18px; }
.chapter-question-card > header strong { display: block; margin-top: 5px; font-family: var(--serif); font-size: 1rem; }
.question-prompt { padding: 20px 0; }
.question-prompt h2 { margin: 0; font-family: var(--serif); font-size: clamp(1.15rem, 2vw, 1.55rem); font-weight: 500; line-height: 1.32; }
.answer-panel { border-left: 3px solid var(--green); background: var(--green-soft); padding: 15px 17px; }
.answer-panel p { margin: 0; font-family: var(--serif); font-size: .86rem; line-height: 1.6; white-space: pre-wrap; }
.chapter-review-history { grid-column: 1 / -1; margin-top: 5px; }
.history { display: grid; gap: 15px; padding-top: 25px; }
.history-card { border: 1px solid var(--line); background: rgba(255,254,250,.68); padding: 23px; }
.history-card header { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 15px; }
.history-card h2 { margin: 0; font-family: var(--serif); font-size: 1.2rem; font-weight: 500; }
.history-card time { color: var(--faint); font-size: .68rem; }
.response-quote { margin: 0; border-left: 2px solid var(--line-dark); padding-left: 15px; color: var(--muted); font-family: var(--serif); font-size: 1.06rem; line-height: 1.74; white-space: pre-wrap; }
.review-result-row { display: grid; grid-template-columns: 125px 1fr; gap: 18px; padding: 15px 0; }
.review-result-row + .review-result-row { border-top: 1px solid var(--line); }
.review-result-row > div span, .review-result-row > div strong { display: block; }
.review-result-row > div span { color: var(--muted); font-size: .61rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.review-result-row > div strong { margin-top: 6px; color: var(--green); font-family: var(--serif); font-size: .9rem; }
.review-schedule-note { margin: 10px 0 0; border-top: 1px solid var(--line); padding-top: 13px; color: var(--muted); font-size: .66rem; }
.detail-actions { display: flex; gap: 10px; margin-top: 26px; }
.chapter-edit-form { display: grid; gap: 22px; padding-top: 28px; }
.chapter-edit-form .field { margin: 0; }
.chapter-edit-form textarea { min-height: 230px; line-height: 1.65; }
.chapter-edit-form .edit-response-group textarea { min-height: 140px; }
.edit-question-context { display: grid; grid-template-columns: 160px 1fr; gap: 24px; border-left: 3px solid var(--green); background: var(--green-soft); padding: 18px 20px; }
.edit-question-context span { display: block; margin-bottom: 6px; color: var(--muted); font-size: .6rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.edit-question-context strong, .edit-question-context p { margin: 0; font-family: var(--serif); line-height: 1.5; }
.edit-question-context .edit-criteria { grid-column: 1 / -1; border-top: 1px solid rgba(54,91,74,.18); padding-top: 12px; }
.edit-response-group { display: grid; gap: 18px; margin: 0; border: 1px solid var(--line-dark); background: rgba(255,254,250,.58); padding: 20px; }
.edit-response-group legend { padding: 0 8px; color: var(--green); font-size: .65rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.chapter-edit-form .detail-actions { justify-content: flex-end; margin-top: 2px; }

dialog { width: min(760px, calc(100% - 32px)); max-height: 80vh; border: 1px solid var(--line-dark); background: var(--white); color: var(--ink); padding: 0; box-shadow: 0 20px 80px rgba(32,34,31,.22); }
dialog::backdrop { background: rgba(32,34,31,.36); backdrop-filter: blur(3px); }
.dialog-head { position: sticky; top: 0; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); background: var(--white); padding: 18px 22px; }
.dialog-head h2 { margin: 4px 0 0; font-family: var(--serif); font-size: 1.2rem; }
.dialog-source { padding: 24px; color: #454741; font-family: var(--serif); font-size: .96rem; line-height: 1.75; white-space: pre-wrap; }
.gap-info-dialog { width: min(620px, calc(100% - 32px)); }
.auth-dialog { width: min(470px, calc(100% - 32px)); }
.auth-dialog-body { padding: 25px; }
.auth-dialog-body > p:first-child { margin: 0 0 22px; color: var(--muted); font-family: var(--serif); line-height: 1.6; }
.google-auth-button { display: flex; align-items: center; justify-content: center; gap: 11px; width: 100%; min-height: 46px; border: 1px solid var(--line-dark); border-radius: 4px; background: var(--white); color: var(--ink); font-size: .74rem; font-weight: 800; }
.google-auth-button span { display: grid; place-items: center; width: 22px; height: 22px; border: 1px solid var(--line); border-radius: 50%; font-family: var(--serif); }
.auth-divider { display: flex; align-items: center; gap: 12px; margin: 21px 0; color: var(--faint); font-size: .62rem; }
.auth-divider::before, .auth-divider::after { content: ""; flex: 1; height: 1px; background: var(--line); }
#email-auth-form { display: grid; gap: 15px; }
#email-auth-form[hidden], #magic-auth-options[hidden] { display: none; }
#email-auth-form .primary, #password-auth-form .primary { min-height: 44px; }
#password-auth-form { display: grid; gap: 15px; }
#password-auth-form[hidden] { display: none; }
.auth-note { margin: 14px 0 0; color: var(--muted); font-size: .64rem; line-height: 1.5; text-align: center; }
.auth-switch { border: 0; background: transparent; color: var(--green); padding: 4px 0; font-size: .68rem; font-weight: 800; text-decoration: underline; text-decoration-color: rgba(54,91,74,.3); text-underline-offset: 4px; }
#magic-auth-options { text-align: center; }
.password-auth-links { display: flex; justify-content: space-between; gap: 18px; }
.shared-device-note { margin: 18px 0 0; border-top: 1px solid var(--line); padding-top: 15px; color: var(--muted); font-size: .63rem; text-align: center; }
.auth-setup-note { margin-top: 20px; border-left: 3px solid var(--amber); background: var(--amber-soft); padding: 13px 15px; }
.auth-setup-note strong { font-family: var(--serif); font-size: .82rem; }
.auth-setup-note p { margin: 5px 0 0; color: var(--muted); font-size: .65rem; line-height: 1.5; }
.auth-setup-note code { font-size: .62rem; }
.gap-glossary { padding: 23px; }
.gap-glossary > p { margin: 0 0 22px; color: var(--muted); font-family: var(--serif); line-height: 1.6; }
.gap-glossary dl { display: grid; gap: 1px; margin: 0; background: var(--line); }
.gap-glossary dl div { background: var(--white); padding: 15px 17px; }
.gap-glossary dt { font-family: var(--serif); font-size: .94rem; font-weight: 700; }
.gap-glossary dd { margin: 5px 0 0; color: var(--muted); font-size: .72rem; line-height: 1.5; }
.gap-glossary .dialog-caveat { margin: 18px 0 0; border-left: 2px solid var(--amber); background: var(--amber-soft); padding: 12px 14px; font-family: var(--sans); font-size: .68rem; }

/* Readability pass: keep the editorial hierarchy, but raise the floor for
   labels, metadata, helper copy, and controls so the app is easier to scan. */
.skip-link,
.new-check,
.nav-item,
.sidebar-foot button,
.profile-menu > button,
.signed-out-note,
.text-button,
.toast,
.primary,
.secondary,
.primary.compact,
.new-check,
.nav-item,
.sidebar-foot button,
.profile-menu > button,
.marketing-nav button,
.marketing-mobile-menu summary,
.marketing-mobile-menu button,
.back-link,
.save-draft-button,
.item-action,
.reschedule-options button,
.preview-reading-card button,
.account-control .secondary,
.google-auth-button,
.auth-switch {
  font-size: .9rem;
}

.eyebrow,
.library-head,
.book-insights-link,
.insights-stats span,
.report-insight-card > span,
.report-map-grid > div > span,
.report-evidence > span,
.report-pattern-list span,
.learning-snapshot article > span,
.loop-label,
.frame-step,
.insight-slide > span,
.review-chunk > header span,
.preview-header,
.preview-reading-card small,
.preview-feedback-grid span,
.session-policy span,
.skill-proficiency > span,
.worked-example > span,
.practice-feedback strong,
.practice-next-move span,
.home-practice-progress > span,
.progress li,
.progress li span,
label > span,
legend,
label > span b,
label > span i,
.analysis-meter-list em,
.calibration-card span,
.feedback-card header span,
.feedback-concepts > span,
.revision-example small,
.next-challenge-pill span,
.evidence-mini span,
.summary-cell span,
.adaptive-schedule span,
.review-progress > span,
.review-context-facts dt,
.review-synopsis-grid span,
.review-scaffold > span,
.mini-confidence legend,
.chapter-tabs button,
.chapter-criteria > span,
.chapter-signal-grid span,
.chapter-diagnosis span,
.question-prompt > span,
.answer-panel > span,
.review-result-row > div span,
.edit-question-context span,
.edit-response-group legend,
.auth-divider,
.auth-note,
.shared-device-note,
.auth-setup-note code,
.nav-item em,
.book-progress small,
.retained-list article > span,
.gap-list strong,
.signal-bands em,
.stat-info-button,
.focus-edit-button,
.compounding-copy li span,
.reinforcement-path > div > span,
.date-tile,
.practice-path-number,
.pdf-upload-icon,
.confidence-options small,
.path-card.checkpoint-hero p {
  font-size: .8rem;
}

.library-head,
.loop-label,
.frame-step,
.chapter-tabs button,
.chapter-signal-grid span,
.chapter-diagnosis span,
.question-prompt > span,
.answer-panel > span,
.review-result-row > div span,
.edit-question-context span,
.edit-response-group legend {
  letter-spacing: .08em;
}

.book-group summary strong,
.chapter-link strong,
.chapter-link small,
.book-group summary span,
.book-progress small,
.profile-menu-head small,
.insights-byline,
.report-progress strong,
.chapter-signals button small,
.learning-snapshot small,
.continue-copy p,
.continue-progress small,
.continue-focus-control,
.home-hero .hero-reassurance,
.loop-card p,
.logged-out-value p,
.carousel-control,
.product-frame > small,
.mock-signal,
.mock-button,
.mock-review-row,
.mock-success,
.compounding-copy li,
.skill-acquisition-grid p,
.reinforcement-path small,
.faq-list p,
.item-copy small,
.status-tag,
.review-manage summary,
.reschedule-panel > span,
.review-chunk > header p,
.review-chunk-more,
.deep-dive-steps p,
.marketing-card-grid p,
.principles-list p,
.trust-grid p,
.marketing-callout p,
.proficiency-explainer small,
.example-flow p,
.example-review div,
.privacy-note p,
.account-setting > div > p,
.account-status,
.color-mode-option,
.color-theme-option small,
.preview-reading-card p,
.preview-feedback-grid p,
.practice-recommendation p,
.practice-lesson > p,
.practice-time,
.practice-path > header small,
.practice-path-copy small,
.practice-state,
.completed-practice-card small,
.daily-practice-complete small,
.worked-example p,
.practice-promo p,
.autosave-state,
.book-path label > span small,
.book-path-panel > p,
.chapter-total-field > small,
.source-kind label > span small,
.pdf-upload small,
.source-input small,
.closed-source > span,
.closed-source strong,
.closed-source small,
.recall-rubric summary,
.recall-rubric span,
.answer-box > small,
.analysis-transition-head p,
.analysis-meter-list span,
.checkpoint-hero p,
.path-card.checkpoint-hero p,
.feedback-controls,
.schedule-card p,
.schedule-options span,
.review-context-card p,
.review-context-facts dd,
.review-synopsis-grid p,
.review-scaffold p,
.mini-confidence label,
.chapter-kicker time,
.chapter-summary-card p,
.chapter-criteria > div span,
.chapter-signal-grid strong,
.answer-panel p,
.history-card time,
.review-schedule-note,
.dialog-source,
.auth-setup-note p,
.gap-glossary dd,
.gap-glossary .dialog-caveat {
  font-size: .9rem;
}

.book-group summary strong,
.chapter-link strong,
.item-copy strong,
.practice-path-copy strong,
.completed-practice-card strong,
.chapter-signals button strong {
  font-size: .98rem;
}

.book-group summary span,
.chapter-link small,
.item-copy small,
.practice-path-copy small,
.completed-practice-card small,
.signed-out-note,
.profile-menu-head small {
  font-size: .84rem;
}

.item-copy strong,
.profile-menu-head strong,
.source-kind label > span strong,
.pdf-upload strong,
.recall-rubric strong,
.analysis-meter-list strong,
.calibration-card strong,
.feedback-concepts li strong,
.next-challenge-pill strong,
.summary-cell strong,
.chapter-question-card > header strong,
.review-result-row > div strong,
.auth-setup-note strong,
.gap-glossary dt {
  font-size: 1.04rem;
}

.review-context-facts dd,
.review-synopsis-grid p,
.review-context-card p,
.chapter-link strong,
.chapter-link small,
.item-copy small,
.practice-path-copy small,
.review-chunk > header p {
  line-height: 1.45;
}

.home-hero > div > p,
.page-heading > p,
.step-heading > p,
.marketing-hero p,
.product-tour > header p,
.compounding-copy > p,
.landing-cta > p,
.account-heading > p,
.report-panel header p,
.practice-feedback p,
.daily-practice-complete p,
.gap-glossary > p {
  font-size: 1.08rem;
  line-height: 1.68;
}

.primary,
.secondary,
.new-check,
.nav-item,
.chapter-link,
.item-action,
.text-button,
.back-link,
.save-draft-button {
  line-height: 1.2;
}

.review-session .review-context-card {
  grid-template-columns: minmax(220px, .62fr) minmax(0, 1.38fr);
  gap: 34px;
  padding: 28px 0;
}

.review-session .review-context-card h2 {
  font-size: 1.34rem;
}

.review-session .review-context-card > div > p {
  font-size: .96rem;
  line-height: 1.62;
}

.review-session .review-context-details {
  gap: 15px;
}

.review-session .review-context-facts div {
  padding: 14px 15px;
}

.review-session .review-context-facts dt,
.review-session .review-synopsis-grid span {
  font-size: .78rem;
}

.review-session .review-context-facts dd {
  font-size: .98rem;
  line-height: 1.42;
}

.review-session .review-synopsis-grid {
  gap: 12px;
}

.review-session .review-synopsis-grid article {
  padding: 18px 19px;
}

.review-session .review-synopsis-grid p {
  margin-top: 9px;
  font-size: .98rem;
  line-height: 1.66;
}

.review-session .review-context-note {
  font-size: .9rem;
  line-height: 1.55;
}

.sr-only { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }

body.sidebar-collapsed { --sidebar: 68px; }
body.sidebar-collapsed .sidebar {
  align-items: center;
  padding: 16px 10px 12px;
  overflow: hidden;
}
body.sidebar-collapsed .brand-row {
  flex-direction: column;
  gap: 9px;
  width: 100%;
  padding: 0 0 14px;
}
body.sidebar-collapsed .brand {
  display: grid;
  place-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 6px;
  overflow: hidden;
}
body.sidebar-collapsed .brand span:last-child {
  display: none;
}
body.sidebar-collapsed #toggle-sidebar {
  width: 32px;
  height: 32px;
  transform: rotate(180deg);
}
body.sidebar-collapsed .new-check {
  display: grid;
  place-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  min-height: 44px;
  gap: 0;
  overflow: hidden;
  padding: 0;
  border-color: transparent;
  background: transparent;
  color: var(--ink);
  font-size: 0;
}
body.sidebar-collapsed .new-check .new-check-icon {
  width: 30px;
  height: 30px;
  color: white;
}
body.sidebar-collapsed .new-check .new-check-label {
  display: none;
}
body.sidebar-collapsed .side-nav {
  justify-items: center;
  width: 100%;
  margin: 16px 0;
  padding-bottom: 16px;
}
body.sidebar-collapsed .nav-item {
  display: grid;
  grid-template-columns: 1fr;
  place-items: center;
  width: 44px;
  height: 44px;
  min-height: 44px;
  border-radius: 10px;
  overflow: visible;
  padding: 0;
  background: transparent;
  color: transparent;
  font-size: 0;
  transition: color .2s cubic-bezier(.2, .8, .2, 1);
}
body.sidebar-collapsed .nav-item span {
  color: var(--muted);
  font-size: .9rem;
}
body.sidebar-collapsed .nav-item:hover,
body.sidebar-collapsed .nav-item.is-active {
  background: transparent;
  box-shadow: none;
}
body.sidebar-collapsed .nav-item .notification-icon svg,
body.sidebar-collapsed .nav-item .home-icon svg,
body.sidebar-collapsed .nav-item .practice-icon svg {
  width: 21px;
  height: 21px;
}
body.sidebar-collapsed .nav-item:hover span,
body.sidebar-collapsed .nav-item.is-active span {
  color: var(--ink);
}
body.sidebar-collapsed .nav-item em,
body.sidebar-collapsed .library-head,
body.sidebar-collapsed .library-list {
  display: none;
}
body.sidebar-collapsed .sidebar-foot {
  display: grid;
  justify-items: center;
  width: 100%;
}
body.sidebar-collapsed .sidebar-foot button {
  display: grid;
  grid-template-columns: 1fr;
  place-items: center;
  width: 44px;
  height: 44px;
  min-height: 44px;
  border-radius: 6px;
  overflow: hidden;
  padding: 0;
  font-size: 0;
}
body.sidebar-collapsed .sidebar-foot span:not(.avatar):not(.signed-out-mark) {
  display: none;
}
body.sidebar-collapsed .sidebar-foot .avatar {
  font-size: .78rem;
}
body.sidebar-collapsed .brand-mark,
body.sidebar-collapsed .new-check-icon,
body.sidebar-collapsed .nav-item .notification-icon,
body.sidebar-collapsed .nav-item .home-icon,
body.sidebar-collapsed .nav-item .practice-icon,
body.sidebar-collapsed .nav-item .notification-icon svg,
body.sidebar-collapsed .nav-item .home-icon svg,
body.sidebar-collapsed .nav-item .practice-icon svg,
body.sidebar-collapsed .sidebar-foot .avatar,
body.sidebar-collapsed .signed-out-mark {
  transform-origin: center;
  transition: color .22s cubic-bezier(.2, .8, .2, 1), filter .22s cubic-bezier(.2, .8, .2, 1), transform .22s cubic-bezier(.2, .8, .2, 1);
  will-change: transform, filter;
}
body.sidebar-collapsed .nav-item .notification-icon,
body.sidebar-collapsed .nav-item .home-icon,
body.sidebar-collapsed .nav-item .practice-icon {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
}
body.sidebar-collapsed .brand:hover .brand-mark,
body.sidebar-collapsed .new-check:hover .new-check-icon,
body.sidebar-collapsed .nav-item:hover .notification-icon svg,
body.sidebar-collapsed .nav-item:hover .home-icon svg,
body.sidebar-collapsed .nav-item:hover .practice-icon svg,
body.sidebar-collapsed .sidebar-foot button:hover .avatar,
body.sidebar-collapsed .signed-out-note:hover .signed-out-mark {
  color: var(--ink);
  filter: drop-shadow(0 6px 5px rgba(47,49,45,.22));
  transform: translateY(-3px) scale(1.05);
}
body.sidebar-collapsed .new-check:hover .new-check-icon,
body.sidebar-collapsed .brand:hover .brand-mark {
  color: var(--paper);
}
@media (prefers-reduced-motion: reduce) {
  body.sidebar-collapsed .brand-mark,
  body.sidebar-collapsed .new-check-icon,
  body.sidebar-collapsed .nav-item .notification-icon svg,
  body.sidebar-collapsed .nav-item .home-icon svg,
  body.sidebar-collapsed .nav-item .practice-icon svg,
  body.sidebar-collapsed .sidebar-foot .avatar,
  body.sidebar-collapsed .signed-out-mark {
    transition: color .01ms linear, filter .01ms linear;
  }
  body.sidebar-collapsed .brand:hover .brand-mark,
  body.sidebar-collapsed .new-check:hover .new-check-icon,
  body.sidebar-collapsed .nav-item:hover .notification-icon svg,
  body.sidebar-collapsed .nav-item:hover .home-icon svg,
  body.sidebar-collapsed .nav-item:hover .practice-icon svg,
  body.sidebar-collapsed .sidebar-foot button:hover .avatar,
  body.sidebar-collapsed .signed-out-note:hover .signed-out-mark {
    transform: none;
  }
}
body.logged-out .new-check,
body.logged-out .side-nav,
body.logged-out .library-head,
body.logged-out .library-list,
body.logged-out #profile-button,
body.logged-out #toggle-sidebar {
  display: none;
}
body.logged-out .dashboard-grid {
  display: none;
}
body.logged-out .sidebar-foot .signed-out-note,
body.logged-out .auth-actions {
  display: flex;
}
body:not(.logged-out) .sidebar-foot .signed-out-note {
  display: none;
}
body.logged-out .sidebar-foot {
  width: 100%;
}
body:not(.logged-out) .topbar {
  display: none;
}
body:not(.logged-out) main {
  min-height: 100vh;
}
body.logged-out.sidebar-collapsed .signed-out-note {
  display: grid;
  place-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  line-height: 0;
  font-size: 0;
}
body.logged-out.sidebar-collapsed .signed-out-note span:not(.signed-out-mark) {
  display: none;
}
body.logged-out.sidebar-collapsed .signed-out-mark {
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
}
body.logged-out.sidebar-collapsed .signed-out-mark svg {
  width: 22px;
  height: 22px;
}

@media (max-width: 900px) {
  :root { --sidebar: 0px; }
  .sidebar { width: 272px; transform: translateX(-100%); box-shadow: 10px 0 40px rgba(0,0,0,.12); }
  body.mobile-nav-open .sidebar { transform: translateX(0); }
  .mobile-menu { display: grid; }
  body.logged-out .mobile-menu { display: none; }
  body.logged-out .marketing-nav { display: none; }
  body.logged-out .marketing-mobile-menu { display: block; }
  .mobile-menu { margin-right: auto; }
  body:not(.logged-out) .topbar { display: flex; }
  body:not(.logged-out) main { min-height: calc(100vh - 54px); }
  .home-hero { grid-template-columns: 1fr; }
  .chapter-overview { grid-template-columns: 1fr; }
  .chapter-summary-card, .chapter-signal-grid, .chapter-diagnosis, .chapter-question-card, .chapter-review-history { grid-column: 1; }
  .chapter-summary-card { grid-row: auto; position: static; }
  .logged-out-value > div { grid-template-columns: 1fr; }
  .product-tour > header { align-items: flex-start; flex-direction: column; gap: 15px; }
  body.logged-out .compounding-value { grid-template-columns: 1fr; }
  body.logged-out .landing-faq { grid-template-columns: 1fr; }
  .skill-acquisition-grid { grid-template-columns: 1fr 1fr; }
  .marketing-card-grid { grid-template-columns: 1fr 1fr; }
  .proficiency-explainer { grid-template-columns: 1fr; }
  .proficiency-explainer i { display: none; }
  .principles-list, .example-flow, .trust-grid { grid-template-columns: 1fr; }
  .example-flow .example-review { grid-column: auto; }
  .reinforcement-path { grid-template-columns: 1fr; }
  .reinforcement-path > i { display: none; }
  .product-frame { width: 280px; }
  .insight-carousel { min-height: 390px; }
  .learning-snapshot { grid-template-columns: 1fr 1fr; }
  .loop-card { max-width: 540px; }
  .dashboard-grid { grid-template-columns: 1fr; }
  .dashboard-section:not(.practice-promo),
  .dashboard-section:nth-of-type(1):not(.practice-promo),
  .dashboard-section:nth-of-type(2):not(.practice-promo),
  .practice-promo { grid-column: 1; }
  .report-insight-strip { grid-template-columns: 1fr; }
  .report-grid { grid-template-columns: 1fr; }
  .calibration-card { grid-template-columns: 1fr 1fr; }
  .calibration-card p { grid-column: 1 / -1; }
  .progress li { font-size: 0; }
  .progress li span { margin-right: 0; font-size: .62rem; }
}
@media (max-width: 640px) {
  .skill-acquisition-grid { grid-template-columns: 1fr; }
  .marketing-card-grid { grid-template-columns: 1fr; }
  .topbar { padding: 10px 15px; }
  .top-actions { gap: 10px; }
  .home-view { padding: 26px 20px 55px; }
  .account-view { width: min(100% - 36px, 900px); padding-top: 35px; }
  .account-setting { grid-template-columns: 1fr; gap: 22px; }
  .account-control .secondary { width: 100%; }
  .preview-reading-card, .preview-feedback-grid { grid-template-columns: 1fr; }
  .preview-reading-card button { width: 100%; }
  .chapter-signal-grid { grid-template-columns: 1fr 1fr; }
  .chapter-signal-grid > div:nth-child(3) { border-left: 0; border-top: 1px solid var(--line); }
  .chapter-signal-grid > div:nth-child(4) { border-top: 1px solid var(--line); }
  .chapter-diagnosis { grid-template-columns: 1fr; }
  .recall-rubric > div { grid-template-columns: 1fr; }
  .hero-actions, .landing-cta-actions { align-items: stretch; flex-direction: column; gap: 14px; }
  .hero-actions button, .landing-cta-actions button { width: 100%; }
  .landing-footer { align-items: flex-end; flex-direction: column; gap: 10px; }
  .deep-dive-steps { margin-left: 5px; }
  .deep-dive-steps article { grid-template-columns: 35px 1fr; padding-left: 25px; }
  .home-hero { margin-bottom: 55px; }
  .learning-snapshot { grid-template-columns: 1fr 1fr; }
  .insights-stats { grid-template-columns: 1fr 1fr; }
  .insights-grid { grid-template-columns: 1fr; }
  .chapter-signals button { grid-template-columns: 1fr 18px; }
  .signal-bands { grid-column: 1 / -1; grid-row: 2; }
  .learning-snapshot { gap: 0 18px; padding-top: 20px; }
  .learning-snapshot article { padding: 0 0 16px; }
  .next-action-card { grid-template-columns: 1fr; min-height: 0; box-shadow: 9px 9px 0 #d8d2c7; }
  .next-action-card::after { display: none; }
  .next-action-marker { position: static; color: rgba(255,255,255,.28); font-size: 2.4rem; order: -1; }
  .next-action-card .primary { width: 100%; }
  .continue-card { grid-template-columns: 1fr; align-items: stretch; }
  .continue-actions { align-items: stretch; flex-direction: column; }
  .continue-actions button { width: 100%; }
  .home-hero h1, .page-heading h1, .step-heading h1 { font-size: 2.5rem; }
  .loop-card { box-shadow: 7px 7px 0 #e4dfd4; padding: 20px; }
  .flow-view { width: min(100% - 30px, 960px); }
  .flow-top { align-items: flex-start; }
  .learning-path { gap: 13px; }
  .learning-path::before { left: 18px; }
  .path-step { grid-template-columns: 38px minmax(0, 1fr); gap: 13px; }
  .path-marker { width: 36px; height: 36px; box-shadow: 0 0 0 5px var(--cream); font-size: .78rem; }
  .path-card, .path-card.checkpoint-hero { padding: 18px; }
  .checkpoint-hero { grid-template-columns: 1fr; text-align: center; }
  .checkpoint-mark { margin: 0 auto; }
  .checkpoint-hero p { justify-content: center; }
  .calibration-card { grid-template-columns: 1fr; }
  .calibration-card p { grid-column: auto; }
  .progress li:not(:last-child)::after { width: 8px; margin: 0 3px; }
  .progress li span { width: 21px; height: 21px; }
  .flow-step { padding-top: 42px; }
  .field-grid, .book-path, .source-kind, .confidence-options, .evaluation-grid, .completion-summary, .schedule-card { grid-template-columns: 1fr; }
  .confidence-options { grid-template-columns: 1fr 1fr; }
  .confidence-options label > span { min-height: 125px; }
  .band-card { position: static; }
  .closed-source div { display: grid; }
  .flow-actions { align-items: stretch; flex-direction: column-reverse; }
  .flow-actions button { width: 100%; }
  .feedback-controls { align-items: flex-start; flex-direction: column; }
  .schedule-options { grid-template-columns: 1fr 1fr; }
  .review-context-card { grid-template-columns: 1fr; gap: 16px; }
  .review-context-facts, .review-synopsis-grid { grid-template-columns: 1fr; }
  .mini-confidence { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .mini-confidence legend { margin-bottom: 4px; }
  .review-result-row { grid-template-columns: 1fr; gap: 10px; }
  .practice-recommendation { align-items: flex-start; flex-direction: column; }
  .daily-practice-complete { grid-template-columns: 1fr; }
  .practice-promo { align-items: stretch; flex-direction: column; }
  .practice-promo button { width: 100%; }
  .practice-actions { align-items: stretch; flex-direction: column-reverse; }
  .practice-actions button { width: 100%; }
  .review-actions, .reschedule-options { align-items: stretch; flex-direction: column; }
  .review-manage { width: 100%; }
  .reschedule-panel { position: static; min-width: 0; margin-top: 10px; box-shadow: none; }
  .review-actions button, .reschedule-options button { width: 100%; }
  .chapter-edit-form .detail-actions { align-items: stretch; flex-direction: column-reverse; }
  .chapter-edit-form .detail-actions button { width: 100%; }
  .edit-question-context { grid-template-columns: 1fr; gap: 14px; }
}
:root[data-color-mode="dark"] .flow-view,
:root[data-color-mode="dark"] .review-session,
:root[data-color-mode="dark"] .chapter-detail-view {
  color: var(--ink);
}

:root[data-color-mode="dark"] .path-card,
:root[data-color-mode="dark"] .path-card.checkpoint-hero,
:root[data-color-mode="dark"] .feedback-card,
:root[data-color-mode="dark"] .feedback-card.next-move,
:root[data-color-mode="dark"] .band-card,
:root[data-color-mode="dark"] .summary-cell,
:root[data-color-mode="dark"] .schedule-card,
:root[data-color-mode="dark"] .chapter-question-card,
:root[data-color-mode="dark"] .chapter-diagnosis article,
:root[data-color-mode="dark"] .history-card,
:root[data-color-mode="dark"] .edit-response-group,
:root[data-color-mode="dark"] .review-context-facts div,
:root[data-color-mode="dark"] .review-synopsis-grid article {
  border-color: color-mix(in srgb, var(--line-dark), var(--paper) 12%);
  background: color-mix(in srgb, var(--white), var(--paper) 8%);
  box-shadow: none;
}

:root[data-color-mode="dark"] .feedback-concepts,
:root[data-color-mode="dark"] .next-challenge-pill,
:root[data-color-mode="dark"] .chapter-tabs,
:root[data-color-mode="dark"] .calibration-card > div,
:root[data-color-mode="dark"] .calibration-card > p,
:root[data-color-mode="dark"] .analysis-meter-list article,
:root[data-color-mode="dark"] .path-card.checkpoint-hero p,
:root[data-color-mode="dark"] .schedule-options span {
  border-color: color-mix(in srgb, var(--line), var(--paper) 12%);
  background: color-mix(in srgb, var(--white), var(--paper) 2%);
}

:root[data-color-mode="dark"] .confidence-scale-track {
  background: color-mix(in srgb, var(--line-dark), var(--paper) 20%);
}

:root[data-color-mode="dark"] .mini-confidence label::before {
  background: var(--paper);
}

:root[data-color-mode="dark"] .evidence-block,
:root[data-color-mode="dark"] .evidence-mini {
  border-left-color: color-mix(in srgb, var(--green), var(--line-dark) 16%);
  background: color-mix(in srgb, var(--green-soft), var(--white) 14%);
  color: var(--ink);
}

:root[data-color-mode="dark"] .evidence-block.is-revisit,
:root[data-color-mode="dark"] .review-scaffold {
  border-left-color: color-mix(in srgb, var(--amber), var(--line-dark) 12%);
  background: color-mix(in srgb, var(--amber-soft), var(--white) 12%);
}

:root[data-color-mode="dark"] .feedback-card.distortion {
  border-color: color-mix(in srgb, var(--red), var(--line-dark) 16%);
  background: color-mix(in srgb, var(--red-soft), var(--white) 10%);
}

:root[data-color-mode="dark"] .feedback-card p,
:root[data-color-mode="dark"] .feedback-card ul,
:root[data-color-mode="dark"] .feedback-concepts ul,
:root[data-color-mode="dark"] .feedback-concepts li strong,
:root[data-color-mode="dark"] .continue-copy p,
:root[data-color-mode="dark"] .checkpoint-hero p,
:root[data-color-mode="dark"] .path-card-compact p,
:root[data-color-mode="dark"] .path-card-note,
:root[data-color-mode="dark"] .evidence-block blockquote,
:root[data-color-mode="dark"] .evidence-mini,
:root[data-color-mode="dark"] .evidence-mini blockquote,
:root[data-color-mode="dark"] .revision-example p,
:root[data-color-mode="dark"] .next-challenge-pill strong,
:root[data-color-mode="dark"] .summary-cell strong,
:root[data-color-mode="dark"] .schedule-card p,
:root[data-color-mode="dark"] .review-context-facts dd,
:root[data-color-mode="dark"] .review-synopsis-grid p,
:root[data-color-mode="dark"] .review-scaffold blockquote,
:root[data-color-mode="dark"] .review-scaffold p,
:root[data-color-mode="dark"] .dialog-source {
  color: var(--ink) !important;
}

:root[data-color-mode="dark"] .feedback-concepts > span,
:root[data-color-mode="dark"] .evidence-block span,
:root[data-color-mode="dark"] .evidence-block.is-revisit span,
:root[data-color-mode="dark"] .next-challenge-pill span,
:root[data-color-mode="dark"] .summary-cell span,
:root[data-color-mode="dark"] .review-scaffold > span,
:root[data-color-mode="dark"] .revision-example small {
  color: color-mix(in srgb, var(--muted), var(--ink) 38%);
}

:root[data-color-mode="dark"] .report-insight-card.tone-ink p,
:root[data-color-mode="dark"] .product-frame.review-frame small,
:root[data-color-mode="dark"] .insight-slide p,
:root[data-color-mode="dark"] .insight-slide small,
:root[data-color-mode="dark"] .reinforcement-path small,
:root[data-color-mode="dark"] .landing-cta > p,
:root[data-color-mode="dark"] .trust-grid article:nth-child(3n + 1) p {
  color: color-mix(in srgb, var(--ink), transparent 18%);
}

:root[data-color-mode="dark"] .report-insight-card.tone-ink > span,
:root[data-color-mode="dark"] .product-frame.review-frame .frame-step,
:root[data-color-mode="dark"] .product-frame.review-frame strong,
:root[data-color-mode="dark"] .landing-cta .eyebrow,
:root[data-color-mode="dark"] .chapter-summary-card .eyebrow {
  color: var(--green);
}

:root[data-color-mode="dark"] input::placeholder,
:root[data-color-mode="dark"] textarea::placeholder,
:root[data-color-mode="dark"] .closed-source small {
  color: color-mix(in srgb, var(--faint), var(--ink) 14%);
}

:root[data-color-mode="dark"] .chapter-tabs {
  gap: 4px;
  border-color: color-mix(in srgb, var(--line-dark), var(--paper) 6%);
  padding: 5px;
}

:root[data-color-mode="dark"] .chapter-tabs button {
  color: color-mix(in srgb, var(--muted), var(--ink) 18%);
}

:root[data-color-mode="dark"] .chapter-tabs button.is-active {
  background: color-mix(in srgb, var(--white), var(--ink) 5%);
  color: var(--ink);
  box-shadow: none;
}

:root[data-color-mode="dark"] .evidence-block.is-revisit blockquote {
  color: var(--ink) !important;
}

:root[data-color-mode="dark"] .practice-recommendation,
:root[data-color-mode="dark"] .daily-practice-complete {
  border-color: color-mix(in srgb, var(--green), var(--line-dark) 16%);
  background: linear-gradient(135deg, color-mix(in srgb, var(--green-soft), var(--white) 18%), color-mix(in srgb, var(--green-soft), var(--paper) 8%));
}

:root[data-color-mode="dark"] .practice-recommendation p,
:root[data-color-mode="dark"] .daily-practice-complete p {
  color: color-mix(in srgb, var(--ink), var(--muted) 14%);
}

:root[data-color-mode="dark"] .practice-time,
:root[data-color-mode="dark"] .daily-complete-mark {
  background: color-mix(in srgb, var(--green), var(--white) 14%);
  color: var(--paper);
}

:root[data-color-mode="dark"] .skill-proficiency > span,
:root[data-color-mode="dark"] .daily-practice-complete small {
  color: color-mix(in srgb, var(--green), var(--ink) 18%);
}

:root[data-color-mode="dark"] .skill-proficiency > div {
  background: color-mix(in srgb, var(--green-soft), var(--paper) 32%);
}

:root[data-color-mode="dark"] .skill-proficiency i {
  background: var(--green);
}

:root[data-color-mode="dark"] .practice-path > header small,
:root[data-color-mode="dark"] .practice-path-copy small,
:root[data-color-mode="dark"] .completed-practice-card small {
  color: color-mix(in srgb, var(--muted), var(--ink) 12%);
}

:root[data-color-mode="dark"] .practice-path-item {
  border-color: color-mix(in srgb, var(--line-dark), var(--paper) 8%);
}

:root[data-color-mode="dark"] .practice-path-item.is-focus {
  border-color: color-mix(in srgb, var(--green), var(--line-dark) 12%);
  background: color-mix(in srgb, var(--green-soft), var(--white) 18%);
  box-shadow: inset 4px 0 0 var(--green);
}

:root[data-color-mode="dark"] .practice-path-item.is-locked {
  opacity: 1;
  background: color-mix(in srgb, var(--white), var(--paper) 2%);
}

:root[data-color-mode="dark"] .practice-path-item.is-locked .practice-path-copy strong {
  color: color-mix(in srgb, var(--ink), var(--paper) 28%);
}

:root[data-color-mode="dark"] .practice-path-item.is-locked .practice-path-copy small {
  color: color-mix(in srgb, var(--muted), var(--paper) 10%);
}

:root[data-color-mode="dark"] .practice-path-number {
  background: color-mix(in srgb, var(--white), var(--paper) 4%);
  color: color-mix(in srgb, var(--muted), var(--ink) 18%);
}

:root[data-color-mode="dark"] .practice-path-item.is-focus .practice-path-number {
  background: var(--green);
  color: var(--paper);
}

:root[data-color-mode="dark"] .practice-state {
  background: color-mix(in srgb, var(--white), var(--paper) 4%);
  color: color-mix(in srgb, var(--muted), var(--ink) 16%);
}

:root[data-color-mode="dark"] .practice-path-item.is-focus .practice-state {
  background: color-mix(in srgb, var(--green), var(--paper) 34%);
  color: color-mix(in srgb, var(--green), var(--ink) 18%);
}

:root[data-color-mode="dark"] .completion-mark {
  border-color: color-mix(in srgb, var(--green), var(--ink) 16%);
  background: color-mix(in srgb, var(--green), var(--white) 8%);
  color: var(--paper);
  box-shadow:
    0 0 0 8px color-mix(in srgb, var(--green-soft), var(--paper) 30%),
    0 10px 30px rgba(0,0,0,.24);
}

:root[data-color-mode="dark"] .save-step .step-heading.centered .eyebrow {
  color: color-mix(in srgb, var(--green), var(--ink) 24%);
}

:root[data-color-mode="dark"] .feedback-card header span,
:root[data-color-mode="dark"] .band-card .band-icon,
:root[data-color-mode="dark"] .checkpoint-mark,
:root[data-color-mode="dark"] .path-step-signal .path-marker,
:root[data-color-mode="dark"] .path-step-final .path-marker {
  background: color-mix(in srgb, var(--green-soft), var(--paper) 12%);
  color: var(--green);
}

:root[data-color-mode="dark"] .feedback-card.gap header span,
:root[data-color-mode="dark"] .path-step-warm .path-marker {
  background: color-mix(in srgb, var(--amber-soft), var(--paper) 16%);
  color: var(--amber);
}

:root[data-color-mode="dark"] .path-marker {
  border-color: color-mix(in srgb, var(--line-dark), var(--paper) 18%);
  background: color-mix(in srgb, var(--white), var(--paper) 16%);
  color: var(--green);
  box-shadow: 0 0 0 6px var(--paper);
}

:root[data-color-mode="dark"] .learning-path::before {
  background: linear-gradient(180deg, color-mix(in srgb, var(--green), transparent 62%), color-mix(in srgb, var(--green), transparent 86%));
}

/* Source Sans 3 carries instructional and reading-heavy copy. Serif remains for
   large editorial headings and book titles. */
.home-hero > div > p,
.page-heading > p,
.step-heading > p,
.insights-synthesis,
.report-list li,
.report-pattern-list p,
.feedback-card p,
.feedback-card ul,
.feedback-concepts ul,
.evidence-block blockquote,
.evidence-mini,
.revision-example p,
.calibration-card p,
.path-card-compact p,
.path-card-note,
.challenge-guide p,
.challenge-guide small,
.answer-box textarea,
.practice-recommendation p,
.practice-lesson p,
.practice-activity p,
.practice-feedback p,
.daily-practice-complete p,
.chapter-summary-card p,
.chapter-diagnosis h2,
.answer-panel p,
.response-quote,
.edit-question-context p,
.dialog-source,
.auth-dialog-body > p:first-child,
.gap-glossary > p,
.review-scaffold blockquote,
.review-scaffold p {
  font-family: var(--sans);
  letter-spacing: normal;
}

.feedback-card p,
.feedback-card ul,
.feedback-concepts ul,
.evidence-block blockquote,
.answer-panel p,
.response-quote,
.dialog-source {
  line-height: 1.68;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
  .product-carousel-track { transform: none; }
  .product-carousel-group[aria-hidden="true"] { display: none; }
  .insight-slide { display: none; opacity: 1; transform: none; }
  .insight-slide.slide-one { display: block; }
}
