:root {
  --bp-app-brand: #5137df;
  --bp-app-brand-deep: #3020a8;
  --bp-app-ticker: #2d9a61;
  --bp-app-ink: #202331;
  --bp-app-muted: #656a78;
  --bp-app-line: #e0e2e9;
  --bp-app-surface: #f7f7fa;
  --bp-app-soft-indigo: #f1efff;
  --bp-app-radius: 12px;
}

body.bp-approved-design {
  background: #fff;
  color: var(--bp-app-ink);
  font-family: "Archivo", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  overflow-x: clip;
}

.bp-approved-design *,
.bp-approved-design *::before,
.bp-approved-design *::after { box-sizing: border-box; }

.bp-approved-design :focus-visible {
  outline: 3px solid #f0b429 !important;
  outline-offset: 3px !important;
}

.bp-approved-shell {
  background:
    radial-gradient(circle at 100% 0, rgba(81,55,223,.08), transparent 30rem),
    linear-gradient(#fff, #fff);
  min-height: 60vh;
  padding: 0 20px 72px;
}

.bp-approved-main {
  width: min(1240px, 100%);
  margin: 0 auto;
}

.bp-approved-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(250px, 340px);
  gap: 44px;
  align-items: end;
  padding: clamp(42px, 7vw, 88px) 0 42px;
  border-bottom: 1px solid var(--bp-app-line);
}

.bp-approved-eyebrow {
  margin: 0 0 12px !important;
  color: var(--bp-app-brand-deep) !important;
  font: 700 11px/1.2 "Archivo", sans-serif !important;
  letter-spacing: .13em !important;
  text-transform: uppercase !important;
}

.bp-approved-hero h1 {
  max-width: 900px;
  margin: 0 !important;
  color: var(--bp-app-ink) !important;
  font: 800 clamp(2.25rem, 5.6vw, 4.65rem)/.98 "Archivo", sans-serif !important;
  letter-spacing: -.045em !important;
}

.bp-approved-deck {
  max-width: 780px;
  margin: 22px 0 0 !important;
  color: #454a59 !important;
  font: 400 clamp(1.08rem, 1.7vw, 1.3rem)/1.6 "Source Serif 4", Georgia, serif !important;
}

.bp-approved-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  align-items: center;
  margin-top: 20px;
  color: var(--bp-app-muted);
  font-size: 13px;
}

.bp-approved-meta a,
.bp-approved-research a { color: var(--bp-app-brand-deep); text-underline-offset: 3px; }

.bp-approved-hero-note {
  display: grid;
  gap: 8px;
  padding: 20px;
  border: 1px solid #d8d3ff;
  border-left: 5px solid var(--bp-app-brand);
  border-radius: var(--bp-app-radius);
  background: var(--bp-app-soft-indigo);
  color: #46445d;
  font-size: 14px;
  line-height: 1.55;
}

.bp-approved-hero-note strong { color: var(--bp-app-ink); }

.bp-approved-layout {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: clamp(32px, 5vw, 72px);
  align-items: start;
  padding-top: 42px;
}

.bp-approved-toc {
  position: sticky;
  top: 96px;
  padding: 18px 0;
  border-top: 3px solid var(--bp-app-brand);
  border-bottom: 1px solid var(--bp-app-line);
}

