/* ============================================================================
   THE BENCH — home page only (PR-HOME-BENCH 2026-06-13)
   A verdict-led triage workbench. HOME-SCOPED warm-brass identity in light +
   dark. We REDEFINE the standard token names *inside #hub-template-body* so
   every element here (including the reused jobs table in the drawer) wears the
   warm palette, while the rest of the app keeps its own theme untouched
   (operator: "this is just the home page"). bench.js sets data-bench=light|dark
   from the active theme's luminance.
   ============================================================================ */

/* ---- COOL GRAPHITE palette: DARK (default) -------------------------------
   Research (Vercel/Linear/Stripe/GitHub/Figma + WCAG/APCA/Material color
   science): cool true-neutral base (never warm/brown — that reads cheap),
   dark GREY not black (#0E-#16 sweet spot, elevation via lightness steps),
   ONE rationed azure accent + a teal second-fill, both desaturated/brightened
   for dark so they read premium not neon. AA/AAA verified. */
#hub-template-body {
  /* THEME (2026-07-18): mirror the global dark theme (was a gray #0E1116
     override) so the home hub is the same pure black as the rest of the app. */
  --bg:#000000; --sf:#000000; --pn:#16181C; --pn-h:#1E2127; --inp:#202327;
  --bdr:#2F3336; --bdr-h:#3E4348;
  --txt:#E7E9EA; --dim:#9AA3B0; --muted:#6B7480; --white:#FFFFFF; --ink:var(--txt);
  --acc:#4C8DFF; --acc2:#6AA5FF; --acc-ink:#05070D;
  --teal:#2DD4BF; --teal-ink:#06231F;
  --ok:#34D399; --ok-ink:#06281D; --warn:#F0B429; --warn-ink:#2A1E03;
  --no:#F2566B; --no-ink:#2A0810;
  --b-shadow: none;
  --b-shadow-pop: 0 14px 44px rgba(0,0,0,.55);
  background: var(--bg);
  color: var(--txt);
  min-height: 100%;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
/* ---- COOL GRAPHITE palette: LIGHT ---------------------------------------- */
#hub-template-body[data-bench="light"] {
  /* darker cool-grey canvas so the white cards/columns read clearly (operator). */
  --bg:#F3F5F8; --sf:#E9EDF2; --pn:#FFFFFF; --pn-h:#F0F3F7; --inp:#FFFFFF;
  --bdr:#D9DFE7; --bdr-h:#AAB3C0;
  --txt:#1A222E; --dim:#5A6573; --muted:#8C95A0; --white:#0D1118; --ink:var(--txt);
  --acc:#2563EB; --acc2:#1D4FD8; --acc-ink:#FFFFFF;
  --teal:#0E9C8C; --teal-ink:#FFFFFF;
  --ok:#0E9D6E; --ok-ink:#FFFFFF; --warn:#C77700; --warn-ink:#FFFFFF;
  --no:#D33A4B; --no-ink:#FFFFFF;
  --b-shadow: 0 1px 2px rgba(16,24,40,.05), 0 2px 10px rgba(16,24,40,.07);
  --b-shadow-pop: 0 16px 48px rgba(16,24,40,.18);
}

/* ---- canvas ------------------------------------------------------------- */
#hub-template-body { font-family: var(--ff-ui, 'Inter', system-ui, sans-serif); }
/* PR-HOME-BENCH-2ZONE (2026-06-13): capped ~1500px (UX studies: don't cage a
   triage dashboard at prose width, don't go full-bleed) — reclaims wide-screen
   dead space as a right reference rail. */
.bench, .bench-welcome { max-width: 1500px; margin: 0 auto; padding: 26px 32px 64px; }
.bench-grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 22px; align-items: start; }
.bench-main { min-width: 0; display: flex; flex-direction: column; gap: 0; }
.bench-rail { display: flex; flex-direction: column; gap: 18px; position: sticky; top: 18px; }
.bench-rail .bench-block { margin-top: 0; }
@media (max-width: 1100px) {
  .bench-grid { grid-template-columns: minmax(0, 1fr); }
  .bench-rail { position: static; flex-direction: column; }
}
.bench-mono, .forge-mono, .bench .forge-mono {
  font-family: var(--ff-mono, 'JetBrains Mono', ui-monospace, monospace);
  font-variant-numeric: tabular-nums; font-feature-settings: "tnum" 1;
}

