/* ToolPortal A+B v2
   Stripe-grade directory shell + Mintlify-style tool pages.
   This supersedes the rejected workbench v1 overlay for the scoped pages. */

@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap");

:root {
  --tp-ink: #0a2540;
  --tp-text: #24364b;
  --tp-muted: #66788f;
  --tp-soft: #f6f9fc;
  --tp-paper: #ffffff;
  --tp-line: #dfe7f1;
  --tp-line-strong: #c7d2df;
  --tp-violet: #635bff;
  --tp-violet-dark: #4f46e5;
  --tp-teal: #0d9373;
  --tp-green: #00d4aa;
  --tp-code: #0f1117;
  --tp-amber: #f5a623;
  --tp-red: #df1b41;
  --tp-radius: 8px;
  --tp-shadow: 0 24px 80px rgba(10, 37, 64, .10);
  --tp-shadow-sm: 0 1px 2px rgba(10, 37, 64, .05);
  --tp-font-sans: "DM Sans", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --tp-font-display: "DM Sans", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* {
  box-sizing: border-box;
}

html {
  background: #f8fbff !important;
  scroll-behavior: smooth;
}

body {
  min-height: 100vh;
  margin: 0 !important;
  color: var(--tp-text) !important;
  background:
    radial-gradient(circle at 16% 8%, rgba(99, 91, 255, .08), transparent 30%),
    radial-gradient(circle at 86% 6%, rgba(0, 212, 170, .09), transparent 28%),
    linear-gradient(180deg, #f8fbff 0%, #ffffff 34%, var(--tp-soft) 100%) !important;
  font-family: var(--tp-font-sans) !important;
  line-height: 1.62 !important;
  letter-spacing: 0 !important;
}

body::before,
body::after,
.hero::before,
.hero::after,
.panel::before,
.panel::after,
.hero-copy::before,
.hero-copy::after,
.contact-hero-primary::before,
.contact-hero-primary::after {
  content: none !important;
  display: none !important;
}

a {
  color: inherit;
  text-underline-offset: 3px;
}

button,
input,
select,
textarea {
  font: inherit;
  letter-spacing: 0 !important;
}

button,
a[href],
summary,
.card,
.feature-link,
.collection-card,
.tool-card {
  cursor: pointer;
}

.shell {
  width: min(1180px, calc(100% - 32px)) !important;
  max-width: 1180px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.top,
header.shell.top,
div.shell.top {
  position: sticky !important;
  top: 0 !important;
  z-index: 50 !important;
  width: 100% !important;
  max-width: none !important;
  min-height: 68px !important;
  margin: 0 !important;
  padding: 0 max(16px, calc((100vw - 1180px) / 2)) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 20px !important;
  color: var(--tp-text) !important;
  background: rgba(255, 255, 255, .9) !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(223, 231, 241, .92) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  backdrop-filter: blur(18px);
}

.brand,
.tp-logo {
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  color: var(--tp-ink) !important;
  font-weight: 700 !important;
  text-decoration: none !important;
}

.brand-mark,
.brand-dot,
.dot,
.tp-logo-mark {
  width: 26px !important;
  height: 26px !important;
  flex: 0 0 26px !important;
  display: inline-block !important;
  border-radius: 7px !important;
  background: linear-gradient(135deg, var(--tp-violet), var(--tp-teal)) !important;
  box-shadow: 0 10px 28px rgba(99, 91, 255, .24) !important;
}

.nav,
.tp-nav {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
}

.nav a,
.tp-nav-pill {
  min-height: 38px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 12px !important;
  border: 0 !important;
  border-radius: var(--tp-radius) !important;
  color: #425466 !important;
  background: transparent !important;
  font-size: 14px !important;
  font-weight: 650 !important;
  text-decoration: none !important;
}

.nav a:hover,
.tp-nav-pill:hover {
  color: var(--tp-violet-dark) !important;
  background: #f4f7ff !important;
}

.nav a[href="/contact/"] {
  color: #fff !important;
  background: var(--tp-ink) !important;
  padding-left: 14px !important;
  padding-right: 14px !important;
}

.home,
main.shell {
  padding-top: 48px !important;
}

.hero {
  margin-top: 0 !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 440px) !important;
  gap: 44px !important;
  align-items: start !important;
}

.panel,
.section,
.faq,
.cta,
.tool-card,
.proof-card,
.collection-card,
.lane-card,
.item,
.workspace,
.tp-card,
.related,
.example,
.step,
.signal-card,
.result,
.contact-hero-primary {
  border: 1px solid var(--tp-line) !important;
  border-radius: var(--tp-radius) !important;
  background: var(--tp-paper) !important;
  box-shadow: var(--tp-shadow-sm) !important;
}

.panel,
.section,
.faq,
.cta {
  padding: 30px !important;
}

h1,
h2 {
  color: var(--tp-ink) !important;
  font-family: var(--tp-font-display) !important;
  font-style: normal !important;
  line-height: 1.04 !important;
  letter-spacing: 0 !important;
}

h1 {
  max-width: 720px !important;
  font-size: 48px !important;
  font-weight: 650 !important;
}

h2 {
  font-size: 30px !important;
  font-weight: 650 !important;
}

h3 {
  color: var(--tp-ink) !important;
  font-family: var(--tp-font-sans) !important;
  line-height: 1.18 !important;
  letter-spacing: 0 !important;
  font-size: 18px !important;
  font-weight: 680 !important;
}

p,
.lead,
.sub,
.hero-note,
.task-mode-note {
  color: #425466 !important;
}

.lead,
.sub {
  max-width: 680px !important;
  font-size: 17px !important;
  line-height: 1.62 !important;
}

.eyebrow,
.tag,
.badge,
.mini-chip,
.chip,
.kpi b,
.signal-card b,
.step b,
.example b {
  width: fit-content !important;
  min-height: 28px !important;
  display: inline-flex !important;
  align-items: center !important;
  padding: 0 10px !important;
  border: 1px solid rgba(99, 91, 255, .22) !important;
  border-radius: 999px !important;
  color: var(--tp-violet-dark) !important;
  background: rgba(99, 91, 255, .07) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .04em !important;
  text-transform: uppercase !important;
}

.hero-main,
.hero-copy {
  position: relative !important;
  min-height: 480px !important;
  padding: 40px !important;
  overflow: hidden !important;
  border-color: rgba(223, 231, 241, .9) !important;
  background:
    radial-gradient(circle at 94% 16%, rgba(99, 91, 255, .08), transparent 26%),
    #fff !important;
  box-shadow: var(--tp-shadow) !important;
}

.hero-side,
.control,
.panel.tool {
  box-shadow: var(--tp-shadow) !important;
}

.hero-search,
.search-wrap,
.hero-search-panel {
  margin-top: 22px !important;
  border: 1px solid var(--tp-line) !important;
  border-radius: var(--tp-radius) !important;
  background: #fff !important;
  box-shadow: 0 18px 48px rgba(10, 37, 64, .07) !important;
}

.hero-search {
  padding: 16px !important;
}

.mode-switch {
  display: inline-flex !important;
  gap: 6px !important;
  padding: 4px !important;
  border: 1px solid var(--tp-line) !important;
  border-radius: 10px !important;
  background: var(--tp-soft) !important;
}

.mode-tab,
.filter-chip,
.tag-btn,
.task-example,
button,
.primary,
.ghost,
.secondary,
.danger,
.launch,
.btn {
  min-height: 40px !important;
  border-radius: var(--tp-radius) !important;
  border: 1px solid var(--tp-line) !important;
  padding: 0 14px !important;
  color: var(--tp-ink) !important;
  background: #fff !important;
  font-weight: 680 !important;
  text-decoration: none !important;
  transition: background .16s ease, border-color .16s ease, color .16s ease, box-shadow .16s ease !important;
}

.mode-tab[aria-pressed="true"],
.filter-chip[aria-pressed="true"],
.primary,
.hero-search-row button,
#homeTaskRecommendGo,
#homeToolSearchGo,
.btn-primary {
  color: #fff !important;
  border-color: var(--tp-violet) !important;
  background: var(--tp-violet) !important;
  box-shadow: 0 12px 30px rgba(99, 91, 255, .22) !important;
}

.ghost:hover,
.secondary:hover,
.tag-btn:hover,
.task-example:hover,
.filter-chip:hover,
.mode-tab:hover,
.launch:hover {
  color: var(--tp-violet-dark) !important;
  border-color: rgba(99, 91, 255, .35) !important;
  background: #f4f7ff !important;
}

.danger {
  color: var(--tp-red) !important;
  border-color: rgba(223, 27, 65, .22) !important;
  background: #fff7f8 !important;
}

label {
  display: block !important;
  margin-bottom: 7px !important;
  color: var(--tp-ink) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .04em !important;
  text-transform: uppercase !important;
}

input,
textarea,
select {
  border: 1px solid var(--tp-line-strong) !important;
  border-radius: var(--tp-radius) !important;
  color: var(--tp-ink) !important;
  background: #fff !important;
  box-shadow: none !important;
}

input,
select {
  min-height: 44px !important;
  padding: 0 12px !important;
}

textarea {
  min-height: 144px !important;
  padding: 12px !important;
}

input:focus,
textarea:focus,
select:focus,
button:focus-visible,
a:focus-visible {
  outline: 2px solid rgba(99, 91, 255, .32) !important;
  outline-offset: 2px !important;
}

.hero-search-row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 10px !important;
}

.hero-search-results,
.category-list {
  list-style: none !important;
  padding: 0 !important;
}

.category-list {
  display: grid !important;
  gap: 10px !important;
}

.category-list a,
.feature-link {
  display: block !important;
  padding: 14px !important;
  border: 1px solid var(--tp-line) !important;
  border-radius: var(--tp-radius) !important;
  color: var(--tp-text) !important;
  background: #fff !important;
  text-decoration: none !important;
}

.category-list a:hover,
.feature-link:hover {
  border-color: rgba(99, 91, 255, .35) !important;
  background: #f8faff !important;
}

.category-list strong,
.feature-link span {
  color: var(--tp-ink) !important;
  font-weight: 680 !important;
}

.category-list span,
.feature-link b {
  display: block !important;
  margin-top: 3px !important;
  color: var(--tp-muted) !important;
  font-size: 13px !important;
  font-weight: 650 !important;
}

.quick-tags,
.task-example-list,
.filter-bar {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
}

.proof-grid,
.kpis,
.signal-grid,
.doc-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 12px !important;
}

