/* ============================================================================
   OPT DIGITAL EDITORIAL OVERLAY — v2 (hardened)
   ----------------------------------------------------------------------------
   Activates when <html data-design-mode="editorial">. Legacy mode is
   untouched — every rule in this file is scoped under the attribute
   selector.

   v2 changes (2026-04-22):
   - !important on every token-affecting declaration (legacy dark-theme
     rules all use !important; this brings equal weaponry).
   - Full coverage for .dash-v2 / .dv2-* (company dashboard scoped namespace).
   - Full coverage for .results-page + its --rp-* token system (client detail).
   - Full coverage for .nx-modal-overlay (geo-change custom modal).
   - Full coverage for .modal-header-dark (12+ modals use this class).
   - "Bethany Elingston" replaced with Newsreader everywhere.
   - Global border-radius sledgehammer with explicit pill carve-outs.

   Canon: C:\Users\Ben\.claude\OPT-DESIGN-SYSTEM.md
   Reference implementations (do NOT touch):
     - app/templates/reports/results_report_pdf.html   (A4 PDF)
     - app/templates/reports/public_standalone.html    (web viewer)
   ========================================================================= */


/* ─────────────────────────────────────────────────────────────────────────
   0.  FONT IMPORTS
   ───────────────────────────────────────────────────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=Newsreader:ital,wght@0,400;0,500;1,400;1,500&display=swap');


/* ─────────────────────────────────────────────────────────────────────────
   1.  TOKEN REDEFINITION — editorial mode only
       Overrides the palette + Bootstrap vars + legacy dashboard vars
       (--bg-0, --text-700, --radius-*, --font-sans) so ALL downstream
       var() consumers auto-update.
   ───────────────────────────────────────────────────────────────────────── */
html[data-design-mode="editorial"] {
  --paper:        #fbfaf6;
  --paper-2:      #f4f1e8;
  --paper-3:      #ece8da;
  --ink:          #0a0a0a;
  --ink-2:        #2a2a2a;
  --ink-3:        #5d5d5a;
  --ink-4:        #8a8882;
  --rule:         #d9d4c4;
  --rule-2:       #ece8da;

  --accent:       #f4e14a;
  --accent-dk:    #e4cc00;
  --accent-ink:   #0a0a0a;
  --accent-soft:  #fef9cc;

  --up:   #1f7a3a; --up-soft:   #e3f2e6;
  --down: #b42318; --down-soft: #fbe7e3;
  --flat: #6b7280;

  --serif: "Newsreader", ui-serif, "Iowan Old Style", Georgia, serif;
  --sans:  "Inter", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  --mono:  "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;

  /* ── Canonical tokens (post-2026-04-26 migration) ──────────────────────
     Templates now reference --surface-*, --ink-*, --border-*, --accent-*
     directly after the bulk migration in
     scripts/migrate_inline_colors_to_tokens.py. Redefine each here so
     editorial mode swaps every surface, text shade, and border to the
     paper / ink palette without any per-template overrides.
     ─────────────────────────────────────────────────────────────────── */
  --surface-0:          #fbfaf6;
  --surface-1:          #f4f1e8;
  --surface-2:          #ece8da;
  --surface-3:          #d9d4c4;
  --surface-scrim:      rgba(10, 10, 10, 0.55);

  --ink-strong:         #0a0a0a;
  --ink-body:           #2a2a2a;
  --ink-muted:          #5d5d5a;
  --ink-faint:          #6b6660;
  --ink-disabled:       #b8b6ad;

  --border-subtle:      #ece8da;
  --border-standard:    #d9d4c4;
  --border-strong:      #b8b3a0;

  --accent-hover:       #e4cc00;
  --accent-ghost:       rgba(244, 225, 74, 0.12);
  --accent-tint:        rgba(244, 225, 74, 0.18);
  --accent-focus:       rgba(244, 225, 74, 0.32);
  --accent-border:      rgba(244, 225, 74, 0.55);

  --status-success:     #1f7a3a;
  --status-success-bg:  #e3f2e6;
  --status-success-border: #b8d8c0;
  --status-warning:     #b67200;
  --status-warning-bg:  #fdf3d8;
  --status-warning-border: #e8d49a;
  --status-danger:      #b42318;
  --status-danger-bg:   #fbe7e3;
  --status-danger-border: #e8c4be;
  --status-info:        #0b5fa3;
  --status-info-bg:     #e1eef9;
  --status-info-border: #b8d2e8;

  --shadow-xs:          0 1px 2px rgba(10, 10, 10, 0.08);
  --shadow-sm:          0 1px 3px rgba(10, 10, 10, 0.10);
  --shadow-md:          0 4px 12px rgba(10, 10, 10, 0.12);
  --shadow-lg:          0 12px 32px rgba(10, 10, 10, 0.18);
  --shadow-modal:       0 30px 80px rgba(10, 10, 10, 0.25);
  --shadow-dropdown:    0 16px 48px rgba(10, 10, 10, 0.18);
  --shadow-gold-glow:   0 8px 24px rgba(244, 225, 74, 0.30);

  --r-xs:               2px;
  --r-sm:               2px;
  --r-md:               2px;
  --r-lg:               2px;
  --r-xl:               2px;
  --r-2xl:              4px;
  --r-pill:             9999px;

  --font-display:       "Newsreader", ui-serif, "Iowan Old Style", Georgia, serif;
  --font-body:          "Inter", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  --font-mono:          "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;

  /* Legacy dashboard tokens — redefined so cards / tables / nav
     consuming var(--bg-0) etc. auto-recolour. */
  --bg-0:   #fbfaf6;
  --bg-50:  #fbfaf6;
  --bg-100: #f4f1e8;
  --bg-200: #ece8da;
  --text-900: #0a0a0a;
  --text-800: #0a0a0a;
  --text-700: #2a2a2a;
  --text-600: #5d5d5a;
  --text-500: #5d5d5a;
  --text-400: #8a8882;
  --text-300: #8a8882;
  --border-100: #ece8da;
  --border-200: #d9d4c4;
  --border-300: #d9d4c4;
  --primary: #f4e14a;
  --primary-hover: #e4cc00;

  /* Legacy radius tokens — legacy uses 12–20px; editorial uses 2px flat. */
  --radius-sm: 2px;
  --radius-md: 2px;
  --radius-lg: 2px;
  --radius-xl: 2px;
  --radius-pill: 999px;

  /* Legacy font-family tokens — point --font-sans at Inter, redirect
     --font-serif to Newsreader (legacy uses Bethany Elingston). */
  --font-sans: "Inter", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  --font-serif: "Newsreader", ui-serif, Georgia, serif;
  --font-mono: "JetBrains Mono", ui-monospace, Menlo, monospace;

  /* Custom-property aliases used by scoped partials (geo_change_modal,
     content_map) — only fallback-referenced there, so redefining them
     globally only affects those surfaces. */
  --cm-bg:     #fbfaf6;
  --text-100:  #0a0a0a;

  /* Bootstrap 5 vars — !important-level via value. These land in the cascade
     on :root equivalence; specificity ties go to the later source, which
     is us (editorial-overlay.css loads after style.css). */
  --bs-body-bg:          #fbfaf6 !important;
  --bs-body-color:       #0a0a0a !important;
  --bs-primary:          #f4e14a !important;
  --bs-primary-rgb:      244, 225, 74 !important;
  --bs-secondary:        #5d5d5a !important;
  --bs-border-color:     #d9d4c4 !important;
  --bs-tertiary-bg:      #f4f1e8 !important;
  --bs-secondary-bg:     #f4f1e8 !important;
  --bs-link-color:       #0a0a0a !important;
  --bs-link-hover-color: #0a0a0a !important;
}

/* Legacy re-sets tokens inside [data-theme="dark"]. Counter-scope so our
   editorial tokens survive. When BOTH attrs match, editorial wins by
   higher specificity (two attribute selectors vs one). */
html[data-design-mode="editorial"][data-theme="dark"],
html[data-design-mode="editorial"] [data-theme="dark"] {
  --radius-sm: 2px !important;
  --radius-md: 2px !important;
  --radius-lg: 2px !important;
  --radius-xl: 2px !important;
  --bg-0:   #fbfaf6 !important;
  --bg-50:  #fbfaf6 !important;
  --bg-100: #f4f1e8 !important;
  --bg-200: #ece8da !important;
  --text-900: #0a0a0a !important;
  --text-800: #0a0a0a !important;
  --text-700: #2a2a2a !important;
  --text-600: #5d5d5a !important;
  --text-500: #5d5d5a !important;
  --text-400: #6b6660 !important;
  --border-100: #ece8da !important;
  --border-200: #d9d4c4 !important;
  --border-300: #d9d4c4 !important;
  --font-sans: "Inter", -apple-system, BlinkMacSystemFont, system-ui, sans-serif !important;
  --font-serif: "Newsreader", ui-serif, Georgia, serif !important;
}


/* ─────────────────────────────────────────────────────────────────────────
   2.  BODY + BASE TYPOGRAPHY
   ───────────────────────────────────────────────────────────────────────── */
[data-design-mode="editorial"],
[data-design-mode="editorial"] body {
  background: var(--paper) !important;
  color: var(--ink) !important;
  font-family: var(--sans) !important;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

[data-design-mode="editorial"] h1,
[data-design-mode="editorial"] h2,
[data-design-mode="editorial"] h3,
[data-design-mode="editorial"] h4,
[data-design-mode="editorial"] h5,
[data-design-mode="editorial"] h6,
[data-design-mode="editorial"] .h1,
[data-design-mode="editorial"] .h2,
[data-design-mode="editorial"] .h3,
[data-design-mode="editorial"] .h4,
[data-design-mode="editorial"] .h5,
[data-design-mode="editorial"] .h6 {
  font-family: var(--serif) !important;
  font-weight: 500 !important;
  letter-spacing: -0.02em !important;
  color: var(--ink) !important;
}
[data-design-mode="editorial"] h1, [data-design-mode="editorial"] .h1 { font-size: 2.2rem; line-height: 1.05; letter-spacing: -0.025em; }
[data-design-mode="editorial"] h2, [data-design-mode="editorial"] .h2 { font-size: 1.6rem; line-height: 1.1; }
[data-design-mode="editorial"] h3, [data-design-mode="editorial"] .h3 { font-size: 1.2rem; line-height: 1.2; }
[data-design-mode="editorial"] h4 { font-size: 1rem; }

[data-design-mode="editorial"] h1 em,
[data-design-mode="editorial"] h2 em,
[data-design-mode="editorial"] h3 em { font-style: italic; font-weight: inherit; }

[data-design-mode="editorial"] mark {
  background: var(--accent) !important;
  color: var(--accent-ink) !important;
  padding: 0 0.08em 0.05em;
  border-radius: 2px;
}

[data-design-mode="editorial"] code,
[data-design-mode="editorial"] pre,
[data-design-mode="editorial"] .mono,
[data-design-mode="editorial"] kbd { font-family: var(--mono) !important; }

/* Numeric display — serif + tabular-nums. Covers every number class
   used across the dashboard. */
[data-design-mode="editorial"] .num,
[data-design-mode="editorial"] .stat-value,
[data-design-mode="editorial"] .kpi-value,
[data-design-mode="editorial"] .hero-value,
[data-design-mode="editorial"] .metric-value,
[data-design-mode="editorial"] .dv2-kpi__value,
[data-design-mode="editorial"] .dv2-sec__value,
[data-design-mode="editorial"] .dv2-big,
[data-design-mode="editorial"] .kpi-tile .kpi-tile-value,
[data-design-mode="editorial"] .big-number,
[data-design-mode="editorial"] .display-num {
  font-family: var(--serif) !important;
  font-variant-numeric: tabular-nums !important;
  font-weight: 500 !important;
  letter-spacing: -0.015em !important;
  color: var(--ink) !important;
}

/* Small-caps labels — the eyebrow family across every dashboard variant. */
[data-design-mode="editorial"] .kpi-label,
[data-design-mode="editorial"] .hero-label,
[data-design-mode="editorial"] .stat-label,
[data-design-mode="editorial"] .metric-label,
[data-design-mode="editorial"] .dv2-kpi__label,
[data-design-mode="editorial"] .dv2-kpi__sub,
[data-design-mode="editorial"] .dv2-sec__label,
[data-design-mode="editorial"] .dv2-header-sub {
  font-family: var(--mono) !important;
  font-size: 0.72rem !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--ink-3) !important;
  font-weight: 500 !important;
}

/* Links */
[data-design-mode="editorial"] :where(a) { color: var(--ink); text-decoration: none; }
[data-design-mode="editorial"] :where(a):hover { color: var(--ink-2); }
[data-design-mode="editorial"] a.text-primary,
[data-design-mode="editorial"] .text-primary { color: var(--ink) !important; }


/* ─────────────────────────────────────────────────────────────────────────
   3.  THE BETHANY BAN
       Legacy hardcodes 'Bethany Elingston' (old display serif) in 6+
       places with !important. Stamp it out so Newsreader wins.
   ───────────────────────────────────────────────────────────────────────── */
[data-design-mode="editorial"] .modal-header h5,
[data-design-mode="editorial"] .modal-header-dark .modal-title,
[data-design-mode="editorial"] .modal-body h6,
[data-design-mode="editorial"] .nx-modal-title,
[data-design-mode="editorial"] .page-header-dark .page-title,
[data-design-mode="editorial"] .dash-v2 .dv2-header-title,
[data-design-mode="editorial"] .dash-v2 .dv2-kpi__value,
[data-design-mode="editorial"] .dash-v2 .dv2-sec__value {
  font-family: var(--serif) !important;
  font-weight: 500 !important;
  letter-spacing: -0.02em !important;
  color: var(--ink) !important;
}


/* ─────────────────────────────────────────────────────────────────────────
   4.  BORDER-RADIUS SLEDGEHAMMER
       Legacy radius is 10–20px everywhere (var(--radius-lg)=16–20px).
       Force 2px on every container-ish class. Carve out pills,
       circles, and progress bars explicitly at the bottom.
   ───────────────────────────────────────────────────────────────────────── */
[data-design-mode="editorial"] .card,
[data-design-mode="editorial"] .card-header,
[data-design-mode="editorial"] .card-body,
[data-design-mode="editorial"] .card-footer,
[data-design-mode="editorial"] .modal-content,
[data-design-mode="editorial"] .modal-header,
[data-design-mode="editorial"] .modal-body,
[data-design-mode="editorial"] .modal-footer,
[data-design-mode="editorial"] .btn,
[data-design-mode="editorial"] .form-control,
[data-design-mode="editorial"] .form-select,
[data-design-mode="editorial"] .input-group-text,
[data-design-mode="editorial"] .dropdown-menu,
[data-design-mode="editorial"] .alert,
[data-design-mode="editorial"] .list-group,
[data-design-mode="editorial"] .list-group-item,
[data-design-mode="editorial"] .page-link,
[data-design-mode="editorial"] .tooltip-inner,
[data-design-mode="editorial"] .popover,
[data-design-mode="editorial"] .toast,
[data-design-mode="editorial"] .chart-container,
[data-design-mode="editorial"] .chart-wrapper,
[data-design-mode="editorial"] [class*="kpi"],
[data-design-mode="editorial"] [class*="hero"],
[data-design-mode="editorial"] [class*="tile"],
[data-design-mode="editorial"] [class*="-card"],
[data-design-mode="editorial"] [class*="-panel"],
[data-design-mode="editorial"] [class*="-section"],
[data-design-mode="editorial"] [class*="-box"],
[data-design-mode="editorial"] [class*="-container"]:not([class*="chart"]),
[data-design-mode="editorial"] .dv2-kpi,
[data-design-mode="editorial"] .dv2-kpi--primary,
[data-design-mode="editorial"] .dv2-panel,
[data-design-mode="editorial"] .dv2-sec,
[data-design-mode="editorial"] .dv2-kpi__arrow,
[data-design-mode="editorial"] .results-page *:not(.badge):not(.pill):not(.status-dot):not(.avatar),
[data-design-mode="editorial"] .nx-modal,
[data-design-mode="editorial"] .nx-modal-body {
  border-radius: 2px !important;
}

/* Carve-outs: pills, circles, badges stay rounded. */
[data-design-mode="editorial"] .badge,
[data-design-mode="editorial"] .pill,
[data-design-mode="editorial"] .tag-pill,
[data-design-mode="editorial"] .status-pill,
[data-design-mode="editorial"] .status-dot,
[data-design-mode="editorial"] .avatar,
[data-design-mode="editorial"] .progress,
[data-design-mode="editorial"] .progress-bar,
[data-design-mode="editorial"] .rounded-circle,
[data-design-mode="editorial"] .rounded-pill,
[data-design-mode="editorial"] .bot-agent-chip,
[data-design-mode="editorial"] .notification-badge,
[data-design-mode="editorial"] .agent-dot {
  border-radius: 999px !important;
}


/* ─────────────────────────────────────────────────────────────────────────
   5.  BOOTSTRAP COMPONENT OVERRIDES
       Every legacy rule uses !important; we match and beat them.
   ───────────────────────────────────────────────────────────────────────── */

/* --- Buttons ----------------------------------------------------------- */
[data-design-mode="editorial"] .btn {
  font-family: var(--mono) !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
  padding: 0.5rem 0.95rem !important;
  border: 1px solid var(--rule) !important;
  background: var(--paper) !important;
  color: var(--ink) !important;
  transition: all 0.12s !important;
  box-shadow: none !important;
}
[data-design-mode="editorial"] .btn:hover { border-color: var(--ink) !important; background: var(--paper) !important; color: var(--ink) !important; }

[data-design-mode="editorial"] .btn-primary,
[data-design-mode="editorial"] .btn-opt-primary {
  background: var(--ink) !important;
  color: var(--paper) !important;
  border-color: var(--ink) !important;
}
[data-design-mode="editorial"] .btn-primary:hover,
[data-design-mode="editorial"] .btn-opt-primary:hover,
[data-design-mode="editorial"] .btn-primary:focus,
[data-design-mode="editorial"] .btn-opt-primary:focus,
[data-design-mode="editorial"] .btn-primary:active {
  background: var(--accent) !important;
  color: var(--accent-ink) !important;
  border-color: var(--accent) !important;
}

[data-design-mode="editorial"] .btn-secondary,
[data-design-mode="editorial"] .btn-outline-secondary {
  background: var(--paper) !important;
  color: var(--ink-2) !important;
  border-color: var(--rule) !important;
}
[data-design-mode="editorial"] .btn-secondary:hover,
[data-design-mode="editorial"] .btn-outline-secondary:hover {
  background: var(--paper-2) !important;
  color: var(--ink) !important;
  border-color: var(--ink) !important;
}

[data-design-mode="editorial"] .btn-outline-primary {
  background: transparent !important;
  color: var(--ink) !important;
  border-color: var(--ink) !important;
}
[data-design-mode="editorial"] .btn-outline-primary:hover {
  background: var(--accent) !important;
  color: var(--accent-ink) !important;
  border-color: var(--accent) !important;
}

[data-design-mode="editorial"] .btn-warning { background: var(--accent) !important; color: var(--accent-ink) !important; border-color: var(--accent) !important; }
[data-design-mode="editorial"] .btn-success { background: var(--up) !important; color: #fff !important; border-color: var(--up) !important; }
[data-design-mode="editorial"] .btn-danger  { background: var(--down) !important; color: #fff !important; border-color: var(--down) !important; }
[data-design-mode="editorial"] .btn-dark    { background: var(--ink) !important; color: var(--paper) !important; border-color: var(--ink) !important; }
[data-design-mode="editorial"] .btn-light   { background: var(--paper-2) !important; color: var(--ink) !important; border-color: var(--rule) !important; }
[data-design-mode="editorial"] .btn-info    { background: var(--paper-2) !important; color: var(--ink) !important; border-color: var(--rule) !important; }

[data-design-mode="editorial"] .btn-sm { font-size: 0.68rem !important; padding: 0.35rem 0.7rem !important; }
[data-design-mode="editorial"] .btn-lg { font-size: 0.85rem !important; padding: 0.7rem 1.2rem !important; }

[data-design-mode="editorial"] .notification-bell-btn {
  background: var(--paper) !important;
  border: 1px solid var(--rule) !important;
  color: var(--ink-2) !important;
  padding: 7px 9px;
  transition: all 0.12s;
}
[data-design-mode="editorial"] .notification-bell-btn:hover { border-color: var(--ink) !important; color: var(--ink) !important; }

/* --- Cards ------------------------------------------------------------- */
[data-design-mode="editorial"] .card {
  background: var(--paper) !important;
  border: 1px solid var(--rule) !important;
  box-shadow: 0 1px 2px rgba(10,10,10,.03), 0 6px 18px rgba(10,10,10,.04) !important;
  color: var(--ink) !important;
}
[data-design-mode="editorial"] .card-header {
  background: var(--paper) !important;
  border-bottom: 1px solid var(--rule) !important;
  color: var(--ink-3) !important;
  font-family: var(--mono) !important;
  font-size: 0.75rem !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  padding: 0.85rem 1.1rem !important;
}
[data-design-mode="editorial"] .card-body { background: var(--paper) !important; color: var(--ink) !important; }
[data-design-mode="editorial"] .card-title { font-family: var(--serif) !important; font-weight: 500 !important; color: var(--ink) !important; }
[data-design-mode="editorial"] .card-footer { background: var(--paper-2) !important; border-top: 1px solid var(--rule) !important; color: var(--ink-3) !important; }
[data-design-mode="editorial"] .card-glow-hero { box-shadow: 0 1px 2px rgba(10,10,10,.03), 0 6px 18px rgba(10,10,10,.04) !important; }

/* --- Modals (including .modal-header-dark) ---------------------------- */
[data-design-mode="editorial"] .modal-content {
  background: var(--paper) !important;
  border: 1px solid var(--rule) !important;
  color: var(--ink) !important;
  /* Bootstrap default is 0.5rem (~8px). Editorial wants sharp 2px
     so all 28+ Bootstrap modals (admin/account_managers, AM detail,
     integrations/client_setup etc.) match the wizard + reports chrome. */
  border-radius: 2px !important;
}
[data-design-mode="editorial"] .modal-content .btn,
[data-design-mode="editorial"] .modal-content .form-control,
[data-design-mode="editorial"] .modal-content .form-select,
[data-design-mode="editorial"] .modal-content .input-group-text {
  border-radius: 2px !important;
}
[data-design-mode="editorial"] .modal-header {
  background: var(--paper) !important;
  border-bottom: 1px solid var(--rule) !important;
  color: var(--ink) !important;
  padding: 1.1rem 1.4rem !important;
}
[data-design-mode="editorial"] .modal-header-dark {
  background: var(--paper) !important;
  border-bottom: 1px solid var(--rule) !important;
  color: var(--ink) !important;
}
[data-design-mode="editorial"] .modal-header-dark .modal-title {
  font-family: var(--serif) !important;
  font-weight: 500 !important;
  color: var(--ink) !important;
  letter-spacing: -0.015em !important;
}
[data-design-mode="editorial"] .modal-header-dark i,
[data-design-mode="editorial"] .modal-header-dark .modal-icon {
  color: var(--ink) !important;
}
[data-design-mode="editorial"] .modal-title {
  font-family: var(--serif) !important;
  font-weight: 500 !important;
  color: var(--ink) !important;
  letter-spacing: -0.015em !important;
}
[data-design-mode="editorial"] .modal-body  { background: var(--paper) !important; color: var(--ink) !important; padding: 1.2rem 1.4rem !important; }
[data-design-mode="editorial"] .modal-footer { background: var(--paper) !important; border-top: 1px solid var(--rule) !important; padding: 0.9rem 1.4rem !important; }
[data-design-mode="editorial"] .modal-backdrop.show { opacity: 0.55; background: #0a0a0a !important; }
[data-design-mode="editorial"] .btn-close { filter: none !important; opacity: 0.6 !important; }
[data-design-mode="editorial"] .btn-close:hover { opacity: 1 !important; }

/* --- Forms ------------------------------------------------------------- */
[data-design-mode="editorial"] .form-control,
[data-design-mode="editorial"] .form-select,
[data-design-mode="editorial"] input[type="text"],
[data-design-mode="editorial"] input[type="email"],
[data-design-mode="editorial"] input[type="password"],
[data-design-mode="editorial"] input[type="search"],
[data-design-mode="editorial"] input[type="number"],
[data-design-mode="editorial"] input[type="date"],
[data-design-mode="editorial"] input[type="url"],
[data-design-mode="editorial"] textarea,
[data-design-mode="editorial"] select {
  background: var(--paper) !important;
  color: var(--ink) !important;
  border: 1px solid var(--rule) !important;
  font-family: var(--sans) !important;
  font-size: 0.9rem !important;
  padding: 0.55rem 0.8rem !important;
  transition: border-color 0.12s;
}
[data-design-mode="editorial"] .form-control:focus,
[data-design-mode="editorial"] .form-select:focus,
[data-design-mode="editorial"] textarea:focus {
  border-color: var(--ink) !important;
  box-shadow: 0 0 0 2px rgba(244, 225, 74, 0.35) !important;
  outline: none !important;
}
[data-design-mode="editorial"] .form-select option { background: var(--paper) !important; color: var(--ink) !important; }
[data-design-mode="editorial"] .form-label {
  font-family: var(--mono) !important;
  font-size: 0.72rem !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--ink-3) !important;
  font-weight: 500 !important;
  margin-bottom: 0.35rem;
}
[data-design-mode="editorial"] .form-text { color: var(--ink-3) !important; font-size: 0.8rem; }
[data-design-mode="editorial"] .input-group-text {
  background: var(--paper-2) !important;
  border-color: var(--rule) !important;
  color: var(--ink-3) !important;
  font-family: var(--mono) !important;
  font-size: 0.78rem !important;
}
[data-design-mode="editorial"] .form-check-input:checked {
  background-color: var(--ink) !important;
  border-color: var(--ink) !important;
}
/* Reverse the legacy calendar-indicator inversion that matches dark
   mode — on paper bg we want the native glyph colour. */
[data-design-mode="editorial"] input[type="date"]::-webkit-calendar-picker-indicator,
[data-design-mode="editorial"] input[type="time"]::-webkit-calendar-picker-indicator,
[data-design-mode="editorial"] input[type="datetime-local"]::-webkit-calendar-picker-indicator { filter: none !important; opacity: 0.55; }

/* --- Tables ------------------------------------------------------------ */
[data-design-mode="editorial"] .table {
  color: var(--ink) !important;
  background: var(--paper) !important;
  border-color: var(--rule) !important;
  --bs-table-bg: transparent !important;
  --bs-table-color: var(--ink) !important;
  --bs-table-striped-bg: var(--paper-2) !important;
  --bs-table-striped-color: var(--ink) !important;
  --bs-table-hover-bg: var(--paper-2) !important;
  --bs-table-hover-color: var(--ink) !important;
  --bs-table-border-color: var(--rule) !important;
}
[data-design-mode="editorial"] .table thead th,
[data-design-mode="editorial"] .table > thead th {
  background: var(--paper) !important;
  color: var(--ink-3) !important;
  font-family: var(--mono) !important;
  font-size: 0.7rem !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
  border-bottom: 1.5px solid var(--ink) !important;
  padding: 0.75rem 0.9rem !important;
}
[data-design-mode="editorial"] .table tbody td {
  padding: 0.7rem 0.9rem !important;
  border-bottom: 1px solid var(--rule) !important;
  color: var(--ink-2) !important;
  font-variant-numeric: tabular-nums;
  background: transparent !important;
}
[data-design-mode="editorial"] .table tbody tr:last-child td { border-bottom: 0 !important; }
[data-design-mode="editorial"] .table-hover tbody tr:hover { background: var(--paper-2) !important; }
[data-design-mode="editorial"] .table-responsive { scrollbar-width: thin; scrollbar-color: var(--rule) var(--paper); }

/* --- Nav tabs / pills -------------------------------------------------- */
[data-design-mode="editorial"] .nav-tabs { border-bottom: 1px solid var(--rule) !important; background: transparent !important; }
[data-design-mode="editorial"] .nav-tabs .nav-link {
  background: transparent !important;
  color: var(--ink-3) !important;
  border: 0 !important;
  border-bottom: 2px solid transparent !important;
  font-family: var(--mono) !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
  padding: 0.7rem 1rem !important;
}
[data-design-mode="editorial"] .nav-tabs .nav-link:hover { color: var(--ink) !important; border-bottom-color: var(--rule) !important; }
[data-design-mode="editorial"] .nav-tabs .nav-link.active {
  color: var(--ink) !important;
  background: transparent !important;
  border-bottom-color: var(--accent) !important;
}
[data-design-mode="editorial"] .nav-pills .nav-link { color: var(--ink-2) !important; background: transparent !important; }
[data-design-mode="editorial"] .nav-pills .nav-link.active { background: var(--ink) !important; color: var(--paper) !important; }

/* --- Badges ------------------------------------------------------------ */
[data-design-mode="editorial"] .badge {
  font-family: var(--mono) !important;
  font-weight: 500 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  font-size: 0.68rem !important;
  padding: 0.28em 0.6em !important;
}
[data-design-mode="editorial"] .badge.bg-primary,
[data-design-mode="editorial"] .badge.text-bg-primary { background: var(--accent) !important; color: var(--accent-ink) !important; }
[data-design-mode="editorial"] .badge.bg-secondary,
[data-design-mode="editorial"] .badge.text-bg-secondary { background: var(--paper-2) !important; color: var(--ink-3) !important; border: 1px solid var(--rule) !important; }
[data-design-mode="editorial"] .badge.bg-success,
[data-design-mode="editorial"] .badge.text-bg-success { background: var(--up-soft) !important; color: var(--up) !important; }
[data-design-mode="editorial"] .badge.bg-danger,
[data-design-mode="editorial"] .badge.text-bg-danger { background: var(--down-soft) !important; color: var(--down) !important; }
[data-design-mode="editorial"] .badge.bg-warning,
[data-design-mode="editorial"] .badge.text-bg-warning { background: var(--accent) !important; color: var(--accent-ink) !important; }
[data-design-mode="editorial"] .badge.bg-info,
[data-design-mode="editorial"] .badge.text-bg-info { background: var(--paper-2) !important; color: var(--ink) !important; border: 1px solid var(--rule) !important; }
[data-design-mode="editorial"] .badge.bg-light,
[data-design-mode="editorial"] .badge.text-bg-light { background: var(--paper-2) !important; color: var(--ink-3) !important; }
[data-design-mode="editorial"] .badge.bg-dark,
[data-design-mode="editorial"] .badge.text-bg-dark { background: var(--ink) !important; color: var(--paper) !important; }

/* --- Alerts ------------------------------------------------------------ */
[data-design-mode="editorial"] .alert {
  background: var(--paper) !important;
  border: 1px solid var(--rule) !important;
  border-left-width: 3px !important;
  border-left-color: var(--ink) !important;
  color: var(--ink) !important;
  padding: 0.9rem 1.1rem !important;
}
[data-design-mode="editorial"] .alert-primary,
[data-design-mode="editorial"] .alert-info    { border-left-color: var(--ink) !important; background: var(--paper-2) !important; color: var(--ink) !important; }
[data-design-mode="editorial"] .alert-success { border-left-color: var(--up) !important; background: var(--up-soft) !important; color: var(--up) !important; }
[data-design-mode="editorial"] .alert-danger  { border-left-color: var(--down) !important; background: var(--down-soft) !important; color: var(--down) !important; }
[data-design-mode="editorial"] .alert-warning { border-left-color: var(--accent) !important; background: var(--accent-soft) !important; color: var(--ink) !important; }

/* --- Dropdowns --------------------------------------------------------- */
[data-design-mode="editorial"] .dropdown-menu {
  background: var(--paper) !important;
  border: 1px solid var(--rule) !important;
  box-shadow: 0 8px 24px rgba(10,10,10,0.08) !important;
  color: var(--ink) !important;
  padding: 0.3rem 0 !important;
}
[data-design-mode="editorial"] .dropdown-item {
  color: var(--ink-2) !important;
  padding: 0.5rem 0.95rem !important;
  font-size: 0.88rem;
  background: transparent !important;
}
[data-design-mode="editorial"] .dropdown-item:hover { background: var(--paper-2) !important; color: var(--ink) !important; }
[data-design-mode="editorial"] .dropdown-item.active,
[data-design-mode="editorial"] .dropdown-item:active { background: var(--accent) !important; color: var(--accent-ink) !important; }
[data-design-mode="editorial"] .dropdown-divider { border-top-color: var(--rule) !important; }
[data-design-mode="editorial"] .dropdown-header { color: var(--ink-3) !important; font-family: var(--mono) !important; font-size: 0.7rem !important; letter-spacing: 0.12em !important; text-transform: uppercase !important; }

/* --- List groups ------------------------------------------------------- */
[data-design-mode="editorial"] .list-group { background: var(--paper) !important; }
[data-design-mode="editorial"] .list-group-item {
  background: var(--paper) !important;
  border-color: var(--rule) !important;
  color: var(--ink) !important;
  padding: 0.85rem 1.1rem !important;
}
[data-design-mode="editorial"] .list-group-item.active {
  background: var(--ink) !important;
  color: var(--paper) !important;
  border-color: var(--ink) !important;
}

/* --- Pagination -------------------------------------------------------- */
[data-design-mode="editorial"] .page-link {
  background: var(--paper) !important;
  border-color: var(--rule) !important;
  color: var(--ink-2) !important;
  font-family: var(--mono) !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.06em !important;
}
[data-design-mode="editorial"] .page-link:hover { background: var(--paper-2) !important; color: var(--ink) !important; border-color: var(--ink) !important; }
[data-design-mode="editorial"] .page-item.active .page-link { background: var(--ink) !important; border-color: var(--ink) !important; color: var(--paper) !important; }
[data-design-mode="editorial"] .page-item.disabled .page-link { background: var(--paper-2) !important; color: var(--ink-4) !important; border-color: var(--rule) !important; }

/* --- Breadcrumb -------------------------------------------------------- */
[data-design-mode="editorial"] .breadcrumb { background: transparent !important; padding: 0 !important; font-family: var(--mono) !important; font-size: 0.76rem !important; letter-spacing: 0.08em !important; text-transform: uppercase !important; }
[data-design-mode="editorial"] .breadcrumb-item,
[data-design-mode="editorial"] .breadcrumb-item a { color: var(--ink-3) !important; }
[data-design-mode="editorial"] .breadcrumb-item.active { color: var(--ink) !important; }
[data-design-mode="editorial"] .breadcrumb-item + .breadcrumb-item::before { content: "·" !important; color: var(--ink-4) !important; padding: 0 0.5rem; }

/* --- Progress --------------------------------------------------------- */
[data-design-mode="editorial"] .progress { background: var(--rule-2) !important; height: 6px !important; }
[data-design-mode="editorial"] .progress-bar { background: var(--ink) !important; }
[data-design-mode="editorial"] .progress-bar.bg-warning,
[data-design-mode="editorial"] .progress-bar.bg-primary { background: var(--accent) !important; }
[data-design-mode="editorial"] .progress-bar.bg-success { background: var(--up) !important; }
[data-design-mode="editorial"] .progress-bar.bg-danger  { background: var(--down) !important; }

/* --- Utility Bootstrap backgrounds ------------------------------------- */
[data-design-mode="editorial"] .bg-primary { background-color: var(--accent) !important; color: var(--accent-ink) !important; }
[data-design-mode="editorial"] .bg-dark    { background-color: var(--ink) !important; color: var(--paper) !important; }
[data-design-mode="editorial"] .bg-light   { background-color: var(--paper-2) !important; color: var(--ink) !important; }
[data-design-mode="editorial"] .bg-white   { background-color: var(--paper) !important; }
[data-design-mode="editorial"] .bg-body    { background-color: var(--paper) !important; }
[data-design-mode="editorial"] .text-muted { color: var(--ink-3) !important; }
[data-design-mode="editorial"] .text-secondary { color: var(--ink-3) !important; }
[data-design-mode="editorial"] .text-success { color: var(--up) !important; }
[data-design-mode="editorial"] .text-danger  { color: var(--down) !important; }
[data-design-mode="editorial"] .text-warning { color: var(--accent-dk) !important; }
[data-design-mode="editorial"] .text-light   { color: var(--ink-3) !important; }
[data-design-mode="editorial"] .text-dark    { color: var(--ink) !important; }
[data-design-mode="editorial"] .text-white   { color: var(--ink) !important; }

[data-design-mode="editorial"] .border,
[data-design-mode="editorial"] .border-top,
[data-design-mode="editorial"] .border-end,
[data-design-mode="editorial"] .border-bottom,
[data-design-mode="editorial"] .border-start { border-color: var(--rule) !important; }


/* ─────────────────────────────────────────────────────────────────────────
   6.  DASHBOARD CHROME — sidebar + topbar
   ───────────────────────────────────────────────────────────────────────── */

[data-design-mode="editorial"] .app-content,
[data-design-mode="editorial"] .app-main { background: var(--paper-2) !important; color: var(--ink) !important; }

[data-design-mode="editorial"] .sidebar {
  background: var(--paper) !important;
  border-right: 1px solid var(--rule) !important;
  color: var(--ink) !important;
}
[data-design-mode="editorial"] .sidebar-link,
[data-design-mode="editorial"] .sidebar a { color: var(--ink-2) !important; }
[data-design-mode="editorial"] .sidebar-link:hover { background: var(--paper-2) !important; color: var(--ink) !important; }
[data-design-mode="editorial"] .sidebar-link.active,
[data-design-mode="editorial"] .sidebar-item.active .sidebar-link {
  background: var(--paper-2) !important;
  color: var(--ink) !important;
  position: relative;
}
[data-design-mode="editorial"] .sidebar-link.active::before,
[data-design-mode="editorial"] .sidebar-item.active .sidebar-link::before {
  content: "";
  position: absolute;
  left: 0; top: 6px; bottom: 6px;
  width: 2px;
  background: var(--accent);
}
[data-design-mode="editorial"] .sidebar-section-title,
[data-design-mode="editorial"] .sidebar-heading {
  font-family: var(--mono) !important;
  font-size: 0.65rem !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--ink-4) !important;
}

[data-design-mode="editorial"] .topbar {
  background: var(--paper) !important;
  border-bottom: 1px solid var(--rule) !important;
  color: var(--ink) !important;
  backdrop-filter: none !important;
}
[data-design-mode="editorial"] .topbar-breadcrumb,
[data-design-mode="editorial"] .topbar-breadcrumb a {
  color: var(--ink-3) !important;
  font-family: var(--mono) !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}
[data-design-mode="editorial"] .topbar-breadcrumb a:hover { color: var(--ink) !important; }
/* .topbar-search rules moved to app/static/css/topbar-search.css (single source of truth) */


/* ─────────────────────────────────────────────────────────────────────────
   7.  COMPANY DASHBOARD — .dash-v2 / .dv2-* NAMESPACE
       (company/dashboard.html has a scoped <style> block that hardcodes
       black + yellow-gradient + Bethany. Override every class it uses.)
   ───────────────────────────────────────────────────────────────────────── */

[data-design-mode="editorial"] .dash-v2 {
  background: var(--paper-2) !important;
}
[data-design-mode="editorial"] .dash-v2 .dv2-header {
  border-bottom: 1px solid var(--rule) !important;
}
[data-design-mode="editorial"] .dash-v2 .dv2-header-title {
  font-family: var(--serif) !important;
  color: var(--ink) !important;
  font-weight: 500 !important;
}
[data-design-mode="editorial"] .dash-v2 .dv2-header-sub {
  color: var(--ink-3) !important;
  font-family: var(--mono) !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  font-size: 11px !important;
}

/* Filter selects */
[data-design-mode="editorial"] .dash-v2 .form-select {
  background-color: var(--paper) !important;
  border: 1px solid var(--rule) !important;
  color: var(--ink-2) !important;
  font-size: 13px !important;
  padding: 8px 14px !important;
  font-family: var(--mono) !important;
}
[data-design-mode="editorial"] .dash-v2 .form-select:focus {
  border-color: var(--ink) !important;
  box-shadow: 0 0 0 2px rgba(244,225,74,0.35) !important;
}
[data-design-mode="editorial"] .dash-v2 .form-select option,
[data-design-mode="editorial"] .dash-v2 .retention-month-select option {
  background: var(--paper) !important;
  color: var(--ink) !important;
}

/* KPI cards — kill the yellow radial gradient, use clean paper cards. */
[data-design-mode="editorial"] .dash-v2 .dv2-kpi {
  background: var(--paper) !important;
  border: 1px solid var(--rule) !important;
  box-shadow: 0 1px 2px rgba(10,10,10,.03), 0 6px 18px rgba(10,10,10,.04) !important;
  padding: 24px 26px 22px !important;
  transition: border-color 0.12s !important;
}
[data-design-mode="editorial"] .dash-v2 .dv2-kpi::after { display: none !important; }
[data-design-mode="editorial"] .dash-v2 .dv2-kpi:hover {
  transform: none !important;
  border-color: var(--ink) !important;
  box-shadow: 0 1px 2px rgba(10,10,10,.04), 0 8px 24px rgba(10,10,10,.06) !important;
}

/* Primary KPI — editorial uses the accent as a left-border accent, not
   a full yellow glow. */
[data-design-mode="editorial"] .dash-v2 .dv2-kpi--primary {
  background: var(--paper) !important;
  border: 1px solid var(--rule) !important;
  border-left: 3px solid var(--accent) !important;
  box-shadow: 0 1px 2px rgba(10,10,10,.03), 0 6px 18px rgba(10,10,10,.04) !important;
}
[data-design-mode="editorial"] .dash-v2 .dv2-kpi--primary .dv2-kpi__label { color: var(--ink-3) !important; }
[data-design-mode="editorial"] .dash-v2 .dv2-kpi--primary .dv2-kpi__value { color: var(--ink) !important; }
[data-design-mode="editorial"] .dash-v2 .dv2-kpi--primary .dv2-kpi__sub,
[data-design-mode="editorial"] .dash-v2 .dv2-kpi--primary .dv2-kpi__change { color: var(--ink-3) !important; }
[data-design-mode="editorial"] .dash-v2 .dv2-kpi--primary .trial-mrr-badge { color: var(--ink-3) !important; }
[data-design-mode="editorial"] .dash-v2 .dv2-kpi--primary:hover {
  transform: none !important;
  border-color: var(--ink) !important;
  border-left-color: var(--accent-dk) !important;
}

/* Arrow icon — ink on paper-2 chip, not black-on-black. */
[data-design-mode="editorial"] .dash-v2 .dv2-kpi__arrow {
  background: var(--paper-2) !important;
  color: var(--ink-2) !important;
  border: 1px solid var(--rule) !important;
}
[data-design-mode="editorial"] .dash-v2 .dv2-kpi:hover .dv2-kpi__arrow {
  background: var(--ink) !important;
  color: var(--paper) !important;
  border-color: var(--ink) !important;
}

/* KPI typography */
[data-design-mode="editorial"] .dash-v2 .dv2-kpi__label {
  color: var(--ink-3) !important;
  font-family: var(--mono) !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.15em !important;
}
[data-design-mode="editorial"] .dash-v2 .dv2-kpi__value {
  font-family: var(--serif) !important;
  color: var(--ink) !important;
  font-size: 2.4rem !important;
  font-weight: 500 !important;
  letter-spacing: -0.02em !important;
  line-height: 1 !important;
  font-variant-numeric: tabular-nums;
}
[data-design-mode="editorial"] .dash-v2 .dv2-kpi__sub {
  color: var(--ink-3) !important;
  font-family: var(--sans) !important;
  font-size: 10px !important;
}
[data-design-mode="editorial"] .dash-v2 .trial-mrr-badge { color: var(--ink-3) !important; }

/* Directional value helpers — use semantic tokens, not neon. */
[data-design-mode="editorial"] .dash-v2 .cd-val-positive { color: var(--up) !important; text-shadow: none !important; }
[data-design-mode="editorial"] .dash-v2 .cd-val-negative { color: var(--down) !important; text-shadow: none !important; }
/* cd-val-warning was using --accent-dk (#e4cc00 yellow) which sits at ~1.5:1
   on the cream paper bg — unreadable. --status-warning (#b67200 amber) gives
   ~4.85:1 and is semantically correct for a warning value. */
[data-design-mode="editorial"] .dash-v2 .cd-val-warning  { color: var(--status-warning) !important; text-shadow: none !important; }

/* view-profile-link uses var(--accent) yellow which is unreadable on cream
   (ratio 1.18). In editorial mode swap to soft black; the card hover state
   still provides the link affordance. */
[data-design-mode="editorial"] .view-profile-link { color: var(--ink-2) !important; }

/* Panels (shared card) */
[data-design-mode="editorial"] .dash-v2 .dv2-panel {
  background: var(--paper) !important;
  border: 1px solid var(--rule) !important;
  box-shadow: 0 1px 2px rgba(10,10,10,.03), 0 6px 18px rgba(10,10,10,.04) !important;
  padding: 24px !important;
}
[data-design-mode="editorial"] .dash-v2 .dv2-panel::after { display: none !important; }

[data-design-mode="editorial"] .dash-v2 .dv2-sec__label,
[data-design-mode="editorial"] .dash-v2 .dv2-panel-title {
  color: var(--ink-3) !important;
  font-family: var(--mono) !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
}
[data-design-mode="editorial"] .dash-v2 .dv2-sec__value {
  font-family: var(--serif) !important;
  color: var(--ink) !important;
}

/* Catch-all: any text inside .dash-v2 that inherited rgba(255,255,255,*)
   gets forced to ink. */
[data-design-mode="editorial"] .dash-v2,
[data-design-mode="editorial"] .dash-v2 *:not(.dv2-kpi__arrow):not(.btn) {
  color: var(--ink-2);
}
[data-design-mode="editorial"] .dash-v2 [style*="color:rgba(255"],
[data-design-mode="editorial"] .dash-v2 [style*="color: rgba(255"] { color: var(--ink-2) !important; }


/* ─────────────────────────────────────────────────────────────────────────
   8.  CLIENT DETAIL — .results-page + --rp-* TOKEN SYSTEM
       (app/static/css/results-components.css defines a scoped token
       system; redefine those tokens in editorial mode so the whole
       page subsystem inherits paper-cream colours.)
   ───────────────────────────────────────────────────────────────────────── */

[data-design-mode="editorial"] .results-page {
  --rp-bg:          var(--paper)   !important;
  --rp-card:        var(--paper)   !important;
  --rp-header:      var(--paper)   !important;
  --rp-border:      var(--rule)    !important;
  --rp-text-dark:   var(--ink)     !important;
  --rp-text-muted:  var(--ink-3)   !important;
  --rp-yellow:      var(--accent)  !important;
  --rp-yellow-dk:   var(--accent-dk) !important;
  background: var(--paper) !important;
  color: var(--ink) !important;
}

/* Force 2px radius across ALL descendants except pills/circles. */
[data-design-mode="editorial"] .results-page *:not(.badge):not(.pill):not(.status-dot):not(.avatar):not(.progress):not(.rounded-circle):not(.rounded-pill) {
  border-radius: 2px !important;
}

[data-design-mode="editorial"] .results-page .report-header,
[data-design-mode="editorial"] .results-page .tab-nav,
[data-design-mode="editorial"] .results-page .card,
[data-design-mode="editorial"] .results-page .panel,
[data-design-mode="editorial"] .results-page .status-block,
[data-design-mode="editorial"] .results-page .hero-block {
  background: var(--paper) !important;
  border-color: var(--rule) !important;
  color: var(--ink) !important;
}

[data-design-mode="editorial"] .results-page .client-hero-card,
[data-design-mode="editorial"] .client-hero-card {
  background: var(--paper) !important;
  border: 1px solid var(--rule) !important;
  border-left: 3px solid var(--accent) !important;
  box-shadow: 0 1px 2px rgba(10,10,10,.03), 0 6px 18px rgba(10,10,10,.04) !important;
}

[data-design-mode="editorial"] .results-page .client-name,
[data-design-mode="editorial"] .client-name {
  font-family: var(--serif) !important;
  color: var(--ink) !important;
  font-weight: 500 !important;
}

/* Status chips — keep directional colors, but use soft bg + ink text. */
[data-design-mode="editorial"] .results-page [class*="status-"],
[data-design-mode="editorial"] .results-page [class*="badge-"]:not(.badge) {
  font-family: var(--mono) !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  font-size: 0.7rem !important;
}


/* ─────────────────────────────────────────────────────────────────────────
   9.  KPI / HERO / STAT / METRIC TILE FAMILIES
   ───────────────────────────────────────────────────────────────────────── */

[data-design-mode="editorial"] .kpi-tile,
[data-design-mode="editorial"] .kpi-card,
[data-design-mode="editorial"] .kpi-card-sm,
[data-design-mode="editorial"] .stat-card,
[data-design-mode="editorial"] .hero-card,
[data-design-mode="editorial"] .metric-card,
[data-design-mode="editorial"] .am-hero-card,
[data-design-mode="editorial"] .cc-card,
[data-design-mode="editorial"] .ga4-card,
[data-design-mode="editorial"] .audit-card,
[data-design-mode="editorial"] .admin-card,
[data-design-mode="editorial"] .client-card,
[data-design-mode="editorial"] .gsc-kpi-section,
[data-design-mode="editorial"] .ga4-kpi-row > *,
[data-design-mode="editorial"] .kpi-funnel > *,
[data-design-mode="editorial"] .kpi-grid > *,
[data-design-mode="editorial"] [class*="kpi-grid-"] > * {
  background: var(--paper) !important;
  border: 1px solid var(--rule) !important;
  color: var(--ink) !important;
  box-shadow: 0 1px 2px rgba(10,10,10,.03), 0 6px 18px rgba(10,10,10,.04) !important;
}

[data-design-mode="editorial"] .kpi-value,
[data-design-mode="editorial"] .kpi-tile-value,
[data-design-mode="editorial"] .hero-value,
[data-design-mode="editorial"] .stat-value,
[data-design-mode="editorial"] .metric-value,
[data-design-mode="editorial"] .ss-value,
[data-design-mode="editorial"] .sc-value {
  font-family: var(--serif) !important;
  font-variant-numeric: tabular-nums !important;
  font-weight: 500 !important;
  letter-spacing: -0.02em !important;
  color: var(--ink) !important;
}

[data-design-mode="editorial"] .kpi-label,
[data-design-mode="editorial"] .kpi-tile-label,
[data-design-mode="editorial"] .hero-label,
[data-design-mode="editorial"] .stat-label,
[data-design-mode="editorial"] .metric-label,
[data-design-mode="editorial"] .ss-label,
[data-design-mode="editorial"] .sc-label {
  font-family: var(--mono) !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--ink-3) !important;
  font-weight: 500 !important;
}

/* Strip neon glow halos on hero icons. */
[data-design-mode="editorial"] .hero-icon {
  background: var(--paper-2) !important;
  color: var(--ink-2) !important;
  border: 1px solid var(--rule) !important;
  box-shadow: none !important;
}

/* Page-title family (often uses Bethany or Inter — force serif). */
[data-design-mode="editorial"] .page-title,
[data-design-mode="editorial"] .page-title-branded,
[data-design-mode="editorial"] .section-header h5 {
  font-family: var(--serif) !important;
  font-weight: 500 !important;
  letter-spacing: -0.015em !important;
  color: var(--ink) !important;
}


/* ─────────────────────────────────────────────────────────────────────────
   10. NX-MODAL-OVERLAY + NX-MODAL (custom non-Bootstrap modals — used by
       content_map.html for Command Centre actions, geo change, rewrite,
       service grid editor, plus all share/insert dialogs).

       PREVIOUS BUG: this block set `.nx-modal-overlay` background to
       var(--paper) — but .nx-modal-overlay is the FULL-VIEWPORT BACKDROP
       (position:fixed; inset:0; bg:rgba(0,0,0,0.7)), not the modal
       content. Painting it cream covered the entire viewport in paper
       and the dark-styled .nx-modal blended in invisibly. Ben's
       "Insert Internal Links popup unusable" symptom.

       It also referenced classes that don't exist: .nx-modal-content,
       .nx-modal-overlay-header / body / footer. The real classes are
       .nx-modal (content), .nx-modal-title, .nx-modal-label,
       .nx-modal-input, .nx-modal-footer, .nx-modal-btn-*.

       Fix below targets the right selectors and keeps the backdrop
       dark (so the modal stands out against it). The blur(12px) on
       the backdrop is preserved — it works the same on cream + dark. */

/* Backdrop — stays a dark scrim in editorial too. The modal floats on
   top of a dimmed page so users can focus on it. */
[data-design-mode="editorial"] .nx-modal-overlay {
  background: rgba(20, 20, 20, 0.45) !important;
}

/* Modal content — paper card with dark text. */
[data-design-mode="editorial"] .nx-modal {
  background: var(--paper) !important;
  color: var(--ink) !important;
  border: 1px solid var(--rule) !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06), 0 24px 48px rgba(0,0,0,0.18) !important;
}
[data-design-mode="editorial"] .nx-modal-title {
  font-family: var(--serif) !important;
  color: var(--ink) !important;
  font-weight: 500 !important;
  letter-spacing: -0.015em !important;
}
[data-design-mode="editorial"] .nx-modal-label {
  color: var(--ink-3) !important;
  font-family: var(--mono) !important;
}
[data-design-mode="editorial"] .nx-modal-input {
  background: var(--paper-2) !important;
  color: var(--ink) !important;
  border: 1px solid var(--rule) !important;
}
[data-design-mode="editorial"] .nx-modal-input:focus {
  border-color: var(--accent) !important;
  box-shadow: 0 0 0 3px var(--accent-ghost) !important;
}
[data-design-mode="editorial"] .nx-modal-input::placeholder {
  color: var(--ink-3) !important;
  opacity: 0.6 !important;
}
[data-design-mode="editorial"] .nx-modal-footer {
  border-top-color: var(--rule) !important;
}
/* Cancel button — was rgba(255,255,255,0.4) which is invisible on paper.
   Switch to dark muted text. */
[data-design-mode="editorial"] .nx-modal-btn-secondary {
  color: var(--ink-2) !important;
}
[data-design-mode="editorial"] .nx-modal-btn-secondary:hover {
  color: var(--ink) !important;
  background: var(--paper-2) !important;
}
/* Primary "Run Command" stays solid yellow + dark text — already correct
   in source CSS. Just ensure border-radius matches editorial language. */
[data-design-mode="editorial"] .nx-modal-btn-primary {
  background: var(--accent) !important;
  color: var(--accent-ink) !important;
}
[data-design-mode="editorial"] .nx-modal-btn-danger {
  background: var(--status-danger-bg) !important;
  color: var(--status-danger) !important;
  border: 1px solid var(--status-danger-border) !important;
}

/* Body text inside .nx-modal default colour was rgba(255,255,255,0.7) —
   make sure paragraph / span text reads dark on paper. The `*` covers
   description text like "Scans published pages and inserts contextual
   internal links between related content." */
[data-design-mode="editorial"] .nx-modal,
[data-design-mode="editorial"] .nx-modal p,
[data-design-mode="editorial"] .nx-modal span:not([class*="-chip"]):not([class*="-pill"]):not([class*="-tag"]):not([class*="-badge"]) {
  color: var(--ink) !important;
}
/* Faded utility text inside modals (subtitles, captions) */
[data-design-mode="editorial"] .nx-modal .text-faint,
[data-design-mode="editorial"] .nx-modal .text-muted,
[data-design-mode="editorial"] .nx-modal [style*="ink-faint"],
[data-design-mode="editorial"] .nx-modal [style*="ink-disabled"] {
  color: var(--ink-3) !important;
}

/* Share modal — same hardcoded dark pattern, identical fix. */
[data-design-mode="editorial"] .share-modal-overlay {
  background: rgba(20, 20, 20, 0.45) !important;
}
[data-design-mode="editorial"] .share-modal-overlay .share-modal-content {
  background: var(--paper) !important;
  color: var(--ink) !important;
  border: 1px solid var(--rule) !important;
}

/* SYSTEMIC CATCH-ALL — any custom modal that uses [class*="modal-overlay"]
   or [class*="modal-backdrop"] or has inline `position: fixed; inset: 0`
   with z-index >= 100 gets a sane backdrop in editorial. This catches
   future modals before they regress. The :not() carve-outs prevent us
   from accidentally targeting the heat-grid map overlays which aren't
   modal backdrops. */
[data-design-mode="editorial"] [class*="modal-overlay"]:not(.nx-modal-overlay):not(.share-modal-overlay):not(.cm-edit-modal-overlay):not(.cm-ws-modal-overlay):not(.gmb-modal-overlay):not(.br-modal-backdrop) {
  background: rgba(20, 20, 20, 0.45) !important;
}


/* ─────────────────────────────────────────────────────────────────────────
   11. DESIGN MODE TOGGLE BUTTON (itself)
   ───────────────────────────────────────────────────────────────────────── */

.design-mode-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: transparent;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 6px;
  padding: 6px 10px;
  color: #cfcfcf;
  font-size: 0.7rem;
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: all 0.12s;
  margin-left: 8px;
}
.design-mode-toggle:hover { border-color: rgba(240,224,80,.5); color: #f0e050; }
.design-mode-toggle i { font-size: 0.9rem; }
.design-mode-toggle[data-mode="editorial"] { color: #f0e050; border-color: rgba(240,224,80,.4); background: rgba(240,224,80,.08); }

[data-design-mode="editorial"] .design-mode-toggle {
  background: var(--ink) !important;
  border: 1px solid var(--ink) !important;
  color: var(--accent) !important;
  padding: 7px 11px;
  font-family: var(--mono) !important;
  font-size: 0.72rem !important;
  letter-spacing: 0.1em !important;
}
[data-design-mode="editorial"] .design-mode-toggle:hover { border-color: var(--accent) !important; }


/* ─────────────────────────────────────────────────────────────────────────
   12. CHARTS + BOT PANEL
   ───────────────────────────────────────────────────────────────────────── */

[data-design-mode="editorial"] .chart-container,
[data-design-mode="editorial"] .chart-wrapper {
  background: var(--paper) !important;
  border: 1px solid var(--rule) !important;
  padding: 14px;
  color: var(--ink) !important;
}
[data-design-mode="editorial"] .apexcharts-tooltip,
[data-design-mode="editorial"] .apexcharts-menu {
  background: var(--paper) !important;
  color: var(--ink) !important;
  border: 1px solid var(--rule) !important;
  font-family: var(--mono) !important;
}
[data-design-mode="editorial"] .apexcharts-text tspan { fill: var(--ink-3) !important; }

[data-design-mode="editorial"] .bot-panel,
[data-design-mode="editorial"] .bot-panel-header,
[data-design-mode="editorial"] .bot-panel-filters,
[data-design-mode="editorial"] .bot-panel-list {
  background: var(--paper) !important;
  color: var(--ink) !important;
  border-color: var(--rule) !important;
}
[data-design-mode="editorial"] .bot-panel-header { border-bottom: 1px solid var(--rule) !important; }
[data-design-mode="editorial"] .bot-agent-chip { background: var(--paper-2) !important; color: var(--ink-2) !important; border-color: var(--rule) !important; }


/* ─────────────────────────────────────────────────────────────────────────
   13. MISC POLISH — tooltips, popovers, flash, admin subnav
   ───────────────────────────────────────────────────────────────────────── */

[data-design-mode="editorial"] .tooltip-inner {
  background: var(--ink) !important;
  color: var(--paper) !important;
  font-family: var(--mono) !important;
  font-size: 0.72rem !important;
  letter-spacing: 0.06em !important;
}
[data-design-mode="editorial"] .popover {
  background: var(--paper) !important;
  border: 1px solid var(--rule) !important;
  color: var(--ink) !important;
}
[data-design-mode="editorial"] .popover-header {
  background: var(--paper-2) !important;
  border-bottom: 1px solid var(--rule) !important;
  font-family: var(--mono) !important;
  font-size: 0.75rem !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--ink) !important;
}

[data-design-mode="editorial"] .admin-subnav {
  background: var(--paper) !important;
  border-bottom: 1px solid var(--rule) !important;
}
[data-design-mode="editorial"] .admin-subnav-link {
  color: var(--ink-3) !important;
  font-family: var(--mono) !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
}
[data-design-mode="editorial"] .admin-subnav-link:hover { color: var(--ink) !important; }
[data-design-mode="editorial"] .admin-subnav-link.active { color: var(--ink) !important; border-bottom: 2px solid var(--accent) !important; }

[data-design-mode="editorial"] .flash-message,
[data-design-mode="editorial"] .toast { background: var(--paper) !important; border: 1px solid var(--rule) !important; color: var(--ink) !important; }


/* ─────────────────────────────────────────────────────────────────────────
   14. OPT-IN EDITORIAL UTILITY CLASSES
       (use in new templates for explicit editorial motifs)
   ───────────────────────────────────────────────────────────────────────── */

[data-design-mode="editorial"] .ed-eyebrow {
  font-family: var(--mono);
  font-size: 0.7rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-3);
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
[data-design-mode="editorial"] .ed-eyebrow::before {
  content: "";
  display: inline-block;
  width: 16px;
  height: 1px;
  background: var(--ink);
}
[data-design-mode="editorial"] .ed-eyebrow.ed-eyebrow-accent { color: var(--ink); }
[data-design-mode="editorial"] .ed-eyebrow.ed-eyebrow-accent::before { background: var(--accent); height: 2px; }

[data-design-mode="editorial"] .ed-section-head {
  display: grid;
  grid-template-columns: 60px 1fr auto;
  gap: 20px;
  align-items: baseline;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--ink);
  margin-bottom: 28px;
}
[data-design-mode="editorial"] .ed-section-head .ed-sh-num {
  font-family: var(--mono);
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  color: var(--ink-3);
  padding-top: 6px;
  border-top: 2px solid var(--ink);
  text-transform: uppercase;
}
[data-design-mode="editorial"] .ed-section-head .ed-sh-kicker {
  display: block;
  font-family: var(--mono);
  font-size: 0.7rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-3);
  margin-bottom: 8px;
}
[data-design-mode="editorial"] .ed-section-head .ed-sh-title {
  font-family: var(--serif);
  font-weight: 500;
  font-size: 1.9rem;
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--ink);
}
[data-design-mode="editorial"] .ed-section-head .ed-sh-meta {
  font-family: var(--mono);
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-3);
  text-align: right;
  padding-top: 6px;
  border-top: 2px solid var(--ink);
}

[data-design-mode="editorial"] .ed-what-it-means {
  display: flex;
  gap: 16px;
  border-left: 3px solid var(--accent);
  background: var(--accent-soft);
  padding: 14px 18px;
  align-items: flex-start;
  border-radius: 0 2px 2px 0;
  margin: 18px 0;
}
[data-design-mode="editorial"] .ed-what-it-means .ed-wim-tag {
  font-family: var(--mono);
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-3);
  min-width: 90px;
  padding-top: 2px;
  flex-shrink: 0;
}
[data-design-mode="editorial"] .ed-what-it-means .ed-wim-body {
  font-family: var(--serif);
  font-size: 1.02rem;
  line-height: 1.5;
  color: var(--ink);
}
[data-design-mode="editorial"] .ed-what-it-means .ed-wim-body em { font-style: italic; }

[data-design-mode="editorial"] .ed-pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  border-radius: 999px;
  font-family: var(--mono);
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  line-height: 1;
  vertical-align: middle;
}
[data-design-mode="editorial"] .ed-pill-up { background: var(--up-soft); color: var(--up); }
[data-design-mode="editorial"] .ed-pill-down { background: var(--down-soft); color: var(--down); }
[data-design-mode="editorial"] .ed-pill-flat { background: var(--paper-2); color: var(--flat); border: 1px solid var(--rule); }
[data-design-mode="editorial"] .ed-pill-accent { background: var(--accent); color: var(--accent-ink); }

[data-design-mode="editorial"] .ed-tag {
  display: inline-block;
  padding: 2px 7px;
  border: 1px solid var(--rule);
  border-radius: 2px;
  font-family: var(--mono);
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-3);
}
[data-design-mode="editorial"] .ed-tag-solid { background: var(--ink); color: var(--paper); border-color: var(--ink); }
[data-design-mode="editorial"] .ed-tag-accent { background: var(--accent); color: var(--accent-ink); border-color: var(--accent); }

[data-design-mode="editorial"] .ed-scorecard {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border: 1px solid var(--ink);
  background: var(--paper);
}
[data-design-mode="editorial"] .ed-scorecard .ed-sc-cell {
  padding: 18px 20px 22px;
  border-right: 1px solid var(--rule);
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 140px;
}
[data-design-mode="editorial"] .ed-scorecard .ed-sc-cell:last-child { border-right: 0; }
[data-design-mode="editorial"] .ed-scorecard .ed-sc-label {
  font-family: var(--mono);
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-3);
  font-weight: 500;
}
[data-design-mode="editorial"] .ed-scorecard .ed-sc-value {
  font-family: var(--serif);
  font-size: 2.2rem;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
  font-weight: 400;
}

/* ─────────────────────────────────────────────────────────────────────────
   15. CONTRAST HARDENING — pass 3
       Catches everything the earlier passes missed based on in-browser
       QA. Covers: invisible gold-on-cream text, dark-tile-on-panel
       nested containers, dropdown hover states, tab nav, filter bars,
       empty-state cards.
   ───────────────────────────────────────────────────────────────────────── */

/* 15.1 GOLD TEXT → INK
   Legacy hardcodes color:#f0e050 / color:var(--primary) / color:#fff /
   color:rgba(255,255,255,.X) on body text, turning invisible on cream.
   Only ACTUAL accents (buttons, pills, active states inside ink
   containers) should remain gold — body links + values become ink. */
[data-design-mode="editorial"] [style*="color:#f0e050"],
[data-design-mode="editorial"] [style*="color: #f0e050"],
[data-design-mode="editorial"] [style*="color:var(--primary)"],
[data-design-mode="editorial"] [style*="color: var(--primary)"] {
  color: var(--ink) !important;
}
/* Non-inline: common class families that hardcode gold */
[data-design-mode="editorial"] .text-gold,
[data-design-mode="editorial"] .text-accent,
[data-design-mode="editorial"] .text-primary-accent,
[data-design-mode="editorial"] .client-name-link,
[data-design-mode="editorial"] .client-link,
[data-design-mode="editorial"] .am-name,
[data-design-mode="editorial"] .client-name,
[data-design-mode="editorial"] .mrr-value,
[data-design-mode="editorial"] .client-list-mrr,
[data-design-mode="editorial"] a.client-link,
[data-design-mode="editorial"] a.manager-link {
  color: var(--ink) !important;
  font-weight: 500 !important;
}
[data-design-mode="editorial"] a.client-link:hover,
[data-design-mode="editorial"] a.manager-link:hover {
  color: var(--ink) !important;
  text-decoration: underline !important;
  text-decoration-color: var(--accent) !important;
  text-underline-offset: 3px;
  text-decoration-thickness: 2px;
}

/* 15.2 DASHBOARD — TRIAL CONVERSION INNER TILES
   .dash-v2 .stat-item is a dark 12px-radius tile. Override. */
[data-design-mode="editorial"] .dash-v2 .stat-item,
[data-design-mode="editorial"] .dash-v2 .stat-item.clickable {
  background: var(--paper) !important;
  border: 1px solid var(--rule) !important;
  border-radius: 2px !important;
  color: var(--ink) !important;
}
[data-design-mode="editorial"] .dash-v2 .stat-item.clickable:hover {
  background: var(--paper-2) !important;
  border-color: var(--ink) !important;
  box-shadow: none !important;
}
[data-design-mode="editorial"] .dash-v2 .stat-item.clickable::after { display: none !important; }
[data-design-mode="editorial"] .dash-v2 .stat-item.highlight {
  background: var(--paper) !important;
  border-left: 2px solid var(--accent) !important;
}
[data-design-mode="editorial"] .dash-v2 .stat-num {
  font-family: var(--serif) !important;
  color: var(--ink) !important;
  font-size: 1.4rem !important;
  font-weight: 500 !important;
  font-variant-numeric: tabular-nums;
}
[data-design-mode="editorial"] .dash-v2 .stat-num.positive { color: var(--up) !important; }
[data-design-mode="editorial"] .dash-v2 .stat-num.negative { color: var(--down) !important; }
[data-design-mode="editorial"] .dash-v2 .stat-num.warning  { color: var(--accent-dk) !important; }
[data-design-mode="editorial"] .dash-v2 .stat-desc,
[data-design-mode="editorial"] .dash-v2 .stats-summary,
[data-design-mode="editorial"] .dash-v2 .stats-label {
  color: var(--ink-3) !important;
  font-family: var(--mono) !important;
  font-size: 0.66rem !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
}

/* 15.3 DASHBOARD — EMPTY-STATE CARDS
   At-Risk / Top Performers / Recent Churns / Over Budget all render
   .empty-state when empty. Currently black-on-dashed-black. */
[data-design-mode="editorial"] .dash-v2 .empty-state,
[data-design-mode="editorial"] .dash-v2 .pipeline-empty-state {
  background: var(--paper-2) !important;
  border: 1px dashed var(--rule) !important;
  border-radius: 2px !important;
  color: var(--ink-3) !important;
  padding: 28px 20px !important;
  font-family: var(--serif) !important;
  font-style: italic !important;
  font-size: 0.95rem !important;
}
[data-design-mode="editorial"] .dash-v2 .empty-state.success-state {
  color: var(--up) !important;
  border-color: var(--up-soft) !important;
  background: var(--up-soft) !important;
}
[data-design-mode="editorial"] .dash-v2 .pipeline-empty-state .empty-message {
  color: var(--ink-2) !important;
  font-weight: 500;
}
[data-design-mode="editorial"] .dash-v2 .pipeline-empty-state .empty-detail,
[data-design-mode="editorial"] .dash-v2 .pipeline-empty-state .empty-latest {
  color: var(--ink-3) !important;
}

/* 15.4 DASHBOARD — FILTER DROPDOWNS + BADGES
   "All Industries" / "All Countries" / "All Managers" / "USD" — form-select
   inside .dash-v2. Force paper + ink. */
[data-design-mode="editorial"] .dash-v2 .form-select,
[data-design-mode="editorial"] .dash-v2 select {
  background-color: var(--paper) !important;
  border: 1px solid var(--rule) !important;
  color: var(--ink) !important;
  font-family: var(--mono) !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.06em !important;
  padding: 8px 30px 8px 12px !important;
  border-radius: 2px !important;
}
[data-design-mode="editorial"] .dash-v2 .form-select option,
[data-design-mode="editorial"] .dash-v2 select option,
[data-design-mode="editorial"] .dash-v2 .retention-month-select option {
  background: var(--paper) !important;
  color: var(--ink) !important;
}
[data-design-mode="editorial"] .dash-v2 .dv2-badge {
  background: var(--paper-2) !important;
  color: var(--ink-3) !important;
  border: 1px solid var(--rule) !important;
  font-family: var(--mono) !important;
  font-size: 0.65rem !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  padding: 2px 8px !important;
  border-radius: 999px !important;
}

/* 15.5 DASHBOARD — ACCOUNT MANAGER WORKLOAD TABLE
   Currently yellow links + pastel health chips on cream. Make readable. */
[data-design-mode="editorial"] .dash-v2 table a,
[data-design-mode="editorial"] .dash-v2 table .am-link {
  color: var(--ink) !important;
  font-weight: 500 !important;
  text-decoration: none;
}
[data-design-mode="editorial"] .dash-v2 table a:hover {
  text-decoration: underline !important;
  text-decoration-color: var(--accent) !important;
  text-underline-offset: 3px;
  text-decoration-thickness: 2px;
}

/* 15.6 CLIENTS FILTER BAR (clients/index.html)
   Completely black strip with rgba-white text. */
[data-design-mode="editorial"] .clients-filter-bar {
  background: var(--paper-2) !important;
  border: 1px solid var(--rule) !important;
  border-radius: 2px !important;
  color: var(--ink) !important;
}
[data-design-mode="editorial"] .clients-filter-bar .clients-filter-label {
  color: var(--ink-3) !important;
  font-family: var(--mono) !important;
  font-size: 0.68rem !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
}
[data-design-mode="editorial"] .clients-filter-bar .clients-filter-input,
[data-design-mode="editorial"] .clients-filter-bar .clients-filter-select,
[data-design-mode="editorial"] .am-filters-panel .clients-filter-input,
[data-design-mode="editorial"] .am-filters-panel .clients-filter-select,
[data-design-mode="editorial"] .am-filters .form-control,
[data-design-mode="editorial"] .am-filters .form-select,
[data-design-mode="editorial"] .clients-filter-bar input,
[data-design-mode="editorial"] .clients-filter-bar select {
  background: var(--paper) !important;
  border: 1px solid var(--rule) !important;
  border-radius: 2px !important;
  color: var(--ink) !important;
  font-size: 0.85rem !important;
  padding: 7px 12px !important;
}
[data-design-mode="editorial"] .clients-filter-bar .clients-filter-input:focus,
[data-design-mode="editorial"] .clients-filter-bar .clients-filter-select:focus {
  border-color: var(--ink) !important;
  box-shadow: 0 0 0 2px rgba(244,225,74,0.35) !important;
}
[data-design-mode="editorial"] .am-filters-toggle {
  background: var(--paper) !important;
  color: var(--ink-2) !important;
  border: 1px solid var(--rule) !important;
  font-family: var(--mono) !important;
  font-size: 0.72rem !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}
[data-design-mode="editorial"] .am-filters-toggle:hover {
  border-color: var(--ink) !important;
  color: var(--ink) !important;
}
[data-design-mode="editorial"] .am-filters-toggle .filter-count {
  background: var(--accent) !important;
  color: var(--accent-ink) !important;
}

/* Custom pagination in clients/index.html */
[data-design-mode="editorial"] .pagination .page-link {
  background: var(--paper) !important;
  border: 1px solid var(--rule) !important;
  border-radius: 2px !important;
  color: var(--ink-2) !important;
}
[data-design-mode="editorial"] .pagination .page-item.active .page-link {
  background: var(--ink) !important;
  border-color: var(--ink) !important;
  color: var(--paper) !important;
}
[data-design-mode="editorial"] .pagination .page-link:hover {
  background: var(--paper-2) !important;
  color: var(--ink) !important;
  border-color: var(--ink) !important;
}

/* Clients filter-select option lists — legacy hardcodes black bg */
[data-design-mode="editorial"] .clients-filter-select option,
[data-design-mode="editorial"] .score-select option {
  background: var(--paper) !important;
  color: var(--ink) !important;
}

/* 15.7 CLIENTS TABLE — row text + stage pills
   Client name cells + MRR values currently render as gold links. */
[data-design-mode="editorial"] .am-clients-table td,
[data-design-mode="editorial"] .am-clients-table th,
[data-design-mode="editorial"] .clients-table td,
[data-design-mode="editorial"] .clients-table th {
  color: var(--ink) !important;
}
[data-design-mode="editorial"] .am-clients-table td a,
[data-design-mode="editorial"] .clients-table td a {
  color: var(--ink) !important;
  font-weight: 500 !important;
}
[data-design-mode="editorial"] .badge-stage,
[data-design-mode="editorial"] .stage-pill {
  background: var(--paper-2) !important;
  color: var(--ink-2) !important;
  border: 1px solid var(--rule) !important;
  border-radius: 2px !important;
  font-family: var(--mono) !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}
/* The All Clients table renders pills as <span class="stage-pill trial">,
   .ascended, .mrr, .paused, .churned — paint each variant on its own. */
[data-design-mode="editorial"] .stage-pill.trial { background: var(--accent-soft) !important; color: var(--ink) !important; border-color: var(--accent) !important; }
[data-design-mode="editorial"] .stage-pill.ascended { background: var(--paper-2) !important; color: var(--ink) !important; border-color: var(--rule) !important; }
[data-design-mode="editorial"] .stage-pill.mrr { background: var(--paper) !important; color: var(--ink) !important; border-color: var(--ink-3) !important; }
[data-design-mode="editorial"] .stage-pill.paused { background: var(--paper-2) !important; color: var(--ink-3) !important; border-color: var(--rule) !important; }
[data-design-mode="editorial"] .stage-pill.churned { background: var(--down-soft) !important; color: var(--down) !important; border-color: var(--down) !important; }
[data-design-mode="editorial"] .badge-stage.stage-ascended,
[data-design-mode="editorial"] .stage-pill.stage-ascended { background: var(--up-soft) !important; color: var(--up) !important; border-color: var(--up-soft) !important; }
[data-design-mode="editorial"] .badge-stage.stage-mrr,
[data-design-mode="editorial"] .stage-pill.stage-mrr { background: var(--accent-soft) !important; color: var(--ink) !important; border-color: var(--accent) !important; }
[data-design-mode="editorial"] .badge-stage.stage-churned,
[data-design-mode="editorial"] .stage-pill.stage-churned { background: var(--down-soft) !important; color: var(--down) !important; border-color: var(--down-soft) !important; }

/* 15.8 TABS — .opt-tab, .cb-tab, .cm-tab all use gold-on-dark
   Replace with ink-on-paper + accent underline */
[data-design-mode="editorial"] .opt-tab,
[data-design-mode="editorial"] .cb-tab,
[data-design-mode="editorial"] .cm-tab,
[data-design-mode="editorial"] .data-tab {
  color: var(--ink-3) !important;
  background: transparent !important;
  font-family: var(--mono) !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
  border-radius: 2px !important;
}
[data-design-mode="editorial"] .opt-tab:hover,
[data-design-mode="editorial"] .cb-tab:hover,
[data-design-mode="editorial"] .cm-tab:hover,
[data-design-mode="editorial"] .data-tab:hover {
  color: var(--ink) !important;
  background: var(--paper-2) !important;
}
[data-design-mode="editorial"] .opt-tab.active,
[data-design-mode="editorial"] .cb-tab.active,
[data-design-mode="editorial"] .cm-tab.active,
[data-design-mode="editorial"] .data-tab.active {
  color: var(--ink) !important;
  background: transparent !important;
  border-bottom: 2px solid var(--accent) !important;
}
[data-design-mode="editorial"] .cm-tabs,
[data-design-mode="editorial"] .data-tabs-nav {
  background: var(--paper-2) !important;
  border: 1px solid var(--rule) !important;
  border-radius: 2px !important;
}

/* 15.9 DROPDOWN / NAV HOVER STATES — make visible
   Currently many links hover to yellow-on-cream (invisible). Force
   a clear contrast shift: darker ink + paper-2 bg OR accent underline. */
[data-design-mode="editorial"] .dropdown-menu a:hover,
[data-design-mode="editorial"] .dropdown-item:hover {
  background: var(--paper-2) !important;
  color: var(--ink) !important;
  text-decoration: none !important;
}
[data-design-mode="editorial"] .nav-link:hover {
  color: var(--ink) !important;
}
[data-design-mode="editorial"] .sidebar-link:hover,
[data-design-mode="editorial"] .sidebar a:hover {
  background: var(--paper-2) !important;
  color: var(--ink) !important;
  text-decoration: none !important;
}
[data-design-mode="editorial"] .sidebar-link:focus-visible,
[data-design-mode="editorial"] .sidebar a:focus-visible {
  outline: 2px solid var(--accent) !important;
  outline-offset: -2px;
}
[data-design-mode="editorial"] a:not(.btn):not(.badge):not(.pill):not(.ed-pill):hover {
  color: var(--ink) !important;
}

/* 15.10 CLIENT BRAIN SCORECARD HERO TILES (client detail page)
   "Health / Results / MRR / LTV / Time With Us / Last Contact" — currently
   pastel on pastel with colored numbers. Lift contrast. */
[data-design-mode="editorial"] .scorecard-hero-grid > *,
[data-design-mode="editorial"] .hero-scorecard > *,
[data-design-mode="editorial"] .client-scorecard-tile,
[data-design-mode="editorial"] .cc-kpi-tile,
[data-design-mode="editorial"] .cb-hero-tile {
  background: var(--paper) !important;
  border: 1px solid var(--rule) !important;
  border-radius: 2px !important;
  box-shadow: 0 1px 2px rgba(10,10,10,.03), 0 6px 18px rgba(10,10,10,.04) !important;
}
[data-design-mode="editorial"] .cc-kpi-tile .cc-kpi-value,
[data-design-mode="editorial"] .cb-hero-tile .hero-value,
[data-design-mode="editorial"] .scorecard-hero-grid .hero-value {
  font-family: var(--serif) !important;
  color: var(--ink) !important;
  font-weight: 500 !important;
}

/* Health indicator text overrides — more saturated semantic colors on
   paper (pastels get lost on cream). */
[data-design-mode="editorial"] .health-thriving,
[data-design-mode="editorial"] .status-thriving,
[data-design-mode="editorial"] .text-thriving { color: var(--up) !important; font-weight: 600 !important; }
[data-design-mode="editorial"] .health-on-target,
[data-design-mode="editorial"] .status-on-target,
[data-design-mode="editorial"] .text-on-target { color: var(--ink) !important; font-weight: 600 !important; }
[data-design-mode="editorial"] .health-struggling,
[data-design-mode="editorial"] .status-struggling { color: var(--accent-dk) !important; font-weight: 600 !important; }
[data-design-mode="editorial"] .health-critical,
[data-design-mode="editorial"] .status-critical,
[data-design-mode="editorial"] .text-critical { color: var(--down) !important; font-weight: 600 !important; }

/* 15.11 CLIENT DASHBOARD .dv2-sec KEY METRICS PANELS
   "New MRR / Churn / LTV / Health / etc" tiles on the secondary row. */
[data-design-mode="editorial"] .dash-v2 .dv2-sec {
  background: var(--paper) !important;
  border: 1px solid var(--rule) !important;
  border-radius: 2px !important;
  color: var(--ink) !important;
  padding: 20px !important;
  box-shadow: 0 1px 2px rgba(10,10,10,.03), 0 6px 18px rgba(10,10,10,.04) !important;
}
[data-design-mode="editorial"] .dash-v2 .dv2-sec::after { display: none !important; }
[data-design-mode="editorial"] .dash-v2 .dv2-sec__head { border-bottom: 1px solid var(--rule) !important; padding-bottom: 8px; margin-bottom: 10px; }
[data-design-mode="editorial"] .dash-v2 .dv2-sec__value {
  font-family: var(--serif) !important;
  color: var(--ink) !important;
  font-size: 1.8rem !important;
  font-weight: 500 !important;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.015em !important;
}
[data-design-mode="editorial"] .dash-v2 .dv2-sec__detail,
[data-design-mode="editorial"] .dash-v2 .dv2-sec__sub {
  color: var(--ink-3) !important;
  font-family: var(--mono) !important;
  font-size: 0.72rem !important;
  letter-spacing: 0.08em !important;
}

/* 15.12 GLOBAL FALLBACK — RGBA WHITE TEXT
   Any element inside editorial mode that inherited rgba(255,255,255,X)
   via base.html NEXUS overrides gets a floor contrast. */
[data-design-mode="editorial"] *[style*="rgba(255,255,255"],
[data-design-mode="editorial"] *[style*="rgba(255, 255, 255"] {
  /* Can't override inline styles by matching substring — but we CAN
     force specific KNOWN-problematic classes. The blanket selector
     above is documentary. Real fixes below. */
}

/* Hero card titles on company dashboard — .dv2-header-sub uppercase
   subtitle was showing as faded rgba */
[data-design-mode="editorial"] .dash-v2 .dv2-header-sub,
[data-design-mode="editorial"] .dash-v2 .dv2-section-title,
[data-design-mode="editorial"] .dash-v2 .section-title {
  color: var(--ink-3) !important;
  font-family: var(--mono) !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
}

/* §EDITORIAL-2026-04-30: service chip readability fix.
   .cm-chip default is var(--accent-ghost) bg + var(--accent) text — in
   editorial that becomes pale yellow on translucent yellow over cream
   paper, which Ben flagged as "impossible to read". Override to ink
   text with a hairline border; the chip reads as content, not as an
   accent flourish. */
[data-design-mode="editorial"] .cm-chip {
  background: color-mix(in srgb, var(--ink-strong) 5%, transparent) !important;
  color: var(--ink-strong) !important;
  border: 1px solid color-mix(in srgb, var(--ink-strong) 18%, transparent) !important;
  font-weight: 500 !important;
}

/* §2026-04-30: collapsible <details>/<summary> caret. Native marker is
   suppressed on the .cm-collapsible__summary element via inline
   list-style:none. The chevron icon inside flips 90° when the details
   element is open. Works in both Nexus + editorial modes (canonical
   tokens only). */
.cm-collapsible > summary::-webkit-details-marker { display: none; }
.cm-collapsible > summary::marker { content: ''; }
.cm-collapsible[open] > summary .cm-collapsible__caret {
  transform: rotate(90deg);
}

/* §EDITORIAL-2026-04-29: yellow highlight + serif H2 pattern from FORGE.
   .yh wraps a single word in a yellow box (italic outside the span,
   highlight inside). .dv2-h2 promotes a section heading from the small
   mono uppercase eyebrow to a proper editorial serif H2 — applied as a
   second class alongside .dv2-section-title so Nexus mode keeps the
   eyebrow look while editorial mode upgrades to FORGE-style display.
   Mirrors mark.yh / sectionhead patterns in c:/Users/Ben/forge/frontend/
   src/app/globals.css (lines 741-746 + h2 typography). */
[data-design-mode="editorial"] .yh,
[data-design-mode="editorial"] mark.yh {
  background: var(--accent) !important;
  color: var(--accent-ink, #0a0a0a) !important;
  padding: 0 6px !important;
  border-radius: 2px !important;
}
[data-design-mode="editorial"] .dash-v2 .dv2-h2 {
  font-family: var(--serif) !important;
  font-size: 28px !important;
  font-weight: 500 !important;
  letter-spacing: -0.01em !important;
  text-transform: none !important;
  color: var(--ink) !important;
  line-height: 1.2 !important;
  margin-bottom: 16px !important;
}
[data-design-mode="editorial"] .dash-v2 .dv2-h2 em {
  font-style: italic;
  font-weight: 500;
}

/* 15.13 NX-COLLAPSIBLE + SECTION TOGGLES
   The "Key Metrics" collapsible button has a chevron with rgba color. */
[data-design-mode="editorial"] .nx-collapse-toggle {
  color: var(--ink) !important;
  background: transparent !important;
  border: none !important;
}
[data-design-mode="editorial"] .nx-collapse-toggle i,
[data-design-mode="editorial"] .nx-collapse-toggle .bi-chevron-down,
[data-design-mode="editorial"] .nx-collapse-toggle .bi-chevron-up {
  color: var(--ink-3) !important;
}

/* 15.14 BOOTSTRAP TEXT UTILITIES THAT MAP TO GOLD
   .text-warning is often used for "highlight" text — on paper it needs
   a darker hue than the raw accent yellow. Use accent-dk. */
[data-design-mode="editorial"] .text-warning { color: var(--accent-dk) !important; font-weight: 500; }
[data-design-mode="editorial"] .text-primary { color: var(--ink) !important; }
[data-design-mode="editorial"] .text-gold,
[data-design-mode="editorial"] .text-yellow { color: var(--accent-dk) !important; font-weight: 500; }

/* ─────────────────────────────────────────────────────────────────────────
   16. PASS 4 — DEEP SCAN COVERAGE
       Fixes from the 2026-04-22 three-agent audit:
         A. Custom table classes (keyword-table, ga4-table, gsc-table,
            workspace-table, cc-table, company-dashboard .am-table)
         B. Results V2 scoped namespace (.results-v2 .*)
         C. Content Engine scoped namespace (.ce-*)
         D. Heading classes not forced to Newsreader
         E. Navigation + focus + pseudo-element fixes
         F. Inline <style>-block class targets
   ───────────────────────────────────────────────────────────────────────── */


/* 16-A  CUSTOM TABLE CLASSES (keyword research tab + cousins) ================ */

[data-design-mode="editorial"] .keyword-table,
[data-design-mode="editorial"] .organic-table,
[data-design-mode="editorial"] .tracking-table,
[data-design-mode="editorial"] .ga4-table,
[data-design-mode="editorial"] .gsc-table,
[data-design-mode="editorial"] .cc-table,
[data-design-mode="editorial"] .workspace-table,
[data-design-mode="editorial"] .cm-table,
[data-design-mode="editorial"] .company-dashboard .am-table,
[data-design-mode="editorial"] .am-table {
  background: var(--paper) !important;
  color: var(--ink) !important;
  border-color: var(--rule) !important;
}

[data-design-mode="editorial"] .keyword-table thead th,
[data-design-mode="editorial"] .organic-table thead th,
[data-design-mode="editorial"] .tracking-table thead th,
[data-design-mode="editorial"] .ga4-table thead th,
[data-design-mode="editorial"] .gsc-table thead th,
[data-design-mode="editorial"] .cc-table thead th,
[data-design-mode="editorial"] .workspace-table thead th,
[data-design-mode="editorial"] .cm-table thead th,
[data-design-mode="editorial"] .company-dashboard .am-table thead th,
[data-design-mode="editorial"] .am-table thead th {
  background: var(--paper-2) !important;
  color: var(--ink-3) !important;
  font-family: var(--mono) !important;
  font-size: 0.68rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  border-bottom: 1.5px solid var(--ink) !important;
  padding: 0.7rem 0.9rem !important;
}

[data-design-mode="editorial"] .keyword-table tbody td,
[data-design-mode="editorial"] .organic-table tbody td,
[data-design-mode="editorial"] .tracking-table tbody td,
[data-design-mode="editorial"] .ga4-table tbody td,
[data-design-mode="editorial"] .gsc-table tbody td,
[data-design-mode="editorial"] .cc-table tbody td,
[data-design-mode="editorial"] .workspace-table tbody td,
[data-design-mode="editorial"] .cm-table tbody td,
[data-design-mode="editorial"] .company-dashboard .am-table tbody td,
[data-design-mode="editorial"] .am-table tbody td {
  background: transparent !important;
  color: var(--ink-2) !important;
  border-bottom: 1px solid var(--rule) !important;
  padding: 0.7rem 0.9rem !important;
  font-variant-numeric: tabular-nums;
}

[data-design-mode="editorial"] .keyword-table tbody tr:hover td,
[data-design-mode="editorial"] .organic-table tbody tr:hover td,
[data-design-mode="editorial"] .tracking-table tbody tr:hover td,
[data-design-mode="editorial"] .ga4-table tbody tr:hover td,
[data-design-mode="editorial"] .gsc-table tbody tr:hover td,
[data-design-mode="editorial"] .cc-table tbody tr:hover td,
[data-design-mode="editorial"] .workspace-table tbody tr:hover td,
[data-design-mode="editorial"] .cm-table tbody tr:hover td,
[data-design-mode="editorial"] .company-dashboard .am-table tbody tr:hover td,
[data-design-mode="editorial"] .am-table tbody tr:hover td {
  background: var(--paper-2) !important;
  color: var(--ink) !important;
}

/* Links inside table cells — always ink, accent-underline on hover */
[data-design-mode="editorial"] .keyword-table a,
[data-design-mode="editorial"] .organic-table a,
[data-design-mode="editorial"] .tracking-table a,
[data-design-mode="editorial"] .ga4-table a,
[data-design-mode="editorial"] .gsc-table a,
[data-design-mode="editorial"] .cc-table a,
[data-design-mode="editorial"] .workspace-table a,
[data-design-mode="editorial"] .am-table a {
  color: var(--ink) !important;
  font-weight: 500 !important;
}
[data-design-mode="editorial"] .keyword-table a:hover,
[data-design-mode="editorial"] .organic-table a:hover,
[data-design-mode="editorial"] .tracking-table a:hover,
[data-design-mode="editorial"] .ga4-table a:hover,
[data-design-mode="editorial"] .gsc-table a:hover,
[data-design-mode="editorial"] .cc-table a:hover,
[data-design-mode="editorial"] .workspace-table a:hover,
[data-design-mode="editorial"] .am-table a:hover {
  text-decoration: underline !important;
  text-decoration-color: var(--accent) !important;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}

/* Volume / KD / Score chips inside keyword-table cells. These are rendered
   as pill spans in the table body — force paper-2 bg, ink text, with
   semantic colors on directional variants. */
[data-design-mode="editorial"] .volume-chip,
[data-design-mode="editorial"] .kd-chip,
[data-design-mode="editorial"] .keyword-chip,
[data-design-mode="editorial"] .kw-volume,
[data-design-mode="editorial"] .kw-kd,
[data-design-mode="editorial"] .keyword-table .chip,
[data-design-mode="editorial"] .results-v2 .chip {
  background: var(--paper-2) !important;
  color: var(--ink) !important;
  border: 1px solid var(--rule) !important;
  font-family: var(--mono) !important;
  font-variant-numeric: tabular-nums !important;
  padding: 2px 8px !important;
  border-radius: 999px !important;
  font-weight: 500 !important;
}

/* Score-badge / health-badge — health-3 amber was invisible (yellow text
   on 4% yellow bg). Remap to semantic soft backgrounds. */
[data-design-mode="editorial"] .score-badge,
[data-design-mode="editorial"] .health-badge,
[data-design-mode="editorial"] .company-dashboard .am-table .score-badge {
  font-family: var(--mono) !important;
  font-weight: 500 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  border: 1px solid var(--rule) !important;
  padding: 2px 8px !important;
  border-radius: 999px !important;
}
[data-design-mode="editorial"] .score-badge.health-4,
[data-design-mode="editorial"] .health-badge.health-4 {
  background: var(--up-soft) !important; color: var(--up) !important; border-color: var(--up-soft) !important;
}
[data-design-mode="editorial"] .score-badge.health-3,
[data-design-mode="editorial"] .health-badge.health-3 {
  background: var(--accent-soft) !important; color: var(--accent-dk) !important; border-color: var(--accent) !important;
}
[data-design-mode="editorial"] .score-badge.health-2,
[data-design-mode="editorial"] .health-badge.health-2 {
  background: var(--accent-soft) !important; color: var(--accent-dk) !important; border-color: var(--accent-dk) !important;
}
[data-design-mode="editorial"] .score-badge.health-1,
[data-design-mode="editorial"] .health-badge.health-1 {
  background: var(--down-soft) !important; color: var(--down) !important; border-color: var(--down-soft) !important;
}

/* Widget-header chrome (the "All Organic Keywords" / "Tracked Keywords"
   panel header above each table). */
[data-design-mode="editorial"] .widget-header,
[data-design-mode="editorial"] .results-v2 .widget-header {
  background: var(--paper) !important;
  border-bottom: 1px solid var(--rule) !important;
  color: var(--ink) !important;
  padding: 12px 16px !important;
}
[data-design-mode="editorial"] .widget-title,
[data-design-mode="editorial"] .results-v2 .widget-title {
  font-family: var(--serif) !important;
  font-weight: 500 !important;
  color: var(--ink) !important;
  font-size: 1rem !important;
  letter-spacing: -0.015em !important;
}
[data-design-mode="editorial"] .widget-subtitle,
[data-design-mode="editorial"] .results-v2 .widget-subtitle {
  color: var(--ink-3) !important;
  font-family: var(--mono) !important;
  font-size: 0.72rem !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
}

/* Section-divider rail ("GENERAL KEYWORDS" / "LOCATION KEYWORDS" bars). */
[data-design-mode="editorial"] .section-divider {
  margin: 1.5rem 0 1rem !important;
}
[data-design-mode="editorial"] .results-v2 .section-title,
[data-design-mode="editorial"] .section-title.section-title-line {
  font-family: var(--mono) !important;
  font-weight: 500 !important;
  font-size: 0.75rem !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--ink-3) !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
}
[data-design-mode="editorial"] .results-v2 .section-title::before,
[data-design-mode="editorial"] .section-title.section-title-line::before {
  content: "" !important;
  display: inline-block !important;
  width: 18px !important;
  height: 2px !important;
  background: var(--accent) !important;
}
[data-design-mode="editorial"] .results-v2 .section-line,
[data-design-mode="editorial"] .section-line {
  background: linear-gradient(to right, var(--rule), transparent) !important;
  height: 1px !important;
}

/* Sticky header inline style — templates use style="background: var(--bg-0)"
   on <thead class="sticky-top">. Editorial needs paper-2 for contrast. */
[data-design-mode="editorial"] thead.sticky-top {
  background: var(--paper-2) !important;
}


/* 16-B  RESULTS V2 NAMESPACE ================================================ */

[data-design-mode="editorial"] .results-v2 {
  /* Re-redefine the scoped --rp-* tokens (pass 2 set these, but a few
     descendant classes hardcode values — these make it deterministic). */
  --rp-bg:         var(--paper) !important;
  --rp-card:       var(--paper) !important;
  --rp-header:     var(--paper) !important;
  --rp-border:     var(--rule) !important;
  --rp-text-dark:  var(--ink) !important;
  --rp-text-muted: var(--ink-3) !important;
  --rp-yellow:     var(--accent) !important;
  --rp-yellow-dk:  var(--accent-dk) !important;
  background: var(--paper) !important;
  color: var(--ink) !important;
}

[data-design-mode="editorial"] .results-v2 .hero-section {
  background: var(--paper) !important;
  border: 1px solid var(--rule) !important;
  border-radius: 2px !important;
  padding: 20px !important;
  box-shadow: 0 1px 2px rgba(10,10,10,.03), 0 6px 18px rgba(10,10,10,.04) !important;
}
[data-design-mode="editorial"] .results-v2 .hero-metric {
  background: var(--paper-2) !important;
  border: 1px solid var(--rule) !important;
  border-radius: 2px !important;
}
[data-design-mode="editorial"] .results-v2 .hero-metric-icon {
  background: var(--paper) !important;
  border: 1px solid var(--rule) !important;
  color: var(--ink-2) !important;
  border-radius: 2px !important;
}
[data-design-mode="editorial"] .results-v2 .hero-metric-icon i {
  color: var(--ink-2) !important;
}
[data-design-mode="editorial"] .results-v2 .hero-metric-value,
[data-design-mode="editorial"] .results-v2 .v2-kpi-value,
[data-design-mode="editorial"] .results-v2 .kpi-value {
  font-family: var(--serif) !important;
  color: var(--ink) !important;
  font-weight: 500 !important;
  font-variant-numeric: tabular-nums !important;
  letter-spacing: -0.02em !important;
}
[data-design-mode="editorial"] .results-v2 .hero-metric-label,
[data-design-mode="editorial"] .results-v2 .v2-kpi-label,
[data-design-mode="editorial"] .results-v2 .kpi-label {
  color: var(--ink-3) !important;
  font-family: var(--mono) !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
}
[data-design-mode="editorial"] .results-v2 .v2-kpi-tile,
[data-design-mode="editorial"] .results-v2 .kpi-tile {
  background: var(--paper) !important;
  border: 1px solid var(--rule) !important;
  border-radius: 2px !important;
  box-shadow: 0 1px 2px rgba(10,10,10,.03), 0 6px 18px rgba(10,10,10,.04) !important;
}

/* Position badges in results-v2 — keep directional semantics but
   enforce contrast. Top-3 gets accent (hero), others use soft variants. */
[data-design-mode="editorial"] .results-v2 .position-top3 {
  background: var(--accent) !important; color: var(--accent-ink) !important; border-color: var(--accent) !important;
}
[data-design-mode="editorial"] .results-v2 .position-top10 {
  background: var(--up-soft) !important; color: var(--up) !important; border-color: var(--up-soft) !important;
}
[data-design-mode="editorial"] .results-v2 .position-top20 {
  background: var(--paper-2) !important; color: var(--ink) !important; border-color: var(--rule) !important;
}
[data-design-mode="editorial"] .results-v2 .position-top50 {
  background: var(--paper-2) !important; color: var(--ink-3) !important; border-color: var(--rule) !important;
}

/* SERP features chips inside keyword-research cells */
[data-design-mode="editorial"] .results-v2 .serp-features,
[data-design-mode="editorial"] .results-v2 .serp-feature-chip {
  background: var(--paper-2) !important;
  color: var(--ink-2) !important;
  border: 1px solid var(--rule) !important;
  font-family: var(--mono) !important;
  font-size: 0.65rem !important;
  letter-spacing: 0.06em !important;
}


/* 16-C  CONTENT ENGINE NAMESPACE (.ce-*) ==================================== */

/* Remap the Content Engine scoped tokens at every .ce-* root so every
   descendant auto-inherits editorial colors. */
[data-design-mode="editorial"] .ce-dashboard,
[data-design-mode="editorial"] [class*="ce-"]:not(.btn):not(.badge) {
  --ce-bg:     var(--paper);
  --ce-card:   var(--paper);
  --ce-dim:    var(--ink-3);
  --ce-text:   var(--ink);
  --ce-border: var(--rule);
  --opt-yellow: var(--accent);
}

[data-design-mode="editorial"] .ce-dashboard,
[data-design-mode="editorial"] .ce-page,
[data-design-mode="editorial"] .ce-container {
  background: var(--paper) !important;
  color: var(--ink) !important;
}
[data-design-mode="editorial"] .ce-header {
  background: var(--paper) !important;
  border-bottom: 1px solid var(--rule) !important;
  color: var(--ink) !important;
  padding: 18px 20px !important;
}
[data-design-mode="editorial"] .ce-header h1,
[data-design-mode="editorial"] .ce-header h2,
[data-design-mode="editorial"] .ce-title {
  font-family: var(--serif) !important;
  font-weight: 500 !important;
  color: var(--ink) !important;
  letter-spacing: -0.025em !important;
}
[data-design-mode="editorial"] .ce-tab {
  color: var(--ink-3) !important;
  background: transparent !important;
  font-family: var(--mono) !important;
  font-size: 0.78rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  border-bottom: 2px solid transparent !important;
  padding: 0.7rem 1rem !important;
}
[data-design-mode="editorial"] .ce-tab:hover {
  color: var(--ink) !important;
  background: var(--paper-2) !important;
}
[data-design-mode="editorial"] .ce-tab.active {
  color: var(--ink) !important;
  background: transparent !important;
  border-bottom-color: var(--accent) !important;
}
[data-design-mode="editorial"] .ce-card,
[data-design-mode="editorial"] .ce-panel {
  background: var(--paper) !important;
  border: 1px solid var(--rule) !important;
  border-radius: 2px !important;
  color: var(--ink) !important;
  box-shadow: 0 1px 2px rgba(10,10,10,.03), 0 6px 18px rgba(10,10,10,.04) !important;
}
[data-design-mode="editorial"] .ce-stat-value,
[data-design-mode="editorial"] .ce-kpi-value,
[data-design-mode="editorial"] .ce-big-num {
  font-family: var(--serif) !important;
  color: var(--ink) !important;
  font-weight: 500 !important;
  font-variant-numeric: tabular-nums !important;
}
[data-design-mode="editorial"] .ce-stat-label,
[data-design-mode="editorial"] .ce-kpi-label {
  font-family: var(--mono) !important;
  color: var(--ink-3) !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
}
[data-design-mode="editorial"] .ce-status-chip {
  font-family: var(--mono) !important;
  font-size: 0.65rem !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  padding: 2px 8px !important;
  border-radius: 999px !important;
  border: 1px solid var(--rule) !important;
}
[data-design-mode="editorial"] .ce-status-chip.idle,
[data-design-mode="editorial"] .ce-status-chip.off {
  background: var(--paper-2) !important; color: var(--ink-3) !important;
}
[data-design-mode="editorial"] .ce-status-chip.running,
[data-design-mode="editorial"] .ce-status-chip.on {
  background: var(--up-soft) !important; color: var(--up) !important; border-color: var(--up-soft) !important;
}
[data-design-mode="editorial"] .ce-status-chip.error,
[data-design-mode="editorial"] .ce-status-chip.failed {
  background: var(--down-soft) !important; color: var(--down) !important; border-color: var(--down-soft) !important;
}


/* 16-D  HEADING COVERAGE GAPS =============================================== */

[data-design-mode="editorial"] .page-header,
[data-design-mode="editorial"] .page-header h1,
[data-design-mode="editorial"] .page-header h2,
[data-design-mode="editorial"] .page-header h3,
[data-design-mode="editorial"] .page-title,
[data-design-mode="editorial"] .page-title-branded,
[data-design-mode="editorial"] .section-title,
[data-design-mode="editorial"] .section-header h5,
[data-design-mode="editorial"] .section-header h4,
[data-design-mode="editorial"] .cb-sidebar-header,
[data-design-mode="editorial"] .cb-sidebar-header h1,
[data-design-mode="editorial"] .cb-sidebar-header h2,
[data-design-mode="editorial"] .cb-section-title,
[data-design-mode="editorial"] .cb-title,
[data-design-mode="editorial"] .client-title,
[data-design-mode="editorial"] .client-name-big,
[data-design-mode="editorial"] .workspace-title,
[data-design-mode="editorial"] .workspace-heading,
[data-design-mode="editorial"] .hero-title,
[data-design-mode="editorial"] .client-hero-title,
[data-design-mode="editorial"] .ga4-hero-title,
[data-design-mode="editorial"] .gsc-hero-title,
[data-design-mode="editorial"] .topbar-section-label {
  font-family: var(--serif) !important;
  font-weight: 500 !important;
  color: var(--ink) !important;
  letter-spacing: -0.02em !important;
}
[data-design-mode="editorial"] .page-header h2 i,
[data-design-mode="editorial"] .page-title i,
[data-design-mode="editorial"] .section-title i {
  color: var(--ink-3) !important;
}


/* 16-E  NAV + FOCUS + PSEUDO-ELEMENTS ======================================= */

/* Workspace tabs — gold border-bottom on active was invisible. */
[data-design-mode="editorial"] .workspace-tab {
  color: var(--ink-3) !important;
  background: transparent !important;
  border-bottom: 2px solid transparent !important;
}
[data-design-mode="editorial"] .workspace-tab:hover {
  background: var(--paper-2) !important;
  color: var(--ink) !important;
}
[data-design-mode="editorial"] .workspace-tab.active {
  color: var(--ink) !important;
  background: transparent !important;
  border-bottom-color: var(--accent) !important;
}

/* Data tabs — ::after pseudo-element used a hardcoded yellow gradient. */
[data-design-mode="editorial"] .data-tab.active::after,
[data-design-mode="editorial"] .data-tabs-nav .data-tab.active::after {
  background: var(--accent) !important;
  background-image: none !important;
}

/* Global focus-visible outline — legacy = #f0e050 (invisible on cream).
   Force accent + offset for keyboard-visible focus state. */
[data-design-mode="editorial"] :focus-visible {
  outline: 2px solid var(--accent) !important;
  outline-offset: 2px !important;
  border-radius: 2px;
}
[data-design-mode="editorial"] .btn:focus-visible,
[data-design-mode="editorial"] .form-control:focus-visible,
[data-design-mode="editorial"] .form-select:focus-visible {
  outline: 2px solid var(--accent) !important;
  outline-offset: 1px !important;
}

/* Sidebar user menu — legacy hover uses --bg-hover which maps wrong. */
[data-design-mode="editorial"] .sidebar-user-menu,
[data-design-mode="editorial"] .sidebar-user-menu-item {
  background: var(--paper) !important;
  color: var(--ink) !important;
  border-color: var(--rule) !important;
}
[data-design-mode="editorial"] .sidebar-user-menu-item:hover {
  background: var(--paper-2) !important;
  color: var(--ink) !important;
}
[data-design-mode="editorial"] .sidebar-user-menu-item.active,
[data-design-mode="editorial"] .sidebar-user-menu-item:active {
  background: var(--ink) !important;
  color: var(--paper) !important;
}

/* Topbar action buttons — currently no hover state change. */
[data-design-mode="editorial"] .topbar-actions .btn:hover,
[data-design-mode="editorial"] .topbar-actions .notification-bell-btn:hover {
  border-color: var(--ink) !important;
  background: var(--paper-2) !important;
  color: var(--ink) !important;
}

/* Topbar toggle / sidebar collapse button */
[data-design-mode="editorial"] .topbar-toggle,
[data-design-mode="editorial"] .sidebar-collapse-btn,
[data-design-mode="editorial"] .sidebar-toggle {
  background: transparent !important;
  color: var(--ink-2) !important;
  border: 1px solid transparent !important;
}
[data-design-mode="editorial"] .topbar-toggle:hover,
[data-design-mode="editorial"] .sidebar-collapse-btn:hover,
[data-design-mode="editorial"] .sidebar-toggle:hover {
  background: var(--paper-2) !important;
  color: var(--ink) !important;
  border-color: var(--rule) !important;
}

/* NX accent bar decoration — used for page-level headers with a
   distinctive gold stripe. Normalise to editorial accent. */
[data-design-mode="editorial"] .nx-accent-bar,
[data-design-mode="editorial"] .nx-accent-bar::before,
[data-design-mode="editorial"] .page-header::after,
[data-design-mode="editorial"] .cb-sidebar-header::after {
  background: var(--accent) !important;
}


/* 16-F  INLINE <STYLE>-BLOCK CLASS TARGETS ================================== */

/* Deliverables V3 stage pills — inline <style> block declares these in
   the client-dashboard template with color:#f0e050. Force ink-on-accent
   semantics. */
[data-design-mode="editorial"] .dlv3-stage-pill-current {
  background: var(--accent) !important;
  color: var(--accent-ink) !important;
  border-color: var(--accent) !important;
}
[data-design-mode="editorial"] .dlv3-stage-pill {
  background: var(--paper-2) !important;
  color: var(--ink-3) !important;
  border: 1px solid var(--rule) !important;
  font-family: var(--mono) !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  font-size: 0.65rem !important;
}
[data-design-mode="editorial"] .dlv3-stage-pill.done {
  background: var(--up-soft) !important; color: var(--up) !important; border-color: var(--up-soft) !important;
}

/* Client Brain state classes */
[data-design-mode="editorial"] .cb-client-item-active {
  background: var(--paper-2) !important;
  color: var(--ink) !important;
  border-left: 3px solid var(--accent) !important;
}
[data-design-mode="editorial"] .cb-engine-on {
  background: var(--up-soft) !important; color: var(--up) !important; border-color: var(--up-soft) !important;
}
[data-design-mode="editorial"] .cb-engine-off {
  background: var(--paper-2) !important; color: var(--ink-3) !important; border-color: var(--rule) !important;
}

/* Content Map nav items */
[data-design-mode="editorial"] .cm-nav-item {
  color: var(--ink-2) !important;
  background: transparent !important;
}
[data-design-mode="editorial"] .cm-nav-item:hover {
  background: var(--paper-2) !important;
  color: var(--ink) !important;
}
[data-design-mode="editorial"] .cm-nav-item.active {
  background: var(--ink) !important;
  color: var(--paper) !important;
}

/* Generic keyword row helpers */
[data-design-mode="editorial"] .kb-keyword-row,
[data-design-mode="editorial"] .kw-row {
  color: var(--ink) !important;
  border-bottom: 1px solid var(--rule) !important;
}
[data-design-mode="editorial"] .kb-kw-name,
[data-design-mode="editorial"] .kw-name {
  color: var(--ink) !important;
  font-weight: 500 !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   17. PASS 5 — NUCLEAR OVERHAUL
   ───────────────────────────────────────────────────────────────────────────
   Previous passes played whack-a-mole with individual classes. This pass
   works at the FIVE points of maximum leverage:

     A. Remap every scoped CSS token (--cm-*, --ce-*, --rp-*, --nx-*,
        --font-display) at the :root editorial level so every downstream
        consumer inherits editorial values WITHOUT us having to target
        each class individually.

     B. Universal class-pattern matchers — [class*="title"] → serif,
        [class*="label"] → mono, etc. — so new/unknown classes are
        automatically covered.

     C. Attribute-selector inline-style catchers — [style*="color:#f"]
        → ink, [style*="background:#0"] → paper. Catches hardcoded
        colors inside template HTML that no class-based rule can reach.

     D. rgba(255,255,255,X) text floor — any element with low-alpha
        white text (legacy "muted" pattern) floors to ink-3 contrast
        so nothing disappears on cream.

     E. Content Map (.cm-*) explicit namespace fixes — the page Ben
        just screenshotted (Topical Silos) with Bethany serif + yellow
        headings + invisible grey labels.
   ═══════════════════════════════════════════════════════════════════════════ */


/* 17-A  TOKEN REMAP AT ROOT — kills Bethany + every scoped namespace ======== */

html[data-design-mode="editorial"] {
  /* The big one: --font-display is declared ONCE in style.css:116 as
     'Bethany Elingston', Georgia, serif. Every downstream consumer
     (.cm-silo-pillar, page titles, hero numbers, modal titles) reads
     var(--font-display). Redefining it here kills Bethany everywhere
     in editorial mode without class-by-class enumeration. */
  --font-display: "Newsreader", ui-serif, Georgia, serif !important;
  --font-heading: "Newsreader", ui-serif, Georgia, serif !important;
  --font-body: "Inter", -apple-system, system-ui, sans-serif !important;

  /* Content Map namespace (--cm-*) — Topical Silos, Content Engine,
     Command Center pages all consume these. */
  --cm-bg:             #fbfaf6 !important;
  --cm-surface:        #fbfaf6 !important;
  --cm-border:         #d9d4c4 !important;
  --cm-border-strong:  #0a0a0a !important;
  --cm-text:           #0a0a0a !important;
  --cm-text-dim:       #5d5d5a !important;
  --cm-yellow:         #f4e14a !important;
  --cm-yellow-dim:     #e4cc00 !important;
  --cm-blue:           #0a0a0a !important;
  --cm-green:          #1f7a3a !important;
  --cm-red:            #b42318 !important;
  --cm-mono:           "JetBrains Mono", monospace !important;

  /* Content Engine namespace (--ce-*) — backstop to Block C above */
  --ce-bg:             #fbfaf6 !important;
  --ce-surface:        #fbfaf6 !important;
  --ce-card:           #fbfaf6 !important;
  --ce-border:         #d9d4c4 !important;
  --ce-text:           #0a0a0a !important;
  --ce-dim:            #5d5d5a !important;

  /* NX / OPT namespaces — used in various partials */
  --nx-bg:             #fbfaf6 !important;
  --nx-surface:        #fbfaf6 !important;
  --nx-text:           #0a0a0a !important;
  --nx-text-dim:       #5d5d5a !important;
  --nx-border:         #d9d4c4 !important;
  --nx-yellow:         #f4e14a !important;

  --opt-black:         #fbfaf6 !important;  /* legacy "black bg" becomes paper */
  --opt-yellow:        #f4e14a !important;
  --opt-yellow-dim:    #e4cc00 !important;
  --opt-yellow-dark:   #e4cc00 !important;
  --opt-text:          #0a0a0a !important;
  --opt-border:        #d9d4c4 !important;

  /* Client Brain / Results namespaces */
  --cb-bg:             #fbfaf6 !important;
  --cb-surface:        #fbfaf6 !important;
  --cb-border:         #d9d4c4 !important;
  --cb-text:           #0a0a0a !important;
  --cb-dim:            #5d5d5a !important;
  --cb-text-dim:       #5d5d5a !important;  /* used by .cb-field-label etc. */
  --cb-text-muted:     #2a2a2a !important;  /* used by .cb-engine-step-label */
  --cb-green:          #1f7a3a !important;  /* used by commands + progress */
  --cb-red:            #b42318 !important;  /* used by blocked state */
  --cb-yellow:         #f4e14a !important;  /* used by accent-hover rare */
  --cb-accent:         #f4e14a !important;

  /* Status tokens — redefine at editorial level so they stop inheriting
     yellow from [data-theme="dark"] in style.css. Before pass 9 every
     .cb-tag, .cb-badge-published etc. rendered yellow-on-cream because
     --success etc. inherited #f0e050 from dark mode. */
  --success:     #1f7a3a !important;
  --success-bg:  rgba(31,122,58,0.10) !important;
  --warning:     #c78a26 !important;
  --warning-bg:  rgba(199,138,38,0.10) !important;
  --danger:      #b42318 !important;
  --danger-bg:   rgba(180,35,24,0.10) !important;
  --info:        #3b5c8a !important;
  --info-bg:     rgba(59,92,138,0.10) !important;

  /* Nx palette — used by sparklines, status dots, legacy Nexus widgets.
     Dark mode had --nx-green=#8bc34a (lime) and --nx-red=#e06060 (coral).
     Editorial uses the directional palette instead. */
  --nx-green:    #1f7a3a !important;
  --nx-red:      #b42318 !important;
  --nx-amber:    #c78a26 !important;
  --nx-teal:     #0a0a0a !important;
  --nx-gold:     #f4e14a !important;
  --nx-blue:     #3b5c8a !important;

  /* Bootstrap 5 token floor — so any unstyled card/input on any page
     inherits editorial colors even before our explicit rules fire. */
  --bs-body-bg:        #fbfaf6 !important;
  --bs-body-color:     #0a0a0a !important;
  --bs-border-color:   #d9d4c4 !important;
  --bs-form-control-bg: #fbfaf6 !important;
  --bs-emphasis-color: #0a0a0a !important;
  --bs-secondary-color: #5d5d5a !important;
  --bs-tertiary-color:  #8a8882 !important;
}


/* 17-B  UNIVERSAL CLASS-PATTERN MATCHERS ==================================== */

/* Every class containing "title", "heading", "pillar", "hero-name",
   "page-name" gets Newsreader serif. Covers classes we don't know about. */
[data-design-mode="editorial"] [class*="title"]:not(.modal-title-icon):not(.tooltip-inner),
[data-design-mode="editorial"] [class*="heading"],
[data-design-mode="editorial"] [class*="pillar"],
[data-design-mode="editorial"] [class*="-name-big"],
[data-design-mode="editorial"] [class*="hero-title"],
[data-design-mode="editorial"] [class*="page-title"],
[data-design-mode="editorial"] [class*="display-"],
[data-design-mode="editorial"] [class*="masthead"] {
  font-family: var(--serif) !important;
  color: var(--ink) !important;
  font-weight: 500 !important;
  letter-spacing: -0.015em !important;
}

/* Any class containing "label", "eyebrow", "kicker", "meta-line",
   "subhead" gets mono small-caps. */
[data-design-mode="editorial"] [class*="eyebrow"],
[data-design-mode="editorial"] [class*="kicker"],
[data-design-mode="editorial"] [class*="meta-line"],
[data-design-mode="editorial"] [class*="section-label"],
[data-design-mode="editorial"] [class*="section-title-label"] {
  font-family: var(--mono) !important;
  font-size: 0.7rem !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--ink-3) !important;
  font-weight: 500 !important;
}

/* Any "value" / "big-num" / "display-number" class gets serif tabular-nums */
[data-design-mode="editorial"] [class*="hero-value"],
[data-design-mode="editorial"] [class*="kpi-value"],
[data-design-mode="editorial"] [class*="stat-value"],
[data-design-mode="editorial"] [class*="metric-value"],
[data-design-mode="editorial"] [class*="big-num"],
[data-design-mode="editorial"] [class*="display-num"],
[data-design-mode="editorial"] [class*="-value-big"] {
  font-family: var(--serif) !important;
  font-variant-numeric: tabular-nums !important;
  font-weight: 500 !important;
  color: var(--ink) !important;
  letter-spacing: -0.02em !important;
}


/* 17-C  ATTRIBUTE-SELECTOR INLINE-STYLE CATCHERS ============================ */

/* Any inline style whose color starts with #f, #e (gold/amber/warm yellow
   hexes that are invisible on cream) OR rgba(240,... (the OPT gold) gets
   forced to ink. Covers countless template <style> blocks + inline
   style attributes we can't enumerate. */
[data-design-mode="editorial"] [style*="color:#f0e050"],
[data-design-mode="editorial"] [style*="color: #f0e050"],
[data-design-mode="editorial"] [style*="color:#f0e0"],
[data-design-mode="editorial"] [style*="color: #f0e0"],
[data-design-mode="editorial"] [style*="color:#f4e14a"],
[data-design-mode="editorial"] [style*="color: #f4e14a"],
[data-design-mode="editorial"] [style*="color:rgba(240,224,80"],
[data-design-mode="editorial"] [style*="color: rgba(240,224,80"],
[data-design-mode="editorial"] [style*="color:rgba(240, 224, 80"],
[data-design-mode="editorial"] [style*="color: rgba(240, 224, 80"],
[data-design-mode="editorial"] [style*="color:var(--cm-yellow"],
[data-design-mode="editorial"] [style*="color: var(--cm-yellow"],
[data-design-mode="editorial"] [style*="color:var(--opt-yellow"],
[data-design-mode="editorial"] [style*="color: var(--opt-yellow"] {
  color: var(--ink) !important;
}

/* Any inline style whose color is near-white/translucent-white (legacy
   muted text on dark bg pattern) becomes ink-3 for readable contrast
   on cream. */
[data-design-mode="editorial"] [style*="color:rgba(255,255,255"],
[data-design-mode="editorial"] [style*="color: rgba(255,255,255"],
[data-design-mode="editorial"] [style*="color:rgba(255, 255, 255"],
[data-design-mode="editorial"] [style*="color: rgba(255, 255, 255"],
[data-design-mode="editorial"] [style*="color:#fff"],
[data-design-mode="editorial"] [style*="color: #fff"],
[data-design-mode="editorial"] [style*="color:#FFF"],
[data-design-mode="editorial"] [style*="color: #FFF"] {
  color: var(--ink-2) !important;
}

/* Dark backgrounds via inline style → paper-2. */
[data-design-mode="editorial"] [style*="background:#0"],
[data-design-mode="editorial"] [style*="background: #0"],
[data-design-mode="editorial"] [style*="background:#1"],
[data-design-mode="editorial"] [style*="background: #1"],
[data-design-mode="editorial"] [style*="background:#2"],
[data-design-mode="editorial"] [style*="background: #2"],
[data-design-mode="editorial"] [style*="background-color:#0"],
[data-design-mode="editorial"] [style*="background-color: #0"],
[data-design-mode="editorial"] [style*="background:rgba(0,0,0"],
[data-design-mode="editorial"] [style*="background: rgba(0,0,0"],
[data-design-mode="editorial"] [style*="background-color:rgba(0,0,0"],
[data-design-mode="editorial"] [style*="background-color: rgba(0,0,0"] {
  background: var(--paper-2) !important;
}

/* Subtle white-on-white inline backgrounds (rgba(255,255,255,0.04)
   etc.) → paper. */
[data-design-mode="editorial"] [style*="background:rgba(255,255,255,0"],
[data-design-mode="editorial"] [style*="background: rgba(255,255,255,0"],
[data-design-mode="editorial"] [style*="background:rgba(255, 255, 255, 0"],
[data-design-mode="editorial"] [style*="background: rgba(255, 255, 255, 0"],
[data-design-mode="editorial"] [style*="background-color:rgba(255,255,255,0"] {
  background: var(--paper) !important;
}

/* Gold gradients (rgba(240,224,80,...) radial / linear) → flat paper. */
[data-design-mode="editorial"] [style*="rgba(240,224,80"],
[data-design-mode="editorial"] [style*="rgba(240, 224, 80"] {
  background-image: none !important;
  box-shadow: none !important;
}

/* Any inline font-family with "Bethany" → Newsreader. */
[data-design-mode="editorial"] [style*="Bethany"],
[data-design-mode="editorial"] [style*="'Bethany"] {
  font-family: var(--serif) !important;
}


/* 17-D  CONTENT MAP (.cm-*) FULL COVERAGE — the Topical Silos page =========== */

/* Silo cards — replace yellow gradient with clean paper card. */
[data-design-mode="editorial"] .cm-silo-card,
[data-design-mode="editorial"] .cm-stat-card,
[data-design-mode="editorial"] .cm-info-card,
[data-design-mode="editorial"] .cm-kw-card,
[data-design-mode="editorial"] .cm-matrix-wrap,
[data-design-mode="editorial"] .cm-health,
[data-design-mode="editorial"] .cm-panel,
[data-design-mode="editorial"] .cm-card {
  background: var(--paper) !important;
  background-image: none !important;
  border: 1px solid var(--rule) !important;
  border-radius: 2px !important;
  box-shadow: 0 1px 2px rgba(10,10,10,.03), 0 6px 18px rgba(10,10,10,.04) !important;
  color: var(--ink) !important;
}
[data-design-mode="editorial"] .cm-silo-card::after,
[data-design-mode="editorial"] .cm-stat-card::after,
[data-design-mode="editorial"] .cm-info-card::after,
[data-design-mode="editorial"] .cm-health::after,
[data-design-mode="editorial"] .cm-matrix-wrap::after,
[data-design-mode="editorial"] .cm-kw-card::after { display: none !important; }
[data-design-mode="editorial"] .cm-silo-card:hover,
[data-design-mode="editorial"] .cm-stat-card:hover,
[data-design-mode="editorial"] .cm-info-card:hover,
[data-design-mode="editorial"] .cm-kw-card:hover {
  transform: none !important;
  border-color: var(--ink) !important;
  box-shadow: 0 1px 2px rgba(10,10,10,.04), 0 8px 24px rgba(10,10,10,.06) !important;
}

/* Silo pillar title — was Bethany gold. */
[data-design-mode="editorial"] .cm-silo-pillar {
  font-family: var(--serif) !important;
  font-weight: 500 !important;
  color: var(--ink) !important;
  font-size: 1.15rem !important;
  letter-spacing: -0.015em !important;
  padding-bottom: 0.5rem !important;
  margin-bottom: 0.75rem !important;
  border-bottom: 1px solid var(--rule) !important;
}

/* Silo section label (SUPPORTING etc.) — was rgba(255,255,255,0.45) */
[data-design-mode="editorial"] .cm-silo-section-label {
  color: var(--ink-3) !important;
  font-family: var(--mono) !important;
  font-size: 0.65rem !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
}

/* Silo item — keyword rows. */
[data-design-mode="editorial"] .cm-silo-item {
  color: var(--ink-2) !important;
  font-family: var(--sans) !important;
  font-size: 0.82rem !important;
  padding: 3px 0 3px 14px !important;
}
[data-design-mode="editorial"] .cm-silo-item.secondary {
  color: var(--ink-3) !important;
}
[data-design-mode="editorial"] .cm-silo-item::before {
  background: var(--ink) !important;
  width: 4px !important;
  height: 4px !important;
}
[data-design-mode="editorial"] .cm-silo-item.secondary::before {
  background: var(--ink-3) !important;
}

/* Content-map tabs are covered in Block A of pass 3, but re-assert. */
[data-design-mode="editorial"] .cm-tab {
  color: var(--ink-3) !important;
  background: transparent !important;
  font-family: var(--mono) !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
}
[data-design-mode="editorial"] .cm-tab:hover {
  color: var(--ink) !important;
  background: var(--paper-2) !important;
}
[data-design-mode="editorial"] .cm-tab.active {
  color: var(--ink) !important;
  background: var(--paper) !important;
  border-bottom: 2px solid var(--accent) !important;
}
[data-design-mode="editorial"] .cm-tabs {
  background: var(--paper-2) !important;
  border: 1px solid var(--rule) !important;
  border-radius: 2px !important;
}

/* Content-map tables + rows */
[data-design-mode="editorial"] .cm-table {
  background: var(--paper) !important;
  color: var(--ink) !important;
}
[data-design-mode="editorial"] .cm-table th {
  background: var(--paper-2) !important;
  color: var(--ink-3) !important;
  font-family: var(--mono) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  font-size: 0.7rem !important;
  border-bottom: 1.5px solid var(--ink) !important;
}
[data-design-mode="editorial"] .cm-table td {
  color: var(--ink-2) !important;
  border-bottom: 1px solid var(--rule) !important;
}
[data-design-mode="editorial"] .cm-table tbody tr:hover td {
  background: var(--paper-2) !important;
  color: var(--ink) !important;
}

/* Content-map buttons */
[data-design-mode="editorial"] .cm-btn,
[data-design-mode="editorial"] .cm-extend-btn {
  background: var(--paper) !important;
  color: var(--ink) !important;
  border: 1px solid var(--rule) !important;
  font-family: var(--mono) !important;
  font-size: 0.75rem !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}
[data-design-mode="editorial"] .cm-btn:hover,
[data-design-mode="editorial"] .cm-extend-btn:hover {
  border-color: var(--ink) !important;
  background: var(--paper-2) !important;
}
[data-design-mode="editorial"] .cm-btn.primary,
[data-design-mode="editorial"] .cm-extend-btn.primary {
  background: var(--ink) !important;
  color: var(--paper) !important;
  border-color: var(--ink) !important;
}

/* Content-map empty/loading states */
[data-design-mode="editorial"] .cm-empty,
[data-design-mode="editorial"] .cm-loading {
  color: var(--ink-3) !important;
  font-family: var(--serif) !important;
  font-style: italic !important;
}
[data-design-mode="editorial"] .cm-loading .spinner {
  border-color: var(--rule) !important;
  border-top-color: var(--accent) !important;
}

/* Content-map generic text that inherited rgba-white */
[data-design-mode="editorial"] .cm-tab-content,
[data-design-mode="editorial"] .cm-panel-body,
[data-design-mode="editorial"] .cm-card-body {
  color: var(--ink) !important;
}


/* 17-E  CONTRAST FLOOR — any "dim / muted" legacy class === INK-3, not gray-white ==== */

/* These classes are meant to be secondary on dark bg. On cream they
   need to be ink-3 (readable) rather than rgba(255,255,255,0.4). */
[data-design-mode="editorial"] .dim,
[data-design-mode="editorial"] .muted,
[data-design-mode="editorial"] .text-dim,
[data-design-mode="editorial"] [class$="-dim"],
[data-design-mode="editorial"] [class$="-muted"],
[data-design-mode="editorial"] [class*="text-secondary"],
[data-design-mode="editorial"] [class*="text-tertiary"] {
  color: var(--ink-3) !important;
}

/* Subtle borders that used rgba(255,255,255,.03-.1) — use rule hairline */
[data-design-mode="editorial"] [style*="border-color:rgba(255,255,255,0"],
[data-design-mode="editorial"] [style*="border-color: rgba(255,255,255,0"],
[data-design-mode="editorial"] [style*="border:1px solid rgba(255,255,255,0"],
[data-design-mode="editorial"] [style*="border: 1px solid rgba(255,255,255,0"] {
  border-color: var(--rule) !important;
}


/* 17-F  FINAL BELT-AND-SUSPENDERS ==========================================
   If a page slips through every previous pass, make sure the page-level
   body still renders readable. Last-resort floor. */

[data-design-mode="editorial"] .app-main > * { color: var(--ink); }

/* Known-problem hardcoded yellow decorations (e.g. yellow border-left
   accents on silo cards, yellow left-bars on active items) — keep the
   accent shape but normalise to our --accent hex (some use #f0e050
   directly which doesn't match our --accent palette). */
[data-design-mode="editorial"] [style*="border-left:3px solid #f0e050"],
[data-design-mode="editorial"] [style*="border-left: 3px solid #f0e050"],
[data-design-mode="editorial"] [style*="border-left-color:#f0e050"],
[data-design-mode="editorial"] [style*="border-left-color: #f0e050"] {
  border-left-color: var(--accent) !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   § 18. UNIVERSAL TAB NAV COVERAGE (Pass 6)
   ─────────────────────────────────────────────────────────────────────
   Ben confirmed the tab styling on Client Brain (SCORECARD / TASKS /
   OVERVIEW / KEYWORD RESEARCH etc.) is the target aesthetic. Extending
   that same treatment to every tab-like control in the app so the nav
   is visually consistent across pages:

   - Client Brain        .cb-tab / .cb-tabs / .data-tab (covered in §15.8)
   - Content Map         .cm-tab / .cm-tabs / .cm-site-tab / .cm-site-tabs
   - Content Engine      .ce-tab / .ce-tabs
   - Admin               .opt-tab / .opt-tabs
   - Bot Registry        .br-status-tab / .br-status-tabs
   - GMB                 .gmb-tab / .gmb-tabs / .gmb-tab-btn
   - Integrations        .int-tab / .int-tabs
   - Link Orders         .lo-tab-btn / .lo-tabs / .lo-tab-bar
   - Geo Change          .geo-tab-btn
   - Client Sync         .cs-tab / .cs-tabs
   - Communications      .comms-channel-tab
   - Results/Movers      .semrush-report-tab / .movers-tabs
   - Finance/Settings    .finance-tabs .nav-link / .settings-tabs .nav-link
   - Weekly view         .week-tab-btn
   - Generic             .tab-btn / .tab-nav / .workspace-tab / .workspace-tabs

   Pattern: mono UPPERCASE 0.08em tracking, ink-3 default, ink hover,
   ink + 2px accent border-bottom on active, flat (no rounded corners).
   ═══════════════════════════════════════════════════════════════════ */

[data-design-mode="editorial"] .br-status-tab,
[data-design-mode="editorial"] .gmb-tab,
[data-design-mode="editorial"] .int-tab,
[data-design-mode="editorial"] .lo-tab-btn,
[data-design-mode="editorial"] .geo-tab-btn,
[data-design-mode="editorial"] .cs-tab,
[data-design-mode="editorial"] .comms-channel-tab,
[data-design-mode="editorial"] .tab-btn,
[data-design-mode="editorial"] .ce-tab,
[data-design-mode="editorial"] .cm-site-tab,
[data-design-mode="editorial"] .workspace-tab,
[data-design-mode="editorial"] .semrush-report-tab,
[data-design-mode="editorial"] .week-tab-btn,
[data-design-mode="editorial"] .gmb-tab-btn,
[data-design-mode="editorial"] .nav-tabs .nav-link,
[data-design-mode="editorial"] .finance-tabs .nav-link,
[data-design-mode="editorial"] .settings-tabs .nav-link,
[data-design-mode="editorial"] .movers-tabs .nav-link,
[data-design-mode="editorial"] .results-tabs .nav-link {
  color: var(--ink-3) !important;
  background: transparent !important;
  border: 0 !important;
  border-bottom: 2px solid transparent !important;
  border-radius: 0 !important;
  font-family: var(--mono) !important;
  font-size: 0.72rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  padding: 10px 14px !important;
  text-decoration: none !important;
  transition: color 0.12s, border-color 0.12s, background 0.12s !important;
}

[data-design-mode="editorial"] .br-status-tab:hover,
[data-design-mode="editorial"] .gmb-tab:hover,
[data-design-mode="editorial"] .int-tab:hover,
[data-design-mode="editorial"] .lo-tab-btn:hover,
[data-design-mode="editorial"] .geo-tab-btn:hover,
[data-design-mode="editorial"] .cs-tab:hover,
[data-design-mode="editorial"] .comms-channel-tab:hover,
[data-design-mode="editorial"] .tab-btn:hover,
[data-design-mode="editorial"] .ce-tab:hover,
[data-design-mode="editorial"] .cm-site-tab:hover,
[data-design-mode="editorial"] .workspace-tab:hover,
[data-design-mode="editorial"] .semrush-report-tab:hover,
[data-design-mode="editorial"] .week-tab-btn:hover,
[data-design-mode="editorial"] .gmb-tab-btn:hover,
[data-design-mode="editorial"] .nav-tabs .nav-link:hover,
[data-design-mode="editorial"] .finance-tabs .nav-link:hover,
[data-design-mode="editorial"] .settings-tabs .nav-link:hover,
[data-design-mode="editorial"] .movers-tabs .nav-link:hover {
  color: var(--ink) !important;
  background: transparent !important;
  border-bottom-color: var(--rule) !important;
}

[data-design-mode="editorial"] .br-status-tab.active,
[data-design-mode="editorial"] .gmb-tab.active,
[data-design-mode="editorial"] .gmb-tab.is-active,
[data-design-mode="editorial"] .int-tab.active,
[data-design-mode="editorial"] .lo-tab-btn.active,
[data-design-mode="editorial"] .geo-tab-btn.active,
[data-design-mode="editorial"] .cs-tab.active,
[data-design-mode="editorial"] .comms-channel-tab.active,
[data-design-mode="editorial"] .tab-btn.active,
[data-design-mode="editorial"] .ce-tab.active,
[data-design-mode="editorial"] .cm-site-tab.active,
[data-design-mode="editorial"] .workspace-tab.active,
[data-design-mode="editorial"] .semrush-report-tab.active,
[data-design-mode="editorial"] .week-tab-btn.active,
[data-design-mode="editorial"] .gmb-tab-btn.active,
[data-design-mode="editorial"] .nav-tabs .nav-link.active,
[data-design-mode="editorial"] .finance-tabs .nav-link.active,
[data-design-mode="editorial"] .settings-tabs .nav-link.active,
[data-design-mode="editorial"] .movers-tabs .nav-link.active,
[data-design-mode="editorial"] .results-tabs .nav-link.active {
  color: var(--ink) !important;
  background: transparent !important;
  border-bottom: 2px solid var(--accent) !important;
  font-weight: 600 !important;
}

/* Tab containers — flat, hairline bottom border, no gold glow */
[data-design-mode="editorial"] .br-status-tabs,
[data-design-mode="editorial"] .gmb-tabs,
[data-design-mode="editorial"] .int-tabs,
[data-design-mode="editorial"] .lo-tabs,
[data-design-mode="editorial"] .lo-tab-bar,
[data-design-mode="editorial"] .cs-tabs,
[data-design-mode="editorial"] .ce-tabs,
[data-design-mode="editorial"] .cm-site-tabs,
[data-design-mode="editorial"] .opt-tabs,
[data-design-mode="editorial"] .results-tabs,
[data-design-mode="editorial"] .tab-nav,
[data-design-mode="editorial"] .nav-tabs {
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid var(--rule) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  gap: 4px !important;
  padding: 0 !important;
}

/* Tab counts (pill-style count indicators on tabs, e.g. "ACTIVE (24)") */
[data-design-mode="editorial"] .br-status-tab-count,
[data-design-mode="editorial"] .gmb-tab-count,
[data-design-mode="editorial"] .int-tab-count,
[data-design-mode="editorial"] .lo-tab-count,
[data-design-mode="editorial"] .geo-tab-count,
[data-design-mode="editorial"] .cs-tab-pill,
[data-design-mode="editorial"] .ce-tab-count,
[data-design-mode="editorial"] .cm-tab-count {
  font-family: var(--mono) !important;
  font-size: 0.65rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.04em !important;
  padding: 2px 6px !important;
  border-radius: 999px !important;
  background: var(--paper-2) !important;
  color: var(--ink-3) !important;
  margin-left: 6px !important;
  font-variant-numeric: tabular-nums !important;
}
[data-design-mode="editorial"] .br-status-tab.active .br-status-tab-count,
[data-design-mode="editorial"] .gmb-tab.active .gmb-tab-count,
[data-design-mode="editorial"] .int-tab.active .int-tab-count,
[data-design-mode="editorial"] .lo-tab-btn.active .lo-tab-count,
[data-design-mode="editorial"] .ce-tab.active .ce-tab-count {
  background: var(--ink) !important;
  color: var(--paper) !important;
}

/* GMB tab extras — city + name sub-lines */
[data-design-mode="editorial"] .gmb-tab-city,
[data-design-mode="editorial"] .cs-tab-label {
  color: inherit !important;
  letter-spacing: inherit !important;
}
[data-design-mode="editorial"] .gmb-tab-name {
  font-family: var(--serif) !important;
  font-size: 0.78rem !important;
  font-style: italic !important;
  font-weight: 500 !important;
  letter-spacing: -0.005em !important;
  text-transform: none !important;
  color: var(--ink) !important;
}

/* Sheet/page tabs inside Client Brain engine panel */
[data-design-mode="editorial"] .cb-page-tab {
  color: var(--ink-3) !important;
  font-family: var(--mono) !important;
  font-size: 0.7rem !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  padding: 8px 12px !important;
  border-bottom: 2px solid transparent !important;
  background: transparent !important;
}
[data-design-mode="editorial"] .cb-page-tab:hover { color: var(--ink) !important; }
[data-design-mode="editorial"] .cb-page-tab.active {
  color: var(--ink) !important;
  border-bottom-color: var(--accent) !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   § 19. SIDEBAR NAV CONSISTENCY (Pass 6)
   ─────────────────────────────────────────────────────────────────────
   Left sidebar uses .sidebar-link + .sidebar-item + .sidebar-section-label.
   §6 covered .sidebar-link but missed several other sidebar elements.
   Fill the gaps so the sidebar matches the tab aesthetic.
   ═══════════════════════════════════════════════════════════════════ */

[data-design-mode="editorial"] .sidebar-header {
  background: var(--paper) !important;
  border-bottom: 1px solid var(--rule) !important;
  color: var(--ink) !important;
}

[data-design-mode="editorial"] .sidebar-logo {
  color: var(--ink) !important;
}

[data-design-mode="editorial"] .sidebar-section-label {
  font-family: var(--mono) !important;
  font-size: 0.62rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--ink-4) !important;
  padding: 10px 14px 6px !important;
  border-bottom: 1px solid var(--rule) !important;
  margin-bottom: 4px !important;
  background: transparent !important;
}

[data-design-mode="editorial"] .sidebar-section-toggle {
  color: var(--ink-3) !important;
  background: transparent !important;
}
[data-design-mode="editorial"] .sidebar-section-toggle:hover {
  color: var(--ink) !important;
  background: var(--paper-2) !important;
}
[data-design-mode="editorial"] .sidebar-section-chevron {
  color: var(--ink-4) !important;
}

[data-design-mode="editorial"] .sidebar-item {
  background: transparent !important;
}
[data-design-mode="editorial"] .sidebar-item-badge {
  background: var(--paper-2) !important;
  color: var(--ink-3) !important;
  font-family: var(--mono) !important;
  font-size: 0.6rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
  padding: 1px 6px !important;
  border-radius: 999px !important;
  font-variant-numeric: tabular-nums !important;
}
[data-design-mode="editorial"] .sidebar-item.active .sidebar-item-badge,
[data-design-mode="editorial"] .sidebar-link.active .sidebar-item-badge {
  background: var(--accent) !important;
  color: var(--accent-ink) !important;
}

[data-design-mode="editorial"] .sidebar-footer {
  background: var(--paper) !important;
  border-top: 1px solid var(--rule) !important;
  color: var(--ink-3) !important;
}
[data-design-mode="editorial"] .sidebar-footer a,
[data-design-mode="editorial"] .sidebar-footer .sidebar-user-menu-item {
  color: var(--ink-2) !important;
}
[data-design-mode="editorial"] .sidebar-footer a:hover,
[data-design-mode="editorial"] .sidebar-footer .sidebar-user-menu-item:hover {
  background: var(--paper-2) !important;
  color: var(--ink) !important;
}

[data-design-mode="editorial"] .sidebar-collapse-btn {
  color: var(--ink-3) !important;
  background: transparent !important;
  border: 1px solid var(--rule) !important;
}
[data-design-mode="editorial"] .sidebar-collapse-btn:hover {
  color: var(--ink) !important;
  background: var(--paper-2) !important;
  border-color: var(--ink-3) !important;
}

[data-design-mode="editorial"] .sidebar-folder-badge {
  background: var(--paper-2) !important;
  color: var(--ink-3) !important;
  border: 1px solid var(--rule) !important;
  font-family: var(--mono) !important;
  font-size: 0.6rem !important;
  letter-spacing: 0.06em !important;
}

/* Topbar — extended coverage */
[data-design-mode="editorial"] .topbar-actions button,
[data-design-mode="editorial"] .topbar-actions .btn {
  color: var(--ink-2) !important;
  background: transparent !important;
  border: 1px solid transparent !important;
}
[data-design-mode="editorial"] .topbar-actions button:hover,
[data-design-mode="editorial"] .topbar-actions .btn:hover {
  color: var(--ink) !important;
  background: var(--paper-2) !important;
  border-color: var(--rule) !important;
}

[data-design-mode="editorial"] .topbar-toggle {
  color: var(--ink-3) !important;
  background: transparent !important;
}
[data-design-mode="editorial"] .topbar-toggle:hover {
  color: var(--ink) !important;
  background: var(--paper-2) !important;
}

/* .topbar-search rules moved to app/static/css/topbar-search.css */

/* Ctrl+K chip / kbd hint */
[data-design-mode="editorial"] .topbar kbd,
[data-design-mode="editorial"] .kbd-hint {
  background: var(--paper-2) !important;
  border: 1px solid var(--rule) !important;
  color: var(--ink-3) !important;
  font-family: var(--mono) !important;
  font-size: 0.65rem !important;
  letter-spacing: 0.04em !important;
  padding: 2px 6px !important;
  border-radius: 2px !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   § 20. KEYWORD RESEARCH READABILITY (Pass 7)
   ─────────────────────────────────────────────────────────────────────
   Ben's screenshot showed the Client Brain → Keyword Research tab
   rendering keyword names, column headers, and pill counts as nearly
   invisible faint text on the cream-yellow card bg. Root cause: zero
   overlay coverage for .cm-kw-* inner classes — they relied on
   --cm-text cascading through, but the inline <style> block's
   specificity or the parent gradient was winning.

   Force ink + readable pill chrome on every .cm-kw-* element.
   ═══════════════════════════════════════════════════════════════════ */

/* Keyword column container — solid paper, clean border (reinforce §15) */
[data-design-mode="editorial"] .cm-kw-card {
  background: var(--paper) !important;
  background-image: none !important;
  border: 1px solid var(--rule) !important;
  border-radius: 2px !important;
  padding: 18px !important;
  box-shadow: none !important;
  color: var(--ink) !important;
  overflow-y: auto !important;
}

/* Column title ("General Keywords" / "Location Keywords") — mono eyebrow */
[data-design-mode="editorial"] .cm-kw-card h3 {
  font-family: var(--mono) !important;
  font-size: 0.7rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  color: var(--ink-3) !important;
  margin: 0 0 12px 0 !important;
  padding-bottom: 8px !important;
  border-bottom: 1px solid var(--ink) !important;
  opacity: 1 !important;
}

/* Sort header row (Keyword / Volume / KD) — mono UPPERCASE */
[data-design-mode="editorial"] .cm-kw-header {
  border-bottom: 1px solid var(--rule) !important;
  padding: 8px 0 !important;
  font-family: var(--mono) !important;
  font-size: 0.65rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--ink-3) !important;
  opacity: 1 !important;
}
[data-design-mode="editorial"] .cm-kw-header span {
  color: var(--ink-3) !important;
  opacity: 1 !important;
}
[data-design-mode="editorial"] .cm-kw-header span:hover {
  color: var(--ink) !important;
}

/* Keyword row — hairline separator, serif italic keyword cell for
   editorial "newspaper table" feel */
[data-design-mode="editorial"] .cm-kw-row {
  border-bottom: 1px solid var(--rule) !important;
  padding: 8px 0 !important;
  opacity: 1 !important;
  color: var(--ink) !important;
}
[data-design-mode="editorial"] .cm-kw-row:last-child {
  border-bottom: none !important;
}

/* Keyword name cell — SERIF ITALIC + INK, per OPT-DESIGN-SYSTEM.md
   "Table keyword cells: italic serif 10pt for the phrase itself". */
[data-design-mode="editorial"] .cm-kw-keyword {
  color: var(--ink) !important;
  font-family: var(--serif) !important;
  font-size: 0.875rem !important;
  font-style: italic !important;
  font-weight: 400 !important;
  letter-spacing: -0.005em !important;
  opacity: 1 !important;
}

/* Volume pill — was yellow-on-yellow (invisible). Use paper-2 bg with
   ink-2 text + mono tabular-nums. Keep accent tint to signal "volume". */
[data-design-mode="editorial"] .cm-kw-badge {
  font-family: var(--mono) !important;
  font-size: 0.68rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.02em !important;
  padding: 2px 8px !important;
  border-radius: 999px !important;
  text-align: center !important;
  font-variant-numeric: tabular-nums !important;
  opacity: 1 !important;
  border: 1px solid transparent !important;
}
[data-design-mode="editorial"] .cm-kw-vol {
  background: var(--accent-soft) !important;
  color: var(--ink) !important;
  border-color: var(--accent) !important;
}

/* KD (Keyword Difficulty) pills — directional colors, readable */
[data-design-mode="editorial"] .cm-kd-easy {
  background: var(--up-soft) !important;
  color: var(--up) !important;
  border-color: var(--up) !important;
}
[data-design-mode="editorial"] .cm-kd-med {
  background: var(--accent-soft) !important;
  color: var(--accent-dk) !important;
  border-color: var(--accent-dk) !important;
}
[data-design-mode="editorial"] .cm-kd-hard {
  background: var(--down-soft) !important;
  color: var(--down) !important;
  border-color: var(--down) !important;
}

/* Parent grid — no gradient, just 2-col flow with gap */
[data-design-mode="editorial"] .cm-kw-grid {
  gap: 24px !important;
  background: transparent !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   § 21. STAGGER-IN ANIMATION — editorial-mode entrance (Pass 9, 2026-04-27)
   ─────────────────────────────────────────────────────────────────────
   Earlier passes disabled stagger animations in editorial because the
   keyframes started at opacity:0 with `forwards` fill-mode, and if the
   animation got throttled (background tab, slow paint) the element
   could stick at 0. Ben asked for the animations to come back — page-
   load liveness — so we re-enable them defensively.

   Defenses against the original opacity:0 stick:
     1. `animation-fill-mode: both` so the element resolves to the
        keyframe `to` state (opacity:1) once the animation ends, even
        if interrupted mid-flight.
     2. Short total duration + small delay budget — even worst-case
        throttle resolves within ~1.0s.
     3. Reduced-motion override below: users with the OS preference
        get instant opacity:1 with no animation, no risk of stuck-at-0.
   ═══════════════════════════════════════════════════════════════════ */

[data-design-mode="editorial"] .nx-stagger-grid > * {
  opacity: 0;
  /* Reference the GLOBAL `nxFadeUp` keyframe (defined in style.css:305).
     The earlier value `nx-fade-up` only existed inside dashboard.html's
     inline <style> block, so on every other page using .nx-stagger-grid
     the animation never resolved — `opacity: 0` stuck and the page
     looked empty (Ben hit this on AM detail 2026-04-28). */
  animation: nxFadeUp 0.5s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}
[data-design-mode="editorial"] .nx-stagger-grid > *:nth-child(1) { animation-delay: 0.04s; }
[data-design-mode="editorial"] .nx-stagger-grid > *:nth-child(2) { animation-delay: 0.10s; }
[data-design-mode="editorial"] .nx-stagger-grid > *:nth-child(3) { animation-delay: 0.16s; }
[data-design-mode="editorial"] .nx-stagger-grid > *:nth-child(4) { animation-delay: 0.22s; }
[data-design-mode="editorial"] .nx-stagger-grid > *:nth-child(5) { animation-delay: 0.28s; }
[data-design-mode="editorial"] .nx-stagger-grid > *:nth-child(6) { animation-delay: 0.34s; }
[data-design-mode="editorial"] .nx-stagger-grid > *:nth-child(7) { animation-delay: 0.40s; }
[data-design-mode="editorial"] .nx-stagger-grid > *:nth-child(8) { animation-delay: 0.46s; }
[data-design-mode="editorial"] .nx-stagger-grid > *:nth-child(n+9) { animation-delay: 0.52s; }

[data-design-mode="editorial"] .nx-stagger > * {
  opacity: 0;
  /* Same fix as .nx-stagger-grid above — reference the global keyframe
     (style.css:305) so the animation resolves on every page, not just
     the dashboard. */
  animation: nxFadeUp 0.4s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}
[data-design-mode="editorial"] .nx-stagger > *:nth-child(1) { animation-delay: 0.03s; }
[data-design-mode="editorial"] .nx-stagger > *:nth-child(2) { animation-delay: 0.06s; }
[data-design-mode="editorial"] .nx-stagger > *:nth-child(3) { animation-delay: 0.09s; }
[data-design-mode="editorial"] .nx-stagger > *:nth-child(4) { animation-delay: 0.12s; }
[data-design-mode="editorial"] .nx-stagger > *:nth-child(5) { animation-delay: 0.15s; }
[data-design-mode="editorial"] .nx-stagger > *:nth-child(6) { animation-delay: 0.18s; }
[data-design-mode="editorial"] .nx-stagger > *:nth-child(7) { animation-delay: 0.21s; }
[data-design-mode="editorial"] .nx-stagger > *:nth-child(8) { animation-delay: 0.24s; }
[data-design-mode="editorial"] .nx-stagger > *:nth-child(n+9) { animation-delay: 0.27s; }

/* Single-element entrance helpers — drop the editorial disable, let
   the underlying nx-* keyframes run. Keep the safety floor below. */
[data-design-mode="editorial"] .nx-fade-up,
[data-design-mode="editorial"] .nx-scale-in,
[data-design-mode="editorial"] .nx-slide-down,
[data-design-mode="editorial"] .nx-fade-in {
  /* Inherits whatever animation the base CSS sets; just don't kill it. */
}

/* Reduced-motion: respect OS preference. Belt-and-braces against the
   stuck-at-opacity:0 risk that the original disable was guarding. */
@media (prefers-reduced-motion: reduce) {
  [data-design-mode="editorial"] .nx-stagger > *,
  [data-design-mode="editorial"] .nx-stagger-grid > *,
  [data-design-mode="editorial"] .nx-fade-up,
  [data-design-mode="editorial"] .nx-scale-in,
  [data-design-mode="editorial"] .nx-slide-down,
  [data-design-mode="editorial"] .nx-fade-in {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

/* ════════════════════════════════════════════════════════════════════════════
   § 22. FAINT-TEXT FLOOR (Pass 7)
   ─────────────────────────────────────────────────────────────────────
   Defensive: any child text inside .cm-kw-* must render at readable
   contrast. Opacity and faint rgba colors set inline are overridden.
   ═══════════════════════════════════════════════════════════════════ */

[data-design-mode="editorial"] .cm-kw-card *,
[data-design-mode="editorial"] .cm-kw-grid *,
[data-design-mode="editorial"] .cm-silo-card *,
[data-design-mode="editorial"] .cm-silo-grid * {
  opacity: 1 !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   § 23. TYPE-COLOR PILLS (Pass 8)
   ─────────────────────────────────────────────────────────────────────
   JS template strings in _content_brain.html / content_map.html use a
   `typeColors` object with hardcoded dark hex values for page-type
   badges: aux(#1B3A4B navy), service(#2D6A4F green), location(#7B2D8B
   purple), blog(#B45309 amber), fallback(#333 charcoal). These render
   as dark charcoal pills with white text on cream bg — unreadable.

   Force them to editorial pill chrome via attribute catchers.
   ═══════════════════════════════════════════════════════════════════ */

[data-design-mode="editorial"] span[style*="background:#1B3A4B"],
[data-design-mode="editorial"] span[style*="background: #1B3A4B"],
[data-design-mode="editorial"] [style*="background:#1B3A4B"] {
  background: var(--paper-2) !important;
  color: var(--ink) !important;
  border: 1px solid var(--rule) !important;
}
[data-design-mode="editorial"] span[style*="background:#2D6A4F"],
[data-design-mode="editorial"] span[style*="background: #2D6A4F"],
[data-design-mode="editorial"] [style*="background:#2D6A4F"] {
  background: var(--up-soft) !important;
  color: var(--up) !important;
  border: 1px solid var(--up) !important;
}
[data-design-mode="editorial"] span[style*="background:#7B2D8B"],
[data-design-mode="editorial"] span[style*="background: #7B2D8B"],
[data-design-mode="editorial"] [style*="background:#7B2D8B"] {
  background: var(--paper-2) !important;
  color: var(--ink) !important;
  border: 1px solid var(--ink-3) !important;
}
[data-design-mode="editorial"] span[style*="background:#B45309"],
[data-design-mode="editorial"] span[style*="background: #B45309"],
[data-design-mode="editorial"] [style*="background:#B45309"] {
  background: var(--accent-soft) !important;
  color: var(--accent-dk) !important;
  border: 1px solid var(--accent-dk) !important;
}
[data-design-mode="editorial"] span[style*="background:#333"],
[data-design-mode="editorial"] span[style*="background: #333"] {
  background: var(--paper-2) !important;
  color: var(--ink-2) !important;
  border: 1px solid var(--rule) !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   § 24. CLIENT BRAIN BADGE STATES (Pass 8)
   ─────────────────────────────────────────────────────────────────────
   .cb-badge-* variants defined in _content_brain.html but never given
   editorial chrome. Render as mostly-invisible light rgba on cream.
   Map each state to directional semantic colors.
   ═══════════════════════════════════════════════════════════════════ */

[data-design-mode="editorial"] .cb-badge {
  font-family: var(--mono) !important;
  font-size: 0.65rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.04em !important;
  padding: 2px 8px !important;
  border-radius: 999px !important;
  text-transform: uppercase !important;
  border: 1px solid transparent !important;
  line-height: 1.4 !important;
}
[data-design-mode="editorial"] .cb-badge-draft,
[data-design-mode="editorial"] .cb-badge-paused,
[data-design-mode="editorial"] .cb-badge-skipped,
[data-design-mode="editorial"] .cb-badge-pending {
  background: var(--paper-2) !important;
  color: var(--ink-3) !important;
  border-color: var(--rule) !important;
}
[data-design-mode="editorial"] .cb-badge-active,
[data-design-mode="editorial"] .cb-badge-processing,
[data-design-mode="editorial"] .cb-badge-generating,
[data-design-mode="editorial"] .cb-badge-writing {
  background: var(--paper-2) !important;
  color: var(--ink) !important;
  border-color: var(--ink-3) !important;
}
[data-design-mode="editorial"] .cb-badge-published,
[data-design-mode="editorial"] .cb-badge-approved,
[data-design-mode="editorial"] .cb-badge-ready,
[data-design-mode="editorial"] .cb-badge-live,
[data-design-mode="editorial"] .cb-badge-success {
  background: var(--up-soft) !important;
  color: var(--up) !important;
  border-color: var(--up) !important;
}
[data-design-mode="editorial"] .cb-badge-error,
[data-design-mode="editorial"] .cb-badge-qa_failed,
[data-design-mode="editorial"] .cb-badge-failed,
[data-design-mode="editorial"] .cb-badge-needs_info,
[data-design-mode="editorial"] .cb-badge-blocked,
[data-design-mode="editorial"] .cb-badge-dead {
  background: var(--down-soft) !important;
  color: var(--down) !important;
  border-color: var(--down) !important;
}
[data-design-mode="editorial"] .cb-badge-qa_review,
[data-design-mode="editorial"] .cb-badge-needs_review,
[data-design-mode="editorial"] .cb-badge-upload,
[data-design-mode="editorial"] .cb-badge-warning {
  background: var(--accent-soft) !important;
  color: var(--accent-dk) !important;
  border-color: var(--accent-dk) !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   § 25. BOT REGISTRY (.br-*) — full namespace coverage (Pass 8)
   ─────────────────────────────────────────────────────────────────────
   Zero editorial coverage prior. 150+ classes render with legacy dark
   chrome on cream. Force paper surfaces + ink text on every container.
   ═══════════════════════════════════════════════════════════════════ */

[data-design-mode="editorial"] .br-container,
[data-design-mode="editorial"] .br-sidebar,
[data-design-mode="editorial"] .br-main,
[data-design-mode="editorial"] .br-main-panel,
[data-design-mode="editorial"] .br-board,
[data-design-mode="editorial"] .br-header,
[data-design-mode="editorial"] .br-modal {
  background: var(--paper) !important;
  color: var(--ink) !important;
  border-color: var(--rule) !important;
}

[data-design-mode="editorial"] .br-card,
[data-design-mode="editorial"] .br-task,
[data-design-mode="editorial"] .br-task-card,
[data-design-mode="editorial"] .br-bot-card,
[data-design-mode="editorial"] .br-plan-panel,
[data-design-mode="editorial"] .br-page-preview,
[data-design-mode="editorial"] .br-column,
[data-design-mode="editorial"] .br-row {
  background: var(--paper) !important;
  color: var(--ink) !important;
  border: 1px solid var(--rule) !important;
  border-radius: 2px !important;
  box-shadow: none !important;
}
[data-design-mode="editorial"] .br-card:hover,
[data-design-mode="editorial"] .br-task:hover,
[data-design-mode="editorial"] .br-task-card:hover {
  border-color: var(--ink) !important;
  background: var(--paper) !important;
}

[data-design-mode="editorial"] .br-main-title,
[data-design-mode="editorial"] .br-task-title,
[data-design-mode="editorial"] .br-plan-title,
[data-design-mode="editorial"] .br-page-preview-title,
[data-design-mode="editorial"] .br-column-title {
  font-family: var(--serif) !important;
  color: var(--ink) !important;
  font-weight: 500 !important;
  letter-spacing: -0.01em !important;
}
[data-design-mode="editorial"] .br-plan-section-title,
[data-design-mode="editorial"] .br-section-label {
  font-family: var(--mono) !important;
  font-size: 0.68rem !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--ink-3) !important;
  font-weight: 500 !important;
}

/* Bot status dots */
[data-design-mode="editorial"] .br-status-dot,
[data-design-mode="editorial"] .br-bot-dot {
  background: var(--up) !important;
  border: 1px solid var(--paper) !important;
}
[data-design-mode="editorial"] .br-status-dot.offline,
[data-design-mode="editorial"] .br-bot-dot.offline {
  background: var(--ink-4) !important;
}
[data-design-mode="editorial"] .br-status-dot.error,
[data-design-mode="editorial"] .br-bot-dot.error,
[data-design-mode="editorial"] .br-status-dot.failed {
  background: var(--down) !important;
}
[data-design-mode="editorial"] .br-status-dot.running,
[data-design-mode="editorial"] .br-bot-dot.running {
  background: var(--accent-dk) !important;
}

/* Bot Registry status badges → pill chrome */
[data-design-mode="editorial"] .br-status-badge {
  font-family: var(--mono) !important;
  font-size: 0.65rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.06em !important;
  padding: 2px 8px !important;
  border-radius: 999px !important;
  text-transform: uppercase !important;
  border: 1px solid transparent !important;
}
[data-design-mode="editorial"] .br-status-badge.completed,
[data-design-mode="editorial"] .br-status-badge.success,
[data-design-mode="editorial"] .ts-badge[data-s="resolved"],
[data-design-mode="editorial"] .ts-badge[data-s="completed"] {
  background: var(--up-soft) !important;
  color: var(--up) !important;
  border-color: var(--up) !important;
}
[data-design-mode="editorial"] .br-status-badge.failed,
[data-design-mode="editorial"] .br-status-badge.error,
[data-design-mode="editorial"] .ts-badge[data-s="failed"],
[data-design-mode="editorial"] .ts-badge[data-s="error"] {
  background: var(--down-soft) !important;
  color: var(--down) !important;
  border-color: var(--down) !important;
}
[data-design-mode="editorial"] .br-status-badge.running,
[data-design-mode="editorial"] .br-status-badge.analyzing,
[data-design-mode="editorial"] .ts-badge[data-s="running"],
[data-design-mode="editorial"] .ts-badge[data-s="analyzing"],
[data-design-mode="editorial"] .ts-badge[data-s="diagnosed"] {
  background: var(--accent-soft) !important;
  color: var(--accent-dk) !important;
  border-color: var(--accent-dk) !important;
}
[data-design-mode="editorial"] .br-status-badge.cancelled,
[data-design-mode="editorial"] .br-status-badge.pending,
[data-design-mode="editorial"] .ts-badge[data-s="cancelled"],
[data-design-mode="editorial"] .ts-badge[data-s="pending"] {
  background: var(--paper-2) !important;
  color: var(--ink-3) !important;
  border-color: var(--rule) !important;
}

/* Bot Registry priority indicators */
[data-design-mode="editorial"] .br-priority-urgent,
[data-design-mode="editorial"] .br-priority-high { color: var(--down) !important; font-weight: 600 !important; }
[data-design-mode="editorial"] .br-priority-normal { color: var(--ink-3) !important; }
[data-design-mode="editorial"] .br-priority-low { color: var(--ink-4) !important; }

[data-design-mode="editorial"] .br-page-preview-type {
  background: var(--paper-2) !important;
  color: var(--ink-3) !important;
  border: 1px solid var(--rule) !important;
  font-family: var(--mono) !important;
  font-size: 0.6rem !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  padding: 1px 6px !important;
  border-radius: 2px !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   § 26. GOOGLE MY BUSINESS (.gmb-*) — full namespace (Pass 8)
   ─────────────────────────────────────────────────────────────────────
   200+ classes unthemed. Every surface → paper + ink.
   ═══════════════════════════════════════════════════════════════════ */

[data-design-mode="editorial"] .gmb-management,
[data-design-mode="editorial"] .gmb-sidebar,
[data-design-mode="editorial"] .gmb-main,
[data-design-mode="editorial"] .gmb-detail,
[data-design-mode="editorial"] .gmb-detail-panel,
[data-design-mode="editorial"] .gmb-modal,
[data-design-mode="editorial"] .gmb-board,
[data-design-mode="editorial"] .gmb-content,
[data-design-mode="editorial"] .gmb-field-group {
  background: var(--paper) !important;
  color: var(--ink) !important;
  border-color: var(--rule) !important;
}

[data-design-mode="editorial"] .gmb-card,
[data-design-mode="editorial"] .gmb-profile-card,
[data-design-mode="editorial"] .gmb-profile,
[data-design-mode="editorial"] .kb-card,
[data-design-mode="editorial"] .gmb-list-item,
[data-design-mode="editorial"] .gmb-column,
[data-design-mode="editorial"] .gmb-detail-section {
  background: var(--paper) !important;
  color: var(--ink) !important;
  border: 1px solid var(--rule) !important;
  border-radius: 2px !important;
  box-shadow: none !important;
}
[data-design-mode="editorial"] .gmb-card:hover,
[data-design-mode="editorial"] .gmb-profile-card:hover,
[data-design-mode="editorial"] .kb-card:hover,
[data-design-mode="editorial"] .gmb-list-item:hover {
  border-color: var(--ink) !important;
  background: var(--paper) !important;
}

[data-design-mode="editorial"] .gmb-title,
[data-design-mode="editorial"] .gmb-profile-name,
[data-design-mode="editorial"] .gmb-business-name,
[data-design-mode="editorial"] .gmb-detail-section-title {
  font-family: var(--serif) !important;
  color: var(--ink) !important;
  font-weight: 500 !important;
  letter-spacing: -0.01em !important;
}
[data-design-mode="editorial"] .gmb-label,
[data-design-mode="editorial"] .gmb-field-label,
[data-design-mode="editorial"] .gmb-col-title {
  font-family: var(--mono) !important;
  font-size: 0.65rem !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--ink-3) !important;
  font-weight: 500 !important;
}

/* GMB status indicators */
[data-design-mode="editorial"] .gmb-status-active { color: var(--up) !important; }
[data-design-mode="editorial"] .gmb-status-suspended { color: var(--down) !important; }
[data-design-mode="editorial"] .gmb-status-pending,
[data-design-mode="editorial"] .gmb-status-verification { color: var(--accent-dk) !important; }
[data-design-mode="editorial"] .gmb-status-offboarded { color: var(--ink-4) !important; }

/* KB (Keyword Board) — treat same as GMB card family */
[data-design-mode="editorial"] .kb-column,
[data-design-mode="editorial"] .kb-board,
[data-design-mode="editorial"] .kb-keyword-row {
  background: var(--paper) !important;
  color: var(--ink) !important;
  border-color: var(--rule) !important;
}
[data-design-mode="editorial"] .kb-col-title,
[data-design-mode="editorial"] .kb-keyword-name {
  color: var(--ink) !important;
  font-family: var(--serif) !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   § 27. LIFECYCLE (.lc-*) + STAGE PILLS (Pass 8)
   ═══════════════════════════════════════════════════════════════════ */

[data-design-mode="editorial"] .lc-pipeline,
[data-design-mode="editorial"] .lc-wrap,
[data-design-mode="editorial"] .lc-container,
[data-design-mode="editorial"] .lc-timeline {
  background: var(--paper) !important;
  color: var(--ink) !important;
}

[data-design-mode="editorial"] .lc-stat-card,
[data-design-mode="editorial"] .lc-stage-card,
[data-design-mode="editorial"] .lc-progress-bar,
[data-design-mode="editorial"] .lc-step {
  background: var(--paper) !important;
  color: var(--ink) !important;
  border: 1px solid var(--rule) !important;
  border-radius: 2px !important;
}

[data-design-mode="editorial"] .lc-stage-trial,
[data-design-mode="editorial"] .stage-pill-trial {
  background: var(--accent-soft) !important;
  color: var(--accent-dk) !important;
  border-color: var(--accent-dk) !important;
}
[data-design-mode="editorial"] .lc-stage-mrr,
[data-design-mode="editorial"] .lc-stage-ascended,
[data-design-mode="editorial"] .stage-pill-mrr,
[data-design-mode="editorial"] .stage-pill-ascended {
  background: var(--up-soft) !important;
  color: var(--up) !important;
  border-color: var(--up) !important;
}
[data-design-mode="editorial"] .lc-stage-paused,
[data-design-mode="editorial"] .stage-pill-paused {
  background: var(--paper-2) !important;
  color: var(--ink-3) !important;
  border-color: var(--rule) !important;
}
[data-design-mode="editorial"] .lc-stage-failed,
[data-design-mode="editorial"] .lc-stage-churned,
[data-design-mode="editorial"] .stage-pill-failed-trial,
[data-design-mode="editorial"] .stage-pill-churned {
  background: var(--down-soft) !important;
  color: var(--down) !important;
  border-color: var(--down) !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   § 28. CONTENT ENGINE + CONTENT MAP PANEL EXTENSIONS (Pass 8)
   ═══════════════════════════════════════════════════════════════════ */

[data-design-mode="editorial"] .ce-panel,
[data-design-mode="editorial"] .ce-card,
[data-design-mode="editorial"] .ce-container,
[data-design-mode="editorial"] .ce-status-chip,
[data-design-mode="editorial"] .ce-a-card,
[data-design-mode="editorial"] .ce-b-card,
[data-design-mode="editorial"] .ce-c-card,
[data-design-mode="editorial"] .cm-panel,
[data-design-mode="editorial"] .cm-card,
[data-design-mode="editorial"] .cm-info-card,
[data-design-mode="editorial"] .cm-matrix-wrap,
[data-design-mode="editorial"] .cm-health,
[data-design-mode="editorial"] .cm-stat-card {
  background: var(--paper) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border: 1px solid var(--rule) !important;
  border-radius: 2px !important;
  box-shadow: none !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   § 29. INLINE STYLE ATTRIBUTE CATCHERS — extended (Pass 8)
   ─────────────────────────────────────────────────────────────────────
   Catch uncovered rgba opacity variants used in JS template strings.
   ═══════════════════════════════════════════════════════════════════ */

/* Tailwind red-500 (#ef4444) — all alpha variants that JS builds inline */
[data-design-mode="editorial"] [style*="rgba(239,68,68,0.05"],
[data-design-mode="editorial"] [style*="rgba(239,68,68,0.08"],
[data-design-mode="editorial"] [style*="rgba(239,68,68,0.12"],
[data-design-mode="editorial"] [style*="rgba(239,68,68,0.15"],
[data-design-mode="editorial"] [style*="rgba(239,68,68,0.18"],
[data-design-mode="editorial"] [style*="rgba(239,68,68,0.2"],
[data-design-mode="editorial"] [style*="rgba(239,68,68,0.25"],
[data-design-mode="editorial"] [style*="rgba(239,68,68,0.3"] {
  background-color: var(--down-soft) !important;
  color: var(--down) !important;
  border-color: var(--down) !important;
}

/* Tailwind green-500 (#22c55e) — all alpha variants */
[data-design-mode="editorial"] [style*="rgba(34,197,94,0.06"],
[data-design-mode="editorial"] [style*="rgba(34,197,94,0.08"],
[data-design-mode="editorial"] [style*="rgba(34,197,94,0.1"],
[data-design-mode="editorial"] [style*="rgba(34,197,94,0.12"],
[data-design-mode="editorial"] [style*="rgba(34,197,94,0.15"],
[data-design-mode="editorial"] [style*="rgba(34,197,94,0.2"],
[data-design-mode="editorial"] [style*="rgba(34,197,94,0.3"],
[data-design-mode="editorial"] [style*="rgba(34,197,94,0.4"] {
  background-color: var(--up-soft) !important;
  color: var(--up) !important;
  border-color: var(--up) !important;
}

/* Tailwind amber (#f59e0b) — all alpha variants */
[data-design-mode="editorial"] [style*="rgba(245,158,11,0.06"],
[data-design-mode="editorial"] [style*="rgba(245,158,11,0.08"],
[data-design-mode="editorial"] [style*="rgba(245,158,11,0.1"],
[data-design-mode="editorial"] [style*="rgba(245,158,11,0.12"],
[data-design-mode="editorial"] [style*="rgba(245,158,11,0.15"],
[data-design-mode="editorial"] [style*="rgba(245,158,11,0.2"],
[data-design-mode="editorial"] [style*="rgba(245,158,11,0.3"] {
  background-color: var(--accent-soft) !important;
  color: var(--accent-dk) !important;
  border-color: var(--accent-dk) !important;
}

/* Nexus red (#e06060 / rgba 224,96,96) — all alpha variants */
[data-design-mode="editorial"] [style*="rgba(224,96,96,0.1"],
[data-design-mode="editorial"] [style*="rgba(224,96,96,0.15"],
[data-design-mode="editorial"] [style*="rgba(224,96,96,0.2"] {
  background-color: var(--down-soft) !important;
  color: var(--down) !important;
}

/* Inline hex color catchers for attachments / specific JS strings */
[data-design-mode="editorial"] [style*="color:#fb923c"],
[data-design-mode="editorial"] [style*="color: #fb923c"],
[data-design-mode="editorial"] [style*="rgba(251,146,60"] {
  color: var(--ink-2) !important;
}
[data-design-mode="editorial"] [style*="color:#10B981"],
[data-design-mode="editorial"] [style*="color: #10B981"],
[data-design-mode="editorial"] [style*="color:#86efac"],
[data-design-mode="editorial"] [style*="color:#10b981"] {
  color: var(--up) !important;
}
[data-design-mode="editorial"] [style*="color:#eab308"],
[data-design-mode="editorial"] [style*="color: #eab308"],
[data-design-mode="editorial"] [style*="color:#ffbf5a"],
[data-design-mode="editorial"] [style*="background:#eab308"] {
  color: var(--accent-dk) !important;
}
[data-design-mode="editorial"] [style*="color:#ff7a7a"],
[data-design-mode="editorial"] [style*="color: #ff7a7a"] {
  color: var(--down) !important;
}
[data-design-mode="editorial"] [style*="color:#8b5cf6"],
[data-design-mode="editorial"] [style*="color: #8b5cf6"],
[data-design-mode="editorial"] [style*="color:#6366f1"],
[data-design-mode="editorial"] [style*="color: #6366f1"] {
  color: var(--ink-2) !important;
}

/* Dark overlay opacity variants (JS-built modal scrims) */
[data-design-mode="editorial"] [style*="background:rgba(0,0,0,0.25"],
[data-design-mode="editorial"] [style*="background:rgba(0,0,0,0.3"],
[data-design-mode="editorial"] [style*="background:rgba(0,0,0,0.35"],
[data-design-mode="editorial"] [style*="background:rgba(0,0,0,0.4"],
[data-design-mode="editorial"] [style*="background:rgba(0,0,0,0.5"],
[data-design-mode="editorial"] [style*="background:rgba(0,0,0,0.6"],
[data-design-mode="editorial"] [style*="background:rgba(0,0,0,0.7"],
[data-design-mode="editorial"] [style*="background:rgba(0,0,0,0.75"],
[data-design-mode="editorial"] [style*="background:rgba(0,0,0,0.8"] {
  background-color: rgba(10,10,10,0.40) !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   § 30. DARK HERO GRADIENT OVERRIDES (Pass 8)
   ─────────────────────────────────────────────────────────────────────
   results-v2.css has `linear-gradient(135deg, #1a1a2e 0%, #12161e 100%)`
   hardcoded on .hero-section and `.dv2-hero`. Override to paper gradient.
   ═══════════════════════════════════════════════════════════════════ */

[data-design-mode="editorial"] .results-v2 .hero-section,
[data-design-mode="editorial"] .hero-section,
[data-design-mode="editorial"] .dv2-hero,
[data-design-mode="editorial"] .dv2-hero-card {
  background: var(--paper) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border: 1px solid var(--rule) !important;
  border-radius: 2px !important;
  box-shadow: none !important;
}
[data-design-mode="editorial"] .results-v2 .hero-section *,
[data-design-mode="editorial"] .dv2-hero * {
  color: inherit;
}
[data-design-mode="editorial"] .results-v2 .hero-metric-label,
[data-design-mode="editorial"] .results-v2 .hero-metric-sublabel,
[data-design-mode="editorial"] .dv2-hero-label {
  color: var(--ink-3) !important;
}
[data-design-mode="editorial"] .results-v2 .hero-metric-value,
[data-design-mode="editorial"] .dv2-hero-value {
  color: var(--ink) !important;
  font-family: var(--serif) !important;
  font-variant-numeric: tabular-nums !important;
}

/* Catch inline hardcoded dark hex in hero contexts */
[data-design-mode="editorial"] [style*="#1a1a2e"],
[data-design-mode="editorial"] [style*="#12161e"],
[data-design-mode="editorial"] [style*="linear-gradient(135deg, #1a1a2e"] {
  background: var(--paper-2) !important;
  background-image: none !important;
  color: var(--ink) !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   § 31. HARDCODED GRADIENT STOPS (Pass 8)
   ─────────────────────────────────────────────────────────────────────
   Template-level gradients mixing tokens with hardcoded color stops
   (can't be overridden via var() remap alone).
   ═══════════════════════════════════════════════════════════════════ */

/* clients/status.html — `linear-gradient(135deg, var(--opt-yellow), #4aa89e)` */
[data-design-mode="editorial"] [style*="#4aa89e"] {
  background: var(--accent-soft) !important;
  background-image: none !important;
}

/* geo_change_modal.html — `linear-gradient(90deg, var(--opt-yellow), #ffc744)` */
[data-design-mode="editorial"] [style*="#ffc744"] {
  background: var(--accent-soft) !important;
  background-image: none !important;
}

/* admin/users.html — Material Design role gradients */
[data-design-mode="editorial"] [style*="#4285f4"],
[data-design-mode="editorial"] [style*="#34a853"],
[data-design-mode="editorial"] [style*="#2d8a47"],
[data-design-mode="editorial"] [style*="#34c759"],
[data-design-mode="editorial"] [style*="#30b350"],
[data-design-mode="editorial"] [style*="#ff9500"],
[data-design-mode="editorial"] [style*="#e68600"] {
  background: var(--paper-2) !important;
  background-image: none !important;
  color: var(--ink) !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   § 32. JS-ONLY CLASSES — editorial styling (Pass 8)
   ─────────────────────────────────────────────────────────────────────
   Classes added only by JavaScript at runtime (not defined in templates
   or CSS). Give them editorial chrome.
   ═══════════════════════════════════════════════════════════════════ */

[data-design-mode="editorial"] .dlv3-row-done {
  opacity: 0.6 !important;
  background: var(--paper-2) !important;
}
[data-design-mode="editorial"] .dlv3-item-name-done {
  text-decoration: line-through !important;
  color: var(--ink-3) !important;
}
[data-design-mode="editorial"] .integration-loading {
  background: var(--paper-2) !important;
  color: var(--ink-3) !important;
}
[data-design-mode="editorial"] .integration-error {
  background: var(--down-soft) !important;
  color: var(--down) !important;
  border: 1px solid var(--down) !important;
}
[data-design-mode="editorial"] .cm-conflict-dropdown {
  background: var(--paper) !important;
  border: 1px solid var(--rule) !important;
  color: var(--ink) !important;
  box-shadow: 0 4px 12px rgba(10,10,10,0.10) !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   § 33. TABLE STATUS CHIP COLORS — directional semantic (Pass 8)
   ─────────────────────────────────────────────────────────────────────
   The Pages tab (and others) have status chips rendered as "published"
   in inline green text. Force readable editorial directional chip chrome.
   ═══════════════════════════════════════════════════════════════════ */

[data-design-mode="editorial"] .status-published,
[data-design-mode="editorial"] .status-live,
[data-design-mode="editorial"] .status-active,
[data-design-mode="editorial"] .page-status-published,
[data-design-mode="editorial"] .ce-page-status--published {
  background: var(--up-soft) !important;
  color: var(--up) !important;
  border-color: var(--up) !important;
}
[data-design-mode="editorial"] .status-draft,
[data-design-mode="editorial"] .page-status-draft,
[data-design-mode="editorial"] .ce-page-status--draft {
  background: var(--paper-2) !important;
  color: var(--ink-3) !important;
  border-color: var(--rule) !important;
}
[data-design-mode="editorial"] .status-failed,
[data-design-mode="editorial"] .status-error,
[data-design-mode="editorial"] .page-status-failed,
[data-design-mode="editorial"] .ce-page-status--failed,
[data-design-mode="editorial"] .ce-page-status--qa_failed {
  background: var(--down-soft) !important;
  color: var(--down) !important;
  border-color: var(--down) !important;
}
[data-design-mode="editorial"] .status-generating,
[data-design-mode="editorial"] .status-pending,
[data-design-mode="editorial"] .ce-page-status--generating,
[data-design-mode="editorial"] .ce-page-status--qa_review {
  background: var(--accent-soft) !important;
  color: var(--accent-dk) !important;
  border-color: var(--accent-dk) !important;
}
[data-design-mode="editorial"] .status-approved,
[data-design-mode="editorial"] .ce-page-status--approved {
  background: var(--up-soft) !important;
  color: var(--up) !important;
  border-color: var(--up) !important;
}

/* URL cells in Pages tab — ink underlined link, no yellow */
[data-design-mode="editorial"] .cb-url-cell a,
[data-design-mode="editorial"] .page-url-cell a,
[data-design-mode="editorial"] td.url a,
[data-design-mode="editorial"] td a[href^="http"] {
  color: var(--ink) !important;
  text-decoration: underline !important;
  text-decoration-color: var(--rule) !important;
  text-underline-offset: 3px !important;
}
[data-design-mode="editorial"] .cb-url-cell a:hover,
[data-design-mode="editorial"] .page-url-cell a:hover,
[data-design-mode="editorial"] td.url a:hover,
[data-design-mode="editorial"] td a[href^="http"]:hover {
  color: var(--accent-dk) !important;
  text-decoration-color: var(--accent) !important;
}

/* Ask-AI bar at top of Pages tab — paper surface with subtle accent */
[data-design-mode="editorial"] .ai-search-bar,
[data-design-mode="editorial"] .cb-ai-input,
[data-design-mode="editorial"] .ask-ai-input,
[data-design-mode="editorial"] input[placeholder*="Ask AI"] {
  background: var(--paper-2) !important;
  border: 1px solid var(--rule) !important;
  border-radius: 999px !important;
  color: var(--ink) !important;
  padding: 10px 18px !important;
  font-family: var(--sans) !important;
  font-size: 0.85rem !important;
}
[data-design-mode="editorial"] .ai-search-bar:focus,
[data-design-mode="editorial"] .cb-ai-input:focus,
[data-design-mode="editorial"] input[placeholder*="Ask AI"]:focus {
  border-color: var(--ink) !important;
  box-shadow: 0 0 0 3px var(--accent-soft) !important;
  outline: none !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   § 34. CLIENT BRAIN OVERVIEW — surgical fixes (Pass 9)
   ─────────────────────────────────────────────────────────────────────
   Ben's screenshot showed the Client Brain Overview tab with:
   - Field card labels (COUNTRY, TYPE, PRIMARY GEO, etc.) invisible
   - "CONTENT ENGINE PROGRESS" section header invisible (yellow-on-cream)
   - KPI tile labels below big numbers invisible
   - Service pills rendering yellow-on-cream (inherit `--success: #f0e050`)
   - Field cards with yellow-tint gradient background
   - Inconsistent table fonts on Pages tab
   ═══════════════════════════════════════════════════════════════════ */

/* Field cards — kill yellow gradient, flat paper, 1px rule border */
[data-design-mode="editorial"] .cb-field {
  background: var(--paper) !important;
  background-image: none !important;
  border: 1px solid var(--rule) !important;
  border-radius: 2px !important;
  padding: 12px 14px !important;
}

/* Field label — mono UPPERCASE ink-3 (was --text-400 = ink-4 = too faint) */
[data-design-mode="editorial"] .cb-field-label {
  font-family: var(--mono) !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--ink-3) !important;
  margin-bottom: 6px !important;
  opacity: 1 !important;
}

/* Field value — serif for editorial feel, ink */
[data-design-mode="editorial"] .cb-field-value {
  font-family: var(--serif) !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  color: var(--ink) !important;
  letter-spacing: -0.005em !important;
  line-height: 1.3 !important;
  word-break: break-all;
}
[data-design-mode="editorial"] .cb-field-value.masked {
  color: var(--ink-3) !important;
  font-style: italic !important;
}

/* Section title — was yellow-on-cream (invisible). Editorial eyebrow. */
[data-design-mode="editorial"] .cb-section-title {
  font-family: var(--mono) !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  color: var(--ink-3) !important;
  margin-bottom: 12px !important;
  padding-bottom: 8px !important;
  border-bottom: 1px solid var(--ink) !important;
}

/* Engine progress KPI tiles — flat paper, ink count, ink-3 label */
[data-design-mode="editorial"] .cb-engine-progress-item {
  background: var(--paper) !important;
  border: 1px solid var(--rule) !important;
  border-radius: 2px !important;
  padding: 16px 14px !important;
}
[data-design-mode="editorial"] .cb-engine-progress-item .label {
  font-family: var(--mono) !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--ink-3) !important;
  margin-bottom: 6px !important;
  opacity: 1 !important;
}
[data-design-mode="editorial"] .cb-engine-progress-item .count {
  font-family: var(--serif) !important;
  font-size: 32px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  letter-spacing: -0.025em !important;
  color: var(--ink) !important;
  font-variant-numeric: tabular-nums !important;
  font-feature-settings: "tnum" !important;
}
[data-design-mode="editorial"] .cb-engine-progress-item .count span {
  font-family: var(--mono) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: var(--ink-3) !important;
  font-style: normal !important;
}

/* Engine step label (context line under section titles) */
[data-design-mode="editorial"] .cb-engine-step-label {
  color: var(--ink-2) !important;
  font-family: var(--sans) !important;
}
[data-design-mode="editorial"] .cb-engine-step-label strong {
  color: var(--ink) !important;
  font-weight: 600 !important;
}

/* Progress bar fill (inside tiles) — keep accent but readable */
[data-design-mode="editorial"] .cb-progress-bar {
  background: var(--rule-2) !important;
  border-radius: 2px !important;
  height: 6px !important;
}
[data-design-mode="editorial"] .cb-progress-fill {
  background: var(--accent) !important;
  border-radius: 2px !important;
}
[data-design-mode="editorial"] .cb-progress-label {
  font-family: var(--mono) !important;
  font-size: 0.66rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.08em !important;
  color: var(--ink-3) !important;
  margin-top: 6px !important;
}

/* Schedule card — kill yellow gradient, flat paper */
[data-design-mode="editorial"] .cb-schedule-card {
  background: var(--paper) !important;
  background-image: none !important;
  border: 1px solid var(--rule) !important;
  border-radius: 2px !important;
  padding: 14px 16px !important;
}
[data-design-mode="editorial"] .cb-schedule-meta {
  color: var(--ink-2) !important;
}

/* Service pills — were yellow-on-yellow (inherit --success yellow from
   dark mode). Now rendering as green directional with readable contrast. */
[data-design-mode="editorial"] .cb-tag {
  background: var(--up-soft) !important;
  color: var(--up) !important;
  border: 1px solid var(--up) !important;
  font-family: var(--mono) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.04em !important;
  padding: 3px 10px !important;
  border-radius: 999px !important;
}
[data-design-mode="editorial"] .cb-tag-remove {
  color: var(--up) !important;
}
[data-design-mode="editorial"] .cb-tag-remove:hover {
  color: var(--down) !important;
}
[data-design-mode="editorial"] .cb-tag-input {
  background: var(--paper-2) !important;
  border: 1px solid var(--rule) !important;
  color: var(--ink) !important;
  border-radius: 2px !important;
}
[data-design-mode="editorial"] .cb-tag-input:focus {
  border-color: var(--ink) !important;
  box-shadow: 0 0 0 3px var(--accent-soft) !important;
}
[data-design-mode="editorial"] .cb-tag-add-btn {
  background: var(--paper) !important;
  color: var(--ink) !important;
  border: 1px solid var(--rule) !important;
  border-radius: 2px !important;
  font-family: var(--mono) !important;
  font-size: 10.5px !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}
[data-design-mode="editorial"] .cb-tag-add-btn:hover {
  background: var(--ink) !important;
  color: var(--paper) !important;
  border-color: var(--ink) !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   § 35. CLIENT BRAIN PAGES TABLE — font + case consistency (Pass 9)
   ─────────────────────────────────────────────────────────────────────
   Ben said: "Some are full caps, some have different fonts. We have
   inconsistent fonts in this table." Force uniform mono UPPERCASE
   headers + sans ink cells on .cb-pages-table.
   ═══════════════════════════════════════════════════════════════════ */

[data-design-mode="editorial"] .cb-pages-table {
  width: 100% !important;
  border-collapse: collapse !important;
  font-family: var(--sans) !important;
  font-size: 13px !important;
}
[data-design-mode="editorial"] .cb-pages-table th,
[data-design-mode="editorial"] .cb-pages-table thead th {
  font-family: var(--mono) !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--ink-3) !important;
  padding: 10px 12px 8px !important;
  border-bottom: 1.5px solid var(--ink) !important;
  background: transparent !important;
  text-align: left;
}
[data-design-mode="editorial"] .cb-pages-table td,
[data-design-mode="editorial"] .cb-pages-table tbody td {
  font-family: var(--sans) !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  color: var(--ink-2) !important;
  padding: 11px 12px !important;
  border-bottom: 1px solid var(--rule) !important;
  background: transparent !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
[data-design-mode="editorial"] .cb-pages-table tbody tr:hover td {
  background: var(--paper-2) !important;
}
/* Title column — weight to 500 for hierarchy */
[data-design-mode="editorial"] .cb-pages-table td:nth-child(5) {
  color: var(--ink) !important;
  font-weight: 500 !important;
}
/* URL column — ink link, not yellow */
[data-design-mode="editorial"] .cb-pages-table td a {
  color: var(--ink) !important;
  text-decoration: underline !important;
  text-decoration-color: var(--rule) !important;
  text-underline-offset: 3px !important;
}
[data-design-mode="editorial"] .cb-pages-table td a:hover {
  color: var(--accent-dk) !important;
  text-decoration-color: var(--accent) !important;
}
/* Action icons (edit, archive, cloud) — neutral ink, not yellow */
[data-design-mode="editorial"] .cb-pages-table td .bi,
[data-design-mode="editorial"] .cb-pages-table td i.bi {
  color: var(--ink-3) !important;
}
[data-design-mode="editorial"] .cb-pages-table td .bi:hover {
  color: var(--ink) !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   § 36. CLIENT BRAIN PAGE TABS — yellow active → ink + accent underline (Pass 9)
   ═══════════════════════════════════════════════════════════════════ */

[data-design-mode="editorial"] .cb-page-tab {
  color: var(--ink-3) !important;
  font-family: var(--mono) !important;
  font-size: 10.5px !important;
  font-weight: 500 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  border-bottom: 2px solid transparent !important;
  background: transparent !important;
  padding: 8px 14px !important;
}
[data-design-mode="editorial"] .cb-page-tab:hover {
  color: var(--ink) !important;
}
[data-design-mode="editorial"] .cb-page-tab.active {
  color: var(--ink) !important;
  border-bottom-color: var(--accent) !important;
}
[data-design-mode="editorial"] .cb-page-tab-count {
  font-family: var(--mono) !important;
  font-size: 0.62rem !important;
  font-weight: 500 !important;
  background: var(--paper-2) !important;
  color: var(--ink-3) !important;
  border-radius: 999px !important;
  padding: 1px 6px !important;
  font-variant-numeric: tabular-nums !important;
}
[data-design-mode="editorial"] .cb-page-tab.active .cb-page-tab-count {
  background: var(--ink) !important;
  color: var(--paper) !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   § 37. MISSING FIELDS / BLOCKED / GMB STATE CARDS (Pass 9)
   ─────────────────────────────────────────────────────────────────────
   Red-rgba hardcoded chrome on cb-missing-bar, cb-missing-chip, cb-engine-
   blocked — now all use directional down-soft tokens (already covered
   via §29 attribute catchers, but reinforce class-level for specificity).
   ═══════════════════════════════════════════════════════════════════ */

[data-design-mode="editorial"] .cb-missing-bar,
[data-design-mode="editorial"] .cb-engine-blocked {
  background: var(--down-soft) !important;
  border: 1px solid var(--down) !important;
  border-radius: 2px !important;
  color: var(--down) !important;
}
[data-design-mode="editorial"] .cb-missing-chip {
  background: var(--down-soft) !important;
  border: 1px solid var(--down) !important;
  color: var(--down) !important;
  border-radius: 999px !important;
  font-family: var(--mono) !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.04em !important;
}
[data-design-mode="editorial"] .cb-engine-blocked .reason {
  color: var(--ink-2) !important;
}

/* GMB dot indicators — directional instead of yellow */
[data-design-mode="editorial"] .cb-gmb-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  display: inline-block;
}
[data-design-mode="editorial"] .cb-gmb-dot.active { background: var(--up) !important; }
[data-design-mode="editorial"] .cb-gmb-dot.suspended { background: var(--down) !important; }
[data-design-mode="editorial"] .cb-gmb-dot.pending { background: var(--accent-dk) !important; }
[data-design-mode="editorial"] .cb-gmb-dot.offline { background: var(--ink-4) !important; }

/* ════════════════════════════════════════════════════════════════════════════
   § 38. GLOBAL FONT CONSISTENCY FLOOR (Pass 9)
   ─────────────────────────────────────────────────────────────────────
   Prevent any table/data surface from slipping into Bootstrap's default
   system sans or browser default. All table content sans Inter, all
   headers mono UPPERCASE, all numeric cells tabular-nums.
   ═══════════════════════════════════════════════════════════════════ */

[data-design-mode="editorial"] table,
[data-design-mode="editorial"] .table {
  font-family: var(--sans) !important;
}
[data-design-mode="editorial"] table thead th,
[data-design-mode="editorial"] .table thead th,
[data-design-mode="editorial"] [class*="table"] thead th {
  font-family: var(--mono) !important;
  font-size: 10px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--ink-3) !important;
  font-weight: 500 !important;
}
[data-design-mode="editorial"] table tbody td,
[data-design-mode="editorial"] .table tbody td {
  font-family: var(--sans) !important;
  font-size: 13px !important;
  color: var(--ink-2) !important;
}

/* Any column with explicit `num` class → tabular nums */
[data-design-mode="editorial"] .num,
[data-design-mode="editorial"] td.num,
[data-design-mode="editorial"] th.num,
[data-design-mode="editorial"] .tabular,
[data-design-mode="editorial"] [class*="count"],
[data-design-mode="editorial"] [class*="-value"] {
  font-variant-numeric: tabular-nums !important;
  font-feature-settings: "tnum" !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   § 39. LIVE-STATUS DOT / CHECK ICONS (Pass 9)
   ─────────────────────────────────────────────────────────────────────
   Pages table LIVE column shows a green check icon for live pages.
   Force it to directional --up instead of legacy --success (yellow).
   ═══════════════════════════════════════════════════════════════════ */

[data-design-mode="editorial"] .live-dot,
[data-design-mode="editorial"] .status-dot,
[data-design-mode="editorial"] .live-indicator,
[data-design-mode="editorial"] .bi-check-circle-fill,
[data-design-mode="editorial"] .bi-check-circle {
  color: var(--up) !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   § 40. BULLETPROOF DIRECT-COLOR OVERRIDES (Pass 10)
   ─────────────────────────────────────────────────────────────────────
   Ben reports my previous pass "almost doesn't even look like anything's
   been done." Possible cascade issue with CSS variables — tokens may not
   be resolving through some undefined intermediate. Switch the critical
   invisible classes to DIRECT HARDCODED hex colors as belt-and-braces.
   If var() cascade fails for any reason, direct hex wins.
   ═══════════════════════════════════════════════════════════════════ */

/* CB Overview field card labels — direct hex, no token indirection */
html[data-design-mode="editorial"] .cb-field-label,
html[data-design-mode="editorial"] .cb-detail-grid .cb-field-label {
  color: #5d5d5a !important;
  font-family: "JetBrains Mono", ui-monospace, monospace !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  margin-bottom: 6px !important;
  opacity: 1 !important;
  display: block !important;
}
html[data-design-mode="editorial"] .cb-field-value,
html[data-design-mode="editorial"] .cb-detail-grid .cb-field-value {
  color: #0a0a0a !important;
  font-family: "Newsreader", ui-serif, Georgia, serif !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  letter-spacing: -0.005em !important;
  opacity: 1 !important;
  line-height: 1.3 !important;
}
html[data-design-mode="editorial"] .cb-field,
html[data-design-mode="editorial"] .cb-detail-grid .cb-field {
  background: #fbfaf6 !important;
  background-image: none !important;
  border: 1px solid #d9d4c4 !important;
  border-radius: 2px !important;
  padding: 14px 16px !important;
  box-shadow: none !important;
}

/* CB Overview section titles — "SERVICES", "CONTENT ENGINE PROGRESS",
   "GOOGLE BUSINESS PROFILES" — direct hex */
html[data-design-mode="editorial"] .cb-section-title {
  color: #5d5d5a !important;
  font-family: "JetBrains Mono", ui-monospace, monospace !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  margin: 28px 0 12px 0 !important;
  padding-bottom: 8px !important;
  border-bottom: 1px solid #0a0a0a !important;
  opacity: 1 !important;
  background: none !important;
  background-image: none !important;
}

/* CB Overview engine-progress tiles (325/248/41/27/6 KPI row) */
html[data-design-mode="editorial"] .cb-engine-progress {
  gap: 12px !important;
  margin-bottom: 20px !important;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)) !important;
}
html[data-design-mode="editorial"] .cb-engine-progress-item {
  background: #fbfaf6 !important;
  background-image: none !important;
  border: 1px solid #d9d4c4 !important;
  border-radius: 2px !important;
  padding: 18px 16px !important;
  box-shadow: none !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  min-height: 120px !important;
}
html[data-design-mode="editorial"] .cb-engine-progress-item .label {
  color: #5d5d5a !important;
  font-family: "JetBrains Mono", ui-monospace, monospace !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  margin-bottom: 4px !important;
  opacity: 1 !important;
  display: block !important;
}
html[data-design-mode="editorial"] .cb-engine-progress-item .count {
  color: #0a0a0a !important;
  font-family: "Newsreader", ui-serif, Georgia, serif !important;
  font-size: 36px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  letter-spacing: -0.025em !important;
  font-variant-numeric: tabular-nums !important;
  font-feature-settings: "tnum" !important;
  opacity: 1 !important;
  margin-top: auto !important;
}
html[data-design-mode="editorial"] .cb-engine-progress-item .count span {
  color: #8a8882 !important;
  font-family: "JetBrains Mono", ui-monospace, monospace !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  font-style: normal !important;
}

/* CB Overview service pills (the row of yellow-on-yellow pills) */
html[data-design-mode="editorial"] .cb-tag,
html[data-design-mode="editorial"] .cb-tags .cb-tag,
html[data-design-mode="editorial"] #cbServiceTags .cb-tag {
  background: #e3f2e6 !important;
  color: #1f7a3a !important;
  border: 1px solid #1f7a3a !important;
  font-family: "JetBrains Mono", ui-monospace, monospace !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.04em !important;
  padding: 3px 10px !important;
  border-radius: 999px !important;
}
html[data-design-mode="editorial"] .cb-tag-remove {
  color: #1f7a3a !important;
}

/* Pages tab table — hardcoded hex belt-and-braces */
html[data-design-mode="editorial"] .cb-pages-table {
  font-family: "Inter", -apple-system, system-ui, sans-serif !important;
  font-size: 13px !important;
  color: #2a2a2a !important;
}
html[data-design-mode="editorial"] .cb-pages-table th,
html[data-design-mode="editorial"] .cb-pages-table thead th {
  color: #5d5d5a !important;
  font-family: "JetBrains Mono", ui-monospace, monospace !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  padding: 10px 12px 8px !important;
  border-bottom: 1.5px solid #0a0a0a !important;
  background: transparent !important;
  text-align: left !important;
}
html[data-design-mode="editorial"] .cb-pages-table td,
html[data-design-mode="editorial"] .cb-pages-table tbody td {
  color: #2a2a2a !important;
  font-family: "Inter", -apple-system, system-ui, sans-serif !important;
  font-size: 13px !important;
  padding: 11px 12px !important;
  border-bottom: 1px solid #d9d4c4 !important;
  background: transparent !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  font-weight: 400 !important;
}

/* CB Main container — paper bg, ensure no leftover dark */
html[data-design-mode="editorial"] .cb-container,
html[data-design-mode="editorial"] .cb-main,
html[data-design-mode="editorial"] .cb-main-panel,
html[data-design-mode="editorial"] .cb-engine-panel,
html[data-design-mode="editorial"] .cb-sidebar {
  background: #fbfaf6 !important;
  color: #0a0a0a !important;
}

/* Every descendant of CB surfaces gets opacity 1 floor */
html[data-design-mode="editorial"] .cb-container *,
html[data-design-mode="editorial"] .cb-detail-grid * {
  opacity: 1 !important;
}

/* Catch any text that's still rgba(255,255,255,0.x) white-on-cream */
html[data-design-mode="editorial"] .cb-container [style*="color:rgba(255"],
html[data-design-mode="editorial"] .cb-container [style*="color: rgba(255"] {
  color: #2a2a2a !important;
}

/* CB Page tab (Scorecard/Tasks/Overview/Pages/Keyword etc. inside detail) */
html[data-design-mode="editorial"] .cb-page-tab {
  color: #5d5d5a !important;
  font-family: "JetBrains Mono", ui-monospace, monospace !important;
  font-size: 10.5px !important;
  font-weight: 500 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  border-bottom: 2px solid transparent !important;
  background: transparent !important;
  padding: 10px 16px !important;
}
html[data-design-mode="editorial"] .cb-page-tab:hover {
  color: #0a0a0a !important;
}
html[data-design-mode="editorial"] .cb-page-tab.active {
  color: #0a0a0a !important;
  border-bottom-color: #f4e14a !important;
  font-weight: 600 !important;
}

/* Client Brain sidebar client items (list of clients on left) */
html[data-design-mode="editorial"] .cb-client-item {
  color: #2a2a2a !important;
  background: #fbfaf6 !important;
  border-left: 3px solid transparent !important;
}
html[data-design-mode="editorial"] .cb-client-item:hover {
  background: #f4f1e8 !important;
  color: #0a0a0a !important;
}
html[data-design-mode="editorial"] .cb-client-item.active {
  background: #f4f1e8 !important;
  color: #0a0a0a !important;
  border-left-color: #f4e14a !important;
}
html[data-design-mode="editorial"] .cb-client-name,
html[data-design-mode="editorial"] .cb-client-item-name {
  color: #0a0a0a !important;
  font-family: "Newsreader", ui-serif, Georgia, serif !important;
  font-weight: 500 !important;
}
html[data-design-mode="editorial"] .cb-client-id,
html[data-design-mode="editorial"] .cb-client-item-id {
  color: #5d5d5a !important;
  font-family: "JetBrains Mono", ui-monospace, monospace !important;
  font-size: 10px !important;
  letter-spacing: 0.04em !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   § 41. --text-400 REMEDIATION (Pass 10)
   ─────────────────────────────────────────────────────────────────────
   Many templates use `color: var(--text-400)` for secondary text labels.
   In editorial, --text-400 is #8a8882 (ink-4) which fails AA contrast on
   cream backgrounds (3.4:1 ratio). Remap to #5d5d5a (ink-3 = 6.45:1, AA
   compliant) ONLY in editorial mode, only for color usage (keep the
   token name for border/bg/placeholder compatibility).
   ═══════════════════════════════════════════════════════════════════ */

html[data-design-mode="editorial"] {
  --text-400: #5d5d5a !important;  /* bump ink-4 → ink-3 for contrast */

  /* ════════════════════════════════════════════════════════════════════════
     CRITICAL FIX — --on-dark-* tokens (Pass 12)
     ────────────────────────────────────────────────────────────────────
     Hundreds of inline style="color:var(--on-dark-soft)" attrs across
     templates (activities.html right sidebar, all widget labels, top-
     clients cells, sentiment bars, engine step labels, etc.) were
     inheriting from style.css [data-theme="dark"] where --on-dark-soft
     = rgba(255,255,255,0.5) = translucent white on cream = invisible.

     Defining at editorial root flips every one of them to ink tones in
     a single rule — the single biggest readability fix in the app.
     ════════════════════════════════════════════════════════════════ */
  --on-dark-strong:  #0a0a0a !important;   /* was rgba(255,255,255,1)   */
  --on-dark-default: #1a1a1a !important;   /* was rgba(255,255,255,.9)  */
  --on-dark-muted:   #2a2a2a !important;   /* was rgba(255,255,255,.7)  */
  --on-dark-soft:    #5d5d5a !important;   /* was rgba(255,255,255,.5)  */
  --on-dark-faint:   #8a8a82 !important;   /* was rgba(255,255,255,.3)  */
  --on-dark-border:  #d9d4c4 !important;   /* was rgba(255,255,255,.2)  */
  --on-dark-rule:    #d9d4c4 !important;   /* was rgba(255,255,255,.08) */
}

/* ════════════════════════════════════════════════════════════════════════════
   § 49. STAT-CARD NUMBERS — yellow → ink for editorial (Pass 12)
   ─────────────────────────────────────────────────────────────────────
   .nx-stat-card + .ah-stat-card inner divs hardcode inline
   `style="color:var(--opt-yellow)"` on the number. In editorial, yellow
   on cream has low contrast and breaks the "one accent only" rule.
   Force number cells to ink via descendant selector.
   ═══════════════════════════════════════════════════════════════════ */

html[data-design-mode="editorial"] .nx-stat-card > div[style*="color:var(--opt-yellow)"],
html[data-design-mode="editorial"] .nx-stat-card > div[style*="color: var(--opt-yellow)"],
html[data-design-mode="editorial"] .nx-stat-card > div[style*="color:var(--status-emerald)"],
html[data-design-mode="editorial"] .nx-stat-card > div[style*="color: var(--status-emerald)"],
html[data-design-mode="editorial"] .nx-stat-card > div[style*="color:#8b5cf6"],
html[data-design-mode="editorial"] .nx-stat-card > div[style*="color: #8b5cf6"] {
  color: #0a0a0a !important;
  font-family: "Newsreader", ui-serif, Georgia, serif !important;
  font-weight: 400 !important;
  font-variant-numeric: tabular-nums !important;
}

/* Top-clients rows in right sidebar — client names use inline muted */
html[data-design-mode="editorial"] .ah-stats div[onclick*="selectClient"] > div > div {
  color: #0a0a0a !important;
  font-family: "Newsreader", ui-serif, Georgia, serif !important;
  font-weight: 500 !important;
}

/* Sentiment labels (inline sans) */
html[data-design-mode="editorial"] .ah-stats [style*="color:var(--on-dark-soft)"],
html[data-design-mode="editorial"] .ah-stats [style*="color: var(--on-dark-soft)"] {
  color: #5d5d5a !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   § 50. INLINE --on-dark-rule BORDERS — make visible (Pass 12)
   ─────────────────────────────────────────────────────────────────────
   Templates use inline style="border:1px solid var(--on-dark-rule)"
   extensively. Editorial needs these visible, so the --on-dark-rule
   remap above (→ #d9d4c4) is enough, but belt-and-braces for direct
   rgba(255,255,255,0.x) inline borders:
   ═══════════════════════════════════════════════════════════════════ */

html[data-design-mode="editorial"] [style*="border:1px solid rgba(255,255,255"],
html[data-design-mode="editorial"] [style*="border: 1px solid rgba(255,255,255"],
html[data-design-mode="editorial"] [style*="border-top:1px solid rgba(255,255,255"],
html[data-design-mode="editorial"] [style*="border-bottom:1px solid rgba(255,255,255"],
html[data-design-mode="editorial"] [style*="border-left:1px solid rgba(255,255,255"],
html[data-design-mode="editorial"] [style*="border-right:1px solid rgba(255,255,255"] {
  border-color: #d9d4c4 !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   § 51. SEARCH INPUT + FORM SELECT INLINE STYLES (Pass 12)
   ─────────────────────────────────────────────────────────────────────
   activities.html + others set inline
   style="background: var(--on-dark-rule); color: var(--on-dark-default);
          border-color: var(--on-dark-rule);"
   On cream paper this becomes cream-on-cream = invisible. Force paper
   bg + ink text + rule border.
   ═══════════════════════════════════════════════════════════════════ */

html[data-design-mode="editorial"] input[style*="var(--on-dark-rule)"],
html[data-design-mode="editorial"] select[style*="var(--on-dark-rule)"],
html[data-design-mode="editorial"] textarea[style*="var(--on-dark-rule)"] {
  background: #fbfaf6 !important;
  color: #0a0a0a !important;
  border: 1px solid #d9d4c4 !important;
  border-radius: 2px !important;
}

html[data-design-mode="editorial"] button[style*="background:var(--on-dark-rule)"],
html[data-design-mode="editorial"] button[style*="background: var(--on-dark-rule)"] {
  background: #fbfaf6 !important;
  color: #2a2a2a !important;
  border: 1px solid #d9d4c4 !important;
}
html[data-design-mode="editorial"] button[style*="background:var(--on-dark-rule)"]:hover {
  background: #f4f1e8 !important;
  border-color: #0a0a0a !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   § 52. SIDEBAR NAV — surgical fix for invisible items (Pass 13)
   ─────────────────────────────────────────────────────────────────────
   Ben's screenshot showed section labels invisible (FOCUS / CLIENTS /
   TEAM etc.) and the active "Inbox" item with barely-readable text.

   Root cause (style.css lines 2621-2700):
     .sidebar-link { color: rgba(255,255,255,0.45); }     → invisible
     .sidebar-link.active { color: #f0e050; bg: rgba(240,224,80,0.06); }
                                                         → yellow on cream
     .sidebar-link.active i { color: #f0e050; }          → yellow icon
     .sidebar-link:not(.active) i { color: rgba(255,255,255,0.3); }
                                                         → invisible icon
     .sidebar-section-label { color: rgba(255,255,255,0.25); }
                                                         → invisible

   Fix with direct hex + high specificity.
   ═══════════════════════════════════════════════════════════════════ */

html[data-design-mode="editorial"] .sidebar-link,
html[data-design-mode="editorial"] .sidebar a.sidebar-link,
html[data-design-mode="editorial"] .sidebar .sidebar-link {
  color: #2a2a2a !important;
  font-family: "Inter", -apple-system, sans-serif !important;
  font-weight: 500 !important;
}

html[data-design-mode="editorial"] .sidebar-link:hover,
html[data-design-mode="editorial"] .sidebar a.sidebar-link:hover {
  color: #0a0a0a !important;
  background: #f4f1e8 !important;
}

/* Active item — paper-2 bg + ink text + accent left bar */
html[data-design-mode="editorial"] .sidebar-link.active,
html[data-design-mode="editorial"] .sidebar-item.active .sidebar-link,
html[data-design-mode="editorial"] .sidebar a.sidebar-link.active {
  color: #0a0a0a !important;
  background: #fef9cc !important;  /* accent-soft — clear visual distinction */
  font-weight: 600 !important;
  position: relative !important;
}
html[data-design-mode="editorial"] .sidebar-link.active::before,
html[data-design-mode="editorial"] .sidebar-item.active .sidebar-link::before {
  content: '' !important;
  position: absolute !important;
  left: -4px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 3px !important;
  height: 16px !important;
  background: #f4e14a !important;
  border-radius: 0 3px 3px 0 !important;
}

/* Icons — non-active ink-3, active ink (NOT yellow on cream) */
html[data-design-mode="editorial"] .sidebar-link:not(.active) i,
html[data-design-mode="editorial"] .sidebar-link:not(.active) .bi {
  color: #5d5d5a !important;
}
html[data-design-mode="editorial"] .sidebar-link:hover:not(.active) i,
html[data-design-mode="editorial"] .sidebar-link:hover:not(.active) .bi {
  color: #0a0a0a !important;
}
html[data-design-mode="editorial"] .sidebar-link.active i,
html[data-design-mode="editorial"] .sidebar-link.active .bi {
  color: #0a0a0a !important;  /* ink, NOT yellow */
}

/* Section labels — bump from ink-4 to ink-3 for 10px mono to pass AA */
html[data-design-mode="editorial"] .sidebar-section-label,
html[data-design-mode="editorial"] .sidebar .sidebar-section-label {
  color: #5d5d5a !important;
  font-family: "JetBrains Mono", ui-monospace, monospace !important;
  font-size: 0.62rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  padding: 14px 14px 6px !important;
  background: transparent !important;
  border-bottom: 1px solid #ece8da !important;
  margin-bottom: 4px !important;
}
html[data-design-mode="editorial"] .sidebar-section-toggle {
  cursor: pointer !important;
  color: #5d5d5a !important;
  background: transparent !important;
}
html[data-design-mode="editorial"] .sidebar-section-toggle:hover {
  color: #0a0a0a !important;
  background: #f4f1e8 !important;
}
html[data-design-mode="editorial"] .sidebar-section-chevron {
  color: #8a8a82 !important;
  opacity: 1 !important;
  font-size: 0.6rem !important;
}

/* Sidebar container + header + footer */
html[data-design-mode="editorial"] .sidebar {
  background: #fbfaf6 !important;
  border-right: 1px solid #d9d4c4 !important;
  color: #0a0a0a !important;
}
html[data-design-mode="editorial"] .sidebar-header {
  background: #fbfaf6 !important;
  border-bottom: 1px solid #d9d4c4 !important;
}
html[data-design-mode="editorial"] .sidebar-footer {
  background: #fbfaf6 !important;
  border-top: 1px solid #d9d4c4 !important;
  color: #2a2a2a !important;
}
html[data-design-mode="editorial"] .sidebar-logo {
  color: #0a0a0a !important;
}

/* Sidebar item badges (e.g. "2" next to Websites) */
html[data-design-mode="editorial"] .sidebar-item-badge,
html[data-design-mode="editorial"] .sidebar-link .sidebar-item-badge {
  background: #ece8da !important;
  color: #2a2a2a !important;
  font-family: "JetBrains Mono", monospace !important;
  font-size: 0.62rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
  border-radius: 999px !important;
  padding: 1px 7px !important;
  font-variant-numeric: tabular-nums !important;
}
html[data-design-mode="editorial"] .sidebar-link.active .sidebar-item-badge {
  background: #f4e14a !important;
  color: #0a0a0a !important;
}

/* Count badges on collapsible section labels (e.g. "8" next to "TEAM") */
html[data-design-mode="editorial"] .sidebar-section-label .badge,
html[data-design-mode="editorial"] .sidebar-section-label .sidebar-folder-badge {
  background: #ece8da !important;
  color: #2a2a2a !important;
  font-family: "JetBrains Mono", monospace !important;
  font-size: 0.62rem !important;
  font-weight: 600 !important;
  border-radius: 999px !important;
  padding: 1px 7px !important;
  margin-left: auto !important;
  font-variant-numeric: tabular-nums !important;
}

/* Sidebar collapse button (k arrow at bottom) */
html[data-design-mode="editorial"] .sidebar-collapse-btn {
  color: #5d5d5a !important;
  background: transparent !important;
  border: 1px solid #d9d4c4 !important;
  border-radius: 2px !important;
}
html[data-design-mode="editorial"] .sidebar-collapse-btn:hover {
  color: #0a0a0a !important;
  background: #f4f1e8 !important;
  border-color: #0a0a0a !important;
}

/* User footer at bottom of sidebar (Staging Test / Admin etc.) */
html[data-design-mode="editorial"] .sidebar-user-trigger,
html[data-design-mode="editorial"] .sidebar-user-menu-item {
  color: #0a0a0a !important;
  background: transparent !important;
}
html[data-design-mode="editorial"] .sidebar-user-trigger:hover,
html[data-design-mode="editorial"] .sidebar-user-menu-item:hover {
  background: #f4f1e8 !important;
  color: #0a0a0a !important;
}
html[data-design-mode="editorial"] .sidebar-user-name {
  color: #0a0a0a !important;
  font-family: "Newsreader", serif !important;
  font-weight: 500 !important;
}
html[data-design-mode="editorial"] .sidebar-user-role {
  color: #5d5d5a !important;
  font-family: "JetBrains Mono", monospace !important;
  font-size: 0.65rem !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   § 42. ACTIVITY HUB — .ah-*, .comm-*, .text-bubble, bulk-bar (Pass 11)
   ─────────────────────────────────────────────────────────────────────
   /company/activities had zero overlay coverage. Right-sidebar stat cards
   rendered as black on cream, left client list invisible, call/text feed
   rows unstyled. Full coverage below.
   ═══════════════════════════════════════════════════════════════════ */

html[data-design-mode="editorial"] .ah-layout {
  background: #fbfaf6 !important;
  color: #0a0a0a !important;
  height: calc(100vh - 180px);
}
html[data-design-mode="editorial"] .ah-sidebar {
  background: #f4f1e8 !important;
  border-right: 1px solid #d9d4c4 !important;
  color: #0a0a0a !important;
}
html[data-design-mode="editorial"] .ah-main {
  background: #fbfaf6 !important;
  color: #0a0a0a !important;
}
html[data-design-mode="editorial"] .ah-stats {
  background: #f4f1e8 !important;
  border-left: 1px solid #d9d4c4 !important;
  color: #0a0a0a !important;
}
html[data-design-mode="editorial"] .ah-sidebar-search input {
  background: #fbfaf6 !important;
  border: 1px solid #d9d4c4 !important;
  color: #0a0a0a !important;
  font-family: "Inter", sans-serif !important;
  border-radius: 2px !important;
}
html[data-design-mode="editorial"] .ah-sidebar-item {
  color: #2a2a2a !important;
  border-left: 3px solid transparent !important;
  background: transparent !important;
}
html[data-design-mode="editorial"] .ah-sidebar-item:hover {
  background: #fbfaf6 !important;
  color: #0a0a0a !important;
}
html[data-design-mode="editorial"] .ah-sidebar-item.selected {
  background: #fbfaf6 !important;
  border-left-color: #f4e14a !important;
  color: #0a0a0a !important;
}
html[data-design-mode="editorial"] .ah-name {
  color: #0a0a0a !important;
  font-family: "Newsreader", ui-serif, Georgia, serif !important;
  font-weight: 500 !important;
}
html[data-design-mode="editorial"] .ah-count {
  background: #ece8da !important;
  color: #2a2a2a !important;
  font-family: "JetBrains Mono", monospace !important;
  font-size: 0.65rem !important;
  font-weight: 500 !important;
  border-radius: 999px !important;
  padding: 2px 8px !important;
  font-variant-numeric: tabular-nums !important;
}
html[data-design-mode="editorial"] .ah-sidebar-item.selected .ah-count {
  background: #0a0a0a !important;
  color: #fbfaf6 !important;
}
html[data-design-mode="editorial"] .ah-sidebar-section {
  color: #5d5d5a !important;
  font-family: "JetBrains Mono", monospace !important;
  font-size: 10px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
}
html[data-design-mode="editorial"] .ah-sent-dot {
  opacity: 1 !important;
}

/* Feed items (call/text/email rows) */
html[data-design-mode="editorial"] .comm-item {
  background: #fbfaf6 !important;
  border-bottom: 1px solid #d9d4c4 !important;
  color: #0a0a0a !important;
}
html[data-design-mode="editorial"] .comm-item:hover {
  background: #f4f1e8 !important;
}
html[data-design-mode="editorial"] .comm-detail.open {
  background: #f4f1e8 !important;
  color: #0a0a0a !important;
}
html[data-design-mode="editorial"] .comm-summary-text {
  color: #2a2a2a !important;
  font-family: "Inter", sans-serif !important;
  line-height: 1.6;
}
html[data-design-mode="editorial"] .comm-chevron {
  color: #5d5d5a !important;
}
html[data-design-mode="editorial"] .comm-badge {
  font-family: "JetBrains Mono", monospace !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  border-radius: 999px !important;
  padding: 2px 8px !important;
}
html[data-design-mode="editorial"] .comm-check {
  accent-color: #f4e14a !important;
}
html[data-design-mode="editorial"] .comm-action-item {
  background: #fef9cc !important;
  border-left: 3px solid #f4e14a !important;
  color: #0a0a0a !important;
  border-radius: 0 2px 2px 0 !important;
}
html[data-design-mode="editorial"] .comm-row-unassigned {
  border-left: 2px solid #c78a26 !important;
}

/* Text-message bubble chat (inside expanded comm-detail) */
html[data-design-mode="editorial"] .text-bubble {
  font-family: "Inter", sans-serif !important;
  font-size: 0.82rem !important;
  line-height: 1.5;
}
html[data-design-mode="editorial"] .text-bubble.outbound {
  background: #fef5a8 !important;
  color: #0a0a0a !important;
  border: 1px solid #f4e14a !important;
}
html[data-design-mode="editorial"] .text-bubble.inbound {
  background: #ece8da !important;
  color: #2a2a2a !important;
  border: 1px solid #d9d4c4 !important;
}
html[data-design-mode="editorial"] .text-bubble-time,
html[data-design-mode="editorial"] .text-bubble-dir {
  color: #5d5d5a !important;
  font-family: "JetBrains Mono", monospace !important;
  font-size: 0.68rem !important;
}

/* Channel filter tabs (ALL/CALLS/TEXTS/RECORDINGS/ACTIONS) */
html[data-design-mode="editorial"] .comms-channels {
  background: #f4f1e8 !important;
  border-radius: 2px !important;
  padding: 4px !important;
  border: 1px solid #d9d4c4 !important;
}

/* Right-panel stat cards (TOTAL / AVG DURATION / CLIENTS / ASSIGNED) */
html[data-design-mode="editorial"] .nx-stat-card,
html[data-design-mode="editorial"] .ah-stats .nx-stat-card {
  background: #fbfaf6 !important;
  background-image: none !important;
  border: 1px solid #d9d4c4 !important;
  color: #0a0a0a !important;
  border-radius: 2px !important;
  box-shadow: none !important;
}
html[data-design-mode="editorial"] .nx-stat-card:hover {
  transform: none !important;
  background: #fbfaf6 !important;
  border-color: #0a0a0a !important;
}

html[data-design-mode="editorial"] .ah-stats-header {
  color: #5d5d5a !important;
  font-family: "JetBrains Mono", monospace !important;
  font-size: 10px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
}
html[data-design-mode="editorial"] .ah-stats-card {
  border-bottom: 1px solid #d9d4c4 !important;
  padding-bottom: 16px !important;
}
html[data-design-mode="editorial"] .ah-stats-card:last-child {
  border-bottom: 0 !important;
}

/* Bulk actions bar */
html[data-design-mode="editorial"] .bulk-bar {
  background: #fbe7e3 !important;
  border: 1px solid #b42318 !important;
  color: #b42318 !important;
  border-radius: 2px !important;
}

/* Any cc-panel / cc-badge variants inside Activity Hub */
html[data-design-mode="editorial"] .cc-panel {
  background: #fbfaf6 !important;
  border: 1px solid #d9d4c4 !important;
  border-radius: 2px !important;
  padding: 16px !important;
  color: #0a0a0a !important;
}
html[data-design-mode="editorial"] .cc-panel-header {
  font-family: "Newsreader", serif !important;
  color: #0a0a0a !important;
  font-weight: 500 !important;
}
html[data-design-mode="editorial"] .cc-badge-muted {
  background: #ece8da !important;
  color: #5d5d5a !important;
  border: 1px solid #d9d4c4 !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   § 43. ACCOUNT MANAGERS (.am-*) — 4% → full coverage (Pass 11)
   ═══════════════════════════════════════════════════════════════════ */

html[data-design-mode="editorial"] .am-dashboard,
html[data-design-mode="editorial"] .am-page,
html[data-design-mode="editorial"] .am-detail,
html[data-design-mode="editorial"] .am-list {
  background: #fbfaf6 !important;
  color: #0a0a0a !important;
}
html[data-design-mode="editorial"] .am-header,
html[data-design-mode="editorial"] .am-profile {
  background: #fbfaf6 !important;
  border-bottom: 1px solid #d9d4c4 !important;
}
html[data-design-mode="editorial"] .am-name,
html[data-design-mode="editorial"] .am-profile h1 {
  color: #0a0a0a !important;
  font-family: "Newsreader", serif !important;
  font-weight: 500 !important;
  letter-spacing: -0.02em !important;
}
html[data-design-mode="editorial"] .am-avatar,
html[data-design-mode="editorial"] .am-avatar-placeholder {
  background: #ece8da !important;
  color: #0a0a0a !important;
  border: 1px solid #d9d4c4 !important;
}
html[data-design-mode="editorial"] .am-contact a {
  color: #0a0a0a !important;
  text-decoration: underline !important;
}
html[data-design-mode="editorial"] .am-contact a:hover {
  color: #e4cc00 !important;
}
html[data-design-mode="editorial"] .am-actions button,
html[data-design-mode="editorial"] .am-actions .btn {
  background: #fbfaf6 !important;
  border: 1px solid #d9d4c4 !important;
  color: #0a0a0a !important;
  font-family: "JetBrains Mono", monospace !important;
  font-size: 10.5px !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  border-radius: 2px !important;
}
html[data-design-mode="editorial"] .am-actions button:hover {
  background: #0a0a0a !important;
  color: #fbfaf6 !important;
  border-color: #0a0a0a !important;
}
html[data-design-mode="editorial"] .am-table,
html[data-design-mode="editorial"] .am-clients-table {
  font-family: "Inter", sans-serif !important;
  font-size: 13px !important;
  color: #2a2a2a !important;
}
html[data-design-mode="editorial"] .am-table thead th,
html[data-design-mode="editorial"] .am-clients-table thead th {
  font-family: "JetBrains Mono", monospace !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: #5d5d5a !important;
  border-bottom: 1.5px solid #0a0a0a !important;
  background: transparent !important;
  padding: 10px 12px 8px !important;
  text-align: left;
}
html[data-design-mode="editorial"] .am-table tbody td,
html[data-design-mode="editorial"] .am-clients-table tbody td {
  font-family: "Inter", sans-serif !important;
  font-size: 13px !important;
  color: #2a2a2a !important;
  border-bottom: 1px solid #d9d4c4 !important;
  padding: 11px 12px !important;
  background: transparent !important;
}
html[data-design-mode="editorial"] .am-table tbody tr:hover td,
html[data-design-mode="editorial"] .am-clients-table tbody tr:hover td {
  background: #f4f1e8 !important;
}
html[data-design-mode="editorial"] .am-hero-subtext {
  color: #5d5d5a !important;
}
html[data-design-mode="editorial"] .am-hero-title,
html[data-design-mode="editorial"] .am-hero-value,
html[data-design-mode="editorial"] .am-hero-kpi {
  font-family: "Newsreader", serif !important;
  color: #0a0a0a !important;
  font-weight: 500 !important;
}

/* AM status indicators */
html[data-design-mode="editorial"] .am-status-active,
html[data-design-mode="editorial"] .am-status-on {
  background: #e3f2e6 !important;
  color: #1f7a3a !important;
  border: 1px solid #1f7a3a !important;
}
html[data-design-mode="editorial"] .am-status-inactive,
html[data-design-mode="editorial"] .am-status-off {
  background: #ece8da !important;
  color: #5d5d5a !important;
  border: 1px solid #d9d4c4 !important;
}

/* AM filter bar */
html[data-design-mode="editorial"] .am-filters-panel,
html[data-design-mode="editorial"] .am-filter-bar {
  background: #fbfaf6 !important;
  border: 1px solid #d9d4c4 !important;
  border-radius: 2px !important;
  padding: 12px 16px !important;
}

/* AM score select + contact chips. UNSET state only — values 1..4 keep
   their solid status colour from status.html so the row reads identically
   in Nexus and editorial. Earlier this block flattened all variants to
   beige+black, which Ben flagged as messy and hard to interpret. */
html[data-design-mode="editorial"] .score-select.score-val-0 {
  background: #fbfaf6 !important;
  color: #5d5d5a !important;
  border: 1px solid #d9d4c4 !important;
  border-radius: 10px !important;
  font-family: "Inter", sans-serif !important;
}

/* Stage pills (trial/ascended/mrr/paused/failed-trial) — typography
   only. The COLOR rules previously here disagreed with editorial-final.css
   (overlay said MRR=green, final says MRR=indigo) and the conflict was
   load-order-dependent. Single source of truth for hues now lives in
   editorial-final.css §26 — see audit 2026-04-27. */
html[data-design-mode="editorial"] .stage-pill,
html[data-design-mode="editorial"] .stage-badge {
  font-family: "JetBrains Mono", monospace !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  border-radius: 999px !important;
  padding: 3px 10px !important;
  border: 1px solid transparent !important;
}
html[data-design-mode="editorial"] .trial-mrr-badge {
  background: #fcefb8 !important;
  color: #6b4d05 !important;
  border: 1px solid #c89a14 !important;
  border-radius: 999px !important;
  font-family: "JetBrains Mono", monospace !important;
  font-size: 10px !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  padding: 3px 10px !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   § 44. ADMIN (.admin-*, .user-avatar.*, .role-badge.*, settings-*,
              .action-badge.*) (Pass 11)
   ─────────────────────────────────────────────────────────────────────
   admin/users.html has Material Design hardcoded gradient avatars. Beat
   with direct-hex neutral gradients in editorial.
   ═══════════════════════════════════════════════════════════════════ */

html[data-design-mode="editorial"] .admin-page {
  background: #fbfaf6 !important;
  color: #0a0a0a !important;
}

html[data-design-mode="editorial"] .admin-card .table th {
  background: #f4f1e8 !important;
  color: #5d5d5a !important;
  font-family: "JetBrains Mono", monospace !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  border-bottom: 1px solid #0a0a0a !important;
}
html[data-design-mode="editorial"] .admin-card .table td {
  border-bottom: 1px solid #d9d4c4 !important;
  color: #2a2a2a !important;
}
html[data-design-mode="editorial"] .admin-card .table tbody tr:hover {
  background: #f4f1e8 !important;
}

/* User avatars — neutral ink gradient in editorial (was Material Design) */
html[data-design-mode="editorial"] .user-avatar {
  background: #ece8da !important;
  background-image: linear-gradient(135deg, #2a2a2a, #5d5d5a) !important;
  color: #fbfaf6 !important;
  border: 1px solid #d9d4c4 !important;
  border-radius: 50% !important;
}
html[data-design-mode="editorial"] .user-avatar.admin {
  background-image: linear-gradient(135deg, #0a0a0a, #2a2a2a) !important;
  color: #f4e14a !important;
}

/* Role badges — unified editorial chrome with accent variant for admin */
html[data-design-mode="editorial"] .role-badge {
  background: #ece8da !important;
  color: #2a2a2a !important;
  border: 1px solid #d9d4c4 !important;
  border-radius: 2px !important;
  font-family: "JetBrains Mono", monospace !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  padding: 2px 8px !important;
}
html[data-design-mode="editorial"] .role-badge.admin {
  background: #fef9cc !important;
  color: #e4cc00 !important;
  border-color: #f4e14a !important;
}
html[data-design-mode="editorial"] .role-badge.account_manager,
html[data-design-mode="editorial"] .role-badge.sales_closer,
html[data-design-mode="editorial"] .role-badge.sales_setter,
html[data-design-mode="editorial"] .role-badge.content_writer,
html[data-design-mode="editorial"] .role-badge.content_manager,
html[data-design-mode="editorial"] .role-badge.local_seo_specialist,
html[data-design-mode="editorial"] .role-badge.gmb_manager,
html[data-design-mode="editorial"] .role-badge.link_builder,
html[data-design-mode="editorial"] .role-badge.project_coordinator,
html[data-design-mode="editorial"] .role-badge.development_manager,
html[data-design-mode="editorial"] .role-badge.developer,
html[data-design-mode="editorial"] .role-badge.financial_controller,
html[data-design-mode="editorial"] .role-badge.qa_manager,
html[data-design-mode="editorial"] .role-badge.designer {
  background: #f4f1e8 !important;
  color: #0a0a0a !important;
  border: 1px solid #d9d4c4 !important;
}

/* Status badges (global) */
html[data-design-mode="editorial"] .status-badge {
  font-family: "JetBrains Mono", monospace !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  border-radius: 999px !important;
  padding: 2px 10px !important;
  border: 1px solid transparent !important;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
html[data-design-mode="editorial"] .status-badge.active,
html[data-design-mode="editorial"] .status-badge.connected,
html[data-design-mode="editorial"] .status-badge.enabled {
  background: #e3f2e6 !important;
  color: #1f7a3a !important;
  border-color: #1f7a3a !important;
}
html[data-design-mode="editorial"] .status-badge.inactive,
html[data-design-mode="editorial"] .status-badge.disabled,
html[data-design-mode="editorial"] .status-badge.disconnected {
  background: #ece8da !important;
  color: #5d5d5a !important;
  border-color: #d9d4c4 !important;
}
html[data-design-mode="editorial"] .status-badge.invited,
html[data-design-mode="editorial"] .status-badge.pending {
  background: #fef9cc !important;
  color: #e4cc00 !important;
  border-color: #e4cc00 !important;
}
html[data-design-mode="editorial"] .status-badge.failed,
html[data-design-mode="editorial"] .status-badge.error {
  background: #fbe7e3 !important;
  color: #b42318 !important;
  border-color: #b42318 !important;
}

/* Action badges (audit logs) */
html[data-design-mode="editorial"] .action-badge {
  font-family: "JetBrains Mono", monospace !important;
  font-size: 0.7rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  border-radius: 2px !important;
  padding: 2px 6px !important;
  border: 1px solid transparent !important;
}
html[data-design-mode="editorial"] .action-badge.create {
  background: #e3f2e6 !important;
  color: #1f7a3a !important;
  border-color: #1f7a3a !important;
}
html[data-design-mode="editorial"] .action-badge.update,
html[data-design-mode="editorial"] .action-badge.edit {
  background: #fef9cc !important;
  color: #e4cc00 !important;
  border-color: #e4cc00 !important;
}
html[data-design-mode="editorial"] .action-badge.delete,
html[data-design-mode="editorial"] .action-badge.remove {
  background: #fbe7e3 !important;
  color: #b42318 !important;
  border-color: #b42318 !important;
}

/* Settings tabs + cards */
html[data-design-mode="editorial"] .settings-tabs {
  border-bottom: 1px solid #d9d4c4 !important;
  background: #fbfaf6 !important;
}
html[data-design-mode="editorial"] .settings-tabs .nav-link {
  color: #5d5d5a !important;
  border-bottom: 2px solid transparent !important;
  border-radius: 0 !important;
  font-family: "JetBrains Mono", monospace !important;
  font-size: 10.5px !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
}
html[data-design-mode="editorial"] .settings-tabs .nav-link:hover {
  border-bottom-color: #d9d4c4 !important;
  color: #0a0a0a !important;
}
html[data-design-mode="editorial"] .settings-tabs .nav-link.active {
  border-bottom-color: #0a0a0a !important;
  color: #0a0a0a !important;
  background: transparent !important;
  font-weight: 600 !important;
}
html[data-design-mode="editorial"] .settings-card,
html[data-design-mode="editorial"] .settings-section {
  background: #fbfaf6 !important;
  border: 1px solid #d9d4c4 !important;
  border-radius: 2px !important;
}
html[data-design-mode="editorial"] .settings-card-header {
  border-bottom: 1px solid #d9d4c4 !important;
  background: #fbfaf6 !important;
}
html[data-design-mode="editorial"] .settings-card-header h5,
html[data-design-mode="editorial"] .settings-section-title {
  color: #0a0a0a !important;
  font-family: "Newsreader", serif !important;
  font-weight: 500 !important;
}
html[data-design-mode="editorial"] .settings-card-footer {
  background: #f4f1e8 !important;
  border-top: 1px solid #d9d4c4 !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   § 45. INTEGRATIONS (.integrations-page, .integration-*, .account-*,
              .btn-icon*) (Pass 11)
   ═══════════════════════════════════════════════════════════════════ */

html[data-design-mode="editorial"] .integrations-page {
  background: #fbfaf6 !important;
  color: #0a0a0a !important;
}

html[data-design-mode="editorial"] .integration-card {
  background: #fbfaf6 !important;
  border: 1px solid #d9d4c4 !important;
  border-radius: 2px !important;
  color: #0a0a0a !important;
}
html[data-design-mode="editorial"] .integration-card:hover {
  border-color: #0a0a0a !important;
}

/* Beat inline integration-icon-badge gradients */
html[data-design-mode="editorial"] .integration-icon-badge,
html[data-design-mode="editorial"] .integration-icon-badge[style*="linear-gradient"] {
  background: #f4f1e8 !important;
  background-image: none !important;
  border: 1px solid #d9d4c4 !important;
  color: #0a0a0a !important;
  border-radius: 2px !important;
}

html[data-design-mode="editorial"] .integration-header {
  border-bottom: 1px solid #d9d4c4 !important;
  background: #fbfaf6 !important;
}
html[data-design-mode="editorial"] .integration-title h3 {
  color: #0a0a0a !important;
  font-family: "Newsreader", serif !important;
  font-weight: 500 !important;
}

html[data-design-mode="editorial"] .account-row {
  background: #f4f1e8 !important;
  border: 1px solid #d9d4c4 !important;
  border-radius: 2px !important;
  color: #0a0a0a !important;
}
html[data-design-mode="editorial"] .account-row:hover {
  border-color: #0a0a0a !important;
  background: #fbfaf6 !important;
}

html[data-design-mode="editorial"] .btn-icon {
  background: #fbfaf6 !important;
  border: 1px solid #d9d4c4 !important;
  color: #5d5d5a !important;
  border-radius: 2px !important;
}
html[data-design-mode="editorial"] .btn-icon:hover {
  background: #f4f1e8 !important;
  color: #0a0a0a !important;
  border-color: #0a0a0a !important;
}
html[data-design-mode="editorial"] .btn-icon-warning:hover {
  border-color: #e4cc00 !important;
  color: #e4cc00 !important;
}
html[data-design-mode="editorial"] .btn-icon-danger:hover {
  border-color: #b42318 !important;
  color: #b42318 !important;
  background: #fbe7e3 !important;
}

/* Resource pill (e.g. "GA4 property" chips on account rows) */
html[data-design-mode="editorial"] .resource-pill {
  background: #ece8da !important;
  color: #2a2a2a !important;
  border: 1px solid #d9d4c4 !important;
  font-family: "JetBrains Mono", monospace !important;
  font-size: 10px !important;
  letter-spacing: 0.04em !important;
  border-radius: 999px !important;
  padding: 2px 8px !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   § 46. CLIENT SETUP WIZARD (.cs-*) — token redefinition (Pass 11)
   ─────────────────────────────────────────────────────────────────────
   The wizard defines its own --cs-* tokens at .cs-page level. Redefine
   them all at .cs-page scope in editorial so every child auto-themes.
   ═══════════════════════════════════════════════════════════════════ */

html[data-design-mode="editorial"] .cs-page {
  background: #fbfaf6 !important;
  color: #0a0a0a !important;
  --cs-bg: #fbfaf6 !important;
  --cs-surface: #f4f1e8 !important;
  --cs-surface-hover: #fbfaf6 !important;
  --cs-border: #d9d4c4 !important;
  --cs-text: #0a0a0a !important;
  --cs-text-dim: #5d5d5a !important;
  --cs-text-faint: #8a8882 !important;
  --cs-yellow: #f4e14a !important;
  --cs-green: #1f7a3a !important;
  --cs-danger: #b42318 !important;
}
html[data-design-mode="editorial"] .cs-title {
  color: #0a0a0a !important;
  font-family: "Newsreader", serif !important;
  font-weight: 500 !important;
  letter-spacing: -0.015em !important;
}
html[data-design-mode="editorial"] .cs-tab {
  color: #5d5d5a !important;
  background: transparent !important;
  border: 1px solid transparent !important;
  border-radius: 2px !important;
  font-family: "JetBrains Mono", monospace !important;
  font-size: 10.5px !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}
html[data-design-mode="editorial"] .cs-tab.active {
  background: #fef9cc !important;
  color: #e4cc00 !important;
  border-color: #f4e14a !important;
}
html[data-design-mode="editorial"] .cs-slot {
  background: #fbfaf6 !important;
  border: 1px solid #d9d4c4 !important;
  border-radius: 2px !important;
}
html[data-design-mode="editorial"] .cs-slot-head {
  border-bottom: 1px solid #d9d4c4 !important;
  background: #fbfaf6 !important;
}
html[data-design-mode="editorial"] .cs-slot-title {
  color: #0a0a0a !important;
  font-family: "Newsreader", serif !important;
  font-weight: 500 !important;
}
html[data-design-mode="editorial"] .cs-option {
  border: 1px solid #d9d4c4 !important;
  background: #f4f1e8 !important;
  border-radius: 2px !important;
  color: #0a0a0a !important;
}
html[data-design-mode="editorial"] .cs-option:hover {
  border-color: #0a0a0a !important;
  background: #fbfaf6 !important;
}
html[data-design-mode="editorial"] .cs-option:has(input[type="radio"]:checked),
html[data-design-mode="editorial"] .cs-option:has(input[type="checkbox"]:checked) {
  border-color: #f4e14a !important;
  background: #fef9cc !important;
}
html[data-design-mode="editorial"] .cs-option input[type="radio"],
html[data-design-mode="editorial"] .cs-option input[type="checkbox"] {
  accent-color: #f4e14a !important;
}
html[data-design-mode="editorial"] .cs-btn-primary {
  background: #0a0a0a !important;
  color: #fbfaf6 !important;
  border: 1px solid #0a0a0a !important;
  border-radius: 2px !important;
  font-family: "JetBrains Mono", monospace !important;
  font-size: 10.5px !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}
html[data-design-mode="editorial"] .cs-btn-primary:hover {
  background: #f4e14a !important;
  color: #0a0a0a !important;
  border-color: #f4e14a !important;
}
html[data-design-mode="editorial"] .cs-status-pill,
html[data-design-mode="editorial"] .cs-tab-pill {
  font-family: "JetBrains Mono", monospace !important;
  font-size: 10px !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  border-radius: 999px !important;
  padding: 2px 8px !important;
  border: 1px solid transparent !important;
}
html[data-design-mode="editorial"] .cs-status-pill.linked,
html[data-design-mode="editorial"] .cs-tab-pill.linked {
  background: #e3f2e6 !important;
  color: #1f7a3a !important;
  border-color: #1f7a3a !important;
}
html[data-design-mode="editorial"] .cs-status-pill.empty,
html[data-design-mode="editorial"] .cs-tab-pill.empty {
  background: #ece8da !important;
  color: #5d5d5a !important;
  border-color: #d9d4c4 !important;
}
html[data-design-mode="editorial"] .cs-status-pill.missing,
html[data-design-mode="editorial"] .cs-tab-pill.missing {
  background: #fbe7e3 !important;
  color: #b42318 !important;
  border-color: #b42318 !important;
}
html[data-design-mode="editorial"] .cs-flash.warning {
  background: #fef9cc !important;
  color: #e4cc00 !important;
  border-color: #e4cc00 !important;
}
html[data-design-mode="editorial"] .cs-flash.danger {
  background: #fbe7e3 !important;
  color: #b42318 !important;
  border-color: #b42318 !important;
}
html[data-design-mode="editorial"] .cs-search {
  background: #fbfaf6 !important;
  border: 1px solid #d9d4c4 !important;
  color: #0a0a0a !important;
  border-radius: 2px !important;
}
html[data-design-mode="editorial"] .cs-search:focus {
  border-color: #f4e14a !important;
  box-shadow: 0 0 0 3px #fef9cc !important;
  outline: none !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   § 47. DEBUG + SYNC + WEBHOOKS (.dbg-*, .sync-*, .wh-*) (Pass 11)
   ═══════════════════════════════════════════════════════════════════ */

html[data-design-mode="editorial"] .dbg-card,
html[data-design-mode="editorial"] .sync-card,
html[data-design-mode="editorial"] .wh-form,
html[data-design-mode="editorial"] .wh-card {
  background: #fbfaf6 !important;
  border: 1px solid #d9d4c4 !important;
  border-radius: 2px !important;
  color: #0a0a0a !important;
}
html[data-design-mode="editorial"] .dbg-pill-ok {
  background: #e3f2e6 !important;
  color: #1f7a3a !important;
  border: 1px solid #1f7a3a !important;
}
html[data-design-mode="editorial"] .dbg-pill-warn {
  background: #fef9cc !important;
  color: #e4cc00 !important;
  border: 1px solid #e4cc00 !important;
}
html[data-design-mode="editorial"] .dbg-pill-fail {
  background: #fbe7e3 !important;
  color: #b42318 !important;
  border: 1px solid #b42318 !important;
}
html[data-design-mode="editorial"] .dbg-table,
html[data-design-mode="editorial"] .sync-table {
  font-family: "Inter", sans-serif !important;
  color: #2a2a2a !important;
}
html[data-design-mode="editorial"] .dbg-table thead th,
html[data-design-mode="editorial"] .sync-table thead th {
  font-family: "JetBrains Mono", monospace !important;
  font-size: 10px !important;
  color: #5d5d5a !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  border-bottom: 1.5px solid #0a0a0a !important;
}
html[data-design-mode="editorial"] .dbg-table td,
html[data-design-mode="editorial"] .sync-table td {
  border-bottom: 1px solid #d9d4c4 !important;
  color: #2a2a2a !important;
}
html[data-design-mode="editorial"] .sync-card .count {
  color: #0a0a0a !important;
  font-family: "Newsreader", serif !important;
  font-weight: 500 !important;
  font-variant-numeric: tabular-nums !important;
}
html[data-design-mode="editorial"] .wh-btn {
  background: #fbfaf6 !important;
  border: 1px solid #d9d4c4 !important;
  color: #0a0a0a !important;
  border-radius: 2px !important;
  font-family: "JetBrains Mono", monospace !important;
  font-size: 10.5px !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}
html[data-design-mode="editorial"] .wh-btn:hover {
  background: #0a0a0a !important;
  color: #fbfaf6 !important;
}
html[data-design-mode="editorial"] .wh-btn.danger {
  border-color: #b42318 !important;
  color: #b42318 !important;
}
html[data-design-mode="editorial"] .wh-btn.danger:hover {
  background: #b42318 !important;
  color: #fbfaf6 !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   § 48. EDITORIAL ELEMENTS + TS + LC expansions (Pass 11)
   ═══════════════════════════════════════════════════════════════════ */

html[data-design-mode="editorial"] .ed-circle,
html[data-design-mode="editorial"] .ed-cost,
html[data-design-mode="editorial"] .ed-hint,
html[data-design-mode="editorial"] .ed-timeline {
  color: #0a0a0a !important;
  background: #fbfaf6 !important;
}
html[data-design-mode="editorial"] .ed-cost {
  font-family: "Newsreader", serif !important;
  font-variant-numeric: tabular-nums !important;
  font-weight: 500 !important;
}
html[data-design-mode="editorial"] .ed-hint {
  color: #5d5d5a !important;
  font-family: "Inter", sans-serif !important;
  font-size: 0.78rem !important;
}

/* TS (troubleshoot status) badges */
html[data-design-mode="editorial"] .ts-badge {
  font-family: "JetBrains Mono", monospace !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  border-radius: 999px !important;
  padding: 2px 8px !important;
  border: 1px solid transparent !important;
}

/* LC (Lifecycle) remaining chrome */
html[data-design-mode="editorial"] .lc-step-label,
html[data-design-mode="editorial"] .lc-step-count {
  font-family: "JetBrains Mono", monospace !important;
  color: #5d5d5a !important;
  font-size: 10px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
}
html[data-design-mode="editorial"] .lc-stage-count,
html[data-design-mode="editorial"] .lc-stat-value {
  font-family: "Newsreader", serif !important;
  font-variant-numeric: tabular-nums !important;
  color: #0a0a0a !important;
  font-weight: 500 !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   § 53. TOPBAR POLISH + UNIFIED PAPER SURFACE (Pass 14)
   ─────────────────────────────────────────────────────────────────────
   Ben flagged 4 specific editorial bugs:

   Bug 1 — Search bar turns BLACK when focused.
     Root cause: style.css:682 `[data-theme="dark"] .form-control:focus`
     sets `background: #000000 !important`. The overlay's focus rule set
     border + shadow but NEVER overrode background, so dark-mode black
     bled through on every input focus.

   Bug 2 — Hamburger menu visible on desktop.
     Root cause: style.css:3032 sets `.topbar-toggle { display: none }`
     with @media (max-width:767.98px) { display:flex } at :3081. The
     overlay's `.topbar-toggle` rule set color + background but didn't
     preserve the desktop display:none.

   Bug 3 — Search icon clipping into placeholder text.
     Root cause: base.html:762 inlines padding-left:2.2rem to clear
     the absolutely-positioned icon. Overlay:3163 used shorthand
     `padding: 6px 12px !important` which reset ALL four sides,
     collapsing padding-left to 12px. Icon stayed at left:0.75rem
     but content now starts at 12px = collision.

   Bug 4 — Page section "island" effect.
     Root cause: overlay:704-705 sets .app-main and .app-content to
     `background: var(--paper-2)` (#f4f1e8) but body is --paper
     (#fbfaf6). Cream-2 rectangle on cream-1 body = visible edge seam.
     Same at overlay:763 for .dash-v2 and :1442 for .empty-state.

   Fix: all page-level wrappers snap to #fbfaf6 (--paper). Only
   explicit .card/.panel/.modal components retain paper-2 distinction.
   ═══════════════════════════════════════════════════════════════════ */

/* Bug 1 — form focus stays paper across every input/textarea/select.
   .topbar-search input is excluded — its focus styling lives in
   topbar-search.css (focus-within on the wrapper, not the input). */
html[data-design-mode="editorial"] .form-control:focus,
html[data-design-mode="editorial"] .form-select:focus,
html[data-design-mode="editorial"] input:focus:not([type="checkbox"]):not([type="radio"]):not(#globalSearchInput),
html[data-design-mode="editorial"] textarea:focus,
html[data-design-mode="editorial"] select:focus {
  background: #fbfaf6 !important;
  background-color: #fbfaf6 !important;
  color: #0a0a0a !important;
  border-color: #0a0a0a !important;
  box-shadow: 0 0 0 3px #fef9cc !important;
  outline: none !important;
}

/* Catch inline search inputs too (JS-generated or template-level) */
html[data-design-mode="editorial"] input[type="text"]:focus,
html[data-design-mode="editorial"] input[type="search"]:focus,
html[data-design-mode="editorial"] input[type="email"]:focus,
html[data-design-mode="editorial"] input[type="url"]:focus,
html[data-design-mode="editorial"] input[type="number"]:focus,
html[data-design-mode="editorial"] input[type="password"]:focus,
html[data-design-mode="editorial"] input[type="tel"]:focus {
  background: #fbfaf6 !important;
  color: #0a0a0a !important;
}

/* Bug 2 — hamburger/mobile-toggle hidden on desktop (>767.98px) */
html[data-design-mode="editorial"] .topbar-toggle,
html[data-design-mode="editorial"] .mobile-nav-toggle,
html[data-design-mode="editorial"] .sidebar-mobile-toggle,
html[data-design-mode="editorial"] .navbar-toggler {
  display: none !important;
}
@media (max-width: 767.98px) {
  html[data-design-mode="editorial"] .topbar-toggle,
  html[data-design-mode="editorial"] .mobile-nav-toggle,
  html[data-design-mode="editorial"] .sidebar-mobile-toggle,
  html[data-design-mode="editorial"] .navbar-toggler {
    display: flex !important;
  }
}

/* .topbar-search rules moved to app/static/css/topbar-search.css */

/* Bug 4 — unified paper surface on EVERY page-level wrapper.
   Body is #fbfaf6, so app-main / dash-v2 / company-dashboard / am-
   dashboard / inbox-page all must match. No cream-on-cream seam. */
html[data-design-mode="editorial"] body,
html[data-design-mode="editorial"] .app-main,
html[data-design-mode="editorial"] .app-content,
html[data-design-mode="editorial"] .main-content,
html[data-design-mode="editorial"] .content-area,
html[data-design-mode="editorial"] .page-container,
html[data-design-mode="editorial"] .page-wrap,
html[data-design-mode="editorial"] .dash-v2,
html[data-design-mode="editorial"] .company-dashboard,
html[data-design-mode="editorial"] .am-dashboard,
html[data-design-mode="editorial"] .admin-dashboard,
html[data-design-mode="editorial"] .inbox-page,
html[data-design-mode="editorial"] .inbox-stats,
html[data-design-mode="editorial"] .inbox-task-list,
html[data-design-mode="editorial"] .tasks-page,
html[data-design-mode="editorial"] .integrations-page,
html[data-design-mode="editorial"] .settings-page,
html[data-design-mode="editorial"] .admin-page,
html[data-design-mode="editorial"] .report-page {
  background: #fbfaf6 !important;
}

/* Empty states inside page wrappers — flat paper, dashed rule border
   (was paper-2 which made them look like floating cards) */
html[data-design-mode="editorial"] .empty-state,
html[data-design-mode="editorial"] .dash-v2 .empty-state,
html[data-design-mode="editorial"] .dash-v2 .pipeline-empty-state,
html[data-design-mode="editorial"] .placeholder-card,
html[data-design-mode="editorial"] .no-data-state,
html[data-design-mode="editorial"] .loading-state {
  background: #fbfaf6 !important;
  border: 1px dashed #d9d4c4 !important;
  color: #5d5d5a !important;
}
html[data-design-mode="editorial"] .empty-state i,
html[data-design-mode="editorial"] .empty-state .bi,
html[data-design-mode="editorial"] .no-data-state i {
  color: #8a8a82 !important;
  opacity: 1 !important;
}

/* Loading spinner text — readable ink-3 not faint white */
html[data-design-mode="editorial"] .loading-text,
html[data-design-mode="editorial"] [id*="Loading"],
html[data-design-mode="editorial"] [class*="loading-"],
html[data-design-mode="editorial"] .spinner-border + span,
html[data-design-mode="editorial"] .text-muted {
  color: #5d5d5a !important;
  opacity: 1 !important;
}

/* Filter bar containers — transparent, inherit page paper (not paper-2) */
html[data-design-mode="editorial"] .filter-bar,
html[data-design-mode="editorial"] .filter-row,
html[data-design-mode="editorial"] .inbox-filters,
html[data-design-mode="editorial"] .am-filters,
html[data-design-mode="editorial"] .dash-filters {
  background: transparent !important;
}

/* Filter pill selects/dropdowns — paper chrome */
html[data-design-mode="editorial"] .filter-bar select,
html[data-design-mode="editorial"] .filter-bar .form-select,
html[data-design-mode="editorial"] .filter-row select,
html[data-design-mode="editorial"] .filter-row .form-select {
  background: #fbfaf6 !important;
  color: #0a0a0a !important;
  border: 1px solid #d9d4c4 !important;
  border-radius: 999px !important;
  padding: 6px 28px 6px 14px !important;
  font-family: "Inter", -apple-system, sans-serif !important;
  font-size: 0.82rem !important;
}

/* ============================================================================
   PASS 15 (2026-04-26) — Cross-cutting leakage from production QA
   ----------------------------------------------------------------------------
   User feedback after Pass 14 ship: tables still show black thead gradient,
   filter dropdowns keep rounded corners, sidebar items are 12px-rounded,
   AM detail "ascended" stage chip is hardcoded blue, custom modals
   (cm-edit-modal, br-modal, am-drill-panel) and the entire heatmap surface
   weren't covered. This pass adds explicit !important rules for every
   class enumerated by a 5-agent verification sweep.
   ========================================================================= */

/* 1.  TABLES — every thead variant in the legacy + new design system.
       Replaces theme-dark.css's #000000 thead bg with paper-2 + ink-faint. */
html[data-design-mode="editorial"] .table thead th,
html[data-design-mode="editorial"] .am-table thead th,
html[data-design-mode="editorial"] .clients-table thead th,
html[data-design-mode="editorial"] .client-list-table thead th,
html[data-design-mode="editorial"] .status-table thead th,
html[data-design-mode="editorial"] .dm-table thead th,
html[data-design-mode="editorial"] .dv2-table thead th,
html[data-design-mode="editorial"] .cb-table thead th,
html[data-design-mode="editorial"] table thead th {
  background: var(--surface-1) !important;
  background-image: none !important;
  background-color: var(--surface-1) !important;
  color: var(--ink-faint) !important;
  border-bottom-color: var(--border-standard) !important;
  border-top: none !important;
}
html[data-design-mode="editorial"] .table thead,
html[data-design-mode="editorial"] table thead {
  background: var(--surface-1) !important;
}
html[data-design-mode="editorial"] th[style*="position:sticky"],
html[data-design-mode="editorial"] th[style*="position: sticky"] {
  background: var(--surface-1) !important;
}
html[data-design-mode="editorial"] .sortable-header,
html[data-design-mode="editorial"] .sortable-header:hover {
  color: var(--ink-faint) !important;
  background-color: var(--surface-1) !important;
}

/* 2.  TOPBAR — Pass 14 missed direct .topbar override. */
html[data-design-mode="editorial"] .topbar,
html[data-design-mode="editorial"] .topbar-inner {
  background: var(--surface-0) !important;
  background-color: var(--surface-0) !important;
  border-bottom: 1px solid var(--border-standard) !important;
  color: var(--ink-strong) !important;
}
html[data-design-mode="editorial"] .topbar a,
html[data-design-mode="editorial"] .topbar button {
  color: var(--ink-body) !important;
}

/* 3.  SIDEBAR — flatten 12px radius + cream surfaces. */
html[data-design-mode="editorial"] .sidebar,
html[data-design-mode="editorial"] .sidebar-inner {
  background: var(--surface-0) !important;
  background-color: var(--surface-0) !important;
  border-right: 1px solid var(--border-standard) !important;
}
html[data-design-mode="editorial"] .sidebar a,
html[data-design-mode="editorial"] .sidebar .sidebar-item,
html[data-design-mode="editorial"] .sidebar-menu a {
  border-radius: 2px !important;
  color: var(--ink-body) !important;
}
html[data-design-mode="editorial"] .sidebar a.active,
html[data-design-mode="editorial"] .sidebar .sidebar-item.active {
  background: var(--accent-tint) !important;
  color: var(--ink-strong) !important;
  border-left-color: var(--ink-strong) !important;
}
html[data-design-mode="editorial"] .sidebar a:hover,
html[data-design-mode="editorial"] .sidebar .sidebar-item:hover {
  background: var(--surface-1) !important;
  color: var(--ink-strong) !important;
}

/* 4.  FORM CONTROLS — universal 2px corners + paper chrome. */
html[data-design-mode="editorial"] .clients-filter-input,
html[data-design-mode="editorial"] .clients-filter-select,
html[data-design-mode="editorial"] .am-filters-toggle,
html[data-design-mode="editorial"] .form-control,
html[data-design-mode="editorial"] .form-select,
html[data-design-mode="editorial"] input[type="text"],
html[data-design-mode="editorial"] input[type="search"],
html[data-design-mode="editorial"] input[type="email"],
html[data-design-mode="editorial"] input[type="number"],
html[data-design-mode="editorial"] input[type="password"],
html[data-design-mode="editorial"] input[type="url"],
html[data-design-mode="editorial"] input[type="tel"],
html[data-design-mode="editorial"] textarea,
html[data-design-mode="editorial"] select,
html[data-design-mode="editorial"] .filter-bar select,
html[data-design-mode="editorial"] .filter-bar .form-select,
html[data-design-mode="editorial"] .filter-row select,
html[data-design-mode="editorial"] .filter-row .form-select {
  border-radius: 2px !important;
  background: var(--surface-0) !important;
  background-color: var(--surface-0) !important;
  color: var(--ink-strong) !important;
  border: 1px solid var(--border-standard) !important;
}
html[data-design-mode="editorial"] .clients-filter-input:focus,
html[data-design-mode="editorial"] .clients-filter-select:focus,
html[data-design-mode="editorial"] .form-control:focus,
html[data-design-mode="editorial"] .form-select:focus {
  border-color: var(--accent-border) !important;
  box-shadow: 0 0 0 2px var(--accent-focus) !important;
  outline: none !important;
}
html[data-design-mode="editorial"] ::placeholder {
  color: var(--ink-faint) !important;
  opacity: 1 !important;
}

/* 5.  CARDS — flatten everything to 2px (legacy used 12-20px). */
html[data-design-mode="editorial"] .dv2-kpi,
html[data-design-mode="editorial"] .dv2-detailed-card,
html[data-design-mode="editorial"] .dv2-panel,
html[data-design-mode="editorial"] .dv2-sec,
html[data-design-mode="editorial"] .kpi-tile,
html[data-design-mode="editorial"] .ui-card,
html[data-design-mode="editorial"] .am-card,
html[data-design-mode="editorial"] .am-clients-section,
html[data-design-mode="editorial"] .clients-filter-bar,
html[data-design-mode="editorial"] .am-filters-panel,
html[data-design-mode="editorial"] .bulk-action-bar,
html[data-design-mode="editorial"] .gbp-detail-hero,
html[data-design-mode="editorial"] .gbp-detail-tab,
html[data-design-mode="editorial"] .cb-card,
html[data-design-mode="editorial"] .cb-tile,
html[data-design-mode="editorial"] .cs-card {
  border-radius: 2px !important;
}
html[data-design-mode="editorial"] .am-clients-section,
html[data-design-mode="editorial"] .clients-filter-bar,
html[data-design-mode="editorial"] .bulk-action-bar {
  background: var(--surface-1) !important;
  border: 1px solid var(--border-subtle) !important;
}

/* 6.  BADGES + PILLS — flatten everything except explicit pill carve-outs.
   .score-select is excluded: it's a pill (9999px) on every page (Weekly
   Ledger, AM detail, problem clients) and Ben specifically wants the
   pill shape preserved cross-mode. */
html[data-design-mode="editorial"] .badge:not(.rounded-pill):not(.stage-pill):not(.status-chip):not(.cb-pill),
html[data-design-mode="editorial"] .chip:not(.stage-pill):not(.cb-pill),
html[data-design-mode="editorial"] .br-status-dot,
html[data-design-mode="editorial"] .score-dot,
html[data-design-mode="editorial"] .score-val-1:not(.score-select),
html[data-design-mode="editorial"] .score-val-2:not(.score-select),
html[data-design-mode="editorial"] .score-val-3:not(.score-select),
html[data-design-mode="editorial"] .score-val-4:not(.score-select),
html[data-design-mode="editorial"] .score-val-5:not(.score-select) {
  border-radius: 2px !important;
}

/* 7.  STAGE BADGES — fix hardcoded #8ec8e0 ascended-blue (account_managers/detail). */
html[data-design-mode="editorial"] .stage-badge.ascended,
html[data-design-mode="editorial"] .stage-fill.ascended {
  background: var(--status-info-bg) !important;
  color: var(--status-info) !important;
  border-color: var(--status-info-border) !important;
}

/* 8.  CUSTOM MODALS not yet covered. */
html[data-design-mode="editorial"] .cm-edit-modal,
html[data-design-mode="editorial"] .cm-edit-modal__title,
html[data-design-mode="editorial"] .cm-edit-modal__body,
html[data-design-mode="editorial"] .cm-edit-modal__footer {
  background: var(--surface-0) !important;
  color: var(--ink-strong) !important;
  border-color: var(--border-standard) !important;
  border-radius: 2px !important;
}
html[data-design-mode="editorial"] .cm-edit-modal__title {
  font-family: var(--font-display) !important;
}
html[data-design-mode="editorial"] .br-modal,
html[data-design-mode="editorial"] .br-modal-header,
html[data-design-mode="editorial"] .br-modal-body,
html[data-design-mode="editorial"] .br-modal-footer {
  background: var(--surface-0) !important;
  color: var(--ink-strong) !important;
  border-color: var(--border-standard) !important;
  border-radius: 2px !important;
}
/* Drill modal — only the PANEL gets paper. The OVERLAY needs to stay
   a translucent dim layer (not solid surface-0) or it whites out the
   whole screen behind the modal. The previous bundled rule made the
   overlay opaque cream which Ben rightly called "completely whites
   out my background" 2026-04-27. Soft warm-tinted gradient now adds
   depth without obscuring the dashboard underneath. */
html[data-design-mode="editorial"] .am-drill-panel {
  background: var(--surface-0) !important;
  color: var(--ink-strong) !important;
  border-color: var(--border-standard) !important;
  border-radius: 12px !important;
  box-shadow: 0 32px 80px rgba(60, 50, 30, 0.18) !important;
}
html[data-design-mode="editorial"] .am-drill-overlay {
  /* Token-driven scrim — editorial remaps of --accent-ghost (paper-yellow
     tint) and --surface-scrim (warmer cream-friendly dim) flip in
     cleanly. Previous version baked literal rgba values which couldn't
     migrate when canonical tokens shifted. */
  background:
    radial-gradient(ellipse at 50% 30%, var(--accent-ghost), transparent 60%),
    var(--surface-scrim) !important;
  backdrop-filter: blur(8px) saturate(1.05) !important;
  -webkit-backdrop-filter: blur(8px) saturate(1.05) !important;
}

/* 9.  CLIENT BRAIN GBP TAB — _gbp_panel.html. */
html[data-design-mode="editorial"] .cm-gbp-panel,
html[data-design-mode="editorial"] .cm-gbp-picker,
html[data-design-mode="editorial"] .cm-gbp-detail-host {
  background: var(--surface-0) !important;
  color: var(--ink-strong) !important;
  border-color: var(--border-standard) !important;
  border-radius: 2px !important;
}
html[data-design-mode="editorial"] .cm-gbp-picker__hd {
  border-color: var(--border-standard) !important;
  color: var(--ink-muted) !important;
}

/* 10. GBP PROFILE DETAIL — full page (editorial = paper, not Nexus dark). */
html[data-design-mode="editorial"] .gbp-detail,
html[data-design-mode="editorial"] .gbp-detail-page,
html[data-design-mode="editorial"] .gbp-detail-hero,
html[data-design-mode="editorial"] .gbp-detail-tabs,
html[data-design-mode="editorial"] .gbp-detail-tab {
  background: var(--surface-0) !important;
  color: var(--ink-strong) !important;
  border-color: var(--border-standard) !important;
}
html[data-design-mode="editorial"] .gbp-detail-tab.active {
  background: var(--accent-tint) !important;
  border-color: var(--accent-border) !important;
}
html[data-design-mode="editorial"] .gbp-detail-title {
  font-family: var(--font-display) !important;
  color: var(--ink-strong) !important;
}

/* 11. BUTTONS — universal 2px + accent fixes. */
html[data-design-mode="editorial"] .btn,
html[data-design-mode="editorial"] button.btn,
html[data-design-mode="editorial"] a.btn,
html[data-design-mode="editorial"] .am-btn-primary,
html[data-design-mode="editorial"] .cb-btn-primary,
html[data-design-mode="editorial"] .gbp-btn,
html[data-design-mode="editorial"] .gbp-btn-primary,
html[data-design-mode="editorial"] .opt-btn,
html[data-design-mode="editorial"] .opt-btn-primary {
  border-radius: 2px !important;
}
html[data-design-mode="editorial"] .btn-primary,
html[data-design-mode="editorial"] .am-btn-primary,
html[data-design-mode="editorial"] .gbp-btn-primary {
  background: var(--accent) !important;
  color: var(--accent-ink) !important;
  border-color: var(--accent-hover) !important;
}

/* 12. NAV BUTTON IN TOPBAR (Add Client). */
html[data-design-mode="editorial"] .am-actions .btn,
html[data-design-mode="editorial"] .am-actions a {
  border-radius: 2px !important;
  background: var(--surface-0) !important;
  border: 1px solid var(--border-standard) !important;
  color: var(--ink-strong) !important;
}
html[data-design-mode="editorial"] .am-actions .btn:hover {
  background: var(--surface-2) !important;
  border-color: var(--ink-3) !important;
}

/* 13. HEATMAP — entire .hg-app token system needs paper-mode equivalents.
       The legacy CSS uses 52 dark-only --hg-* vars; redefine the critical
       ones so cells, panels, controls and legend all switch. */
html[data-design-mode="editorial"] .hg-app,
html[data-design-mode="editorial"] .heatmap-app,
html[data-design-mode="editorial"] [class*="hg-"] {
  --hg-bg: var(--surface-0);
  --hg-bg-card: var(--surface-1);
  --hg-bg-floating: rgba(255, 255, 255, 0.92);
  --hg-bg-fullbleed: var(--surface-1);
  --hg-bg-elevated: var(--surface-1);
  --hg-bg-panel: rgba(255, 255, 255, 0.95);
  --hg-bg-map: var(--surface-1);
  --hg-bg-input: var(--surface-0);
  --hg-text: var(--ink-strong);
  --hg-text-dim: var(--ink-body);
  --hg-text-muted: var(--ink-muted);
  --hg-text-faint: var(--ink-faint);
  --hg-border: var(--border-standard);
  --hg-border-subtle: var(--border-subtle);
  --hg-border-strong: var(--border-strong);
  --hg-accent: var(--accent);
  --hg-accent-soft: var(--accent-tint);
  --hg-accent-glow: var(--accent-ghost);
  --hg-accent-ink: var(--accent-ink);
}
html[data-design-mode="editorial"] .hg-app {
  background: var(--surface-0) !important;
  color: var(--ink-strong) !important;
}
html[data-design-mode="editorial"] .hg-mini-pin.r-pending,
html[data-design-mode="editorial"] .hg-pack-mini-cell.r-0,
html[data-design-mode="editorial"] .hm-pending-cell {
  background: rgba(0, 0, 0, 0.06) !important;
  border-color: rgba(0, 0, 0, 0.12) !important;
}
html[data-design-mode="editorial"] .hwiz-shell,
html[data-design-mode="editorial"] .hwiz-panel,
html[data-design-mode="editorial"] .hwiz-controls {
  background: rgba(255, 255, 255, 0.95) !important;
  color: var(--ink-strong) !important;
  border-color: var(--border-standard) !important;
}
/* Heatmap loader spinner: dim the gold so it reads on cream */
html[data-design-mode="editorial"] .hwiz-loader-spinner,
html[data-design-mode="editorial"] .hg-loader-spinner {
  border-top-color: rgba(244, 225, 74, 0.55) !important;
}

/* 14. CONTENT MAP — fix the cm-green/cm-blue palette collapse so engine
       status indicators in editorial mode actually distinguish on/off. */
html[data-design-mode="editorial"] .cm-engine-on,
html[data-design-mode="editorial"] .cm-status-success,
html[data-design-mode="editorial"] [style*="var(--cm-green)"] {
  color: var(--status-success) !important;
}
html[data-design-mode="editorial"] .cm-engine-off,
html[data-design-mode="editorial"] [style*="var(--cm-text-dim)"] {
  color: var(--ink-faint) !important;
}

/* 15. PROGRESS BARS — replace yellow→green with accent→success in editorial. */
html[data-design-mode="editorial"] .progress-bar,
html[data-design-mode="editorial"] .cm-progress-bar,
html[data-design-mode="editorial"] [style*="linear-gradient(90deg,var(--cm-yellow),var(--cm-green))"],
html[data-design-mode="editorial"] [style*="linear-gradient(90deg, var(--cm-yellow), var(--cm-green))"] {
  background: linear-gradient(90deg, var(--accent), var(--status-success)) !important;
}

/* 16. NEW / PROBLEM / sites-count badges in client-list rows. */
html[data-design-mode="editorial"] .am-clients-section [style*="background:rgba(255,255,255,0.06)"],
html[data-design-mode="editorial"] .clients-table [style*="background:rgba(255,255,255,0.06)"] {
  background: var(--surface-2) !important;
}

/* 17. BOT REGISTRY — task card + filter chrome. */
html[data-design-mode="editorial"] .br-task-card,
html[data-design-mode="editorial"] .br-column,
html[data-design-mode="editorial"] .br-filters {
  background: var(--surface-1) !important;
  border-radius: 2px !important;
  border-color: var(--border-subtle) !important;
}
html[data-design-mode="editorial"] .br-task-card:hover {
  border-color: var(--accent-border) !important;
  box-shadow: 0 4px 16px var(--accent-ghost) !important;
}

/* 18. SCROLLBARS — paper-friendly track/thumb. */
html[data-design-mode="editorial"] *::-webkit-scrollbar-track {
  background: var(--surface-1) !important;
}
html[data-design-mode="editorial"] *::-webkit-scrollbar-thumb {
  background: var(--border-strong) !important;
}
html[data-design-mode="editorial"] *::-webkit-scrollbar-thumb:hover {
  background: var(--ink-faint) !important;
}

/* ============================================================================
   PASS 16 (2026-04-26 evening) — Specificity bump + brand-zone + scrims
   ----------------------------------------------------------------------------
   After Pass 15 ship, user screenshot of /clients/<slug> still showed:
     1. Two rows of black KPI tiles (.cb-field) on the Client Brain detail —
        editorial override existed but lost the cascade because the original
        rule lives in an INLINE <style> block in _content_brain.html which
        renders AFTER editorial-overlay.css's <link>. Equal specificity →
        later wins. This pass uses html[...] + parent selectors to bump
        specificity above any inline-block rule.
     2. Sidebar brand/logo zone still dark — [data-theme="dark"] .sidebar
        rule has !important; need [data-design-mode][data-theme] combinator
        to win.
     3. Several low-opacity dark scrims on report templates not yet covered.
     4. .nx-card-flat / .client-hero-card / .nx-glass / .current-extension-info
        / .sidebar-overlay / #page-loader / .bot-panel-overlay leaks.
   ========================================================================= */

/* 1.  cb-field tiles — bump specificity to beat inline <style> blocks.
       Source rule lives at _content_brain.html:388 with NO !important.
       Editorial override needs higher specificity since inline <style>
       loads AFTER editorial-overlay.css. */
html[data-design-mode="editorial"] body .cb-field,
html[data-design-mode="editorial"] .cb-detail-grid .cb-field,
html[data-design-mode="editorial"][data-theme="dark"] .cb-field {
  background: var(--surface-0) !important;
  background-image: none !important;
  background-color: var(--surface-0) !important;
  border: 1px solid var(--border-standard) !important;
  border-radius: 2px !important;
  padding: 14px 16px !important;
  box-shadow: none !important;
}
html[data-design-mode="editorial"] body .cb-field-label,
html[data-design-mode="editorial"] .cb-detail-grid .cb-field-label {
  color: var(--ink-muted) !important;
  font-family: var(--font-mono) !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  opacity: 1 !important;
}
html[data-design-mode="editorial"] body .cb-field-value,
html[data-design-mode="editorial"] .cb-detail-grid .cb-field-value {
  color: var(--ink-strong) !important;
  font-family: var(--font-display) !important;
  font-weight: 500 !important;
  word-break: break-all !important;
}

/* 2.  Sidebar brand/logo zone — combinator selector to beat the
       [data-theme="dark"] .sidebar !important rule at style.css:544.
       Both attribute selectors give us (0, 3, 0) — wins over (0, 2, 0). */
html[data-design-mode="editorial"][data-theme="dark"] .sidebar,
html[data-design-mode="editorial"][data-theme="dark"] .sidebar-header,
html[data-design-mode="editorial"][data-theme="dark"] .sidebar-inner {
  background: var(--surface-0) !important;
  background-color: var(--surface-0) !important;
  border-right: 1px solid var(--border-standard) !important;
  box-shadow: none !important;
}
html[data-design-mode="editorial"][data-theme="dark"] .sidebar-header {
  border-bottom: 1px solid var(--border-standard) !important;
}
/* Logo: white-on-transparent PNG vanishes on cream. Invert it via CSS
   filter so the white text becomes black. Cheap, no extra asset. */
html[data-design-mode="editorial"] .sidebar-header img,
html[data-design-mode="editorial"] .sidebar-logo img,
html[data-design-mode="editorial"] .brand-logo-dark,
html[data-design-mode="editorial"] .brand-logo-light {
  filter: invert(1) hue-rotate(180deg) saturate(2) !important;
}

/* 3.  Generic dark-scrim catch-all — public_standalone.html, content_map
       modal scrims, various low-alpha overlays not in Pass 15. */
html[data-design-mode="editorial"] [style*="background:rgba(0,0,0,0.02"],
html[data-design-mode="editorial"] [style*="background: rgba(0,0,0,0.02"],
html[data-design-mode="editorial"] [style*="background:rgba(0,0,0,0.04"],
html[data-design-mode="editorial"] [style*="background: rgba(0,0,0,0.04"],
html[data-design-mode="editorial"] [style*="background:rgba(0,0,0,0.06"],
html[data-design-mode="editorial"] [style*="background: rgba(0,0,0,0.06"],
html[data-design-mode="editorial"] [style*="background:rgba(0,0,0,0.08"],
html[data-design-mode="editorial"] [style*="background: rgba(0,0,0,0.08"],
html[data-design-mode="editorial"] [style*="background:rgba(0,0,0,0.1"],
html[data-design-mode="editorial"] [style*="background: rgba(0,0,0,0.1"],
html[data-design-mode="editorial"] [style*="background:rgba(0,0,0,0.12"],
html[data-design-mode="editorial"] [style*="background: rgba(0,0,0,0.12"],
html[data-design-mode="editorial"] [style*="background:rgba(0,0,0,0.15"],
html[data-design-mode="editorial"] [style*="background: rgba(0,0,0,0.15"],
html[data-design-mode="editorial"] [style*="background:rgba(0,0,0,0.18"],
html[data-design-mode="editorial"] [style*="background: rgba(0,0,0,0.18"],
html[data-design-mode="editorial"] [style*="background:rgba(0,0,0,0.2"],
html[data-design-mode="editorial"] [style*="background: rgba(0,0,0,0.2"],
html[data-design-mode="editorial"] [style*="background:rgba(0,0,0,0.3"],
html[data-design-mode="editorial"] [style*="background: rgba(0,0,0,0.3"],
html[data-design-mode="editorial"] [style*="background:rgba(0,0,0,0.4"],
html[data-design-mode="editorial"] [style*="background: rgba(0,0,0,0.4"] {
  background: var(--surface-1) !important;
}

/* Heavy-scrim hex/rgb fills (inline) — covers #0a0a0a, #0f0f0f, #111,
   #16161a, #1a1a*, etc. used as inline backgrounds in JS-built HTML. */
html[data-design-mode="editorial"] [style*="background-color:#0a"],
html[data-design-mode="editorial"] [style*="background:#0a"],
html[data-design-mode="editorial"] [style*="background-color: #0a"],
html[data-design-mode="editorial"] [style*="background: #0a"],
html[data-design-mode="editorial"] [style*="background-color:#0f"],
html[data-design-mode="editorial"] [style*="background:#0f"],
html[data-design-mode="editorial"] [style*="background-color:#11"],
html[data-design-mode="editorial"] [style*="background:#11"],
html[data-design-mode="editorial"] [style*="background-color:#14"],
html[data-design-mode="editorial"] [style*="background:#14"],
html[data-design-mode="editorial"] [style*="background-color:#16"],
html[data-design-mode="editorial"] [style*="background:#16"],
html[data-design-mode="editorial"] [style*="background-color:#1a"],
html[data-design-mode="editorial"] [style*="background:#1a"] {
  background: var(--surface-1) !important;
  background-color: var(--surface-1) !important;
  color: var(--ink-strong) !important;
}

/* 4.  CSS-class leaks from Pass 16 sweep. */
html[data-design-mode="editorial"] .nx-card-flat {
  background: var(--surface-0) !important;
  border-color: var(--border-subtle) !important;
}
html[data-design-mode="editorial"] .nx-glass {
  background: var(--accent-ghost) !important;
  backdrop-filter: blur(12px) !important;
}
html[data-design-mode="editorial"] .client-hero-card {
  background: var(--surface-1) !important;
  border-color: var(--border-subtle) !important;
}
html[data-design-mode="editorial"] .current-extension-info {
  background-color: var(--surface-1) !important;
  color: var(--ink-strong) !important;
}
html[data-design-mode="editorial"] .sidebar-overlay {
  background-color: var(--surface-scrim) !important;
}
html[data-design-mode="editorial"] #page-loader {
  background: var(--surface-0) !important;
  color: var(--ink-strong) !important;
}
html[data-design-mode="editorial"] .bot-panel-overlay {
  background: var(--surface-scrim) !important;
}
html[data-design-mode="editorial"] .table-hover tbody tr:hover,
html[data-design-mode="editorial"] .opt-table tbody tr:hover {
  background-color: var(--accent-ghost) !important;
}
html[data-design-mode="editorial"] select option {
  background: var(--surface-0) !important;
  color: var(--ink-strong) !important;
}

/* 5.  GBP profile detail title — was hardcoded Bethany in
       gmb-profile-detail.css line 45 (now via var(--font-display) post-
       _fontify_css.py pass, but keep this defensive override). */
html[data-design-mode="editorial"] .gbp-detail-title,
html[data-design-mode="editorial"] .gbp-detail-eyebrow,
html[data-design-mode="editorial"] .gbp-detail-subtitle {
  color: var(--ink-strong) !important;
}
html[data-design-mode="editorial"] .gbp-detail-eyebrow {
  color: var(--ink-muted) !important;
}

/* 6.  "Sync from integration" / "+ Add profile" pills (visible in
       Ben's screenshot at the bottom of the client brain detail) — these
       use .cb-tag-add-btn / .cb-action-btn. Force flat + paper chrome. */
html[data-design-mode="editorial"] .cb-tag-add-btn,
html[data-design-mode="editorial"] .cb-action-btn,
html[data-design-mode="editorial"] .cb-sync-btn,
html[data-design-mode="editorial"] .cb-gmb-status,
html[data-design-mode="editorial"] .cb-add-profile {
  background: var(--surface-0) !important;
  color: var(--ink-strong) !important;
  border: 1px solid var(--border-standard) !important;
  border-radius: 2px !important;
}

/* 7.  Stat tiles on Client Brain (325/248/41/27/6) — make sure they're
       paper-on-paper with subtle border (already mostly working in
       screenshot but harden). */
html[data-design-mode="editorial"] .cb-stat-tile,
html[data-design-mode="editorial"] .cb-stat-card,
html[data-design-mode="editorial"] .cb-stat {
  background: var(--surface-1) !important;
  border: 1px solid var(--border-subtle) !important;
  border-radius: 2px !important;
}
html[data-design-mode="editorial"] .cb-stat-value,
html[data-design-mode="editorial"] .cb-stat-tile-value {
  font-family: var(--font-display) !important;
  color: var(--ink-strong) !important;
}

/* 8.  Weekly Scores + Orders & Spend + Resources panels on Client Brain
       — these are .cb-section / .cb-panel containers. Pass 15 covered
       .cb-card / .cb-tile — adding panel/section now. */
html[data-design-mode="editorial"] .cb-section,
html[data-design-mode="editorial"] .cb-panel,
html[data-design-mode="editorial"] .cb-block {
  background: var(--surface-0) !important;
  border: 1px solid var(--border-subtle) !important;
  border-radius: 2px !important;
}

/* 9.  "OPTIMUS UNREACHABLE" red banner pill — keep it red but soften
       for paper bg. */
html[data-design-mode="editorial"] .cb-optimus-status,
html[data-design-mode="editorial"] .cb-optimus-unreachable {
  background: var(--status-danger-bg) !important;
  color: var(--status-danger) !important;
  border-color: var(--status-danger-border) !important;
  border-radius: 2px !important;
}

/* ============================================================================
   PASS 17 (2026-04-26 night) — Beat inline <style> blocks at scale
   ----------------------------------------------------------------------------
   Three parallel agents found ~60 at-risk class selectors across the four
   biggest inline <style> blocks (content_map.html, _content_brain.html,
   dashboard.html, bot_registry.html). All have the same problem: their
   inline rules tie editorial overrides on specificity and load later, so
   they win the cascade.

   Strategy:
   - "html[data-design-mode='editorial'] body" prefix gives +2 specificity
     (tag+tag) over any inline `.foo .bar` rule — guaranteed win regardless
     of source order.
   - Use namespace sweepers (.cm-*, .cb-*, .dv2-*, .br-*) where rules are
     uniform; targeted overrides for outliers (sat-bar gradients, stage
     pills, hardcoded chart colors).
   ========================================================================= */

/* ── 17.1  CONTENT MAP namespace (.cm-*) ─────────────────────────────────── */

/* Card / panel / brief surfaces — all flat paper, 2px corners. */
html[data-design-mode="editorial"] body .cm-kpi-card,
html[data-design-mode="editorial"] body .cm-costings-card,
html[data-design-mode="editorial"] body .cm-brief,
html[data-design-mode="editorial"] body .cm-table-wrap,
html[data-design-mode="editorial"] body .cm-img-preview-wrap img {
  background: var(--surface-1) !important;
  background-image: none !important;
  border: 1px solid var(--border-subtle) !important;
  border-radius: 2px !important;
  box-shadow: none !important;
}
html[data-design-mode="editorial"] body .cm-kpi-card:hover {
  border-color: var(--accent-border) !important;
  box-shadow: 0 1px 4px rgba(10, 10, 10, 0.04) !important;
}

/* Status pills — semantic palette, paper-friendly tints. */
html[data-design-mode="editorial"] body .cm-status-draft {
  background: var(--surface-2) !important;
  color: var(--ink-muted) !important;
}
html[data-design-mode="editorial"] body .cm-status-skipped {
  background: var(--status-warning-bg) !important;
  color: var(--status-warning) !important;
}
html[data-design-mode="editorial"] body .cm-brief__status--trial {
  background: var(--status-info-bg) !important;
  color: var(--status-info) !important;
}
html[data-design-mode="editorial"] body .cm-brief__status--paused {
  background: var(--status-warning-bg) !important;
  color: var(--status-warning) !important;
}
html[data-design-mode="editorial"] body .cm-kd-med {
  background: var(--status-warning-bg) !important;
  color: var(--status-warning) !important;
}

/* Row-type tints — paper-friendly bands. */
html[data-design-mode="editorial"] body .cm-row-aux td {
  background: rgba(11, 95, 163, 0.06) !important;
}
html[data-design-mode="editorial"] body .cm-row-service td {
  background: rgba(31, 122, 58, 0.06) !important;
}
html[data-design-mode="editorial"] body .cm-row-location td {
  background: rgba(123, 45, 139, 0.06) !important;
}
html[data-design-mode="editorial"] body .cm-row-blog td {
  background: rgba(180, 83, 9, 0.06) !important;
}

/* Health bar fill / silo dots / btn-ghost hover. */
html[data-design-mode="editorial"] body .cm-health-bar .draft,
html[data-design-mode="editorial"] body .cm-silo-item.secondary::before {
  background: var(--ink-faint) !important;
}
html[data-design-mode="editorial"] body .cm-btn-ghost:hover {
  border-color: var(--accent-border) !important;
  color: var(--accent) !important;
  background: var(--accent-ghost) !important;
}
html[data-design-mode="editorial"] body .cm-editable:hover {
  background: var(--surface-2) !important;
  box-shadow: 0 0 0 2px var(--accent-focus) !important;
}
html[data-design-mode="editorial"] body .cm-img-preview-close:hover {
  background: var(--status-danger-bg) !important;
  border-color: var(--status-danger-border) !important;
}
html[data-design-mode="editorial"] body .cm-edit-modal__close:hover {
  background: var(--surface-2) !important;
}

/* Weighted-score pill active states. Earlier this block muted the modal
   pills to soft tints + colored text — Ben said they "looked uniform"
   and were hard to interpret. Now we let the source rules in
   content_map.html (solid-colour fills) carry through to editorial
   unchanged so the modal renders identically across modes. The block
   below is intentionally empty — kept as a documentation anchor so
   future editorial passes know NOT to re-flatten these. */

/* ── 17.2  CONTENT BRAIN namespace (.cb-*) ────────────────────────────── */

/* Surfaces — paper, flat, 2px. */
html[data-design-mode="editorial"] body .cb-container,
html[data-design-mode="editorial"] body .cb-main,
html[data-design-mode="editorial"] body .cb-engine-progress-item,
html[data-design-mode="editorial"] body .cb-engine-toggle,
html[data-design-mode="editorial"] body .cb-missing-bar {
  background: var(--surface-0) !important;
  background-image: none !important;
  border: 1px solid var(--border-subtle) !important;
  border-radius: 2px !important;
  box-shadow: none !important;
}
html[data-design-mode="editorial"] body .cb-engine-toggle.on {
  background: var(--status-success-bg) !important;
  border-color: var(--status-success-border) !important;
  color: var(--status-success) !important;
}

/* Tabs — flat with accent underline (no rounded corners). */
html[data-design-mode="editorial"] body .cb-tab {
  border-radius: 0 !important;
  border-bottom: 2px solid transparent !important;
  background: transparent !important;
  color: var(--ink-muted) !important;
}
html[data-design-mode="editorial"] body .cb-tab.active {
  border-bottom-color: var(--accent) !important;
  color: var(--ink-strong) !important;
  background: transparent !important;
}

/* Badges — keep semantic colors but paper-friendly tints + 2px */
html[data-design-mode="editorial"] body .cb-badge {
  border-radius: 9999px !important;  /* pills stay pills */
}
html[data-design-mode="editorial"] body .cb-badge-pending {
  background: var(--status-warning-bg) !important;
  color: var(--status-warning) !important;
}
html[data-design-mode="editorial"] body .cb-badge-active {
  background: var(--status-info-bg) !important;
  color: var(--status-info) !important;
}
html[data-design-mode="editorial"] body .cb-badge-approved {
  background: var(--status-success-bg) !important;
  color: var(--status-success) !important;
}
html[data-design-mode="editorial"] body .cb-badge-error {
  background: var(--status-danger-bg) !important;
  color: var(--status-danger) !important;
}

/* Missing-fields chip + service tags. */
html[data-design-mode="editorial"] body .cb-missing-chip {
  background: var(--status-danger-bg) !important;
  border: 1px solid var(--status-danger-border) !important;
  color: var(--status-danger) !important;
  border-radius: 2px !important;
}
html[data-design-mode="editorial"] body .cb-tag {
  background: var(--accent-tint) !important;
  border: 1px solid var(--accent-border) !important;
  color: var(--ink-strong) !important;
}

/* ── 17.3  COMPANY DASHBOARD namespace (.dv2-*) ───────────────────────── */

/* All KPI / panel / section cards — flat paper. */
html[data-design-mode="editorial"] body .dv2-kpi,
html[data-design-mode="editorial"] body .dv2-kpi--primary,
html[data-design-mode="editorial"] body .dv2-detailed-card,
html[data-design-mode="editorial"] body .dv2-panel,
html[data-design-mode="editorial"] body .dv2-sec {
  background: var(--surface-1) !important;
  background-image: none !important;
  border: 1px solid var(--border-subtle) !important;
  border-radius: 2px !important;
  box-shadow: none !important;
}
html[data-design-mode="editorial"] body .dv2-detailed-card:hover,
html[data-design-mode="editorial"] body .dv2-sec:hover {
  border-color: var(--accent-border) !important;
  box-shadow: 0 1px 4px rgba(10, 10, 10, 0.04) !important;
  transform: none !important;
}

/* Tables — paper rows, paper-2 hover. */
html[data-design-mode="editorial"] body .dv2-table tbody tr:hover {
  background: var(--surface-2) !important;
}
html[data-design-mode="editorial"] body .dv2-table tbody td {
  border-bottom-color: var(--border-subtle) !important;
  color: var(--ink-body) !important;
}

/* Satisfaction bar — replace warm gradients with status-token equivalents. */
html[data-design-mode="editorial"] body .dv2-sat-bar {
  background: var(--surface-2) !important;
}
html[data-design-mode="editorial"] body .dv2-sat-bar__seg--4 {
  background: linear-gradient(90deg, var(--status-success), var(--status-success)) !important;
  color: var(--surface-0) !important;
}
html[data-design-mode="editorial"] body .dv2-sat-bar__seg--3 {
  background: linear-gradient(90deg, var(--status-success-bg), var(--accent-tint)) !important;
  color: var(--ink-strong) !important;
}
html[data-design-mode="editorial"] body .dv2-sat-bar__seg--2 {
  background: linear-gradient(90deg, var(--status-warning), var(--status-warning)) !important;
  color: var(--surface-0) !important;
}
html[data-design-mode="editorial"] body .dv2-sat-bar__seg--1 {
  background: linear-gradient(90deg, var(--status-danger), var(--status-danger)) !important;
  color: var(--surface-0) !important;
}

/* KPI arrow box, info pills, decorative ::after dots. */
html[data-design-mode="editorial"] body .dv2-kpi__arrow {
  background: var(--surface-2) !important;
  border-radius: 2px !important;
}
html[data-design-mode="editorial"] body .dv2-pill--info {
  background: var(--accent-tint) !important;
  color: var(--ink-strong) !important;
}
html[data-design-mode="editorial"] body .dv2-detailed-card--clickable::after {
  background: var(--surface-2) !important;
}

/* ── 17.4  BOT REGISTRY namespace (.br-*) ─────────────────────────────── */

/* Columns + tasks — flat paper. */
html[data-design-mode="editorial"] body .br-column,
html[data-design-mode="editorial"] body .br-task {
  background: var(--surface-1) !important;
  background-image: none !important;
  border: 1px solid var(--border-subtle) !important;
  border-radius: 2px !important;
  box-shadow: none !important;
}
html[data-design-mode="editorial"] body .br-task:hover {
  border-color: var(--accent-border) !important;
  box-shadow: 0 1px 4px rgba(10, 10, 10, 0.04) !important;
}
html[data-design-mode="editorial"] body .br-column.queued {
  border-top: 2px solid var(--accent) !important;
}
html[data-design-mode="editorial"] body .br-column.completed {
  border-top: 2px solid var(--status-success) !important;
}
html[data-design-mode="editorial"] body .br-column.failed {
  border-top: 2px solid var(--status-danger) !important;
}

/* Buttons — flat 2px chrome. */
html[data-design-mode="editorial"] body .br-task-btn,
html[data-design-mode="editorial"] body .br-task-btn.dispatch,
html[data-design-mode="editorial"] body .br-task-btn.cancel {
  background: var(--surface-0) !important;
  background-image: none !important;
  border: 1px solid var(--border-standard) !important;
  border-radius: 2px !important;
  color: var(--ink-strong) !important;
}
html[data-design-mode="editorial"] body .br-task-btn:hover {
  background: var(--surface-2) !important;
}
html[data-design-mode="editorial"] body .br-task-btn.dispatch {
  background: var(--accent) !important;
  color: var(--accent-ink) !important;
  border-color: var(--accent-hover) !important;
}

/* Priority pills — paper-friendly status tints. */
html[data-design-mode="editorial"] body .br-priority.critical {
  background: var(--status-danger-bg) !important;
  color: var(--status-danger) !important;
}
html[data-design-mode="editorial"] body .br-priority.high {
  background: var(--status-warning-bg) !important;
  color: var(--status-warning) !important;
}
html[data-design-mode="editorial"] body .br-priority.medium {
  background: var(--accent-tint) !important;
  color: var(--ink-strong) !important;
}
html[data-design-mode="editorial"] body .br-priority.low {
  background: var(--status-info-bg) !important;
  color: var(--status-info) !important;
}

/* Status dot, result panel, plan panel. */
html[data-design-mode="editorial"] body .br-status-dot {
  box-shadow: none !important;
  border-radius: 2px !important;
}
html[data-design-mode="editorial"] body .br-result {
  background: var(--surface-2) !important;
  color: var(--ink-body) !important;
  border-radius: 2px !important;
}
html[data-design-mode="editorial"] body .br-plan-panel {
  background: var(--surface-1) !important;
  border-left: 2px solid var(--accent) !important;
  box-shadow: none !important;
}
html[data-design-mode="editorial"] body .br-plan-command {
  background: var(--surface-2) !important;
  border: 1px solid var(--border-subtle) !important;
  color: var(--ink-strong) !important;
  border-radius: 2px !important;
}

/* ────────────────────────────────────────────────────────────────────────
   Pass 18 (2026-04-30) — UI primitive contrast sweep
   .ui-kpi / .ui-chip / .ui-segment / .ui-alert / .ui-input / .ui-select
   shipped with --surface-1 (cream) bg + --r-xl/--r-md (8–16px) corners.
   On the paper-cream editorial page bg they read as washed-out
   yellow-on-yellow. Force paper-white surface, ink text, and 2px corners
   so the components actually contrast against the page.
   ──────────────────────────────────────────────────────────────────────── */
html[data-design-mode="editorial"] .ui-kpi,
html[data-design-mode="editorial"] .ui-kpi.has-accent {
  background: var(--surface-0) !important;
  border: 1px solid var(--border-standard) !important;
  border-radius: 2px !important;
}
html[data-design-mode="editorial"] .ui-kpi.has-accent {
  border-left: 3px solid var(--accent) !important;
}
html[data-design-mode="editorial"] .ui-kpi-value {
  color: var(--ink-strong) !important;
  font-family: var(--serif) !important;
}
html[data-design-mode="editorial"] .ui-kpi-label {
  color: var(--ink-3) !important;
  font-family: var(--mono) !important;
}

html[data-design-mode="editorial"] .ui-chip {
  background: var(--surface-0) !important;
  color: var(--ink-2) !important;
  border: 1px solid var(--border-strong) !important;
  border-radius: 2px !important;
}
html[data-design-mode="editorial"] .ui-chip:hover {
  border-color: var(--ink) !important;
  color: var(--ink) !important;
}
html[data-design-mode="editorial"] .ui-chip.is-active {
  background: var(--accent) !important;
  color: var(--accent-ink) !important;
  border-color: var(--accent) !important;
}

html[data-design-mode="editorial"] .ui-input,
html[data-design-mode="editorial"] .ui-select,
html[data-design-mode="editorial"] .ui-textarea {
  background: var(--surface-0) !important;
  color: var(--ink) !important;
  border: 1px solid var(--border-strong) !important;
  border-radius: 2px !important;
}
html[data-design-mode="editorial"] .ui-input:focus,
html[data-design-mode="editorial"] .ui-select:focus,
html[data-design-mode="editorial"] .ui-textarea:focus {
  border-color: var(--ink) !important;
  outline: 2px solid var(--ink) !important;
  outline-offset: 1px !important;
}

html[data-design-mode="editorial"] .ui-alert {
  background: var(--surface-0) !important;
  color: var(--ink-2) !important;
  border: 1px solid var(--border-standard) !important;
  border-radius: 2px !important;
}
html[data-design-mode="editorial"] .ui-alert-title {
  color: var(--ink) !important;
}

html[data-design-mode="editorial"] .ui-segment {
  background: var(--surface-0) !important;
  border: 1px solid var(--border-standard) !important;
  border-radius: 2px !important;
}
html[data-design-mode="editorial"] .ui-segment-option {
  color: var(--ink-3) !important;
  border-radius: 2px !important;
}
html[data-design-mode="editorial"] .ui-segment-option:hover {
  color: var(--ink) !important;
}
html[data-design-mode="editorial"] .ui-segment-option.is-active {
  background: var(--ink) !important;
  color: var(--paper) !important;
}

/* Content-map leftovers (cm-eng-pace-select, cm-modal-dialog, cm-ws-chip)
   that the audit found still using cream backgrounds + 10–16px corners. */
html[data-design-mode="editorial"] .cm-eng-pace-select,
html[data-design-mode="editorial"] .cm-modal-dialog,
html[data-design-mode="editorial"] .cm-ws-chip {
  background: var(--surface-0) !important;
  color: var(--ink) !important;
  border: 1px solid var(--border-standard) !important;
  border-radius: 2px !important;
}
html[data-design-mode="editorial"] .cm-modal-dialog {
  box-shadow: 0 30px 80px rgba(10, 10, 10, 0.25) !important;
}

/* ==========================================================================
   Website Builds page (.website-requests-management)
   - kill the yellow-ghost radial gradients on cards
   - sharp 2px corners everywhere
   - filter pills: active = solid black ink on yellow accent (readable)
   - search input matched to other editorial inputs
   ========================================================================== */

html[data-design-mode="editorial"] .website-requests-management .wr-filter-pill {
  border-radius: 2px !important;
  border: 1px solid var(--border-standard) !important;
  background: var(--surface-0) !important;
  color: var(--ink-2) !important;
  font-family: var(--mono) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  padding: 0.4rem 0.85rem !important;
  transform: none !important;
  transition: background 0.15s, color 0.15s, border-color 0.15s !important;
}
html[data-design-mode="editorial"] .website-requests-management .wr-filter-pill:hover {
  border-color: var(--ink) !important;
  color: var(--ink) !important;
  background: var(--surface-1) !important;
  transform: none !important;
}
html[data-design-mode="editorial"] .website-requests-management .wr-filter-pill.active {
  background: var(--accent) !important;
  color: var(--accent-ink) !important;
  border-color: var(--accent) !important;
}
html[data-design-mode="editorial"] .website-requests-management .wr-filter-pill.active i {
  color: var(--accent-ink) !important;
}

html[data-design-mode="editorial"] .website-requests-management .wr-search-input {
  border-radius: 2px !important;
  border: 1px solid var(--border-strong) !important;
  background: var(--surface-0) !important;
  color: var(--ink) !important;
  width: 240px !important;
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  padding: 6px 10px !important;
  height: 32px !important;
}
html[data-design-mode="editorial"] .website-requests-management .wr-search-input::placeholder {
  color: var(--ink-3) !important;
}
html[data-design-mode="editorial"] .website-requests-management .wr-search-input:focus {
  border-color: var(--ink) !important;
  outline: 2px solid var(--ink) !important;
  outline-offset: 1px !important;
  box-shadow: none !important;
}

html[data-design-mode="editorial"] .website-requests-management .btn-primary-opt,
html[data-design-mode="editorial"] .website-requests-management .btn-secondary-opt {
  background: var(--surface-0) !important;
  border: 1px solid var(--border-strong) !important;
  border-radius: 2px !important;
  color: var(--ink) !important;
  font-family: var(--mono) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  padding: 6px 14px !important;
  transition: background 0.15s, color 0.15s !important;
}
html[data-design-mode="editorial"] .website-requests-management .btn-primary-opt {
  background: var(--ink) !important;
  color: var(--paper) !important;
  border-color: var(--ink) !important;
}
html[data-design-mode="editorial"] .website-requests-management .btn-primary-opt:hover {
  background: var(--accent) !important;
  color: var(--accent-ink) !important;
  border-color: var(--accent) !important;
  transform: none !important;
  filter: none !important;
}
html[data-design-mode="editorial"] .website-requests-management .btn-secondary-opt:hover {
  background: var(--surface-1) !important;
  border-color: var(--ink) !important;
  color: var(--ink) !important;
  transform: none !important;
  filter: none !important;
}

html[data-design-mode="editorial"] .website-requests-management .wr-stat-card,
html[data-design-mode="editorial"] .website-requests-management .wr-breakdown-bar,
html[data-design-mode="editorial"] .website-requests-management .wr-empty-state {
  background: var(--surface-0) !important;
  border: 1px solid var(--border-standard) !important;
  border-radius: 2px !important;
  box-shadow: none !important;
  animation: none !important;
}
html[data-design-mode="editorial"] .website-requests-management .wr-stat-card:hover {
  transform: none !important;
}
html[data-design-mode="editorial"] .website-requests-management .wr-stat-value {
  color: var(--ink) !important;
  font-family: var(--font-display) !important;
}
html[data-design-mode="editorial"] .website-requests-management .wr-stat-label,
html[data-design-mode="editorial"] .website-requests-management .wr-breakdown-title {
  color: var(--ink-3) !important;
  font-family: var(--mono) !important;
}

html[data-design-mode="editorial"] .website-requests-management .wr-stacked-bar,
html[data-design-mode="editorial"] .website-requests-management .wr-stacked-seg,
html[data-design-mode="editorial"] .website-requests-management .wr-stacked-seg:first-child,
html[data-design-mode="editorial"] .website-requests-management .wr-stacked-seg:last-child,
html[data-design-mode="editorial"] .website-requests-management .wr-stacked-seg:only-child {
  border-radius: 0 !important;
}
html[data-design-mode="editorial"] .website-requests-management .wr-stacked-bar {
  background: var(--surface-1) !important;
}
html[data-design-mode="editorial"] .website-requests-management .wr-legend-dot {
  border-radius: 0 !important;
}
html[data-design-mode="editorial"] .website-requests-management .wr-legend-item {
  color: var(--ink-2) !important;
  font-family: var(--mono) !important;
  font-size: 10px !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
}

html[data-design-mode="editorial"] .website-requests-management .wr-table-section,
html[data-design-mode="editorial"] .website-requests-management .status-table-wrapper {
  border-radius: 2px !important;
  animation: none !important;
}
html[data-design-mode="editorial"] .website-requests-management .status-table-wrapper {
  border: 1px solid var(--border-standard) !important;
}
html[data-design-mode="editorial"] .website-requests-management .status-table thead th {
  background: var(--surface-1) !important;
  color: var(--ink-3) !important;
  font-family: var(--mono) !important;
  border-bottom: 1px solid var(--border-strong) !important;
}
html[data-design-mode="editorial"] .website-requests-management .status-table thead th:hover {
  color: var(--ink) !important;
}

html[data-design-mode="editorial"] .website-requests-management .wr-row {
  animation: none !important;
}
html[data-design-mode="editorial"] .website-requests-management .wr-priority-num {
  border-radius: 2px !important;
  background: var(--surface-1) !important;
  color: var(--ink-2) !important;
  font-family: var(--mono) !important;
}

/* Stage pill badges (wr-pill) — square + mono caps in editorial */
html[data-design-mode="editorial"] .website-requests-management .wr-pill {
  border-radius: 2px !important;
  font-family: var(--mono) !important;
  letter-spacing: 0.08em !important;
}

/* Stage progress bar */
html[data-design-mode="editorial"] .website-requests-management .wr-progress-bar,
html[data-design-mode="editorial"] .website-requests-management .wr-progress-fill {
  border-radius: 0 !important;
}
html[data-design-mode="editorial"] .website-requests-management .wr-progress-fill {
  background: var(--ink) !important;
}

/* Action icons in row */
html[data-design-mode="editorial"] .website-requests-management .wr-action-icon {
  border-radius: 2px !important;
}

/* ==========================================================================
   GBP Management page (.gbp-mgmt) — Pass 19 (2026-05-03)
   - 4 KPI cards: distinct top-stripe per tone (accent/good/bad/warn)
   - Search input: explicit padding-left so icon never overlaps text,
     kill native WebKit search affordance
   - Open client link: legible ink + mono caps
   - Checkboxes: visible border in editorial
   - Universal 2px corners, ditch the yellow-glow active state
   ========================================================================== */

html[data-design-mode="editorial"] .gbp-mgmt .gbp-kpi {
  background: var(--surface-0) !important;
  border: 1px solid var(--border-standard) !important;
  border-radius: 2px !important;
  padding: 18px 20px 18px 20px !important;
  position: relative !important;
  overflow: hidden !important;
}
html[data-design-mode="editorial"] .gbp-mgmt .gbp-kpi:hover {
  border-color: var(--ink) !important;
  transform: none !important;
}
/* Top accent stripe per tone — gives each KPI card its own visual identity */
html[data-design-mode="editorial"] .gbp-mgmt .gbp-kpi::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: var(--ink-3);
}
html[data-design-mode="editorial"] .gbp-mgmt .gbp-kpi[data-tone="accent"]::before { background: var(--accent); }
html[data-design-mode="editorial"] .gbp-mgmt .gbp-kpi[data-tone="good"]::before   { background: var(--status-success); }
html[data-design-mode="editorial"] .gbp-mgmt .gbp-kpi[data-tone="bad"]::before    { background: var(--status-danger); }
html[data-design-mode="editorial"] .gbp-mgmt .gbp-kpi[data-tone="warn"]::before   { background: var(--status-warning); }

/* Active KPI = solid yellow card with black ink — unmistakable */
html[data-design-mode="editorial"] .gbp-mgmt .gbp-kpi.active {
  background: var(--accent) !important;
  border-color: var(--accent) !important;
  box-shadow: none !important;
}
html[data-design-mode="editorial"] .gbp-mgmt .gbp-kpi.active::before { background: var(--ink) !important; }
html[data-design-mode="editorial"] .gbp-mgmt .gbp-kpi.active .gbp-kpi__label,
html[data-design-mode="editorial"] .gbp-mgmt .gbp-kpi.active .gbp-kpi__sub,
html[data-design-mode="editorial"] .gbp-mgmt .gbp-kpi.active .gbp-kpi__value { color: var(--accent-ink) !important; }

html[data-design-mode="editorial"] .gbp-mgmt .gbp-kpi__label {
  font-family: var(--mono) !important;
  color: var(--ink-3) !important;
}
html[data-design-mode="editorial"] .gbp-mgmt .gbp-kpi__value {
  font-family: var(--font-display) !important;
  color: var(--ink) !important;
}
/* Tone-coloured numerals so the eye sees Healthy=green, Need-Attention=red even when inactive */
html[data-design-mode="editorial"] .gbp-mgmt .gbp-kpi__value.tone-good   { color: var(--status-success) !important; }
html[data-design-mode="editorial"] .gbp-mgmt .gbp-kpi__value.tone-bad    { color: var(--status-danger) !important; }
html[data-design-mode="editorial"] .gbp-mgmt .gbp-kpi__value.tone-warn   { color: var(--status-warning) !important; }
html[data-design-mode="editorial"] .gbp-mgmt .gbp-kpi__value.tone-accent { color: var(--ink) !important; }
html[data-design-mode="editorial"] .gbp-mgmt .gbp-kpi__sub {
  color: var(--ink-3) !important;
  font-family: var(--mono) !important;
  font-size: 10.5px !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
}

/* Search input — guaranteed icon clearance + kill native search appearance */
html[data-design-mode="editorial"] .gbp-mgmt .gbp-search input,
html[data-design-mode="editorial"] .gbp-mgmt .gbp-search input[type="search"] {
  padding: 8px 12px 8px 36px !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  border-radius: 2px !important;
  background: var(--surface-0) !important;
  color: var(--ink) !important;
  border: 1px solid var(--border-strong) !important;
  font-family: var(--font-body) !important;
}
/* Kill the native WebKit "X" cancel button that can sit on top of placeholder */
html[data-design-mode="editorial"] .gbp-mgmt .gbp-search input::-webkit-search-cancel-button,
html[data-design-mode="editorial"] .gbp-mgmt .gbp-search input::-webkit-search-decoration {
  -webkit-appearance: none;
  appearance: none;
}
html[data-design-mode="editorial"] .gbp-mgmt .gbp-search-icon {
  color: var(--ink-3) !important;
  z-index: 1 !important;
}

html[data-design-mode="editorial"] .gbp-mgmt .gbp-select {
  background: var(--surface-0) !important;
  color: var(--ink) !important;
  border: 1px solid var(--border-strong) !important;
  border-radius: 2px !important;
}

html[data-design-mode="editorial"] .gbp-mgmt .gbp-segmented {
  background: var(--surface-0) !important;
  border: 1px solid var(--border-strong) !important;
  border-radius: 2px !important;
  padding: 2px !important;
}
html[data-design-mode="editorial"] .gbp-mgmt .gbp-segmented button {
  border-radius: 2px !important;
  font-family: var(--mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  color: var(--ink-3) !important;
}
html[data-design-mode="editorial"] .gbp-mgmt .gbp-segmented button.active {
  background: var(--ink) !important;
  color: var(--paper) !important;
}

/* Group cards */
html[data-design-mode="editorial"] .gbp-mgmt .gbp-group {
  background: var(--surface-0) !important;
  border: 1px solid var(--border-standard) !important;
  border-radius: 2px !important;
}
html[data-design-mode="editorial"] .gbp-mgmt .gbp-group__head {
  border-bottom-color: var(--border-standard) !important;
}
html[data-design-mode="editorial"] .gbp-mgmt .gbp-group__head:hover {
  background: var(--surface-1) !important;
}
html[data-design-mode="editorial"] .gbp-mgmt .gbp-group__title {
  color: var(--ink) !important;
}
html[data-design-mode="editorial"] .gbp-mgmt .gbp-group__meta {
  color: var(--ink-3) !important;
}
/* "Open client" link — legible mono caps with ink color, not faint yellow */
html[data-design-mode="editorial"] .gbp-mgmt .gbp-group__open-link {
  color: var(--ink) !important;
  background: var(--surface-1) !important;
  border: 1px solid var(--border-standard) !important;
  border-radius: 2px !important;
  font-family: var(--mono) !important;
  font-size: 10.5px !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  padding: 4px 10px !important;
}
html[data-design-mode="editorial"] .gbp-mgmt .gbp-group__open-link:hover {
  background: var(--ink) !important;
  color: var(--paper) !important;
  border-color: var(--ink) !important;
}

/* Profile column header row */
html[data-design-mode="editorial"] .gbp-mgmt .gbp-row-head {
  background: var(--surface-1) !important;
  border-bottom: 1px solid var(--border-standard) !important;
  color: var(--ink-3) !important;
  font-family: var(--mono) !important;
}

html[data-design-mode="editorial"] .gbp-mgmt .gbp-profile-row {
  border-bottom-color: var(--border-subtle) !important;
}
html[data-design-mode="editorial"] .gbp-mgmt .gbp-profile-row:hover {
  background: var(--surface-1) !important;
}
html[data-design-mode="editorial"] .gbp-mgmt .gbp-profile-row.is-selected {
  background: var(--accent-tint) !important;
}
html[data-design-mode="editorial"] .gbp-mgmt .gbp-profile-row__name {
  color: var(--ink) !important;
}
html[data-design-mode="editorial"] .gbp-mgmt .gbp-profile-row__category,
html[data-design-mode="editorial"] .gbp-mgmt .gbp-profile-row__rating-sub,
html[data-design-mode="editorial"] .gbp-mgmt .gbp-profile-row__autopilot {
  color: var(--ink-3) !important;
}
html[data-design-mode="editorial"] .gbp-mgmt .gbp-profile-row__email,
html[data-design-mode="editorial"] .gbp-mgmt .gbp-profile-row__address {
  color: var(--ink-2) !important;
}
html[data-design-mode="editorial"] .gbp-mgmt .gbp-profile-row__rating {
  color: var(--ink) !important;
}

/* Checkboxes — must be visibly a checkbox in editorial */
html[data-design-mode="editorial"] .gbp-mgmt .gbp-checkbox {
  -webkit-appearance: none !important;
  appearance: none !important;
  width: 14px !important;
  height: 14px !important;
  background: var(--surface-0) !important;
  border: 1.5px solid var(--ink-3) !important;
  border-radius: 2px !important;
  position: relative !important;
  cursor: pointer !important;
}
html[data-design-mode="editorial"] .gbp-mgmt .gbp-checkbox:checked {
  background: var(--ink) !important;
  border-color: var(--ink) !important;
}
html[data-design-mode="editorial"] .gbp-mgmt .gbp-checkbox:checked::after {
  content: "";
  position: absolute;
  left: 3.5px; top: 0.5px;
  width: 4px; height: 8px;
  border: solid var(--paper);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
html[data-design-mode="editorial"] .gbp-mgmt .gbp-checkbox:indeterminate {
  background: var(--ink) !important;
  border-color: var(--ink) !important;
}
html[data-design-mode="editorial"] .gbp-mgmt .gbp-checkbox:indeterminate::after {
  content: "";
  position: absolute;
  left: 2px; top: 5px;
  width: 8px; height: 2px;
  background: var(--paper);
}

/* Bulk action bar — keep yellow accent but sharp + readable */
html[data-design-mode="editorial"] .gbp-mgmt .gbp-bulk-bar {
  background: var(--accent-tint) !important;
  border: 1px solid var(--accent) !important;
  border-radius: 2px !important;
  color: var(--ink) !important;
}
html[data-design-mode="editorial"] .gbp-mgmt .gbp-bulk-bar__count {
  color: var(--ink) !important;
  font-family: var(--mono) !important;
  font-weight: 700 !important;
}

/* Buttons (Export / Force sync / Apply) */
html[data-design-mode="editorial"] .gbp-mgmt .gbp-btn {
  background: var(--surface-0) !important;
  border: 1px solid var(--border-strong) !important;
  border-radius: 2px !important;
  color: var(--ink) !important;
  font-family: var(--mono) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
}
html[data-design-mode="editorial"] .gbp-mgmt .gbp-btn:hover {
  background: var(--surface-1) !important;
  border-color: var(--ink) !important;
  color: var(--ink) !important;
}
html[data-design-mode="editorial"] .gbp-mgmt .gbp-btn-primary {
  background: var(--ink) !important;
  color: var(--paper) !important;
  border-color: var(--ink) !important;
}
html[data-design-mode="editorial"] .gbp-mgmt .gbp-btn-primary:hover {
  background: var(--accent) !important;
  color: var(--accent-ink) !important;
  border-color: var(--accent) !important;
}

/* Status chips — sharp 2px instead of 999px pill */
html[data-design-mode="editorial"] .gbp-mgmt .gbp-chip {
  border-radius: 2px !important;
}

/* ==========================================================================
   Pill-style tab nav — universal editorial fix
   - Admin tabs (.adm-tabs / .adm-tab)
   - Account Hub tabs (.acc-tabs / .acc-tab)
   - Anywhere else using a pill segment with .nav-pills
   Force: 2px square corners, ink text (no faint #555), solid yellow + ink
   for active state (visible text + icon).
   ========================================================================== */

html[data-design-mode="editorial"] .adm-tabs,
html[data-design-mode="editorial"] .acc-tabs {
  border-radius: 2px !important;
  background: var(--surface-1) !important;
  border: 1px solid var(--border-standard) !important;
  padding: 3px !important;
  gap: 2px !important;
}
html[data-design-mode="editorial"] .adm-tab,
html[data-design-mode="editorial"] .acc-tab {
  border-radius: 2px !important;
  color: var(--ink-2) !important;
  font-family: var(--mono) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  padding: 0.5rem 0.95rem !important;
  background: transparent !important;
  border: 1px solid transparent !important;
}
html[data-design-mode="editorial"] .adm-tab .bi,
html[data-design-mode="editorial"] .acc-tab .bi {
  color: inherit !important;
  font-size: 0.95rem !important;
}
html[data-design-mode="editorial"] .adm-tab:hover,
html[data-design-mode="editorial"] .acc-tab:hover {
  color: var(--ink) !important;
  background: var(--surface-0) !important;
  border-color: var(--border-standard) !important;
}
html[data-design-mode="editorial"] .adm-tab.adm-tab--active,
html[data-design-mode="editorial"] .adm-tab.adm-tab--active:hover,
html[data-design-mode="editorial"] .acc-tab.acc-tab--active,
html[data-design-mode="editorial"] .acc-tab.acc-tab--active:hover {
  background: var(--accent) !important;
  color: var(--accent-ink) !important;
  border-color: var(--accent) !important;
  box-shadow: none !important;
}
html[data-design-mode="editorial"] .adm-tab.adm-tab--active .bi,
html[data-design-mode="editorial"] .acc-tab.acc-tab--active .bi {
  color: var(--accent-ink) !important;
}
html[data-design-mode="editorial"] .adm-tab__badge {
  background: var(--ink) !important;
  color: var(--paper) !important;
  border-radius: 2px !important;
  font-family: var(--mono) !important;
}

/* Bootstrap .nav-pills used as a segmented bar — same treatment */
html[data-design-mode="editorial"] .nav-pills {
  background: var(--surface-1) !important;
  border: 1px solid var(--border-standard) !important;
  border-radius: 2px !important;
  padding: 3px !important;
  display: inline-flex !important;
  gap: 2px !important;
}
html[data-design-mode="editorial"] .nav-pills .nav-link {
  border-radius: 2px !important;
  font-family: var(--mono) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--ink-2) !important;
}
html[data-design-mode="editorial"] .nav-pills .nav-link.active,
html[data-design-mode="editorial"] .nav-pills .nav-link:hover {
  background: var(--accent) !important;
  color: var(--accent-ink) !important;
}
html[data-design-mode="editorial"] .nav-pills .nav-link:not(.active):hover {
  background: var(--surface-0) !important;
  color: var(--ink) !important;
}

/* ==========================================================================
   FullCalendar — kill the serif on calendar chrome
   - "April 2026" toolbar title is body Inter (was Newsreader serif — felt
     out-of-place against the small day numbers).
   - Day numbers + col-header day-of-week cushions: explicit Inter so they
     don't accidentally inherit serif from any wider rule.
   - Buttons + events: 2px corners (FullCalendar defaults to pill-radius).
   ========================================================================== */

html[data-design-mode="editorial"] .fc-toolbar-title {
  font-family: var(--font-body) !important;
  font-weight: 600 !important;
  font-size: 1.05rem !important;
  letter-spacing: -0.005em !important;
  color: var(--ink) !important;
}
html[data-design-mode="editorial"] .fc-col-header-cell-cushion {
  font-family: var(--mono) !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--ink-3) !important;
}
html[data-design-mode="editorial"] .fc-daygrid-day-number {
  font-family: var(--font-body) !important;
  font-size: 0.78rem !important;
  font-weight: 500 !important;
  color: var(--ink-2) !important;
}
html[data-design-mode="editorial"] .fc-day-other .fc-daygrid-day-number {
  color: var(--ink-4) !important;
}
html[data-design-mode="editorial"] .fc-day-today .fc-daygrid-day-number {
  background: var(--ink) !important;
  color: var(--paper) !important;
  border-radius: 2px !important;
}
html[data-design-mode="editorial"] .fc .fc-button-primary,
html[data-design-mode="editorial"] .fc .fc-button-group > .fc-button,
html[data-design-mode="editorial"] .fc .fc-button-group > .fc-button:first-child,
html[data-design-mode="editorial"] .fc .fc-button-group > .fc-button:last-child,
html[data-design-mode="editorial"] .fc .fc-today-button {
  border-radius: 2px !important;
  background: var(--surface-0) !important;
  border: 1px solid var(--border-strong) !important;
  color: var(--ink-2) !important;
  font-family: var(--mono) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
}
html[data-design-mode="editorial"] .fc .fc-button-primary:hover {
  background: var(--surface-1) !important;
  border-color: var(--ink) !important;
  color: var(--ink) !important;
}
html[data-design-mode="editorial"] .fc .fc-button-primary:not(:disabled).fc-button-active {
  background: var(--ink) !important;
  border-color: var(--ink) !important;
  color: var(--paper) !important;
}
html[data-design-mode="editorial"] .fc .fc-daygrid-event {
  border-radius: 2px !important;
}
html[data-design-mode="editorial"] .fc .fc-list,
html[data-design-mode="editorial"] .fc .fc-popover {
  border-radius: 2px !important;
}

/* ==========================================================================
   Link Orders page (.link-orders-management) — same editorial treatment
   as GBP Management: sharp 2px corners, kill the yellow-ghost gradients,
   solid yellow + ink active states, mono caps for labels/badges.
   ========================================================================== */

html[data-design-mode="editorial"] .link-orders-management .lo-kpi-card,
html[data-design-mode="editorial"] .link-orders-management .lo-insight-card,
html[data-design-mode="editorial"] .link-orders-management .lo-table-section {
  background: var(--surface-0) !important;
  border: 1px solid var(--border-standard) !important;
  border-radius: 2px !important;
  box-shadow: none !important;
  animation: none !important;
}
html[data-design-mode="editorial"] .link-orders-management .lo-kpi-card:hover {
  transform: none !important;
}
html[data-design-mode="editorial"] .link-orders-management .lo-kpi-primary {
  border-color: var(--ink) !important;
}
html[data-design-mode="editorial"] .link-orders-management .lo-kpi-icon {
  color: var(--ink-3) !important;
}
html[data-design-mode="editorial"] .link-orders-management .lo-kpi-primary .lo-kpi-icon {
  color: var(--ink) !important;
}
html[data-design-mode="editorial"] .link-orders-management .lo-kpi-label {
  color: var(--ink-3) !important;
  font-family: var(--mono) !important;
}
html[data-design-mode="editorial"] .link-orders-management .lo-kpi-value {
  color: var(--ink) !important;
  font-family: var(--font-display) !important;
}
html[data-design-mode="editorial"] .link-orders-management .lo-kpi-accent {
  color: var(--ink) !important;
}
html[data-design-mode="editorial"] .link-orders-management .lo-kpi-sub {
  color: var(--ink-3) !important;
  font-family: var(--mono) !important;
  font-size: 10px !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
}

/* Insights cards */
html[data-design-mode="editorial"] .link-orders-management .lo-insight-header {
  background: var(--surface-1) !important;
  border-bottom: 1px solid var(--border-standard) !important;
  color: var(--ink-3) !important;
  font-family: var(--mono) !important;
}
html[data-design-mode="editorial"] .link-orders-management .lo-insight-header i {
  color: var(--ink) !important;
}
html[data-design-mode="editorial"] .link-orders-management .lo-insight-link:hover {
  background: var(--surface-1) !important;
}
html[data-design-mode="editorial"] .link-orders-management .lo-insight-client,
html[data-design-mode="editorial"] .link-orders-management .lo-insight-spend {
  color: var(--ink) !important;
}
html[data-design-mode="editorial"] .link-orders-management .lo-insight-am,
html[data-design-mode="editorial"] .link-orders-management .lo-insight-count,
html[data-design-mode="editorial"] .link-orders-management .lo-insight-empty {
  color: var(--ink-3) !important;
}

/* Status badges — sharp 2px instead of 9999px pill */
html[data-design-mode="editorial"] .link-orders-management .lo-badge {
  border-radius: 2px !important;
  font-family: var(--mono) !important;
  letter-spacing: 0.08em !important;
}

/* Tab bar — ink instead of yellow accent for active, no rounded count chip */
html[data-design-mode="editorial"] .link-orders-management .lo-tab-btn {
  font-family: var(--mono) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--ink-3) !important;
}
html[data-design-mode="editorial"] .link-orders-management .lo-tab-btn:hover {
  color: var(--ink) !important;
}
html[data-design-mode="editorial"] .link-orders-management .lo-tab-btn.active {
  color: var(--ink) !important;
  border-bottom-color: var(--ink) !important;
}
html[data-design-mode="editorial"] .link-orders-management .lo-tab-count {
  border-radius: 2px !important;
  background: var(--surface-1) !important;
  color: var(--ink-2) !important;
  font-family: var(--mono) !important;
}
html[data-design-mode="editorial"] .link-orders-management .lo-tab-btn.active .lo-tab-count {
  background: var(--ink) !important;
  color: var(--paper) !important;
}

/* Search + filters */
html[data-design-mode="editorial"] .link-orders-management .lo-search-input,
html[data-design-mode="editorial"] .link-orders-management .lo-filter-select {
  border-radius: 2px !important;
  border: 1px solid var(--border-strong) !important;
  background: var(--surface-0) !important;
  color: var(--ink) !important;
  font-family: var(--font-body) !important;
}
html[data-design-mode="editorial"] .link-orders-management .lo-search-input {
  padding-left: 2.25rem !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}
html[data-design-mode="editorial"] .link-orders-management .lo-search-icon {
  color: var(--ink-3) !important;
  z-index: 1 !important;
}

/* Table */
html[data-design-mode="editorial"] .link-orders-management .lo-table-section .status-table thead th {
  background: var(--surface-1) !important;
  color: var(--ink-3) !important;
  font-family: var(--mono) !important;
  border-bottom: 1px solid var(--border-strong) !important;
}
html[data-design-mode="editorial"] .link-orders-management .lo-table-section .status-table thead th:hover {
  color: var(--ink) !important;
}
html[data-design-mode="editorial"] .link-orders-management .lo-table-section .status-table tbody tr {
  animation: none !important;
}
html[data-design-mode="editorial"] .link-orders-management .lo-table-section .status-table tbody td {
  color: var(--ink) !important;
  border-bottom: 1px solid var(--border-subtle) !important;
}
html[data-design-mode="editorial"] .link-orders-management .lo-client-link {
  color: var(--ink) !important;
}
html[data-design-mode="editorial"] .link-orders-management .lo-client-link:hover {
  color: var(--ink-2) !important;
  text-decoration: underline !important;
}
html[data-design-mode="editorial"] .link-orders-management .lo-url-link {
  color: var(--ink-3) !important;
}
html[data-design-mode="editorial"] .link-orders-management .lo-row-count {
  color: var(--ink-3) !important;
  font-family: var(--mono) !important;
}

/* Legend dropdown */
html[data-design-mode="editorial"] .link-orders-management .lo-legend-dropdown {
  border-radius: 2px !important;
  background: var(--surface-0) !important;
  border: 1px solid var(--border-standard) !important;
}
html[data-design-mode="editorial"] .link-orders-management .lo-legend-title {
  color: var(--ink-3) !important;
  font-family: var(--mono) !important;
}

/* Header buttons (New Order / Bulk Import / Legend) */
html[data-design-mode="editorial"] .link-orders-management .am-actions .btn-primary-opt,
html[data-design-mode="editorial"] .link-orders-management .am-actions .btn-secondary-opt {
  background: var(--surface-0) !important;
  border: 1px solid var(--border-strong) !important;
  border-radius: 2px !important;
  color: var(--ink) !important;
  font-family: var(--mono) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}
html[data-design-mode="editorial"] .link-orders-management .am-actions .btn-primary-opt {
  background: var(--ink) !important;
  color: var(--paper) !important;
  border-color: var(--ink) !important;
}
html[data-design-mode="editorial"] .link-orders-management .am-actions .btn-primary-opt:hover {
  background: var(--accent) !important;
  color: var(--accent-ink) !important;
  border-color: var(--accent) !important;
}
html[data-design-mode="editorial"] .link-orders-management .am-actions .btn-secondary-opt:hover {
  background: var(--surface-1) !important;
  border-color: var(--ink) !important;
  color: var(--ink) !important;
}

/* ==========================================================================
   Link Orders top bar — standardize search/filter sizing
   ========================================================================== */

html[data-design-mode="editorial"] .link-orders-management .am-actions {
  align-items: stretch !important;
}
html[data-design-mode="editorial"] .link-orders-management .am-actions > * {
  align-self: stretch !important;
  display: inline-flex !important;
  align-items: center !important;
}
html[data-design-mode="editorial"] .link-orders-management .lo-search-wrap {
  height: 32px !important;
  min-width: 220px !important;
}
html[data-design-mode="editorial"] .link-orders-management .lo-search-input,
html[data-design-mode="editorial"] .link-orders-management .lo-filter-select {
  height: 32px !important;
  font-size: 12px !important;
  padding-top: 4px !important;
  padding-bottom: 4px !important;
}
html[data-design-mode="editorial"] .link-orders-management .lo-filter-select {
  min-width: 150px !important;
}
html[data-design-mode="editorial"] .link-orders-management .am-actions .btn-primary-opt,
html[data-design-mode="editorial"] .link-orders-management .am-actions .btn-secondary-opt {
  height: 32px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* ==========================================================================
   Link Orders table — fix URL column clipping into adjacent cells
   ========================================================================== */

html[data-design-mode="editorial"] .link-orders-management .lo-table-section .status-table {
  table-layout: auto !important;
}
/* The URL column is the 4th column on Active Requests, the 5th on Purchased
   (after the bulk-select checkbox), and the 5th on Paid. Constrain by class
   instead of nth-child so the rule survives column reorders. */
html[data-design-mode="editorial"] .link-orders-management .lo-table-section .status-table td .lo-url-link,
html[data-design-mode="editorial"] .link-orders-management .lo-table-section .status-table td a[href^="http"] {
  display: inline-block !important;
  max-width: 220px !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  vertical-align: middle !important;
}
/* General td defense — anything inside a link-orders row caps at the cell
   width and ellipsises so a long URL or anchor never overlaps the next cell. */
html[data-design-mode="editorial"] .link-orders-management .lo-table-section .status-table td {
  max-width: 240px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* But keep the actions column un-clipped so icon buttons stay visible. */
html[data-design-mode="editorial"] .link-orders-management .lo-table-section .status-table td.actions-col,
html[data-design-mode="editorial"] .link-orders-management .lo-table-section .status-table td:last-child {
  max-width: none !important;
  overflow: visible !important;
  white-space: nowrap;
}

/* ==========================================================================
   Bot Registry — sidebar removed, main panel goes full-width
   Plus tidy up the task queue readability.
   ========================================================================== */

.br-container.br-container--no-sidebar { display: block !important; }
.br-container.br-container--no-sidebar .br-main {
  width: 100% !important;
  max-width: 100% !important;
}
/* Hide the old toggle button and any remaining mobile-open class hooks */
.br-sidebar-toggle { display: none !important; }

html[data-design-mode="editorial"] .br-main-title {
  font-family: var(--font-display) !important;
  color: var(--ink) !important;
}
html[data-design-mode="editorial"] .br-main-header {
  border-bottom: 1px solid var(--border-standard) !important;
}
/* New layout: title — tabs — Live indicator on one row */
html[data-design-mode="editorial"] .br-main-header.br-main-header--with-tabs {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 18px !important;
  flex-wrap: wrap !important;
  padding-bottom: 14px !important;
}
html[data-design-mode="editorial"] .br-main-header__tabs {
  margin: 0 !important;
}
/* Live indicator pushes to the far right */
html[data-design-mode="editorial"] .br-main-header.br-main-header--with-tabs .br-refresh-indicator {
  margin-left: auto !important;
}
html[data-design-mode="editorial"] .br-refresh-indicator {
  font-family: var(--mono) !important;
  font-size: 10.5px !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  color: var(--ink-3) !important;
}
/* View toggle bar (Tasks / Action Items / Activity / Troubleshoot) +
   status sub-tabs (All / Running / Completed / Failed) — sentence-case
   Inter so the tab strip reads as proper labels, not yelling-mono-caps.
   The legacy --bg-100 / --text-500 tokens used by the global .view-toggle-bar
   resolve to dark-mode-only values that look broken in editorial. */
html[data-design-mode="editorial"] .view-toggle-bar,
html[data-design-mode="editorial"] .br-board-filters,
html[data-design-mode="editorial"] .br-status-tabs {
  background: var(--surface-1) !important;
  border: 1px solid var(--border-standard) !important;
  border-radius: 2px !important;
  padding: 3px !important;
  gap: 2px !important;
}
html[data-design-mode="editorial"] .br-board-filters .view-toggle,
html[data-design-mode="editorial"] .br-status-tabs .br-status-tab {
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: var(--ink-2) !important;
  border-radius: 2px !important;
  background: transparent !important;
  border: 0 !important;
  padding: 6px 14px !important;
}
html[data-design-mode="editorial"] .br-board-filters .view-toggle:hover,
html[data-design-mode="editorial"] .br-status-tabs .br-status-tab:hover {
  background: var(--surface-0) !important;
  color: var(--ink) !important;
}
html[data-design-mode="editorial"] .br-board-filters .view-toggle.active,
html[data-design-mode="editorial"] .br-status-tabs .br-status-tab.active {
  background: var(--ink) !important;
  color: var(--paper) !important;
  font-weight: 600 !important;
}
html[data-design-mode="editorial"] .br-filter-count,
html[data-design-mode="editorial"] .br-status-tab-count,
html[data-design-mode="editorial"] .br-column-count {
  background: var(--surface-1) !important;
  color: var(--ink-2) !important;
  border-radius: 2px !important;
  font-family: var(--mono) !important;
  font-size: 10px !important;
  padding: 1px 6px !important;
  margin-left: 6px !important;
}
html[data-design-mode="editorial"] .br-status-tab.active .br-status-tab-count,
html[data-design-mode="editorial"] .br-board-filters .view-toggle.active .br-filter-count {
  background: var(--paper) !important;
  color: var(--ink) !important;
}
html[data-design-mode="editorial"] .br-column {
  background: var(--surface-0) !important;
  border: 1px solid var(--border-standard) !important;
  border-radius: 2px !important;
}
html[data-design-mode="editorial"] .br-column-header {
  border-bottom: 1px solid var(--border-standard) !important;
}
/* Column titles (Queued / Running / Completed / Failed) — Newsreader serif
   sentence case. User explicitly rejected mono-caps here. */
html[data-design-mode="editorial"] .br-column-title {
  font-family: var(--font-display) !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  letter-spacing: -0.01em !important;
  text-transform: none !important;
  color: var(--ink) !important;
}

/* Usage panel — kill the yellow-on-yellow gradient + bring the cost numerals
   to ink-strong so $2.18 / $275.57 are actually readable. */
html[data-design-mode="editorial"] .br-usage-panel {
  background: var(--surface-0) !important;
  border: 1px solid var(--border-standard) !important;
  border-radius: 2px !important;
  box-shadow: none !important;
}
html[data-design-mode="editorial"] .br-usage-label {
  color: var(--ink-3) !important;
  font-family: var(--mono) !important;
  letter-spacing: 0.08em !important;
}
html[data-design-mode="editorial"] .br-usage-value {
  color: var(--ink) !important;
  font-family: var(--font-display) !important;
  font-weight: 500 !important;
}
html[data-design-mode="editorial"] .br-usage-bar {
  background: var(--surface-1) !important;
  border-radius: 2px !important;
}
html[data-design-mode="editorial"] .br-usage-bar-fill {
  border-radius: 2px !important;
}
html[data-design-mode="editorial"] .br-usage-chip {
  background: var(--surface-1) !important;
  color: var(--ink-2) !important;
  border-radius: 2px !important;
}

/* Page-edge alignment — the H1 "Bot Registry" sits at x=0 of the content
   area but .br-main has 20px/24px padding, so the Task Queue card was
   indented relative to the title. Zero out the .br-main padding in
   editorial so both align flush with the page edge. Scoped to .br-main
   only so the 25 other .am-header templates aren't affected. */
html[data-design-mode="editorial"] .br-container .br-main {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
/* Optimus status pill — neutral surface base with state-tinted border +
   headline so the user can read the state at a glance instead of seeing
   an all-red pill regardless of state. Background stays paper; text/border
   carries the semantic. */
html[data-design-mode="editorial"] .optimus-status-pill {
  border-radius: 2px !important;
  background: var(--surface-0) !important;
  border: 1px solid var(--border-standard) !important;
  font-family: var(--mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  color: var(--ink) !important;
}
html[data-design-mode="editorial"] .optimus-status-pill .optimus-status-pill-headline {
  color: var(--ink) !important;
  font-weight: 700 !important;
}
html[data-design-mode="editorial"] .optimus-status-pill .optimus-status-pill-meta {
  color: var(--ink-3) !important;
}

/* ── Per-state styling ──
   Editorial design language is single-accent: chrome stays neutral
   cream, semantic colour lives ONLY on the dot (and on text + bar
   for the genuinely-alarming `down` state). Previous version painted
   the entire pill border with status-success / status-info /
   status-danger which clashed against the cream paper background and
   read as a harsh "everything is critical" frame even when the bot
   was healthy. 2026-05-03 — Ben flagged: "this entire box is red
   even though the bot is online."
   States kept structurally distinct via dot colour + (for down)
   ink-strong border so an offline agent is still impossible to miss. */
html[data-design-mode="editorial"] .optimus-status-pill[data-state="online"] .optimus-status-pill-dot {
  background: var(--status-success) !important;
  box-shadow: 0 0 4px var(--status-success) !important;
}
html[data-design-mode="editorial"] .optimus-status-pill[data-state="running"] .optimus-status-pill-dot {
  background: var(--accent) !important;
  box-shadow: 0 0 6px var(--accent) !important;
  animation: br-pulse 1.5s ease infinite !important;
}
html[data-design-mode="editorial"] .optimus-status-pill[data-state="queued"] .optimus-status-pill-dot {
  background: var(--status-info) !important;
}
/* down: keep the alarm — solid 2px ink-strong border + red text + red dot */
html[data-design-mode="editorial"] .optimus-status-pill[data-state="down"] {
  border-color: var(--status-danger) !important;
  border-width: 2px !important;
}
html[data-design-mode="editorial"] .optimus-status-pill[data-state="down"] .optimus-status-pill-headline {
  color: var(--status-danger) !important;
}
html[data-design-mode="editorial"] .optimus-status-pill[data-state="down"] .optimus-status-pill-dot {
  background: var(--status-danger) !important;
}
html[data-design-mode="editorial"] .optimus-status-pill-meta code {
  background: var(--surface-1) !important;
  color: var(--ink-2) !important;
  border-radius: 2px !important;
  padding: 1px 5px !important;
  font-family: var(--mono) !important;
}
html[data-design-mode="editorial"] .optimus-status-pill-reset {
  background: transparent !important;
  border: 1px solid var(--ink) !important;
  color: var(--ink) !important;
  border-radius: 2px !important;
  font-family: var(--mono) !important;
  font-size: 10px !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  padding: 2px 8px !important;
  margin-left: 6px !important;
}
html[data-design-mode="editorial"] .optimus-status-pill-reset:hover {
  background: var(--status-danger) !important;
  border-color: var(--status-danger) !important;
  color: var(--paper) !important;
}

/* ==========================================================================
   Pass 23 (2026-05-03) — Client Brain GBP tab: profile picker + compose form
   - Picker row buttons (.cm-gbp-picker-row): inline border-radius:7px squashed
     to 2px; status pills (999px) → 2px chips; +Add buttons sharpened.
   - Compose card (.gbp-compose-card): flatten 14px corners, sharpen inputs,
     re-flow the action row so primary CTA pushes right, give attach-images
     a real subsection divider.
   ========================================================================== */

/* Picker rail — profile rows (inline-styled in cm-gbp-panel.js) */
html[data-design-mode="editorial"] .cm-gbp-picker-row {
  border-radius: 2px !important;
  background: var(--surface-0) !important;
  border-color: var(--border-standard) !important;
  color: var(--ink) !important;
  padding: 12px 14px !important;
}
html[data-design-mode="editorial"] .cm-gbp-picker-row.is-active {
  background: var(--accent-tint) !important;
  border-color: var(--accent) !important;
  box-shadow: inset 3px 0 0 var(--accent) !important;
}
html[data-design-mode="editorial"] .cm-gbp-picker-row__pill {
  border-radius: 2px !important;
  font-family: var(--mono) !important;
  font-size: 9.5px !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  padding: 2px 6px !important;
}
html[data-design-mode="editorial"] .cm-gbp-picker__hd button {
  border-radius: 2px !important;
  font-family: var(--mono) !important;
  font-size: 10.5px !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  background: var(--surface-0) !important;
  border: 1px solid var(--ink) !important;
  color: var(--ink) !important;
  padding: 4px 10px !important;
}
html[data-design-mode="editorial"] .cm-gbp-picker__hd button:hover {
  background: var(--ink) !important;
  color: var(--paper) !important;
}

/* Compose card — flatten + tidy hierarchy */
html[data-design-mode="editorial"] .gbp-compose-card {
  background: var(--surface-0) !important;
  border: 1px solid var(--border-standard) !important;
  border-radius: 2px !important;
  padding: 22px 24px !important;
}
html[data-design-mode="editorial"] .gbp-compose-row label {
  font-family: var(--mono) !important;
  color: var(--ink-3) !important;
  font-size: 10px !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  font-weight: 600 !important;
  margin-bottom: 6px !important;
}
html[data-design-mode="editorial"] .gbp-compose-row textarea,
html[data-design-mode="editorial"] .gbp-compose-row input,
html[data-design-mode="editorial"] .gbp-compose-row select {
  border-radius: 2px !important;
  background: var(--surface-0) !important;
  border: 1px solid var(--border-standard) !important;
  color: var(--ink) !important;
  font-family: var(--font-body, inherit) !important;
  font-size: 13px !important;
  padding: 10px 12px !important;
}
html[data-design-mode="editorial"] .gbp-compose-row textarea:focus,
html[data-design-mode="editorial"] .gbp-compose-row input:focus,
html[data-design-mode="editorial"] .gbp-compose-row select:focus {
  border-color: var(--ink) !important;
  outline: 2px solid var(--accent-focus, var(--accent-tint)) !important;
  outline-offset: 0 !important;
}

/* Actions row — separator + push primary right */
html[data-design-mode="editorial"] .gbp-compose-actions {
  margin-top: 16px !important;
  padding-top: 14px !important;
  border-top: 1px solid var(--border-subtle) !important;
  align-items: center !important;
}
html[data-design-mode="editorial"] .gbp-compose-actions #gbpComposePublish {
  margin-left: auto !important;
}

/* Attach images — promote to a real sub-section, not a cramped row */
html[data-design-mode="editorial"] #gbpImagesWrap {
  margin-top: 18px !important;
  padding-top: 16px !important;
  border-top: 1px solid var(--border-subtle) !important;
}

/* Posts/Schedule sub-toggle row + AI Autopilot button */
html[data-design-mode="editorial"] #gbpPostsMode + div + .gbp-btn,
html[data-design-mode="editorial"] .gbp-btn-sm {
  border-radius: 2px !important;
  font-family: var(--mono) !important;
  font-size: 10.5px !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
}

/* ==========================================================================
   Pass 24 (2026-05-03) — Reports tab + Client Brain header flatten

   The Reports view (.rpt-shell + .rpt-rail) is built almost entirely from
   inline border-radius values: 4 / 5 / 6 / 7 / 8 / 10 / 12 / 14 / 999. We
   blanket-flatten every instance to 2px under editorial mode using inline-
   attribute selectors. Status dots (border-radius:50%) and inline percentage
   pills (border-radius:50%) are NOT in this list, so they stay round.

   Also catches the .cm-extend-btn EDIT button (16px from content-map.css)
   and the client_id chip in the page header (inline 6px).
   ========================================================================== */

/* EDIT button at the top of Client Brain */
html[data-design-mode="editorial"] .cm-extend-btn,
html[data-design-mode="editorial"] .cm-btn {
  border-radius: 2px !important;
}

/* Client-id chip (inline border-radius:6px in content_map.html line 29) */
html[data-design-mode="editorial"] .cm-header [style*="border-radius:6px"],
html[data-design-mode="editorial"] .cm-header [style*="border-radius: 6px"] {
  border-radius: 2px !important;
}

/* Reports — every inline-rounded element inside the shell or rail */
html[data-design-mode="editorial"] .rpt-shell [style*="border-radius:4px"],
html[data-design-mode="editorial"] .rpt-shell [style*="border-radius:5px"],
html[data-design-mode="editorial"] .rpt-shell [style*="border-radius:6px"],
html[data-design-mode="editorial"] .rpt-shell [style*="border-radius:7px"],
html[data-design-mode="editorial"] .rpt-shell [style*="border-radius:8px"],
html[data-design-mode="editorial"] .rpt-shell [style*="border-radius:10px"],
html[data-design-mode="editorial"] .rpt-shell [style*="border-radius:12px"],
html[data-design-mode="editorial"] .rpt-shell [style*="border-radius:14px"],
html[data-design-mode="editorial"] .rpt-shell [style*="border-radius:999px"],
html[data-design-mode="editorial"] .rpt-rail  [style*="border-radius:4px"],
html[data-design-mode="editorial"] .rpt-rail  [style*="border-radius:5px"],
html[data-design-mode="editorial"] .rpt-rail  [style*="border-radius:6px"],
html[data-design-mode="editorial"] .rpt-rail  [style*="border-radius:7px"],
html[data-design-mode="editorial"] .rpt-rail  [style*="border-radius:8px"],
html[data-design-mode="editorial"] .rpt-rail  [style*="border-radius:10px"],
html[data-design-mode="editorial"] .rpt-rail  [style*="border-radius:12px"],
html[data-design-mode="editorial"] .rpt-rail  [style*="border-radius:14px"],
html[data-design-mode="editorial"] .rpt-rail  [style*="border-radius:999px"],
html[data-design-mode="editorial"] .cm-rpt-overlay [style*="border-radius:4px"],
html[data-design-mode="editorial"] .cm-rpt-overlay [style*="border-radius:5px"],
html[data-design-mode="editorial"] .cm-rpt-overlay [style*="border-radius:6px"],
html[data-design-mode="editorial"] .cm-rpt-overlay [style*="border-radius:7px"],
html[data-design-mode="editorial"] .cm-rpt-overlay [style*="border-radius:8px"],
html[data-design-mode="editorial"] .cm-rpt-overlay [style*="border-radius:10px"],
html[data-design-mode="editorial"] .cm-rpt-overlay [style*="border-radius:12px"],
html[data-design-mode="editorial"] .cm-rpt-overlay [style*="border-radius:14px"],
html[data-design-mode="editorial"] .cm-rpt-overlay [style*="border-radius:999px"] {
  border-radius: 2px !important;
}

/* Reports — search/filter inputs (rendered via _rptRenderFilters with inline
   border-radius:6px on the <select>s and search input). The attribute
   selector above already handles these, but native <select> arrows get drawn
   with their own corner radius — force flat. */
html[data-design-mode="editorial"] .rpt-shell input,
html[data-design-mode="editorial"] .rpt-shell select,
html[data-design-mode="editorial"] .rpt-shell textarea,
html[data-design-mode="editorial"] .rpt-rail  input,
html[data-design-mode="editorial"] .rpt-rail  select {
  border-radius: 2px !important;
}

/* Empty state "No reports yet" dotted box — uses cm-empty class */
html[data-design-mode="editorial"] .rpt-shell .cm-empty,
html[data-design-mode="editorial"] .rpt-shell [class*="empty"] {
  border-radius: 2px !important;
}

/* ==========================================================================
   Web & Hosting page (.hosted-sites-management) — editorial overlay
   - paper-cream surfaces, flat 2px corners, mono eyebrow labels
   - kill the radial-gradient yellow KPI cards
   - filter pills match the .wr-filter-pill treatment
   - 2026-05-13 — initial pass alongside the new page
   ========================================================================== */

html[data-design-mode="editorial"] .hosted-sites-management {
  background: var(--surface-0) !important;
  font-family: var(--font-body) !important;
  color: var(--ink) !important;
}
html[data-design-mode="editorial"] .hosted-sites-management .am-name {
  font-family: var(--font-display) !important;
  font-weight: 400 !important;
  color: var(--ink) !important;
}
html[data-design-mode="editorial"] .hosted-sites-management .hs-subtitle {
  color: var(--ink-3) !important;
  font-family: var(--font-body) !important;
}

/* KPI cards — flat paper tiles with mono eyebrows + serif numbers */
html[data-design-mode="editorial"] .hosted-sites-management .hs-kpi-card,
html[data-design-mode="editorial"] .hosted-sites-management .hs-kpi-card--accent {
  background: var(--surface-0) !important;
  border: 1px solid var(--border-standard) !important;
  border-radius: 2px !important;
  box-shadow: none !important;
  animation: none !important;
  padding: 14px 16px !important;
}
html[data-design-mode="editorial"] .hosted-sites-management .hs-kpi-card--accent {
  border-color: var(--ink) !important;
}
html[data-design-mode="editorial"] .hosted-sites-management .hs-kpi-label {
  font-family: var(--mono) !important;
  font-size: 10px !important;
  letter-spacing: 0.14em !important;
  color: var(--ink-3) !important;
  text-transform: uppercase !important;
}
html[data-design-mode="editorial"] .hosted-sites-management .hs-kpi-value {
  font-family: var(--font-display) !important;
  font-weight: 400 !important;
  font-size: 1.55rem !important;
  color: var(--ink) !important;
  font-variant-numeric: tabular-nums !important;
}
html[data-design-mode="editorial"] .hosted-sites-management .hs-kpi-sub {
  font-family: var(--mono) !important;
  font-size: 10px !important;
  color: var(--ink-3) !important;
  letter-spacing: 0.04em !important;
}

/* Filter pills — match wr-filter-pill editorial treatment */
html[data-design-mode="editorial"] .hosted-sites-management .hs-pill {
  border-radius: 2px !important;
  border: 1px solid var(--border-standard) !important;
  background: var(--surface-0) !important;
  color: var(--ink-2) !important;
  font-family: var(--mono) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  padding: 0.4rem 0.85rem !important;
  transform: none !important;
}
html[data-design-mode="editorial"] .hosted-sites-management .hs-pill:hover {
  border-color: var(--ink) !important;
  color: var(--ink) !important;
  background: var(--surface-1) !important;
}
html[data-design-mode="editorial"] .hosted-sites-management .hs-pill.active {
  background: var(--accent) !important;
  color: var(--accent-ink) !important;
  border-color: var(--accent) !important;
}
html[data-design-mode="editorial"] .hosted-sites-management .hs-pill-sep {
  color: var(--ink-3) !important;
}

html[data-design-mode="editorial"] .hosted-sites-management .hs-search {
  border-radius: 2px !important;
  border: 1px solid var(--border-strong) !important;
  background: var(--surface-0) !important;
  color: var(--ink) !important;
  width: 220px !important;
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  padding: 6px 10px !important;
  height: 32px !important;
}
html[data-design-mode="editorial"] .hosted-sites-management .hs-search:focus {
  border-color: var(--ink) !important;
  outline: 2px solid var(--ink) !important;
  outline-offset: 1px !important;
  box-shadow: none !important;
}

/* Action buttons — Add Site, Import — flat editorial */
html[data-design-mode="editorial"] .hosted-sites-management .btn-primary-opt,
html[data-design-mode="editorial"] .hosted-sites-management .btn-secondary-opt {
  background: var(--surface-0) !important;
  border: 1px solid var(--border-strong) !important;
  border-radius: 2px !important;
  color: var(--ink) !important;
  font-family: var(--mono) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  padding: 6px 14px !important;
}
html[data-design-mode="editorial"] .hosted-sites-management .btn-primary-opt {
  background: var(--ink) !important;
  color: var(--paper) !important;
  border-color: var(--ink) !important;
}
html[data-design-mode="editorial"] .hosted-sites-management .btn-primary-opt:hover {
  background: var(--accent) !important;
  color: var(--accent-ink) !important;
  border-color: var(--accent) !important;
}
html[data-design-mode="editorial"] .hosted-sites-management .btn-secondary-opt:hover {
  background: var(--surface-1) !important;
  border-color: var(--ink) !important;
}

/* Status table — serif numbers, hairline rules, paper tone */
html[data-design-mode="editorial"] .hosted-sites-management .hs-table {
  border-radius: 0 !important;
}
html[data-design-mode="editorial"] .hosted-sites-management .hs-table thead th {
  font-family: var(--mono) !important;
  font-size: 10px !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--ink-3) !important;
  background: var(--surface-0) !important;
  border-bottom: 1px solid var(--ink) !important;
}
html[data-design-mode="editorial"] .hosted-sites-management .hs-table tbody td {
  font-family: var(--font-body) !important;
  font-size: 0.82rem !important;
  color: var(--ink) !important;
  border-bottom: 1px solid var(--rule, var(--border-standard)) !important;
}
html[data-design-mode="editorial"] .hosted-sites-management .hs-table td.text-end {
  font-family: var(--font-display) !important;
  font-variant-numeric: tabular-nums !important;
}
html[data-design-mode="editorial"] .hosted-sites-management .hs-site-url {
  font-family: var(--font-body) !important;
  color: var(--ink) !important;
}
html[data-design-mode="editorial"] .hosted-sites-management .hs-client-name,
html[data-design-mode="editorial"] .hosted-sites-management .hs-sub {
  font-family: var(--mono) !important;
  font-size: 10px !important;
  color: var(--ink-3) !important;
  letter-spacing: 0.04em !important;
}

/* Category pills — flat, low-contrast, no dark bg */
html[data-design-mode="editorial"] .hosted-sites-management .hs-cat {
  border-radius: 2px !important;
  font-family: var(--mono) !important;
  font-size: 9px !important;
  letter-spacing: 0.10em !important;
  text-transform: uppercase !important;
  padding: 2px 7px !important;
  border: 1px solid var(--border-strong) !important;
  background: var(--surface-0) !important;
}
html[data-design-mode="editorial"] .hosted-sites-management .hs-cat-paying {
  color: var(--up, #1f7a3a) !important;
  border-color: var(--up, #1f7a3a) !important;
  background: var(--up-soft, #e3f2e6) !important;
}
html[data-design-mode="editorial"] .hosted-sites-management .hs-cat-overdue {
  color: #8a5a00 !important; border-color: #c69400 !important; background: #faf3d8 !important;
}
html[data-design-mode="editorial"] .hosted-sites-management .hs-cat-not-paying {
  color: var(--down, #b42318) !important;
  border-color: var(--down, #b42318) !important;
  background: var(--down-soft, #fbe7e3) !important;
}
html[data-design-mode="editorial"] .hosted-sites-management .hs-cat-retainer-free,
html[data-design-mode="editorial"] .hosted-sites-management .hs-cat-own-site {
  color: var(--ink) !important; border-color: var(--ink) !important; background: var(--accent-soft, #fef9cc) !important;
}
html[data-design-mode="editorial"] .hosted-sites-management .hs-cat-cancelled {
  color: var(--ink-3) !important; border-color: var(--border-standard) !important; background: var(--surface-1) !important;
}

/* Totals row — distinct but flat */
html[data-design-mode="editorial"] .hosted-sites-management .hs-totals-row td {
  background: var(--surface-0) !important;
  border-top: 1px solid var(--ink) !important;
  border-bottom: none !important;
  font-family: var(--font-display) !important;
  font-variant-numeric: tabular-nums !important;
  color: var(--ink) !important;
}

/* Empty state */
html[data-design-mode="editorial"] .hosted-sites-management .hs-empty {
  border-radius: 2px !important;
  border-style: dashed !important;
  color: var(--ink-3) !important;
  background: var(--surface-0) !important;
}

/* End of editorial-overlay.css — Pass 24 (2026-05-03) */
