/* ==========================================================================
   Learning Verse — University Level
   Adult academic interface. 10 themes: 5 dark (black base), 5 light (white base).
   No backdrop-filter / CSS filter (breaks preview rasterization on target machine).
   ========================================================================== */

/* ---------- DARK THEMES: black base, 5 accents ---------- */
:root,
body[data-theme="dark-slate"]{
  --bg:#0b0d10; --surface:#14171c; --surface-2:#1b1f26; --raised:#232830;
  --ink:#e8ecf2; --ink-2:#aab4c2; --ink-3:#77828f;
  --line:#262c35; --line-2:#333b46;
  --accent:#5b9dff; --accent-2:#8fbcff; --accent-ink:#04070d;
  --ok:#3fbf7f; --ok-bg:#0e2419; --warn:#e0a03c; --bad:#e8615c; --bad-bg:#2a1416;
  --shadow:0 1px 2px rgba(0,0,0,.5), 0 8px 24px rgba(0,0,0,.35);
  color-scheme:dark;
}
body[data-theme="dark-emerald"]{
  --bg:#080c0a; --surface:#111815; --surface-2:#18211d; --raised:#202b25;
  --ink:#e6f0ea; --ink-2:#a4b6ac; --ink-3:#72847a;
  --line:#1f2b25; --line-2:#2c3a33;
  --accent:#3ecf8e; --accent-2:#7fe0b4; --accent-ink:#03110b;
  --ok:#3fbf7f; --ok-bg:#0d2418; --warn:#d9a13f; --bad:#e8615c; --bad-bg:#2a1416;
  --shadow:0 1px 2px rgba(0,0,0,.5), 0 8px 24px rgba(0,0,0,.35);
  color-scheme:dark;
}
body[data-theme="dark-amber"]{
  --bg:#0d0b07; --surface:#171410; --surface-2:#1f1b15; --raised:#29241c;
  --ink:#f0ebe2; --ink-2:#b8ae9e; --ink-3:#867d70;
  --line:#2a241b; --line-2:#3a3227;
  --accent:#e8a33d; --accent-2:#f2c176; --accent-ink:#100b03;
  --ok:#4fbf7f; --ok-bg:#12220f; --warn:#e8a33d; --bad:#e8615c; --bad-bg:#2a1512;
  --shadow:0 1px 2px rgba(0,0,0,.5), 0 8px 24px rgba(0,0,0,.35);
  color-scheme:dark;
}
body[data-theme="dark-crimson"]{
  --bg:#0d0809; --surface:#181113; --surface-2:#20171a; --raised:#2b1f22;
  --ink:#f2e9ea; --ink-2:#bda8ac; --ink-3:#8a777b;
  --line:#2b1f22; --line-2:#3b2a2e;
  --accent:#e05a68; --accent-2:#ef8b95; --accent-ink:#100405;
  --ok:#3fbf7f; --ok-bg:#0f2418; --warn:#dfa044; --bad:#e05a68; --bad-bg:#2c1518;
  --shadow:0 1px 2px rgba(0,0,0,.5), 0 8px 24px rgba(0,0,0,.35);
  color-scheme:dark;
}
body[data-theme="dark-violet"]{
  --bg:#0a080f; --surface:#15121d; --surface-2:#1c1826; --raised:#262032;
  --ink:#ece8f5; --ink-2:#b0a8c4; --ink-3:#7f7891;
  --line:#251f31; --line-2:#342c43;
  --accent:#9b7bff; --accent-2:#bda6ff; --accent-ink:#07040f;
  --ok:#3fbf7f; --ok-bg:#0f2418; --warn:#dfa044; --bad:#e8615c; --bad-bg:#2a1416;
  --shadow:0 1px 2px rgba(0,0,0,.5), 0 8px 24px rgba(0,0,0,.35);
  color-scheme:dark;
}

