/* kit-ext6.css — the marks of the Risk page's fraud upgrade (25 Oct 2026; KIT.md 12.28 S.bubbles, 12.29 S.clusterMap with its groups and drill modes, 12.30 S.filterChips, 12.31 the log axis of S.swarm; model/SIMULATION-PAGE.md 6.4; the dark theme after Dan's crypto references, BUILD-BRIEF rows 107 and 108). Load after kit.css, kit-ext.css .. kit-ext5.css,
   before app.css. Classes carry the e- prefix; hues are the --hue-* tokens of kit.css 6.1; text sits on the .sx-svg rules of kit-ext.css (13 px, 12 px for .tick), so every label reads 12 px or more.
   The two base rules of kit-ext5.css are said again so the file stands alone. Motion: a stroke / opacity transition of 100 ms, switched off under prefers-reduced-motion. */
.e-vz{min-width:0}
.e-vz .e-svg{overflow:visible}
.e-vz-note{margin:6px 0 0;font-size:var(--fs-micro);color:var(--color-text-muted)}

/* the band hues, as classes on a mark or a legend dot */
.e-bubbles .h-rose,.e-cmap .h-rose{fill:var(--hue-rose)}
.e-bubbles .h-amber,.e-cmap .h-amber{fill:var(--hue-amber)}
.e-bubbles .h-slate,.e-cmap .h-slate{fill:var(--hue-slate)}
.e-bubbles .h-blue,.e-cmap .h-blue{fill:var(--hue-blue)}
.e-bubbles .h-teal,.e-cmap .h-teal{fill:var(--hue-teal)}
.e-bubbles .h-ink,.e-cmap .h-ink{fill:var(--hue-ink)}
.e-bb-key i.h-rose,.e-cm-key i.h-rose{background:var(--hue-rose)}
.e-bb-key i.h-amber,.e-cm-key i.h-amber{background:var(--hue-amber)}
.e-bb-key i.h-slate,.e-cm-key i.h-slate{background:var(--hue-slate)}
.e-bb-key i.h-blue,.e-cm-key i.h-blue{background:var(--hue-blue)}
.e-bb-key i.h-teal,.e-cm-key i.h-teal{background:var(--hue-teal)}
.e-bb-key i.h-ink,.e-cm-key i.h-ink{background:var(--hue-ink)}

/* ---------- S.bubbles ---------- */
.e-bubbles .e-bb-cell{fill:transparent;transition:fill var(--dur-press,100ms) var(--ease-out,ease-out)}
.e-bubbles .e-bb-cell.on{fill:var(--color-selected-row,var(--color-surface-hover))}
.e-bubbles .e-bb-chip{fill:none;stroke:var(--color-rule-hover);stroke-width:1.2;stroke-dasharray:4 3}
.e-bubbles .e-bb-under{fill:var(--color-text-muted)}
.e-bubbles .e-bb-n{font-weight:600}
.e-bubbles .e-bb-lab{fill:var(--color-text-secondary)}
.e-bubbles .e-bb-b{stroke:var(--color-surface);stroke-width:.6;opacity:.9;cursor:pointer;transition:opacity var(--dur-press,100ms) var(--ease-out,ease-out)}
.e-bubbles .e-bb-b.dim{opacity:.22}
.e-bubbles .e-bb-b.clip{stroke:var(--hue-ink);stroke-width:1.4;opacity:1}
.e-bubbles .e-bb-ring{fill:none;stroke:var(--hue-ink);stroke-width:1.6;pointer-events:none}
.e-bubbles .e-bb-ring.sel{stroke-width:2.4}
.e-bubbles .e-bb-brush{fill:var(--hue-blue);fill-opacity:.1;stroke:var(--hue-blue);stroke-width:1;pointer-events:none}
.e-bubbles .e-bb-col{cursor:pointer}
.e-bb-key{display:flex;flex-wrap:wrap;align-items:center;gap:6px 22px;margin-top:6px;font-size:var(--fs-micro);color:var(--color-text-secondary)}
.e-bb-key .e-bb-bands{display:inline-flex;flex-wrap:wrap;gap:4px 14px}
.e-bb-key .e-bb-bands span{display:inline-flex;align-items:center}
.e-bb-key i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}
.e-bb-key .e-bb-scalew{display:inline-flex;flex-wrap:wrap;align-items:center;gap:2px 10px}
.e-bb-key .e-bb-scalew.eq{flex-wrap:nowrap;align-items:flex-start;flex:1 1 260px}
.e-bb-key .e-bb-scalew.eq .e-bb-scale{margin-top:1px}
.e-bb-key .e-bb-scale{overflow:visible;flex:none}
.e-bb-key .e-bb-scale text{font-size:var(--fs-micro);fill:var(--color-text-secondary)}
.e-bb-key .e-bb-ref{fill:var(--color-surface-sunken);stroke:var(--hue-slate);stroke-width:1.2}
.e-bb-key .e-bb-floorw{color:var(--color-text-muted)}
.e-bb-key .e-bb-floorw:empty{display:none}

