
.cv-wrap{max-width:56rem;margin:0 auto}
.cv-fig{margin:1.4rem 0;padding:1rem .7rem;background:var(--card);
  border:1px solid var(--warm-border);border-radius:14px;overflow-x:auto}
.cv-fig svg{display:block;width:100%;height:auto;min-width:560px}
.cv-figcap{font-size:.86rem;color:var(--mute);margin:.55rem .3rem 0;line-height:1.5}
.cv-ring{fill:none;stroke:var(--warm-border);stroke-width:1.1;stroke-dasharray:4 5}
.cv-ringlab{font-size:11px;fill:var(--mute)}
.cv-dot{fill:none;stroke:var(--mute);stroke-width:1.5;opacity:.8}
.cv-dot.craft{fill:#7a4a1c;stroke:#7a4a1c}
.cv-pin{fill:#8a6a1f;stroke:var(--card);stroke-width:2.5}
.cv-pinlab{font-size:13px;font-weight:700;fill:var(--ink)}
.cv-box{fill:var(--soft);stroke:var(--warm-border);stroke-width:1.2}
.cv-box.last{stroke:#7a4a1c;stroke-width:2}
.cv-boxth{font-size:14px;font-weight:700;fill:var(--ink)}
.cv-boxen{font-size:11px;fill:var(--ink)}
.cv-boxrt{font-size:10.5px;fill:var(--mute);font-style:italic}
.cv-arrow{fill:none;stroke:var(--mute);stroke-width:1.5;opacity:.7}
.cv-arrowhead{fill:var(--mute);opacity:.7}
.cv-note{font-size:11.5px;fill:#7a4a1c;font-weight:600}
.cv-spine{stroke:var(--warm-border);stroke-width:2}
.cv-tick{stroke:var(--warm-border);stroke-width:1}
.cv-year{font-size:11px;fill:var(--mute);font-weight:600}
.cv-ev{font-size:12px;fill:var(--ink)}
.cv-evdot{fill:#8a6a1f}
.cv-evdot.big{fill:#7a4a1c;stroke:var(--card);stroke-width:2}
.cv-leader{stroke:var(--warm-border);stroke-width:1}
.cv-count{background:var(--soft);border-radius:12px;padding:.85rem 1rem;margin:1.1rem 0;
  border:1px dashed var(--dashed)}
.cv-count b{font-size:1.5rem;line-height:1;color:var(--ant-dark)}
.cv-grid{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));margin:1rem 0}
.cv-card{background:var(--card);border:1px solid var(--warm-border);border-radius:12px;padding:.8rem .9rem}
.cv-card h3{margin:.1rem 0 .45rem;font-size:1rem}
.cv-card p{margin:.3rem 0;font-size:.92rem;line-height:1.55}
.cv-tbl{width:100%;border-collapse:collapse;margin:1rem 0;font-size:.92rem}
.cv-tbl th,.cv-tbl td{text-align:left;padding:.5rem .55rem;border-bottom:1px solid var(--warm-border);
  vertical-align:top}
.cv-tbl th{font-size:.8rem;letter-spacing:.04em;text-transform:uppercase;color:var(--mute)}
.cv-tbl .lat{font-style:italic;color:var(--mute);font-size:.86rem}
.cv-flag{display:inline-block;font-size:.76rem;font-weight:700;border-radius:999px;
  padding:.12rem .5rem;white-space:nowrap}
.cv-asks{list-style:none;padding:0;margin:1rem 0}
.cv-asks li{background:var(--card);border:1px solid var(--warm-border);border-left:5px solid #8a6a1f;
  border-radius:10px;padding:.7rem .9rem;margin:.5rem 0}
.cv-asks .why{display:block;font-size:.86rem;color:var(--mute);margin-top:.25rem}
.cv-road{list-style:none;padding:0;margin:1rem 0;display:grid;gap:.7rem}
.cv-road li{background:var(--card);border:1px solid var(--warm-border);border-radius:12px;
  padding:.75rem .9rem}
.cv-road .zero{color:#8f3b2c;font-weight:600;font-size:.86rem}
.cv-src{font-size:.82rem;color:var(--mute)}
.cv-src a{color:var(--mute)}
.cv-note-p{font-size:.88rem;color:var(--mute);border-top:1px solid var(--warm-border);
  margin-top:1.6rem;padding-top:.8rem;line-height:1.6}
.cv-hon{list-style:none;padding:0;margin:.8rem 0}
.cv-hon li{padding:.45rem 0;border-bottom:1px dotted var(--warm-border)}
.cv-hon .by{color:var(--mute);font-size:.88rem}
.cv-sheet{display:inline-block;padding:.45rem .8rem;border-radius:.7rem;
  border:1px solid var(--ant-dark);text-decoration:none;font-weight:600}
