/* GENERATED by scripts/gen-scales-css.js — do not hand-edit.
   Epic Z / Z5 phase 2. The class families that replaced the last eight
   runtime-valued style="" attributes, so style-src-attr drops 'unsafe-inline'.
   Every selector is doubled for specificity (0,2,0); never !important, so a
   runtime el.style.* write still wins. Widths come from utilities.css's
   existing u-w-<n>pct scale — only HEIGHT needed a new one. */

  /* height scale — trendBars. utilities.css has no u-h-<n>pct family. */
.mp-h--0pct.mp-h--0pct{height:0%}
.mp-h--1pct.mp-h--1pct{height:1%}
.mp-h--2pct.mp-h--2pct{height:2%}
.mp-h--3pct.mp-h--3pct{height:3%}
.mp-h--4pct.mp-h--4pct{height:4%}
.mp-h--5pct.mp-h--5pct{height:5%}
.mp-h--6pct.mp-h--6pct{height:6%}
.mp-h--7pct.mp-h--7pct{height:7%}
.mp-h--8pct.mp-h--8pct{height:8%}
.mp-h--9pct.mp-h--9pct{height:9%}
.mp-h--10pct.mp-h--10pct{height:10%}
.mp-h--11pct.mp-h--11pct{height:11%}
.mp-h--12pct.mp-h--12pct{height:12%}
.mp-h--13pct.mp-h--13pct{height:13%}
.mp-h--14pct.mp-h--14pct{height:14%}
.mp-h--15pct.mp-h--15pct{height:15%}
.mp-h--16pct.mp-h--16pct{height:16%}
.mp-h--17pct.mp-h--17pct{height:17%}
.mp-h--18pct.mp-h--18pct{height:18%}
.mp-h--19pct.mp-h--19pct{height:19%}
.mp-h--20pct.mp-h--20pct{height:20%}
.mp-h--21pct.mp-h--21pct{height:21%}
.mp-h--22pct.mp-h--22pct{height:22%}
.mp-h--23pct.mp-h--23pct{height:23%}
.mp-h--24pct.mp-h--24pct{height:24%}
.mp-h--25pct.mp-h--25pct{height:25%}
.mp-h--26pct.mp-h--26pct{height:26%}
.mp-h--27pct.mp-h--27pct{height:27%}
.mp-h--28pct.mp-h--28pct{height:28%}
.mp-h--29pct.mp-h--29pct{height:29%}
.mp-h--30pct.mp-h--30pct{height:30%}
.mp-h--31pct.mp-h--31pct{height:31%}
.mp-h--32pct.mp-h--32pct{height:32%}
.mp-h--33pct.mp-h--33pct{height:33%}
.mp-h--34pct.mp-h--34pct{height:34%}
.mp-h--35pct.mp-h--35pct{height:35%}
.mp-h--36pct.mp-h--36pct{height:36%}
.mp-h--37pct.mp-h--37pct{height:37%}
.mp-h--38pct.mp-h--38pct{height:38%}
.mp-h--39pct.mp-h--39pct{height:39%}
.mp-h--40pct.mp-h--40pct{height:40%}
.mp-h--41pct.mp-h--41pct{height:41%}
.mp-h--42pct.mp-h--42pct{height:42%}
.mp-h--43pct.mp-h--43pct{height:43%}
.mp-h--44pct.mp-h--44pct{height:44%}
.mp-h--45pct.mp-h--45pct{height:45%}
.mp-h--46pct.mp-h--46pct{height:46%}
.mp-h--47pct.mp-h--47pct{height:47%}
.mp-h--48pct.mp-h--48pct{height:48%}
.mp-h--49pct.mp-h--49pct{height:49%}
.mp-h--50pct.mp-h--50pct{height:50%}
.mp-h--51pct.mp-h--51pct{height:51%}
.mp-h--52pct.mp-h--52pct{height:52%}
.mp-h--53pct.mp-h--53pct{height:53%}
.mp-h--54pct.mp-h--54pct{height:54%}
.mp-h--55pct.mp-h--55pct{height:55%}
.mp-h--56pct.mp-h--56pct{height:56%}
.mp-h--57pct.mp-h--57pct{height:57%}
.mp-h--58pct.mp-h--58pct{height:58%}
.mp-h--59pct.mp-h--59pct{height:59%}
.mp-h--60pct.mp-h--60pct{height:60%}
.mp-h--61pct.mp-h--61pct{height:61%}
.mp-h--62pct.mp-h--62pct{height:62%}
.mp-h--63pct.mp-h--63pct{height:63%}
.mp-h--64pct.mp-h--64pct{height:64%}
.mp-h--65pct.mp-h--65pct{height:65%}
.mp-h--66pct.mp-h--66pct{height:66%}
.mp-h--67pct.mp-h--67pct{height:67%}
.mp-h--68pct.mp-h--68pct{height:68%}
.mp-h--69pct.mp-h--69pct{height:69%}
.mp-h--70pct.mp-h--70pct{height:70%}
.mp-h--71pct.mp-h--71pct{height:71%}
.mp-h--72pct.mp-h--72pct{height:72%}
.mp-h--73pct.mp-h--73pct{height:73%}
.mp-h--74pct.mp-h--74pct{height:74%}
.mp-h--75pct.mp-h--75pct{height:75%}
.mp-h--76pct.mp-h--76pct{height:76%}
.mp-h--77pct.mp-h--77pct{height:77%}
.mp-h--78pct.mp-h--78pct{height:78%}
.mp-h--79pct.mp-h--79pct{height:79%}
.mp-h--80pct.mp-h--80pct{height:80%}
.mp-h--81pct.mp-h--81pct{height:81%}
.mp-h--82pct.mp-h--82pct{height:82%}
.mp-h--83pct.mp-h--83pct{height:83%}
.mp-h--84pct.mp-h--84pct{height:84%}
.mp-h--85pct.mp-h--85pct{height:85%}
.mp-h--86pct.mp-h--86pct{height:86%}
.mp-h--87pct.mp-h--87pct{height:87%}
.mp-h--88pct.mp-h--88pct{height:88%}
.mp-h--89pct.mp-h--89pct{height:89%}
.mp-h--90pct.mp-h--90pct{height:90%}
.mp-h--91pct.mp-h--91pct{height:91%}
.mp-h--92pct.mp-h--92pct{height:92%}
.mp-h--93pct.mp-h--93pct{height:93%}
.mp-h--94pct.mp-h--94pct{height:94%}
.mp-h--95pct.mp-h--95pct{height:95%}
.mp-h--96pct.mp-h--96pct{height:96%}
.mp-h--97pct.mp-h--97pct{height:97%}
.mp-h--98pct.mp-h--98pct{height:98%}
.mp-h--99pct.mp-h--99pct{height:99%}
.mp-h--100pct.mp-h--100pct{height:100%}

  /* Tone backgrounds, shared by scoreBar, trustBar and trendBars. The
     three tokens are defined for the dashboard at terminal.css:53
     (--green/--yellow/--red aliasing --pos/--warn/--neg), so these follow the
     theme exactly as the interpolated var() in the attribute did. */
