/* BA Workstation dark game screen (Ardito skin phase 3c, 29 Oct 2026).
   Eugenio 29 Oct: "there is still the ugly white background and the skin seems like it was not
   really applied". ardito-body.css lights every page as a LIGHT screen over the night arena; on
   ba.af247.app every page is now a DARK screen instead. Scope: body.ba-dk, which base.html sets
   (with data-theme="dark", so every --ard-* token takes its vetted dark value) only when the
   Ardito skin decorated the page and it is not a PULSE page. Without the skin the page renders
   exactly as before: nothing here applies.
   Three layers: (1) the screen and its components, (2) a dark value for every light Tailwind
   colour utility the BA templates use (generated, bottom of the file), (3) motion, in
   ba-motion.css. Contrast: text >= 4.5:1 on its surface (3:1 for large text); fills that carry
   white text keep their light-theme value (white on --ard-accent-hover in dark is 2.4:1).
   Regression: agents/smoke/ba_dark_screen_smoke.py (no light card/panel/table/input/modal,
   no text under 4.5:1, no horizontal scroll, perf budget; 390/820/1180/1440). */

body.ba-dk{color-scheme:dark;color:var(--ard-ink,#f0f2fa)}   /* beats the body's own text-slate-900 */

/* ── the screen: ONE dark glass surface per page (KR: give the page one surface back) ── */
/* opaque (ardito_body_render_smoke: a top-level block that carries text has an opaque background) */
.ba-dk>main{
  background:radial-gradient(120% 60% at 0% 0%,rgba(var(--hr,79,214,255),.07),transparent 60%),
    linear-gradient(180deg,#0e1530 0%,#0a1027 100%);background-color:#0b1229;
  border:1px solid rgba(var(--hr,79,214,255),.20);border-radius:20px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),inset 0 2px 0 rgba(var(--hr,79,214,255),.45),0 40px 90px -50px rgba(0,0,0,.95);
  margin-top:18px;margin-bottom:18px}
@media (max-width:767px){
  .ba-dk>main{border-radius:0;border-left:0;border-right:0;margin-top:0;margin-bottom:0}}
.ba-dk>footer{background-color:#060a1d!important;box-shadow:none!important;border-radius:0!important;color:var(--ard-ink-3)}
.ba-dk>.ba-scroll-progress{border-radius:0;box-shadow:0 0 12px rgba(56,189,248,.6)!important}
.ba-dk h1,.ba-dk h2,.ba-dk h3,.ba-dk h4{color:var(--ard-ink)}
.ba-dk a{text-underline-offset:3px}
.ba-dk hr{border-color:var(--ard-border)}
.ba-dk ::selection{background:rgba(91,141,255,.45);color:#fff}

/* ── cards and panels ── */
.ba-dk .bg-white{background-color:var(--ard-surface)}
.ba-dk main .bg-white,.ba-dk .bg-white.rounded-xl,.ba-dk .bg-white.rounded-lg{
  border-color:var(--ard-border);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 18px 42px -26px rgba(0,0,0,.9),0 8px 22px -18px rgba(0,0,0,.6)}
.ba-dk main .bg-white:hover{border-color:rgba(91,141,255,.45);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 26px 56px -26px rgba(46,107,255,.42),0 10px 26px -18px rgba(0,0,0,.7)}
.ba-dk img.bg-white{background-color:#fff}           /* a club logo keeps its white plate */
.ba-dk .bg-transparent{background-color:transparent}
.ba-dk .shadow,.ba-dk .shadow-sm,.ba-dk .shadow-md,.ba-dk .shadow-lg{--tw-shadow-color:rgba(0,0,0,.6)}
.ba-dk details>summary{color:var(--ard-ink-2)}
.ba-dk details>summary:hover{color:var(--ard-ink)}
.ba-dk code,.ba-dk kbd,.ba-dk pre{background:var(--ard-surface-3);color:#c9d6ff;border-radius:6px}

/* ── fields: inset wells, vetted dark tokens, 16px on phones stays (app.css) ── */
.ba-dk :is(input:not([type=checkbox],[type=radio],[type=range],[type=color],[type=submit],[type=button],[type=image],[type=file],[type=hidden]),select,textarea){
  background-color:#0b1227;color:var(--ard-ink);border-color:var(--ard-border-strong)}
.ba-dk :is(input,select,textarea)::placeholder{color:#8990a8;opacity:1}
.ba-dk :is(input,select,textarea):disabled{opacity:.55;cursor:not-allowed}
.ba-dk :is(input,select,textarea):hover:not(:disabled):not(:focus){border-color:#7d93c9}
.ba-dk :is(input,select,textarea):focus{border-color:#5B8DFF;--tw-ring-color:rgba(91,141,255,.45)}
.ba-dk select option,.ba-dk select optgroup{background:#0f1730;color:var(--ard-ink)}
.ba-dk input:is([type=checkbox],[type=radio]){background-color:#0b1227;border-color:var(--ard-border-strong)}
.ba-dk input:is([type=checkbox],[type=radio]):checked{background-color:#2E6BFF;border-color:#5B8DFF}
.ba-dk input[type=file]{color:var(--ard-ink-2)}
.ba-dk input[type=file]::file-selector-button{background:var(--ard-surface-3);color:var(--ard-ink);border:1px solid var(--ard-border-strong);border-radius:8px;padding:6px 10px;margin-right:10px}
.ba-dk label{color:inherit}

/* ── tables ── */
.ba-dk table{color:var(--ard-ink-2)}
.ba-dk thead th,.ba-dk table th{color:var(--ard-ink-3)}
.ba-dk table td,.ba-dk table th{border-color:var(--ard-hairline)}
.ba-dk main table tbody tr:hover td{background:rgba(91,141,255,.07)}

/* ── app.css components on the dark screen ── */
.ba-dk .ba-section-title{color:var(--ard-ink)}
.ba-dk .ba-kicker{color:#7DA6FF}
.ba-dk .ba-seg-head__hint,.ba-dk .ba-donow__meta,.ba-dk .af-empty__sub{color:var(--ard-ink-3)}
.ba-dk .af-empty__title{color:var(--ard-ink)}
.ba-dk .af-empty__action{color:#7DA6FF}
.ba-dk .af-badge{box-shadow:none}
.ba-dk .af-badge--amber{background:rgba(251,191,36,.14);border-color:rgba(251,191,36,.40);color:#fcd34d}
.ba-dk .af-badge--violet{background:rgba(96,165,250,.14);border-color:rgba(96,165,250,.40);color:#bfdbfe}
.ba-dk .af-badge--slate{background:rgba(148,163,184,.12);border-color:rgba(148,163,184,.32);color:var(--ard-ink-2)}
.ba-dk .ba-pill--hot{background:rgba(248,113,113,.14);color:#fca5a5;border-color:rgba(248,113,113,.42)}
.ba-dk .ba-pill--warm{background:rgba(251,191,36,.13);color:#fcd34d;border-color:rgba(251,191,36,.40)}
.ba-dk .ba-pill--cold{background:rgba(148,163,184,.12);color:#cbd5e1;border-color:rgba(148,163,184,.34)}
.ba-dk .ba-pill--new{background:rgba(96,165,250,.14);color:#bfdbfe;border-color:rgba(96,165,250,.42)}
.ba-dk .ba-pill--ok{background:rgba(52,211,153,.13);color:#6ee7b7;border-color:rgba(52,211,153,.40)}
.ba-dk .ba-pill--overdue{background:#c81e1e;color:#fff;border-color:#f87171;box-shadow:0 0 14px -4px rgba(248,113,113,.8)}
.ba-dk .ba-pill--neutral{background:rgba(255,255,255,.05);color:var(--ard-ink-2);border-color:var(--ard-border)}
.ba-dk a.ba-pill:hover{box-shadow:0 0 0 1px rgba(255,255,255,.12),0 6px 16px -6px rgba(0,0,0,.8)}
.ba-dk .qa-club-pill{background:rgba(255,255,255,.04);border-color:var(--ard-border);color:var(--ard-ink-2)}
.ba-dk .qa-club-pill:hover{background:rgba(91,141,255,.14);border-color:rgba(91,141,255,.5);color:#dbe6ff}
.ba-dk .qa-club-pill.is-active{background:linear-gradient(135deg,#215CE8 0%,#1B52D6 100%);border-color:#5B8DFF;color:#fff}
.ba-dk .qa-club-pill-flag{background:rgba(255,255,255,.10)}
.ba-dk .qa-club-pill-presale{background:rgba(251,191,36,.16);color:#fcd34d}
.ba-dk .source-filter-link{background:rgba(255,255,255,.04);border-color:var(--ard-border);color:var(--ard-ink-2)}
.ba-dk .source-filter-link:hover{background:rgba(91,141,255,.14);border-color:rgba(91,141,255,.5);color:#dbe6ff}
.ba-dk .source-filter-link__count{color:var(--ard-ink-3)}
.ba-dk .source-filter-link__mtd{color:#6ee7b7}
.ba-dk .qa-source-card{background:var(--ard-surface);border-color:var(--ard-border);color:var(--ard-ink)}
.ba-dk .qa-source-card.is-active{border-color:#5B8DFF;box-shadow:0 0 0 1px #5B8DFF,0 10px 30px -14px rgba(46,107,255,.6)}
.ba-dk .ba-donow{background:linear-gradient(135deg,rgba(46,107,255,.16) 0%,rgba(56,189,248,.10) 100%);border-color:rgba(91,141,255,.45);color:#d6e2ff}
.ba-dk .ba-donow .ba-icon-sm{color:#7DA6FF}
@media (max-width:640px){.ba-dk .lead-action-bar-sticky{background:rgba(12,18,40,.96);border-top-color:var(--ard-border);box-shadow:0 -10px 24px -10px rgba(0,0,0,.8)}}
/* fills that carry white text keep a fill white can sit on (the dark tokens are light tints) */
.ba-dk :is(.ba-act--call,.ba-act--primary,.ld-act--call){background:linear-gradient(135deg,#2563eb 0%,#1B52D6 100%);color:#fff}
.ba-dk :is(.ba-act--call,.ba-act--primary,.ld-act--call):hover{filter:brightness(1.12)}
.ba-dk .ba-act--danger{background:#b3261e;color:#fff}
.ba-dk .ba-act--ok{background:#127a43;color:#fff}
.ba-dk .ba-act--warn{background:#8a5300;color:#fff}
.ba-dk .ba-act--ghost,.ba-dk .ld-act--mail{background:rgba(255,255,255,.04);color:var(--ard-ink-2);border-color:var(--ard-border-strong)}
.ba-dk .ba-act--ghost:hover,.ba-dk .ld-act--mail:hover{background:rgba(91,141,255,.14);border-color:#5B8DFF;color:var(--ard-ink)}
.ba-dk .ba-act--quiet-danger{background:rgba(255,107,107,.06)}
/* an icon keeps its size when the label beside it is long (the Email button's envelope was drawn at 5 px on phones);
   the label truncates instead. Regression: ba_dark_screen_smoke "squeezed" */
.ba-dk :is(a,button,label,summary)>svg{flex-shrink:0}
.ba-dk .ba-act--quiet-warn{background:rgba(255,182,72,.06)}
.ba-dk .ba-choice{background:rgba(255,255,255,.04);color:var(--ard-ink-2);border-color:var(--ard-border-strong)}
.ba-dk .ba-choice:hover{background:rgba(91,141,255,.14);border-color:#5B8DFF;color:var(--ard-ink)}
.ba-dk .ba-choice.is-selected{background:#215CE8;border-color:#7DA6FF;color:#fff;box-shadow:0 0 0 1px rgba(125,166,255,.5),0 8px 20px -10px rgba(46,107,255,.8)}
.ba-dk .ba-choice.is-selected:hover{background:#1B52D6}
/* solid fills keep a fill their own text can sit on (several failed AA in the light theme too) */
.ba-dk .bg-blue-500.text-white,.ba-dk .bg-violet-600.text-white{background-color:#2563eb}
.ba-dk .bg-orange-500.text-white{background-color:#c2410c}
.ba-dk .bg-green-600.text-white{background-color:#15803d}
.ba-dk .bg-emerald-600.text-white{background-color:#047857}
.ba-dk .bg-sky-600.text-white{background-color:#0369a1}
.ba-dk .bg-amber-500.text-white{background-color:#b45309}
.ba-dk .bg-amber-500.text-white:hover{background-color:#92400e}
.ba-dk :is(.bg-yellow-400.text-yellow-900,.bg-lime-400.text-lime-900){color:#1a1400}
.ba-dk .qa-primary-btn{background:linear-gradient(135deg,#2563eb 0%,#1B52D6 100%);color:#fff}
/* the header's allocation badge: amber fill keeps its dark ink */
.ba-dk .bg-amber-400.text-amber-900{color:#451a03}

/* ── Ask Ardito panel ── */
.ba-dk #askPanel{background:#0c1328;color:var(--ard-ink);border-color:rgba(91,141,255,.30);box-shadow:0 30px 80px -20px rgba(0,0,0,.95),0 0 0 1px rgba(56,189,248,.10)}
.ba-dk #askBody{background:#0a1022}
.ba-dk .ask-q{color:#bcd0ff}
.ba-dk .ask-a{background:var(--ard-surface);border-color:var(--ard-border);box-shadow:none}
.ba-dk .ask-table th{color:var(--ard-ink-3)}
.ba-dk .ask-table th,.ba-dk .ask-table td{border-bottom-color:var(--ard-hairline)}
.ba-dk .ask-scope,.ba-dk .ask-loading{color:var(--ard-ink-3)}
.ba-dk .ask-chip{background:rgba(91,141,255,.14);color:#bcd0ff;border-color:rgba(91,141,255,.35)}
.ba-dk #askFoot{background:#0c1328;border-top-color:var(--ard-hairline)}
.ba-dk #askInput{background:#0b1227;color:var(--ard-ink);border-color:var(--ard-border-strong)}

/* ── per page: what the generic layers cannot know ── */
.ba-dk{--dk-btn:#2563eb}                                      /* a primary fill white text sits on */
.ba-dk>footer .opacity-75{opacity:1}
/* supervisor: --sv-violet-600 (#2E6BFF) is a text colour there, 3.9:1 on the dark card */
.ba-dk :is(.sv-row-link,.sv-cell-violet,.sv-kpi-num--violet){color:#7DA6FF}
.ba-dk .sv-row-link:hover{color:#bcd0ff}
/* calendar: past days were dimmed with opacity, which takes text under 4.5:1 on dark */
.ba-dk .cal-day{background:var(--ard-surface)}
.ba-dk .cal-day--past{opacity:1;background:#0c1226;border-color:var(--ard-hairline)}
.ba-dk .cal-day--past :is(.cal-day-num,.cal-day-dow,.cal-day-month){color:#9aa1b8}
.ba-dk .cal-day:hover{border-color:rgba(91,141,255,.45);box-shadow:0 10px 26px -14px rgba(0,0,0,.8)}
.ba-dk .cal-day--today{background:linear-gradient(180deg,rgba(46,107,255,.16),rgba(46,107,255,.04)),var(--ard-surface);border-color:rgba(91,141,255,.6)}
.ba-dk .cal-today-tag{background:rgba(91,141,255,.2)}
.ba-dk .cal-chip-stage{opacity:.92}
.ba-dk .cal-chip:hover{box-shadow:0 6px 16px -8px rgba(0,0,0,.8)}

/* ── scrollbars on the dark screen ── */
.ba-dk *{scrollbar-color:#33446e transparent}
.ba-dk ::-webkit-scrollbar{width:10px;height:10px}
.ba-dk ::-webkit-scrollbar-thumb{background:#2a3a64;border-radius:999px;border:2px solid transparent;background-clip:padding-box}
.ba-dk ::-webkit-scrollbar-thumb:hover{background:#3b5089;background-clip:padding-box}
.ba-dk ::-webkit-scrollbar-track{background:transparent}


/* performance drill-down: the count chip on the active (blue) metric tab was white on white/20 over #2563eb,
   3.6:1 in both themes; a dark tint keeps the chip visible and the number at 5:1+ */
.ba-dk .bg-violet-600 .bg-white\/20,.ba-dk .bg-blue-600 .bg-white\/20{background-color:rgba(6,10,29,.30)}

/* ── header on phones (29 Oct): three short rows that scroll away with the page. Sticky, it wrapped to four
   rows and held ~290 of an 844 px screen. Tap targets stay 44 px (app.css coarse-pointer rule). ── */
@media (max-width:639px){
  .ba-dk .af-ba-header{position:relative;top:auto}
  .ba-dk .af-ba-header>div{gap:4px 6px;padding:8px 12px 6px}
  .ba-dk .af-ba-header>div>a:first-child{gap:10px;flex:1 1 auto}
  .ba-dk .af-ba-header>div>a:first-child>img:first-child{height:32px}
  .ba-dk .af-ba-header>div>a:first-child>span:first-of-type>span+span{display:none}          /* the "Lead workstation" kicker */
  .ba-dk .af-ba-header>div>a:first-child>span+span{margin-left:4px;padding-left:10px}
  .ba-dk .af-ba-header>div>a:first-child>span+span img{height:30px}
  .ba-dk .af-ba-header>div>.ml-auto{order:2;gap:4px;flex-wrap:nowrap;margin-left:auto}
  .ba-dk .af-ba-header nav{order:3;flex:1 0 100%;margin-left:0;
    -webkit-mask-image:linear-gradient(90deg,#000 86%,transparent);mask-image:linear-gradient(90deg,#000 86%,transparent)}
  .ba-dk .af-ba-header form[action="/desk"]>span{display:none}                                  /* "Desk": the select says it */
  /* push.js rewrites the button's text ("🔔 Push on"); on a phone only the bell shows (screen readers still read
     the whole text) and a green dot marks "on" */
  .ba-dk #push-toggle{width:44px;min-width:44px;font-size:0;justify-content:center;align-items:center;
    padding-left:0!important;padding-right:0!important}
  .ba-dk #push-toggle::before{content:"\1F514";font-size:16px;line-height:1}
  .ba-dk .af-ba-header>div>a:first-child>span[class~="text-white/75"]{display:none}           /* "PH operations — all desks" */
  .ba-dk .ba-user-chip{padding:4px}
}
@media (max-width:639px){
  .ba-dk #push-toggle{position:relative}
  .ba-dk #push-toggle[data-state="on"]::after{content:"";position:absolute;top:9px;right:8px;width:7px;height:7px;border-radius:50%;
    background:#34d399;box-shadow:0 0 0 2px #0b1229}
}

/* ── lead detail on phones: Call (the primary, with the number) full width, WhatsApp + Email side by side ── */
@media (max-width:639px){
  .ba-dk .lead-action-bar-sticky{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .ba-dk .lead-action-bar-sticky>.ld-act{justify-content:center;min-width:0;min-height:44px}
  .ba-dk .lead-action-bar-sticky>.ld-act--call{grid-column:1/-1}
  .ba-dk .lead-action-bar-sticky>.ld-act>.truncate{min-width:0}
}
/* ── lead-source / platform cards on phones: two up instead of one tall card per row ── */
@media (max-width:639px){
  .ba-dk .v2-platform-grid{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:20px}
  .ba-dk .v2-platform-grid>.v2-platform-card{padding:10px;gap:9px;min-width:0;min-height:56px}
  .ba-dk .v2-platform-grid .v2-platform-card__icon{width:32px;height:32px;border-radius:9px}
  .ba-dk .v2-platform-grid .v2-platform-card__meta{min-width:0}
  .ba-dk .v2-platform-grid .v2-platform-card__name{font-size:12.5px;line-height:1.2}
  .ba-dk .v2-platform-grid .v2-platform-card__sub{font-size:9px;letter-spacing:.08em;line-height:1.3}
}
/* the Ask button and the PULSE orb float over the bottom corners: on phones the page ends above them */
@media (max-width:639px){ .ba-dk>main{padding-bottom:88px} }

/* ── calendar on phones: a free day is one slim row (date left, "free" right) instead of a 150 px card,
   so the booked days are what the thumb scrolls to; a day with bookings keeps its card ── */
@media (max-width:639px){
  .ba-dk .cal-day{min-height:0}
  .ba-dk .cal-day:has(>.cal-day-empty){flex-direction:row;align-items:center;justify-content:space-between;
    gap:10px;padding:9px 12px;min-height:44px}
  .ba-dk .cal-day:has(>.cal-day-empty) .cal-day-head{margin:0;gap:10px;justify-content:flex-start;align-items:baseline}
  .ba-dk .cal-day:has(>.cal-day-empty) .cal-day-empty{margin:0 0 0 auto;text-align:right}
  .ba-dk .cal-day:not(:has(>.cal-day-empty)){min-height:96px}
}

/* ── white text on accent fills (29 Oct, found by the pixel check): the dark theme's --ard-accent* tokens are
   light blues meant for TEXT; a fill that carries white text keeps the light theme's deep blues ── */
.ba-dk :is(.ld-submit,.cal-nav-btn--today,.qa-btn--primary,.sv-avatar){background:linear-gradient(135deg,#215CE8 0%,#1B52D6 100%)}
.ba-dk .cal-nav-btn--today:hover{background:linear-gradient(135deg,#1B52D6 0%,#1d4ed8 100%)}
.ba-dk #askFab{background:linear-gradient(135deg,#215CE8 0%,#0369a1 100%)}
.ba-dk .total-sales-card{background:linear-gradient(135deg,#0a0e1c 0%,#1d4ed8 60%,#0369a1 100%)}
.ba-dk .ld-act--call .opacity-75{opacity:.92}
/* scoreboard: the glass "top performer" card sat over the hero's cyan end; a darker glass keeps it readable */
.ba-dk .bg-\[rgba\(255\,255\,255\,0\.12\)\]{background-color:rgba(6,10,29,.45);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
/* medal badges keep dark numerals on their metal (the utility layer had turned them light) */
.ba-dk .from-yellow-300.text-yellow-900{color:#422006}
.ba-dk .from-slate-200.text-slate-700{color:#1e293b}
.ba-dk .from-amber-400.text-amber-50{color:#451a03}
/* source-card names: the lavender ink sat at 4.48:1 on the Meta card's tint */
.ba-dk .v2-platform-card__name{--dk-fg-1a1037:#d4cbf2}
/* supervisor Total Sales card: muted white at 0.70 fell under 4.5:1 on the blue end of the gradient */
.ba-dk .total-sales-card__sub,.ba-dk .total-sales-card__table thead th,.ba-dk .total-sales-card__eyebrow{color:rgba(255,255,255,.9)}
.ba-dk .total-sales-card .qa-club-pill-flag{background:rgba(6,10,29,.34)!important}
/* lead page source chip carries white text; the brand gradients' light ends (#1877F2 4.2:1, #25D366 2:1,
   #4285F4 3.6:1) are kept for icon tiles but deepened where the chip holds words */
.ba-dk .ld-source-chip.v2-logo-bg--meta{background:linear-gradient(135deg,#4267B2 0%,#1565d8 100%)}
.ba-dk .ld-source-chip.v2-logo-bg--whatsapp{background:linear-gradient(135deg,#0f7a6e 0%,#075E54 100%)}
.ba-dk .ld-source-chip.v2-logo-bg--instagram{background:linear-gradient(135deg,#b02a6f 0%,#833AB4 55%,#515BD4 100%)}
.ba-dk .ld-source-chip.v2-logo-bg--google{background:linear-gradient(135deg,#1967d2 0%,#0b57d0 100%)}
/* login: the hero's bright blue corner and the button's sky-blue end left the wordmark, kicker and
   "Sign in" under 4.5:1 */
.ba-dk .lo-hero{background:radial-gradient(circle at 82% 8%,rgba(56,189,248,.18),transparent 55%),linear-gradient(135deg,#0A1633 0%,#12275a 55%,#1a3f9e 100%)}
.ba-dk .lo-hero-title{color:#cfe6ff}
.ba-dk .lo-hero-sub{color:rgba(224,236,255,.9)}
.ba-dk .lo-submit{background:linear-gradient(135deg,#1e4fd0 0%,#215CE8 50%,#0369a1 100%)}
/* "Do now" strip: its blue wash lifts the ground, so the muted time meta reads one step stronger */
.ba-dk .ba-donow .ba-donow__meta{color:#c3cee8}

/* ── touch targets (29 Oct): on a touch screen (pointer:coarse = phones and iPads; a mouse keeps the compact
   sizes) a finger landing anywhere in a 44 px square on a control reaches it. Fields, buttons, chips, labels,
   header controls and table rows that hold a control grow to 44 px; a link alone in a table cell takes the
   whole cell; other text links keep their look and get an invisible 44 px hit area (::after, or padding where
   the link clips its own overflow). app.css already lifts plain buttons; this adds what it misses. Display and
   position changes sit in :where() so a page's own display:none / sticky / absolute still wins.
   Checked by tapping: ba_dark_screen_smoke.py, touch targets. ── */
@media (pointer:coarse){
  .ba-dk :is(.af-ba-header,main,#askPanel) :is(input:not([type=checkbox],[type=radio],[type=range],[type=color],[type=submit],[type=button],[type=image],[type=file],[type=hidden],[type=reset]),select,textarea){min-height:44px}
  .ba-dk :is(.af-ba-header,main,#askPanel) :is(button,[role=button],input:is([type=submit],[type=button],[type=reset])){min-height:44px;min-width:44px}
  .ba-dk form.ard-lang button{min-height:44px}
  .ba-dk #askPanel .ask-chip{min-height:44px;display:inline-flex;align-items:center}
  .ba-dk :is(.af-ba-header,main) summary{min-height:44px;align-content:center}
  .ba-dk .af-ba-header a[href="/"]:not(.ba-nav-link){min-height:44px}
  .ba-dk main :is(td,th):has(a[href],button,select,input:not([type=hidden])){height:44px}
  /* chips, pills and button-like links: real 44 px */
  .ba-dk :is(.af-ba-header,main) a:is([class*="rounded"],[class*="bg-"],[class*="chip"],[class*="pill"],[class*="btn"],.source-filter-link,[style*="border"],[style*="background"],.ba-head-link){min-height:44px;min-width:44px}
  :where(.ba-dk) :where(.af-ba-header,main) a:where([class*="rounded"],[class*="bg-"],[class*="chip"],[class*="pill"],[class*="btn"],.source-filter-link,[style*="border"],[style*="background"]):where(:not([class*="flex"],[class*="block"],[class*="grid"],[class*="hidden"],[class*="inline"],[class*="table"],[class*="contents"],[style*="display"])){display:inline-flex;align-items:center;justify-content:center}
  /* a label that holds a checkbox or radio is the target */
  .ba-dk main label:has(> input:is([type=checkbox],[type=radio])){min-height:44px}
  :where(.ba-dk main) label:has(> input:is([type=checkbox],[type=radio])):where(:not([class*="flex"],[class*="block"],[class*="grid"],[class*="hidden"],[class*="inline"],[class*="table"])){display:inline-flex;align-items:center;column-gap:.4em}
  /* a checkbox with no label: a 44 px box whose 14 px transparent border is the extra hit area; the 16 px
     square inside looks as before */
  .ba-dk main input:is([type=checkbox],[type=radio]):not(label input){width:44px;height:44px;margin:-14px;border:14px solid transparent;background-clip:padding-box;background-origin:padding-box;box-shadow:inset 0 0 0 1px var(--ard-border-strong)}
  :where(.ba-dk main input:is([type=checkbox],[type=radio]):not(label input)){position:relative}
  /* in a table cell that border must not reach past a scrolling table's clipped edge */
  .ba-dk main :is(td,th):has(> input:is([type=checkbox],[type=radio])){padding-inline:16px}
  .ba-dk main input:is([type=checkbox],[type=radio]):not(label input):checked{border-color:transparent;box-shadow:none}
  .ba-dk main input:is([type=checkbox],[type=radio]):not(label input):focus{box-shadow:inset 0 0 0 2px #5B8DFF}
  /* a link alone in a table cell: the cell is the target */
  :where(.ba-dk main :is(td,th):has(> a:only-child)){position:relative}
  .ba-dk main :is(td,th) > a:only-child::after{content:"";position:absolute;inset:0}
  /* supervisor Total Sales: the club link shares its cell with flag tags (not links), so the cell is its target */
  :where(.ba-dk main td:has(> a.sv-dash-link)){position:relative}
  .ba-dk main td > a.sv-dash-link{position:static}
  .ba-dk main td > a.sv-dash-link.sv-dash-link::after{inset:0;width:auto;height:auto;transform:none}
  /* any other text link: its look stays, its hit area becomes at least 44 x 44 */
  :where(.ba-dk) :where(.af-ba-header,main) a:where(:not([class*="rounded"],[class*="bg-"],[class*="chip"],[class*="pill"],[class*="btn"],.source-filter-link,[style*="border"],[style*="background"],.ba-head-link,[class*="ba-act"],[class*="ld-act"],.qa-primary-btn,.bk-spot,.bk-skel,.absolute,.fixed,.sticky,.relative)):where(:not(:is(td,th) > a:only-child,p a:not(:only-child))){position:relative}
  .ba-dk :is(.af-ba-header,main) a:not([class*="rounded"],[class*="bg-"],[class*="chip"],[class*="pill"],[class*="btn"],.source-filter-link,[style*="border"],[style*="background"],.ba-head-link,[class*="ba-act"],[class*="ld-act"],.qa-primary-btn,.bk-spot,.bk-skel,:is(td,th) > a:only-child,p a:not(:only-child))::after{content:"";position:absolute;left:50%;top:50%;width:max(100%,44px);height:max(100%,44px);transform:translate(-50%,-50%)}
  /* a link that clips its own overflow (truncate) would clip that ::after: it takes padding instead, cancelled
     by an equal negative margin so nothing moves; upward, because a truncated name heads its card and the
     card's own controls sit below it */
  .ba-dk :is(.af-ba-header,main) a[class*="truncate"]:not([class*="rounded"],[class*="bg-"],[class*="chip"],[class*="pill"],[class*="btn"],.source-filter-link,[style*="border"],[style*="background"]){padding-top:24px;margin-top:-24px;min-width:44px}
}
/* ── generated: Tailwind colour utilities used by the BA templates (scratch gen_dark.py) ── */
.ba-dk .ring-amber-200,.ba-dk .ring-amber-300{--tw-ring-color:rgba(251,191,36,.55)}
.ba-dk .focus\:ring-violet-300:focus,.ba-dk .focus\:ring-violet-500:focus,.ba-dk .ring-blue-300,.ba-dk .ring-violet-100,.ba-dk .ring-violet-200,.ba-dk .ring-violet-200\/40,.ba-dk .ring-violet-300,.ba-dk .ring-violet-400{--tw-ring-color:rgba(96,165,250,.55)}
.ba-dk .ring-emerald-300{--tw-ring-color:rgba(52,211,153,.55)}
.ba-dk .ring-green-300{--tw-ring-color:rgba(74,222,128,.55)}
.ba-dk .ring-red-300{--tw-ring-color:rgba(248,113,113,.55)}
.ba-dk .ring-sky-300{--tw-ring-color:rgba(56,189,248,.55)}
.ba-dk .ring-slate-200{--tw-ring-color:rgba(150,170,220,.30)}
.ba-dk .ring-slate-300{--tw-ring-color:rgba(150,170,220,.40)}
.ba-dk .bg-amber-100{background-color:rgba(251,191,36,.16)}
.ba-dk .bg-amber-100\/70{background-color:rgba(251,191,36,0.13)}
.ba-dk .bg-amber-50,.ba-dk .hover\:bg-amber-50:hover{background-color:rgba(251,191,36,.10)}
.ba-dk .bg-amber-50\/40{background-color:rgba(251,191,36,0.06)}
.ba-dk .bg-amber-50\/50{background-color:rgba(251,191,36,0.07)}
.ba-dk .bg-amber-50\/80{background-color:rgba(251,191,36,0.10)}
.ba-dk .bg-blue-100,.ba-dk .bg-violet-100{background-color:rgba(96,165,250,.16)}
.ba-dk .bg-blue-50,.ba-dk .bg-violet-50,.ba-dk .hover\:bg-violet-50:hover{background-color:rgba(96,165,250,.10)}
.ba-dk .bg-blue-50\/60{background-color:rgba(96,165,250,0.08)}
.ba-dk .bg-emerald-50{background-color:rgba(52,211,153,.10)}
.ba-dk .bg-green-100{background-color:rgba(74,222,128,.16)}
.ba-dk .bg-green-50,.ba-dk .hover\:bg-green-50:hover{background-color:rgba(74,222,128,.10)}
.ba-dk .bg-green-50\/70{background-color:rgba(74,222,128,0.09)}
.ba-dk .bg-lime-100{background-color:rgba(163,230,53,.16)}
.ba-dk .bg-lime-50{background-color:rgba(163,230,53,.10)}
.ba-dk .bg-lime-50\/70{background-color:rgba(163,230,53,0.09)}
.ba-dk .bg-orange-100{background-color:rgba(251,146,60,.16)}
.ba-dk .bg-orange-50{background-color:rgba(251,146,60,.10)}
.ba-dk .bg-orange-50\/70{background-color:rgba(251,146,60,0.09)}
.ba-dk .bg-purple-100{background-color:rgba(192,132,252,.16)}
.ba-dk .bg-purple-50{background-color:rgba(192,132,252,.10)}
.ba-dk .bg-purple-50\/70{background-color:rgba(192,132,252,0.09)}
.ba-dk .bg-red-50,.ba-dk .hover\:bg-red-50:hover{background-color:rgba(248,113,113,.10)}
.ba-dk .bg-red-50\/40{background-color:rgba(248,113,113,0.06)}
.ba-dk .bg-red-50\/60{background-color:rgba(248,113,113,0.08)}
.ba-dk .bg-red-50\/70{background-color:rgba(248,113,113,0.09)}
.ba-dk .bg-rose-100{background-color:rgba(251,113,133,.16)}
.ba-dk .bg-rose-50{background-color:rgba(251,113,133,.10)}
.ba-dk .bg-sky-50,.ba-dk .hover\:bg-sky-50:hover{background-color:rgba(56,189,248,.10)}
.ba-dk .bg-slate-100,.ba-dk .hover\:bg-slate-100:hover{background-color:var(--ard-surface-3)}
.ba-dk .bg-slate-200,.ba-dk .bg-slate-600,.ba-dk .group:hover .group-hover\:bg-slate-200{background-color:#2a3a64}
.ba-dk .bg-slate-300,.ba-dk .hover\:bg-slate-700:hover,.ba-dk .hover\:bg-slate-800:hover{background-color:#33446e}
.ba-dk .bg-slate-400{background-color:#4a5a86}
.ba-dk .bg-slate-50,.ba-dk .bg-slate-50\/50,.ba-dk .bg-slate-50\/60{background-color:var(--ard-surface-2)}
.ba-dk .bg-slate-500{background-color:#5c6a92}
.ba-dk .bg-slate-700{background-color:#22325a}
.ba-dk .bg-slate-800{background-color:#1c2a4e}
.ba-dk .bg-slate-900{background-color:#26365f}
.ba-dk .bg-violet-200{background-color:rgba(96,165,250,.26)}
.ba-dk .bg-violet-50\/40{background-color:rgba(96,165,250,0.06)}
.ba-dk .bg-yellow-50{background-color:rgba(250,204,21,.10)}
.ba-dk .bg-yellow-50\/70{background-color:rgba(250,204,21,0.09)}
.ba-dk .hover\:bg-slate-50:hover,.ba-dk .hover\:bg-slate-50\/50:hover,.ba-dk .hover\:bg-slate-50\/60:hover{background-color:var(--ard-surface-hover)}
.ba-dk .border-amber-100{border-color:rgba(251,191,36,.24)}
.ba-dk .border-amber-200{border-color:rgba(251,191,36,.34)}
.ba-dk .border-amber-300{border-color:rgba(251,191,36,.50)}
.ba-dk .border-amber-500{border-color:#fbbf24}
.ba-dk .border-blue-200,.ba-dk .border-violet-200{border-color:rgba(96,165,250,.34)}
.ba-dk .border-blue-300,.ba-dk .border-violet-300,.ba-dk .hover\:border-violet-300:hover{border-color:rgba(96,165,250,.50)}
.ba-dk .border-blue-500,.ba-dk .border-violet-500,.ba-dk .border-violet-600,.ba-dk .border-violet-700,.ba-dk .focus\:border-violet-500:focus,.ba-dk .hover\:border-violet-400:hover{border-color:#60a5fa}
.ba-dk .border-emerald-100{border-color:rgba(52,211,153,.24)}
.ba-dk .border-emerald-200{border-color:rgba(52,211,153,.34)}
.ba-dk .border-emerald-300{border-color:rgba(52,211,153,.50)}
.ba-dk .border-green-200{border-color:rgba(74,222,128,.34)}
.ba-dk .border-green-300{border-color:rgba(74,222,128,.50)}
.ba-dk .border-green-400,.ba-dk .border-green-500{border-color:#4ade80}
.ba-dk .border-lime-200{border-color:rgba(163,230,53,.34)}
.ba-dk .border-lime-300{border-color:rgba(163,230,53,.50)}
.ba-dk .border-orange-200{border-color:rgba(251,146,60,.34)}
.ba-dk .border-orange-300{border-color:rgba(251,146,60,.50)}
.ba-dk .border-orange-500{border-color:#fb923c}
.ba-dk .border-purple-200{border-color:rgba(192,132,252,.34)}
.ba-dk .border-purple-300{border-color:rgba(192,132,252,.50)}
.ba-dk .border-purple-400{border-color:#c084fc}
.ba-dk .border-red-200{border-color:rgba(248,113,113,.34)}
.ba-dk .border-red-300{border-color:rgba(248,113,113,.50)}
.ba-dk .border-red-400,.ba-dk .border-red-500,.ba-dk .border-red-600,.ba-dk .hover\:border-red-400:hover{border-color:#f87171}
.ba-dk .border-rose-100{border-color:rgba(251,113,133,.24)}
.ba-dk .border-rose-200{border-color:rgba(251,113,133,.34)}
.ba-dk .border-sky-200{border-color:rgba(56,189,248,.34)}
.ba-dk .border-sky-300{border-color:rgba(56,189,248,.50)}
.ba-dk .border-sky-400{border-color:#38bdf8}
.ba-dk .border-slate-100,.ba-dk .border-slate-50,.ba-dk .divide-slate-100>:not([hidden])~:not([hidden]),.ba-dk .divide-slate-50>:not([hidden])~:not([hidden]){border-color:var(--ard-hairline)}
.ba-dk .border-slate-200{border-color:var(--ard-border)}
.ba-dk .border-slate-300{border-color:#3a4b75}
.ba-dk .border-slate-700,.ba-dk .border-slate-800,.ba-dk .border-slate-900{border-color:#4a5a86}
.ba-dk .border-yellow-300{border-color:rgba(250,204,21,.50)}
.ba-dk .border-yellow-500{border-color:#facc15}
.ba-dk .divide-violet-100>:not([hidden])~:not([hidden]){border-color:rgba(96,165,250,.24)}
.ba-dk .hover\:border-slate-400:hover{border-color:var(--ard-border-strong)}
.ba-dk .text-amber-600,.ba-dk .text-amber-700{color:#fcd34d}
.ba-dk .hover\:text-amber-800:hover,.ba-dk .hover\:text-amber-900:hover,.ba-dk .text-amber-800,.ba-dk .text-amber-900{color:#fde68a}
.ba-dk .group:hover .group-hover\:text-violet-600,.ba-dk .hover\:text-blue-700:hover,.ba-dk .hover\:text-violet-700:hover,.ba-dk .text-blue-600,.ba-dk .text-blue-700,.ba-dk .text-violet-600,.ba-dk .text-violet-700{color:#93c5fd}
.ba-dk .hover\:text-violet-900:hover,.ba-dk .text-blue-800,.ba-dk .text-blue-900,.ba-dk .text-violet-800,.ba-dk .text-violet-900{color:#bfdbfe}
.ba-dk .text-emerald-700{color:#6ee7b7}
.ba-dk .text-emerald-800,.ba-dk .text-emerald-900,.ba-dk .text-emerald-900\/70{color:#a7f3d0}
.ba-dk .text-emerald-950{color:#d1fae5}
.ba-dk .text-green-600,.ba-dk .text-green-700{color:#86efac}
.ba-dk .text-green-800,.ba-dk .text-green-900{color:#bbf7d0}
.ba-dk .text-lime-700{color:#bef264}
.ba-dk .text-lime-800,.ba-dk .text-lime-900{color:#d9f99d}
.ba-dk .text-orange-700{color:#fdba74}
.ba-dk .text-orange-800,.ba-dk .text-orange-900{color:#fed7aa}
.ba-dk .text-purple-700{color:#d8b4fe}
.ba-dk .text-purple-800{color:#e9d5ff}
.ba-dk .text-red-600,.ba-dk .text-red-700{color:#fca5a5}
.ba-dk .text-red-800,.ba-dk .text-red-900{color:#fecaca}
.ba-dk .text-rose-600,.ba-dk .text-rose-700{color:#fda4af}
.ba-dk .text-rose-800,.ba-dk .text-rose-900{color:#fecdd3}
.ba-dk .text-sky-600,.ba-dk .text-sky-700{color:#7dd3fc}
.ba-dk .text-sky-800{color:#bae6fd}
.ba-dk .text-slate-300,.ba-dk .text-slate-400,.ba-dk .text-slate-500{color:var(--ard-ink-3)}
.ba-dk .hover\:text-slate-700:hover,.ba-dk .text-slate-600,.ba-dk .text-slate-700,.ba-dk .text-slate-700\/70{color:var(--ard-ink-2)}
.ba-dk .hover\:text-slate-900:hover,.ba-dk .text-slate-800,.ba-dk .text-slate-900{color:var(--ard-ink)}
.ba-dk .text-yellow-900{color:#fef08a}
/* ── generated: dark values for the --dk-* literals in the BA templates (scripts/dk_tokens.py defs) ── */
.ba-dk{
  --dk-bd-bfdbfe:rgba(48,130,232,.45);
  --dk-bd-cddcf7:rgba(57,117,223,.45);
  --dk-bd-dbe6fb:rgba(48,112,232,.45);
  --dk-bd-ddd6fe:rgba(81,48,232,.45);
  --dk-bd-e2e8f0:rgba(104,135,177,.45);
  --dk-bd-e6edfa:rgba(64,117,217,.45);
  --dk-bd-ede9f5:#2a3a5c;
  --dk-bd-eef2fb:#2a3a5c;
  --dk-bd-f1f5f9:#2a3a5c;
  --dk-bd-fecaca:rgba(232,48,48,.45);
  --dk-bd-fff:#2a3a5c;
  --dk-bd-ffffffa70:#2a3a5c;
  --dk-bg-ecfdf5:#123524;
  --dk-bg-eff6ff:#122134;
  --dk-bg-f1f5f9:#182342;
  --dk-bg-f4f4f4:#182342;
  --dk-bg-f4f7fd:#182342;
  --dk-bg-f5f0ff:#1d1234;
  --dk-bg-f5f3ff:#182342;
  --dk-bg-f5f5f7:#182342;
  --dk-bg-f8fafc:#182342;
  --dk-bg-fafafa:#182342;
  --dk-bg-fbfafd:#101830;
  --dk-bg-fcfcfd:#101830;
  --dk-bg-fef2f2:#182342;
  --dk-bg-fff:#101830;
  --dk-bg-fff7ed:#352512;
  --dk-bg-fffbeb:#352e12;
  --dk-bg-ffffff:#101830;
  --dk-bg-ffffffa65:rgba(16,24,48,0.80);
  --dk-fg-047857:#9efae0;
  --dk-fg-065f46:#9ff9e0;
  --dk-fg-0f172a:#b4c2e4;
  --dk-fg-16181d:#f0f2fa;
  --dk-fg-166534:#abedc4;
  --dk-fg-1a1037:#beb0e8;
  --dk-fg-1d4ed8:#a5b9f3;
  --dk-fg-1e293b:#bbc8dd;
  --dk-fg-1e3a8a:#abbced;
  --dk-fg-1e40af:#a8b9f0;
  --dk-fg-215ce8:#a3bbf5;
  --dk-fg-2563eb:#a2bcf6;
  --dk-fg-2e6bff:#9eb9fa;
  --dk-fg-334155:#bfcad9;
  --dk-fg-475569:#c2cad6;
  --dk-fg-4c1d95:#c5aaee;
  --dk-fg-64748b:#c4cbd4;
  --dk-fg-6b7280:#a3a9bf;
  --dk-fg-6b81a8:#bfc8d9;
  --dk-fg-78350f:#f4c1a4;
  --dk-fg-7f1d1d:#ecacac;
  --dk-fg-92400e:#f6c2a2;
  --dk-fg-991b1b:#f0a8a8;
  --dk-fg-b45309:#fac69e;
  --dk-fg-b91c1c:#f2a6a6;
  --dk-fg-c2410c:#f9b99f;
  --dk-fg-dc2626:#f1a7a7;
}