/* ---------- LIGHT THEMES: white base, 5 accents ---------- */
body[data-theme="light-navy"]{
  --bg:#ffffff; --surface:#ffffff; --surface-2:#f4f6f9; --raised:#eef1f6;
  --ink:#111721; --ink-2:#495261; --ink-3:#727c8c;
  --line:#dfe4ec; --line-2:#c7cfdb;
  --accent:#1f4e8c; --accent-2:#2f6bb8; --accent-ink:#ffffff;
  --ok:#177245; --ok-bg:#e8f5ee; --warn:#9a6400; --bad:#b4232b; --bad-bg:#fcecec;
  --shadow:0 1px 2px rgba(17,23,33,.06), 0 6px 18px rgba(17,23,33,.07);
  color-scheme:light;
}
body[data-theme="light-teal"]{
  --bg:#ffffff; --surface:#ffffff; --surface-2:#f2f8f8; --raised:#e9f2f2;
  --ink:#0f1b1c; --ink-2:#44585a; --ink-3:#6d8183;
  --line:#dbe8e8; --line-2:#c1d5d5;
  --accent:#0d6e6e; --accent-2:#128f8f; --accent-ink:#ffffff;
  --ok:#177245; --ok-bg:#e8f5ee; --warn:#9a6400; --bad:#b4232b; --bad-bg:#fcecec;
  --shadow:0 1px 2px rgba(15,27,28,.06), 0 6px 18px rgba(15,27,28,.07);
  color-scheme:light;
}
body[data-theme="light-burgundy"]{
  --bg:#ffffff; --surface:#ffffff; --surface-2:#faf5f6; --raised:#f4ecee;
  --ink:#1c1215; --ink-2:#584a4e; --ink-3:#827175;
  --line:#eadfe2; --line-2:#d9c7cb;
  --accent:#8c2437; --accent-2:#ad3149; --accent-ink:#ffffff;
  --ok:#177245; --ok-bg:#e8f5ee; --warn:#9a6400; --bad:#b4232b; --bad-bg:#fcecec;
  --shadow:0 1px 2px rgba(28,18,21,.06), 0 6px 18px rgba(28,18,21,.07);
  color-scheme:light;
}
body[data-theme="light-forest"]{
  --bg:#ffffff; --surface:#ffffff; --surface-2:#f3f8f3; --raised:#eaf2ea;
  --ink:#101a12; --ink-2:#455349; --ink-3:#6f7d73;
  --line:#dde8de; --line-2:#c5d6c8;
  --accent:#245c34; --accent-2:#337a47; --accent-ink:#ffffff;
  --ok:#177245; --ok-bg:#e8f5ee; --warn:#9a6400; --bad:#b4232b; --bad-bg:#fcecec;
  --shadow:0 1px 2px rgba(16,26,18,.06), 0 6px 18px rgba(16,26,18,.07);
  color-scheme:light;
}
body[data-theme="light-indigo"]{
  --bg:#ffffff; --surface:#ffffff; --surface-2:#f5f5fb; --raised:#eeeef8;
  --ink:#14131f; --ink-2:#4c4a5e; --ink-3:#757389;
  --line:#e2e1ef; --line-2:#cbc9de;
  --accent:#3b3499; --accent-2:#524ac0; --accent-ink:#ffffff;
  --ok:#177245; --ok-bg:#e8f5ee; --warn:#9a6400; --bad:#b4232b; --bad-bg:#fcecec;
  --shadow:0 1px 2px rgba(20,19,31,.06), 0 6px 18px rgba(20,19,31,.07);
  color-scheme:light;
}

*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  background:var(--bg);
  color:var(--ink);
  line-height:1.65;
  font-size:16px;
  transition:background-color .2s ease, color .2s ease;
}
h1,h2,h3,h4{font-family:'Source Serif 4',Georgia,serif;font-weight:600;line-height:1.25;letter-spacing:-.01em}
a{color:var(--accent)}
code,kbd,.mono{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.9em}
::selection{background:var(--accent);color:var(--accent-ink)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}

/* ---------- topbar ---------- */
.topbar{
  position:sticky;top:0;z-index:60;
  background:var(--surface);
  border-bottom:1px solid var(--line);
}
.topbar-inner{
  max-width:1220px;margin:0 auto;padding:0 24px;
  height:60px;display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}
