/* ── launchpad-theme (neutral / agnostic) ────────────────────────────────
 *
 * The AGNOSTIC Launchpad admin theme. Flips the shell from cagerace's dark
 * palette to a clean WHITE floor with a neutral graphite accent — NO tenant
 * brand colour baked in. Each tenant re-brands later by overriding --accent.
 *
 * History: this file began as scott-theme.css (Bondi-teal pass over the
 * cagerace dark base). For launchpad_2.0 — the tenant-agnostic base — every
 * Bondi #8B0F4D and cagerace #8B0F4D was swapped to neutral graphite
 * (#8B0F4D) on 2026-06-20. White floor kept; teal/saffron/red removed.
 * The data-tenant scope was renamed scottwagner -> launchpad (2026-06-20); the
 * filename (scott-theme.css) is the remaining carry-over, renamed a later pass.
 *
 * Approach (unchanged): hijack the admin.css custom properties under the
 * body[data-tenant="launchpad"] scope so every component flips at once;
 * hard-override the few raw-hex spots (.topbar, .lp-nav::after, CRM chrome).
 * No !important — specificity comes from the body[data-tenant=…] parent.
 * ─────────────────────────────────────────────────────────────────────── */

body[data-tenant="launchpad"] {
  /* Floor — white instead of #0E1116. */
  --dark:       #FFFFFF;
  /* Raised surfaces — soft cool grey. */
  --dark-card:  #F4F6F8;
  --dark-hover: #E8ECF0;

  /* Body text — neutral ink instead of #FFFFFF. */
  --white:       #16191d;

  /* Neutral accent — graphite. Replaces Bondi teal. Override this ONE
   * token (+ --accent-rgb) to re-brand the admin for a tenant. */
  --accent:        #8B0F4D;
  --accent-strong: #6B0A3A;
  --accent-rgb:    139, 15, 77;

  /* Borders + dimmed text — ink-on-light tints. */
  --border:       rgba(22,25,29,0.12);
  --border-light: rgba(22,25,29,0.25);
  --text-dim:     rgba(22,25,29,0.65);
  --text-dimmer:  rgba(22,25,29,0.4);

  /* Direct background + color override — beats the launchpadShell inline
   * `html, body { background: #000; color: #f0f0f0 }` rule on the CRM
   * pages. body[data-tenant=…] specificity (0,0,1,1) beats plain `body`. */
  background: var(--dark);
  color: var(--white);
}

/* Topbar — neutral near-black instead of teal. Backdrop-blur stays (glass
 * plate over the white body beneath). Nav text stays white below. */
body[data-tenant="launchpad"] .topbar {
  background: rgba(20,23,28,0.95);
  border-bottom: 1px solid rgba(255,255,255,0.14);
}

/* Nav text on the dark nav — white so the menu reads at first glance. */
body[data-tenant="launchpad"] .topbar,
body[data-tenant="launchpad"] .topbar .lp-nav-item,
body[data-tenant="launchpad"] .topbar .topbar-logo,
body[data-tenant="launchpad"] .topbar .topbar-brand,
body[data-tenant="launchpad"] .topbar .topbar-version {
  color: #FFFFFF;
}

/* Speed-blur line under the nav — was cagerace red, then Saffron. Now a
 * restrained neutral light line on the dark bar. Same shape + glow. */
body[data-tenant="launchpad"] .lp-nav::after {
  background: linear-gradient(to right,
    rgba(255,255,255,0.34) 0%,
    rgba(255,255,255,0.34) 60%,
    rgba(255,255,255,0.14) 82%,
    transparent 100%);
  box-shadow: 0 0 6px rgba(255,255,255,0.22), 0 0 14px rgba(255,255,255,0.10);
}

/* ──────────────────────────────────────────────────────────────────────────
 * CRM page surfaces — overrides for hardcoded dark values that survived the
 * var-based flip. Teal accents swapped to neutral graphite.
 * ────────────────────────────────────────────────────────────────────────── */

