﻿/* extracted verbatim 2026-08-28 estate speed sweep. New content = new filename. */

        :root {
            /* Mapped onto the locked Site.Master design tokens (no local re-declaration of master tokens). */
            --r-bg: var(--void); --r-panel: var(--panel); --r-card: var(--panel-2); --r-border: var(--line);
            --r-text: var(--ink); --r-muted: var(--ink-dim); --r-dim: var(--ink-faint);
            --r-primary: var(--action-hi); --r-pos: var(--model); --r-neg: var(--book); --r-gold: var(--gold);
            --r-radius: 16px; --r-font: var(--ui); --r-mono: var(--mono);
        }
        .rwrap { max-width: 1000px; margin: 0 auto; padding: 26px 5% 72px; box-sizing: border-box; color: var(--r-text); font-family: var(--r-font); }

        /* ---- Ambient-lift card (radial top-light via ::after), shared across primary surfaces ---- */
        .r-lift { position: relative; background: var(--r-panel); border: 1px solid var(--card-edge); border-radius: var(--r-radius); box-shadow: 0 20px 42px -24px var(--accent-glow); overflow: hidden; }
        .r-lift::after { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 140px; pointer-events: none; background: radial-gradient(120% 100% at 50% -30%, rgba(70,140,255,.14), transparent 70%); }
        .r-lift > * { position: relative; z-index: 1; }

        .rcrumbs { font-size: .72rem; font-family: var(--r-mono); color: var(--r-dim); letter-spacing: .05em; text-transform: uppercase; margin-bottom: 1.1rem; }
        .rcrumbs a { color: var(--r-dim); text-decoration: none; display: inline-block; padding: 6px 2px; min-height: 32px; } .rcrumbs a:hover { color: var(--r-primary); } .rcrumbs span { margin: 0 6px; color: var(--r-border); }

        .rhero { margin-bottom: 1.8rem; }
        .rhero h1 { font-family: var(--display); font-size: clamp(2rem, 6.5vw, 3.1rem); font-weight: 800; letter-spacing: -.025em; line-height: 1.05; margin: 0 0 .7rem; }
        .rhero h1 em { font-style: normal; color: var(--r-primary); }
        .rhero p.lede { color: var(--r-muted); font-size: 1.05rem; line-height: 1.6; margin: 0; max-width: 660px; }
        .rbadge { display: inline-flex; align-items: center; gap: 8px; font-size: .72rem; font-family: var(--r-mono); text-transform: uppercase; letter-spacing: .06em; color: var(--action-hi); background: rgba(70,140,255,.1); border: 1px solid var(--card-edge); padding: 6px 12px; border-radius: 999px; margin-bottom: 1.15rem; }
        .rdot { width: 7px; height: 7px; border-radius: 50%; background: var(--action-hi); box-shadow: 0 0 0 0 rgba(70,140,255,.6); animation: rpulse 2s infinite; }
        @keyframes rpulse { 0% { box-shadow: 0 0 0 0 rgba(70,140,255,.5);} 70% { box-shadow: 0 0 0 7px rgba(70,140,255,0);} 100% { box-shadow: 0 0 0 0 rgba(70,140,255,0);} }

        /* ---- Dollar-led mega hero: one big TRUE number the ICP can read, above everything ---- */
        .rmega { text-align: center; padding: 30px 22px 26px; margin: 0 0 1.15rem; }
        .rmega .mv { font-family: var(--r-mono); font-variant-numeric: tabular-nums; font-weight: 800; font-size: clamp(2.7rem, 12vw, 4.6rem); line-height: 1; letter-spacing: -.025em; }
        .rmega .ml { font-size: .95rem; color: var(--r-muted); margin-top: 13px; line-height: 1.5; }
        .rmega .ml strong { color: var(--r-text); }

        /* ---- Hero KPI tiles: the verified record, above the fold ---- */
        .rkpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin: 0 0 .9rem; }
        .rkpi { padding: 22px 16px; text-align: center; }
        .rkpi .v { font-family: var(--r-mono); font-variant-numeric: tabular-nums; font-size: clamp(1.5rem, 5.2vw, 2.2rem); font-weight: 700; line-height: 1; }
        .rkpi .l { font-size: .67rem; text-transform: uppercase; letter-spacing: .07em; color: var(--r-dim); margin-top: 10px; }
        /* [2026-07-30] Three big tiles. Bigger type than the old four-up because there is more
           room per tile, and these are the page's primary credibility statement. */
        .rkpis-3 { grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 1.1rem; }
        .rkpis-3 .rkpi { padding: 30px 18px; }
        .rkpis-3 .rkpi .v { font-size: clamp(1.9rem, 6.4vw, 3rem); letter-spacing: -.02em; }
        .rkpis-3 .rkpi .l { font-size: .7rem; margin-top: 12px; }
        .wl-sep { font-size: .5em; font-weight: 700; color: var(--r-dim); margin: 0 .32em 0 .1em; vertical-align: .25em; }
        .pos { color: var(--r-pos); } .neg { color: var(--r-neg); } .neutral { color: var(--r-text); }
        .rnote { font-size: .82rem; color: var(--r-muted); margin: .3rem 0 0; }

        /* ---- Kind-mirror stat chips: the full record stays (every sign honest), but a losing
               window/sport reads as a calm, tinted chip — never a big alarming red number. Up =
               confident green tint; down = quiet book-tint with muted ink, sign preserved. ---- */
        .chip { display: inline-block; padding: 3px 9px; border-radius: 999px; font-weight: 600; font-family: var(--r-mono); font-variant-numeric: tabular-nums; line-height: 1.3; }
        .chip.up { color: var(--r-pos); background: var(--model-dim); }
        .chip.dn { color: var(--r-muted); background: var(--book-dim); }
        /* 2026-07-25: a losing window must LOOK like one. Previously every period chip was
           hard-coded "up" (green) whatever the sign, and losing windows were skipped entirely. */
        .chip.down { color: var(--r-neg); background: var(--book-dim); }
        .chip.neu { color: var(--r-muted); background: var(--book-dim); letter-spacing:.02em; }
        .dsub { font-family: var(--r-mono); font-variant-numeric: tabular-nums; font-size: .78rem; color: var(--r-dim); }
        .rhonest { font-size: .84rem; color: var(--r-muted); line-height: 1.55; margin: 1rem 0 0; padding-left: 12px; border-left: 2px solid var(--card-edge); }
        .rhonest strong { color: var(--r-text); font-weight: 600; }

        .rsection { margin-top: 3rem; }
        .rsection > h2 { font-family: var(--display); font-size: 1.45rem; font-weight: 700; margin: 0 0 .4rem; letter-spacing: -.015em; }
        .rsection p.sub { color: var(--r-muted); font-size: .92rem; margin: 0 0 1.2rem; max-width: 640px; }

        /* ---- Period toggle (7 / 30 / 90) as lifted cards ---- */
        .rperiods { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
        .rperiod { padding: 18px; }
        .rperiod.hl { border-color: var(--card-edge); box-shadow: 0 20px 42px -22px var(--accent-glow), 0 0 0 1px var(--r-primary) inset; }
        .rperiod .pl { font-family: var(--r-mono); font-size: .7rem; text-transform: uppercase; letter-spacing: .06em; color: var(--r-muted); margin-bottom: 12px; display: flex; align-items: center; justify-content: space-between; }
        .rperiod.hl .pl::after { content: "FOCUS"; font-size: .56rem; color: var(--action-hi); background: rgba(70,140,255,.12); border: 1px solid var(--card-edge); padding: 2px 6px; border-radius: 4px; letter-spacing: .08em; }
        .rperiod .row { display: flex; justify-content: space-between; align-items: baseline; font-size: .88rem; padding: 7px 0; border-top: 1px solid var(--r-border); }
        .rperiod .row:first-of-type { border-top: none; }
        .rperiod .row .k { color: var(--r-muted); } .rperiod .row .vv { font-family: var(--r-mono); font-variant-numeric: tabular-nums; font-weight: 600; }

        /* ---- By-sport table ---- */
        .rtable-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: var(--r-radius); }
        table.rtable { width: 100%; border-collapse: collapse; font-size: .9rem; min-width: 360px; }
        table.rtable caption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
        table.rtable th { text-align: right; font-size: .67rem; text-transform: uppercase; letter-spacing: .06em; color: var(--r-muted); padding: 11px 10px; border-bottom: 1px solid var(--line-strong); white-space: nowrap; }
        table.rtable th:first-child { text-align: left; }
        table.rtable td { text-align: right; padding: 12px 10px; border-bottom: 1px solid var(--r-border); font-family: var(--r-mono); font-variant-numeric: tabular-nums; white-space: nowrap; }
        table.rtable tbody tr:last-child td { border-bottom: none; }
        table.rtable tbody tr:hover td { background: rgba(70,140,255,.04); }
        table.rtable td:first-child { text-align: left; font-family: var(--r-font); font-weight: 600; }
        table.rtable td:first-child a { color: var(--r-text); text-decoration: none; border-bottom: 1px dotted var(--r-dim); padding: 4px 0; display: inline-block; }
        table.rtable td:first-child a:hover { color: var(--r-primary); border-color: var(--r-primary); }

        /* ---- Cell-by-cell record (radical-transparency surface: honest red allowed here) ---- */
        /* [2026-08-07b] fit desktop WITHOUT sideways scrolling: fewer columns (ceiling
           retired), tighter cells, and the table takes the wrap's full width. The wrap
           still scrolls as a fallback on genuinely narrow desktop windows. */
        table.rcells { min-width: 660px; width: 100%; }
        table.rcells td { font-size: .8rem; padding-left: 6px; padding-right: 6px; }
        table.rcells th { padding-left: 6px; padding-right: 6px; }
        /* [2026-08-07c owner] NO SIDEWAYS SCROLL ON DESKTOP. Two causes, two fixes:
           (1) the base .rtable rule nowraps EVERY cell, so long combination names set the
               table's natural width past the 1000px page column — let the name cell wrap;
           (2) on wide screens the record tables break out of the page column and use the
               screen (capped at 1280px) — the data earns the width. */
        table.rcells td:first-child { white-space: normal; overflow-wrap: anywhere; min-width: 200px; }
        @media (min-width: 1040px) {
            #cell-record .rtable-wrap, .vetofold .rtable-wrap {
                width: min(92vw, 1280px);
                position: relative; left: 50%; transform: translateX(-50%);
            }
        }
        .vchip { display: inline-block; padding: 3px 10px; border-radius: 999px; font-family: var(--r-mono); font-size: .64rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; }
        .vchip.ev { color: var(--r-pos); background: var(--model-dim); }
        .vchip.veto { color: var(--r-neg); background: var(--book-dim); }
        .vchip.build { color: var(--r-muted); background: rgba(70,140,255,.08); border: 1px solid var(--card-edge); }
        /* [2026-08-07] story-layer additions: moving-window strip, three-act section heads,
           live-tonight chips, dollar cells. All built from the page's existing tokens. */
        .movstrip { display: flex; gap: 10px; overflow-x: auto; padding: 4px 2px 10px; -webkit-overflow-scrolling: touch; scrollbar-width: thin; }
        .movchip { flex: 0 0 auto; min-width: 118px; background: var(--r-panel); border: 1px solid var(--line-strong); border-radius: 13px; padding: 11px 14px; }
        .movchip .mk { font-family: var(--r-mono); font-size: .6rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--r-muted); white-space: nowrap; }
        .movchip .mv { font-family: var(--r-mono); font-size: 1.18rem; font-weight: 800; margin-top: 4px; font-variant-numeric: tabular-nums; }
        .movchip .mn { font-size: .68rem; color: var(--r-muted); margin-top: 3px; white-space: nowrap; }
        .movchip.best { border-color: var(--r-pos); box-shadow: inset 0 0 0 1px var(--model-dim); }
        .movchip.best .mk { color: var(--r-pos); }
        .cellsec { margin-top: 26px; }
        .cellsec .csh { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin: 0 0 4px; }
        .cellsec .csh h3 { margin: 0; font-size: 1.05rem; }
        .cellsec .csh .csn { font-family: var(--r-mono); font-size: .72rem; font-weight: 700; color: var(--r-muted); }
        .cellsec .csw { color: var(--r-muted); font-size: .82rem; margin: 0 0 10px; }
        .cellsec.cs-ev .csh h3 { color: var(--r-pos); }
        .cellsec.cs-veto .csh h3 { color: var(--r-neg); }
        /* [2026-08-07b] the retired reds live behind one honest click */
        .vetofold { margin-top: 26px; }
        .vetofold summary { cursor: pointer; list-style: none; background: var(--r-panel); border: 1px solid var(--line-strong); border-radius: 13px; padding: 14px 18px; font-size: .9rem; color: var(--r-muted); }
        .vetofold summary::-webkit-details-marker { display: none; }
        .vetofold summary .vfh { font-weight: 800; color: var(--r-text); }
        .vetofold summary .vfa { float: right; color: var(--r-muted); transition: transform .15s; }
        .vetofold[open] summary .vfa { transform: rotate(180deg); }
        .vetofold summary:hover { border-color: var(--card-edge); }
        .livechip { display: inline-flex; align-items: center; gap: 5px; font-family: var(--r-mono); font-size: .6rem; font-weight: 700; letter-spacing: .06em; color: #fda4af; background: rgba(239,68,68,.12); border: 1px solid rgba(239,68,68,.35); border-radius: 999px; padding: 3px 8px; margin-left: 8px; white-space: nowrap; vertical-align: middle; text-decoration: none; }
        .livechip i { width: 5px; height: 5px; border-radius: 50%; background: #ef4444; animation: bbpulse 1.6s infinite; }
        @keyframes bbpulse { 50% { opacity: .35; } }
        @media (prefers-reduced-motion: reduce) { .livechip i { animation: none; } }
        td.cellmoney { font-family: var(--r-mono); font-weight: 800; font-variant-numeric: tabular-nums; white-space: nowrap; }
        td.cellmoney .csub { display: block; font-weight: 500; font-size: .66rem; color: var(--r-muted); margin-top: 2px; }
        /* [2026-08-07 Wave 2] the machine, live: equity card + decisions feed */
        .eqcard { background: var(--r-panel); border: 1px solid var(--line-strong); border-radius: var(--r-radius); padding: 18px 18px 12px; }
        .eqcard .eqk { font-family: var(--r-mono); font-size: .62rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--r-pos); }
        .eqcard .eqc { color: var(--r-muted); font-size: .74rem; margin-top: 8px; }
        .decfeed { display: flex; flex-direction: column; gap: 9px; margin-top: 16px; }
        .dev { display: flex; gap: 13px; background: var(--r-panel); border: 1px solid var(--line-strong); border-radius: 13px; padding: 12px 15px; align-items: flex-start; }
        .dev .dd { font-family: var(--r-mono); font-size: .68rem; font-weight: 700; color: var(--r-muted); min-width: 56px; letter-spacing: .04em; white-space: nowrap; padding-top: 2px; }
        .dev .dbadge { font-family: var(--r-mono); font-size: .6rem; font-weight: 800; letter-spacing: .12em; border-radius: 6px; padding: 4px 8px; white-space: nowrap; }
        .dev.up .dbadge { color: var(--r-pos); background: var(--model-dim); }
        .dev.down .dbadge { color: var(--r-neg); background: var(--book-dim); }
        .dev.watch .dbadge { color: var(--r-muted); background: rgba(70,140,255,.08); border: 1px solid var(--card-edge); }
        .dev .dt { font-size: .86rem; font-weight: 700; min-width: 0; }
        .dev .dt small { display: block; font-weight: 500; font-size: .74rem; color: var(--r-muted); margin-top: 2px; }
        @media (max-width: 640px) { .dev { flex-wrap: wrap; } .dev .dd { min-width: 0; } }
        /* Emerging table (2026-07-30): same grammar as .rcells, but 10 columns because each row
           now carries its own settled record (bets / won / lost / hit rate / units). Own class so
           the mobile column rules below can target it without disturbing the measured table. */
        table.rcells.remg { min-width: 900px; }

        /* ---- WS3: corrected per-market record (winners AND losers, one row per market) ---- */
        table.rmk { min-width: 620px; }
        table.rmk td { font-size: .86rem; }
        table.rmk td:first-child { white-space: normal; min-width: 190px; }
        table.rmk .msport { display: block; font-family: var(--r-mono); font-size: .62rem; letter-spacing: .07em; text-transform: uppercase; color: var(--r-dim); font-weight: 400; margin-bottom: 2px; }
        table.rmk tfoot td { border-top: 2px solid var(--line-strong); border-bottom: none; padding-top: 14px; font-weight: 700; }
        table.rmk tfoot td:first-child { font-family: var(--r-font); }
        .mkhero { padding: 20px 22px; margin: 0 0 1.1rem; }
        .mkhero .mh { font-family: var(--r-mono); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; color: var(--action-hi); margin-bottom: 9px; }
        .mkhero .mb { font-size: 1.02rem; line-height: 1.55; color: var(--r-text); }
        .mkhero .mb b { color: var(--r-pos); }

        /* ---- "What's excluded and why" — the note that makes the page defensible ---- */
        .rexcl { margin-top: 1.4rem; background: var(--r-panel); border: 1px solid var(--r-border); border-radius: var(--r-radius); padding: 20px 22px; }
        .rexcl h3 { font-family: var(--display); font-size: 1.05rem; margin: 0 0 .3rem; }
        .rexcl p.x { font-size: .86rem; color: var(--r-muted); margin: 0 0 .9rem; line-height: 1.55; }
        .rexcl ul { list-style: none; margin: 0; padding: 0; }
        .rexcl li { font-size: .87rem; color: var(--r-muted); line-height: 1.55; padding: 9px 0 9px 26px; border-top: 1px solid var(--r-border); position: relative; }
        .rexcl li:first-child { border-top: none; }
        .rexcl li::before { content: "—"; position: absolute; left: 4px; top: 9px; color: var(--r-dim); font-family: var(--r-mono); }
        .rexcl li strong { color: var(--r-text); font-weight: 600; }
        .rexcl li.keep::before { content: "✓"; color: var(--r-pos); }

        /* ---- Statistical machinery: real detail, kept behind a toggle so the reading path stays plain ---- */
        details.rdet { margin-top: 1.2rem; background: var(--r-panel); border: 1px solid var(--r-border); border-radius: var(--r-radius); }
        details.rdet > summary { cursor: pointer; list-style: none; padding: 15px 20px; font-family: var(--r-mono); font-size: .74rem; letter-spacing: .05em; text-transform: uppercase; color: var(--action-hi); min-height: 44px; display: flex; align-items: center; gap: 9px; }
        details.rdet > summary::-webkit-details-marker { display: none; }
        details.rdet > summary::after { content: "+"; margin-left: auto; font-size: 1.1rem; line-height: 1; color: var(--r-dim); }
        details.rdet[open] > summary::after { content: "\2212"; }
        details.rdet > summary:hover { color: var(--r-text); }
        .rdetbody { padding: 2px 20px 20px; color: var(--r-muted); font-size: .86rem; line-height: 1.65; border-top: 1px solid var(--r-border); }
        .rdetbody p { margin: .8rem 0 0; } .rdetbody strong { color: var(--r-text); }
        .rdetbody code { font-family: var(--r-mono); font-size: .8rem; background: var(--book-dim); padding: 1px 5px; border-radius: 4px; color: var(--r-text); }

        /* ---- Model-edge proof card ---- */
        .redge { padding: 24px; }
        .redge .cap { font-family: var(--r-mono); font-size: .76rem; letter-spacing: .04em; color: var(--action-hi); text-transform: uppercase; }
        .redge .ek { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; margin-top: 16px; }
        .redge .ek div { text-align: center; } .redge .ek .v { font-family: var(--r-mono); font-variant-numeric: tabular-nums; font-size: 1.5rem; font-weight: 700; } .redge .ek .l { font-size: .65rem; text-transform: uppercase; letter-spacing: .06em; color: var(--r-muted); margin-top: 7px; }

        /* ---- Recent settled feed ---- */
        .rfeed { display: flex; flex-direction: column; gap: 9px; }
        .rfeeditem { display: flex; align-items: center; gap: 13px; background: var(--r-panel); border: 1px solid var(--r-border); border-left-width: 3px; border-radius: 11px; padding: 13px 15px; transition: .15s; }
        .rfeeditem:hover { border-color: var(--card-edge); }
        .rfeeditem.w { border-left-color: var(--r-pos); } .rfeeditem.l { border-left-color: var(--r-neg); }
        .rfeeditem .res { font-family: var(--r-mono); font-size: .68rem; font-weight: 700; letter-spacing: .04em; width: 34px; text-align: center; flex: none; }
        .rfeeditem .res.w { color: var(--r-pos); } .rfeeditem .res.l { color: var(--r-neg); }
        .rfeeditem .meat { flex: 1; min-width: 0; } .rfeeditem .sel { font-weight: 600; font-size: .92rem; }
        .rfeeditem .meta { font-size: .73rem; color: var(--r-muted); margin-top: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
        .rfeeditem .rt { font-family: var(--r-mono); font-variant-numeric: tabular-nums; font-size: .84rem; text-align: right; flex: none; }

        /* ---- Methodology (demoted below the core record) ---- */
        .rmeth { background: var(--r-panel); border: 1px solid var(--r-border); border-radius: var(--r-radius); padding: 22px 24px; color: var(--r-muted); font-size: .88rem; line-height: 1.7; }
        .rmeth p { margin: 0 0 .7rem; } .rmeth p:last-child { margin-bottom: 0; }
        .rmeth strong { color: var(--r-text); }
        .rmeth a { color: var(--r-primary); text-decoration: none; border-bottom: 1px solid var(--card-edge); }
        .rmeth a:hover { border-color: var(--r-primary); }

        /* ---- Primary CTA ---- */
        .rcta { margin-top: 3rem; text-align: center; padding: 36px 24px; }
        .rcta h2 { font-family: var(--display); font-size: 1.5rem; margin: 0 0 .45rem; } .rcta p { color: var(--r-muted); margin: 0 0 1.4rem; }
        .rbtn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; background: var(--accent-grad); color: #fff; font-weight: 700; font-size: 1rem; padding: 13px 30px; border-radius: 12px; text-decoration: none; box-shadow: inset 0 1px 0 rgba(255,255,255,.4), 0 12px 28px -8px var(--accent-glow); transition: .18s; }
        .rbtn:hover { filter: brightness(1.06); transform: translateY(-1px); box-shadow: inset 0 1px 0 rgba(255,255,255,.45), 0 16px 34px -8px var(--accent-glow); }

        .rempty { background: var(--r-panel); border: 1px dashed var(--line-strong); border-radius: var(--r-radius); padding: 32px; text-align: center; color: var(--r-muted); }

        /* [2026-07-25] mobile readability: the 8-column cell table keeps its essentials
           (combination, confidence, bets, ROI, verdict) and tucks strike/floor/ceiling away;
           the full table is one sideways swipe (rtable-wrap already scrolls) or desktop. */
        @media (max-width: 640px) {
            /* [2026-08-07b] 8-column layout (ceiling retired): phones keep combination,
               confidence, $ figure, return, verdict; bets/win-rate/worst-case are one
               sideways swipe away (.rtable-wrap scrolls). */
            table.rcells th:nth-child(3), table.rcells td:nth-child(3),
            table.rcells th:nth-child(4), table.rcells td:nth-child(4),
            table.rcells th:nth-child(7), table.rcells td:nth-child(7) { display: none; }
            /* The 7-column "earning their place" table has no money column, so its phone
               view keeps win rate + status instead: show 4 and 7 back, tuck 5 and 6. */
            table.rcells.rbld th:nth-child(4), table.rcells.rbld td:nth-child(4),
            table.rcells.rbld th:nth-child(7), table.rcells.rbld td:nth-child(7) { display: table-cell; }
            table.rcells.rbld th:nth-child(5), table.rcells.rbld td:nth-child(5),
            table.rcells.rbld th:nth-child(6), table.rcells.rbld td:nth-child(6) { display: none; }
            /* [2026-07-30] The 10-column emerging table has different column positions, so the
               generic .rcells rule above would hide the wrong ones. Higher specificity (two
               classes) wins in BOTH directions: put back columns 4 (Won) and 7 (Units), and
               tuck away the statistical rates. On a phone the row reads as plain counts —
               combination, confidence, won, lost, units, progress — and the whole table is one
               sideways swipe away (.rtable-wrap scrolls). */
            table.rcells.remg { min-width: 560px; }
            table.rcells.remg th:nth-child(4), table.rcells.remg td:nth-child(4),
            table.rcells.remg th:nth-child(7), table.rcells.remg td:nth-child(7) { display: table-cell; }
            table.rcells.remg th:nth-child(3), table.rcells.remg td:nth-child(3),
            table.rcells.remg th:nth-child(6), table.rcells.remg td:nth-child(6),
            table.rcells.remg th:nth-child(8), table.rcells.remg td:nth-child(8),
            table.rcells.remg th:nth-child(9), table.rcells.remg td:nth-child(9) { display: none; }
            /* ...but the honest empty state sits in column 3, so it must survive the rule above
               (extra element selector outranks it without needing !important). */
            table.rcells.remg tr td.remg-none { display: table-cell; }
            table.rtable { font-size: .82rem; }
            table.rcells th, table.rcells td { padding: 10px 5px; }
            .rkpis { grid-template-columns: repeat(2,1fr); }
            /* Three tiles stay THREE across on a phone — they are short numbers and reading them
               side by side is the whole point. Type shrinks instead of the grid reflowing. */
            .rkpis-3 { grid-template-columns: repeat(3,1fr); gap: 8px; }
            .rkpis-3 .rkpi { padding: 18px 6px; }
            .rkpis-3 .rkpi .v { font-size: clamp(1.15rem, 5.6vw, 1.7rem); }
            .rkpis-3 .rkpi .l { font-size: .56rem; letter-spacing: .04em; margin-top: 8px; line-height: 1.3; }
            .wl-sep { margin: 0 .18em 0 .06em; }

            /* [2026-07-30 owner] MOBILE TABLES. Hiding columns alone was not enough: every table
               still forces a sideways swipe (min-width 360-560px), and once you swipe, the row
               label scrolls off — so you are reading numbers with no idea which combination they
               belong to. Two fixes, no markup change and no data hidden:
               1. STICKY FIRST COLUMN — the label stays put while the numbers scroll under it.
               2. A SCROLL AFFORDANCE — a soft edge fade so it is obvious there is more to the
                  right, instead of the table just looking cut off. */
            .rtable-wrap { position: relative; }
            .rtable-wrap::after {
                content: ""; position: absolute; top: 0; right: 0; bottom: 0; width: 26px;
                pointer-events: none; border-radius: 0 var(--r-radius) var(--r-radius) 0;
                background: linear-gradient(to right, transparent, var(--r-panel) 82%);
            }
            table.rtable th:first-child, table.rtable td:first-child {
                position: sticky; left: 0; z-index: 2;
                background: var(--r-panel);
                box-shadow: 1px 0 0 var(--r-border);
                max-width: 42vw; white-space: normal; overflow-wrap: anywhere;
            }
            table.rtable tbody tr:hover td:first-child { background: var(--r-panel); }
            .rperiods { grid-template-columns: 1fr; }
            .redge .ek { grid-template-columns: repeat(2,1fr); }
            table.rtable th, table.rtable td { padding: 10px 6px; }
            .rfeeditem { flex-wrap: wrap; } .rfeeditem .sel { white-space: normal; }
            .rfeeditem .rt { margin-left: 47px; text-align: left; }
        }
        @media (prefers-reduced-motion: reduce) {
            .rdot { animation: none; }
            *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
        }
    