.mp-tone--green.mp-tone--green{background:var(--green)}
.mp-tone--yellow.mp-tone--yellow{background:var(--yellow)}
.mp-tone--red.mp-tone--red{background:var(--red)}

  /* The non-varying half of each converted bar: what the attribute set
     alongside the computed value. Kept here rather than in the module sheets
     so one file carries the whole conversion. */
.mp-trendbar.mp-trendbar{width:100%;opacity:.75}
.mp-barfill.mp-barfill{height:100%}

  /* The heat ramp, quantised on ALPHA. heatColor() spanned .06 -> .61,
     so 56 steps of exactly .01 reproduce BOTH endpoints exactly and cap the
     error at half a step = .005 alpha. Worst per-channel error is
     .005 x |colour - background|; the widest gap in the tree is light #ffffff
     against green (63,185,80) -> delta (192,70,175) -> under 0.96/255. Under one
     8-bit unit in every channel on every theme (deltaE*ab about 0.3, against a
     ~1.0 JND). 24 buckets would have been 0.0115 alpha, about 2.2/255, deltaE
     about 0.8 — at the JND. Hence 56.

     The hue class carries the rgba() and reads the level as a custom property,
     so a missing level degrades to alpha 0 — invisible — rather than to a wrong
     colour. A null changePct emits NEITHER class: .mk-tile declares no
     background (mod-markets.css:12), so the computed value stays
     rgba(0, 0, 0, 0), byte-identical to what background:transparent produced. */