.signal-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.kpis {
  margin-top: 22px !important;
}

.kpi,
.proof-card,
.signal-card {
  min-width: 0 !important;
  padding: 16px !important;
  border: 1px solid var(--tp-line) !important;
  border-radius: var(--tp-radius) !important;
  background: #fff !important;
}

.kpi span,
.proof-card b,
.signal-card span {
  display: block !important;
  color: var(--tp-ink) !important;
  font-size: 21px !important;
  font-weight: 680 !important;
  line-height: 1.18 !important;
}

.signal-card b {
  max-width: 100% !important;
  white-space: normal !important;
  line-height: 1.15 !important;
}

.signal-card span {
  font-size: 18px !important;
  line-height: 1.24 !important;
  overflow-wrap: anywhere !important;
}

.proof-card span {
  display: block !important;
  margin-top: 8px !important;
  color: var(--tp-violet-dark) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .04em !important;
  text-transform: uppercase !important;
}

.section,
.faq,
.cta {
  margin-top: 28px !important;
}

.section-head {
  margin: 64px 0 24px !important;
  display: flex !important;
  align-items: flex-end !important;
  justify-content: space-between !important;
  gap: 24px !important;
}

.section-head p,
.results-panel span {
  color: var(--tp-muted) !important;
}

/* Directory product surface */
.control {
  align-self: stretch !important;
}

