/* PIR-001 — Product Identity Recovery chrome rules
   Today Reality Law: .today-fixtures-board / UFC cards must stay visible.
   Do NOT hide .tic-all-fixtures — that class is on Today's fixtures board. */
body.pir-strict-today .fixtures-expert-wrap,
body.pir-strict-today .dashboard-runtime-banner,
body.pir-strict-today .tic-doctor-strip,
body.pir-strict-today .tic-status-grid,
body.pir-strict-today .sports-broadcast-panel,
body.pir-strict-today .fixture-toolbar-row,
body.pir-strict-today .fixture-day-extra,
body.pir-strict-today .header .stats {
  display: none !important;
}

body.pir-strict-today .today-command-centre .tic-global-header {
  border-bottom: none;
  padding-bottom: 0;
}

body.pir-strict-today .pir-sports-cta {
  margin: 12px 0 0;
}

body.pir-identity-recovery #data-platform-mount.pir-hidden {
  display: none !important;
}

.bdna-personality-section,
.bdna-appearance-section {
  margin-bottom: 12px;
}

.pir-today-packages .tier-punt-block,
.pir-today-packages .tier-acca-block {
  margin-bottom: 16px;
}

.pir-today-packages h3 {
  margin: 8px 0;
  font-size: 0.95rem;
}

/* Phase A — Home landing */
body.pir-calm-home #global-status-bar,
body.pir-calm-home .pex-journey-host,
body.pir-calm-home .pex-page-health-host {
  display: none !important;
}
body[data-pir-view="home"] #sport-tabs,
body[data-pir-view="home"] #tier-tabs {
  display: none !important;
}

body[data-pir-view="dashboard"] .stats,
body[data-pir-view="dashboard"] #sport-tabs,
body[data-pir-view="dashboard"] #tier-tabs {
  display: none !important;
}