.mp-heat--up.mp-heat--up{background:rgba(63,185,80,var(--mp-heat,0))}
.mp-heat--dn.mp-heat--dn{background:rgba(248,81,73,var(--mp-heat,0))}
.mp-heatlv--0.mp-heatlv--0{--mp-heat:0.06}
.mp-heatlv--1.mp-heatlv--1{--mp-heat:0.07}
.mp-heatlv--2.mp-heatlv--2{--mp-heat:0.08}
.mp-heatlv--3.mp-heatlv--3{--mp-heat:0.09}
.mp-heatlv--4.mp-heatlv--4{--mp-heat:0.10}
.mp-heatlv--5.mp-heatlv--5{--mp-heat:0.11}
.mp-heatlv--6.mp-heatlv--6{--mp-heat:0.12}
.mp-heatlv--7.mp-heatlv--7{--mp-heat:0.13}
.mp-heatlv--8.mp-heatlv--8{--mp-heat:0.14}
.mp-heatlv--9.mp-heatlv--9{--mp-heat:0.15}
.mp-heatlv--10.mp-heatlv--10{--mp-heat:0.16}
.mp-heatlv--11.mp-heatlv--11{--mp-heat:0.17}
.mp-heatlv--12.mp-heatlv--12{--mp-heat:0.18}
.mp-heatlv--13.mp-heatlv--13{--mp-heat:0.19}
.mp-heatlv--14.mp-heatlv--14{--mp-heat:0.20}
.mp-heatlv--15.mp-heatlv--15{--mp-heat:0.21}
.mp-heatlv--16.mp-heatlv--16{--mp-heat:0.22}
.mp-heatlv--17.mp-heatlv--17{--mp-heat:0.23}
.mp-heatlv--18.mp-heatlv--18{--mp-heat:0.24}
.mp-heatlv--19.mp-heatlv--19{--mp-heat:0.25}
.mp-heatlv--20.mp-heatlv--20{--mp-heat:0.26}
.mp-heatlv--21.mp-heatlv--21{--mp-heat:0.27}
.mp-heatlv--22.mp-heatlv--22{--mp-heat:0.28}
.mp-heatlv--23.mp-heatlv--23{--mp-heat:0.29}
.mp-heatlv--24.mp-heatlv--24{--mp-heat:0.30}
.mp-heatlv--25.mp-heatlv--25{--mp-heat:0.31}
.mp-heatlv--26.mp-heatlv--26{--mp-heat:0.32}
.mp-heatlv--27.mp-heatlv--27{--mp-heat:0.33}
.mp-heatlv--28.mp-heatlv--28{--mp-heat:0.34}
.mp-heatlv--29.mp-heatlv--29{--mp-heat:0.35}
.mp-heatlv--30.mp-heatlv--30{--mp-heat:0.36}
.mp-heatlv--31.mp-heatlv--31{--mp-heat:0.37}
.mp-heatlv--32.mp-heatlv--32{--mp-heat:0.38}
.mp-heatlv--33.mp-heatlv--33{--mp-heat:0.39}
.mp-heatlv--34.mp-heatlv--34{--mp-heat:0.40}
.mp-heatlv--35.mp-heatlv--35{--mp-heat:0.41}
.mp-heatlv--36.mp-heatlv--36{--mp-heat:0.42}
.mp-heatlv--37.mp-heatlv--37{--mp-heat:0.43}
.mp-heatlv--38.mp-heatlv--38{--mp-heat:0.44}
.mp-heatlv--39.mp-heatlv--39{--mp-heat:0.45}
.mp-heatlv--40.mp-heatlv--40{--mp-heat:0.46}
.mp-heatlv--41.mp-heatlv--41{--mp-heat:0.47}
.mp-heatlv--42.mp-heatlv--42{--mp-heat:0.48}
.mp-heatlv--43.mp-heatlv--43{--mp-heat:0.49}
.mp-heatlv--44.mp-heatlv--44{--mp-heat:0.50}
.mp-heatlv--45.mp-heatlv--45{--mp-heat:0.51}
.mp-heatlv--46.mp-heatlv--46{--mp-heat:0.52}
.mp-heatlv--47.mp-heatlv--47{--mp-heat:0.53}
.mp-heatlv--48.mp-heatlv--48{--mp-heat:0.54}
.mp-heatlv--49.mp-heatlv--49{--mp-heat:0.55}
.mp-heatlv--50.mp-heatlv--50{--mp-heat:0.56}
.mp-heatlv--51.mp-heatlv--51{--mp-heat:0.57}
.mp-heatlv--52.mp-heatlv--52{--mp-heat:0.58}
.mp-heatlv--53.mp-heatlv--53{--mp-heat:0.59}
.mp-heatlv--54.mp-heatlv--54{--mp-heat:0.60}
.mp-heatlv--55.mp-heatlv--55{--mp-heat:0.61}

  /* The five analyst-rating segments. Two are color-mix(), which
     computes byte-identically from a class and from an attribute (probed). */
