/* pn-desk-ledger-20260914.css — ONE LANGUAGE ACROSS THE DESK, THE LEDGER AND THE WEEK.
   =============================================================================================
   CEO, 14 Sep 2026, three crops: "so much disconnected, poor design everywhere".

     1 · THE DESK // THIS WEEK — the WahWahs nomination card: a ballot line that repeated brand
         names, a spec citation printed to the player, an expiry dressed as an alarm chip, and
         two actions rendered WHITE ON CREAM (measured 1.06:1 — not "quiet", invisible).
     2 · LEDGER — WEEK CLOSE — "£458,358.277" published as a cash position, a CTA that takes
         whatever accent the palette happens to be wearing, and staff meters drawn 4px faint.
     3 · PLAYING THE WEEK — bones fine, but the chips were 18% tints of their own semantic hue
         at 10px, so the week read as a row of pale stickers rather than a call sheet.

   THE LANGUAGE (not invented here — the last four DECISIONS_LOG entries, applied):
     · the cabinet face `var(--pn-type-face)` (Inter 900/800) for every headline and every
       display numeral;  IS for body;  `var(--mono)` for eyebrows.          [12–13 Sep]
     · the PRESENT/VERDICT hierarchy: solid objects in a column, one WORD/figure at hero scale,
       a ledger row = big numeral + LONG track.                              [13 Sep, CEO #21]
     · the invitation idiom: cream stock in every theme, a gold rule, one action — a card is an
       OBJECT and does not re-ink for the room.                              [13 Sep, CEO #22]
     · button ink PINNED per theme, never inherited.                         [13 Sep numerals]

   CASCADE (measured, not assumed — GAME_DESIGN_STATE §5):
     · `pn-button-unify-20260819.css` paints button ink at (0,5,2) + !important;
     · `style-01.css` ~7238 paints every office button through a ~30-deep `button:not(…)` chain.
     Nothing outranks an arbitrarily long `:not()` chain except an ID — so every button pin below
     either anchors on an ID (`#ws-continue`, `#ws-pub`) or repeats its own class token five
     times, which is the pattern the numerals sheet already established for exactly this fight.
     Loads LAST in play.html.
   ============================================================================================= */

/* ═══ 1 · THE DESK — the nomination card is an INVITATION ═══════════════════════════════════ */

/* THE EXPIRY IS A LINE, NOT AN ALARM. Every Desk card carried its deadline as a filled, bordered
   chip in alarm red — the loudest object on a card whose actual point is the decision. It states
   a fact; facts are set quietly, in the mono, on the card's own ink. (All cards, one system.) */
html body .pnfc-card .pnfc-dl,
html body .pnfc-card .pnfc-info{
  background:none !important; border:0 !important; padding:0 !important; border-radius:0 !important;
  font:700 9.5px/1.3 var(--mono),ui-monospace,monospace !important; letter-spacing:.16em !important;
  text-transform:uppercase !important; opacity:.72;
}
html body .pnfc-card .pnfc-dl.now{ opacity:.9; }

html body .pnfc-card--wahwah{
  /* the invitation's own stock — the same values as the floor invitation (pn-wahwahs-invite),
     so the Desk and the floor read as one family rather than two takes on the same night */
  --wwi-stock:#F4EFE4; --wwi-stock-2:#EDE6D8; --wwi-ink:#1B1A17; --wwi-ink-dim:#5E574C;
  --wwi-gold:#B8891F; --wwi-gold-2:#E0B650; --wwi-cta:#B4380D;
  /* GOLD IS A FOIL, NOT AN INK. The invitation's own gold measures 2.76:1 as 9.5px type on this
     stock — fine as the printed rule and the seal, illegible as the eyebrow. Same law the
     numerals sheet states for brand orange: the fill keeps the bright value, the TYPE takes a
     deepened one (5.5:1). Measured, not chosen. */
  --wwi-gold-ink:#7D5A0F;
  position:relative; overflow:hidden;
  background:linear-gradient(168deg,var(--wwi-stock),var(--wwi-stock-2)) !important;
  border:0 !important; border-radius:6px !important;
  color:var(--wwi-ink) !important;
  box-shadow:0 1px 0 rgba(255,255,255,.6) inset, 0 18px 40px -18px rgba(0,0,0,.55), 0 0 0 1px rgba(27,26,23,.10);
  margin-bottom:14px !important;
}
/* the printed gold edge — an edge, not a border box */
html body .pnfc-card--wahwah::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:6px; z-index:1;
  background:linear-gradient(180deg,var(--wwi-gold-2),var(--wwi-gold) 60%,#8C6614);
}
/* THE SEAL GOES RIGHT, THE WORDS GO LEFT — the floor invitation's own composition (seal in the
   right margin, everything else on ONE left edge). Measured reason, not taste: with the seal in
   the left gutter and the expiry riding the same row, the headline was squeezed into a 250px
   column and broke across three lines on a 1440 desktop. */
