/* ═══════════════════════════════════════════════════════════════════════════
   DEED DASHER — EVERY BUTTON, AND EVERY BOX. ONE RULE EACH.
   briefs/JOB-house-look-every-screen.md jobs 4 and 5.

   Erick, 2026-10-01: "all of the buttons on every page should have the same
   effect the desk does, and the top nav buttons; all of the boxes should have
   the same effect as the address on the desk does."

   THE TWO RECIPES THIS FILE OWNS, AND NOTHING ELSE MAY INVENT A THIRD:

     THE BUTTON — the Desk's button. Electric cobalt gradient, LED glow, WHITE
     lettering, radius 13. The brief's own two colours (#2B7BFF -> #005EFC).

     THE BOX — the address tab, option B. Dark glass pane rgba(14,19,28,.9), a
     1px silver edge rgba(160,178,200,.14), silver lettering. The ACTIVE one
     takes the logo blue as a BORDER and a GLOW, never as a fill.

   🔴 WHY THIS IS ITS OWN SHEET AND NOT MORE OF house.css. house.css is 1400
   lines of history, it is imported by app.css ahead of the view sheets, and the
   per-screen rules in desk.css / academy.css / key.css out-specify it by being
   later. A recipe that has to win against forty screens' worth of local rules
   has to be LAST in the cascade, and being last is the only thing that makes
   "one class, one rule" true rather than aspirational. app.css imports this
   after every other sheet.

   🔴 AND IT IS GATED. test/house-buttons.mjs resolves every control's and every
   card's background through the var() chain and fails the build, by file:line,
   on anything that is not one of the recipes below. The tokens in this file are
   asserted by name AND by value there — so the recipe cannot drift either.
   ═══════════════════════════════════════════════════════════════════════════ */