.mp-seg--sbuy.mp-seg--sbuy{background:var(--green)}
.mp-seg--buy.mp-seg--buy{background:color-mix(in srgb, var(--green) 55%, transparent)}
.mp-seg--hold.mp-seg--hold{background:var(--dim)}
.mp-seg--sell.mp-seg--sell{background:color-mix(in srgb, var(--red) 55%, transparent)}
.mp-seg--ssell.mp-seg--ssell{background:var(--red)}
.mp-ratingseg.mp-ratingseg{display:inline-block;height:8px}

  /* Theme swatches. These hexes are DELETED from app.js rather than
     mirrored: themeSwatch() now emits only an index, so there is no second copy
     to drift. A theme preview must show the OTHER theme's colours, which is why
     they are literals here and not var() tokens — a token would resolve to the
     active theme and every preview would look the same. */
.mp-sw.mp-sw{width:14px;height:14px;border:1px solid var(--line);display:inline-block}
.mp-sw--dark-0.mp-sw--dark-0{background:#0d1117}
.mp-sw--dark-1.mp-sw--dark-1{background:#3fb950}
.mp-sw--dark-2.mp-sw--dark-2{background:#f85149}
.mp-sw--dark-3.mp-sw--dark-3{background:#d29922}
.mp-sw--light-0.mp-sw--light-0{background:#ffffff}
.mp-sw--light-1.mp-sw--light-1{background:#1a7f37}
.mp-sw--light-2.mp-sw--light-2{background:#cf222e}
.mp-sw--light-3.mp-sw--light-3{background:#9a6700}
.mp-sw--bloomberg-0.mp-sw--bloomberg-0{background:#000000}
.mp-sw--bloomberg-1.mp-sw--bloomberg-1{background:#ff9e1b}
.mp-sw--bloomberg-2.mp-sw--bloomberg-2{background:#ff4d4d}
.mp-sw--bloomberg-3.mp-sw--bloomberg-3{background:#ffce5c}
.mp-sw--neon-0.mp-sw--neon-0{background:#0a0e1a}
.mp-sw--neon-1.mp-sw--neon-1{background:#00e5a0}
.mp-sw--neon-2.mp-sw--neon-2{background:#ff4d6d}
.mp-sw--neon-3.mp-sw--neon-3{background:#b388ff}
.mp-sw--mono-0.mp-sw--mono-0{background:#000000}
.mp-sw--mono-1.mp-sw--mono-1{background:#ffffff}
.mp-sw--mono-2.mp-sw--mono-2{background:#888888}
.mp-sw--mono-3.mp-sw--mono-3{background:#555555}

  /* Legend swatches. border-radius:0 is deliberate and preserves what
     terminal.css already paints over these: the attribute asked for 2px and
     never got it, and un-squaring them is a real pixel change that does not
     belong in a conversion whose promise is "no diff outside the disclosed
     cells". Follow-up, with a screenshot.

     .mp-pal--* mirrors loadDashboardCharts' allocation palette, which the SVG
     still needs as raw hex for stroke=. A drift test pins the two together. The
     CATEGORY donut needs no mirror: it reuses the existing .mp-cat--* tokens. */
.mp-legendsw.mp-legendsw{width:8px;height:8px;border-radius:0;display:inline-block}
.mp-pal--0.mp-pal--0{background:#1f8fd6}
.mp-pal--1.mp-pal--1{background:#27b0c4}
.mp-pal--2.mp-pal--2{background:#3ad36a}
.mp-pal--3.mp-pal--3{background:#e3b341}
.mp-pal--4.mp-pal--4{background:#f85149}
.mp-pal--5.mp-pal--5{background:#a371f7}
.mp-pal--6.mp-pal--6{background:#db61a2}
.mp-pal--7.mp-pal--7{background:#56d4dd}
.mp-pal--cash.mp-pal--cash{background:var(--muted,#888)}
.mp-pal--cat.mp-pal--cat{background:var(--mp-cat,#8b949e)}