.search-wrap {
  padding: 14px !important;
  box-shadow: none !important;
}

.filter-chip {
  gap: 8px !important;
}

.filter-chip strong {
  min-height: 22px !important;
  padding: 0 7px !important;
  border-radius: 999px !important;
  background: rgba(255, 255, 255, .18) !important;
  color: inherit !important;
  font-size: 12px !important;
}

.feature-grid {
  margin-top: 18px !important;
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px !important;
}

.results-panel {
  min-width: 280px !important;
  padding: 16px !important;
  border: 1px solid var(--tp-line) !important;
  border-radius: var(--tp-radius) !important;
  background: #fff !important;
}

#toolsGrid.grid {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 10px !important;
}

#toolsGrid .card {
  min-height: auto !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 14px !important;
  align-items: center !important;
  padding: 16px !important;
  border: 1px solid var(--tp-line) !important;
  border-radius: var(--tp-radius) !important;
  background: #fff !important;
  box-shadow: none !important;
}

#toolsGrid .card::before {
  display: none !important;
}

#toolsGrid .card-head,
#toolsGrid .card-foot {
  display: contents !important;
}

#toolsGrid .card h2 {
  margin: 0 !important;
  font-size: 17px !important;
  letter-spacing: 0 !important;
}

#toolsGrid .card h2 a {
  color: var(--tp-ink) !important;
  text-decoration: none !important;
}

#toolsGrid .card p {
  grid-column: 1 / 2 !important;
  margin: 4px 0 0 !important;
  max-width: 760px !important;
  color: var(--tp-muted) !important;
  font-size: 14px !important;
}