.home-shell { display: flex; flex-direction: column; gap: 16px; max-width: 960px; margin: 0 auto; }
.ipe-greeting { text-align: left; border-left: 3px solid var(--accent, #60a5fa); }
.ipe-greeting-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; }
.ipe-greeting-kicker { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.04em; opacity: 0.7; }
.ipe-greeting-line { font-size: 1.02rem; line-height: 1.55; margin: 0; }
.ipe-greeting-truth { margin-top: 8px; font-size: 0.72rem; opacity: 0.65; }
.ipe-mood-badge { font-size: 0.72rem; padding: 3px 8px; border-radius: 999px; background: var(--surface-2, rgba(255,255,255,0.06)); }
.ipe-mood-confident, .ipe-mood-optimistic, .ipe-mood-celebrating { background: rgba(34, 197, 94, 0.12); color: #86efac; }
.ipe-mood-cautious, .ipe-mood-concerned, .ipe-mood-recovery-mode { background: rgba(251, 191, 36, 0.12); color: #fcd34d; }
.ipe-mood-research-focused { background: rgba(96, 165, 250, 0.12); color: #93c5fd; }
.ipe-prefs-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-top: 10px; }
.ipe-workspace-strip {
  margin: 0 0 12px;
  padding: 10px 12px;
  border-radius: 10px;
  border-left: 3px solid var(--accent, #60a5fa);
  background: var(--surface-2, rgba(255,255,255,0.04));
}
.ipe-strip-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 6px; }
.ipe-strip-personality { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.04em; opacity: 0.7; }
.ipe-strip-line { margin: 0; font-size: 0.92rem; line-height: 1.5; }
@media (max-width: 520px) { .ipe-prefs-grid { grid-template-columns: 1fr; } }
.home-header-top { display: flex; gap: 12px; align-items: flex-start; }
.home-icon { font-size: 1.75rem; line-height: 1; opacity: 0.85; }
.home-title { margin: 0; font-size: 1.35rem; }
.home-question { margin: 4px 0 0; font-weight: 600; }
.home-section-title { margin: 0 0 10px; font-size: 0.95rem; font-weight: 600; }
.home-os-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; }
.home-briefing-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.home-briefing-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 0; border-bottom: 1px solid var(--border, rgba(255,255,255,0.08)); }
.home-briefing-row:last-child { border-bottom: none; }
.home-briefing-text { flex: 1 1 200px; font-size: 0.9rem; line-height: 1.45; }
.home-health-summary, .home-lab-summary { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 10px; }
.home-recent-row { display: flex; flex-wrap: wrap; gap: 8px; }
.home-recent-chip {
  font-size: 0.78rem; padding: 6px 10px; border-radius: 8px;
  border: 1px solid var(--border, rgba(255,255,255,0.12));
  background: var(--surface-2, rgba(255,255,255,0.04)); cursor: pointer;
}
.home-recent-chip:hover { border-color: var(--accent, #60a5fa); }
.home-living-card {
  display: flex; flex-direction: column; align-items: flex-start; gap: 8px;
  min-height: 168px; min-width: 0; padding: 18px; border-radius: 14px;
  border: 1px solid var(--border, rgba(255,255,255,0.08));
  background: var(--surface-1, rgba(255,255,255,0.03));
  transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
  cursor: pointer;
  overflow: hidden; /* never bleed into neighbour cards */
  width: 100%;
  box-sizing: border-box;
}
.home-living-card:hover {
  border-color: var(--accent, #60a5fa);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.14);
}
.home-living-card:focus-within {
  outline: 2px solid var(--accent, #60a5fa);
  outline-offset: 2px;
}
.home-living-card--mood-celebrating:hover { box-shadow: 0 8px 28px rgba(34, 197, 94, 0.12); }
.home-living-card--mood-confident:hover,
.home-living-card--mood-optimistic:hover { box-shadow: 0 8px 28px rgba(96, 165, 250, 0.14); }
.home-living-card--mood-research-focused:hover { box-shadow: 0 8px 28px rgba(168, 85, 247, 0.12); }
.home-living-card--mood-recovery-mode:hover,
.home-living-card--mood-cautious:hover,
.home-living-card--mood-concerned:hover { box-shadow: 0 8px 24px rgba(251, 191, 36, 0.1); }
.home-card-title,
.home-card-purpose,
.home-card-activity {
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.home-card-title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.home-card-purpose {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
/* Status lines wrap — never nowrap-bleed into the next card ("Greyhoundcontinue season"). */
.home-living-card .home-card-status.home-badge,
.home-card .home-card-status.home-badge,
.home-living-card .home-badge {
  white-space: normal !important;
  max-width: 100%;
  width: 100%;
  box-sizing: border-box;
  border-radius: 8px;
  line-height: 1.35;
  display: -webkit-box !important;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  flex-wrap: wrap;
}
.home-card-status { margin: 0; font-size: 0.82rem; }
.home-card-activity {
  margin: 0; line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.home-card-launch {
  margin-top: auto; align-self: stretch; text-align: center;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.home-welcome-line { margin: 0; font-size: 0.95rem; line-height: 1.5; }
.home-mood-tone { font-weight: 600; }
.home-os-footer { text-align: center; padding: 12px 0 4px; opacity: 0.65; }
.home-living-grid { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.home-continue--idle { opacity: 0.92; }
.home-launch-card { min-height: 148px; }
.home-card-grid-os { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 14px; }

/* Dept 37 — Home front door */
.home-completion .home-question { font-size: 1.15rem; font-weight: 650; margin: 4px 0 0; }
.home-status-strip { padding: 12px 14px; }
.home-status-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px 14px;
  margin: 0;
}
.home-status-cell dt {
  margin: 0 0 2px;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-muted, #94a3b8);
}
.home-status-cell dd { margin: 0; font-weight: 650; font-size: 0.92rem; }
.home-door-grid {
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 16px;
}
.home-door-card {
  min-height: 220px;
  padding: 22px;
}
.home-door-card .home-card-title { font-size: 1.2rem; font-weight: 700; margin: 0; }
.home-door-card .home-card-purpose { font-size: 0.98rem; margin: 0; }
.home-door-card .home-card-hint { margin: 0; line-height: 1.4; }
.home-door-card .home-card-icon {
  font-size: 1.4rem;
  opacity: 0.85;
}
@media (max-width: 720px) {
  .home-status-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-door-grid { grid-template-columns: 1fr; }
}
.home-os-health-line { margin: 10px 0 0; }
.home-launch-law { margin: -4px 0 10px; }
.home-continue-expand { margin-top: 4px; }
.home-quick-launch { margin-top: 4px; }
.home-top-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 640px) { .home-top-row { grid-template-columns: 1fr; } }
.home-snapshot-grid, .home-health-chips, .dash-status-grid { display: grid; gap: 8px; }
.home-snapshot-grid { grid-template-columns: 1fr 1fr; }
.home-snapshot-grid dt, .dash-status-grid dt { font-size: 0.75rem; opacity: 0.7; }
.home-snapshot-grid dd, .dash-status-grid dd { margin: 0; font-weight: 600; }
.home-health-chips { grid-template-columns: repeat(3, 1fr); }
.home-health-chip { display: flex; flex-direction: column; gap: 2px; padding: 8px; border-radius: 8px; background: var(--surface-2, rgba(255,255,255,0.04)); }
.home-card-grid { display: grid; gap: 10px; }
.home-card-grid-primary { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); }
.home-card-grid-secondary { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); }
.home-card {
  display: flex; flex-direction: column; align-items: flex-start; gap: 6px;
  min-height: 132px; min-width: 0; padding: 16px; border-radius: 12px;
  border: 1px solid var(--border, rgba(255,255,255,0.08));
  background: var(--surface-1, rgba(255,255,255,0.03)); cursor: pointer; text-align: left;
  transition: border-color 0.15s, transform 0.15s, box-shadow 0.15s;
}
.home-card:hover { border-color: var(--accent, #60a5fa); transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0,0,0,0.12); }
.home-card:focus-visible { outline: 2px solid var(--accent, #60a5fa); outline-offset: 2px; }
.home-card-top { display: flex; align-items: flex-start; justify-content: space-between; width: 100%; gap: 8px; }
.home-card-icon { font-size: 1.75rem; line-height: 1; }
.home-card-badge { margin-left: auto; flex-shrink: 0; }
.home-card-title { font-size: 1rem; font-weight: 600; }
.home-card-purpose { font-size: 0.78rem; opacity: 0.78; line-height: 1.35; }
.home-card-stat { font-size: 0.72rem; opacity: 0.65; margin-top: auto; padding-top: 4px; }
.home-badge {
  display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: 999px;
  font-size: 0.72rem; font-weight: 600; line-height: 1.4; white-space: nowrap;
}
.home-badge-healthy { background: rgba(34,197,94,0.15); color: #86efac; }
.home-badge-warning { background: rgba(234,179,8,0.15); color: #fde047; }
.home-badge-critical { background: rgba(239,68,68,0.15); color: #fca5a5; }
.home-badge-running { background: rgba(96,165,250,0.15); color: #93c5fd; }
.home-badge-new { background: rgba(168,85,247,0.15); color: #d8b4fe; }
.home-badge-neutral { background: rgba(255,255,255,0.06); opacity: 0.85; }
.home-notif-list, .home-sim-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.home-notifications { display: flex; flex-direction: column; gap: 8px; }
.home-pinned { display: flex; flex-direction: column; gap: 8px; }
.home-notif-row {
  display: flex; flex-direction: column; align-items: flex-start; gap: 2px; width: 100%;
  padding: 10px 12px; border-radius: 8px; border: 1px solid var(--border, rgba(255,255,255,0.06));
  background: transparent; cursor: pointer; text-align: left;
}
.home-notif-row:hover { border-color: var(--accent, #60a5fa); }
.home-notif-row:focus-visible { outline: 2px solid var(--accent, #60a5fa); outline-offset: 2px; }
.home-notif-item.is-read { opacity: 0.65; }
.home-notif-count {
  display: inline-flex; align-items: center; justify-content: center; min-width: 1.25rem; height: 1.25rem;
  padding: 0 6px; border-radius: 999px; background: var(--accent, #60a5fa); color: #fff; font-size: 0.7rem;
}
.home-pinned-row { display: flex; flex-wrap: wrap; gap: 8px; }
.home-pinned-chip {
  min-height: 44px; padding: 8px 14px; border-radius: 999px; border: 1px solid var(--border, rgba(255,255,255,0.1));
  background: var(--surface-2, rgba(255,255,255,0.04)); cursor: pointer; font-size: 0.85rem;
}
.home-pinned-chip:hover { border-color: var(--accent, #60a5fa); }
.home-pinned-chip:focus-visible { outline: 2px solid var(--accent, #60a5fa); outline-offset: 2px; }
.home-card-grid-primary { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); }
.home-card-grid-secondary { grid-template-columns: repeat(auto-fill, minmax(148px, 1fr)); }
@media (max-width: 480px) {
  .home-card { min-height: 120px; padding: 14px; }
  .home-card-grid-primary, .home-card-grid-secondary { grid-template-columns: repeat(2, 1fr); }
}

/* Living Platform OS — heartbeat, surface-don't-interrupt */
.pos-heartbeat { display: flex; flex-direction: column; gap: 10px; }
.pos-heartbeat-kicker {
  margin: 0; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase;
  opacity: 0.55;
}
.pos-heartbeat-law { margin: 0; }
.pos-beat-row { display: flex; flex-wrap: wrap; gap: 8px; }
.pos-beat {
  display: inline-flex; flex-direction: column; gap: 2px; padding: 6px 10px; border-radius: 8px;
  border: 1px solid var(--border, rgba(255,255,255,0.08)); background: var(--surface-2, rgba(255,255,255,0.03));
  font-size: 0.72rem; line-height: 1.3;
}
.pos-beat-lbl { font-weight: 600; }
.pos-beat-state { opacity: 0.7; text-transform: capitalize; }
.pos-beat-researching, .pos-beat-simulating { border-color: rgba(96,165,250,0.35); }
.pos-beat-watching, .pos-beat-thinking { border-color: rgba(168,85,247,0.25); }
.pos-beat-recording, .pos-beat-learning { border-color: rgba(34,197,94,0.25); }
.pos-while-away { display: flex; flex-direction: column; gap: 10px; }
.pos-surface-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.pos-surface-item {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; padding: 8px 10px; border-radius: 8px;
  border: 1px solid var(--border, rgba(255,255,255,0.06)); background: rgba(255,255,255,0.02);
}
.pos-surface-src {
  font-size: 0.68rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; opacity: 0.55;
}
.pos-sev-success { border-color: rgba(34,197,94,0.3); }
.pos-sev-info { border-color: rgba(96,165,250,0.2); }
.pos-curiosity-row { display: flex; flex-wrap: wrap; gap: 8px; }
.pos-curiosity-btn {
  display: flex; flex-direction: column; align-items: flex-start; gap: 4px; padding: 10px 14px;
  border-radius: 10px; border: 1px solid var(--border, rgba(255,255,255,0.1));
  background: transparent; cursor: pointer; text-align: left; min-height: 44px;
}
.pos-curiosity-btn:hover { border-color: var(--accent, #60a5fa); }
.pos-curiosity-btn:focus-visible { outline: 2px solid var(--accent, #60a5fa); outline-offset: 2px; }
.pos-curiosity-cta { font-size: 0.78rem; font-weight: 600; color: var(--accent, #60a5fa); }

.dash-shell { display: flex; flex-direction: column; gap: 14px; max-width: 880px; margin: 0 auto; }
.dash-title { margin: 0; }
.dash-question { margin: 4px 0 0; font-weight: 600; }
.dash-status-grid { grid-template-columns: 1fr 1fr; }

/* Dept 39 — Navigation Consistency — same product across rooms */
body.bdna-nav-consistent {
  --nav-space-xs: 4px;
  --nav-space-sm: 8px;
  --nav-space-md: 12px;
  --nav-space-lg: 16px;
  --nav-radius: 10px;
  --nav-gap: 12px;
}

body.bdna-nav-consistent #content[data-nav-consistency] {
  display: flex;
  flex-direction: column;
  gap: var(--nav-gap);
}

body.bdna-nav-consistent .betdna-workspace-header,
body.bdna-nav-consistent .workspace-purpose {
  padding: var(--nav-space-md) var(--nav-space-lg);
  margin-bottom: var(--nav-space-sm);
}

body.bdna-nav-consistent .betdna-workspace-title,
body.bdna-nav-consistent .workspace-purpose h2 {
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  margin: 0;
}

body.bdna-nav-consistent .betdna-workspace-question,
body.bdna-nav-consistent .workspace-question {
  font-size: 1rem;
  font-weight: 600;
  margin: 4px 0 0;
  line-height: 1.35;
}

body.bdna-nav-consistent .nav-card.card,
body.bdna-nav-consistent .card.nav-card {
  border-radius: var(--nav-radius);
  padding: var(--nav-space-md) var(--nav-space-lg);
}

body.bdna-nav-consistent .btn-primary,
body.bdna-nav-consistent .btn-secondary,
body.bdna-nav-consistent .btn-accent {
  min-height: 40px;
  border-radius: 8px;
  padding: 8px 14px;
  font-weight: 600;
}

body.bdna-nav-consistent .btn-sm {
  min-height: 32px;
  padding: 4px 10px;
}

body.bdna-nav-consistent .nav-filter-row,
body.bdna-nav-consistent [data-nav-filters] {
  display: flex;
  flex-wrap: wrap;
  gap: var(--nav-space-sm);
  align-items: center;
}

body.bdna-nav-consistent .filter-chip,
body.bdna-nav-consistent .bdna-filter-chip {
  min-height: 32px;
  border-radius: 999px;
  padding: 4px 12px;
}

body.bdna-nav-consistent .nav-search-input,
body.bdna-nav-consistent [data-nav-search] {
  min-height: 40px;
  border-radius: 8px;
  width: 100%;
  max-width: 420px;
}

body.bdna-nav-consistent .nav-loading,
body.bdna-nav-consistent [data-nav-loading] {
  padding: var(--nav-space-md) 0;
}

body.bdna-nav-consistent .nav-error,
body.bdna-nav-consistent [data-nav-error] {
  border-radius: var(--nav-radius);
}

body.bdna-nav-consistent .nav-settings-root {
  display: flex;
  flex-direction: column;
  gap: var(--nav-gap);
  max-width: 720px;
}

body.bdna-nav-consistent .nav-settings-root .settings-section {
  margin: 0;
}

/* =====================================================================
   BETDNA BRAND — Founder-approved identity (FINAL_BETDNA_LOGO.png)
   Assets are generated by scripts/brand/generate_brand_assets.py.
   The logo replaces the "BetDNA" TEXT in the app-shell h1, so it appears
   on every surface (Home, Today, Sports, Play, Lab, CookieLogic, Settings)
   without any per-department wiring.
   The product UI outranks branding decoration. The logo sits at 40px on
   desktop and 30-34px on phones. That was set by RENDERING it, not by
   guessing: at 34px desktop the mark measured 67x34 and read as a smudge
   beside the plan badge, because only the top ~55% of the artwork is the
   wordmark. 40px is also the ceiling asserted by BR-04 in
   tests/brand/test_brand_integration.cjs, so branding cannot quietly grow.
   ===================================================================== */
.header h1.brand-title { line-height: 0; }
.header h1.brand-title { flex: 0 0 auto; }
.header h1.brand-title .header-home-btn {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  text-decoration: none;
  border-radius: 6px;
}
.header h1.brand-title .header-home-btn:hover,
.header h1.brand-title .header-home-btn:focus-visible {
  text-decoration: none;
}
.header h1.brand-title .header-home-btn:focus-visible {
  outline: 2px solid var(--accent, #f59e0b);
  outline-offset: 3px;
}
.brand-logo {
  display: block;
  /* The header is a flex row. When the auth chip was added, flex shrink
     squeezed the logo box and BR-03 measured aspect 1.8713 against the source's
     1.9765 - a visibly squashed wordmark on CookieLogic, where the header row is
     busiest. width:auto does NOT protect a flex item from being compressed. */
  flex: 0 0 auto;
  /* 40px, not 44. BR-04 in tests/brand/test_brand_integration.cjs budgets the
     header logo at 40px desktop precisely so branding cannot creep into
     product space. 44px failed that budget on five surfaces. The budget is the
     Founder's law ("do not cover useful screen space"), so the logo came down
     rather than the bar going up. */
  height: 40px;
  width: auto;          /* aspect 1.976:1 is never stretched */
  max-width: 100%;
  image-rendering: auto;
  transition: filter 140ms ease, transform 140ms ease;
}
.header h1.brand-title .header-home-btn:hover .brand-logo {
  filter: brightness(1.12) saturate(1.06);
}
.header h1.brand-title .header-home-btn:active .brand-logo {
  transform: scale(0.98);
}

/* The artwork carries its own dark outline and a real alpha cutout, so it
   reads on light themes too. No plaque is drawn behind it. */
@media (max-width: 768px) {
  .brand-logo { height: 34px; }
}
@media (max-width: 400px) {
  .brand-logo { height: 30px; }
}

@media (prefers-reduced-motion: reduce) {
  .brand-logo { transition: none; }
  .header h1.brand-title .header-home-btn:active .brand-logo { transform: none; }
}

/* =====================================================================
   G16 — WCAG 2.2 AA 2.5.8 "Target Size (Minimum)": every pointer target
   must be at least 24 x 24 CSS px.

   MEASURED before this block existed
   (tests/accessibility/evidence/accessibility_audit.json):
     .siw-chip            22px tall  x ~30 controls on Sports
     .bdna-input (select) 19px tall  x  4 controls on Settings
     .cl-search  (input)  19px tall
     .pex-crumb           18px tall
     .cmd-hint-btn        14px tall
     .skip-link           32 x 16
   45 offenders on Sports and 59 on Settings.

   Only the MINIMUM box grows; font sizes, colours and layout rhythm are
   untouched, so nothing about the visual design changes at the sizes that
   already complied. inline-flex + centring keeps the label optically
   centred in the taller box.
   ===================================================================== */
.siw-chip,
.filter-chip,
.bdna-filter-chip,
.btn-chip,
.pex-crumb,
.cmd-hint-btn,
.link-btn,
.skip-link {
  min-height: 24px;
  min-width: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Native form controls do not honour min-height reliably without a matching
   box model, so they are given an explicit height floor and vertical padding.
   Applied to every select and text input rather than a hand-listed set: the
   audit kept finding one more unclassed control each pass
   (select.bdna-input, input.cl-search, an unclassed "Spread bankroll" select,
   then .bot-slot-select), which is the signature of an incomplete rule. */
select,
input[type="text"],
input[type="search"],
input[type="number"],
input[type="email"],
input[type="password"] {
  min-height: 24px;
  padding-block: 2px;
  box-sizing: border-box;
}

/* The skip link is parked off-canvas until focused; when it IS focused it must
   be a real, comfortably sized target rather than a 32x16 sliver. */
.skip-link:focus,
.skip-link:focus-visible {
  min-height: 44px;
  padding: 10px 16px;
}

/* G16 — the country/segment chips in the strategy programme measured 22px tall
   on the LIVE site (WCAG 2.2 AA 2.5.8 requires 24x24). They are clickable
   filters, not decoration. Only the minimum box grows. */
.chip,
.country-chips .chip,
.hunt-country {
  min-height: 24px;
  min-width: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* =====================================================================
   AUTH — sign in / account. Deliberately small: a header chip and one
   dialog. Login must feel like part of BetDNA, not a bolted-on portal,
   and it must not consume product space.
   ===================================================================== */
.auth-host { margin-left: auto; display: inline-flex; align-items: center; min-width: 0; flex: 0 1 auto; }
.auth-chip {
  display: inline-flex; align-items: center; gap: 8px;
  min-height: 32px; padding: 4px 12px;
  border-radius: 999px;
  border: 1px solid var(--border, rgba(255,255,255,0.14));
  background: var(--surface-2, rgba(255,255,255,0.05));
  color: inherit; font-size: 0.8rem; font-weight: 600; cursor: pointer;
}
.auth-chip:hover { border-color: var(--accent, #22c55e); }
.auth-chip:focus-visible { outline: 2px solid var(--accent, #22c55e); outline-offset: 2px; }
.auth-avatar {
  display: inline-flex; align-items: center; justify-content: center;
  width: 22px; height: 22px; border-radius: 50%;
  background: var(--accent, #22c55e); color: var(--bdna-on-primary, #052e16);
  font-size: 0.72rem; font-weight: 800;
}
.auth-name { max-width: 12ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.auth-backdrop {
  position: fixed; inset: 0; z-index: 9999;
  display: flex; align-items: center; justify-content: center;
  padding: 20px; background: rgba(2, 6, 16, 0.72);
  backdrop-filter: blur(3px);
}
.auth-dialog {
  width: 100%; max-width: 380px;
  background: var(--surface, #1e293b);
  border: 1px solid var(--border, rgba(255,255,255,0.12));
  border-radius: 16px; padding: 20px;
  box-shadow: 0 24px 64px rgba(0,0,0,0.5);
}
.auth-dialog-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.auth-logo { height: 30px; width: auto; display: block; }
.auth-x {
  background: none; border: none; color: inherit; cursor: pointer;
  font-size: 1.6rem; line-height: 1; opacity: 0.7;
  min-width: 32px; min-height: 32px;
}
.auth-x:hover { opacity: 1; }
.auth-form { display: flex; flex-direction: column; gap: 12px; margin-top: 8px; }
.auth-form .field { display: flex; flex-direction: column; gap: 4px; }
.auth-form .bdna-input { width: 100%; min-height: 40px; padding: 8px 10px; box-sizing: border-box; }
.auth-submit { width: 100%; min-height: 44px; margin-top: 4px; }
.auth-error {
  margin: 0; padding: 8px 10px; border-radius: 8px; font-size: 0.82rem;
  background: var(--bdna-danger-bg, rgba(248,113,113,0.14));
  color: var(--bdna-danger, #fca5a5);
}
.auth-facts { display: grid; grid-template-columns: auto 1fr; gap: 6px 14px; margin: 10px 0 14px; }
.auth-facts dt { font-size: 0.76rem; opacity: 0.7; }
.auth-facts dd { margin: 0; font-weight: 600; }
.auth-foot { margin-top: 12px; }

@media (max-width: 420px) {
  .auth-name { display: none; }
  .auth-chip { padding: 4px 8px; }
  .auth-dialog { max-width: 100%; }
}