/* Column heads — sticky black-on-black bar becomes white-on-white. */
body[data-tenant="launchpad"] .sa-col-head {
  background: var(--dark);
  border-bottom-color: var(--border);
}

/* Roster rows — text was white-on-dark, becomes ink-on-light. */
body[data-tenant="launchpad"] .roster-row {
  background: rgba(22,25,29,0.03);
  border-color: transparent;
}
body[data-tenant="launchpad"] .roster-row:hover {
  background: rgba(139, 15, 77,0.06);
  border-color: rgba(139, 15, 77,0.25);
}
body[data-tenant="launchpad"] .roster-row.is-active {
  background: rgba(139, 15, 77,0.08);
  border-color: rgba(139, 15, 77,0.45);
}
body[data-tenant="launchpad"] .roster-row .rr-name { color: var(--white); }
body[data-tenant="launchpad"] .roster-row .rr-meta { color: var(--text-dim); }
body[data-tenant="launchpad"] .roster-row .rr-meter-track {
  background: rgba(22,25,29,0.08);
}
body[data-tenant="launchpad"] .roster-row .rr-meter-pct { color: var(--text-dim); }

/* Registration cards — dark card becomes raised light surface, accent rail
 * becomes neutral graphite. */
body[data-tenant="launchpad"] .reg-card {
  background: var(--dark-card);
  border-color: var(--border);
  border-left-color: var(--accent);
}
body[data-tenant="launchpad"] .reg-name { color: var(--white); }
body[data-tenant="launchpad"] .reg-meta { color: var(--text-dim); }
body[data-tenant="launchpad"] .reg-when,
body[data-tenant="launchpad"] .reg-type { color: var(--text-dimmer); }

/* Filter chips — invisible on white without this. */
body[data-tenant="launchpad"] .chip {
  color: var(--text-dim);
  border-color: rgba(22,25,29,0.18);
}
body[data-tenant="launchpad"] .chip:hover {
  color: var(--white);
  border-color: rgba(139, 15, 77,0.55);
}
body[data-tenant="launchpad"] .chip--active {
  /* Glass-tube treatment kept; neutral graphite gel instead of teal. */
  background: linear-gradient(180deg,
    rgba(120, 130, 145, 0.16) 0%,
    rgba(139, 15, 77,  0.30) 50%,
    rgba(26,  33,  42,  0.30) 100%);
  border-color: rgba(139, 15, 77, 0.55);
  color: #FFFFFF;
  box-shadow:
    inset 0 1px 0    rgba(255, 255, 255, 0.22),
    inset 0 -1px 1px rgba(0,   0,   0,   0.25),
    0 0 6px          rgba(139, 15, 77, 0.18);
}

/* Contacts table chrome — invisible text on white. */
body[data-tenant="launchpad"] thead th {
  color: rgba(22,25,29,0.6);
  background: #F4F6F8;
  border-bottom-color: var(--border);
}
body[data-tenant="launchpad"] tbody td {
  color: var(--white);
  border-bottom-color: var(--border);
}
body[data-tenant="launchpad"] tbody tr:hover td {
  background: rgba(139, 15, 77,0.04);
}
body[data-tenant="launchpad"] tbody tr:hover td:first-child {
  box-shadow: inset 2px 0 0 var(--accent);
}
body[data-tenant="launchpad"] tbody td a {
  color: var(--white);
  border-bottom: 1px dotted rgba(22,25,29,0.25);
}
body[data-tenant="launchpad"] tbody td a:hover {
  color: var(--accent);
  border-color: var(--accent);
}

/* t-mono + t-dim — pull toward neutral ink-tint. */
body[data-tenant="launchpad"] .t-mono { color: var(--text-dim); }
body[data-tenant="launchpad"] .t-dim  { color: var(--text-dim); }

