/* Tokenomics map. Every colour already exists in the console: accent #b9f56d,
   line #253039, on-chain #14232c / #40586b (.ec-nav-feature), provisional
   #efe3b3 (simulator link), open #e39586 (.ec-coral), multiplier #61c7df
   (simulator series), borders and warnings from economy.css. */
.tm{--tm-live:#b9f56d;--tm-prov:#efe3b3;--tm-design:#94a5b1;--tm-open:#e39586;--tm-mult:#61c7df;--tm-sys:#748996}
.tm .ec-banner{margin-bottom:16px}
.tm-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:0 0 14px}
.tm-legend{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tm-filter{display:inline-flex;align-items:center;gap:8px;font-size:12px;padding:8px 11px;background:#10171c;border-color:#35434b;color:#d0dbe1}
.tm-filter b{font-weight:600;color:#eef3f5;font-variant-numeric:tabular-nums}
.tm-filter[aria-pressed="false"]{opacity:.45;text-decoration:line-through}
.tm-legend-note{display:inline-flex;align-items:center;gap:7px;font-size:11px;color:#8da4b0;margin-left:6px}
.tm-key{display:inline-grid;place-items:center;width:22px;height:12px;font:700 9px/1 Inter,"Segoe UI",sans-serif}
.tm-key-live{border-top:2px solid var(--tm-live);height:0}
.tm-key-designed{border-top:2px dashed var(--tm-design);height:0}
.tm-key-mult{border-top:2px solid var(--tm-mult);height:0}
.tm-key-spine{border-top:3px solid var(--tm-live);height:0}
.tm-key-minor{border-top:1px solid var(--tm-live);height:0;opacity:.35}
.tm-key-provisional,.tm-key-open{width:16px;height:16px;border-radius:50%;color:#0a0d10}
.tm-key-provisional{background:var(--tm-prov)}.tm-key-open{background:var(--tm-open)}
.tm-shape-key{display:inline-block;width:14px;height:10px;border:1px solid #6d828e;border-radius:3px}
.tm-shape-key.tm-cut{border-radius:0 0 0 0;clip-path:polygon(4px 0,100% 0,100% calc(100% - 4px),calc(100% - 4px) 100%,0 100%,0 4px);background:#40586b;border:0}
.tm-actions{display:flex;align-items:center;gap:10px}.tm-actions button{font-size:12px}.tm-actions small{font-size:10px;color:#8399a6}
.tm-hint{font-size:11px;color:#8da4b0;margin:0 0 8px}.tm-hint[hidden]{display:none}
.tm-scroll{overflow-x:auto;max-width:100%;border:1px solid var(--line);border-radius:12px;background:#0a0d10}
.tm-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
/* A minimum width keeps every label at a readable size; narrow screens scroll. */
.tm-svg{display:block;width:100%;min-width:1080px;height:auto;font-family:Inter,"Segoe UI",sans-serif}

.tm-band rect{fill:#10171c;stroke:var(--line)}
.tm-band-title{fill:#829ca9;font-size:10.5px;font-weight:600;letter-spacing:.06em;paint-order:stroke;stroke:#10171c;stroke-width:5px;stroke-linejoin:round;pointer-events:none}
.tm-band-chain rect{fill:#14232c;stroke:#40586b}
.tm-band-title-chain{fill:#a6bdcc;stroke:#14232c}
.tm-band-title-future{stroke:#0a0d10}
.tm-band-future rect{fill:none;stroke:#36424b;stroke-dasharray:6 5}

.tm-node{cursor:pointer;transition:opacity .15s}
.tm-node .tm-shape{fill:#172027;stroke:#35434b;stroke-width:1.2}
.tm-l-chain .tm-shape{fill:#202b32;stroke:#40586b}
.tm-l-future .tm-shape{fill:#10171c;stroke:#43535e;stroke-dasharray:5 4}
.tm-node-mult .tm-shape{stroke:var(--tm-mult);stroke-width:1.6}
.tm-node-fills .tm-shape{stroke:#b9d1dc;stroke-width:1.6}
.tm-fill{fill:#d0dbe1;font-size:10.5px}
.tm-fill-head{fill:#8da4b0;font-size:9.5px;font-weight:700;letter-spacing:.06em}
.tm-node:hover .tm-shape,.tm-node:focus-visible .tm-shape,.tm-node.tm-on .tm-shape{stroke:#b9d1dc}
.tm-node:focus-visible{outline:none}.tm-node:focus-visible .tm-shape{stroke:var(--accent);stroke-width:2.2}
.tm-label{fill:#eef3f5;font-size:12.5px;font-weight:600}
.tm-sub{fill:#94a5b1;font-size:10.5px}
.tm-live{fill:var(--tm-live);font-size:10px;font-variant-numeric:tabular-nums}
.tm-live.tm-unread{fill:var(--tm-design)}
.tm-mark circle{fill:var(--tm-live)}
.tm-s-provisional>.tm-mark circle{fill:var(--tm-prov)}
.tm-s-open>.tm-mark circle{fill:var(--tm-open)}
.tm-s-designed>.tm-mark circle{fill:none;stroke:var(--tm-design);stroke-width:1.5}
.tm-mark text,.tm-chip text{fill:#0a0d10;font-size:9.5px;font-weight:700}

.tm-flow{cursor:pointer;transition:opacity .15s}
.tm-flow .tm-hit{fill:none;stroke:transparent;stroke-width:12}
.tm-flow .tm-line{fill:none;stroke:var(--tm-live);stroke-width:1.5;opacity:.7}
.tm-flow.tm-s-provisional .tm-line{stroke:var(--tm-prov)}
.tm-flow.tm-s-designed .tm-line{stroke:var(--tm-design);stroke-dasharray:6 4}
.tm-flow.tm-s-open .tm-line{stroke:var(--tm-open);stroke-dasharray:2 4}
.tm-flow.tm-spine .tm-line{stroke-width:3.2;opacity:1}
.tm-flow.tm-mult .tm-line{stroke:var(--tm-mult);stroke-width:2.6;opacity:1}
.tm-flow.tm-sys .tm-line{stroke:var(--tm-sys);stroke-width:1.1}
.tm-flow.tm-minor .tm-line{opacity:.24;stroke-width:1}
.tm-flow.tm-minor .tm-chip{opacity:.35}
.tm-flow:hover .tm-line,.tm-flow.tm-on .tm-line{opacity:1;stroke-width:2.6}
.tm-flow.tm-minor.tm-on .tm-chip,.tm-flow.tm-minor:hover .tm-chip{opacity:1}
.tm-flow.tm-spine:hover .tm-line,.tm-flow.tm-spine.tm-on .tm-line{stroke-width:3.6}
.tm-flow:focus-visible{outline:none}.tm-flow:focus-visible .tm-line{stroke-width:3.6;opacity:1}
.tm-chip circle{fill:var(--tm-prov);stroke:#0a0d10;stroke-width:2}
.tm-s-open .tm-chip circle{fill:var(--tm-open)}
.tm-stub-label{fill:#94a5b1;font-size:10px}
.tm-arrow-live path,.tm-arrow-spine path{fill:var(--tm-live)}
.tm-arrow-provisional path{fill:var(--tm-prov)}
.tm-arrow-designed path{fill:var(--tm-design)}
.tm-arrow-open path{fill:var(--tm-open)}
.tm-arrow-mult path{fill:var(--tm-mult)}
.tm-arrow-sys path{fill:var(--tm-sys)}

/* Focus mode: the selected element, its links and their other ends stay lit. */
.tm-svg.tm-focus .tm-node:not(.tm-on),.tm-svg.tm-focus .tm-flow:not(.tm-on){opacity:.18}
/* Status filter dims rather than hides, so a filtered link never looks absent. */
.tm-svg.tm-hide-live .tm-s-live,.tm-svg.tm-hide-provisional .tm-s-provisional,.tm-svg.tm-hide-designed .tm-s-designed,.tm-svg.tm-hide-open .tm-s-open{opacity:.08}

.tm-pop{position:fixed;z-index:30;width:min(380px,calc(100vw - 24px));max-height:min(72vh,560px);overflow:auto;overscroll-behavior:contain;background:#172027;border:1px solid #40515d;border-radius:10px;box-shadow:0 18px 40px #0008;padding:18px 18px 14px;font-size:12px;line-height:1.6;color:#d0dbe1}
.tm-pop-close{position:absolute;top:10px;right:10px;padding:3px 8px;font-size:12px;background:transparent;border-color:#35434b}
.tm-pop h3{margin:10px 34px 4px 0;font-size:16px;font-weight:600;color:#eef3f5;line-height:1.3}
.tm-pop p{margin:8px 0}
.tm-pop-sub{color:#94a5b1;margin-top:0}
.tm-pop-status{display:inline-block;font-size:10px;font-weight:600;letter-spacing:.04em;border:1px solid;border-radius:5px;padding:3px 7px}
.tm-pop-status.tm-s-live{color:var(--tm-live);border-color:#405839}
.tm-pop-status.tm-s-provisional{color:var(--tm-prov);border-color:#625a36}
.tm-pop-status.tm-s-designed{color:var(--tm-design);border-color:#36424b}
.tm-pop-status.tm-s-open{color:var(--tm-open);border-color:#63393d}
.tm-pop-warn{color:#f5afa2;background:#2d1c20;border:1px solid #5d353d;border-radius:7px;padding:9px 11px}
.tm-values{display:grid;grid-template-columns:minmax(90px,.8fr) minmax(0,1.6fr);gap:9px 12px;margin:12px 0;padding:12px 0;border-top:1px solid #2b3942;border-bottom:1px solid #2b3942}
.tm-values dt{color:#8da4b0}.tm-values dd{margin:0;color:#eef3f5;overflow-wrap:anywhere}
.tm-values small{display:block;font-size:10px;color:#748996;margin-top:2px}
.tm-pop-live dd{color:var(--tm-live)}
.tm-tag{display:inline-block;margin-left:7px;font-size:9.5px;font-weight:600;border-radius:4px;padding:1px 5px;vertical-align:1px;background:#222c33;color:#becbd3}
.tm-tag-decided{background:#213421;color:#c5efa3}
.tm-tag-provisional{background:#25241a;color:var(--tm-prov)}
.tm-tag-calibration{background:#18252c;color:#b9d1dc}
.tm-proofs{margin-top:10px}.tm-proofs summary{cursor:pointer;color:#8da4b0;font-size:11px}
.tm-proofs ul{margin:6px 0 0;padding-left:16px}.tm-proofs code{font-size:10.5px;color:#b9d1dc;overflow-wrap:anywhere}
.tm-fills{margin:12px 0;padding-top:10px;border-top:1px solid #2b3942}
.tm-fills h4{margin:0 0 2px;font-size:12px;font-weight:600;color:#eef3f5}
.tm-fills .tm-fill-title{margin:10px 0 4px;font-size:10px;font-weight:700;letter-spacing:.06em;color:#8da4b0}
.tm-fills ul{margin:0;padding:0;list-style:none}.tm-fills li{margin:0 0 6px}
.tm-fills .tm-pop-status{margin-right:7px;padding:1px 5px;font-size:9.5px}
.tm-pop-links{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.tm-pop-links button{font-size:11px;padding:6px 9px}
@media(max-width:850px){.tm-toolbar{align-items:flex-start}.tm-legend-note{margin-left:0}}