/* ============================ HEADER ===================================== */
.bench-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-bottom:22px; }
.bench-head-id { display:flex; flex-direction:column; gap:4px; min-width:0; }
.bench-wordmark { font-size:15px; font-weight:600; letter-spacing:.01em; color:var(--white); }
.bench-date { font-size:12px; color:var(--dim); letter-spacing:.04em; text-transform:uppercase; }
.bench-actions { display:flex; gap:10px; flex-wrap:wrap; flex-shrink:0; }
.bench-btn {
  min-height:40px; padding:0 16px; border-radius:9px; cursor:pointer;
  font:600 13.5px var(--ff-ui); letter-spacing:.005em;
  background:transparent; color:var(--txt); border:1px solid var(--bdr-h);
  display:inline-flex; align-items:center; gap:8px;
  transition: background .14s ease, border-color .14s ease, color .14s ease;
}
.bench-btn:hover, .bench-btn:focus-visible { background:var(--pn-h); border-color:var(--acc); outline:none; }
.bench-btn-primary { background:var(--acc); color:var(--acc-ink); border-color:var(--acc); }
.bench-btn-primary:hover, .bench-btn-primary:focus-visible { filter:brightness(1.06); background:var(--acc); color:var(--acc-ink); }
.bench-btn:focus-visible { box-shadow:0 0 0 3px color-mix(in srgb, var(--acc) 35%, transparent); }

/* ============================ VERDICT (hero) ============================= */
.bench-verdict-wrap { margin: 6px 0 30px; }
.bench-verdict { display:flex; align-items:center; gap:16px; margin:0 0 18px; }
.bench-dot {
  flex:0 0 auto; width:13px; height:13px; border-radius:50%;
  background:var(--muted); box-shadow:0 0 0 4px color-mix(in srgb, var(--muted) 22%, transparent);
}
.bench-verdict[data-state="ok"]   .bench-dot { background:var(--ok);   box-shadow:0 0 0 4px color-mix(in srgb, var(--ok) 22%, transparent); }
.bench-verdict[data-state="warn"] .bench-dot { background:var(--warn); box-shadow:0 0 0 4px color-mix(in srgb, var(--warn) 22%, transparent); }
.bench-verdict[data-state="bad"]  .bench-dot { background:var(--no);   box-shadow:0 0 0 4px color-mix(in srgb, var(--no) 22%, transparent); }
.bench-verdict-text {
  font-size: clamp(26px, 3.4vw, 46px); font-weight:300; line-height:1.12;
  letter-spacing:-0.022em; color:var(--white);
}
.bench-verdict-text b { font-weight:600; color:var(--acc); }
.bench-verdict[data-state="bad"] .bench-verdict-text b { color:var(--no); }
.bench-verdict[data-state="warn"] .bench-verdict-text b { color:var(--warn); }

