.jm-tabs { display: flex; flex-wrap: wrap; gap: 10px; margin: 20px 0; }
.jm-tabs a { border: 1px solid var(--line); border-radius: 8px; padding: 10px 14px; color: var(--fg); text-decoration: none; }
.jm-tabs a[aria-current] { border-color: var(--a); background: var(--ok-soft); font-weight: 700; }
#jm-map { font-size: 16px; overflow-wrap: anywhere; }
#jm-map [hidden], #ws-root[hidden] { display: none; }
#jm-map p, #jm-map li, #jm-map a, #jm-map summary, #jm-map span { font-size: 14px; }
#jm-map h2 { font-size: 22px; }
.jm-legend { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.jm-good { color: var(--a); }
.jm-weak { color: var(--no); }
.jm-strand { border: 1px solid var(--line); border-radius: 12px; margin: 18px 0; background: var(--card); }
.jm-strand > summary { padding: 16px; cursor: pointer; font-weight: 700; }
.jm-strand > p { padding: 0 16px; color: var(--muted); }
.jm-nodes { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 12px; padding: 0 16px 16px; }
.jm-node { border: 1px solid var(--line); border-left: 4px solid var(--muted); border-radius: 8px; padding: 12px; min-width: 0; background: var(--bg); scroll-margin-top: 80px; }
.jm-node.st-mastered { border-left-color: var(--a); }
.jm-node.st-weak { border-left-color: var(--no); }
.jm-node.pl-basic { border-left-color: var(--a); border-left-style: dashed; }
.jm-node.pl-rusty { border-left-color: var(--b); border-left-style: dashed; }
.jm-node.pl-not-yet { border-left-color: var(--no); border-left-style: dashed; }
.jm-placement { border: 1px solid var(--line); border-radius: 12px; background: var(--card); padding: 12px 16px; margin: 14px 0; }
.jm-placement h3 { font-size: 16px; margin: 0 0 4px; }
.jm-placement h4 { font-size: 15px; margin: 14px 0 4px; }
.jm-placement a { color: var(--a); font-weight: 600; }
.jm-placement ul { list-style: none; margin: 0; padding: 0; }
.jm-placement li { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; border-top: 1px solid var(--line); }
.jm-pl-state { flex: none; font-weight: 700; }
.jm-pl-basic { color: var(--a); }
.jm-pl-rusty { color: var(--b); }
.jm-pl-not-yet { color: var(--no); }
.jm-pl-not-learned, .jm-pl-untested { color: var(--muted); }
.jm-node:target, .jm-node.jm-selected { outline: 3px solid var(--a); outline-offset: 2px; }
.jm-node > a { display: block; font-weight: 700; line-height: 1.8; color: var(--a); }
.jm-node p { margin: 4px 0; }
.jm-node summary { cursor: pointer; padding: 8px 0; }
.jm-node ul { margin: 4px 0 10px; padding-left: 20px; }
.jm-node li { margin: 6px 0; }
.jm-node a { color: var(--a); }
#jm-map a:focus-visible, #jm-map summary:focus-visible, .jm-tabs a:focus-visible { outline: 3px solid var(--a); outline-offset: 3px; }
@media print { .jm-tabs { display: none; } .jm-node { break-inside: avoid; } }