/* ── WEBSITE EDITOR (.we-*) — white-floor pass, neutral accent ──────────── */
body[data-tenant="launchpad"] .we-panel    { color: #16191d; }
body[data-tenant="launchpad"] .we-title     { color: #16191d; }
body[data-tenant="launchpad"] .we-subtitle  { color: #5b6168; }

body[data-tenant="launchpad"] .we-view-link       { color: #8B0F4D; border-bottom-color: rgba(139, 15, 77,0.45); }
body[data-tenant="launchpad"] .we-view-link:hover { color: #16191d; border-bottom-color: rgba(22,25,29,0.5); }

body[data-tenant="launchpad"] .we-page-picker { border-bottom-color: rgba(22,25,29,0.10); }
body[data-tenant="launchpad"] .we-pill        { color: #4a5159; border-color: rgba(22,25,29,0.22); }
body[data-tenant="launchpad"] .we-pill:hover  { background: rgba(139, 15, 77,0.07); color: #16191d; border-color: rgba(139, 15, 77,0.45); }
body[data-tenant="launchpad"] .we-pill--active,
body[data-tenant="launchpad"] .we-pill--active:hover { background: #8B0F4D; color: #fff; border-color: #8B0F4D; }

body[data-tenant="launchpad"] .we-search              { background: #fff; border-color: rgba(22,25,29,0.20); color: #16191d; }
body[data-tenant="launchpad"] .we-search::placeholder { color: rgba(22,25,29,0.4); }
body[data-tenant="launchpad"] .we-search:focus        { border-color: #8B0F4D; background: #fff; }

body[data-tenant="launchpad"] .we-loading { color: #5b6168; }

body[data-tenant="launchpad"] .we-field              { background: #F4F6F8; border-color: rgba(22,25,29,0.10); box-shadow: 0 1px 2px rgba(22,25,29,0.04); }
body[data-tenant="launchpad"] .we-field:focus-within { border-color: rgba(139, 15, 77,0.55); background: #fff; }
body[data-tenant="launchpad"] .we-field--edited      { border-left-color: #8B0F4D; }
body[data-tenant="launchpad"] .we-field-label        { color: #16191d; }
body[data-tenant="launchpad"] .we-field-hint         { color: #939aa1; }
body[data-tenant="launchpad"] .we-badge              { background: #8B0F4D; color: #fff; }

body[data-tenant="launchpad"] .we-input        { background: #fff; color: #16191d; border-color: rgba(22,25,29,0.20); }
body[data-tenant="launchpad"] .we-input:focus  { background: #fff; border-color: #8B0F4D; }
body[data-tenant="launchpad"] .we-input[data-is-default="1"] { color: #7c838a; }

body[data-tenant="launchpad"] .we-footer   { background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.92) 35%, #fff 65%); }
body[data-tenant="launchpad"] .we-save-btn { background: #8B0F4D; color: #fff; border-color: #8B0F4D; }
body[data-tenant="launchpad"] .we-save-btn:hover:not(:disabled) { background: #6B0A3A; border-color: #6B0A3A; }

body[data-tenant="launchpad"] .we-status          { color: #5b6168; }
body[data-tenant="launchpad"] .we-status--success { color: #1f9d57; }
body[data-tenant="launchpad"] .we-status--error   { color: #c0392b; }
body[data-tenant="launchpad"] .we-status--info    { color: #16191d; }

/* ── NEWS EDITOR — white-floor pass, neutral accent ─────────────────────── */
body[data-tenant="launchpad"] [data-panel="news"] .cd-compose,
body[data-tenant="launchpad"] [data-panel="news"] .cd-recent {
  background: #f4f6f8;
  border: 1px solid #e4e7ea;
}
body[data-tenant="launchpad"] [data-panel="news"] .cd-kicker { color: #8B0F4D; }
body[data-tenant="launchpad"] [data-panel="news"] .cd-recent-head { color: #16191d; }
body[data-tenant="launchpad"] [data-panel="news"] .cd-field > label { color: #16191d; }
body[data-tenant="launchpad"] [data-panel="news"] .cd-field > input,
body[data-tenant="launchpad"] [data-panel="news"] .cd-field > textarea {
  background: #ffffff;
  border: 1px solid #d5dadf;
  color: #16191d;
}
body[data-tenant="launchpad"] [data-panel="news"] .cd-field > input::placeholder,
body[data-tenant="launchpad"] [data-panel="news"] .cd-field > textarea::placeholder { color: #939aa1; }
body[data-tenant="launchpad"] [data-panel="news"] .cd-field > input:focus,
body[data-tenant="launchpad"] [data-panel="news"] .cd-field > textarea:focus {
  border-color: #8B0F4D;
  box-shadow: 0 0 0 3px rgba(139, 15, 77, 0.12);
}
body[data-tenant="launchpad"] [data-panel="news"] .cd-actions .btn-primary {
  background: #8B0F4D;
  color: #fff;
}
body[data-tenant="launchpad"] [data-panel="news"] .cd-actions .btn-primary:hover:not(:disabled) {
  background: #6B0A3A;
  filter: none;
}
body[data-tenant="launchpad"] [data-panel="news"] .cd-actions .btn-ghost {
  background: #fff;
  color: #16191d;
  border: 1px solid #cbd2d8;
}
body[data-tenant="launchpad"] [data-panel="news"] .cd-actions .btn-ghost:hover {
  border-color: #8B0F4D;
  color: #8B0F4D;
}
body[data-tenant="launchpad"] [data-panel="news"] .cd-status       { color: #5b6168; }
body[data-tenant="launchpad"] [data-panel="news"] .cd-status--ok   { color: #1f9d57; }
body[data-tenant="launchpad"] [data-panel="news"] .cd-status--warn { color: #b5762f; }
body[data-tenant="launchpad"] [data-panel="news"] .cd-status--err  { color: #c0392b; }
body[data-tenant="launchpad"] [data-panel="news"] .cd-recent-item {
  background: #ffffff;
  border: 1px solid #e4e7ea;
}
body[data-tenant="launchpad"] [data-panel="news"] .cd-recent-title {
  color: #16191d;
  font-weight: 600;
  text-decoration: none;
  line-height: 1.3;
}
body[data-tenant="launchpad"] [data-panel="news"] .cd-recent-title:hover { color: #8B0F4D; }
body[data-tenant="launchpad"] [data-panel="news"] .cd-recent-meta { color: #6a7176; font-size: 12px; }
body[data-tenant="launchpad"] [data-panel="news"] .cd-recent-del {
  align-self: flex-start;
  background: #fff;
  color: #8a9094;
  border: 1px solid #d5dadf;
}
body[data-tenant="launchpad"] [data-panel="news"] .cd-recent-del:hover { color: #c0392b; border-color: #c0392b; }
body[data-tenant="launchpad"] [data-panel="news"] .cd-feed-links a {
  color: #8B0F4D;
  border-bottom-color: rgba(139, 15, 77, 0.35);
}
body[data-tenant="launchpad"] [data-panel="news"] .cd-recent-loading,
body[data-tenant="launchpad"] [data-panel="news"] .cd-recent-empty { color: #6a7176; }

/* ── HOME landing — neutral Launchpad wordmark ───────────────────────────
 * The cagerace trident (white-on-white, invisible) was swapped for a clean
 * text wordmark. No tenant brand colour — ink on white. Drop a real logo
 * in here later if wanted. */
body[data-tenant="launchpad"] .lp-home-mark {
  margin-top: clamp(40px, 9vh, 120px);
  font-family: 'Montserrat', system-ui, sans-serif;
  font-weight: 800;
  font-size: clamp(30px, 5vw, 58px);
  letter-spacing: 0.04em;
  line-height: 1;
  color: #16191d;
}
body[data-tenant="launchpad"] .lp-home-mark small {
  display: block;
  margin-top: 14px;
  font-size: clamp(11px, 1.1vw, 13px);
  font-weight: 600;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  color: rgba(22,25,29,0.42);
}