:root {
  /* ─────────────────────────────────────────────────────── THE BUTTON
     🔴 WHITE ON THE TOP OF THIS RAMP IS 3.90:1, AND THAT IS WHY THERE IS A
     THIRD STOP. The brief names two colours: #2B7BFF to #005EFC. Drawn as a
     plain two-stop gradient the TOP of the button is #2B7BFF, and white on
     #2B7BFF measures 3.90:1 — under the 4.5:1 AA floor, on the one control
     every screen in the product is pinned to.

     The fix is not a different colour, it is WHERE THE RAMP ARRIVES. #005EFC is
     pulled up to 34%, so the band a glyph actually occupies — a 15px label
     centred in a 50px button covers roughly 34%-66% of its height — sits at or
     below #005EFC for its whole length.

     Measured down the ramp, white against the composite:
         0%   #2B7BFF   3.90:1    (above the lettering — no glyph here)
        34%   #005EFC   5.24:1
        50%   #0058EE   5.77:1
       100%   #0046C4   7.86:1
     Worst case across the 34%-66% lettering band: 5.24:1.

     34% is not a threshold, it is headroom: the band stays above 4.5:1 with the
     middle stop anywhere up to about 72%, and test/house-buttons.mjs measures
     the real number rather than asserting the position. It is set low so the
     button reads as the Desk's button — top lighter, bottom deeper — rather
     than as a flat slab with a highlight.

     The two colours a Dasher sees at the edges are the brief's two colours. The
     third stop is the brief's own deep cobalt, already in the palette as
     --hs-logo-deep. */
  --hs-btn: linear-gradient(180deg, #2B7BFF 0%, #005EFC 34%, #0046C4 100%);
  --hs-btn-ink: #FFFFFF;
  /* The LED glow. The logo blue's own light, and a cast shadow under it so the
     button sits ON the panel rather than in it. */
  --hs-btn-glow: 0 0 24px rgba(0, 94, 252, .45), 0 8px 22px rgba(0, 0, 0, .50);
  /* The quiet button: the same blue as an OUTLINE, silver lettering, no fill.
     The brief's "ghost buttons = blue outline, silver text". */
  --hs-btn-ghost-line: rgba(0, 94, 252, .55);
  --hs-btn-ghost-ink: #B8C4D6;
  --hs-btn-ghost-wash: rgba(0, 94, 252, .14);

  /* ─────────────────────────────────────────────────────── THE BOX
     The address tab, option B, exactly as it is already live in house.css for
     .cmd-deals .tab — repeated here as tokens so every other box in the product
     reads the same values from one place instead of copying three literals. */
  /* 🔴 THE BOX IS CHARCOAL AGAIN, AND THE BLUE MOVED TO ITS RIM. (Erick 2026-10-03,
     JOB-home-exact.md "ERICK REJECTED ROUND 11": "the color is almost black on the
     mock up, ours is like a blue grey color, it looks washed out ... the colors are
     not vibrant like the mockup".)

     The previous round made every box in the product rgba(10,26,54,.92) — a real
     blue glass — reading the concept addendum's "panel / tile fill #062F5D" as
     applying to every surface. Measured, it does not: CONCEPT-HOME-FRAME.png's hot
     list panel is #091017 and its house card is #010D19, both charcoal. Only the
     FOUR STAT TILES carry #04366D→#062F5D, and they have their own token
     (--hs-tile). Painting the whole product in tile blue is exactly the "blue grey
     ... washed out" Erick rejected: 81% of the frame went blue, so nothing blue
     could read as lit.

     rgba(12,18,27,.92) composites to #0B111A on the ground. The blue is the RIM and
     the GLOW — which is where the concept puts it, and which is what pops when the
     surface under it is near-black. */
  --hs-box: rgba(12, 18, 27, .92);
  --hs-box-line: rgba(43, 123, 255, .34);
  /* Reading silver, raised with the house ramp — see house.css's ink note. */
  --hs-box-ink: #B8C4D6;
  /* 🔴 THE RIM GLOW IS MOST OF THE "POP" AND IT IS ON EVERY BOX AT REST, NOT ONLY
     THE LIT ONE. The brief measured it off the picture: "thin cobalt edge-light on
     every panel (1px #2B7BFF at ~40% + 12px outer glow at ~25%) — the picture's
     panels GLOW at the edges; ours are flat. This is most of the 'pop'." A box that
     only glows when selected is the flat product with a hover state. */
  --hs-box-glow: 0 0 12px rgba(43, 123, 255, .25), inset 0 1px 0 rgba(150, 200, 255, .14);
  /* The one you are on / have selected / are hovering. The SAME pane — the blue is
     its BORDER and its GLOW, never a second fill. That is option B and it is
     Erick's settled call; the rest state already carries blue in the glass now, so
     the lit state is the same light turned up rather than a different colour. */
  --hs-box-on: rgba(12, 18, 27, .95);
  --hs-box-on-line: #2B7BFF;
  --hs-box-on-glow: 0 0 0 1px rgba(43, 123, 255, .30), 0 0 22px rgba(0, 94, 252, .50);
  --hs-box-on-ink: #FFFFFF;
  --hs-box-r: 8px;

  /* ─────────────────────────────────────────────────────── THE TAB
     🔴 A TAB IS NOT A CARD, AND THE BRIEF PICKED A DIFFERENT ANSWER FOR IT.
     (Erick 2026-10-01: "I like D and the addresses are like B" — nav tabs are
     option D in reference/TABS-PLASMA.html, address tabs option B in
     TABS-OPTIONS.html. He chose both, separately, for two different jobs.)

     A tab is one of a set of PLACES you move between, and the one you are on is
     lit from inside: the logo blue as a PLASMA HAZE in the glass, not a border
     round it. A card is one of many THINGS, and the selected one is outlined.
     Same two colours, same glass; what differs is where the blue sits.

     At REST a tab is the box above — that is what makes the row read as one
     set. These are its LIT state only, and they are the values already live in
     house.css for .cmd-dock-item.on, lifted into tokens so the dock, the
     address row and the Dash's stage rail cannot drift from each other. */
  --hs-tab-on: rgba(0, 94, 252, .22);
  --hs-tab-on-line: rgba(95, 163, 255, .75);
  --hs-tab-on-glow: 0 0 0 1px rgba(95, 163, 255, .35), 0 0 20px rgba(0, 94, 252, .45);
  --hs-tab-on-ink: #FFFFFF;
}

/* ═══════════════════════════════════════════════════════════════════════════
   1. THE BUTTON, EVERYWHERE A BUTTON IS.

   🔴 ONE SELECTOR LIST, NOT FORTY LOCAL RULES. Every class below is a control a
   Dasher presses, found by reading the markup rather than by guessing at names
   (test/house-buttons.mjs builds the same list from the same markup and fails if
   a control appears that is not in it). They were, between them, painting: the
   old pale accent gradient, a white slab, --accent-dim, --bg-base, --bg-raised,
   --bg-surface, transparent and three different one-off gradients.

   🔴 !important IS LOAD-BEARING HERE AND IT IS NOT LAZINESS. house.css already
   carries `.btn { background: ... !important }` from the 2026-09-29 pass; a
   later sheet without !important loses to it. Removing the !important there is
   not available to this lane — house.css is being edited by another lane in the
   same run, and a two-lane edit to the same line is how a look ships half-done.
   ═══════════════════════════════════════════════════════════════════════════ */
.btn,
button.btn,
.btn-1,
.btn-sm,
.btn-primary,
.cta,
.hs-cta,
.desk-cta,
.pill-go,
[data-act],
/* the Desk's own two */
.db-go,
.db-fold-link,
.db-say-copy,
.sd-do,
/* the Dash, the Radar, the Buyer Board, MARKET, the Vault */
.wo-go,
.lg-pickbtn,
.lg-export,
.buy-go,
.buy-btn2,
.mkp-open,
.ct-foot .btn,
/* the Key */
.key-btn,
.ksheet-do,
.ksheet-more,
.krow-do,
/* the Academy */
.ac-addr-go,
.ac-now-go,
.ac-certbtn,
.ac-certgo,
.ac-recapb,
.exam-go,
.exr-retry,
.exr-cert,
.exr-lesson,
.lv-go,
.ch-go,
.tg-go,
.co-go,
.figpop-go,
.clip-btn,
.cap-saybtn,
.cap-copy,
.pp-again,
.wa-jump,
.wa-say,
.wi-save,
.wi-buybtn,
.wi-ask,
/* contact, send to buyer, the package a stranger reads */
.gc-go,
.gcx-do,
.gc-copy,
.sb-go,
.sb-sms,
.sb-copy,
.pkg-yes,
.pkg-ask .btn,
/* account, sign-in, the buy-box registry */
.acct-plan-btn,
.reg-cta,
/* 🔴 THE CALL BUTTON ON WHO CLOSES IT. (briefs/JOB-title-companies.md item 3:
   "Buttons = Desk button.") It is the only action on the card and it is the whole
   point of the screen — a Dasher reads the two questions, then presses this. It
   shipped once as a bare blue link because an <a> with no btn- prefix and no
   data-act is invisible to the orphan check, which is exactly the gap .obr-tab fell
   through: a control nobody listed is a control that drifts. */
/* 🔴 THE SEARCH BAR'S OWN GO BUTTON (2026-10-28). The address box had no submit
   control at all, which is why no phone keyboard offered a Go key and why "pressing
   enter does nothing" was true in two different ways. It is the main action on the
   one screen Erick opens first, so it is the blue button. */
.search-go,
.tt-go,
.ac-keybtn,
.pp-pklesson,
.exr-cert,
.lv-go,
.oauth-btn {
  background: var(--hs-btn) !important;
  background-color: #005EFC !important;   /* opaque base: nothing reads through a button */
  color: var(--hs-btn-ink) !important;
  -webkit-text-fill-color: var(--hs-btn-ink) !important;
  border: 0 !important;
  border-radius: var(--hs-r-btn, 13px);
  box-shadow: var(--hs-btn-glow);
  font-weight: 700;
  text-shadow: none;
}
/* The label and every glyph inside it come with it. A button whose <b> or <svg>
   kept a local colour is a button with one word in the wrong ink. */
.btn > *, .btn-1 > *, .cta > *, .hs-cta > *, [data-act] > *,
.db-go > *, .db-fold-link > *, .sd-do > *, .wo-go > *, .key-btn > *,
.ac-certbtn > *, .exam-go > *, .gc-go > *, .sb-go > *, .reg-cta > *,
.oauth-btn > *, .acct-plan-btn > * {
  color: var(--hs-btn-ink);
  -webkit-text-fill-color: var(--hs-btn-ink);
}
.btn svg, .btn-1 svg, .cta svg, .hs-cta svg, [data-act] svg,
.db-go svg, .sd-do svg, .wo-go svg, .key-btn svg, .ac-certbtn svg,
.exam-go svg, .gc-go svg, .sb-go svg, .reg-cta svg, .oauth-btn svg {
  color: var(--hs-btn-ink);
  -webkit-text-fill-color: initial;
}

/* The press and the hover are the Desk's: brightness, and a 3% press. */
.has-hover .btn:hover, .has-hover .btn-1:hover, .has-hover .cta:hover,
.has-hover .hs-cta:hover, .has-hover [data-act]:hover,
.has-hover .db-go:hover, .has-hover .sd-do:hover, .has-hover .wo-go:hover,
.has-hover .key-btn:hover, .has-hover .exam-go:hover, .has-hover .gc-go:hover,
.has-hover .reg-cta:hover, .has-hover .oauth-btn:hover {
  filter: brightness(1.08);
  background: var(--hs-btn) !important;
  color: var(--hs-btn-ink) !important;
}
.btn:active, .btn-1:active, .cta:active, .hs-cta:active, [data-act]:active,
.db-go:active, .sd-do:active, .wo-go:active, .key-btn:active {
  filter: brightness(.92);
  transform: scale(.97);
}
.btn:disabled, .btn-1:disabled, .cta:disabled, [data-act]:disabled,
.hs-cta:disabled, .ac-addr-go[disabled], .gc-go.is-empty {
  opacity: .45;
  box-shadow: none;
  filter: none;
}

/* 🔴 APPLE'S BUTTON IS APPLE'S MARK AND IS PUT BACK. "Sign in with Apple" is
   specified at #000000 by a published guideline and a vendor who restyles it
   fails App Store review — the same third-party exemption house.css and
   test/house-style.mjs already carry by name for this one selector. It is listed
   in the blue block above because .oauth-btn is the Google button too; this
   rule, after it, is the exception and it is the only one in the file. */
.oauth-btn.apple,
.has-hover .oauth-btn.apple:hover {
  background: #000 !important;
  background-color: #000 !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  border: 1px solid #333 !important;
  box-shadow: none;
  filter: none;
}

/* ─────────────────────────────────────────────────── 2. THE QUIET BUTTON
   Blue outline, silver lettering, no fill. Every "not the main action" control
   in the product: cancel, back, skip, read it as a list, copy. */
/* 🔴 "Try again" under a failed address lookup. A recovery action, never the main
   one — the main one is the address the Dasher is trying to find. */
.result-retry,
.btn-ghost,
.btn-2,
.btn-quiet,
.btn-secondary,
.btn.ghost,
.hs-cta--ghost,
.ac-stop-btn,
.ac-track-btn,
/* 🔴 START HERE'S LESSON ROWS TAKE THE TRACK CARD'S RECIPE, because they are the
   same control: a full-width row that opens a lesson. Giving the guide its own
   look would be a fourth recipe in the one room where the look has to be identical. */
.sh-rowb,
.ac-tback,
.ct-back,
.rp-back,
.ct-learn,
.coach-bar-back,
.lv-reset,
.sd-more,
/* 🔴 THE DASH'S THREE SECONDARY ACTIONS ARE ONE CLASS. The window carries the
   same four controls on every deal and every stage (briefs/JOB-dash-rail-window.md),
   so Log a call / Open the desk / Send package are all .wo-ghost and differ only
   in their words — three selectors would be three chances for one of them to
   drift. .wo-log / .wo-open / .wo-send stay on the markup as markers for the gate
   and for the Academy's coach tours; the recipe is this one class. */
.wo-ghost,
.wo-log,
.wo-move,
.wo-out,
.obr-copy,
.obr-back,
.obr-next,
.buy-tgl,
.mk-usa,
.buy-usa,
.buy-markets,
.buy-sb,
.lg-markets,
.lg-usa,
.buy-hold,
.ac-railb,
.ac-slesson,
.ac-sexam,
.rp-filter,
.wi-lesson,
.wi-seed,
.wi-q,
.wi-svmain,
.pp-grade,
.pp-reslesson,
.bd-tab,
.mw-target,
.cap-tab,
.script-tab,
.taz-i,
.krail-i,
/* 🔴 "WHICH STATE DID YOU MEAN" IS A ROW OF REAL CONTROLS. (Erick, 2026-11-02,
   R3-F10: "If no state is given and the city name exists in more than one covered
   state, ask which state and list them.") .result-state is one state inside the
   suggestion list — an outlined pill, because the list it sits in is a quiet surface
   and four cobalt slabs in it would shout louder than the addresses above them. */
.result-state,
.pkg-pass {
  background: transparent !important;
  background-color: transparent !important;
  color: var(--hs-btn-ghost-ink) !important;
  -webkit-text-fill-color: var(--hs-btn-ghost-ink) !important;
  border: 1px solid var(--hs-btn-ghost-line) !important;
  border-radius: var(--hs-r-btn, 13px);
  box-shadow: none;
  font-weight: 700;
}
.btn-ghost svg, .btn-2 svg, .btn.ghost svg, .ac-stop-btn svg, .ct-back svg,
.rp-back svg, .wo-ghost svg, .wo-move svg, .obr-copy svg, .buy-tgl svg, .mk-usa svg {
  color: var(--hs-btn-ghost-ink);
  -webkit-text-fill-color: initial;
}
.has-hover .btn-ghost:hover, .has-hover .btn-2:hover,
.has-hover .btn-secondary:hover, .has-hover .btn.ghost:hover,
.has-hover .hs-cta--ghost:hover, .has-hover .ac-stop-btn:hover,
.has-hover .ct-back:hover, .has-hover .rp-back:hover,
.has-hover .wo-ghost:hover, .has-hover .wo-move:hover, .has-hover .wo-out:hover,
.has-hover .obr-copy:hover, .has-hover .obr-back:hover,
.has-hover .buy-tgl:hover, .has-hover .mk-usa:hover,
.has-hover .buy-usa:hover {
  background: var(--hs-btn-ghost-wash) !important;
  border-color: var(--hs-box-on-line) !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  filter: none;
}
.btn-ghost:active, .btn-2:active, .btn.ghost:active, .ac-stop-btn:active,
.ct-back:active, .rp-back:active, .wo-move:active, .obr-copy:active {
  transform: scale(.97);
}

/* ───────────────────────────────────────── 3. THE ICON CONTROL IS A SMALL BOX
   A close X, a chevron, a zoom button, a mic. It has no label to carry a
   gradient and a 34px cobalt slab on a glass pane reads as a mis-click target —
   so it takes the BOX, which is the brief's other recipe, and lights its border
   blue when you touch it. It is still the same two colours and the same glow;
   the only thing that changes is which of the two recipes it is. */
.icon-btn,
.cmd-iconbtn,
.cmd-keybtn,
.tmap-btn,
.gal-x,
.gal-nav,
.gal-prev,
.gal-next,
.ways-x,
.sb-x,
.mkp-x,
.gcx-close,
.ac-certshare-x,
.pp-close,
.rc-close,
.spot-close,
.ksheet-close,
.tfind-x,
.coach-exit,
.wi-mic,
.wi-svx,
.obr-x,
.gal-th-more,
.seex,
/* 🔴 THE FOUR CONTROLS BUILT IN JAVASCRIPT, NOT IN MARKUP. None of these appears
   in a class="..." attribute anywhere — they are createElement + className, which
   is why they survived the whole 2026-09-29 button pass untouched and why
   .obr-tab was still painting the old pale accent gradient on the Desk when this
   job started. test/house-buttons.mjs now traces createElement("button") to its
   className so a fifth cannot hide the same way.

   .obr-tab is the open-deal rail and .tab is the motion tabs' own tab: both are
   ADDRESS tabs, which is option B — the box at rest, the blue on the one you are
   on. .cmd-more ("SHOW 6 MORE") and .tab-add (the + beside the deal tabs) are
   quiet chrome, so they take the same box rather than a cobalt slab. */
.obr-tab,
.tab,
.cmd-more,
.tab-add,
/* 🔴 THE HOME SCREEN'S QUIET CHROME. (briefs/JOB-home-concept.md.) A filter chip,
   a sort pill, the grid toggle, "See the map" and "See every course" are all the
   same object: a small secondary control beside a heading. They take the BOX, not
   the cobalt slab — the hero's two buttons and each row's "Open the desk" are the
   screen's real actions and a page of cobalt would make none of them the loudest.
   .home-chip is also a TAB (role="tab" + aria-selected in the markup), so its LIT
   state is the plasma, which is the block at the bottom of this file. */
.home-chip,
.home-sort,
.home-grid,
.home-map,
/* 🔴 CALL COACH'S TWO SECTIONS AND REAL CALLS' HISTORY ROWS.
   .cc-tab is an ADDRESS tab — "Practice" and "Real calls" are two PLACES in one
   area, which is option B exactly: the box at rest, the plasma on the one you are
   on (the lit block at the foot of this file). It is NOT a cobalt slab: the loudest
   thing on /coach has to be "Start the call" / "Call the seller", and two cobalt
   tabs above them would take that away.
   .rk-row is a past call in the history list — quiet chrome beside a heading, the
   same object as .home-sort above it, so it takes the same box. */
.cc-tab,
.rk-row,
.home-seeall,
.copy,
.whychip,
.tab-x {
  background: var(--hs-box) !important;
  color: var(--hs-box-ink) !important;
  -webkit-text-fill-color: var(--hs-box-ink) !important;
  border: 1px solid var(--hs-box-line) !important;
  box-shadow: none;
}
.icon-btn svg, .cmd-iconbtn svg, .cmd-keybtn svg, .gal-x svg, .ways-x svg,
.sb-x svg, .mkp-x svg, .gcx-close svg, .pp-close svg, .rc-close svg,
.spot-close svg, .ksheet-close svg, .tfind-x svg, .wi-mic svg {
  color: var(--hs-box-ink);
  -webkit-text-fill-color: initial;
}
.has-hover .icon-btn:hover, .has-hover .cmd-iconbtn:hover,
.has-hover .cmd-keybtn:hover, .has-hover .tmap-btn:hover,
.has-hover .gal-x:hover, .has-hover .gal-nav:hover,
.has-hover .ways-x:hover, .has-hover .sb-x:hover, .has-hover .mkp-x:hover,
.has-hover .gcx-close:hover, .has-hover .pp-close:hover,
.has-hover .rc-close:hover, .has-hover .spot-close:hover,
.has-hover .ksheet-close:hover, .has-hover .tfind-x:hover,
.has-hover .wi-mic:hover {
  background: var(--hs-box-on) !important;
  border-color: var(--hs-box-on-line) !important;
  box-shadow: var(--hs-box-on-glow);
  color: var(--hs-box-on-ink) !important;
  -webkit-text-fill-color: var(--hs-box-on-ink) !important;
}
.icon-btn:active, .cmd-iconbtn:active, .gal-x:active, .ways-x:active,
.sb-x:active, .mkp-x:active, .pp-close:active, .ksheet-close:active {
  transform: scale(.94);
}

/* 🔴 THE FOCUS RING IS NOT OPTIONAL AND IT IS NOT THE HOVER. Every control in
   this file sets its own border, so a browser default outline lands on top of a
   1px border and looks like a rendering fault. One ring, offset, on everything. */
.btn:focus-visible, .btn-1:focus-visible, .cta:focus-visible,
.hs-cta:focus-visible, [data-act]:focus-visible, .btn-ghost:focus-visible,
.btn-2:focus-visible, .icon-btn:focus-visible, .cmd-iconbtn:focus-visible,
.db-go:focus-visible, .sd-do:focus-visible, .wo-go:focus-visible,
.key-btn:focus-visible, .exam-go:focus-visible, .gc-go:focus-visible,
.reg-cta:focus-visible, .oauth-btn:focus-visible, .gal-x:focus-visible,
.ways-x:focus-visible, .sb-x:focus-visible, .ksheet-close:focus-visible {
  outline: 2px solid #2B7BFF;
  outline-offset: 2px;
}

/* ═══════════════════════════════════════════════════════════════════════════
   4. EVERY BOX / CARD / PANEL / TILE IS THE ADDRESS TAB.

   Erick: "all of the boxes should have the same effect as the address on the
   desk does." These were painting --bg-surface, --bg-base, --bg-raised, five
   one-off gradients and two near-white leftovers between them.

   🔴 THE PANE KEEPS ITS LIT TOP EDGE WHERE IT HAS ONE. .card, .hs-card,
   .auth-card and .reg-card each draw a ::before hairline, and test/house-style.mjs
   counts them — four of them is the assertion. Nothing here removes a ::before;
   the pane's FILL and EDGE change, the lit edge is left exactly as it is.
   ═══════════════════════════════════════════════════════════════════════════ */
.card,
html[data-dd] .card,
.hs-card,
.auth-card,
.vfy-card,
.reg-card,
.cmd-tile,
html[data-dd] .cmd-tile,
.academy-room .card,
html[data-dd] .academy-room .card,
/* the Desk */
.db-offer-box,
.db-ib-box,
.db-stuck-box,
.db-fold,
/* the Dash, the Radar, the Buyer Board, MARKET */
/* 🔴 THE DASH'S STAGE TAB IS THE ADDRESS TAB. A tab in the Dash's rail and an
   address tab across the top of the Desk are the same object doing the same job
   — "this is one of several, and one of them is the one you are on" — so they
   are the same recipe rather than two that look nearly alike.
   .wo-sec was the heading of the seven-column board Erick rejected; it no longer
   exists anywhere in the product (briefs/JOB-dash-rail-window.md KILL list). */
.wo-stage,
.buy-card,
.mk-card,
.mk-ready-card,
.lead-card,
/* 🔴 A COURSE CARD IS A BOX, BECAUSE IT IS ONE OF MANY THINGS. (The home screen's
   Academy strip, briefs/JOB-home-concept.md.) It is a <button> — the whole card is
   the tap target, which is what the concept draws — so it is a CONTROL by markup
   and has to carry a recipe; and the right one is the address-tab glass, the same
   as every other card of a set in the product. */
.home-course,
/* the Key */
.kcard,
.ksheet-card,
.ksheet-block,
/* the Academy */
.ch-card,
.rc-card,
.pp-sheet,
.pp-box,
.pp-cbox,
.ac-certsheet,
.ac-keycard,
.rp-card-sit,
.rp-card-role,
/* the Desk's rails and panels, the contact card, the send sheet */
.obr-panel,
.ways-panel,
.cc-panel,
.gcx-card,
.sb-card,
.stx-card,
.mx-cell,
.lv-box,
.dp-box,
.tcard-also,
/* the front page and the package a stranger reads */
.panel,
.glass,
.seecard {
  background: var(--hs-box) !important;
  color: var(--hs-box-ink);
  border: 1px solid var(--hs-box-line) !important;
}

/* 🔴 THE ACTIVE BOX IS THE WHOLE POINT OF OPTION B. A box you have selected,
   are working, or are hovering takes the logo blue as a border and a glow and
   its lettering goes white. Nothing gets a blue fill. */
.card.on, html[data-dd] .card.on,
.hs-card.on,
.cmd-tile.on,
.db-opt[data-picked="yes"],
.buy-card.is-on,
.mk-card.is-on,
.kcard.is-on,
.ch-card.ch-working,
.stx-card.on,
.cc-panel.is-after,
.rp-card-sit.on,
.rp-card-role.on,
.q-choice:has(input:checked),
.outcome[aria-pressed="true"],
.obr-tab.on,
.tab.on,
.tab[aria-selected="true"],
/* 🔴 CALL COACH'S TWO SECTIONS LIGHT LIKE EVERY OTHER ADDRESS TAB. Without this the
   row rendered as two identical boxes and a 1440 screenshot could not tell which
   section was showing — a tab row whose selected state is invisible is not a tab row. */
.cc-tab[aria-selected="true"],
.cc-tab.is-on,
.chip.on,
.pp-choice:has(input:checked),
.ch-choice.is-picked,
.tg-choice.is-picked,
.rp-choice.is-picked,
.ac-depth-opt:has(input:checked),
.buy-tybox.is-on,
.q-opt.right,
.tier-feature {
  background: var(--hs-box-on) !important;
  border-color: var(--hs-box-on-line) !important;
  box-shadow: var(--hs-box-on-glow) !important;
  color: var(--hs-box-on-ink) !important;
}

/* 🔴 THE DASH'S LIT STAGE TAB IS THE *NAV TAB'S* ACTIVE STATE, NOT THE BOX'S,
   AND THAT DISTINCTION IS ERICK'S OWN. (briefs/JOB-house-look-every-screen.md:
   nav tabs are option D in reference/TABS-PLASMA.html; address tabs are option B
   in TABS-OPTIONS.html. He picked both, separately, for the two different jobs.)
   The rail is a set of PLACES you move between — the same thing the nav dock is
   — so the one you are on takes the PLASMA HAZE, not the border-and-glow a
   selected card gets. Written here rather than in working.css because this sheet
   is last and the box rule above carries !important: without it, the rest state
   would paint over the lit one and the rail would have no "you are here" at all.
   reference/DASH-RAIL.html draws exactly this. */
.wo-stage.is-on {
  background: var(--hs-tab-on) !important;
  border-color: var(--hs-tab-on-line) !important;
  box-shadow: var(--hs-tab-on-glow) !important;
  color: var(--hs-tab-on-ink) !important;
}
.has-hover .cmd-tile:hover,
.has-hover .buy-card:hover,
.has-hover .mk-card:hover,
.has-hover .kcard:hover,
.has-hover .q-choice:hover,
.has-hover .db-opt:hover,
.has-hover .rp-card-sit:hover,
.has-hover .rp-card-role:hover {
  border-color: var(--hs-box-on-line) !important;
  box-shadow: var(--hs-box-on-glow);
}

/* A choice row is a box you press: the box recipe, and the blue arrives when it
   is picked (the block above). Listed separately because they are <label> and
   <button> rather than containers, and they need the box's radius and padding
   left alone. */
.q-choice,
.pp-choice,
.ch-choice,
.tg-choice,
.rp-choice,
.ac-depth-opt,
.db-opt,
.q-opt,
/* 🔴 A FILTER CHIP IS A BOX YOU PRESS. .chip is a <button> on MARKET, the Radar
   and the Vault (Mine / Under contract / Sub-To ...) and it was painting
   --bg-base at rest and --accent-dim when on — a third look, on the row a Dasher
   touches most. It is the box, and the one you have ON takes the blue border
   from the block above. */
.chip,
.gc-chip,
/* The call-outcome picker (Reached / Left a message / No answer ...) — one of a
   set you pick from, so it is a box and the one you picked takes the blue. */
.outcome,
/* The Dash's collapsed rows. A whole deal row you press — so it is a BOX, and
   working.css already lights its hover with --hs-box-on-line, which is that
   lane's half of the same contract. (That sheet belongs to the Dash lane; the
   recipe belongs here, and controls.css being last is what makes that work
   without either lane editing the other's file.) */
.wo-mini,
/* CALL COACH's minute sizes: 10, 30, 60, 120 minutes, each a tappable box with a
   price under it. Same shape and the same decision as .rp-card-btn below it — a
   choice you press, so it is the address-tab glass and not a blue primary. */
.cc-tier,
.rp-card-btn {
  background: var(--hs-box) !important;
  color: var(--hs-box-ink);
  border: 1px solid var(--hs-box-line) !important;
}

/* 🔴 A WELL IS NOT A BOX AND IT MAY NOT BECOME ONE. .hs-well / .well is the
   lift INSIDE a pane — an input, a stat cell, a script line. Painting it with
   the box recipe would put a pane inside a pane at the same value and the
   nesting would disappear. It keeps the house well, and this comment is here so
   the next lane does not "finish the job" by adding it to the list above. */

/* 🔴 THE MEANING TINTS KEEP THEIR HUE AND TAKE THE BOX'S EDGE. (Brief job 5:
   "The front page's green/red example cards keep their tint but take the glass
   edge and silver text.") The tint is laid OVER the box so the pane is the same
   pane, with a wash of its meaning on it.

   🔴 IT IS background-image PLUS background-color, NOT A COMMA LIST, AND THE
   OBVIOUS SPELLING IS INVALID CSS. `background: linear-gradient(...),
   var(--hs-box)` looks like two layers, but a bare COLOUR cannot be a
   comma-separated background layer — only the final layer may carry a colour and
   only as the shorthand's own background-color slot. Chrome parsed it as
   `linear-gradient(...), none` and dropped the pane entirely: the tint survived,
   the glass under it did not, and the cards rendered as a bare wash on the
   ground. Caught by reading the computed style on the live page
   (test/shoot-controls.mjs), not by reading the file — it is valid-looking and
   wrong. The longhands say exactly what is meant and composite correctly. */
.answer.go {
  background-image: linear-gradient(180deg, rgba(61, 217, 139, .16), rgba(61, 217, 139, .07)) !important;
  background-color: var(--hs-box) !important;
  border-color: rgba(61, 217, 139, .42) !important;
}
.answer.no {
  background-image: linear-gradient(180deg, rgba(255, 122, 138, .16), rgba(255, 122, 138, .07)) !important;
  background-color: var(--hs-box) !important;
  border-color: rgba(255, 122, 138, .42) !important;
}
.q-opt.right {
  background-image: linear-gradient(180deg, rgba(61, 217, 139, .16), rgba(61, 217, 139, .07)) !important;
  background-color: var(--hs-box-on) !important;
  border-color: rgba(61, 217, 139, .42) !important;
}

/* 🔴 THE MAP IS NOT A BOX, AND THAT IS A STANDING RULE. Nothing in this file
   paints inside .map-host or .tmap-tiles — the bright real-map style stays.
   .tmap-btn, .mk-usa and .buy-usa are map CHROME and are in the lists above. */

/* ═══════════════════════════════════════════════════════════════════════════
   5. THE CONTROLS THAT ARE NOT A SURFACE, DECIDED BY NAME.

   🔴 "EVERY BUTTON" IS NOT "EVERY <button> ELEMENT", AND THE DIFFERENCE IS A
   JUDGEMENT THAT HAS TO BE WRITTEN DOWN RATHER THAN LEFT TO A GATE'S SILENCE.
   These are all real <button>s a Dasher can press, and every one of them would
   be made WORSE by a cobalt gradient or a glass pane:

     A WORD INSIDE A SENTENCE. .wi-n, .wi-w, .tterm, .hs-link and .cap-head are
     buttons so the word is tappable and announced — "the 214,407" in a
     paragraph, a glossary term mid-line, a section heading that collapses. A
     gradient slab around a word inside a sentence breaks the sentence.

     A WHOLE CARD THAT HAPPENS TO BE PRESSABLE. .buy-market, .buy-statehead,
     .lg-statehead, .sd-cta, .ff-top, .wo-open, .wo-sec-h, .ac-railb-ch,
     .pp-f, .pp-gh, .pp-pkh, .gc-act, .cc-ba, .ac-detailall and .ac-addr-clear
     wrap content that carries its own box — the box is the CARD's, from the
     block above, and a second box inside it is a pane inside a pane.

     A PHOTOGRAPH. .db-ph and .gal-th are an <img> in a button. Photographs are
     photographs (house.css, standing rule): no tint, no frame, no fill.

     A SCRIM. .buy-scrim and .lg-scrim are the full-screen veil behind a sheet,
     implemented as a button so Escape and a tap both close it. A scrim with a
     border is a visible rectangle over the whole product.

     A 6px DOT. .gal-dot is the carousel position. There is no room in it for a
     border and a 1px edge on a 6px circle is a smudge.

   The token is what test/house-buttons.mjs reads to know the decision was made
   deliberately. It paints nothing — `--hs-bare: 1` is a record, not a style.
   ═══════════════════════════════════════════════════════════════════════════ */
.hs-link,
.wi-n,
.wi-w,
.wi-desk,
.tterm,
.cap-head,
.buy-market,
.buy-statehead,
.lg-statehead,
.buy-city,
.lg-city,
.sd-cta,
.ff-top,
/* 🔴 .wo-open WAS HERE AND IS GONE: on the dead column board it wrapped a whole
   card; in the window it is one of the four actions and it is a .wo-ghost like
   the other two. .wo-sec-h was that board's column heading and no longer exists.
   (briefs/JOB-dash-rail-window.md KILL list.) */
.ac-railb-ch,
.ac-detailall,
/* The Academy's pick-the-structure tile: it paints its own surface from the
   structure tone (--tone-cash/subto/sf/wrap/flip/rental), exactly as the Desk's
   six-way tiles do, so it is a recorded bare control and not a new recipe. */
.ai-pick,
.ac-addr-clear,
.pp-f,
.pp-gh,
.pp-pkh,
.gc-act,
.gc-why,
/* 🔴 THE KEBAB IS NOT A BOX. (The home screen's hot list.) It is three dots at the
   end of a row — 26px wide with no label — and drawing a 1px rectangle round it
   would put a visible box on every row of the table, which is the exact thing the
   note at the top of this block describes. Same decision as .gal-dot. */
.home-kebab,
/* 🔴 A LINK TO THE STATE'S OWN FILING IS A WORD IN A SENTENCE, NOT A CONTROL.
   .gc-unwrap-link sits inside the silver source line under "Behind the LLC"
   ("Ohio Secretary of State, checked today · Open the filing"). It is the
   evidence for a name we are asking a Dasher to believe, and giving it a cobalt
   gradient would make the attribution louder than the person it attributes. */
.gc-unwrap-link,
.cc-ba,
.db-ph,
.gal-th,
.gal-dot,
/* 🔴 A FLEX WRAPPER AROUND TWO BUTTONS IS NOT A THIRD BUTTON. .nav-cta holds the
   front page's Sign in link and its Start button side by side; it paints nothing and
   it is pressable only in the sense that its children are. A box drawn round it would
   put a 1px rectangle round the header's own call to action. Recorded here rather
   than left silent, because the gate widened to catch -go/-cta names (test/house-
   buttons.mjs) and "the gate did not mention it" is not the same claim as "a human
   decided it has no box". */
.nav-cta,
/* 🔴 THE INLINE KEY MARKER IS A QUESTION MARK INSIDE A SENTENCE. .kb is a
   <button> wrapped around a "?" so any term in any paragraph can be tapped for
   its definition — the same reason .tterm and .wi-n are buttons. A box drawn
   round it would put a 1px rectangle in the middle of a line of prose. */
.kb,
/* 🔴 "FORGOT PASSWORD?" IS A LINK MADE OF A BUTTON, AND IT MUST STAY LOOKING LIKE
   A LINK. It sits inside the sentence "New here? Create an account" beside two real
   <a> links and it has never navigated: it POSTs /api/auth/forgot and prints the
   answer on the card. It was an <a href="#"> until 2026-10-27, which gave it no
   button semantics, a junk history entry and a jump-to-top on Enter; making it a
   real <button> fixed that, and a blue pill or a ghost box around one of three
   identical-looking text links would be the thing that looks broken.
   Deliberate, recorded here rather than left for the gate to find. */
.auth-link,
/* 🔴 .home-house-go IS A WRAPPER, NOT A CONTROL. (2026-10-30.) It holds the home
   screen's two house links — [See the map] and the outside house link — and paints
   nothing at all: no background, no border, no radius. Each control keeps its own
   recipe (.home-map is the ghost, .hl-btn is the house link's outlined pill). Recorded
   here rather than given a recipe it must not have. */
.home-house-go,
.buy-scrim,
.lg-scrim {
  --hs-bare: 1;
}

/* 🔴 AND A SCRIM IS NOT A BOX EITHER. .buy-scrim, .lg-scrim, .ksheet-scrim,
   .wo-sheet-scrim and .seebg are the dark veil behind a sheet. They are
   deliberately absent from every recipe list above and are recorded as bare. */


/* ═══════════════════════════════════════════════════════════════════════════
   THE PLASMA IS THE ONE "YOU ARE HERE" ON EVERY SCREEN. (Erick 2026-10-01:
   "on all the tabs buyers and wherever, all tabs and buttons should have the same
   effect as the plasma on the desk dash and so on, for the states they should have
   the same effect as the blue with the plasma".)

   Everything a Dasher moves BETWEEN — a tab, a chip, a sort pill, a filter, a
   state or a city in a rail, a stage in the Dash rail, a buyer-type box — takes
   the SAME lit state the nav dock has: the logo blue as a haze inside the glass,
   lit rim, white lettering, and the two radial glows behind it. One token set,
   one rule, appended last. Cards you SELECT (a buyer, a deal, a listing) keep the
   border-and-glow; those are things, not places.
   ═══════════════════════════════════════════════════════════════════════════ */
.buy-state.is-open .buy-statehead,
.buy-city.is-on,
.buy-tybox.is-on,
.buy-sort .pill.on, .buy-sort [aria-pressed="true"],
.lg-state.is-open .lg-statehead, .lg-city.is-on,
.rd-state.is-open > button, .rd-city.is-on,
.obr-tab.on,
.tab.on, .tab[aria-selected="true"],
.cc-tab.is-on, .cc-tab[aria-selected="true"],
.chip.on, .chip[aria-pressed="true"],
.pill[aria-pressed="true"], .pill.on,
.seg .on, .seg [aria-pressed="true"],
.ac-track-tab.on, .ac-mod-tab.on,
.mk-tab.on, .vault-tab.on, .kt-tab.on,
.wo-stage.is-on {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: var(--hs-tab-on) !important;
  border-color: var(--hs-tab-on-line) !important;
  box-shadow: var(--hs-tab-on-glow) !important;
  color: var(--hs-tab-on-ink) !important;
}
.buy-state.is-open .buy-statehead *, .buy-city.is-on *, .buy-tybox.is-on *,
.lg-state.is-open .lg-statehead *, .lg-city.is-on *, .rd-city.is-on *,
.tab.on *, .chip.on *, .cc-tab.is-on *, .wo-stage.is-on * { color: var(--hs-tab-on-ink) !important; -webkit-text-fill-color: var(--hs-tab-on-ink) !important; }
.buy-state.is-open .buy-statehead::after,
.buy-city.is-on::after,
.buy-tybox.is-on::after,
.lg-state.is-open .lg-statehead::after, .lg-city.is-on::after,
.rd-city.is-on::after,
.obr-tab.on::after,
.tab.on::after, .tab[aria-selected="true"]::after,
.chip.on::after, .chip[aria-pressed="true"]::after,
.pill[aria-pressed="true"]::after, .pill.on::after,
.ac-track-tab.on::after, .ac-mod-tab.on::after,
.mk-tab.on::after, .vault-tab.on::after, .kt-tab.on::after,
.wo-stage.is-on::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: -1;
  background:
    radial-gradient(60% 120% at 30% 20%, rgba(120,180,255,.55), transparent 60%),
    radial-gradient(70% 140% at 80% 90%, rgba(0,94,252,.60), transparent 60%);
  filter: blur(6px);
}
/* the count pill inside a lit state / city goes solid logo blue, like the nav */
.buy-state.is-open .buy-staten, .buy-city.is-on .buy-cityn { background: #005EFC !important; color: #fff !important; -webkit-text-fill-color: #fff !important; }


/* ═══════════════════════════════════════════════════════════════════════════
   HOVER = THE PLASMA, LIGHTER. (Erick 2026-10-02: "when you are moving the cursor
   down the options it should light up with the blue plasma".) A pointer resting on
   any place-you-can-go previews the lit state at about half strength: the haze,
   the lit rim, white lettering. Mouse only (.has-hover); a finger never hovers.
   ═══════════════════════════════════════════════════════════════════════════ */
.has-hover .buy-statehead:hover,
.has-hover .buy-city:hover,
.has-hover .buy-tybox:hover, .has-hover .buy-ty:hover,
.has-hover .buy-sort .pill:hover,
.has-hover .lg-statehead:hover, .has-hover .lg-city:hover,
.has-hover .rd-city:hover,
.has-hover .obr-tab:hover,
.has-hover .tab:hover,
.has-hover .chip:hover,
.has-hover .pill:hover,
.has-hover .seg > *:hover,
.has-hover .ac-track-tab:hover, .has-hover .ac-mod-tab:hover,
.has-hover .mk-tab:hover, .has-hover .vault-tab:hover, .has-hover .kt-tab:hover,
.has-hover .wo-stage:hover,
.has-hover .cmd-dock-item:hover,
.has-hover .cmd-deals .tab:hover {
  position: relative; isolation: isolate; overflow: hidden;
  background: rgba(0, 94, 252, .13) !important;
  border-color: rgba(95, 163, 255, .55) !important;
  box-shadow: 0 0 0 1px rgba(95, 163, 255, .22), 0 0 14px rgba(0, 94, 252, .30) !important;
  color: #FFFFFF !important;
  transition: background-color .12s ease, box-shadow .12s ease, border-color .12s ease;
}
.has-hover .buy-statehead:hover *, .has-hover .buy-city:hover *, .has-hover .buy-ty:hover *,
.has-hover .tab:hover *, .has-hover .chip:hover *, .has-hover .wo-stage:hover *,
.has-hover .cmd-dock-item:hover *, .has-hover .cmd-deals .tab:hover * { color: #FFFFFF !important; -webkit-text-fill-color: #FFFFFF !important; }
.has-hover .buy-statehead:hover::after, .has-hover .buy-city:hover::after, .has-hover .buy-ty:hover::after,
.has-hover .tab:hover::after, .has-hover .chip:hover::after, .has-hover .pill:hover::after,
.has-hover .wo-stage:hover::after, .has-hover .cmd-dock-item:hover::after, .has-hover .cmd-deals .tab:hover::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: -1;
  background:
    radial-gradient(60% 120% at 30% 20%, rgba(120,180,255,.30), transparent 60%),
    radial-gradient(70% 140% at 80% 90%, rgba(0,94,252,.35), transparent 60%);
  filter: blur(6px);
}
/* the lit one stays full strength under the pointer */
.has-hover .buy-state.is-open .buy-statehead:hover, .has-hover .buy-city.is-on:hover, .has-hover .tab.on:hover,
.has-hover .chip.on:hover, .has-hover .wo-stage.is-on:hover, .has-hover .cmd-dock-item.on:hover {
  background: var(--hs-tab-on) !important; border-color: var(--hs-tab-on-line) !important; box-shadow: var(--hs-tab-on-glow) !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   THE PLASMA CHIP. ONE CLASS, EVERY STATUS AND EVERY SIGNAL ON EVERY SCREEN.

   🔴 ERICK LOOKED CLOSE AND CORRECTED THE WORD. (2026-10-03, briefs/
   JOB-home-concept.md ADDENDUM 2: "those you are calling pills have a glowing
   plasma look to them it looks so clean.") They are NOT solid paint. Each chip is
   a dark translucent body in its colour, with a soft inner glow of the same colour
   — the colour sits IN the glass, lit from behind — a 1px rim slightly brighter
   than the body, a faint outer bloom on the panel, and white text. Same
   construction as the nav-tab plasma above, in the chip's colour.

   🔴 ONE CLASS WITH A --c VARIABLE, NOT SIX CLASSES. Six copies of this recipe is
   six places a value drifts; the colour is the only thing that varies, so the
   colour is the only thing a call site sets. The six are named below and a chip
   may not invent a seventh — the whole point of the meaning colours is that a
   Dasher learns them once.

   MEANING (the brief's own list): cobalt new lead / off market · green high
   equity / closed / under contract · rose pre-foreclosure / distressed / needs
   repair · amber vacant / skip trace · violet contacted · slate owner occupied. */
.chip-plasma {
  --c: 43, 123, 255;
  --b: 0, 35, 136;
  --t: 1, 50, 163;
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  height: 18px;
  padding: 0 8px;
  border-radius: 5px;
  font: 700 10.5px/1 var(--font, Archivo);
  letter-spacing: .01em;
  white-space: nowrap;
  font-style: normal;
  color: #FFFFFF;
  text-shadow: 0 0 4px rgba(0, 0, 0, .55);
  /* 🔴 THE CONCEPT CHIP, READ AT 6× (reference/concept-cut/status-col@6x.png,
     chips-row1@6x.png) AND SAMPLED (2026-10-04): a SOLID saturated body — a deep
     jewel tone, lighter at the top than the bottom — a 1px rim that is the same hue
     one step brighter, SHARP edges, 18px tall, 5px corners, bold white lettering.
     NO outer haze, NO blur. Erick: "yours are blurry and dull, the mockup is vibrant
     plasma, the shapes of the pills are wrong." The glow in the picture is the rim
     catching light, not a halo around the chip. --t is the top of the body, --b the
     bottom, --c the rim. */
  background: linear-gradient(180deg, rgb(var(--t)) 0%, rgb(var(--b)) 100%);
  border: 1px solid rgb(var(--c));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .22), 0 0 0 .5px rgba(var(--c), .35);
}
/* the six, sampled off the concept: rim / top / bottom */
.chip-plasma.is-cobalt { --c: 32, 130, 252;  --t: 1, 50, 163;   --b: 0, 35, 136;  }
.chip-plasma.is-green  { --c: 34, 197, 94;   --t: 5, 72, 28;    --b: 0, 51, 19;   }
.chip-plasma.is-rose   { --c: 224, 64, 94;   --t: 150, 4, 34;   --b: 125, 1, 26;  }
.chip-plasma.is-amber  { --c: 227, 154, 46;  --t: 110, 48, 4;   --b: 74, 48, 3;   }
.chip-plasma.is-violet { --c: 124, 92, 255;  --t: 50, 8, 160;   --b: 34, 3, 138;  }
.chip-plasma.is-slate  { --c: 91, 107, 134;  --t: 38, 50, 68;   --b: 26, 36, 52;  }
.has-hover .chip-plasma:hover { box-shadow: inset 0 1px 0 rgba(255, 255, 255, .22), 0 0 0 .5px rgba(var(--c), .35); }

/* ═══════════════════════════════════════════════════════════════════════════
   THE HOME SCREEN'S FILTER CHIP, LIT.

   🔴 THE PICTURE DRAWS A SOLID COBALT PILL, AND THAT IS THE ONE PLACE IT DOES.
   (briefs/JOB-home-exact.md, measured off the concept: the chip row's first chip
   "All" is a filled lit pill while the rest are glass.) Everything else a Dasher
   moves between keeps the plasma haze above — a filter chip on the front door is
   the picture's own exception, and the picture is the spec for this screen.

   🔴 IT LIVES HERE AND NOT IN home.css BECAUSE OF THE CASCADE. `.home-chip` is in
   this sheet's BOX list with `background: var(--hs-box) !important`, and controls.css
   is linked LAST — so the lit rule written in home.css lost silently and the active
   filter rendered as an ordinary glass chip on staging v411. A rule that has to beat
   an !important in this file has to be in this file.
   ═══════════════════════════════════════════════════════════════════════════ */
.home-chip.is-on {
  background-color: #2082FC !important;
  background-image: linear-gradient(180deg, #2B7BFF, #0B6BE8) !important;
  border-color: rgba(150, 200, 255, .55) !important;
  box-shadow: 0 0 16px rgba(32, 130, 252, .40), inset 0 1px 0 rgba(255, 255, 255, .25) !important;
  color: #FFFFFF !important;
}
.home-chip.is-on * { color: #FFFFFF !important; -webkit-text-fill-color: #FFFFFF !important; }


/* ═══ ERICK'S DESIGN SYSTEM — ACTIVE TAB / CONTROLS, site-wide (reference/Deed_Dasher_Design_System.css) ═══ */
.tab.on, .cmd-deals .tab.on, .cmd-dock-item.on, .chip.on, .pill.on, .seg > .on, .obr-tab.is-on, .obr-tab[aria-selected="true"],
.buy-state.is-open .buy-statehead, .buy-city.is-on, .buy-ty.is-on, .wo-stage.is-on {
  color:#FFFFFF !important;
  background: linear-gradient(180deg,#0080F8 0%,#046EEE 55%,#064195 100%) !important;
  border: 1px solid #0CC7F0 !important;
  border-radius: 10px !important;
  box-shadow: 0 0 8px rgba(12,199,240,.55), 0 0 22px rgba(4,110,238,.35), inset 0 1px 0 rgba(255,255,255,.28) !important;
}
.tab.on::after, .cmd-deals .tab.on::after, .cmd-dock-item.on::after, .chip.on::after { display:none !important; }
.btn.pr, .db-btn.pr, .btn-primary {
  color:#FFFFFF !important;
  background: linear-gradient(180deg,#0080F8 0%,#046EEE 55%,#064195 100%) !important;
  border: 1px solid #0CC7F0 !important;
  border-radius: 10px !important;
  box-shadow: 0 0 8px rgba(12,199,240,.55), 0 0 22px rgba(4,110,238,.35), inset 0 1px 0 rgba(255,255,255,.28) !important;
}
.btn:not(.pr), .db-btn:not(.pr) {
  color:#ACBFD2 !important; background: rgba(4,13,24,.78) !important; border:1px solid rgba(92,147,205,.24) !important; border-radius:10px !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.025) !important;
}
