/* =================================================================================================
   CONTRAST-DEBT-0919 — THE STANDING CONTRAST PASS ON THE MEMBER SHELL, AT THE TOKEN.
   Queue 176.  REWALK-FINAL-0919 §3 D6–D9: the standing contrast debt.

   🔴 GENERATED.  Every value below is written by harness/mkcss.py out of the solved tables
   (proof/reports/TOKENS.json, FAMILIES.json), which are the output of harness/solve.py and
   harness/families.py over 1,207 element crops judged from the PAINTED PIXELS of a guarded
   rig.  tools/install.sh re-runs the generator and refuses if this file is not byte-identical,
   so no number here can drift from the measurement that justifies it.  Do not hand-edit.

   METHOD.  Contrast is measured from the composited colour on the rendered page, three ways per
   crop — the 2 %-luminance tail (REWALK-FINAL-0919's instrument, kept so the before column is
   comparable), the GLYPH CORE (REWALK-DESIGN-FIXES-0919's correction), and the declared colour
   folded down its opacity chain — and the verdict is the worse of the last two.  Text on a
   gradient or a background image is judged from the crop, never from a stylesheet: walking a
   backgroundColor ancestor is the /pricing/ trap in CLAUDE.md and it is not done here.

   RULE OF THE PASS (ruling 326's and SAFARI-A11Y-PASS-0918's, kept): HUE AND SATURATION ARE
   NOT TOUCHED.  Each colour is the SAME colour, moved along its own lightness axis by the
   smallest step that clears its floor on the WORST ground it was measured painting on — and
   verified AFTER quantisation to six hex digits against 4.60 : 1 (body) / 3.10 : 1 (large), so
   rounding cannot put it back under 4.5 / 3.0 the way six of SAFARI-A11Y-PASS's first values did.

   WHAT IS NOT HERE, and why it is not a gap: a fill under near-white text is a COMPONENT's own
   surface, and most of them are gradients or translucent overlays.  Replacing a designed
   gradient with a flat colour from a head stylesheet is a design change wearing a contrast
   fix's clothes; REWALK-DESIGN-FIXES-0919 moved `.engp-primary`'s stops IN ITS OWN FILE and
   that is the right road.  Every one of them is named with the value that would clear, in
   RECEIPT.md §5, for the lane that owns those files.
   ================================================================================================= */

/* ══════════════════════════════════════════════════════════════════════════════════════════════
   1 · TOKENS — LIGHT.  One declaration each; between them they carry 242 of the 497 failing crops.
   ══════════════════════════════════════════════════════════════════════════════════════════════ */

/* --fsc-muted  #6a6a8b -> #656585   4.32 -> 4.65 : 1 on #e8e9fa (its worst measured ground)
   56 failing crops, 7 selector families, on connections, developers, gamification, maven-today, mc-home, media-library, podcast-studio, studio-brand-kits
   div, div.al, div.fc-st-sub, div.pg, div.rar, p.cn-note, span */