.brand-mark{
  width:34px;height:34px;flex:0 0 34px;border-radius:7px;
  background:var(--accent);color:var(--accent-ink);
  display:grid;place-items:center;
  font-family:'Source Serif 4',serif;font-weight:700;font-size:15px;letter-spacing:.02em;
}
.brand-text{display:flex;flex-direction:column;font-family:'Source Serif 4',serif;font-weight:600;font-size:16px;line-height:1.2}
.brand-text em{
  font-family:'Inter',sans-serif;font-style:normal;font-weight:500;
  font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-top:2px;
}
.topbar-nav{display:flex;align-items:center;gap:10px}
.tnav-link{
  font-size:13.5px;font-weight:500;color:var(--ink-2);text-decoration:none;
  padding:7px 12px;border-radius:6px;transition:color .15s, background .15s;
}
.tnav-link:hover{color:var(--ink);background:var(--surface-2)}
.stat-chip{
  font-size:13px;font-weight:500;color:var(--ink-2);
  background:var(--surface-2);border:1px solid var(--line);
  padding:6px 12px;border-radius:6px;white-space:nowrap;
}
.stat-chip .stat-sub{color:var(--ink-3)}
#progressCount{color:var(--ink);font-weight:600}
.icon-btn{
  width:34px;height:34px;border-radius:6px;cursor:pointer;
  background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2);
  font-size:15px;line-height:1;display:grid;place-items:center;
  transition:color .15s, border-color .15s;
}
.icon-btn:hover{color:var(--ink);border-color:var(--line-2)}

/* ---------- theme panel ---------- */
.theme-panel{
  position:absolute;right:24px;top:58px;z-index:70;
  background:var(--surface);border:1px solid var(--line-2);border-radius:10px;
  box-shadow:var(--shadow);padding:14px;width:280px;
}
.theme-panel.hidden{display:none}
.tp-group{margin-bottom:14px}
.tp-group:last-child{margin-bottom:0}
.tp-label{
  font-size:10.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;
  color:var(--ink-3);margin-bottom:9px;
}
.tp-swatches{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.tp-swatch{
  aspect-ratio:1;border-radius:7px;cursor:pointer;position:relative;
  border:2px solid var(--line);padding:0;
  transition:transform .12s, border-color .12s;
  display:grid;place-items:center;
}
.tp-swatch:hover{transform:translateY(-2px);border-color:var(--line-2)}
.tp-swatch.active{border-color:var(--accent)}
.tp-swatch .dot{width:12px;height:12px;border-radius:50%}
.tp-swatch.active::after{
  content:'';position:absolute;inset:-5px;border-radius:10px;
  border:1.5px solid var(--accent);
}
.tp-name{font-size:11.5px;color:var(--ink-3);margin-top:9px;text-align:center}

/* ---------- layout ---------- */
main{max-width:1220px;margin:0 auto;padding:36px 24px 72px}
.site-footer{border-top:1px solid var(--line);background:var(--surface);margin-top:40px}
.footer-inner{max-width:1220px;margin:0 auto;padding:26px 24px}
.site-footer p{font-size:13px;color:var(--ink-2)}
.footer-note{font-size:12px;color:var(--ink-3);margin-top:6px;max-width:760px}

/* ---------- masthead ---------- */
.masthead{border-bottom:1px solid var(--line);padding-bottom:28px;margin-bottom:32px}
.eyebrow{
  font-size:11px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;
  color:var(--accent);margin-bottom:12px;
}
.masthead h1{font-size:clamp(28px,3.4vw,40px);margin-bottom:12px;max-width:22ch}
.masthead .lede{font-size:16.5px;color:var(--ink-2);max-width:70ch;line-height:1.7}
.masthead-stats{display:flex;gap:32px;flex-wrap:wrap;margin-top:24px}
.mstat b{display:block;font-family:'Source Serif 4',serif;font-size:24px;font-weight:600;color:var(--ink);line-height:1.2}
.mstat span{font-size:12px;color:var(--ink-3);letter-spacing:.03em}

/* ---------- controls ---------- */
.controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:26px}
.tier-filter{display:flex;gap:6px;flex-wrap:wrap}
.tier-btn{
  font-family:'Inter',sans-serif;font-size:13px;font-weight:500;cursor:pointer;
  background:var(--surface);border:1px solid var(--line);color:var(--ink-2);
  padding:7px 14px;border-radius:6px;
  transition:color .15s, border-color .15s, background .15s;
}
.tier-btn:hover{color:var(--ink);border-color:var(--line-2)}
.tier-btn.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.search-field{
  flex:1;min-width:220px;position:relative;
}
.search-field input{
  width:100%;font-family:'Inter',sans-serif;font-size:14px;
  background:var(--surface);border:1px solid var(--line);color:var(--ink);
  padding:9px 14px 9px 36px;border-radius:6px;
  transition:border-color .15s;
}
.search-field input::placeholder{color:var(--ink-3)}
.search-field input:focus{outline:none;border-color:var(--accent)}
.search-field .sf-icon{
  position:absolute;left:13px;top:50%;transform:translateY(-50%);
  color:var(--ink-3);font-size:13px;pointer-events:none;
}