/* ---------- S.clusterMap ---------- */
.e-cmap .e-cm-totals{margin:0 0 var(--space-2);font-size:var(--fs-small);color:var(--color-text-secondary);font-variant-numeric:tabular-nums}
.e-cmap .e-cm-halo{fill:transparent;stroke:none;transition:fill var(--dur-press,100ms) var(--ease-out,ease-out)}
.e-cmap .e-cm-hub.on .e-cm-halo{fill:var(--color-selected-row,var(--color-surface-hover))}
.e-cmap .e-cm-hub.sel .e-cm-halo{fill:var(--color-selected-row,var(--color-surface-hover));stroke:var(--hue-ink);stroke-width:1.2}
.e-cmap .e-cm-ring{fill:none;stroke:var(--color-rule-hover);stroke-width:1.1}
.e-cmap .e-cm-hub.ring .e-cm-ring,.e-cm-key .e-cm-ring.ring-leg{stroke:var(--hue-rose);stroke-width:1.8}
.e-cmap .e-cm-centre{fill:var(--color-surface);stroke:var(--hue-slate);stroke-width:1.4}
.e-cmap .e-cm-chip,.e-cm-key .e-cm-chip{fill:none;stroke:var(--color-rule-hover);stroke-width:1.2;stroke-dasharray:4 3}
.e-cmap .e-cm-hub.chip.on .e-cm-chip,.e-cmap .e-cm-hub.chip.sel .e-cm-chip{stroke:var(--hue-ink)}
.e-cmap .e-cm-edge,.e-cm-key .e-cm-edge{stroke:var(--color-rule-hover);stroke-width:1;fill:none}
.e-cmap .e-cm-edge.sh,.e-cm-key .e-cm-edge.sh{stroke:var(--hue-slate);stroke-width:1.4}
.e-cmap .e-cm-node{stroke:var(--color-surface);stroke-width:1.3;cursor:pointer}
.e-cmap .e-cm-node.on{stroke:var(--hue-ink);stroke-width:2}
.e-cmap .e-cm-cur{fill:none;stroke:var(--hue-ink);stroke-width:1.6;pointer-events:none;display:none}
.e-cmap .e-cm-hit{fill:transparent;cursor:pointer}
.e-cmap .e-cm-cap{fill:var(--color-text-secondary)}
.e-cmap .e-cm-cap.under{fill:var(--color-text-muted)}
.e-cmap.small .e-cm-halo{stroke:none}
.e-cm-key{display:flex;flex-wrap:wrap;align-items:center;gap:6px 20px;margin-top:6px;font-size:var(--fs-micro);color:var(--color-text-secondary)}
.e-cm-key .e-cm-bands{display:inline-flex;flex-wrap:wrap;gap:4px 14px}
.e-cm-key .e-cm-bands span,.e-cm-key .e-cm-lg{display:inline-flex;align-items:center;gap:6px}
.e-cm-key i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}
.e-cm-key .e-cm-lgs{flex:none;overflow:visible}

/* ================================================================
   The dark theme (cfg.theme 'dark'): the ink field of the two dark elements of the Risk page, text at 100 % and 70 % white (17.3:1 and 9.0:1 on it; 12 px text needs 4.5:1), the selection
   blue #93b1ea (8.0:1), the band tints of the sketch. Glow is an SVG blur drawn by the mark (cfg.glow), on the dark field only.
   ================================================================ */