html:root:not(.fs-dark):not([data-theme="dark"]) { --fsc-muted: #656585; }

/* --ink-3  #8a8aa6 -> #6a6a8b   2.97 -> 4.61 : 1 on #f0f1f8 (its worst measured ground)
   35 failing crops, 11 selector families, on maven-today, maven-workspace
   button.mvws-mode, div.mvab-head, div.mvws-act-empty, div.mvws-daydiv, div.mvws-foot, div.mvws-rlbl, small, span.kbd, span.mvd-kbd, span.ttag, span.tv */
html:root:not(.fs-dark):not([data-theme="dark"]) #mvws, html:root:not(.fs-dark):not([data-theme="dark"]) #mvdBar { --ink-3: #6a6a8b; }

/* --ms-faint  #8b93ad -> #646d8d   2.78 -> 4.65 : 1 on #f3f4fa (its worst measured ground)
   34 failing crops, 11 selector families, on memberships
   button.ms-tab, div.hlp, div.ms-pvempty, div.ms-quiet, div.ms-raillbl, div.mvp-pow, div.mvp-seclbl, p.ms-hint, p.ms-mvnote, span, span.mvp-tab */
html:root:not(.fs-dark):not([data-theme="dark"]) { --ms-faint: #646d8d; }

/* --f2-faint  #8b93ad -> #646d8d   2.75 -> 4.60 : 1 on #f1f3f9 (its worst measured ground)
   31 failing crops, 9 selector families, on profile
   button.p2dsel-c, div.p2-at, em, span, span.p2-pron, span.p2dsel-n, span.p2m-ghost, span.p2map-note, span.rk */
html:root:not(.fs-dark):not([data-theme="dark"]) #sn-x { --f2-faint: #646d8d; }

/* --ink3  #8b8ea5 -> #6b6e89   2.99 -> 4.61 : 1 on #f5f6fa (its worst measured ground)
   14 failing crops, 3 selector families, on engagement
   div.fscv-bh, div.fscv-daysep, span.fscv-comp-hint */
html:root:not(.fs-dark):not([data-theme="dark"]) .fscv { --ink3: #6b6e89; }

/* --tmr-mut  #7c7d95 -> #6b6c84   3.63 -> 4.62 : 1 on #f2f3fa (its worst measured ground)
   14 failing crops, 4 selector families, on team-members
   button, div.tmr-none, p.lede, span */
html:root:not(.fs-dark):not([data-theme="dark"]) .tmr { --tmr-mut: #6b6c84; }

/* --sub  #8a8aa5 -> #6b6b8c   3.06 -> 4.66 : 1 on #f3f4fa (its worst measured ground)
   12 failing crops, 2 selector families, on retail
   div.px-sub, span */
html:root:not(.fs-dark):not([data-theme="dark"]) .fspx { --sub: #6b6b8c; }

/* --dim  #9a9ab0 -> #696986   2.40 -> 4.61 : 1 on #edeff5 (its worst measured ground)
   12 failing crops, 4 selector families, on hermes
   div.cv-eyebrow, small, span.badge.b-idle, span.m */
html:root:not(.fs-dark):not([data-theme="dark"]) .fhcc { --dim: #696986; }

/* --fsc-ok  #0d8128 -> #0d7d27   4.38 -> 4.61 : 1 on #ddf6e2 (its worst measured ground)
   6 failing crops, 2 selector families, on api-keys, security
   span.sec-gpill.ok, span.v-badge.ok */
html:root:not(.fs-dark):not([data-theme="dark"]) { --fsc-ok: #0d7d27; }

/* --fsai-muted-fg  #6670a0 -> #616b9d   4.33 -> 4.64 : 1 on #f0f4f8 (its worst measured ground)
   6 failing crops, 2 selector families, on studio-create-video
   a.mseg, div.idle */
html:root:not(.fs-dark):not([data-theme="dark"]) .fsai { --fsai-muted-fg: #616b9d; }

/* --p2-kelly  #4cbb17 -> #337e10   2.27 -> 4.61 : 1 on #fbfbfc (its worst measured ground)
   5 failing crops, 3 selector families, on profile
   button.p2-tab.on, button.p2dsel-c.on, span.p2x-mo.up */
html:root:not(.fs-dark):not([data-theme="dark"]) #sn-x { --p2-kelly: #337e10; }

/* --kelt  #0f9b30 -> #0c8028   3.33 -> 4.63 : 1 on #f3f4fa (its worst measured ground)
   4 failing crops, 2 selector families, on files
   button.on, span */
html:root:not(.fs-dark):not([data-theme="dark"]) .fmx { --kelt: #0c8028; }

/* --p2-cyan  #0b93aa -> #09798c   3.31 -> 4.63 : 1 on #f2f4fa (its worst measured ground)
   3 failing crops, 3 selector families, on profile
   span.lb, span.p2-eyebrow, span.p2x-lb */
html:root:not(.fs-dark):not([data-theme="dark"]) #sn-x { --p2-cyan: #09798c; }

/* --ms-green  #4cbb17 -> #337e10   2.27 -> 4.63 : 1 on #f3f4fa (its worst measured ground)
   2 failing crops, 1 selector family, on memberships
   button.ms-tab.on */
html:root:not(.fs-dark):not([data-theme="dark"]) { --ms-green: #337e10; }

/* --tmr-fant  #a3a4bb -> #6a6b8f   2.23 -> 4.65 : 1 on #f3f4fa (its worst measured ground)
   2 failing crops, 1 selector family, on team-members
   div.tmr-eyebrow */
html:root:not(.fs-dark):not([data-theme="dark"]) .tmr { --tmr-fant: #6a6b8f; }

/* --ms-cyan  #0b93aa -> #09798c   3.32 -> 4.64 : 1 on #f3f4fa (its worst measured ground)
   2 failing crops, 1 selector family, on memberships
   span.ms-eyebrow */
html:root:not(.fs-dark):not([data-theme="dark"]) { --ms-cyan: #09798c; }

/* --em-cyan  #0b93aa -> #09798c   3.32 -> 4.64 : 1 on #f3f4fa (its worst measured ground)
   2 failing crops, 1 selector family, on event-management
   span.em-eyebrow */
html:root:not(.fs-dark):not([data-theme="dark"]) { --em-cyan: #09798c; }

/* --gold  #d6307a -> #c7276f   4.00 -> 4.62 : 1 on #eeeefa (its worst measured ground)
   1 failing crops, 1 selector family, on board-detail
   div */
html:root:not(.fs-dark):not([data-theme="dark"]) #mc-board { --gold: #c7276f; }

/* --mvt-amber-t  #a35c05 -> #9c5805   4.34 -> 4.66 : 1 on #f4eae5 (its worst measured ground)
   1 failing crops, 1 selector family, on maven-today
   span.mvt-chip.ask */
html:root:not(.fs-dark):not([data-theme="dark"]) #mvtoday { --mvt-amber-t: #9c5805; }

/* ══════════════════════════════════════════════════════════════════════════════════════════════
   2 · TOKENS — DARK.  255 of the failing crops.  Written at one class MORE than a page's own
   `html.fs-dark` twin, and on BOTH the class and the attribute: MC-COLOR-SCHEME-GATE-B measured
   `fs-dark` tracking the painted theme in 96 of 96 cells while `data-theme` was absent in 48.
   ══════════════════════════════════════════════════════════════════════════════════════════════ */

/* --hwx-mut-2  #72748e -> #9092a6   3.10 -> 4.62 : 1 on #272848
   92 failing crops, 13 families, on my-website
   div.exp, div.eyebrow, div.fl, div.foot, div.nh, div.pl, div.s, div.v.tnum, i, span, span.arch, span.gl, span.jtag */
html.fs-dark:root #myw,
html[data-theme="dark"]:root #myw { --hwx-mut-2: #9092a6; }

/* --cw-faint  #6d7590 -> #7e859d   3.73 -> 4.64 : 1 on #171a34
   34 failing crops, 6 families, on client-work, client-work-clients
   button, button.cw-tab, div.cld-lab, span, span.cw-amtsub, span.cw-live.ok */
html.fs-dark:root,
html[data-theme="dark"]:root { --cw-faint: #7e859d; }

/* --ms-faint  #6d7590 -> #80879f   3.63 -> 4.65 : 1 on #1b1d31
   30 failing crops, 9 families, on memberships
   button.ms-tab, div.hlp, div.ms-pvempty, div.ms-quiet, div.ms-raillbl, div.mvp-pow, div.mvp-seclbl, span, span.mvp-tab */
html.fs-dark:root,
html[data-theme="dark"]:root { --ms-faint: #80879f; }

/* --f2-faint  #6d7590 -> #777f98   4.04 -> 4.60 : 1 on #0c1320
   30 failing crops, 9 families, on profile
   button.p2dsel-c, div.p2-at, em, span, span.p2-pron, span.p2dsel-n, span.p2m-ghost, span.p2map-note, span.rk */
html.fs-dark:root #sn-x,
html[data-theme="dark"]:root #sn-x { --f2-faint: #777f98; }

/* --cjx-mut-2  #72748e -> #84869d   3.62 -> 4.62 : 1 on #1d1e2b
   24 failing crops, 4 families, on lead-hub
   div.cjx-sub, label, span.cjx-origin, span.cjx-sub */
html.fs-dark:root #lhx,
html[data-theme="dark"]:root #lhx { --cjx-mut-2: #84869d; }

/* --ink-3  #7a7c98 -> #8688a1   3.95 -> 4.63 : 1 on #1b2036
   15 failing crops, 7 families, on maven-workspace
   button.mvws-mode, div.mvab-head, div.mvws-act-empty, div.mvws-rlbl, span.kbd, span.ttag, span.tv */
html.fs-dark:root #mvws, html.fs-dark:root #mvdBar,
html[data-theme="dark"]:root #mvws, html[data-theme="dark"]:root #mvdBar { --ink-3: #8688a1; }

/* --ink3  #7a7c96 -> #84869e   4.05 -> 4.62 : 1 on #1d1e2b
   12 failing crops, 2 families, on engagement
   div.fscv-bh, div.fscv-daysep */
html.fs-dark:root .fscv,
html[data-theme="dark"]:root .fscv { --ink3: #84869e; }

/* --hwx-ok  #0f8729 -> #119d30   3.56 -> 4.64 : 1 on #1c1e2a
   10 failing crops, 2 families, on my-website
   div.fv, span.jtag */
html.fs-dark:root #myw,
html[data-theme="dark"]:root #myw { --hwx-ok: #119d30; }

/* --dim  #5f6076 -> #808199   2.89 -> 4.65 : 1 on #171725
   6 failing crops, 3 families, on hermes
   div.cv-eyebrow, span.badge.b-idle, span.m */
html.fs-dark:root .fhcc,
html[data-theme="dark"]:root .fhcc { --dim: #808199; }

/* --tmr-fant  #75768c -> #7c7d92   4.18 -> 4.61 : 1 on #0c1320
   2 failing crops, 1 family, on team-members
   div.tmr-eyebrow */
html.fs-dark:root .tmr,
html[data-theme="dark"]:root .tmr { --tmr-fant: #7c7d92; }

/* ══════════════════════════════════════════════════════════════════════════════════════════════
   3 · PER-FAMILY INK — the text no token reaches.  102 crops over 27 rules.
   🔴 THE SELECTOR IS THE RULE THAT WON THE CASCADE, MEASURED OFF `document.styleSheets`, not
   REWALK's family name.  A third of the families are called `span`, `div`, `a` or `button`,
   and a stylesheet rule on `span` repaints the estate.  `.dk-cat .bl` is what paints `p.bl`.
   ══════════════════════════════════════════════════════════════════════════════════════════════ */

/* .dk-cat .bl  #7c7d95 -> #70718a   3.89 -> 4.60 : 1 on #fbfbfe   (light, 34 crops, docs)
   declared in <style> in the document; painting p.bl */
html:root:not(.fs-dark):not([data-theme="dark"]) body .dk-cat .bl { color: #70718a; }

/* .gl-links a  #6b6b86 -> #86869e   3.20 -> 4.65 : 1 on #1d1e2b   (dark, 6 crops, developers, golive, inbound-forms, studio-gallery)
   declared in <style> in the document; painting a */
html.fs-dark:root body .gl-links a,
html[data-theme="dark"]:root body .gl-links a { color: #86869e; }

/* .sh-door .dsub  #83849c -> #70728d   3.59 -> 4.61 : 1 on #fdfdfd   (light, 6 crops, support-hub)
   declared in <style> in the document; painting p.dsub */
html:root:not(.fs-dark):not([data-theme="dark"]) body .sh-door .dsub { color: #70728d; }

/* .mbo-toolschip  #2c7f89 -> #29757e   4.05 -> 4.63 : 1 on #ddf3f7   (light, 6 crops, mc-home, media-library, studio-brand-kits)
   declared in <style> in the document; painting span.mbo-toolschip */
html:root:not(.fs-dark):not([data-theme="dark"]) body .mbo-toolschip { color: #29757e; }

/* .mvt-jump .jt  #8f8dc4 -> #9795c8   4.21 -> 4.63 : 1 on #2c2c58   (light, 5 crops, maven-today)
   declared in <style> in the document; painting span.jt */
html:root:not(.fs-dark):not([data-theme="dark"]) body .mvt-jump .jt { color: #9795c8; }

/* .mf-sbx .mu  #94a3b8 -> #607591   2.50 -> 4.60 : 1 on #fcfcfd   (light, 4 crops, money-flow)
   declared in <style> in the document; painting div.mu */
html:root:not(.fs-dark):not([data-theme="dark"]) body .mf-sbx .mu { color: #607591; }

/* .mf-sbx h5  #8a8fae -> #686e96   2.97 -> 4.62 : 1 on #f7f7fe   (light, 4 crops, money-flow)
   declared in <style> in the document; painting h5 */
html:root:not(.fs-dark):not([data-theme="dark"]) body .mf-sbx h5 { color: #686e96; }

/* .sec-form label  #5b5b78 -> #8585a2   2.52 -> 4.61 : 1 on #1d1e2b   (dark, 2 crops, engagement, security)
   declared in <style> in the document; painting label */
html.fs-dark:root body .sec-form label,
html[data-theme="dark"]:root body .sec-form label { color: #8585a2; }

/* .dk-kick  #9092ad -> #6d7093   2.94 -> 4.63 : 1 on #fbfbfc   (light, 2 crops, docs)
   declared in <style> in the document; painting div.dk-kick */
html:root:not(.fs-dark):not([data-theme="dark"]) body .dk-kick { color: #6d7093; }

/* .cy-sub  #7b7c96 -> #6b6c87   3.70 -> 4.64 : 1 on #f3f4fa   (light, 2 crops, company)
   declared in <style> in the document; painting p.cy-sub */
html:root:not(.fs-dark):not([data-theme="dark"]) body .cy-sub { color: #6b6c87; }

/* .cy-seatline  #7b7c96 -> #70718d   4.00 -> 4.65 : 1 on #fdfdfd   (light, 4 crops, company)
   declared in <style> in the document; painting p.cy-seatline, span.cy-seatline */
html:root:not(.fs-dark):not([data-theme="dark"]) body .cy-seatline { color: #70718d; }

/* .bk-pill.confirmed  #12854e -> #117e4a   4.23 -> 4.62 : 1 on #e8f7ef   (light, 2 crops, bookings)
   declared in <style> in the document; painting span.bk-pill.confirmed */
html:root:not(.fs-dark):not([data-theme="dark"]) body .bk-pill.confirmed { color: #117e4a; }

/* .mvhc-ex  #a06a00 -> #976400   4.20 -> 4.62 : 1 on #fdf3e6   (light, 2 crops, maven-help-center)
   declared in <style> in the document; painting span.mvhc-ex */
html:root:not(.fs-dark):not([data-theme="dark"]) body .mvhc-ex { color: #976400; }

/* .dv-pill.ask  #d62055 -> #bf1d4c   3.84 -> 4.61 : 1 on #f0dce7   (light, 2 crops, developers-docs)
   declared in <style> in the document; painting span.dv-pill.ask */
html:root:not(.fs-dark):not([data-theme="dark"]) body .dv-pill.ask { color: #bf1d4c; }

/* .dv-pill.money  #d62055 -> #bf1d4c   3.84 -> 4.61 : 1 on #f0dce7   (light, 2 crops, developers-docs)
   declared in <style> in the document; painting span.dv-pill.money */
html:root:not(.fs-dark):not([data-theme="dark"]) body .dv-pill.money { color: #bf1d4c; }

/* .dv-pill.green  #0d8128 -> #0c7725   4.04 -> 4.60 : 1 on #d3edde   (light, 2 crops, developers-docs)
   declared in <style> in the document; painting span.dv-pill.green */
html:root:not(.fs-dark):not([data-theme="dark"]) body .dv-pill.green { color: #0c7725; }

/* .dv-pill.amber  #956600 -> #8b5f00   4.11 -> 4.60 : 1 on #f2e7d7   (light, 2 crops, developers-docs)
   declared in <style> in the document; painting span.dv-pill.amber */
html:root:not(.fs-dark):not([data-theme="dark"]) body .dv-pill.amber { color: #8b5f00; }

/* html .qp-cpill.ok  #0b7223 -> #11ad35   2.26 -> 4.63 : 1 on #173227   (dark, 2 crops, quick-start)
   declared in fs-a11y-contrast-0918.css; painting span.qp-cpill.ok */
html.fs-dark:root body .qp-cpill.ok,
html[data-theme="dark"]:root body .qp-cpill.ok { color: #11ad35; }

/* .dv-pill.amber  #956600 -> #c48600   2.85 -> 4.62 : 1 on #302920   (dark, 2 crops, developers-docs)
   declared in <style> in the document; painting span.dv-pill.amber */
html.fs-dark:root body .dv-pill.amber,
html[data-theme="dark"]:root body .dv-pill.amber { color: #c48600; }

/* .dv-pill.green  #0d8128 -> #11a533   2.99 -> 4.61 : 1 on #0c2c22   (dark, 2 crops, developers-docs)
   declared in <style> in the document; painting span.dv-pill.green */
html.fs-dark:root body .dv-pill.green,
html[data-theme="dark"]:root body .dv-pill.green { color: #11a533; }

/* .dv-pill.ask  #d62055 -> #e54f7a   3.38 -> 4.62 : 1 on #271729   (dark, 2 crops, developers-docs)
   declared in <style> in the document; painting span.dv-pill.ask */
html.fs-dark:root body .dv-pill.ask,
html[data-theme="dark"]:root body .dv-pill.ask { color: #e54f7a; }

/* .dv-pill.money  #d62055 -> #e54f7a   3.38 -> 4.62 : 1 on #271729   (dark, 2 crops, developers-docs)
   declared in <style> in the document; painting span.dv-pill.money */
html.fs-dark:root body .dv-pill.money,
html[data-theme="dark"]:root body .dv-pill.money { color: #e54f7a; }

/* .wn-sub  #6b7194 -> #676c8e   4.33 -> 4.65 : 1 on #f3f4fa   (light, 1 crop, whats-new)
   declared in <style> in the document; painting p.wn-sub */
html:root:not(.fs-dark):not([data-theme="dark"]) body .wn-sub { color: #676c8e; }

/* .p2c-momentum .k  #d6307a -> #cd2972   4.19 -> 4.60 : 1 on #f3f4fa   (light, 1 crop, profile)
   declared in <style> in the document; painting span.k */
html:root:not(.fs-dark):not([data-theme="dark"]) body .p2c-momentum .k { color: #cd2972; }

/* .mvws-cr-delta.up  #12833a -> #117e38   4.34 -> 4.63 : 1 on #f1f2f9   (light, 1 crop, maven-workspace)
   declared in <style> in the document; painting span.mvws-cr-delta.up */
html:root:not(.fs-dark):not([data-theme="dark"]) body .mvws-cr-delta.up { color: #117e38; }

/* .mvhc-rag .rs  #6a6a82 -> #67677f   4.42 -> 4.62 : 1 on #eaeafa   (light, 1 crop, maven-help-center)
   declared in <style> in the document; painting div.rs */
html:root:not(.fs-dark):not([data-theme="dark"]) body .mvhc-rag .rs { color: #67677f; }

/* .p2c-momentum .k  #d6307a -> #da4688   4.04 -> 4.61 : 1 on #0c1320   (dark, 1 crop, profile)
   declared in <style> in the document; painting span.k */
html.fs-dark:root body .p2c-momentum .k,
html[data-theme="dark"]:root body .p2c-momentum .k { color: #da4688; }

/* ══════════════════════════════════════════════════════════════════════════════════════════════
   4 · THE COOKIE FOOTER IN DARK — the widest single family in the whole debt, and the one the
   last pass half-corrected.

   SAFARI-A11Y-PASS-0918 lifted `.fscc-footlink` to #7e83a2 and recorded 4.97 : 1 on #13131c.
   Measured from the paint on today's bytes it lands on the member shell's own card, #1c1d2a,
   where the same colour is 4.49 : 1 — under the bar by a hundredth, on 39 renders across the
   whole member surface.  REWALK-FINAL-0919 reported this family at 1.70 : 1; that number is an
   instrument artefact (two crops with bgShare 0.99 and 0.53 held almost no glyph), and the real
   fault is a near miss, not a disaster.  Both corrections are in RECEIPT.md.

   `.fscc-foottext` INHERITS its colour, so the rule to write is the link's, and this sheet loads
   immediately after fs-a11y-contrast-0918.css in the head — same specificity, later order.
       #7e83a2 -> #979bb4    on #1c1d2a  4.49 -> 4.63 : 1   (39 crops, 27 member pages)
   The consent dock over a violet or teal hero (9 further crops, worst 1.16 on #6e66f6) is NOT
   corrected here: that is white-ish text on a brand fill, and the fill is the fault.          */
html.fs-dark:root body .fscc-footlink,
html.fs-dark:root body .fscc-foottext,
html[data-theme="dark"]:root body .fscc-footlink,
html[data-theme="dark"]:root body .fscc-foottext { color: #979bb4; }

/* ══════════════════════════════════════════════════════════════════════════════════════════════
   5 · THE OPACITY CHAINS — the single largest CAUSE in the debt, and not a colour problem at all.

   `--fsc-muted` is #6a6a8b and clears 4.61 : 1 on white.  Painted through a 0.90 fade on
   `.ovr-cred-bal .al` it arrives as #797997 and reads 3.92; through `.gm-badge.locked`'s 0.92 it
   reads 3.62 on gamification; through podcast-studio's inline 0.55 it arrives as #a3a3b7 and
   reads 2.30.  The token is right.  What the eye receives is the token faded.

   SAFARI-A11Y-PASS-0918 met ONE instance of this (`.fscc-footlink`, opacity .75, 2.81 : 1) and
   its correction was `opacity: 1` — not a darker colour.  This pass measured the carrier of
   every fade with harness/probe-fade.mjs (proof/reports/fade-B.json) rather than inferring it,
   because `opacity: 1` has to be written on the element that CARRIES the fade, not on the text.

   Three are deliberately NOT corrected:
     · `.bkx-btn[disabled]` (opacity .5) — a genuinely inactive control.  WCAG 2.1 AA 1.4.3
       exempts inactive components, and SAFARI-A11Y-PASS made exactly this call for
       `#fs-reg-submit.af-btn[disabled]`.  Left, named, deliberate.
     · every fade written as an INLINE style attribute by the page's PHP (`.pod-card`,
       `#cw .cw-row`, `#sn-x button.p2dsel-c`, and one `i` on /settings) — only `!important`
       could reach it, and an `!important` on a page-generated element is a worse defect than
       the one it fixes.  Those four are page fixes and are handed over with their numbers.
     · money-flow's `.mf-hero`/`.mf-walside` fades (.88–.95) — white text on a mid-green tile.
       The fade is not what fails there; the tile is.
   ══════════════════════════════════════════════════════════════════════════════════════════════ */

/* the credit balance under the rail header — `--fsc-muted` at 0.90 reads 3.92 on #fdfdfd
   light and #7f7f9b / 4.40 on #1a1b26 dark; on mc-home, media-library and studio-brand-kits */
html:root:not(.fs-dark):not([data-theme="dark"]) body .ovr-cred-bal .al,
html.fs-dark:root body .ovr-cred-bal .al,
html[data-theme="dark"]:root body .ovr-cred-bal .al { opacity: 1; }

/* the locked achievement badges on /gamification — 0.92 over `--fsc-muted`, 3.62 : 1 on 52 of
   the 56 `--fsc-muted` light crops.  The LOCKED state is carried by the badge's own greyscale
   fill and its lock glyph, both untouched, so removing the text fade costs no affordance. */
html:root:not(.fs-dark):not([data-theme="dark"]) body .gm-badge.locked { opacity: 1; }

/* the calendar's OFF filter pills — `--cx-mut` #6d6d90 at 0.294 arrives as #cecedc and reads
   1.42 : 1, the worst reading on /calendar in either scheme.  Decision taken without asking:
   the pill's OFF state is also carried by its own paler FILL and its border, which are left
   exactly as designed, so the word inside it can be legible without the state being lost.
   An intermediate opacity was tried first and measured 3.5 — not enough; 1 is the value. */
html:root:not(.fs-dark):not([data-theme="dark"]) body .cx-pill.off,
html:root:not(.fs-dark):not([data-theme="dark"]) body .cx-pill.off .ct,
html.fs-dark:root body .cx-pill.off,
html.fs-dark:root body .cx-pill.off .ct { opacity: 1; }

/* /studio-flow's count chips — 0.66 / 0.72 / 0.80 fades on the numbers themselves */
html:root:not(.fs-dark):not([data-theme="dark"]) body .stzp-flt button .n,
html:root:not(.fs-dark):not([data-theme="dark"]) body .stzp-cat .n,
html.fs-dark:root body .stzp-flt button .n,
html.fs-dark:root body .stzp-cat .n { opacity: 1; }

/* the rest of the measured non-inline, non-disabled fades, each on its own carrier:
     .mvt-ev .t em          0.72  /maven-today
     .fc-st-sub             0.80  /maven-today  (declared in assets/fs/fs-pages.css)
     .lc-setup p            0.92  /golive
     #admin-dashboard .ac-lf-mono span   0.96  /academy
     #sn-x .p2m.soft        0.70  /profile
     .fsai .fsai-btn .fsai-price  0.82  /studio-create-video                                   */
html:root:not(.fs-dark):not([data-theme="dark"]) body .mvt-ev .t em,
html:root:not(.fs-dark):not([data-theme="dark"]) body .fc-st-sub,
html:root:not(.fs-dark):not([data-theme="dark"]) body .lc-setup p,
html:root:not(.fs-dark):not([data-theme="dark"]) body #admin-dashboard .ac-lf-mono span,
html:root:not(.fs-dark):not([data-theme="dark"]) body #sn-x .p2m.soft,
html:root:not(.fs-dark):not([data-theme="dark"]) body .fsai .fsai-btn .fsai-price,
html.fs-dark:root body .mvt-ev .t em,
html.fs-dark:root body .fc-st-sub,
html.fs-dark:root body #sn-x .p2m.soft { opacity: 1; }