/* ---------- discipline grid ---------- */
.section-label{
  font-size:11px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;
  color:var(--ink-3);margin:34px 0 14px;padding-bottom:8px;border-bottom:1px solid var(--line);
}
.discipline-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.discipline-card{
  display:block;text-decoration:none;color:var(--ink);
  background:var(--surface);border:1px solid var(--line);border-radius:9px;
  padding:20px;position:relative;overflow:hidden;
  transition:border-color .15s, transform .15s, box-shadow .15s;
}
.discipline-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow)}
.dc-rule{position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent)}
.dc-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:7px}
.discipline-card h3{font-size:17.5px}
.dc-code{
  font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--ink-3);
  letter-spacing:.02em;white-space:nowrap;
}
.discipline-card p{font-size:13.5px;color:var(--ink-2);line-height:1.6;margin-bottom:14px}
.dc-meter{height:3px;background:var(--surface-2);border-radius:2px;overflow:hidden;border:0}
.dc-fill{height:100%;background:var(--accent);transition:width .4s ease}
.dc-meta{display:flex;justify-content:space-between;font-size:11.5px;color:var(--ink-3);margin-top:8px}

/* ---------- module index ---------- */
.crumb{font-size:12.5px;color:var(--ink-3);margin-bottom:18px}
.crumb a{color:var(--ink-2);text-decoration:none}
.crumb a:hover{color:var(--accent)}
.crumb .sep{margin:0 7px;color:var(--line-2)}
.discipline-head{border-bottom:1px solid var(--line);padding-bottom:24px;margin-bottom:8px}
.discipline-head h1{font-size:clamp(24px,3vw,34px);margin-bottom:8px}
.discipline-head .dh-sub{font-size:15px;color:var(--ink-2);max-width:68ch}
.discipline-head .dh-meta{display:flex;gap:24px;margin-top:16px;flex-wrap:wrap;font-size:12.5px;color:var(--ink-3)}
.filter-note{font-size:12.5px;color:var(--ink-3);margin:16px 0 0}
.module-list{margin-top:22px;border:1px solid var(--line);border-radius:9px;overflow:hidden}
.module-row{
  display:grid;grid-template-columns:52px 1fr auto;gap:16px;align-items:center;
  padding:14px 18px;text-decoration:none;color:var(--ink);
  border-bottom:1px solid var(--line);background:var(--surface);
  transition:background .13s;
}
.module-row:last-child{border-bottom:none}
.module-row:hover{background:var(--surface-2)}
.module-row.dimmed{opacity:.45}
.mr-num{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--ink-3)}
.mr-body h4{font-size:15px;font-weight:600;margin-bottom:3px}
.mr-body .mr-desc{font-size:12.5px;color:var(--ink-3);line-height:1.5}
.mr-right{display:flex;align-items:center;gap:12px}
.tier-tag{
  font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;
  color:var(--ink-3);border:1px solid var(--line);border-radius:4px;padding:3px 8px;white-space:nowrap;
}
.mr-score{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--ok);white-space:nowrap}
.mr-score.none{color:var(--ink-3)}

