/* pn-btn-law.css — THE BUTTON LAW, ON EVERY PAGE INSTEAD OF ONE.
   ═══════════════════════════════════════════════════════════════════════════════════════════════
   CEO, 2026-09-19: "all buttons are flat and have rounded corners with strokes where appropriate."
   CEO, 2026-09-20: "button and design chaos in arcade", and a gradient chamfered UNLOCK button.

   Both were true on the same evening that tools/button_shape_gate.mjs reported 218 controls clean,
   and the reason is the same one that has now produced four separate faults in a single day: a
   LIST was the defect. The gate measured six hub tabs. And the design system that carries the
   button law — assets/css/pn-ds.css, 1712 lines — is linked by exactly ONE page in this whole
   site: play.html. Every standalone page a player can reach (the arcade, every arcade game, The
   Duff, the floor, the vault, the tools, the door) has always been outside the design system
   entirely, so the ruling could be applied perfectly and still be absent everywhere the CEO
   happened to look.

   Loading the whole of pn-ds.css onto twenty-six pages overnight would restyle every one of them
   without anyone having looked at the result, so this file carries the SHAPE LAW only — the part
   that was ruled on, and the part the gate measures:
       flat (no gradient, no glass, no shadow) · rounded · stroked where unfilled · never chamfered.
   Colour, type and spacing on those pages are untouched and stay each page's own business.

   Scope: the control classes the extended gate actually found violating, named one by one rather
   than a blanket `button{}` — a blanket rule would also hit the dozens of controls that are
   already correct, and a rule that cannot be wrong teaches nothing when it breaks something.

   Verified by: node tools/button_shape_gate.mjs (26 pages + 6 hub rooms, both themes). */

/* ── 1. FLAT. No gradient fill, no glass blur, no shadow, no chamfer — element and pseudo alike.
      `background-image:none` keeps each button's own background-COLOR, so the fix removes the
      gradient without repainting anything. */
.go, .pn-btn, .cbtn, .tb-btn, .tb-sound, .themebtn, .pnpay-btn, .duff-how, .hclose,
.pool-hero-snd, .lg-dot, .deck__nav, .deck__dot, .lg-btn--primary{
  background-image: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: none !important;
  clip-path: none !important;
}
/* ⛔ AND THE PRIMARY MUST STILL HAVE A FILL (CEO, 2026-09-23, on the Inbox Zero page).
   ═══════════════════════════════════════════════════════════════════════════════════════════════
   The block above says `background-image:none` "keeps each button's own background-COLOR, so the
   fix removes the gradient without repainting anything". That is true of every page the law was
   written against — and false the moment it is linked on a page whose primary fill WAS the
   gradient, with no colour underneath it.

   MEASURED on inboxzero.html the moment the law was linked there: UNLOCK FOR 149 came back
   background-image none, clip-path none, radius 12px — correct by the ruling — and
   backgroundColor rgba(0, 0, 0, 0). A transparent primary. The law had stripped the only thing
   painting it.

   This is the fault the CEO spent 22 September on, in a new place: a button is legible because it
   has a FILL, not because a rule tidied it. So the law now paints what it strips. The accent with
   dark ink is the treatment measured at 6.97:1 on 2026-09-20 (white on this orange is 2.02:1 and
   fails), and `.lg-btn--primary` means the accent button by definition — there is no page where
   the primary should be something else. */
.lg-btn--primary{
  background-color: #f97316 !important;
  color: #140a04 !important;
  border: 1px solid transparent !important;
}
.lg-btn--primary:hover{ background-color: #ffa04a !important; }

.go::before, .go::after, .pn-btn::before, .pn-btn::after,
.tb-btn::before, .tb-btn::after, .lg-btn--primary::before, .lg-btn--primary::after,
.pnpay-btn::before, .pnpay-btn::after, .cbtn::before, .cbtn::after{
  background-image: none !important;
  box-shadow: none !important;
  clip-path: none !important;
}

/* ── 2. ROUNDED. Only the controls the gate measured as square (under 4px) are named here.
      Anything already rounded — including the pills and the round dots — keeps its own radius,
      because a blanket radius would turn a pill into a rounded rectangle. */
.cbtn, .tb-btn, .tb-sound, .themebtn, .pnpay-btn, .lg-btn--primary, .go{
  border-radius: 12px !important;
}
#signin.btn{ border-radius: 12px !important; }

/* ── 3. STROKED WHERE UNFILLED. An unfilled control with no edge has nothing to say where it
      begins, which is the "chaos" half of the CEO's note. currentColor means the stroke works in
      both themes off the text already proven legible against that ground, rather than a literal
      that is right in one theme and invisible in the other. Text links are deliberately absent:
      they have no box, and the gate no longer asks them for one. */
.go, .go--sm, .deck__nav, .deck__dot, .hclose, .pnpay-btn--ghost{
  border: 1px solid color-mix(in srgb, currentColor 45%, transparent) !important;
}

/* ── 4. THE AUGUST RULING, STILL LIVE OUTSIDE THE GAME SHELL.
      pn-system-v4.css §"THE BUTTON MATERIAL · glass and gradient" answers the CEO on 2026-08-17
      ("cant you introduce some glass & Gradient on all buttons?"). That was reversed on
      2026-09-19 ("all buttons are flat"), and pn-ds.css carries the reversal — on the ONE page
      that links it. These are the selectors from that block which are not class-named above, so
      they slipped the net entirely: a bare <button> inside .decision or .board .act, which is
      "End week" on the floor and "Put a team on it" on the pitch board. */
:is(.decision button, .board .act button, .ledger .lr.hot .go,
    .decision .todo .go--now, .task .go--now, .desk__commit button,
    .night .buy, .cab .play),
:is(.decision button, .board .act button, .desk__commit button):hover,
:is(.decision button, .board .act button, .desk__commit button):active{
  background-image: none !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* ── 5. CARDS THAT ARE CONTROLS. The pool opponent cards and the arcade tool cards are <button>
      elements, so the shape law reaches them and should: the CEO picks an opponent by pressing
      one. The pool cards carried the same gradient-plus-shadow material the ruling removed
      everywhere else; the arcade tool cards were square. Their colour and layout are untouched. */
.opp-card{
  background-image: none !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
.pnah-tool{ border-radius: 12px !important; }
