:root {
  --bg:#f4f6fa; --surface:#fff; --surface-2:#eef1f7; --ink:#1a2233; --ink-soft:#4a5468;
  --ink-faint:#8791a3; --line:#dce1eb; --line-strong:#c3cad9; --accent:#3d5afe; --accent-soft:#e6eaff;
  --good:#0a9d6e; --good-soft:#dcf5ec; --warn:#d98a04; --warn-soft:#fdf0d8; --bad:#e03e52; --bad-soft:#fce4e7;
  --re:#e0731a; --th:#7c4dd6; --ma:#1f7ae0; --tp:#0d9488; --sep:#c2410c; --nm:#6d28d9;
  --shadow:0 1px 2px rgba(20,30,50,.06), 0 6px 20px rgba(20,30,50,.06);
  --radius:14px;
  --mono:ui-monospace,"SF Mono","Cascadia Mono","Roboto Mono",Menlo,Consolas,monospace;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
@media (prefers-color-scheme: dark){ :root{
  --bg:#0e131c; --surface:#171e2b; --surface-2:#1e2736; --ink:#eef2f9; --ink-soft:#b3bccd;
  --ink-faint:#77839a; --line:#29344a; --line-strong:#3a4a67; --accent:#7b8cff; --accent-soft:#23294a;
  --good:#2dd4a0; --good-soft:#10352a; --warn:#f0b429; --warn-soft:#3a2e12; --bad:#ff6b7d; --bad-soft:#3a1f26;
  --re:#ff9d4d; --th:#b48cf5; --ma:#58a7ff; --tp:#2dd4bf; --sep:#fb923c; --nm:#a78bfa;
  --shadow:0 1px 2px rgba(0,0,0,.3), 0 8px 26px rgba(0,0,0,.35);
} }
:root[data-theme="light"]{
  --bg:#f4f6fa; --surface:#fff; --surface-2:#eef1f7; --ink:#1a2233; --ink-soft:#4a5468;
  --ink-faint:#8791a3; --line:#dce1eb; --line-strong:#c3cad9; --accent:#3d5afe; --accent-soft:#e6eaff;
  --good:#0a9d6e; --good-soft:#dcf5ec; --warn:#d98a04; --warn-soft:#fdf0d8; --bad:#e03e52; --bad-soft:#fce4e7;
  --re:#e0731a; --th:#7c4dd6; --ma:#1f7ae0; --tp:#0d9488; --sep:#c2410c; --nm:#6d28d9;
  --shadow:0 1px 2px rgba(20,30,50,.06), 0 6px 20px rgba(20,30,50,.06);
}
:root[data-theme="dark"]{
  --bg:#0e131c; --surface:#171e2b; --surface-2:#1e2736; --ink:#eef2f9; --ink-soft:#b3bccd;
  --ink-faint:#77839a; --line:#29344a; --line-strong:#3a4a67; --accent:#7b8cff; --accent-soft:#23294a;
  --good:#2dd4a0; --good-soft:#10352a; --warn:#f0b429; --warn-soft:#3a2e12; --bad:#ff6b7d; --bad-soft:#3a1f26;
  --re:#ff9d4d; --th:#b48cf5; --ma:#58a7ff; --tp:#2dd4bf; --sep:#fb923c; --nm:#a78bfa;
  --shadow:0 1px 2px rgba(0,0,0,.3), 0 8px 26px rgba(0,0,0,.35);
}

:root{ --meb:#d6336c; --stat:#0891b2; --fm:#0e7490; --ht:#dc2626; --pc:#4f46e5; --saf:#b45309; --des:#15803d; }
@media (prefers-color-scheme: dark){ :root{ --meb:#f472b6; --stat:#22d3ee; --fm:#38bdf8; --ht:#f87171; --pc:#a5b4fc; --saf:#fbbf24; --des:#4ade80; } }
:root[data-theme="light"]{ --meb:#d6336c; --stat:#0891b2; --fm:#0e7490; --ht:#dc2626; --pc:#4f46e5; --saf:#b45309; --des:#15803d; }
:root[data-theme="dark"]{ --meb:#f472b6; --stat:#22d3ee; --fm:#38bdf8; --ht:#f87171; --pc:#a5b4fc; --saf:#fbbf24; --des:#4ade80; }

*{ box-sizing:border-box; }
body{ margin:0; background:var(--bg); color:var(--ink); font-family:var(--sans);
  -webkit-font-smoothing:antialiased; line-height:1.5; }
.wrap{ max-width:1120px; margin:0 auto; padding:20px 20px 80px; }
sub,sup{ line-height:0; }
.eq{ font-family:var(--mono); font-size:.95em; }

/* header */
header.top{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; padding:6px 2px 20px; }
.brand{ display:flex; flex-direction:column; gap:2px; margin-right:auto; }
.brand h1{ font-size:22px; margin:0; letter-spacing:-.02em; font-weight:700; }
.brand p{ margin:0; color:var(--ink-faint); font-size:12.5px; }
.brand .logo{ color:var(--accent); }
.stat-chips{ display:flex; gap:10px; flex-wrap:wrap; }
.chip{ background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:8px 13px;
  display:flex; flex-direction:column; box-shadow:var(--shadow); min-width:74px; }
.chip b{ font-size:18px; font-variant-numeric:tabular-nums; letter-spacing:-.01em; }
.chip span{ font-size:10.5px; text-transform:uppercase; letter-spacing:.07em; color:var(--ink-faint); }
.iconbtn{ background:var(--surface); border:1px solid var(--line); color:var(--ink-soft); border-radius:10px;
  height:38px; padding:0 14px; cursor:pointer; font-size:13px; font-weight:600; box-shadow:var(--shadow);
  display:inline-flex; align-items:center; gap:7px; }
.iconbtn:hover{ border-color:var(--line-strong); color:var(--ink); }
.iconbtn.active{ background:var(--accent-soft); color:var(--accent); border-color:var(--accent); }
.iconbtn.has-due{ border-color:var(--warn); color:var(--warn); }
.badge{ background:var(--warn); color:#fff; border-radius:99px; font-size:11px; padding:1px 7px; font-weight:700; }
.iconbtn.active .badge{ background:var(--accent); }

/* overall + goal */
.overall{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
  padding:16px 18px; box-shadow:var(--shadow); margin-bottom:16px; display:grid;
  grid-template-columns:1.6fr 1fr; gap:22px; }
@media (max-width:640px){ .overall{ grid-template-columns:1fr; gap:14px; } }
.overall .row{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:10px; }
.overall .row b{ font-size:14px; }
.overall .row span{ font-size:13px; color:var(--ink-faint); font-variant-numeric:tabular-nums; }
.goal-streak{ color:var(--warn); font-size:12px; margin-left:4px; }
.track{ height:10px; background:var(--surface-2); border-radius:99px; overflow:hidden; }
.track.thin{ height:6px; }
.track > i{ display:block; height:100%; background:linear-gradient(90deg,var(--accent),var(--good));
  border-radius:99px; transition:width .5s cubic-bezier(.4,0,.2,1); }
.goal-fill{ background:linear-gradient(90deg,var(--warn),var(--good)) !important; }

/* diagnostic CTA */
.diag-cta{ display:none; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
  background:var(--accent-soft); border:1px solid var(--accent); border-radius:var(--radius);
  padding:14px 18px; margin-bottom:16px; font-size:14px; }
.diag-cta.show{ display:flex; }

/* controls row */
.controls{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; }
.controls h2{ font-size:18px; margin:0; letter-spacing:-.01em; }

/* tabs */
.tabs{ display:flex; gap:8px; margin-bottom:18px; flex-wrap:wrap; }
.tab{ border:1px solid var(--line); background:var(--surface); color:var(--ink-soft); padding:9px 14px;
  border-radius:11px; cursor:pointer; font-weight:600; font-size:13px; display:flex; align-items:center; gap:8px; }
.tab .dot{ width:9px; height:9px; border-radius:50%; }
.tab.active{ color:var(--ink); border-color:var(--line-strong); background:var(--surface-2); }
.tab:hover{ border-color:var(--line-strong); }

/* grid */
.grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(258px,1fr)); gap:14px; }
.empty{ grid-column:1/-1; text-align:center; color:var(--ink-faint); padding:48px 20px; font-size:15px;
  background:var(--surface); border:1px dashed var(--line-strong); border-radius:var(--radius); }
.card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:16px;
  cursor:pointer; box-shadow:var(--shadow); display:flex; flex-direction:column; gap:11px;
  transition:transform .12s ease, border-color .12s ease; }
.card:hover{ transform:translateY(-2px); border-color:var(--line-strong); }
.card.locked{ opacity:.72; cursor:not-allowed; }
.card.locked:hover{ transform:none; }
.card .subj-tag{ font-size:10.5px; text-transform:uppercase; letter-spacing:.06em; font-weight:700; }
.card h3{ margin:0; font-size:15px; letter-spacing:-.01em; line-height:1.3; }
.card .meta{ display:flex; justify-content:space-between; align-items:center; margin-top:auto; }
.status{ font-size:11.5px; font-weight:700; padding:3px 9px; border-radius:99px; }
.st-0{ background:var(--surface-2); color:var(--ink-faint); }
.st-1{ background:var(--bad-soft); color:var(--bad); }
.st-2{ background:var(--warn-soft); color:var(--warn); }
.st-3{ background:var(--accent-soft); color:var(--accent); }
.st-4{ background:var(--good-soft); color:var(--good); }
.mini-track{ height:7px; background:var(--surface-2); border-radius:99px; overflow:hidden; }
.mini-track > i{ display:block; height:100%; border-radius:99px; transition:width .4s ease; }
.score-num{ font-variant-numeric:tabular-nums; font-weight:700; font-size:13px; }
.score-num .den{ color:var(--ink-faint); font-weight:500; }
.lock-note{ font-size:11.5px; color:var(--ink-faint); border-top:1px dashed var(--line); padding-top:8px; }
.card.shake{ animation:shake .4s ease; }

/* practice */
.practice{ display:none; }
.practice.show{ display:block; }
#mainView.hide{ display:none; }
.back{ background:none; border:none; color:var(--ink-soft); cursor:pointer; font-size:13.5px; font-weight:600;
  padding:6px 0; display:inline-flex; align-items:center; gap:6px; margin-bottom:8px; }
.back:hover{ color:var(--ink); }
.p-head{ display:flex; align-items:flex-start; gap:16px; flex-wrap:wrap; margin-bottom:16px; }
.p-head .titles{ margin-right:auto; }
.p-head h2{ margin:2px 0 4px; font-size:21px; letter-spacing:-.02em; }
.p-head .subj-tag{ font-size:11px; text-transform:uppercase; letter-spacing:.06em; font-weight:700; }
.p-acc{ font-size:12.5px; color:var(--ink-faint); }
.smart{ min-width:210px; }
.smart .lab{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:6px; }
.smart .lab span{ font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--ink-faint); font-weight:600; }
.smart .lab b{ font-size:22px; font-variant-numeric:tabular-nums; }
.streak{ font-size:12px; color:var(--ink-faint); margin-top:8px; min-height:16px; }
.layout{ display:grid; grid-template-columns:1.5fr 1fr; gap:18px; align-items:start; }
@media (max-width:820px){ .layout{ grid-template-columns:1fr; } .smart{ width:100%; } }

.concept{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
  padding:16px 18px; box-shadow:var(--shadow); }
.concept h4{ margin:0 0 8px; font-size:12px; text-transform:uppercase; letter-spacing:.07em; color:var(--ink-faint); }
.concept .body{ font-size:14px; color:var(--ink-soft); }
.concept .body p{ margin:0 0 8px; }
.formula{ background:var(--surface-2); border:1px solid var(--line); border-radius:9px; padding:10px 12px;
  font-family:var(--mono); font-size:13px; margin:8px 0; overflow-x:auto; color:var(--ink); line-height:1.7; }

.qcard{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:20px; box-shadow:var(--shadow); }
.qtext{ font-size:16px; line-height:1.6; margin-bottom:12px; }
.given-list{ list-style:none; padding:0; margin:0 0 18px; display:flex; flex-direction:column; gap:3px; }
.given-list li{ font-family:var(--mono); font-size:13.5px; color:var(--ink-soft); }
.answer-row{ display:flex; gap:10px; align-items:stretch; flex-wrap:wrap; }
input.ans{ flex:1; min-width:140px; font-size:16px; padding:11px 14px; border-radius:10px;
  border:1.5px solid var(--line-strong); background:var(--surface-2); color:var(--ink); font-family:var(--mono); }
input.ans:focus{ outline:none; border-color:var(--accent); }
.unit{ align-self:center; font-family:var(--mono); color:var(--ink-faint); font-size:14px; }
.btn{ background:var(--accent); color:#fff; border:none; border-radius:10px; padding:0 22px; height:46px;
  font-size:15px; font-weight:700; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; }
.btn:hover{ filter:brightness(1.06); }
.btn.small{ height:38px; padding:0 16px; font-size:13.5px; }
.btn:disabled{ opacity:.5; cursor:default; }
.choices{ display:flex; flex-direction:column; gap:10px; }
.choice{ text-align:left; background:var(--surface-2); border:1.5px solid var(--line); border-radius:10px;
  padding:12px 15px; cursor:pointer; font-size:15px; font-family:var(--mono); color:var(--ink); }
.choice:hover{ border-color:var(--line-strong); }
.choice.right{ border-color:var(--good); background:var(--good-soft); }
.choice.wrong{ border-color:var(--bad); background:var(--bad-soft); }

.feedback{ margin-top:16px; border-radius:11px; padding:14px 16px; font-size:14px; display:none; }
.feedback.show{ display:block; }
.feedback.ok{ background:var(--good-soft); border:1px solid var(--good); }
.feedback.no{ background:var(--bad-soft); border:1px solid var(--bad); }
.feedback .fb-head{ font-weight:700; display:flex; align-items:center; gap:8px; margin-bottom:6px; }
.feedback.ok .fb-head{ color:var(--good); }
.feedback.no .fb-head{ color:var(--bad); }
.solution{ margin-top:8px; color:var(--ink-soft); font-size:13.5px; line-height:1.65; }
.solution .formula{ margin:6px 0; }
.next-row{ display:flex; gap:10px; margin-top:16px; }

/* modal */
.modal-overlay{ position:fixed; inset:0; background:rgba(10,15,25,.55); display:none;
  align-items:center; justify-content:center; padding:20px; z-index:50; }
.modal-overlay.show{ display:flex; }
.modal{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow);
  width:100%; max-width:560px; padding:20px; }
.modal-head{ display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:10px; }
.modal-head .subj-tag{ font-size:11px; text-transform:uppercase; letter-spacing:.06em; font-weight:700; }
.diag-progress{ font-size:13px; color:var(--ink-faint); margin-top:2px; }
.modal-body{ margin:16px 0; }
.modal-foot{ display:flex; justify-content:flex-end; }

.footnote{ text-align:center; color:var(--ink-faint); font-size:12px; margin-top:40px; line-height:1.7; }

/* depth chips */
.card-top{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
.depth-chip{ font-size:10.5px; font-weight:700; border:1px solid var(--ink-faint); border-radius:6px; padding:1px 6px;
  letter-spacing:.02em; white-space:nowrap; }
.p-sub{ display:flex; align-items:center; gap:10px; margin-top:2px; }

/* resources */
.concept h4{ margin:16px 0 8px; }
.concept h4:first-child{ margin-top:0; }
.res-list{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:12px; }
.res-list li{ display:flex; flex-direction:column; gap:2px; }
.res-list a{ color:var(--accent); text-decoration:none; font-size:13.5px; font-weight:600; display:flex; align-items:center; gap:8px; line-height:1.3; }
.res-list a:hover{ text-decoration:underline; }
.res-d{ font-size:12px; color:var(--ink-faint); padding-left:2px; }
.res-k{ font-size:9.5px; text-transform:uppercase; letter-spacing:.05em; font-weight:700; border-radius:5px; padding:1px 5px; flex:none; }
.res-video{ background:var(--bad-soft); color:var(--bad); }
.res-reading{ background:var(--accent-soft); color:var(--accent); }
.res-problems{ background:var(--good-soft); color:var(--good); }

/* multi-step problems */
.scenario{ font-size:15.5px; line-height:1.6; background:var(--surface-2); border:1px solid var(--line);
  border-left:3px solid var(--accent); border-radius:10px; padding:14px 16px; margin-bottom:14px; }
.scenario-tag{ display:inline-block; font-size:10.5px; text-transform:uppercase; letter-spacing:.06em; font-weight:700;
  color:var(--accent); margin-right:8px; }
.scenario .formula{ margin-top:10px; }
.steps-wrap{ display:flex; flex-direction:column; gap:12px; margin-top:4px; }
.step-box{ border:1px solid var(--line); border-radius:11px; padding:14px 15px; background:var(--surface); }
.step-box.active{ border-color:var(--line-strong); box-shadow:var(--shadow); }
.step-box.done-ok{ border-color:var(--good); background:var(--good-soft); }
.step-box.done-no{ border-color:var(--bad); background:var(--bad-soft); }
.step-progress{ font-size:10.5px; text-transform:uppercase; letter-spacing:.06em; font-weight:700; color:var(--ink-faint); margin-bottom:6px; }
.step-prompt{ font-size:15px; line-height:1.55; margin-bottom:10px; }
.hint-btn{ background:none; border:1px dashed var(--line-strong); color:var(--ink-soft); border-radius:8px;
  padding:4px 10px; font-size:12px; cursor:pointer; margin-bottom:8px; }
.hint-btn:hover{ color:var(--ink); }
.hint{ font-family:var(--mono); font-size:12.5px; color:var(--ink-soft); background:var(--surface-2);
  border-radius:8px; padding:8px 10px; margin-bottom:10px; overflow-x:auto; }
.step-fb{ display:none; margin-top:10px; font-size:13px; line-height:1.55; }
.step-fb.show{ display:block; }
.step-fb.ok{ color:var(--ink-soft); }
.step-fb.no{ color:var(--ink-soft); }
.step-fb b{ margin-right:4px; }
.step-fb .cont-btn{ display:block; margin-top:12px; height:40px; }

/* wide modal + standards table */
.modal.wide{ max-width:760px; max-height:86vh; overflow-y:auto; }
.std-tbl{ width:100%; border-collapse:collapse; font-size:13px; }
.std-tbl th,.std-tbl td{ text-align:left; padding:8px 10px; border-bottom:1px solid var(--line); vertical-align:top; }
.std-tbl th{ font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-faint); }
.std-tbl td.num,.std-tbl th.num{ text-align:center; font-variant-numeric:tabular-nums; white-space:nowrap; }
.rub-ex{ color:var(--ink-faint); }
.tbl-scroll{ overflow-x:auto; margin-bottom:6px; }
.cov{ display:inline-flex; align-items:center; gap:6px; font-size:12.5px; white-space:nowrap; }
.cov i{ width:9px; height:9px; border-radius:50%; display:inline-block; }
#std-body h5{ font-size:13px; margin:18px 0 8px; letter-spacing:-.01em; }
#std-body h5:first-child{ margin-top:4px; }
.miss-list{ margin:0; padding-left:18px; font-size:13px; color:var(--ink-soft); line-height:1.6; }
.miss-list li{ margin-bottom:5px; }
.std-p,.std-src{ font-size:13px; color:var(--ink-soft); line-height:1.6; }
.std-src a{ color:var(--accent); text-decoration:none; }
.std-src a:hover{ text-decoration:underline; }

/* account / sync chip */
.account{ display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--ink-soft);
  background:var(--surface); border:1px solid var(--line); border-radius:11px; padding:7px 13px;
  box-shadow:var(--shadow); margin:-6px 2px 18px; width:fit-content; }
.sync-dot{ width:9px; height:9px; border-radius:50%; background:var(--ink-faint); flex:none; }
.account .acct-email{ color:var(--ink); font-weight:600; }
.account .acct-email:not(:empty)::before{ content:"·"; color:var(--ink-faint); font-weight:400; margin-right:8px; }
.acct-signout{ color:var(--accent); text-decoration:none; font-weight:600; margin-left:2px; }
.acct-signout::before{ content:"·"; color:var(--ink-faint); font-weight:400; margin-right:8px; }
.acct-signout:hover{ text-decoration:underline; }

/* mode switch */
.mode-switch{ display:inline-flex; background:var(--surface-2); border:1px solid var(--line); border-radius:11px; padding:3px; gap:3px; }
.seg{ border:none; background:none; color:var(--ink-soft); font-weight:600; font-size:13px; padding:7px 14px; border-radius:9px; cursor:pointer; }
.seg:hover{ color:var(--ink); }
.seg.active{ background:var(--surface); color:var(--ink); box-shadow:var(--shadow); }
.browse-title{ font-size:18px; margin:0 0 14px; letter-spacing:-.01em; }
[hidden]{ display:none !important; }

/* path hero */
.path-hero{ background:linear-gradient(135deg, var(--accent-soft), var(--surface)); border:1px solid var(--line-strong);
  border-radius:var(--radius); padding:20px 22px; box-shadow:var(--shadow); margin-bottom:22px; }
.hero-label{ font-size:11.5px; text-transform:uppercase; letter-spacing:.07em; font-weight:700; color:var(--ink-faint); margin-bottom:8px; }
.hero-skill{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-bottom:14px; }
.hero-skill .subj-tag{ font-size:11px; text-transform:uppercase; letter-spacing:.06em; font-weight:700; }
.hero-skill h3{ margin:0; font-size:20px; letter-spacing:-.02em; width:100%; }
.hero-prog{ font-size:12.5px; color:var(--ink-faint); margin-top:12px; font-variant-numeric:tabular-nums; }

/* path units */
.unit{ margin-bottom:26px; }
.unit-head{ display:flex; align-items:flex-start; gap:12px; margin-bottom:12px; }
.unit-num{ flex:none; width:30px; height:30px; border-radius:9px; color:#fff; font-weight:800; font-size:15px;
  display:flex; align-items:center; justify-content:center; }
.unit-titles{ margin-right:auto; }
.unit-titles h4{ margin:2px 0 2px; font-size:16px; letter-spacing:-.01em; }
.unit-titles p{ margin:0; font-size:12.5px; color:var(--ink-faint); max-width:60ch; line-height:1.5; }
.unit-prog{ font-size:13px; font-weight:700; color:var(--ink-soft); font-variant-numeric:tabular-nums; }

/* path nodes (vertical stepper) */
.nodes{ display:flex; flex-direction:column; gap:8px; padding-left:14px; border-left:2px solid var(--line); margin-left:15px; }
.node{ display:flex; align-items:center; gap:12px; text-align:left; background:var(--surface); border:1px solid var(--line);
  border-radius:11px; padding:11px 14px; cursor:pointer; position:relative; box-shadow:var(--shadow); width:100%; }
.node:hover{ border-color:var(--line-strong); }
.node-dot{ flex:none; width:24px; height:24px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size:12px; font-weight:800; border:2px solid var(--line-strong); background:var(--surface-2); color:var(--ink-faint); margin-left:-27px; }
.node-mastered .node-dot{ background:var(--good); border-color:var(--good); color:#fff; }
.node-current .node-dot{ background:var(--accent); border-color:var(--accent); color:#fff; animation:pulse 1.8s ease-in-out infinite; }
.node-locked{ opacity:.6; cursor:not-allowed; }
.node-locked:hover{ border-color:var(--line); }
.node-current{ border-color:var(--accent); box-shadow:0 0 0 2px var(--accent-soft), var(--shadow); }
.node-body{ display:flex; flex-direction:column; gap:6px; flex:1; min-width:0; }
.node-name{ font-size:14.5px; font-weight:600; letter-spacing:-.01em; }
.node-meta{ display:flex; align-items:center; gap:10px; }
.depth-chip.sm{ font-size:9.5px; padding:0 5px; }
.node-track{ flex:1; height:6px; background:var(--surface-2); border-radius:99px; overflow:hidden; max-width:200px; }
.node-track > i{ display:block; height:100%; border-radius:99px; }
.node-score{ font-size:12px; font-weight:700; color:var(--ink-faint); font-variant-numeric:tabular-nums; min-width:22px; text-align:right; }
.node.shake{ animation:shake .4s ease; }
@keyframes pulse{ 0%,100%{ box-shadow:0 0 0 0 var(--accent-soft); } 50%{ box-shadow:0 0 0 5px var(--accent-soft); } }

@media (prefers-reduced-motion:reduce){ *{ transition:none !important; animation:none !important; } }
.flash-ok{ animation:fok .5s ease; }
.flash-no{ animation:fno .4s ease; }
@keyframes fok{ 0%{ box-shadow:0 0 0 3px var(--good); } 100%{ box-shadow:var(--shadow); } }
@keyframes fno{ 0%,60%{ transform:translateX(0);} 15%{ transform:translateX(-6px);} 30%{ transform:translateX(6px);} 45%{ transform:translateX(-4px);} }
@keyframes shake{ 0%,60%{ transform:translateX(0);} 15%{ transform:translateX(-5px);} 30%{ transform:translateX(5px);} 45%{ transform:translateX(-3px);} }