/* ---------- module page ---------- */
.module-wrap{max-width:820px;margin:0 auto}
.module-head{border-bottom:1px solid var(--line);padding-bottom:24px;margin-bottom:28px}
.module-head .mh-tags{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
.module-head h1{font-size:clamp(24px,3.2vw,34px);margin-bottom:14px}
.module-head .abstract{font-size:16px;color:var(--ink-2);line-height:1.75}
.sec-head{
  font-family:'Source Serif 4',serif;font-size:20px;font-weight:600;
  margin:34px 0 16px;padding-bottom:9px;border-bottom:1px solid var(--line);
}
.concept-list{list-style:none;counter-reset:concept}
.concept-list li{
  counter-increment:concept;
  display:grid;grid-template-columns:26px 1fr;gap:14px;
  padding:14px 0;border-bottom:1px solid var(--line);
}
.concept-list li:last-child{border-bottom:none}
.concept-list li::before{
  content:counter(concept,decimal-leading-zero);
  font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--ink-3);padding-top:3px;
}
.concept-list .c-term{font-weight:600;color:var(--ink);display:block;margin-bottom:3px;font-size:14.5px}
.concept-list .c-body{font-size:14px;color:var(--ink-2);line-height:1.68}
.glossary{border:1px solid var(--line);border-radius:9px;overflow:hidden}
.gl-row{display:grid;grid-template-columns:minmax(140px,0.9fr) 2fr;gap:18px;padding:12px 18px;border-bottom:1px solid var(--line);background:var(--surface)}
.gl-row:last-child{border-bottom:none}
.gl-term{font-weight:600;font-size:13.5px}
.gl-def{font-size:13.5px;color:var(--ink-2);line-height:1.6}
.callout{
  border-left:3px solid var(--accent);background:var(--surface-2);
  padding:14px 18px;border-radius:0 7px 7px 0;margin-top:24px;
}
.callout .co-label{
  font-size:10.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;
  color:var(--accent);margin-bottom:5px;
}
.callout p{font-size:13.5px;color:var(--ink-2);line-height:1.65}
.sources-box{
  margin-top:24px;border:1px solid var(--line);border-radius:9px;padding:16px 18px;background:var(--surface);
}
.sources-box .sb-label{
  font-size:10.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;
  color:var(--ink-3);margin-bottom:7px;
}
.sources-box p{font-size:13px;color:var(--ink-2);line-height:1.65}
.module-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:34px;padding-top:26px;border-top:1px solid var(--line)}
.module-nav{display:flex;justify-content:space-between;gap:12px;margin-top:22px;flex-wrap:wrap}
.mn-link{
  font-size:13px;color:var(--ink-2);text-decoration:none;
  border:1px solid var(--line);border-radius:7px;padding:10px 14px;max-width:47%;
  transition:border-color .15s,color .15s;
}
.mn-link:hover{border-color:var(--accent);color:var(--ink)}
.mn-link span{display:block;font-size:10.5px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.07em;margin-bottom:3px}

/* ---------- buttons ---------- */
.btn{
  display:inline-block;font-family:'Inter',sans-serif;font-size:14px;font-weight:600;
  cursor:pointer;text-decoration:none;border:1px solid transparent;
  background:var(--accent);color:var(--accent-ink);
  padding:10px 20px;border-radius:7px;
  transition:opacity .15s, transform .1s;
}
.btn:hover{opacity:.9}
.btn:active{transform:translateY(1px)}
.btn.secondary{background:transparent;color:var(--ink-2);border-color:var(--line-2)}
.btn.secondary:hover{color:var(--ink);border-color:var(--accent);opacity:1}