.e-vz.e-dk{--dk-field:#141b24;--dk-t1:#fff;--dk-t2:#ffffffb3;--dk-sel:#93b1ea;--dk-rule:#ffffff1f;background:var(--dk-field);color:var(--dk-t1);border-radius:var(--radius-m);padding:var(--space-4)}
.e-vz.e-dk.bare{background:none;padding:0;border-radius:0}
.e-dk .sx-title{color:var(--dk-t1)}
.e-dk .sx-svg text,.e-dk .sx-svg .tick,.e-dk .sx-svg .tick.ax{fill:var(--dk-t2)}
.e-dk .sx-svg .fig{fill:var(--dk-t1)}
.e-dk .sx-svg .sx-axis{stroke:#ffffff29}
.e-dk .sx-readout,.e-dk .sx-readout.idle,.e-dk .sx-readout .sep,.e-dk .sx-readout .pin{color:var(--dk-t2)}
.e-dk .sx-readout b,.e-dk .sx-readout .fig{color:var(--dk-t1)}
.e-dk .e-vz-note{color:var(--dk-t2)}
.e-dk .sx-svg:focus-visible{outline-color:var(--dk-sel)}

/* ---------- S.bubbles: the pack layout, the marks, the labels inside, the line of outline chips ---------- */
.e-bubbles .e-bb-b.hollow{fill:none;stroke-width:.9;stroke-opacity:.8;opacity:1}
.e-bubbles .e-bb-b.lt{fill:#a9c1f2;stroke:#a9c1f2}
.e-bubbles .e-bb-mark{fill:none;stroke:var(--hue-ink);stroke-width:.9;pointer-events:none}
.e-bubbles .e-bb-lbl{font-size:12px;font-weight:700;fill:var(--color-text);pointer-events:none}
.e-bubbles .e-bb-lbl.two{font-weight:400;fill:var(--color-text-secondary)}
.e-bb-key i.lt{background:#a9c1f2}
.e-bb-key i.e-bb-mk,.e-bb-key i.e-bb-hl,.e-bb-key i.e-bb-sl{background:none;border:1.2px solid var(--hue-ink)}
.e-bb-key .e-bb-marksw{gap:4px 14px}
.e-bb-underline{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:6px;font-size:var(--fs-micro);color:var(--color-text-secondary)}
.e-bb-uchip{font:inherit;font-size:12px;height:22px;padding:0 9px;border:1px dashed var(--color-rule-hover);border-radius:var(--radius-pill);background:none;color:var(--color-text-secondary);cursor:pointer}
.e-bb-uchip:hover{border-color:var(--hue-ink);color:var(--color-text)}
.e-bb-uchip:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
.e-dk .e-bb-cell.on{fill:#ffffff14}
.e-dk .e-bb-chip{stroke:#ffffff3d}
.e-dk .e-bb-under{fill:var(--dk-t2)}
.e-dk .e-bb-lab{fill:var(--dk-t1);font-weight:600}
.e-dk .e-bb-n{fill:var(--dk-t2);font-weight:400}
.e-dk .e-bb-b{stroke-width:1;opacity:1}
.e-dk .e-bb-b.h-blue{fill:var(--hue-blue);fill-opacity:.5;stroke:#93b1ea}
.e-dk .e-bb-b.h-slate{fill:#d5dbe4;fill-opacity:.36;stroke:#d5dbe4}
.e-dk .e-bb-b.h-amber{fill:var(--hue-amber);fill-opacity:.55;stroke:#f7d9a8}
.e-dk .e-bb-b.h-rose{fill:var(--hue-rose);fill-opacity:.6;stroke:#f6c3cc}
.e-dk .e-bb-b.h-teal{fill:var(--hue-teal);fill-opacity:.55;stroke:#b6e6d0}
.e-dk .e-bb-b.hollow{fill:none;fill-opacity:0}
.e-dk .e-bb-b.dim{opacity:.22}
.e-dk .e-bb-b.clip{stroke:#fff;stroke-width:1.6}
.e-dk .e-bb-mark{stroke:#fff;stroke-opacity:.85}
.e-dk .e-bb-lbl{fill:var(--dk-t1)}
.e-dk .e-bb-lbl.two{fill:var(--dk-t2)}
.e-dk .e-bb-ring{stroke:var(--dk-sel)}
.e-dk .e-bb-brush{fill:var(--dk-sel);stroke:var(--dk-sel)}
.e-dk .e-bb-key,.e-dk .e-bb-underline,.e-dk .e-bb-key .e-bb-floorw{color:var(--dk-t2)}
.e-dk .e-bb-key .e-bb-scale text{fill:var(--dk-t2)}
.e-dk .e-bb-key .e-bb-ref{fill:none;stroke:var(--dk-t2)}
.e-dk .e-bb-key i.h-blue{background:#2563eb80;box-shadow:0 0 0 1px #93b1ea}
.e-dk .e-bb-key i.h-slate{background:#d5dbe45c;box-shadow:0 0 0 1px #d5dbe4}
.e-dk .e-bb-key i.h-amber{background:#e08c1c8c;box-shadow:0 0 0 1px #f7d9a8}
.e-dk .e-bb-key i.h-rose{background:#dc3d5599;box-shadow:0 0 0 1px #f6c3cc}
.e-dk .e-bb-key i.e-bb-mk,.e-dk .e-bb-key i.e-bb-hl{border-color:#fff;background:none;box-shadow:none}
.e-dk .e-bb-key i.e-bb-sl{border-color:var(--dk-sel);background:none;box-shadow:none}
.e-dk .e-bb-uchip{border-color:#ffffff3d;color:var(--dk-t2)}
.e-dk .e-bb-uchip:hover{border-color:#fff;color:#fff}
.e-dk .e-bb-uchip:focus-visible{outline-color:var(--dk-sel)}

/* ---------- S.clusterMap on the dark field (mode 'clusters') ---------- */
.e-dk.e-cmap .e-cm-hub.on .e-cm-halo{fill:#ffffff14}
.e-dk.e-cmap .e-cm-hub.sel .e-cm-halo{fill:#ffffff14;stroke:var(--dk-sel)}
.e-dk.e-cmap .e-cm-ring{stroke:#ffffff40}
.e-dk.e-cmap .e-cm-centre{fill:var(--dk-field);stroke:var(--dk-t2)}
.e-dk.e-cmap .e-cm-chip,.e-dk .e-cm-key .e-cm-chip{stroke:var(--dk-t2)}
.e-dk.e-cmap .e-cm-edge,.e-dk .e-cm-key .e-cm-edge{stroke:#ffffff59}
.e-dk.e-cmap .e-cm-edge.sh,.e-dk .e-cm-key .e-cm-edge.sh{stroke:#fff;stroke-opacity:.85}
.e-dk.e-cmap .e-cm-node{stroke:var(--dk-field)}
.e-dk.e-cmap .e-cm-node.on{stroke:var(--dk-sel)}
.e-dk.e-cmap .h-slate{fill:#d5dbe4}
.e-dk.e-cmap .e-cm-cur{stroke:var(--dk-sel)}
.e-dk.e-cmap .e-cm-cap,.e-dk.e-cmap .e-cm-cap.under{fill:var(--dk-t2)}
.e-dk .e-cm-totals{color:var(--dk-t2)}
.e-dk .e-cm-key,.e-dk .e-cm-key .e-cm-lg{color:var(--dk-t2)}
.e-dk .e-cm-key i.h-blue{background:#2563eb80;box-shadow:0 0 0 1px #93b1ea}
.e-dk .e-cm-key i.h-slate{background:#d5dbe45c;box-shadow:0 0 0 1px #d5dbe4}
.e-dk .e-cm-key i.h-amber{background:#e08c1c8c;box-shadow:0 0 0 1px #f7d9a8}
.e-dk .e-cm-key i.h-rose{background:#dc3d5599;box-shadow:0 0 0 1px #f6c3cc}

/* ---------- S.clusterMap mode 'groups': the groups as bubbles, linked by the clusters they share ---------- */
.e-cmap .e-cm-gc{stroke-width:1.3;cursor:pointer;transition:stroke var(--dur-press,100ms) var(--ease-out,ease-out)}
.e-cmap.groups .e-cm-gc.h-blue{fill:var(--hue-blue);fill-opacity:.28;stroke:var(--hue-blue)}
.e-cmap.groups .e-cm-gc.h-slate{fill:var(--hue-slate);fill-opacity:.2;stroke:var(--hue-slate)}
.e-cmap.groups .e-cm-gc.h-amber{fill:var(--hue-amber);fill-opacity:.3;stroke:var(--hue-amber)}
.e-cmap.groups .e-cm-gc.h-rose{fill:var(--hue-rose);fill-opacity:.3;stroke:var(--hue-rose)}
.e-cmap.groups .e-cm-gc.under,.e-cmap .e-cm-nb.under,.e-cmap .e-cm-mb.under{fill:none;stroke:var(--color-text-muted);stroke-width:1.1;stroke-dasharray:2.5 2}
.e-cmap .e-cm-gc.top,.e-cmap .e-cm-nb.top,.e-cmap .e-cm-mb.top{stroke:var(--hue-rose);stroke-width:2.2}
.e-cmap .e-cm-gc.on,.e-cmap .e-cm-gc.sel{stroke-width:2}
.e-dk.e-cmap.groups .e-cm-gc.h-blue{fill:#2563eb;fill-opacity:.4;stroke:#93b1ea}
.e-dk.e-cmap.groups .e-cm-gc.h-slate{fill:#d5dbe4;fill-opacity:.29;stroke:#d5dbe4}
.e-dk.e-cmap.groups .e-cm-gc.h-amber{fill:#e08c1c;fill-opacity:.44;stroke:#f7d9a8}
.e-dk.e-cmap.groups .e-cm-gc.h-rose{fill:#dc3d55;fill-opacity:.48;stroke:#f6c3cc}
.e-dk.e-cmap.groups .e-cm-gc.under{stroke:var(--dk-t2)}
.e-dk.e-cmap .e-cm-gc.top,.e-dk.e-cmap .e-cm-nb.top,.e-dk.e-cmap .e-cm-mb.top{stroke:var(--hue-rose)}
.e-cmap .e-cm-wn{font-size:13px;font-weight:700;fill:var(--color-text);pointer-events:none}
.e-cmap .e-cm-wn.big{font-size:14px}
.e-cmap .e-cm-ws{font-size:12px;fill:var(--color-text-secondary);pointer-events:none}
.e-cmap .e-cm-th{paint-order:stroke;stroke:var(--color-surface);stroke-opacity:.7;stroke-width:2.5;stroke-linejoin:round}
.e-dk.e-cmap .e-cm-wn{fill:var(--dk-t1)}
.e-dk.e-cmap .e-cm-ws{fill:#ffffffcc}
.e-dk.e-cmap .e-cm-th{stroke:var(--dk-field);stroke-opacity:.8}
.e-cmap .e-cm-lnk{stroke:var(--hue-ink);stroke-opacity:.2;stroke-linecap:round;fill:none;stroke-width:var(--w,1.3px)}
.e-cmap .e-cm-lnk.on{stroke:var(--hue-blue);stroke-opacity:.85}
.e-dk.e-cmap .e-cm-lnk{stroke:#fff;stroke-opacity:.2}
.e-dk.e-cmap .e-cm-lnk.on{stroke:var(--dk-sel);stroke-opacity:.85}
.e-cmap .e-cm-tagr{fill:var(--color-surface);stroke:var(--hue-blue)}
.e-cmap .e-cm-tagt{fill:var(--hue-blue);font-size:12px;font-weight:700;pointer-events:none}
.e-dk.e-cmap .e-cm-tagr{fill:var(--dk-field);stroke:var(--dk-sel)}
.e-dk.e-cmap .e-cm-tagt{fill:var(--dk-sel)}
.e-cmap .e-cm-openring{fill:none;stroke:var(--hue-blue);stroke-width:2.4;pointer-events:none}
.e-dk.e-cmap .e-cm-openring{stroke:var(--dk-sel)}
.e-cm-key .e-cm-lgtop{fill:none;stroke:var(--hue-rose);stroke-width:2}
.e-cm-key .e-cm-lgl{stroke:var(--color-text-secondary);stroke-opacity:.6}
.e-dk .e-cm-key .e-cm-lgl{stroke:#fff}

/* ---------- S.clusterMap mode 'drill': one group's own field, the groups it reaches around the edge, the strip of all groups ---------- */
.e-cmap .e-cm-clu{fill:transparent;cursor:pointer}
.e-cmap .e-cm-clring{fill:none;stroke:var(--hue-blue);stroke-width:2;stroke-dasharray:3.5 2.5;pointer-events:none;display:none}
.e-dk.e-cmap .e-cm-clring{stroke:var(--dk-sel)}
.e-cmap .e-cm-acc{cursor:pointer;transition:opacity var(--dur-press,100ms) var(--ease-out,ease-out)}
.e-cmap .e-cm-acc.own{fill-opacity:.85;stroke-width:1}
.e-cmap .e-cm-acc.other{fill:var(--color-surface);stroke-width:1.3}
.e-dk.e-cmap .e-cm-acc.other{fill:var(--dk-field)}
.e-cmap .e-cm-cl{stroke-opacity:.6;stroke-width:1;fill:none}
.e-cmap .e-cm-cl.dim{stroke-opacity:.16}
.e-cmap .e-cm-nl{stroke:var(--hue-ink);stroke-opacity:.3;stroke-width:.9}
.e-dk.e-cmap .e-cm-nl{stroke:#fff;stroke-opacity:.32}
.e-cmap .e-cm-nl.dim{stroke-opacity:.08}
.e-cmap .e-cm-mark{fill:none;stroke:var(--hue-ink);stroke-width:.9;pointer-events:none}
.e-dk.e-cmap .e-cm-mark{stroke:#fff;stroke-opacity:.85}
.e-cmap .e-cm-lbl{font-size:12px;font-weight:700;fill:var(--color-text);pointer-events:none}
.e-dk.e-cmap .e-cm-lbl{fill:var(--dk-t1)}
.e-cmap .e-cm-nb,.e-cmap .e-cm-mb{stroke-width:1.3;cursor:pointer}
.e-cmap .e-cm-nb.h-blue,.e-cmap .e-cm-mb.h-blue{fill:var(--hue-blue);fill-opacity:.3;stroke:var(--hue-blue)}
.e-cmap .e-cm-nb.h-slate,.e-cmap .e-cm-mb.h-slate{fill:var(--hue-slate);fill-opacity:.2;stroke:var(--hue-slate)}
.e-cmap .e-cm-nb.h-amber,.e-cmap .e-cm-mb.h-amber{fill:var(--hue-amber);fill-opacity:.3;stroke:var(--hue-amber)}
.e-cmap .e-cm-nb.h-rose,.e-cmap .e-cm-mb.h-rose{fill:var(--hue-rose);fill-opacity:.3;stroke:var(--hue-rose)}
.e-dk.e-cmap .e-cm-nb.h-blue,.e-dk.e-cmap .e-cm-mb.h-blue{fill:#2563eb;fill-opacity:.5;stroke:#93b1ea}
.e-dk.e-cmap .e-cm-nb.h-slate,.e-dk.e-cmap .e-cm-mb.h-slate{fill:#d5dbe4;fill-opacity:.36;stroke:#d5dbe4}
.e-dk.e-cmap .e-cm-nb.h-amber,.e-dk.e-cmap .e-cm-mb.h-amber{fill:#e08c1c;fill-opacity:.55;stroke:#f7d9a8}
.e-dk.e-cmap .e-cm-nb.h-rose,.e-dk.e-cmap .e-cm-mb.h-rose{fill:#dc3d55;fill-opacity:.6;stroke:#f6c3cc}
.e-cmap .e-cm-nb.under,.e-cmap .e-cm-mb.under{fill:var(--color-surface)}
.e-dk.e-cmap .e-cm-nb.under,.e-dk.e-cmap .e-cm-mb.under{fill:var(--dk-field);stroke:var(--dk-t2)}
/* the top-decile ring: rose, over the band's stroke. The band rules are as specific as the first top rules (above) and come after them, so the ring was drawn as a thicker edge in the band's own colour while the
   key showed a rose one (E2 read, page 51); these come after the band rules, in the groups map, the neighbours of the loose drill and the strip of groups */
.e-cmap.groups .e-cm-gc.top,.e-cmap .e-cm-nb.top,.e-cmap .e-cm-mb.top{stroke:var(--hue-rose);stroke-width:2.2}
.e-dk.e-cmap.groups .e-cm-gc.top,.e-dk.e-cmap .e-cm-nb.top,.e-dk.e-cmap .e-cm-mb.top{stroke:var(--hue-rose)}
/* a small dot of the strip has a transparent target as wide as its gap (the dots shrink to hold one row) */
.e-cmap .e-cm-mhit{fill:transparent;stroke:none;cursor:pointer}
.e-cm-mini{display:flex;align-items:center;gap:8px;margin:0 0 6px;padding-bottom:4px;border-bottom:1px solid var(--color-rule-soft)}
.e-cm-mini-l{flex:none;width:66px;font-size:var(--fs-micro);color:var(--color-text-secondary)}
.e-cm-minisvg{flex:1 1 0;min-width:0;display:block;height:auto;overflow:visible}
.e-cm-back{flex:none;font:inherit;font-size:var(--fs-micro);padding:4px 0;border:0;background:none;color:var(--hue-blue);cursor:pointer}
.e-cm-back:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
.e-dk .e-cm-mini{border-bottom-color:var(--dk-rule)}
.e-dk .e-cm-mini-l{color:var(--dk-t2)}
.e-dk .e-cm-back{color:var(--dk-sel)}
.e-dk .e-cm-back:focus-visible{outline-color:var(--dk-sel)}
.e-cm-locked{margin:var(--space-3) 0;padding:var(--space-4);border:1px dashed var(--color-rule-hover);border-radius:var(--radius-s);font-size:var(--fs-small);color:var(--color-text-secondary)}
.e-dk .e-cm-locked{border-color:#ffffff3d;color:var(--dk-t2)}
.e-cm-key .e-cm-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;box-sizing:border-box}
.e-cm-key .e-cm-dot.hol{background:none;border:1.3px solid}
.e-cm-key .e-cm-dot.mk{background:none;border:1.2px solid var(--hue-ink)}
.e-dk .e-cm-key .e-cm-dot.mk{border-color:#fff}
.e-cm-key .e-cm-dot.dimd{background:var(--hue-ink);opacity:.25}
.e-dk .e-cm-key .e-cm-dot.dimd{background:#fff}

/* ---------- S.filterChips ---------- */
.e-fchips{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.e-fchip{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 9px;border:1px solid var(--color-rule);border-radius:var(--radius-pill);background:var(--color-surface);font:inherit;font-size:12px;font-weight:500;color:var(--color-text);white-space:nowrap;cursor:pointer;transition:background-color var(--dur-press,100ms) var(--ease-out,ease-out),border-color var(--dur-press,100ms) var(--ease-out,ease-out)}
.e-fchip:hover{border-color:var(--color-rule-hover)}
.e-fchip:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
.e-fchip.on{padding:0 10px;font-weight:600;background:var(--hue-blue-t);border-color:var(--hue-blue)}
.e-fc-x{margin-left:3px;opacity:.7}
.e-fc-caret{flex:none;opacity:.6}
.e-fchips.e-dk .e-fchip{background:none;border-color:#ffffff3d;color:#ffffffb3}
.e-fchips.e-dk .e-fchip:hover{border-color:#ffffff80;color:#fff}
.e-fchips.e-dk .e-fchip.on{background:#93b1ea2e;border-color:#93b1ea;color:#fff}
.e-fchips.e-dk .e-fchip:focus-visible{outline-color:#93b1ea}

/* ---------- S.swarm on a log axis: the ticks are the wrapper's ---------- */
.e-swarm.log .e-sw-logtick{shape-rendering:crispEdges}

/* ================================================================
   Added 25 Oct (evening): links that can be hovered and clicked, the labelled strip of groups, the nested window (groups as containers), the hot ends of a link
   ================================================================ */
.e-cmap .e-cm-lnk-hit,.e-cmap .e-cm-nlhit,.e-cmap .e-cm-clhit{fill:none;stroke:transparent;stroke-width:12;pointer-events:stroke;cursor:pointer}
.e-cmap .e-cm-clhit{stroke-width:9}
.e-cmap .e-cm-edge{cursor:pointer}
.e-cmap .e-cm-lnk{transition:stroke-opacity var(--dur-press,100ms) var(--ease-out,ease-out)}
.e-cmap .e-cm-lnk.hot{stroke:var(--hue-ink);stroke-opacity:.9;stroke-width:calc(var(--w,1.3px) + 2.5px)}
.e-cmap .e-cm-lnk.sel{stroke:var(--hue-blue);stroke-opacity:1;stroke-width:calc(var(--w,1.3px) + 3.5px)}
.e-dk.e-cmap .e-cm-lnk.hot{stroke:#fff;stroke-opacity:.9}
.e-dk.e-cmap .e-cm-lnk.sel{stroke:var(--dk-sel);stroke-opacity:1}
.e-cmap .e-cm-gc.on{stroke-width:2.4}
.e-cmap .e-cm-tag{cursor:pointer}
.e-cmap .e-cm-tag.on .e-cm-tagr,.e-cmap .e-cm-tag.sel .e-cm-tagr{stroke-width:2.2;fill:var(--hue-blue)}
.e-cmap .e-cm-tag.on .e-cm-tagt,.e-cmap .e-cm-tag.sel .e-cm-tagt{fill:#fff}
.e-dk.e-cmap .e-cm-tag.on .e-cm-tagr,.e-dk.e-cmap .e-cm-tag.sel .e-cm-tagr{fill:var(--dk-sel);stroke:var(--dk-sel)}
.e-dk.e-cmap .e-cm-tag.on .e-cm-tagt,.e-dk.e-cmap .e-cm-tag.sel .e-cm-tagt{fill:var(--dk-field)}
.e-cmap .e-cm-nl.hot,.e-cmap .e-cm-nl.sel{stroke:var(--hue-blue);stroke-opacity:.8;stroke-width:1.6}
.e-dk.e-cmap .e-cm-nl.hot,.e-dk.e-cmap .e-cm-nl.sel{stroke:var(--dk-sel)}
.e-cmap .e-cm-cl.hot{stroke-opacity:1;stroke-width:2}
.e-cmap .e-cm-cl.x{stroke-opacity:.3;stroke-dasharray:3 2}
.e-cmap .e-cm-cl.x.hot{stroke-opacity:1;stroke-dasharray:none}
.e-cmap .e-cm-acc.hotacc{stroke:var(--hue-ink);stroke-width:2}
.e-dk.e-cmap .e-cm-acc.hotacc{stroke:#fff}
.e-cmap .e-cm-acc.hotacc.other{stroke-width:2}
.e-cmap .e-cm-acc.rest{fill-opacity:.4;stroke-opacity:.5}
/* the strip of all groups */
.e-cm-mini{align-items:flex-start}
.e-cm-mini-l{padding-top:10px}
.e-cm-mini.wrap{flex-wrap:wrap;gap:0 8px}
.e-cm-mini.wrap .e-cm-minisvg{order:3;flex:0 0 auto;max-width:100%}
.e-cm-mini.wrap .e-cm-mini-l{padding-top:6px}
.e-cm-mini.wrap .e-cm-back{margin-left:auto}
.e-cm-back{margin-top:6px}
.e-cmap .e-cm-mi{cursor:pointer;outline:none}
.e-cmap .e-cm-mi:focus-visible .e-cm-mb{stroke-width:2.6}
.e-cmap .e-cm-mi:hover .e-cm-mb{stroke-width:2}
.e-cmap .e-cm-mt{font-size:12px;font-weight:600;fill:var(--color-text);pointer-events:none}
.e-dk.e-cmap .e-cm-mt{fill:var(--dk-t1)}
.e-cmap .e-cm-mi.open .e-cm-mb{stroke-width:2}
/* the nested window: a container per group, its accounts inside */
.e-cmap .e-cm-ct{fill:var(--color-surface-sunken);fill-opacity:.5;stroke:var(--color-rule-hover);stroke-width:1.2;cursor:pointer}
.e-cmap .e-cm-ct.h-blue{fill:var(--hue-blue);fill-opacity:.1;stroke:var(--hue-blue)}
.e-cmap .e-cm-ct.h-slate{fill:var(--hue-slate);fill-opacity:.08;stroke:var(--hue-slate)}
.e-cmap .e-cm-ct.h-amber{fill:var(--hue-amber);fill-opacity:.1;stroke:var(--hue-amber)}
.e-cmap .e-cm-ct.h-rose{fill:var(--hue-rose);fill-opacity:.1;stroke:var(--hue-rose)}
.e-cmap .e-cm-ct.top{stroke:var(--hue-rose);stroke-width:2}
.e-cmap .e-cm-ct.open{stroke-width:2}
.e-cmap .e-cm-ct.under{fill:none;stroke:var(--color-text-muted);stroke-dasharray:3 3}
.e-dk.e-cmap .e-cm-ct{fill:#ffffff;fill-opacity:.05;stroke:#ffffff40}
.e-dk.e-cmap .e-cm-ct.h-blue{fill:#2563eb;fill-opacity:.14;stroke:#93b1ea}
.e-dk.e-cmap .e-cm-ct.h-slate{fill:#d5dbe4;fill-opacity:.1;stroke:#d5dbe4}
.e-dk.e-cmap .e-cm-ct.h-amber{fill:#e08c1c;fill-opacity:.14;stroke:#f7d9a8}
.e-dk.e-cmap .e-cm-ct.h-rose{fill:#dc3d55;fill-opacity:.16;stroke:#f6c3cc}
.e-dk.e-cmap .e-cm-ct.top{stroke:var(--hue-rose)}
.e-dk.e-cmap .e-cm-ct.under{fill:none;stroke:var(--dk-t2)}
.e-dk.e-cmap .e-cm-ct.open{stroke:var(--dk-sel);stroke-width:2.2}
.e-cm-key .e-cm-dot.ct{background:none;border:1.5px solid var(--color-rule-hover);border-radius:50%}
.e-dk .e-cm-key .e-cm-dot.ct{border-color:var(--dk-t2)}

/* ================================================================
   S.axisDates / S.weekAxis / S.horizon axis, S.motifStrip, S.chipSelect, S.amountInput
   ================================================================ */
.e-ax{display:block;overflow:visible}
.e-ax text{font-family:var(--font);font-size:var(--fs-micro);fill:var(--color-text-muted);font-variant-numeric:tabular-nums}
.e-dk .e-ax text{fill:var(--dk-t2)}
.e-hz-ax{min-height:20px}
.e-hz-axc{min-width:0}
/* the motif strip */
.e-ms .e-ms-sub{margin:0 0 var(--space-2);font-size:var(--fs-micro);line-height:1.4;color:var(--color-text-secondary)}
.e-ms .e-ms-sub .i,.e-ms .e-ms-sub button{vertical-align:middle}
.e-ms .e-ms-sub .i{margin-left:4px}   /* the "?" of the noise rows sits 4 px after the word "noise", the kit's usual gap (the .i of kit-ext2.css has no margin) */
.e-ms .e-ms-bg{fill:transparent;transition:fill var(--dur-press,100ms) var(--ease-out,ease-out)}
.e-ms .e-ms-row{cursor:pointer}
.e-ms .e-ms-row.on .e-ms-bg{fill:var(--color-surface-hover)}
.e-ms .e-ms-row.sel .e-ms-bg{fill:var(--color-selected-row,var(--hue-blue-t))}
.e-ms .e-ms-lab{font-size:13px;fill:var(--color-text)}
.e-ms .e-ms-row.noise .e-ms-lab{fill:var(--color-text-muted)}
.e-ms .e-ms-area{fill:var(--hue-blue);fill-opacity:.55;stroke:none}
.e-ms .e-ms-row.noise .e-ms-area{fill:var(--hue-slate);fill-opacity:.28}
.e-ms .e-ms-null{stroke:var(--color-rule-hover);stroke-width:1;stroke-dasharray:2 2}
.e-ms .e-ms-pill rect{fill:var(--hue-blue-t)}
.e-ms .e-ms-pill.reads rect{fill:var(--hue-slate-t)}
.e-ms .e-ms-pill.noise rect{fill:none;stroke:var(--color-rule-hover);stroke-width:1}
.e-ms .e-ms-pt{font-size:12px;font-weight:600;fill:var(--ink-blue)}
.e-ms .e-ms-pill.reads .e-ms-pt{fill:var(--color-text)}
.e-ms .e-ms-pill.noise .e-ms-pt{fill:var(--color-text-muted);font-weight:500}
.e-ms .e-ms-ever{font-size:13px;font-weight:600;fill:var(--color-text);font-variant-numeric:tabular-nums}
.e-ms .e-ms-row.noise .e-ms-ever{fill:var(--color-text-muted);font-weight:400}
.e-dk.e-ms .e-ms-sub{color:var(--dk-t2)}
.e-dk.e-ms .e-ms-row.on .e-ms-bg{fill:#ffffff0f}
.e-dk.e-ms .e-ms-row.sel .e-ms-bg{fill:#93b1ea2e}
.e-dk.e-ms .e-ms-lab,.e-dk.e-ms .e-ms-ever{fill:var(--dk-t1)}
.e-dk.e-ms .e-ms-row.noise .e-ms-lab,.e-dk.e-ms .e-ms-row.noise .e-ms-ever{fill:var(--dk-t2)}
.e-dk.e-ms .e-ms-area{fill:#4f83f5;fill-opacity:.85;stroke:none}
.e-dk.e-ms .e-ms-row.noise .e-ms-area{fill:#d5dbe4;fill-opacity:.3;stroke:none}
.e-dk.e-ms .e-ms-null{stroke:#ffffff59}
.e-dk.e-ms .e-ms-pill rect{fill:#93b1ea2e}
.e-dk.e-ms .e-ms-pill.reads rect{fill:#ffffff1a}
.e-dk.e-ms .e-ms-pill.noise rect{fill:none;stroke:#ffffff59}
.e-dk.e-ms .e-ms-pt{fill:var(--dk-sel)}
.e-dk.e-ms .e-ms-pill.reads .e-ms-pt,.e-dk.e-ms .e-ms-pill.noise .e-ms-pt{fill:var(--dk-t1)}
.e-dk.e-ms .e-ms-pill.noise .e-ms-pt{fill:var(--dk-t2)}
/* a choice in the chip row */
.e-cs{position:relative;display:inline-flex;vertical-align:middle}
.e-cs-face.e-pill{height:26px;padding:0 9px 0 10px;gap:5px;font-weight:500;color:var(--color-text-muted);transition:box-shadow var(--dur-press,100ms) var(--ease-out,ease-out)}
.e-cs-face .e-cs-v{margin:0;font-weight:600;color:var(--color-text)}
.e-cs-caret{flex:none;opacity:.6}
.e-cs-sel{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;background:none;opacity:0;cursor:pointer;font:inherit;-webkit-appearance:none;appearance:none}
.e-cs:hover .e-cs-face.e-pill{box-shadow:inset 0 0 0 1px var(--color-rule-hover)}
.e-cs:focus-within .e-cs-face.e-pill{box-shadow:var(--focus-ring)}
.e-cs.e-dk .e-cs-face.e-pill{background:none;color:#ffffffb3;box-shadow:inset 0 0 0 1px #ffffff3d}
.e-cs.e-dk .e-cs-face .e-cs-v{color:#fff}
.e-cs.e-dk:hover .e-cs-face.e-pill{box-shadow:inset 0 0 0 1px #ffffff80}
.e-cs.e-dk:focus-within .e-cs-face.e-pill{box-shadow:0 0 0 2px var(--dk-sel)}
/* the face is one inline run (label, chosen word, count: one space between), so its text reads as one line; the 2 px margins make the space the old 5 px gap. A count follows the word; a clearable chip
   carries a small cross in place of the caret while a choice is made (the cross sits above the select, which covers the rest of the chip) */
.e-cs-t{white-space:nowrap}
.e-cs-l{margin-right:2px}
.e-cs-n{margin-left:2px;font-weight:600;color:var(--color-text);font-variant-numeric:tabular-nums}
.e-cs-ph{font-weight:600;color:var(--color-text)}
.e-cs.has-x .e-cs-face.e-pill{padding-right:26px}
.e-cs.has-x .e-cs-caret{display:none}
.e-cs-x{position:absolute;right:5px;top:50%;transform:translateY(-50%);z-index:1;display:grid;place-items:center;width:18px;height:18px;margin:0;padding:0;border:0;border-radius:50%;background:none;color:var(--color-text-muted);cursor:pointer;font:inherit}
.e-cs-x[hidden]{display:none}
.e-cs-x:hover{color:var(--color-text);background:var(--color-surface-sunken)}
.e-cs-x:focus-visible{outline:2px solid transparent;box-shadow:var(--focus-ring)}
.e-cs.e-dk .e-cs-n,.e-cs.e-dk .e-cs-ph{color:#fff}
.e-cs.e-dk .e-cs-x{color:#ffffffb3}
.e-cs.e-dk .e-cs-x:hover{color:#fff;background:#ffffff26}
.e-cs.e-dk .e-cs-x:focus-visible{box-shadow:0 0 0 2px var(--dk-sel)}
/* an amount in the chip row */
.e-ai{display:inline-flex;flex-direction:column;gap:2px;vertical-align:top}
.e-ai-chip.e-pill{height:26px;padding:0 10px;gap:6px;font-weight:500;color:var(--color-text-muted);cursor:text}
.e-ai-chip .e-ai-u{color:var(--color-text);font-weight:600;margin-right:-3px}
.e-ai-in{width:7ch;min-width:0;padding:0;border:0;background:none;outline:none;font:inherit;font-weight:600;color:var(--color-text);-moz-appearance:textfield;appearance:textfield;font-variant-numeric:tabular-nums}
.e-ai-in::-webkit-inner-spin-button,.e-ai-in::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.e-ai-chip.e-pill:focus-within{box-shadow:var(--focus-ring)}
.e-ai-track{display:block;overflow:visible;cursor:pointer}
.e-ai-line{stroke:var(--color-rule-hover);stroke-width:2;stroke-linecap:round}
.e-ai-tk{stroke:var(--color-text-secondary);stroke-width:1.6}
.e-ai-ring{fill:var(--color-surface);stroke:var(--hue-blue);stroke-width:2.2}
.e-ai-track text{font-family:var(--font);font-size:var(--fs-micro);fill:var(--color-text-secondary)}
.e-ai.e-dk .e-ai-chip.e-pill{background:none;color:#ffffffb3;box-shadow:inset 0 0 0 1px #ffffff3d}
.e-ai.e-dk .e-ai-in,.e-ai.e-dk .e-ai-chip .e-ai-u{color:#fff}
.e-ai.e-dk .e-ai-chip.e-pill:focus-within{box-shadow:0 0 0 2px var(--dk-sel)}
.e-ai.e-dk .e-ai-line{stroke:#ffffff4d}
.e-ai.e-dk .e-ai-tk{stroke:#ffffffb3}
.e-ai.e-dk .e-ai-ring{fill:#141b24;stroke:#93b1ea}
.e-ai.e-dk .e-ai-track text{fill:#ffffffb3}
/* inline: the track beside the chip on one line (a row 26 px high), no tick labels under it */
.e-ai.inline{flex-direction:row;align-items:center;gap:8px;vertical-align:middle}
.e-ai.inline .e-ai-track{flex:none}

/* dense rows (KIT.md 12.35): size 'dense' on S.lrow and S.table, 20 px rows of 12 px type; the defaults (24 px ledger rows, 38 px table rows) are untouched */
.e-lr.dense{height:20px;font-size:var(--fs-micro)}
.table-wrap.dense .table{font-size:var(--fs-micro)}
.table-wrap.dense .table th,.table-wrap.dense .table td{padding-top:2px;padding-bottom:2px;line-height:15px}
.table-wrap.dense .table thead th{padding-top:0;padding-bottom:3px}
.table-wrap.dense .table thead th button{min-height:0;line-height:15px}

@media (prefers-reduced-motion:reduce){
  .e-bubbles .e-bb-cell,.e-bubbles .e-bb-b,.e-cmap .e-cm-halo,.e-cmap .e-cm-gc,.e-cmap .e-cm-acc,.e-cmap .e-cm-lnk,.e-fchip,.e-ms .e-ms-bg,.e-cs-face{transition:none!important}
}
@media (max-width:700px){
  .e-bb-key,.e-cm-key{gap:4px 14px}
}