/* ---- AT-RISK focal card(s) (the "traveler") ----------------------------- */
.bench-atrisk { display:flex; flex-direction:column; gap:12px; }
.bench-traveler {
  position:relative; display:flex; align-items:center; gap:18px; flex-wrap:wrap;
  padding:16px 20px 16px 22px; background:var(--pn); border:1px solid var(--bdr);
  border-left:3px solid var(--acc); border-radius:12px; box-shadow:var(--b-shadow);
  cursor:pointer; transition:border-color .14s ease, background .14s ease;
}
.bench-traveler[data-sev="bad"]  { border-left-color:var(--no); }
.bench-traveler[data-sev="warn"] { border-left-color:var(--warn); }
.bench-traveler:hover, .bench-traveler:focus-visible { background:var(--pn-h); border-color:var(--bdr-h); border-left-color:var(--no); outline:none; }
.bench-traveler:focus-visible { box-shadow:0 0 0 3px color-mix(in srgb, var(--acc) 35%, transparent); }
.bench-tv-main { flex:1 1 240px; min-width:0; display:flex; flex-direction:column; gap:5px; }
.bench-tv-line1 { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.bench-tv-name { font-size:17px; font-weight:600; color:var(--white); }
.bench-tv-cust { font-size:13.5px; color:var(--dim); }
.bench-tv-line2 { display:flex; align-items:center; gap:14px; flex-wrap:wrap; font-size:12.5px; color:var(--dim); }
.bench-tv-meta { font-family:var(--ff-mono); font-variant-numeric:tabular-nums; color:var(--txt); }
.bench-tv-right { display:flex; align-items:center; gap:14px; flex-shrink:0; }
.bench-due { font-family:var(--ff-mono); font-variant-numeric:tabular-nums; font-size:13px; font-weight:600; letter-spacing:.02em; color:var(--txt); white-space:nowrap; }
.bench-due[data-u="bad"]  { color:var(--no); }
.bench-due[data-u="warn"] { color:var(--warn); }
.bench-open { font:600 13px var(--ff-ui); color:var(--acc); white-space:nowrap; display:inline-flex; align-items:center; gap:5px; }

/* chips */
.bench-chip { font:600 10.5px var(--ff-mono); letter-spacing:.06em; padding:3px 7px; border-radius:5px; white-space:nowrap; text-transform:uppercase; }
.bench-chip-stage { background:color-mix(in srgb, var(--acc) 14%, transparent); color:var(--acc); }
.bench-chip-rush  { background:color-mix(in srgb, var(--no) 16%, transparent); color:var(--no); }
.bench-chip-prod  { background:color-mix(in srgb, var(--warn) 15%, transparent); color:var(--warn); }
.bench-chip-qc    { background:color-mix(in srgb, var(--warn) 15%, transparent); color:var(--warn); }
.bench-chip-cab   { background:color-mix(in srgb, var(--acc) 12%, transparent); color:var(--dim); }
.bench-chip-door  { background:color-mix(in srgb, var(--acc) 12%, transparent); color:var(--dim); }

/* ============================ STUDIOS (primary actions) ================= */
/* PR-HOME-STUDIO-TILES (2026-06-14): the two launchers rebuilt as pro product
   tiles. Each is a solid-color GRADIENT card (the only filled color on the page
   — scarcity = importance) carrying a live 3-up stat strip + a footer hint and
   a split Open / + New action, so the card reads as a status surface, not just a
   label. The whole tile lifts on hover; the inner Open region + the New pill are
   separate focusable controls. Cabinet = azure, Door = teal. */
.bench-studios { display:grid; grid-template-columns:repeat(auto-fit, minmax(320px,1fr)); gap:16px; margin:6px 0 4px; }
.bench-studio {
  display:flex; flex-direction:column; border-radius:18px; position:relative; overflow:hidden;
  box-shadow:var(--b-shadow); transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.bench-studio.is-cabinet { background:linear-gradient(140deg, color-mix(in srgb, var(--acc) 88%, #fff) 0%, var(--acc) 46%, color-mix(in srgb, var(--acc) 72%, #000) 100%); color:var(--acc-ink); }
.bench-studio.is-door    { background:linear-gradient(140deg, color-mix(in srgb, var(--teal) 88%, #fff) 0%, var(--teal) 46%, color-mix(in srgb, var(--teal) 72%, #000) 100%); color:var(--teal-ink); }
.bench-studio:hover, .bench-studio:focus-within {
  transform:translateY(-2px); filter:brightness(1.04);
  box-shadow: var(--b-shadow-pop, 0 12px 36px rgba(0,0,0,.3));
}
/* faint corner sheen for depth (decorative, behind content) */
.bench-studio::after { content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(120% 90% at 100% 0%, rgba(255,255,255,.16), transparent 60%); }
.bench-studio > * { position:relative; z-index:1; }

/* OPEN region — the primary tap target (icon + title + animated arrow) */
.bench-studio-open {
  display:flex; align-items:center; gap:16px; width:100%; text-align:left;
  padding:20px 22px 14px; background:transparent; border:0; cursor:pointer; color:currentColor;
}
.bench-studio-open:focus-visible { outline:none; box-shadow: inset 0 0 0 3px color-mix(in srgb, currentColor 50%, transparent); border-radius:18px 18px 0 0; }
.bench-studio-ico {
  flex:0 0 auto; width:52px; height:52px; display:inline-flex; align-items:center; justify-content:center;
  border-radius:14px; background:rgba(255,255,255,.2); color:currentColor;
}
.bench-studio-ico svg { width:28px; height:28px; }
.bench-studio-body { display:flex; flex-direction:column; gap:3px; min-width:0; }
.bench-studio-title { font-size:19px; font-weight:700; letter-spacing:-0.01em; color:currentColor; }
.bench-studio-sub { font-size:12.5px; color:currentColor; opacity:.82; }
.bench-studio-arr { margin-left:auto; flex:0 0 auto; font-size:22px; line-height:1; color:currentColor; transition: transform .15s ease; }
.bench-studio-open:hover .bench-studio-arr, .bench-studio-open:focus-visible .bench-studio-arr { transform: translateX(5px); }

/* live stat strip — three glassy cells (Open / In prod / Due ≤7d) */
.bench-studio-metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; padding:0 22px; }
.bench-studio-metric { display:flex; flex-direction:column; gap:1px; padding:9px 11px; border-radius:11px; background:rgba(255,255,255,.15); }
.bench-studio-metric-n { font:700 19px var(--ff-mono); font-variant-numeric:tabular-nums; line-height:1; color:currentColor; }
.bench-studio-metric-l { font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.06em; color:currentColor; opacity:.78; white-space:nowrap; }

/* footer — contextual hint + a New pill */
.bench-studio-foot { display:flex; align-items:center; gap:12px; padding:13px 22px 17px; }
.bench-studio-hint { flex:1 1 auto; min-width:0; font-size:12px; color:currentColor; opacity:.85; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.bench-studio-new {
  flex:0 0 auto; font:700 12.5px var(--ff-ui); color:currentColor; cursor:pointer;
  padding:7px 14px; border-radius:9px; background:rgba(255,255,255,.2);
  border:1px solid rgba(255,255,255,.3); transition: background .12s ease, transform .12s ease;
}
.bench-studio-new:hover { background:rgba(255,255,255,.34); }
.bench-studio-new:active { transform:translateY(1px); }
.bench-studio-new:focus-visible { outline:none; box-shadow: 0 0 0 3px color-mix(in srgb, currentColor 50%, transparent); }
@media (max-width: 600px) { .bench-studio-metric-l { letter-spacing:.03em; } }
@media (hover: none) { .bench-studio:hover { transform:none; box-shadow:var(--b-shadow); } }

/* ============================ SECTION BLOCKS ============================= */
.bench-block { margin-top:30px; }
.bench-block-head { display:flex; align-items:baseline; gap:12px; margin-bottom:13px; }
.bench-label { font:590 12px var(--ff-ui); letter-spacing:.085em; text-transform:uppercase; color:var(--dim); }
.bench-block-meta { font-size:11.5px; color:var(--dim); letter-spacing:.04em; }
.bench-block-link { margin-left:auto; font:600 12px var(--ff-ui); color:var(--acc); text-decoration:none; }
.bench-block-link:hover { text-decoration:underline; }

/* ---- THE WEEK rail ------------------------------------------------------ */
.bench-week { display:grid; grid-template-columns:repeat(7, minmax(0, 1fr)); gap:1px; background:var(--bdr); border:1px solid var(--bdr); border-radius:12px; overflow:hidden; }
.bench-day { background:var(--pn); padding:10px 11px 11px; min-height:78px; display:flex; flex-direction:column; gap:6px; cursor:pointer; transition:background .12s ease; }
.bench-day:hover { background:var(--pn-h); }
.bench-day:focus-visible { outline:2px solid var(--acc); outline-offset:-2px; }
.bench-day-hd { display:flex; align-items:baseline; justify-content:space-between; }
.bench-day-name { font:600 10.5px var(--ff-mono); letter-spacing:.08em; text-transform:uppercase; color:var(--dim); }
.bench-day.is-today .bench-day-name { color:var(--acc); }
.bench-day.is-over  .bench-day-name { color:var(--no); }
.bench-day-n { font:600 11px var(--ff-mono); color:var(--muted); }
.bench-day-clear { font-size:12px; color:var(--muted); padding-top:4px; }
.bench-wk-card { display:flex; flex-direction:column; gap:2px; padding:5px 8px; background:var(--bg); border:1px solid var(--bdr); border-left:2px solid var(--acc); border-radius:6px; cursor:pointer; transition:border-color .12s ease, background .12s ease; }
.bench-wk-card:hover, .bench-wk-card:focus-visible { background:var(--pn-h); border-color:var(--bdr-h); outline:none; }
.bench-wk-card[data-sev="bad"]  { border-left-color:var(--no); }
.bench-wk-card[data-sev="warn"] { border-left-color:var(--warn); }
.bench-wk-name { font-size:12.5px; font-weight:600; color:var(--txt); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.bench-wk-sub { display:flex; align-items:center; gap:7px; font:11px var(--ff-mono); color:var(--dim); font-variant-numeric:tabular-nums; }
.bench-wk-more { font-size:11.5px; color:var(--acc); cursor:pointer; padding-top:2px; }

/* ---- PIPELINE spine ----------------------------------------------------- */
.bench-spine { display:flex; align-items:stretch; gap:0; background:var(--pn); border:1px solid var(--bdr); border-radius:12px; padding:6px; box-shadow:var(--b-shadow); overflow:hidden; }
.bench-stage { flex:1 1 0; min-width:0; display:flex; flex-direction:column; gap:8px; padding:12px 14px; cursor:pointer; border-radius:9px; transition:background .12s ease; position:relative; }
.bench-stage:hover, .bench-stage:focus-visible { background:var(--pn-h); outline:none; }
.bench-stage + .bench-stage::before { content:"\203A"; position:absolute; left:-7px; top:50%; transform:translateY(-50%); color:var(--muted); font-size:14px; }
.bench-stage-top { display:flex; align-items:baseline; gap:8px; }
.bench-stage-n { font:600 22px var(--ff-mono); color:var(--white); font-variant-numeric:tabular-nums; line-height:1; }
.bench-stage-lbl { font:590 10.5px var(--ff-ui); letter-spacing:.07em; text-transform:uppercase; color:var(--dim); }
.bench-stage-bar { height:4px; border-radius:2px; background:var(--bdr); overflow:hidden; }
.bench-stage-bar > i { display:block; height:100%; border-radius:2px; background:var(--acc); }
.bench-stage[data-k="qc"]    .bench-stage-bar > i { background:var(--warn); }
.bench-stage[data-k="shipped"].bench-stage-bar > i { background:var(--ok); }
.bench-stage[data-k="pending"].bench-stage-bar > i { background:var(--muted); }

/* ---- DUO: resume + money ----------------------------------------------- */
.bench-duo { display:grid; grid-template-columns:1.4fr 1fr; gap:18px; margin-top:30px; align-items:start; }
.bench-resume, .bench-money { background:var(--pn); border:1px solid var(--bdr); border-radius:12px; box-shadow:var(--b-shadow); }
.bench-resume { display:flex; flex-direction:column; }
.bench-resume-row { display:flex; align-items:center; gap:12px; padding:13px 16px; cursor:pointer; border-bottom:1px solid color-mix(in srgb, var(--bdr) 55%, transparent); transition:background .12s ease; }
.bench-resume-row:last-child { border-bottom:none; }
.bench-resume-row:hover, .bench-resume-row:focus-visible { background:var(--pn-h); outline:none; }
.bench-resume-dot { flex:0 0 7px; width:7px; height:7px; border-radius:50%; background:var(--acc); }
.bench-resume-dot.is-door { background:color-mix(in srgb, var(--acc) 60%, var(--dim)); }
.bench-resume-name { flex:1; font-size:13.5px; font-weight:600; color:var(--txt); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.bench-resume-when { font:11px var(--ff-mono); color:var(--dim); white-space:nowrap; }
.bench-money { padding:16px 18px; display:flex; flex-direction:column; gap:14px; }
.bench-money-row { display:flex; align-items:baseline; justify-content:space-between; gap:10px; }
.bench-money-k { font-size:12.5px; color:var(--dim); }
.bench-money-v { font:600 19px var(--ff-mono); color:var(--white); font-variant-numeric:tabular-nums; }
.bench-money-v.is-warn { color:var(--warn); }
.bench-money-v.is-bad  { color:var(--no); }
.bench-money-v.is-ok   { color:var(--ok); }
.bench-money-sub { font-size:11.5px; color:var(--muted); }

/* ---- ALL JOBS drawer ---------------------------------------------------- */
.bench-drawer { margin-top:30px; border:1px solid var(--bdr); border-radius:12px; background:var(--pn); box-shadow:var(--b-shadow); overflow:hidden; }
.bench-drawer-sum { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 18px; cursor:pointer; list-style:none; flex-wrap:wrap; }
.bench-drawer-sum::-webkit-details-marker { display:none; }
.bench-drawer-title { font:600 13px var(--ff-ui); color:var(--txt); display:flex; align-items:center; }
.bench-drawer-title::before { content:"\203A"; display:inline-block; margin-right:9px; color:var(--dim); transition:transform .18s ease; }
.bench-drawer[open] .bench-drawer-title::before { transform:rotate(90deg); }
.bench-drawer .hub-jobs-count { color:var(--acc); font-family:var(--ff-mono); margin-left:2px; }
.bench-drawer-controls { display:flex; gap:10px; flex-wrap:wrap; padding:12px 14px 6px; }
.bench-drawer-body { border-top:1px solid var(--bdr); padding:0 4px 4px; overflow-x:auto; }

/* ---- segmented filters inside the drawer (reuse forge-seg look) --------- */
.bench-drawer .hub-jobs-filter { display:inline-flex; gap:2px; background:var(--inp); border:1px solid var(--bdr); border-radius:8px; padding:2px; }
.bench-drawer .hub-jobs-filter button { font:600 11.5px var(--ff-ui); padding:4px 10px; border:none; background:transparent; color:var(--dim); border-radius:6px; cursor:pointer; }
.bench-drawer .hub-jobs-filter button[data-active="true"] { background:var(--pn); color:var(--acc); }

/* light-scope: the reused jobs-table type pills use a theme-stable wood token
   (--acc-cabinet) + amber that fail AA on the white bench panel — darken text. */
#hub-template-body[data-bench="light"] .pill-cabinet { color: color-mix(in srgb, var(--acc-cabinet) 45%, var(--txt)); }
#hub-template-body[data-bench="light"] .pill-qc      { color: color-mix(in srgb, var(--warn) 72%, var(--txt)); }

/* ============================ HEADER: logo + chips ====================== */
.bench-head-id { display:flex; align-items:center; gap:12px; }
.bench-head-text { display:flex; flex-direction:column; gap:3px; min-width:0; }
.bench-logo { flex:0 0 auto; width:36px; height:36px; border-radius:9px; display:inline-flex; align-items:center; justify-content:center; overflow:hidden; background:var(--pn); border:1px solid var(--bdr); }
.bench-logo img { width:100%; height:100%; object-fit:contain; }
.bench-logo.is-monogram { background:var(--acc); color:var(--acc-ink); font:700 17px var(--ff-ui); border-color:var(--acc); }
.bench-actions#bench-head-chips { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.bench-chip-hdr { min-height:30px; padding:0 11px; border-radius:8px; cursor:pointer; font:600 12px var(--ff-mono); font-variant-numeric:tabular-nums; background:var(--pn); border:1px solid var(--bdr); color:var(--dim); transition:border-color .12s ease, background .12s ease; }
.bench-chip-hdr:hover, .bench-chip-hdr:focus-visible { border-color:var(--bdr-h); background:var(--pn-h); outline:none; }
.bench-chip-hdr.is-late { color:var(--no); border-color:color-mix(in srgb, var(--no) 40%, var(--bdr)); }

/* ============================ RECEIVABLES ============================== */
.bench-ar { display:flex; flex-direction:column; gap:10px; }
.bench-ar-clear { font-size:13px; color:var(--ok); }
.bench-ar-big { display:flex; flex-direction:column; gap:2px; }
.bench-ar-amt { font:700 26px var(--ff-mono); font-variant-numeric:tabular-nums; color:var(--white); line-height:1; }
.bench-ar-lbl { font-size:12px; color:var(--dim); }
.bench-ar-row { display:flex; align-items:baseline; justify-content:space-between; gap:10px; padding-top:8px; border-top:1px solid color-mix(in srgb, var(--bdr) 60%, transparent); }
.bench-ar-rk { font-size:12.5px; color:var(--dim); }
.bench-ar-rv { font:600 14px var(--ff-mono); font-variant-numeric:tabular-nums; color:var(--txt); }

/* money "no data" guard (not an alarming red 0%) */
.bench-money-v.is-nodata { color:var(--muted); }
/* shop-health throughput sparkline (real daily finishes) */
.bench-spark { margin-bottom:10px; }
.bench-spark-bars { display:flex; align-items:flex-end; gap:2px; height:24px; }
.bench-spark-bar { flex:1 1 0; min-width:2px; background:var(--acc); border-radius:1px 1px 0 0; opacity:.8; }
.bench-spark-lbl { font:11px var(--ff-mono); color:var(--dim); margin-top:4px; }

/* ============================ WELCOME (fresh shop) ====================== */
.bench-welcome { padding-top:64px; }
.bench-welcome-title { font-size:clamp(28px,3.6vw,44px); font-weight:300; letter-spacing:-0.022em; color:var(--white); margin:0 0 12px; }
.bench-welcome-title span { font-weight:600; color:var(--acc); }
.bench-welcome-sub { font-size:15px; line-height:1.6; color:var(--dim); max-width:60ch; margin:0 0 30px; }
.bench-doors { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; max-width:680px; }
.bench-door { display:flex; gap:15px; align-items:flex-start; text-align:left; padding:20px; background:var(--pn); border:1px solid var(--bdr); border-radius:14px; cursor:pointer; box-shadow:var(--b-shadow); transition:border-color .14s ease, background .14s ease; }
.bench-door:hover, .bench-door:focus-visible { border-color:var(--acc); background:var(--pn-h); outline:none; }
.bench-door-ico { flex:0 0 auto; width:44px; height:44px; display:inline-flex; align-items:center; justify-content:center; border-radius:11px; background:color-mix(in srgb, var(--acc) 14%, transparent); color:var(--acc); }
.bench-door-ico svg { width:24px; height:24px; }
.bench-door-txt { display:flex; flex-direction:column; gap:3px; min-width:0; }
.bench-door-title { font-size:16px; font-weight:600; color:var(--white); }
.bench-door-sub { font-size:12.5px; color:var(--dim); }
.bench-door-cta { font:600 12.5px var(--ff-ui); color:var(--acc); margin-top:6px; }

/* ============================ STATES / MOTION =========================== */
/* PR-HOME-BENCH (review fix): visible keyboard focus rings, distinct from hover.
   Inset (box-shadow / negative offset) where a parent clips (spine, week grid). */
.bench-stage:focus-visible       { outline:none; box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--acc) 65%, transparent); }
.bench-resume-row:focus-visible  { outline:none; box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--acc) 65%, transparent); }
.bench-wk-card:focus-visible     { outline:2px solid var(--acc); outline-offset:-2px; }
.bench-door:focus-visible        { outline:2px solid var(--acc); outline-offset:2px; }
@media (prefers-reduced-motion: reduce) { .bench *, .bench-welcome * { transition:none !important; animation:none !important; } }
@media (hover: none) { .bench-traveler:hover, .bench-wk-card:hover, .bench-resume-row:hover, .bench-stage:hover { background:var(--pn); } }

/* ============================ RESPONSIVE ================================ */
@media (max-width: 1080px) {
  .bench-duo { grid-template-columns:1fr; }
  .bench-week { grid-auto-flow:column; grid-template-columns:none; grid-auto-columns:minmax(150px,1fr); overflow-x:auto; }
}
@media (max-width: 760px) {
  .bench, .bench-welcome { padding:20px 16px 56px; }
  .bench-spine { flex-direction:column; gap:2px; }
  .bench-stage + .bench-stage::before { content:none; }
  .bench-doors { grid-template-columns:1fr; }
}