/* ---------- examination ---------- */
.exam-wrap{max-width:820px;margin:0 auto}
.exam-header{
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding-bottom:16px;border-bottom:1px solid var(--line);margin-bottom:22px;flex-wrap:wrap;
}
.exam-header h2{font-size:19px}
.exam-header .eh-meta{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--ink-3)}
.progress-track{display:flex;gap:4px;margin-bottom:26px}
.pt-seg{flex:1;height:3px;border-radius:2px;background:var(--line)}
.pt-seg.correct{background:var(--ok)}
.pt-seg.incorrect{background:var(--bad)}
.pt-seg.active{background:var(--accent)}
.question-card{background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:26px 28px}
.q-number{
  font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--ink-3);
  letter-spacing:.05em;margin-bottom:10px;
}
.q-text{font-family:'Source Serif 4',serif;font-size:19px;font-weight:600;line-height:1.5;margin-bottom:20px}
.option-list{display:grid;gap:9px}
.option{
  display:grid;grid-template-columns:26px 1fr;gap:13px;align-items:start;
  text-align:left;font-family:'Inter',sans-serif;font-size:14.5px;line-height:1.55;
  background:var(--surface);border:1px solid var(--line);color:var(--ink);
  padding:13px 16px;border-radius:7px;cursor:pointer;
  transition:border-color .13s, background .13s;
}
.option:hover:not(:disabled){border-color:var(--accent);background:var(--surface-2)}
.option .opt-key{
  font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--ink-3);
  border:1px solid var(--line);border-radius:4px;width:22px;height:22px;
  display:grid;place-items:center;margin-top:1px;
}
.option:disabled{cursor:default}
.option.correct{border-color:var(--ok);background:var(--ok-bg)}
.option.correct .opt-key{border-color:var(--ok);color:var(--ok)}
.option.incorrect{border-color:var(--bad);background:var(--bad-bg)}
.option.incorrect .opt-key{border-color:var(--bad);color:var(--bad)}
.option.muted{opacity:.5}
.rationale{
  margin-top:18px;border-left:3px solid var(--ok);background:var(--surface-2);
  padding:13px 17px;border-radius:0 7px 7px 0;
}
.rationale.wrong{border-left-color:var(--bad)}
.rationale .r-verdict{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:5px;color:var(--ok)}
.rationale.wrong .r-verdict{color:var(--bad)}
.rationale p{font-size:13.5px;color:var(--ink-2);line-height:1.65}
.exam-footer{display:flex;justify-content:space-between;align-items:center;margin-top:22px;gap:12px;flex-wrap:wrap}
.exam-hint{font-size:12px;color:var(--ink-3)}
@media(hover:none){.exam-hint{display:none}}

/* ---------- results ---------- */
.result-card{background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:38px 32px;text-align:center}
.result-score{font-family:'Source Serif 4',serif;font-size:52px;font-weight:600;line-height:1;margin-bottom:6px}
.result-pct{font-family:'JetBrains Mono',monospace;font-size:13px;color:var(--ink-3);margin-bottom:18px}
.result-grade{
  display:inline-block;font-size:12px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;
  border:1px solid var(--line-2);border-radius:5px;padding:5px 14px;margin-bottom:18px;
}
.result-grade.pass{border-color:var(--ok);color:var(--ok)}
.result-grade.fail{border-color:var(--warn);color:var(--warn)}
.result-note{font-size:14.5px;color:var(--ink-2);max-width:52ch;margin:0 auto 26px;line-height:1.7}
.result-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.missed-list{margin-top:30px;text-align:left;border-top:1px solid var(--line);padding-top:22px}
.missed-list h4{font-size:13px;font-weight:600;color:var(--ink-3);letter-spacing:.05em;text-transform:uppercase;margin-bottom:12px}
.missed-item{font-size:13.5px;color:var(--ink-2);padding:9px 0;border-bottom:1px solid var(--line);line-height:1.6}
.missed-item:last-child{border-bottom:none}
.missed-item b{color:var(--ink);font-weight:600}

/* ---------- misc ---------- */
.empty-state{text-align:center;padding:56px 20px;color:var(--ink-3);font-size:14.5px}
.search-results-note{font-size:13px;color:var(--ink-3);margin-bottom:14px}

@media(max-width:820px){
  .topbar-inner{padding:0 16px}
  main{padding:26px 16px 56px}
  .theme-panel{right:16px;left:16px;width:auto}
  .stat-chip{display:none}
  .module-row{grid-template-columns:34px 1fr;gap:12px}
  .mr-right{grid-column:1/-1;padding-left:46px}
  .gl-row{grid-template-columns:1fr;gap:4px}
  .mn-link{max-width:100%}
}