#toolsGrid .meta {
  grid-column: 1 / 2 !important;
  grid-row: auto !important;
  display: flex !important;
  gap: 6px !important;
}

#toolsGrid .launch {
  grid-column: 2 / 3 !important;
  grid-row: 1 / span 3 !important;
  align-self: center !important;
}

/* Mintlify-style tool pages */
.panel.tool,
aside.panel.tool {
  background: #fff !important;
}

.panel.tool textarea,
.code,
pre,
.console,
#jsonOutput,
#output {
  color: #d1fae5 !important;
  background: var(--tp-code) !important;
  border-color: #20242f !important;
  font-family: "JetBrains Mono", Consolas, monospace !important;
}

.panel.tool textarea::placeholder {
  color: #8b96a7 !important;
}

.row,
.button-row {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
}

.tool-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 12px !important;
}

.section .panel {
  box-shadow: none !important;
}

.section .panel h2,
.section h2 {
  font-size: 28px !important;
}

.section .panel p,
.section li,
.faq p,
.related p {
  color: #425466 !important;
  font-size: 15.5px !important;
}

.answer,
.direct-answer {
  border-color: #cde8df !important;
  background: #f1fbf8 !important;
}

table {
  width: 100% !important;
  border-collapse: collapse !important;
  overflow: hidden !important;
  border-radius: var(--tp-radius) !important;
}

th,
td {
  border: 1px solid var(--tp-line) !important;
  padding: 12px !important;
  text-align: left !important;
}

th {
  color: var(--tp-ink) !important;
  background: var(--tp-soft) !important;
}

/* Contact and feedback */
.contact-hero-primary,
.contact-copy {
  background:
    radial-gradient(circle at 90% 14%, rgba(99, 91, 255, .07), transparent 28%),
    #fff !important;
}

.email,
.email-pill,
a[href^="mailto:"],
.contact-hero-primary a[href^="mailto:"] {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 44px !important;
  padding: 0 16px !important;
  border-radius: var(--tp-radius) !important;
  color: #fff !important;
  background: var(--tp-ink) !important;
  font-weight: 700 !important;
  text-decoration: none !important;
}

form {
  display: grid !important;
  gap: 14px !important;
}

form .row {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

#toolportal-fb-btn {
  border-radius: var(--tp-radius) !important;
  color: #fff !important;
  background: var(--tp-teal) !important;
  box-shadow: 0 18px 40px rgba(13, 147, 115, .24) !important;
}

footer {
  margin-top: 28px !important;
  padding: 24px 0 34px !important;
  color: var(--tp-muted) !important;
  font-size: 14px !important;
}

@media (max-width: 980px) {
  .top,
  header.shell.top,
  div.shell.top {
    position: relative !important;
    align-items: flex-start !important;
    flex-direction: column !important;
    min-height: auto !important;
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }

  .nav {
    justify-content: flex-start !important;
  }

  .home,
  main.shell {
    padding-top: 28px !important;
  }

  .hero,
  .proof-grid,
  .kpis,
  .signal-grid,
  .tool-grid,
  .doc-grid,
  form .row {
    grid-template-columns: 1fr !important;
  }

  .hero {
    gap: 18px !important;
  }

  .hero-main,
  .hero-copy {
    min-height: auto !important;
  }

  h1 {
    max-width: 13ch !important;
    font-size: 36px !important;
  }

  h2 {
    font-size: 27px !important;
  }

  .section .panel h2,
  .section h2 {
    font-size: 28px !important;
  }

  .lead,
  .sub {
    font-size: 17px !important;
  }

  .hero-search-row,
  .section-head,
  #toolsGrid .card {
    grid-template-columns: 1fr !important;
  }

  #toolsGrid .launch {
    grid-column: 1 !important;
    grid-row: auto !important;
    width: fit-content !important;
  }

  .feature-grid {
    grid-template-columns: 1fr !important;
  }

  .panel,
  .section,
  .faq,
  .cta {
    padding: 20px !important;
  }

  #toolportal-fb-btn {
    display: none !important;
  }
}

@media (max-width: 420px) {
  .shell {
    width: min(100% - 24px, 1180px) !important;
  }

  h1 {
    max-width: none !important;
    font-size: 31px !important;
  }

  h2,
  .section .panel h2,
  .section h2 {
    font-size: 25px !important;
  }

  .nav a {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  .mode-switch {
    width: 100% !important;
  }

  .mode-tab {
    flex: 1 1 0 !important;
    min-width: 0 !important;
  }
}