html body .pnfc-card--wahwah .pnfc-card-hd{
  display:grid !important; align-items:start;
  grid-template-columns:minmax(0,1fr) auto auto;
  grid-template-areas:"main main seal" "dl chev seal";
  column-gap:14px !important; row-gap:6px !important;
  padding:16px 18px 15px 22px !important;
}
/* ⛔ THE CARD HEADER IS NOT A GREY BUTTON. `.pnfc-card-hd` IS a <button>, so style-01.css's
   office/pitch catch-alls (`button:not(…)×24`) painted it `--rust-card` — which resolves to a
   GRADIENT, not a colour — at !important: measured in the CSSOM as
   `linear-gradient(160deg, rgba(30,24,45,.52), rgba(14,10,22,.62))` on the header, i.e. a dark
   plate across the top third of a cream invitation (before_desk_*.png shows it in both themes).
   Six repeats of the class token were NOT enough — that chain is ~(0,25,1) and only an ID beats
   it, and a header that repeats per card cannot carry one. The real fix is at the catch-all:
   `.pnfc-card-hd` is now in its exclusion list (style-01.css, the SST §5e pattern). This rule
   stays as the belt to that braces — it is what the header is SUPPOSED to be. */
html body .pnfc-card--wahwah .pnfc-card-hd.pnfc-card-hd.pnfc-card-hd.pnfc-card-hd.pnfc-card-hd.pnfc-card-hd{
  background:transparent !important; border:0 !important; border-radius:0 !important; color:var(--wwi-ink) !important;
}
html body .pnfc-card--wahwah .pnfc-card-hd.pnfc-card-hd.pnfc-card-hd.pnfc-card-hd.pnfc-card-hd.pnfc-card-hd:hover{
  background:rgba(27,26,23,.05) !important;
}
html body .pnfc-card--wahwah .pnfc-mono{ grid-area:seal; align-self:center; }
html body .pnfc-card--wahwah .pnfc-card-main{ grid-area:main; }
html body .pnfc-card--wahwah .pnfc-dl,
html body .pnfc-card--wahwah .pnfc-info{ grid-area:dl; align-self:center; }
html body .pnfc-card--wahwah .pnfc-chev{ grid-area:chev; align-self:center; }
html body .pnfc-card--wahwah .pnfc-card-hd:hover{ background:rgba(27,26,23,.045) !important; }
/* the WW seal: a gold disc on the stock, not a tinted glass square */
html body .pnfc-card--wahwah .pnfc-mono{
  width:38px !important; height:38px !important; border-radius:50% !important;
  background:radial-gradient(circle at 35% 30%,#F3D77A,var(--wwi-gold) 58%,#8C6614) !important;
  border:0 !important; color:#3D2B05 !important;
  font:900 12px/1 var(--pn-type-face) !important; letter-spacing:-.02em !important;
  box-shadow:0 1px 0 rgba(255,255,255,.7) inset, 0 -2px 0 rgba(0,0,0,.18) inset;
}
html body .pnfc-card--wahwah .pnfc-card-kind{
  font:800 9.5px/1 var(--mono),ui-monospace,monospace !important; letter-spacing:.24em !important;
  color:var(--wwi-gold-ink) !important; opacity:1 !important; margin-bottom:5px !important;   /* 5.48:1 */
}
/* the name of the night, in the cabinet face — the card's one loud moment */
html body .pnfc-card--wahwah .pnfc-card-h{
  font-family:var(--pn-type-face) !important; font-weight:800 !important;
  font-size:19px !important; line-height:1.1 !important; letter-spacing:-.025em !important;
  color:var(--wwi-ink) !important;
}
html body .pnfc-card--wahwah .pnfc-dl,
html body .pnfc-card--wahwah .pnfc-info{ color:var(--wwi-ink-dim) !important; opacity:1; }  /* 6.4:1 on the stock */
html body .pnfc-card--wahwah .pnfc-chev{ color:var(--wwi-ink-dim) !important; opacity:.8; }
html body .pnfc-card--wahwah .pnfc-card-body{ padding:0 20px 18px 22px !important; }
html body .pnfc-card--wahwah .pnfc-copy{
  font:400 15px/1.5 IS,ui-sans-serif,system-ui,sans-serif !important;
  color:var(--wwi-ink) !important; opacity:1 !important; max-width:62ch; margin-bottom:14px !important;
}
html body .pnfc-card--wahwah .pnfc-voice{ color:var(--wwi-ink) !important; border-left-color:var(--wwi-gold) !important; opacity:1 !important; }
/* the two actions, side by side: one decision, one recommended move */
html body .pnfc-card--wahwah .pnfc-opts{ flex-direction:row !important; flex-wrap:wrap; gap:10px !important; }
html body .pnfc-card--wahwah .pnfc-opt{ width:auto !important; flex:0 1 auto; }

/* ── the PIN. Five repeats of the class token (0,7,2) + !important, because pn-button-unify
   paints ink at (0,5,2)!important and the office catch-all runs a ~30-deep :not() chain. These
   two rules are the whole fix for "white on cream". ────────────────────────────────────────── */
html body .pnfc-card--wahwah .pnfc-opt.pnfc-opt.pnfc-opt.pnfc-opt.pnfc-opt.pnfc-opt--lead{
  background:var(--wwi-cta) !important; background-image:none !important;
  color:#ffffff !important; border:0 !important; border-radius:8px !important;
  min-height:44px; padding:0 20px !important;
  font-family:var(--pn-type-face) !important; font-weight:800 !important; font-size:14px !important;
  letter-spacing:-.005em !important; text-transform:none !important;
  box-shadow:0 6px 0 rgba(88,34,0,.32) !important;
}
html body .pnfc-card--wahwah .pnfc-opt.pnfc-opt.pnfc-opt.pnfc-opt.pnfc-opt.pnfc-opt--lead:hover{ background:#C94413 !important; }
html body .pnfc-card--wahwah .pnfc-opt.pnfc-opt.pnfc-opt.pnfc-opt.pnfc-opt:not(.pnfc-opt--lead){
  background:transparent !important; background-image:none !important;
  color:var(--wwi-ink) !important; border:1.5px solid rgba(27,26,23,.34) !important; border-radius:8px !important;
  min-height:44px; padding:0 18px !important;
  font-family:IS,ui-sans-serif,system-ui,sans-serif !important; font-weight:700 !important; font-size:14px !important;
  text-transform:none !important; box-shadow:none !important;
}
html body .pnfc-card--wahwah .pnfc-opt.pnfc-opt.pnfc-opt.pnfc-opt.pnfc-opt:not(.pnfc-opt--lead):hover{
  background:rgba(27,26,23,.07) !important; border-color:rgba(27,26,23,.6) !important;
}
html body .pnfc-card--wahwah .pnfc-opt:focus-visible{ outline:2px solid var(--wwi-ink) !important; outline-offset:2px; }
html body .pnfc-card--wahwah .pnfc-opt .pnfc-opt-lbl{ display:inline !important; }
html body .pnfc-card--wahwah .pnfc-opt .pnfc-opt-eff{ color:inherit !important; opacity:.78; }
@media (max-width:560px){
  /* the expiry line and the disclosure chevron were colliding at 390 — the line keeps its mono
     voice but loses the tracking it does not have room for */
  html body .pnfc-card--wahwah .pnfc-dl{ font-size:8.5px !important; letter-spacing:.1em !important; }
  html body .pnfc-card--wahwah .pnfc-card-hd{ column-gap:10px !important; }
  html body .pnfc-card--wahwah .pnfc-opts{ flex-direction:column !important; }
  html body .pnfc-card--wahwah .pnfc-opt{ width:100% !important; justify-content:center; }
  html body .pnfc-card--wahwah .pnfc-card-h{ font-size:17px !important; }
}

/* ═══ 2 · LEDGER — WEEK CLOSE, in the verdict's hierarchy ═══════════════════════════════════
   The window is a PINNED-DARK seam in both themes — it already was (style-01 §FIX 6 says so in
   as many words), and it stays one: the week close is a night object. So its ink is pinned
   LIGHT in both themes and its CTA takes the DARK-ground pair (#F97316 fill / #07080C ink) in
   both, rather than flipping to the light-theme pair on a plate that never goes light. That is
   the same law the invitation states from the other side: the object decides its own ink. */
/* THE WINDOW GETS ITS HEIGHT BACK. The 210px reservation dated from a layout whose actions were
   two stacked full-width blocks; with one row of actions (below) the window can stand 60px taller
   inside the same viewport, and that 60px is what the floor list is drawn in. Measured at 1440x900
   and 390x844: the CTA stays on screen in both, which is the constraint that reservation exists for. */
html body .week-summary-inner.bigmodal-card{ max-height:calc(100vh - 150px); }
/* A FLOATING CONTROL NEVER SITS ON THE DECISION (UX_RULES §2/§6). The fixed "RETURN TO THE PITCH"
   chip is body-level, so it landed squarely on this window's primary CTA at both widths — visible
   in before_ledger_390_light.png. It is hidden on this view only; the week has already advanced,
   so there is nothing to return to from here, and the chip is back the moment the office mounts. */
html body[data-view="weeksummary"] #pn-awaychip{ display:none !important; }

html body .week-summary-inner .ws-eyebrow{
  font:800 10px/1 var(--mono),ui-monospace,monospace !important; letter-spacing:.24em !important;
  text-transform:uppercase !important; color:#F0A05A !important; opacity:1 !important; margin-bottom:8px !important;
}
html body .week-summary-inner .ws-title{
  font-family:var(--pn-type-face) !important; font-weight:900 !important;
  font-size:clamp(26px,3.2vw,38px) !important; line-height:.98 !important; letter-spacing:-.03em !important;
  color:#ffffff !important; margin:0 0 18px !important; text-wrap:balance;
}
/* ── the ledger: three rows, each a label, a figure and one long track ───────────────────── */
html body .week-summary-inner .wsl-ledger{
  margin:2px -34px 0 !important; padding:12px 34px 14px !important; flex:0 0 auto;
  display:flex; flex-direction:column; gap:0;
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,0)) !important;
  border-top:1px solid rgba(255,255,255,.12) !important; border-bottom:1px solid rgba(255,255,255,.12) !important;
}
html body .week-summary-inner .wsl-lrow{
  display:grid; grid-template-columns:minmax(0,1fr) auto; grid-template-areas:"k fig" "trk trk" "cap cap";
  align-items:baseline; column-gap:16px; row-gap:6px;
  padding:9px 0; border-bottom:1px solid rgba(255,255,255,.09);
}
html body .week-summary-inner .wsl-lrow:last-child{ border-bottom:0; padding-bottom:2px; }
/* the detail below the ledger is not optional furniture — the agency line and the floor are the
   other half of the week's report, and the ledger must never grow until they have no room. */