.bp-approved-toc ol { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.bp-approved-toc a { color: #4f5462; font-size: 13px; line-height: 1.35; text-decoration: none; }
.bp-approved-toc a:hover { color: var(--bp-app-brand-deep); text-decoration: underline; text-underline-offset: 3px; }

.bp-approved-content {
  min-width: 0;
  color: var(--bp-app-ink);
  font: 400 17px/1.72 "Source Serif 4", Georgia, serif;
}

.bp-approved-content > :first-child { margin-top: 0 !important; }
.bp-approved-content p { line-height: 1.72; }
.bp-approved-content h2,
.bp-approved-content h3,
.bp-approved-content h4,
.bp-approved-content label,
.bp-approved-content button,
.bp-approved-content input,
.bp-approved-content select,
.bp-approved-content textarea { font-family: "Archivo", sans-serif; }

.bp-approved-content h2 {
  margin: 52px 0 16px !important;
  color: var(--bp-app-ink) !important;
  font-size: clamp(1.55rem, 3vw, 2.1rem) !important;
  line-height: 1.18 !important;
  letter-spacing: -.025em !important;
  scroll-margin-top: 100px;
}

.bp-approved-content h3 {
  margin: 30px 0 10px !important;
  color: #282c39 !important;
  font-size: 1.18rem !important;
  line-height: 1.3 !important;
}

.bp-approved-content a { text-underline-offset: 3px; }
.bp-approved-content ul,
.bp-approved-content ol { display: grid; gap: 8px; margin: 16px 0; padding-left: 1.35em; }
.bp-approved-content li::marker { color: var(--bp-app-brand); }

.bp-approved-content :where([class*="card"], [class*="panel"], [class*="snapshot"], [class*="note"], [class*="alert"]) {
  border-radius: var(--bp-app-radius) !important;
}

.bp-approved-content :where(button, input, select, textarea, summary, [role="button"]) {
  min-height: 44px;
}

.bp-approved-content :where(button, input[type="submit"], input[type="button"], .bp-tool-button, [class*="btn"]) {
  border-radius: 8px !important;
}

.bp-approved-content button:not(.secondary),
.bp-approved-content input[type="submit"] {
  background: var(--bp-app-brand) !important;
  border-color: var(--bp-app-brand) !important;
  color: #fff !important;
}

.bp-approved-content button:hover,
.bp-approved-content input[type="submit"]:hover { filter: brightness(.92); }

.bp-approved-table-scroll {
  max-width: 100%;
  margin: 22px 0;
  overflow-x: auto;
  border: 1px solid var(--bp-app-line);
  border-radius: var(--bp-app-radius);
  background: #fff;
}

.bp-approved-table-scroll table { width: 100%; min-width: 640px; margin: 0 !important; border: 0 !important; }
.bp-approved-table-scroll th { background: #f1f0f8 !important; color: #29283b !important; font: 700 12px/1.35 "Archivo", sans-serif; letter-spacing: .03em; text-transform: uppercase; }
.bp-approved-table-scroll th,
.bp-approved-table-scroll td { padding: 14px 16px !important; border-bottom: 1px solid var(--bp-app-line) !important; text-align: left; }

.bp-approved-research,
.bp-approved-verification {
  margin-top: 64px;
  padding: clamp(24px, 4vw, 40px);
  border: 1px solid var(--bp-app-line);
  border-radius: 16px;
  background: linear-gradient(135deg, #f7f7fa, #f0efff);
}

.bp-approved-research h2,
.bp-approved-verification h2 { margin: 0 0 12px; font: 750 clamp(1.4rem, 3vw, 2rem)/1.15 "Archivo", sans-serif; }
.bp-approved-research p,
.bp-approved-verification p,
.bp-approved-verification li { max-width: 850px; color: #4f5462; line-height: 1.65; }
.bp-approved-research-links { display: flex; flex-wrap: wrap; gap: 12px 24px; margin-top: 20px; font: 600 14px/1.4 "Archivo", sans-serif; }
.bp-approved-status { display: inline-flex; width: auto; padding: 7px 10px; border-radius: 999px; background: #fff2d9; color: #704d00 !important; font: 700 12px/1.2 "Archivo", sans-serif !important; text-transform: uppercase; letter-spacing: .06em; }

/* Hub and report families keep distinct rhythm while sharing the same system. */
.bp-approved-shell--rules-hub .bp-approved-hero,
.bp-approved-shell--pulse-hub .bp-approved-hero,
.bp-approved-shell--status-hub .bp-approved-hero,
.bp-approved-shell--deals-hub .bp-approved-hero,
.bp-approved-shell--tools-hub .bp-approved-hero,
.bp-approved-shell--learn-hub .bp-approved-hero { padding-bottom: 52px; }

.bp-approved-pulse-report .bp-approved-hero-note,
.bp-approved-status-report .bp-approved-hero-note,
.bp-approved-deals-report .bp-approved-hero-note { background: #f4f8f6; border-color: #cce3d7; border-left-color: var(--bp-app-ticker); }

.bp-approved-risk-calculator .bp-approved-content,
.bp-approved-tools-hub .bp-approved-content,
.bp-approved-pulse-hub .bp-approved-content,
.bp-approved-status-hub .bp-approved-content,
.bp-approved-deals-hub .bp-approved-content,
.bp-approved-pulse-report .bp-approved-content,
.bp-approved-status-report .bp-approved-content,
.bp-approved-deals-report .bp-approved-content { font-family: "Archivo", sans-serif; font-size: 16px; line-height: 1.6; }

/* Editorial listing/search/404 states. */
.bp-approved-listing-hero { align-items: center; }
.bp-approved-search { display: grid; gap: 8px; padding: 20px; border: 1px solid var(--bp-app-line); border-radius: var(--bp-app-radius); background: #fff; }
.bp-approved-search label,
.bp-approved-listing-tools label { color: #4f5462; font-size: 13px; font-weight: 650; }
.bp-approved-search div { display: flex; gap: 8px; }
.bp-approved-search input,
.bp-approved-listing-tools input { width: 100%; min-height: 46px; padding: 10px 13px; border: 1px solid #cfd2dc; border-radius: 8px; background: #fff; }
.bp-approved-search button { min-height: 46px; padding: 0 18px; border: 0; border-radius: 8px; background: var(--bp-app-brand); color: #fff; font-weight: 700; }
.bp-approved-listing { padding-top: 44px; }
.bp-approved-listing-tools { display: grid; grid-template-columns: 1fr minmax(220px, 360px) auto; gap: 12px 18px; align-items: end; margin-bottom: 24px; }
.bp-approved-listing-tools h2 { margin: 0; font-size: 1.8rem; }
.bp-approved-listing-tools label { grid-column: 2; }
.bp-approved-listing-tools p { margin: 0 0 12px; color: var(--bp-app-muted); font-size: 13px; }
.bp-approved-card-grid,
.bp-approved-link-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.bp-approved-article-card,
.bp-approved-link-grid > a { display: flex; flex-direction: column; min-width: 0; padding: 24px; border: 1px solid var(--bp-app-line); border-radius: var(--bp-app-radius); background: #fff; box-shadow: 0 12px 34px rgba(35,30,80,.055); text-decoration: none; }
.bp-approved-article-card h3 { margin: 8px 0 12px; font-size: 1.22rem; line-height: 1.3; }
.bp-approved-article-card h3 a { color: var(--bp-app-ink); text-decoration: none; }
.bp-approved-article-card p { color: #5b6070; line-height: 1.6; }
.bp-approved-card-meta { margin: 0 !important; color: var(--bp-app-brand-deep) !important; font-size: 12px !important; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.bp-approved-card-link { margin-top: auto; padding-top: 18px; color: var(--bp-app-brand-deep); font-weight: 700; }
.bp-approved-pagination { margin-top: 32px; }
.bp-approved-recovery { padding: 48px 0 0; }
.bp-approved-link-grid > a { gap: 8px; color: var(--bp-app-ink); }
.bp-approved-link-grid span { color: #5b6070; line-height: 1.55; }
.bp-approved-empty { grid-column: 1 / -1; padding: 30px; border: 1px dashed #c8cad5; border-radius: var(--bp-app-radius); text-align: center; }

@media (max-width: 900px) {
  .bp-approved-hero { grid-template-columns: 1fr; gap: 24px; }
  .bp-approved-layout { grid-template-columns: 1fr; }
  .bp-approved-toc { position: static; padding: 16px; border: 1px solid var(--bp-app-line); border-radius: var(--bp-app-radius); background: var(--bp-app-surface); }
  .bp-approved-toc ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bp-approved-card-grid,
  .bp-approved-link-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
  .bp-approved-shell { padding-inline: 15px; padding-bottom: 52px; }
  .bp-approved-hero { padding-top: 34px; }
  .bp-approved-hero h1 { font-size: clamp(2.1rem, 11vw, 3.15rem) !important; }
  .bp-approved-toc ol { grid-template-columns: 1fr; }
  .bp-approved-card-grid,
  .bp-approved-link-grid { grid-template-columns: 1fr; }
  .bp-approved-listing-tools { grid-template-columns: 1fr; }
  .bp-approved-listing-tools label { grid-column: auto; }
  .bp-approved-search div { flex-direction: column; }
  .bp-approved-content { font-size: 16px; }
  .bp-approved-research-links { display: grid; }
}

@media (prefers-reduced-motion: reduce) {
  .bp-approved-design * { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