html body .week-summary-inner .wsl-detail{ min-height:190px; }
html body .week-summary-inner .wsl-lrow .wsl-k{
  grid-area:k; font:800 9px/1 var(--mono),ui-monospace,monospace !important; letter-spacing:.24em !important;
  text-transform:uppercase !important; color:#A9BDD6 !important;                 /* 8.4:1 on the plate */
}
html body .week-summary-inner .wsl-lrow .wsl-fig{
  grid-area:fig; justify-self:end;
  font-family:var(--pn-type-face) !important; font-weight:900 !important;
  font-size:clamp(24px,3vw,30px) !important; line-height:.9 !important; letter-spacing:-.035em !important;
  font-variant-numeric:tabular-nums lining-nums; font-feature-settings:"tnum" 1,"lnum" 1;
  color:#EEF4FC;
}
html body .week-summary-inner .wsl-out .wsl-fig{ color:#FF8F7A; }                 /* money leaving  — 6.4:1 */
html body .week-summary-inner .wsl-in  .wsl-fig{ color:#5FE3D1; }                 /* money arriving — 9.9:1 */
/* the position is the hero figure of the screen — the verdict's WORD, in numerals */
html body .week-summary-inner .wsl-pos .wsl-fig{ font-size:clamp(34px,5.6vw,46px) !important; color:#FFFFFF; }
html body .week-summary-inner .wsl-pos.is-down .wsl-fig{ color:#FF6A55; }
html body .week-summary-inner .wsl-trk{
  grid-area:trk; position:relative; display:block; height:12px; width:100%;
  background:rgba(255,255,255,.10); overflow:hidden;
}
html body .week-summary-inner .wsl-trk i{ position:absolute; inset:0 auto 0 0; width:var(--w,0%); background:#8FA3BD; display:block; }
html body .week-summary-inner .wsl-out .wsl-trk i{ background:#FF8F7A; }
html body .week-summary-inner .wsl-in  .wsl-trk i{ background:#5FE3D1; }
html body .week-summary-inner .wsl-pos .wsl-trk i{ background:#F97316; }   /* brand-fixed: the plate is pinned dark, so the runway bar never takes a worn accent */
html body .week-summary-inner .wsl-pos.is-down .wsl-trk i{ background:#FF6A55; }
/* THE BAR — the verdict screen's own white tick, here marking four weeks of runway: the line
   under which the CFO starts writing letters. A track with a threshold on it says what the
   figure MEANS; a track without one is decoration. */
html body .week-summary-inner .wsl-tick{
  position:absolute; top:-3px; bottom:-3px; width:3px; background:#fff; box-shadow:0 0 8px rgba(255,255,255,.6);
}
html body .week-summary-inner .wsl-lrow .wsl-cap{
  grid-area:cap; font:400 12.5px/1.45 IS,ui-sans-serif,system-ui,sans-serif !important;
  color:#A9BDD6 !important; letter-spacing:0 !important;
}
html body .week-summary-inner .wsl-lrow .wsl-cap b{ color:#fff; font-weight:800; font-variant-numeric:tabular-nums; }
html body .week-summary-inner .wsl-lrow .wsl-cap .wsl-warn{ color:#FFB27A; font-weight:700; }

/* the agency line — three figures in the cabinet face, tabular */
html body .week-summary-inner .wsl-ag .wsl-v{
  font-family:var(--pn-type-face) !important; font-weight:800 !important; font-size:22px !important;
  letter-spacing:-.025em !important; font-variant-numeric:tabular-nums lining-nums; color:#EEF4FC !important;
}
/* the floor — read as bodies. 12px tracks, the same object as the ledger's own. */
html body .week-summary-inner .wsl-m{ grid-template-columns:56px 1fr 38px !important; gap:10px !important; }
html body .week-summary-inner .wsl-m i{ height:12px !important; background:rgba(255,255,255,.10) !important; }
html body .week-summary-inner .wsl-m b{
  font-family:var(--pn-type-face) !important; font-weight:800 !important; font-size:12px !important;
  color:#DCE6F2 !important; font-variant-numeric:tabular-nums lining-nums;
}
html body .week-summary-inner .wsl-p{ padding:11px 0 !important; }
html body .week-summary-inner .wsl-nm{ font-family:IS,ui-sans-serif,system-ui,sans-serif !important; }

/* ── the CTA. ID-anchored (0,1,0)+!important beats both the unify sheet and the :not() chain,
   and — being an ID — it cannot be out-specified by a longer class chain later. ─────────── */
html body #ws-continue.ws-cta{
  background:#F97316 !important; background-image:none !important; border:0 !important;
  color:#07080C !important;                                                      /* 7.0:1 on #F97316 */
  font-family:var(--pn-type-face) !important; font-weight:800 !important; font-size:15px !important;
  letter-spacing:-.005em !important; text-transform:none !important;
  min-height:52px; border-radius:10px !important;
  box-shadow:0 8px 0 rgba(120,52,6,.45) !important;
}
html body #ws-continue.ws-cta:hover{ background:#FF8A33 !important; }
html body #ws-continue.ws-cta:active{ transform:translateY(2px); box-shadow:0 6px 0 rgba(120,52,6,.45) !important; }
html body #ws-continue.ws-cta:focus-visible{ outline:2px solid #fff !important; outline-offset:3px; }
html body #ws-pub{
  background:transparent !important; background-image:none !important;
  border:1.5px solid rgba(238,244,252,.34) !important; color:#EEF4FC !important;  /* 14.6:1 on the plate */
  font-family:IS,ui-sans-serif,system-ui,sans-serif !important; font-weight:700 !important; font-size:14px !important;
  min-height:46px; border-radius:10px !important; box-shadow:none !important;
}
html body #ws-pub:hover{ background:rgba(238,244,252,.09) !important; border-color:rgba(238,244,252,.6) !important; }
/* ONE ROW OF ACTIONS above 560px: the pint is the aside, starting the week is the decision. Two
   stacked full-width blocks cost ~60px of the window's height and read as two equal choices. */
@media (min-width:561px){
  html body .week-summary-inner .ws-foot{ display:flex !important; flex-direction:row !important; flex-wrap:nowrap !important;
    gap:12px; align-items:stretch; }
  html body .bigmodal-foot.ws-foot #ws-continue.ws-cta{ flex:1 1 62% !important; order:2 !important; width:auto !important; }
  html body .bigmodal-foot.ws-foot #ws-pub{ flex:1 1 38% !important; order:1 !important; width:auto !important; }
}
@media (max-width:560px){
  html body .week-summary-inner .wsl-ledger{ margin-left:-20px !important; margin-right:-20px !important;
    padding-left:20px !important; padding-right:20px !important; }
  html body .week-summary-inner .wsl-lrow{ padding:11px 0; }
  html body .week-summary-inner .wsl-pos .wsl-fig{ font-size:clamp(32px,10vw,44px) !important; }
}
@media (prefers-reduced-motion:reduce){
  html body .week-summary-inner .wsl-trk i{ transition:none !important; }
}

/* ═══ 3 · PLAYING THE WEEK — the call sheet, as one system ══════════════════════════════════
   A chip is a SOLID card with a 3px semantic spine, not an 18% tint of its own hue. The hues
   are the ones PN/OS already fixes brand-side (they never read the worn accent); this only
   changes how much of the chip each hue paints — the spine, and nothing else. */
.pnos-run{ --pnos-c-social:#C9557A; --pnos-chip:#16202E; --pnos-chip-ink:#EEF3FB; --pnos-chip-hair:rgba(255,255,255,.10); }
.pnos-run.lg-light{ --pnos-chip:#FFFCF6; --pnos-chip-ink:#241F1B; --pnos-chip-hair:rgba(20,14,8,.14); }

.pnos-run .pnos-run-inner{ max-width:1040px; }
.pnos-run .pnos-run-eye{ font:800 11px/1 var(--mono),ui-monospace,monospace; letter-spacing:.42em; }
.pnos-run .pnos-run-week{
  font-family:var(--pn-type-face); font-weight:900; font-style:italic;
  /* ⛔ THE LEAN IS GONE, DELIBERATELY, AND THIS IS WHY. The brief said "it's already Inter 900
     italic — keep". It was not: `--pn-font:'Inter'` never resolves (the house face is `IN`,
     inter-400.woff2, weights 100–900, ONE upright cut — there is no Inter and no italic in the
     tree), so the old lean was a system-fallback face standing in for a font that was not there.
     Tested, both ways, in the real render: `font-style:italic` and `font-style:oblique 9deg`
     both come back upright — Chromium will not synthesise a slant for this variable face. So the
     headline takes the cabinet face upright rather than dragging a fallback font back in to keep
     an accident. If the lean is wanted, it needs an italic cut committed to assets/fonts/. */
  font-style:normal;
  font-size:clamp(40px,8vw,80px); line-height:.92; letter-spacing:-.035em; margin:10px 0 30px;
}
/* the day header and the chips are ONE system: same mono, same rule, one accent state */
.pnos-run .pnos-run-dl{
  font:800 11px/1 var(--mono),ui-monospace,monospace; letter-spacing:.22em;
  color:var(--pn-dim); padding-bottom:10px; margin-bottom:12px; border-bottom:2px solid var(--pnos-chip-hair);
}
.pnos-run .pnos-run-day.on .pnos-run-dl{ color:var(--pn-acc-ink,var(--pn-acc)); border-color:var(--pn-acc); }
.pnos-run .pnos-run-evs{ gap:8px; }
.pnos-run .pnos-run-ev{
  font:600 12.5px/1.35 IS,ui-sans-serif,system-ui,sans-serif;
  color:var(--pnos-chip-ink); padding:10px 12px; border-radius:4px; text-align:left;
  background:var(--pnos-chip);
  border:1px solid var(--pnos-chip-hair);
  border-left:3px solid var(--c,var(--pn-acc));
  box-shadow:0 1px 0 rgba(0,0,0,.06);
}
.pnos-run.lg-light .pnos-run-ev{ box-shadow:0 1px 2px rgba(20,14,8,.10); }
.pnos-run .pnos-run-ev--dinner{ --c:var(--pnos-c-social); }
.pnos-run .pnos-run-ev--note,
.pnos-run .pnos-run-ev--q{
  background:transparent; color:var(--pn-faint); border-color:var(--pnos-chip-hair);
  border-left-color:var(--pnos-chip-hair); font-weight:500;
}
/* the night itself: near-black stock, gold ink, gold spine — the WahWahs never wear a theme */
.pnos-run .pnos-run-ev--finale{
  background:linear-gradient(160deg,#14100C,#0B0907) !important;
  color:#E8C069 !important; border-color:rgba(232,192,105,.34) !important;
  border-left:3px solid #E0B650 !important;
  font-weight:800; letter-spacing:.02em;
}
/* CONTINUE is the house primary. No ring, no palette accent: the same orange the ledger's CTA
   takes, so ending a week and closing a week are visibly the same decision. */
.pnos-run .pnos-run-done.pnos-run-done{
  background:#F97316; border:0; color:#07080C;
  font-family:var(--pn-type-face); font-weight:800; font-size:14px; letter-spacing:.02em;
  text-transform:uppercase; border-radius:10px; min-height:52px; padding:0 34px;
  box-shadow:0 8px 0 rgba(120,52,6,.45);
}
.pnos-run .pnos-run-done.pnos-run-done:hover{ background:#FF8A33; filter:none; }
.pnos-run .pnos-run-done.pnos-run-done:active{ transform:translateX(-50%) translateY(2px); box-shadow:0 6px 0 rgba(120,52,6,.45); }
.pnos-run .pnos-run-done.pnos-run-done:focus-visible{ outline:2px solid var(--pnos-chip-ink); outline-offset:3px; }
.pnos-run .pnos-run-skip{
  font:800 11px/1 var(--mono),ui-monospace,monospace; letter-spacing:.16em;
  background:var(--pnos-chip); border:1px solid var(--pnos-chip-hair); color:var(--pnos-chip-ink);
  border-radius:8px;
}
@media (max-width:560px){
  .pnos-run .pnos-run-week{ margin:8px 0 20px; }
  .pnos-run .pnos-run-dl{ border-bottom:0; padding:0; margin:0; }
  .pnos-run .pnos-run-ev{ font-size:12px; padding:9px 11px; }
  .pnos-run .pnos-run-done.pnos-run-done{ min-width:min(320px,calc(100vw - 48px)); justify-content:center; }
}
