@font-face {
  font-family: "Geist";
  src: url("/fonts/Geist-Variable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Geist Mono";
  src: url("/fonts/GeistMono-Variable.ttf") format("truetype");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

:root {
  --portal-bg: #ffffff;
  --portal-surface: #ffffff;
  --portal-surface-strong: #ffffff;
  --portal-ink: #111318;
  --portal-muted: #60656f;
  --portal-faint: #8b9099;
  --portal-line: #dfe2e7;
  --portal-line-strong: var(--portal-line);
  --portal-accent: #000000;
  --portal-accent-soft: #f2f2f2;
  --portal-danger: #a83e39;
  --portal-danger-soft: #f8e9e7;
  --portal-orange: #fe5b2a;
  --portal-mono: "Geist Mono", ui-monospace, SFMono-Regular, Consolas, monospace;
  --portal-radius: 10px;
  --portal-content: 1440px;
}

* { box-sizing: border-box; }

.ca-error-page { display: flex; flex-direction: column; min-height: 100svh; }
.ca-error { width: min(100%, 960px); margin: auto; padding: 64px 32px 80px; }
.ca-error h1 { max-width: 20ch; margin: 0; font-size: clamp(2rem, 5vw, 3.5rem); line-height: 1.1; letter-spacing: -.025em; text-wrap: balance; overflow-wrap: anywhere; }
.ca-error__code { display: block; margin-bottom: 24px; font: 500 clamp(4rem, 10vw, 6rem)/1 var(--portal-mono); }
.ca-error p { max-width: 60ch; margin: 24px 0 32px; color: var(--portal-muted); font-size: 18px; line-height: 1.6; }
.ca-error__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.ca-error__actions .portal-button { min-height: 48px; }
.ca-error__home { display: inline-flex; align-items: center; padding: 12px 18px; min-height: 48px; color: var(--portal-ink); text-underline-offset: .25em; }
.ca-error__support { display: inline-block; padding: 12px 0; margin-top: 20px; color: var(--portal-ink); text-underline-offset: .25em; }
.ca-error-page a:focus-visible { outline: 2px solid var(--portal-orange); outline-offset: 4px; }
@media (max-width: 700px) { .ca-error { padding: 40px 20px 48px; } .ca-error p { font-size: 16px; } }

.directory-table__profile { color: inherit; text-decoration: none; text-underline-offset: .2em; }
.directory-table__profile:hover { text-decoration: underline; }
.directory-table__profile:focus-visible { outline: 2px solid var(--portal-orange); outline-offset: 4px; }
.portal-page.contractor-profile { max-width: 1200px; margin-inline: auto; padding-block: 48px 72px; }
.contractor-profile a { text-underline-offset: .22em; }
.contractor-profile a:focus-visible { outline: 2px solid var(--portal-orange); outline-offset: 4px; }
.contractor-profile__heading { display: flex; align-items: center; gap: 14px; margin-bottom: 40px; }
.contractor-profile h1 { margin: 0; font-size: clamp(2rem, 4vw, 3.5rem); line-height: 1.1; letter-spacing: -.025em; overflow-wrap: anywhere; }
.contractor-profile__heading p, .contractor-profile__note { max-width: 72ch; color: var(--portal-muted); line-height: 1.6; }
.contractor-profile h2 { margin: 0 0 20px; font-size: 24px; letter-spacing: -.02em; }
.contractor-profile__nav { position: sticky; top: 0; z-index: 2; display: flex; gap: 8px 24px; overflow-x: auto; padding: 12px 0; border-block: 1px solid var(--portal-line); background: var(--portal-bg); }
.contractor-profile__nav a { flex: 0 0 auto; min-height: 32px; color: var(--portal-muted); font: 13px/32px var(--portal-mono); text-decoration: none; }
.contractor-profile__nav a:hover { color: var(--portal-ink); }
.contractor-profile__section { scroll-margin-top: 72px; padding: 44px 0; border-bottom: 1px solid var(--portal-line); }
.contractor-profile__snapshot { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 0 28px; }
.contractor-profile__snapshot > div { display: block !important; padding: 14px 0 !important; border-top: 1px solid var(--portal-line); }
.contractor-profile__snapshot dt { margin-bottom: 6px; font: 12px/1.4 var(--portal-mono); text-transform: uppercase; letter-spacing: .06em; }
.contractor-profile__snapshot dd { font-size: 16px; line-height: 1.45; }
.contractor-profile__split { display: grid; grid-template-columns: 1.15fr .85fr; gap: 64px; }
.contractor-profile__split .contractor-profile__section { min-width: 0; }
.contractor-profile__chips, .contractor-profile__source-list, .contractor-profile__checklist { padding: 0; margin: 20px 0 0; list-style: none; }
.contractor-profile__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.contractor-profile__chips li { padding: 8px 10px; border: 1px solid var(--portal-line); font-size: 14px; line-height: 1.35; }
.contractor-profile__metric-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; background: var(--portal-line); }
.contractor-profile__metric-grid > div { display: block !important; padding: 18px !important; background: var(--portal-bg); }
.contractor-profile__metric-grid dt { color: var(--portal-ink); font: 650 28px/1 var(--portal-mono); }
.contractor-profile__metric-grid dd { margin-top: 8px; color: var(--portal-muted); }
.contractor-profile__contact-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.contractor-profile__contact { min-width: 0; padding: 20px; border: 1px solid var(--portal-line); }
.contractor-profile__contact p { margin: 6px 0; line-height: 1.45; }
.contractor-profile__meta { color: var(--portal-muted); font: 12px/1.4 var(--portal-mono); text-transform: uppercase; }
.contractor-profile__contact dl { margin: 12px 0; }
.contractor-profile__contact dl > div { grid-template-columns: 70px minmax(0,1fr); }
.contractor-profile__gap-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 1px; background: var(--portal-line); }
.contractor-profile__gap-grid > div { display: block !important; padding: 18px !important; background: var(--portal-bg); }
.contractor-profile__gap-grid dt { color: var(--portal-ink); }
.contractor-profile__gap-grid dd { margin-top: 10px; color: var(--portal-muted); }
.contractor-profile__recommendation > div { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; }
.contractor-profile__checklist li, .contractor-profile__source-list li { position: relative; padding: 8px 0 8px 24px; line-height: 1.45; }
.contractor-profile__checklist li::before { position: absolute; left: 0; content: "✓"; color: #177447; font-weight: 700; }
.contractor-profile__checklist--pending li::before { content: "○"; color: var(--portal-muted); }
.contractor-profile__source-list { columns: 2; column-gap: 48px; }
.contractor-profile__source-list li { break-inside: avoid; border-bottom: 1px solid var(--portal-line); }
.contractor-profile__source-list li::before { position: absolute; left: 0; content: "↳"; color: var(--portal-muted); }
.contractor-profile__records-title { scroll-margin-top: 72px; margin: 56px 0 28px !important; padding-top: 28px; border-top: 1px solid var(--portal-ink); }
.contractor-profile__count { margin-left: 8px; font: 16px var(--portal-mono); color: var(--portal-muted); }
.contractor-profile__records { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; }
.contractor-profile__records > section { min-width: 0; }
.contractor-profile__record { padding: 20px 0; border-top: 1px solid var(--portal-line); }
.contractor-profile h3 { margin: 0 0 10px; font-size: 18px; line-height: 1.4; overflow-wrap: anywhere; }
.contractor-profile__record h3 span { margin-left: 8px; font: 13px var(--portal-mono); color: var(--portal-muted); }
.contractor-profile__record p { line-height: 1.5; margin: 8px 0; }
.contractor-profile dl { margin: 16px 0; }
.contractor-profile dl > div { display: grid; grid-template-columns: minmax(110px, 1fr) minmax(0, 2fr); gap: 16px; padding-block: 5px; font-size: 14px; line-height: 1.5; }
.contractor-profile dt { color: var(--portal-muted); }
.contractor-profile dd { margin: 0; overflow-wrap: anywhere; }
.contractor-profile__notice { color: var(--portal-danger); }
.contractor-profile__history { margin-top: 56px; border-top: 1px solid var(--portal-ink); padding-top: 28px; }
.contractor-profile__tabs { display: flex; flex-wrap: wrap; gap: 8px 24px; border-bottom: 1px solid var(--portal-line); margin-top: 24px; }
.contractor-profile__tabs a { padding: 12px 0; min-height: 44px; color: var(--portal-muted); text-decoration: none; }
.contractor-profile__tabs a[aria-current] { color: var(--portal-ink); border-bottom: 2px solid var(--portal-ink); font-weight: 650; }
.contractor-profile__tabs a:hover { color: var(--portal-ink); }
.contractor-profile__timeline { padding: 0; margin: 0; list-style: none; }
.contractor-profile__event { display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 32px; padding: 28px 0; border-bottom: 1px solid var(--portal-line); }
.contractor-profile__date { font: 13px/1.7 var(--portal-mono); color: var(--portal-muted); }
.contractor-profile__record-label { margin: 0; color: var(--portal-muted); line-height: 1.5; }
.contractor-profile__changes dd { display: flex; flex-wrap: wrap; gap: 4px 20px; }
.contractor-profile__changes del { color: var(--portal-muted); }
.contractor-profile__changes ins { text-decoration: none; font-weight: 600; }
.contractor-profile__sources { display: flex; flex-wrap: wrap; gap: 16px; font-size: 14px; }
.contractor-profile__empty { padding: 20px 0; max-width: 65ch; line-height: 1.6; color: var(--portal-muted); }
.contractor-profile__pagination { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 16px; margin-top: 24px; }
@media (max-width: 700px) {
  .portal-page.contractor-profile { width: auto; margin: 0; padding: 28px 20px 48px; }
  .contractor-profile__heading { margin-bottom: 28px; }
  .contractor-profile__nav { margin-inline: -20px; padding-inline: 20px; }
  .contractor-profile__snapshot, .contractor-profile__split, .contractor-profile__contact-grid,
  .contractor-profile__gap-grid, .contractor-profile__recommendation > div { grid-template-columns: 1fr; gap: 0; }
  .contractor-profile__source-list { columns: 1; }
  .contractor-profile__records { grid-template-columns: 1fr; gap: 28px; }
  .contractor-profile__event { grid-template-columns: 1fr; gap: 12px; }
  .contractor-profile__history { margin-top: 36px; }
  .contractor-profile dl > div { grid-template-columns: minmax(95px, 1fr) minmax(0, 2fr); gap: 10px; }
}

.automatic-schedule { padding: 24px 0; border-bottom: 1px solid var(--portal-line); }
.automatic-schedule h2 { margin: 0 0 16px; font-size: 22px; }
.automatic-schedule p { max-width: 75ch; line-height: 1.5; }
.automatic-schedule form { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin: 20px 0; }
.automatic-schedule label { display: flex; align-items: baseline; gap: 8px; max-width: 65ch; }
.automatic-schedule button { padding: 12px 18px; border: 1px solid var(--portal-ink); background: var(--portal-ink); color: var(--portal-bg); cursor: pointer; font: inherit; }
.automatic-schedule button:hover { background: var(--portal-bg); color: var(--portal-ink); }
.automatic-schedule :focus-visible { outline: 2px solid var(--portal-orange); outline-offset: 3px; }
.automatic-schedule summary { cursor: pointer; padding: 8px 0; }
.automatic-schedule__scroll { overflow-x: auto; }
.automatic-schedule table { width: 100%; border-collapse: collapse; font-size: 14px; }
.automatic-schedule th, .automatic-schedule td { padding: 12px 8px; border-bottom: 1px solid var(--portal-line); text-align: left; vertical-align: top; min-width: 160px; overflow-wrap: anywhere; }

html { color-scheme: light; }

body.parser-portal {
  margin: 0;
  min-height: 100vh;
  background: var(--portal-bg);
  color: var(--portal-ink);
  font-family: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}

a { color: inherit; }
button, input, select, textarea { font: inherit; }
button, select { cursor: pointer; }
img { display: block; }
.hidden { display: none !important; }
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

:focus-visible {
  outline: 3px solid rgb(0 0 0 / 18%);
  outline-offset: 2px;
}

button:focus,
button:focus-visible {
  outline: 0;
  box-shadow: none;
}

button:focus-visible {
  text-decoration: underline;
  text-underline-offset: 4px;
}

button:focus-visible img { opacity: .65; }

input:not([type="checkbox"]):not([type="radio"]):focus,
input:not([type="checkbox"]):not([type="radio"]):focus-visible,
select:focus,
select:focus-visible,
textarea:focus,
textarea:focus-visible {
  outline: 0;
  border-color: var(--portal-ink);
  box-shadow: none;
}

.portal-search:focus-within,
.parser-history__search:focus-within { border-color: var(--portal-ink); }

.portal-icon { width: 18px; height: 18px; }

.portal-nav {
  position: sticky;
  z-index: 20;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 68px;
  padding: 0 max(24px, calc((100vw - var(--portal-content)) / 2));
  background: rgb(255 255 255 / 94%);
  backdrop-filter: blur(14px);
}

.portal-brand {
  display: inline-flex;
  align-items: center;
  color: var(--portal-ink);
  text-decoration: none;
}

.portal-brand__wordmark {
  display: inline-flex;
  align-items: baseline;
  color: #000;
  font-family: "Geist Mono", ui-monospace, monospace;
  font-size: 14px;
  font-weight: 560;
  letter-spacing: .04em;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
}

.portal-brand__wordmark strong {
  display: inline-flex;
  gap: .35em;
  margin-left: .35em;
  color: var(--portal-muted);
  font: inherit;
}

.portal-brand__wordmark strong::before {
  color: #fe5b2a;
  content: "/";
}

.portal-brand__mark {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border: 1px solid #c9d0ff;
  border-radius: 8px;
  background: var(--portal-accent-soft);
}

.portal-brand__mark img { width: 18px; height: 18px; }

.portal-nav__links {
  display: flex;
  align-items: center;
  gap: 4px;
}

.portal-nav__links a {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 38px;
  padding: 0 12px;
  border: 1px solid transparent;
  border-radius: 0;
  color: var(--portal-muted);
  font-family: "Geist Mono", ui-monospace, monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1.32px;
  text-decoration: none;
  text-transform: uppercase;
}

.portal-nav__links a:hover {
  color: var(--portal-ink);
}

.portal-nav__links a.is-active {
  color: var(--portal-ink);
}

.portal-nav__links a.is-active::before {
  color: #fe5b2a;
  content: "/";
}

.portal-nav__links img { width: 16px; height: 16px; }
.portal-nav__links .portal-nav__signout { margin-left: 8px; border-left-color: var(--portal-line-strong); }

.portal-page,
.portal-admin-shell {
  width: min(calc(100% - 48px), var(--portal-content));
  margin: 0 auto;
  padding: 54px 0 80px;
}

.portal-page__heading,
.parser-history__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 32px;
  margin-bottom: 34px;
}

.portal-page__heading h1,
.parser-history__title {
  margin: 0;
  font-size: clamp(32px, 3.5vw, 48px);
  font-weight: 600;
  letter-spacing: -.04em;
  line-height: 1;
}

.portal-page__heading p,
.parser-history__subtitle {
  max-width: 620px;
  margin: 14px 0 0;
  color: var(--portal-muted);
  font-size: 16px;
  line-height: 1.55;
}

.directory-card,
.parser-history__table-card {
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.portal-page--directory {
  width: auto;
  max-width: none;
  margin-right: max(48px, calc((100vw - var(--portal-content)) / 2));
  margin-left: max(24px, calc((100vw - var(--portal-content)) / 2));
  padding-top: 0;
}

.directory-layout {
  --directory-sticky-top: 68px;
  --directory-table-head-height: 48px;
  --directory-slash-color: #e0e1e3;
  --directory-slash-accent: #fe5b2a;
  display: grid;
  grid-template-columns: 320px minmax(0, 1fr);
  align-items: start;
  gap: clamp(24px, 2.5vw, 40px);
  transition: grid-template-columns .26s cubic-bezier(.22, 1, .36, 1);
}

.directory-layout.is-sidebar-collapsed { grid-template-columns: 72px minmax(0, 1fr); }

@media (min-width: 681px) {
  .directory-layout:not(.is-sidebar-collapsed) .directory-sidebar__content {
    padding-top: 40px;
  }

  .directory-layout.is-sidebar-collapsed .directory-sidebar {
    transform: translateY(-11px);
  }
}

.directory-sidebar {
  --directory-sidebar-inline-padding: 32px;
  position: sticky;
  z-index: 5;
  top: var(--directory-sticky-top);
  min-width: 0;
  padding-inline: 20px var(--directory-sidebar-inline-padding);
}

.directory-sidebar__toggle {
  display: grid;
  width: 40px;
  min-height: 40px !important;
  margin: 0 0 18px auto;
  padding: 0 !important;
  place-items: center;
}

body.parser-portal .directory-sidebar__toggle,
body.parser-portal .directory-sidebar__toggle:hover {
  border: 0 !important;
  background: transparent !important;
  color: var(--portal-ink) !important;
}

body.parser-portal .directory-sidebar__toggle:hover img { filter: none; }

.directory-sidebar__toggle img { width: 18px; height: 18px; }
.directory-layout:not(.is-sidebar-collapsed) .directory-sidebar__toggle {
  position: absolute;
  z-index: 2;
  top: 24px;
  right: calc(var(--directory-sidebar-inline-padding) - 11px);
  margin: 0;
}
.directory-layout:not(.is-sidebar-collapsed) .directory-sidebar:has(.directory-sidebar__snapshot) .directory-sidebar__toggle { top: 63px; }

@media (min-width: 681px) {
  .directory-layout:not(.is-sidebar-collapsed) .directory-sidebar__toggle {
    top: calc(var(--directory-table-head-height) + 24px);
  }

  .directory-layout:not(.is-sidebar-collapsed) .directory-sidebar:has(.directory-sidebar__snapshot) .directory-sidebar__toggle {
    top: -11px;
  }
}
.directory-layout:not(.is-sidebar-collapsed) .directory-sidebar__heading h1 { padding-right: 48px; }
.directory-layout.is-sidebar-collapsed .directory-sidebar__toggle { margin-inline: auto; }
.directory-layout.is-sidebar-collapsed .directory-sidebar__content { display: none; }

.directory-sidebar__rail {
  display: grid;
  gap: 10px;
  justify-items: center;
}

.directory-sidebar__rail[hidden] { display: none; }

.directory-sidebar__rail::before {
  width: .5px;
  height: 24px;
  background: var(--portal-line-strong);
  content: "";
}

.directory-sidebar__rail-item {
  display: grid;
  width: 42px;
  min-height: 46px;
  padding: 7px 4px;
  place-items: center;
  gap: 4px;
  border: 0;
  color: var(--portal-ink);
  font-family: "Geist Mono", ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: 13px;
  line-height: 1;
}

.directory-sidebar__heading h1 {
  margin: 0;
  font-size: clamp(32px, 3vw, 42px);
  font-weight: 600;
  letter-spacing: -.04em;
  line-height: 1;
}

.directory-sidebar__heading {
  --directory-pattern-color: lab(96.1634% .0993311 -.364041);
  position: relative;
  overflow: hidden;
  background-image: repeating-linear-gradient(315deg, var(--directory-pattern-color) 0, var(--directory-pattern-color) 1px, transparent 0, transparent 50%);
  background-size: 16px 16px;
}

.directory-sidebar__heading {
  margin-inline: 0;
  padding: 24px;
}

.directory-sidebar__heading > :not(.directory-sidebar__ascii) {
  position: relative;
  z-index: 1;
}

.directory-sidebar__heading.has-ascii-canvas { background-image: none; }

.directory-sidebar__ascii {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 1;
  pointer-events: none;
}

.directory-sidebar__heading p {
  margin: 14px 0 0;
  color: var(--portal-muted);
  font-size: 14px;
  line-height: 1.55;
}

.directory-sidebar__snapshot {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin: 0 0 12px;
  padding-top: 10px;
  padding-inline: 0;
  border-top: .5px solid var(--portal-line-strong);
  color: var(--portal-muted);
  font-family: "Geist Mono", ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: 11px;
  letter-spacing: .14em;
  line-height: 1.4;
  text-transform: uppercase;
}

.directory-sidebar__snapshot time {
  color: #fe5b2a;
  font-variant-numeric: tabular-nums;
  font-weight: 600;
}

.directory-sidebar__snapshot span { color: var(--portal-muted); }

.directory-sidebar__heading p,
.directory-filters .portal-field > span:first-child {
  font-family: "Geist Mono", ui-monospace, SFMono-Regular, Consolas, monospace;
}

.directory-filters .portal-field > span:first-child {
  letter-spacing: .12em;
  text-transform: uppercase;
}

.directory-sidebar .directory-filters {
  display: grid;
  align-items: stretch;
  gap: 24px;
  margin-top: 32px;
}

.directory-sidebar .directory-filters .portal-field { gap: 8px; }

.directory-state-filters { min-width: 0; margin: 0; padding: 0; border: 0; }
.directory-state-filters legend { margin-bottom: 8px; font-weight: 550; }
.directory-state-filters label { display: flex; align-items: center; gap: 12px; min-height: 44px; cursor: pointer; }
.directory-state-filters input[type="checkbox"] { width: 18px; height: 18px; margin: 0; accent-color: #111318; }
.directory-state-filters input:focus-visible { outline: 2px solid #111318; outline-offset: 4px; }
.directory-state-filters small { margin-left: 8px; color: var(--portal-muted); }
.directory-location-trigger { display: inline-flex; gap: 8px; align-items: center; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; letter-spacing: inherit; text-transform: inherit; cursor: pointer; }
.directory-location-trigger img { transform: rotate(90deg); }
.directory-table__sticky-header .directory-location-trigger { pointer-events: auto; }
.directory-location-trigger:focus-visible { outline: 2px solid #111318; outline-offset: 4px; }
.directory-location-filter { position: fixed; inset: auto; margin: 0; box-sizing: border-box; width: min(288px, calc(100vw - 16px)); max-height: calc(100dvh - 16px); overflow-y: auto; padding: 20px; border: 1px solid var(--portal-line); background: #fff; color: var(--portal-ink); }
.directory-location-filter form { display: grid; gap: 16px; }
.directory-location-filter nav { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 16px; font-size: 14px; }

.directory-sidebar .portal-search,
.directory-sidebar .portal-button,
.directory-sidebar .portal-field select { width: 100%; }
.directory-sidebar .portal-field,
.directory-sidebar .portal-search,
.directory-sidebar .portal-search input { min-width: 0; }

.directory-results {
  min-width: 0;
}

.directory-toolbar,
.parser-history__table-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  padding: 0 0 24px;
  border-bottom: 0;
}

.directory-toolbar h2,
.parser-history__table-title {
  margin: 0;
  font-size: 18px;
  font-weight: 610;
  letter-spacing: -.02em;
}

.directory-toolbar p { margin: 6px 0 0; color: var(--portal-muted); font-size: 13px; }

.directory-filters,
.parser-history__table-controls,
.parser-history-actions,
.parser-result-head__actions {
  display: flex;
  align-items: center;
  gap: 9px;
  flex-wrap: wrap;
}

.portal-field { display: grid; gap: 5px; color: var(--portal-muted); font-size: 11px; font-weight: 620; }
.portal-field select,
.parser-history__table-controls select,
.parser-history-actions select {
  min-height: 40px;
  border: 1px solid var(--portal-line-strong);
  border-radius: 0;
  background: var(--portal-surface-strong);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3 6 5 5 5-5' fill='none' stroke='%230b0d12' stroke-width='1.5' stroke-linecap='square'/%3E%3C/svg%3E");
  background-position: right 16px center;
  background-repeat: no-repeat;
  background-size: 16px;
  color: var(--portal-ink);
  padding: 0 44px 0 11px;
  appearance: none;
}

.portal-search,
.parser-history__search {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 280px;
  min-height: 40px;
  padding: 0 11px;
  border: 1px solid var(--portal-line-strong);
  border-radius: 0;
  background: var(--portal-surface-strong);
}

.portal-search img,
.parser-history__search img { width: 17px; height: 17px; opacity: .6; }
.portal-search input,
.parser-history__search-input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--portal-ink); }
.directory-sidebar .portal-search input::placeholder { font-size: 14px; font-weight: 400; }

.portal-button,
.parser-history-actions__btn,
.parser-history__filter-btn,
.parser-toggle-btn,
.parser-download-btn,
.parser-history__new-project {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 46px;
  padding: 0 18px;
  border: 1px solid #000;
  border-radius: 0;
  background: #fff;
  color: var(--portal-ink);
  font-size: 13px;
  font-weight: 610;
  text-decoration: none;
}

body.parser-portal button,
body.parser-portal input[type="button"],
body.parser-portal input[type="submit"],
body.parser-portal input[type="reset"],
body.parser-portal ::file-selector-button,
body.parser-portal .portal-button,
body.parser-portal .parser-history-actions__btn,
body.parser-portal .parser-history__filter-btn,
body.parser-portal .parser-toggle-btn,
body.parser-portal .parser-download-btn,
body.parser-portal .parser-history__new-project,
body.parser-portal .parser-integrations-card__action {
  font-family: "Geist Mono", ui-monospace, monospace;
  font-size: 12px !important;
  letter-spacing: 1.32px;
  text-transform: uppercase;
}

.portal-button,
.parser-history__new-project,
.parser-download-btn { border-color: #000; background: #000; color: #fff; }
.parser-history__new-project img { filter: invert(1); }
.portal-button:hover,
.parser-history__new-project:hover,
.parser-download-btn:hover { background: #fff; color: #000; }
.parser-history-actions__btn:hover,
.parser-toggle-btn:hover,
.parser-history__filter-btn:hover { background: #000; color: #fff; }
button:disabled { cursor: not-allowed; opacity: .45; }

.portal-document,
.parser-integrations-card,
.parser-integrations__notice {
  border: 1px solid var(--portal-line);
  border-radius: var(--portal-radius);
  background: var(--portal-surface);
}

.portal-document { padding: 26px; }
.portal-document h2 { margin: 0; font-size: 18px; }
.portal-document p { max-width: 760px; margin: 10px 0 0; color: var(--portal-muted); line-height: 1.6; }

.parser-integrations__main { display: grid; gap: 20px; }
.parser-integrations__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 8px;
}
.parser-integrations__title { margin: 0; font-size: clamp(34px, 4vw, 52px); font-weight: 570; letter-spacing: -.045em; }
.parser-integrations__subtitle { margin: 12px 0 0; color: var(--portal-muted); font-size: 16px; }
.parser-integrations__connect-new {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  padding: 0 16px;
  border: 1px solid var(--portal-ink);
  border-radius: 9px;
  background: var(--portal-ink);
  color: #fff;
  font-weight: 620;
}
.parser-integrations__connect-new:hover { background: #353531; }
.parser-integrations__connect-new-icon { width: 18px; height: 18px; filter: invert(1); }
.parser-integrations__is-hidden { display: none !important; }
.parser-integrations__cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.parser-integrations-card { padding: 20px; }
.parser-integrations-card__row,
.parser-integrations-card__left,
.parser-integrations-card__right,
.parser-integrations-card__actions,
.parser-integrations-card__account-row { display: flex; align-items: center; }
.parser-integrations-card__row { justify-content: space-between; gap: 20px; }
.parser-integrations-card__left { gap: 13px; min-width: 0; }
.parser-integrations-card__right { justify-content: flex-end; gap: 12px; flex-wrap: wrap; }
.parser-integrations-card__actions { gap: 8px; }
.parser-integrations-card__title { margin: 0; font-size: 16px; font-weight: 630; }
.parser-integrations-card__subtext,
.parser-integrations-card__account,
.parser-integrations-card__meta-action { color: var(--portal-muted); font-size: 13px; }
.parser-integrations-card__subtext { margin: 5px 0 0; }
.parser-integrations-card__icon,
.parser-integrations-google__avatar-wrap {
  display: grid;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  place-items: center;
  overflow: hidden;
  border: 1px solid var(--portal-line);
  border-radius: 11px;
  background: var(--portal-accent-soft);
}
.parser-integrations-card__icon-symbol { width: 20px; height: 20px; }
.parser-integrations-google__avatar-shell { position: relative; }
.parser-integrations-google__avatar,
.parser-integrations-google__initials { width: 100%; height: 100%; object-fit: cover; }
.parser-integrations-google__initials { display: grid; place-items: center; font-weight: 650; }
.parser-integrations-google__service-badge { position: absolute; right: -4px; bottom: -4px; }
.parser-integrations-google__service-badge-inner {
  display: grid;
  width: 18px;
  height: 18px;
  place-items: center;
  border: 2px solid var(--portal-surface);
  border-radius: 50%;
  background: #fff;
}
.parser-integrations-google__service-icon { width: 13px; height: 13px; }
.parser-integrations-card__badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 8px;
  border-radius: 999px;
  background: #ecebe6;
  color: var(--portal-muted);
  font-size: 12px;
  font-weight: 620;
}
.parser-integrations-card__badge-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--portal-faint); }
.parser-integrations-card__badge--connected { background: var(--portal-accent-soft); color: var(--portal-accent); }
.parser-integrations-card__badge--connected .parser-integrations-card__badge-dot { background: var(--portal-accent); }
.parser-integrations-card__badge--warning { background: var(--portal-danger-soft); color: var(--portal-danger); }
.parser-integrations-card__badge--warning .parser-integrations-card__badge-dot { background: var(--portal-danger); }
.parser-integrations-card__action {
  min-height: 34px;
  padding: 0 10px;
  border: 1px solid var(--portal-line-strong);
  border-radius: 8px;
  background: var(--portal-surface-strong);
  color: var(--portal-ink);
  font-size: 12px;
  font-weight: 620;
  line-height: 32px;
  text-decoration: none;
}
.parser-integrations-card__action--disconnect { color: var(--portal-danger); }
.parser-integrations__notice { padding: 17px 20px; }
.parser-integrations__notice-title { margin: 0; font-weight: 630; }
.parser-integrations__notice-text { margin: 5px 0 0; color: var(--portal-muted); font-size: 13px; line-height: 1.55; }
.parser-integrations__toast {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 30;
  max-width: 380px;
  padding: 12px 15px;
  border-radius: 9px;
  background: var(--portal-ink);
  color: #fff;
  opacity: 0;
  pointer-events: none;
  transform: translateY(8px);
  transition: opacity .15s ease, transform .15s ease;
}
.parser-integrations__toast--show { opacity: 1; transform: translateY(0); }
.parser-integrations__toast--error { background: var(--portal-danger); }

.directory-table-wrap,
.parser-history__table-scroll,
.parser-result-table-wrap {
  overflow-x: auto;
  border-top: 1px solid var(--portal-line-strong);
  scrollbar-gutter: stable;
}

.directory-table-wrap {
  width: 100%;
  max-width: 100%;
  max-height: none;
  overflow-x: auto;
  overflow-y: visible;
  padding-top: 0;
  border-top: 0;
  scrollbar-gutter: auto;
  scrollbar-width: none;
}

.directory-table-wrap::-webkit-scrollbar { display: none; }

.directory-table__scroll-indicator {
  position: fixed;
  z-index: 9;
  height: 1px;
  overflow: hidden;
  background: var(--portal-line-strong);
  pointer-events: none;
}

.directory-table__scroll-indicator[hidden] { display: none; }

.directory-table__scroll-indicator-bar {
  display: block;
  height: 1px;
  background: #fe5b2a;
  will-change: transform;
}

.directory-table,
.parser-history__table,
.parser-result-table {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
}

.directory-table { min-width: 1080px; }
.parser-history__table { min-width: 1120px; }
.parser-result-table { min-width: 760px; }

.directory-table th,
.parser-history__th,
.parser-result-table th {
  padding: 15px 18px 17px;
  border-bottom: 1px solid var(--portal-line-strong);
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--portal-bg);
  color: lab(39.6209% -.40108 -5.22594);
  font-family: "Geist Mono", ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: 12px;
  font-weight: 560;
  letter-spacing: .16em;
  text-transform: uppercase;
  white-space: nowrap;
}

.directory-table thead {
  border-top: .5px solid var(--portal-line-strong);
  background: var(--portal-bg);
}

.directory-table__sticky-header {
  position: fixed;
  z-index: 6;
  overflow: hidden;
  background: var(--portal-bg);
  pointer-events: none;
}

.directory-table__sticky-header::before,
.directory-table__sticky-header::after {
  position: absolute;
  z-index: 8;
  right: 0;
  left: 0;
  content: "";
}

.directory-table__sticky-header::before {
  top: 0;
  border-top: .5px solid var(--portal-line-strong);
}

.directory-table__sticky-header::after {
  bottom: 0;
  border-bottom: .5px solid var(--portal-line-strong);
}

.directory-table__sticky-header[hidden] { display: none; }

.directory-table__sticky-shadow {
  position: fixed;
  z-index: 5;
  height: 10px;
  background: linear-gradient(180deg, rgb(105 119 150 / 8%), transparent);
  opacity: 0;
  pointer-events: none;
  will-change: opacity;
}

.directory-table-wrap.has-sticky-header > .directory-table > thead { visibility: hidden; }
.directory-table-wrap.has-sticky-header > .directory-table > thead th { border-bottom: 0; }
.directory-table--sticky { table-layout: fixed; will-change: transform; }
.directory-table--sticky thead { position: static; border-top: 0; }
.directory-table--sticky th { border-top: 0; border-bottom: 0; }
.directory-table--sticky th:first-child { position: static; }

.directory-table__sticky-primary {
  position: absolute;
  z-index: 7;
  top: 0;
  left: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: 28px 18px 17px;
  border-bottom: 0;
  background: var(--portal-bg);
  color: lab(39.6209% -.40108 -5.22594);
  font-family: "Geist Mono", ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: 12px;
  font-weight: 560;
  letter-spacing: .16em;
  text-transform: uppercase;
  white-space: nowrap;
}

.directory-table th {
  position: relative;
  top: auto;
  padding-top: 28px;
  border-top: 0;
  border-bottom: .5px solid var(--portal-line-strong);
}

.ca-legal { max-width: 1200px; margin: auto; padding: 0 32px 40px; color: var(--portal-ink); font-family: "Geist", sans-serif; }
.ca-legal .legal-nav,.ca-legal .legal-footer { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 28px 0; border-bottom: 1px solid var(--portal-line); }
.ca-legal .legal-nav > div { display: flex; gap: 24px; }
.ca-legal a { color: inherit; text-underline-offset: 4px; }
.ca-legal a[aria-current="page"] { color: var(--portal-orange); }
.ca-legal a:focus-visible { outline: 2px solid var(--portal-ink); outline-offset: 4px; }
.ca-legal .legal-page { max-width: 760px; margin: 64px auto; }
.ca-legal .legal-eyebrow { display: none; }
.ca-legal .legal-title { font-size: clamp(36px,5vw,64px); line-height: 1.08; letter-spacing: -.035em; margin: 0 0 24px; }
.ca-legal .legal-meta { color: var(--portal-muted); font-size: 14px; }
.ca-legal p,.ca-legal li { font-size: 16px; line-height: 1.75; }
.ca-legal .legal-section { padding: 28px 0; border-top: 1px solid var(--portal-line); }
.ca-legal .legal-section h2 { font-size: 23px; line-height: 1.3; margin: 0 0 16px; }
.ca-legal .legal-section p:last-child { margin-bottom: 0; }
.ca-legal .legal-footer { border-top: 1px solid var(--portal-line); border-bottom: 0; font-size: 14px; }
@media (max-width: 600px) {
  .ca-legal { padding: 0 20px 24px; }
  .ca-legal .legal-page { margin: 40px auto; }
  .ca-legal .legal-nav,.ca-legal .legal-footer { flex-wrap: wrap; }
}

.directory-table__sort,
.directory-table__sort:hover,
.directory-table__sort:focus {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: inherit;
  text-decoration: none;
}
.directory-table__sort:focus-visible { outline: 2px solid var(--portal-ink); outline-offset: 4px; }
.directory-table__sort-icons { display: inline-flex; width: 24px; flex-shrink: 0; }
.directory-table__sort-icons img { width: 16px; height: 16px; filter: brightness(0); }
.directory-table__sort-up { transform: rotate(-90deg); }
.directory-table__sort-down { transform: rotate(90deg); margin-left: -8px; }
.directory-table th[aria-sort="ascending"] .directory-table__sort-down,
.directory-table th[aria-sort="descending"] .directory-table__sort-up { visibility: hidden; }

.directory-table__column-number {
  position: absolute;
  top: 12px;
  left: 8px;
  color: var(--portal-faint);
  font-size: 10px;
  font-variant-numeric: tabular-nums;
  font-weight: 500;
  letter-spacing: .08em;
  line-height: 1;
}

.directory-table th:first-child,
.directory-table td:first-child {
  position: sticky;
  left: 0;
  z-index: 1;
  min-width: 190px;
  background: var(--portal-bg);
}

.directory-table th:first-child::after,
.directory-table td:first-child::after,
.directory-table__sticky-primary::after {
  position: absolute;
  z-index: 1;
  top: 0;
  right: -10px;
  bottom: 0;
  width: 10px;
  background: linear-gradient(90deg, rgb(105 119 150 / 8%), transparent);
  content: "";
  opacity: var(--directory-scroll-shadow-opacity, 0);
  pointer-events: none;
}

.directory-table th:first-child { z-index: 5; }

.directory-table td,
.parser-history__td,
.parser-result-table td {
  padding: 19px 18px 20px;
  border-bottom: 1px solid var(--portal-line);
  color: lab(25.7084% -.328451 -4.47191);
  font-size: 15px;
  line-height: 1.45;
  vertical-align: top;
}

.directory-table tbody { font-family: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.directory-table td { border-bottom-width: .5px; vertical-align: middle; }

.directory-table tbody tr:hover,
.parser-history__row:hover { background: rgb(17 19 24 / 2.5%); }
.directory-table tbody tr:hover td:first-child { background: rgb(249 249 249); }
.directory-table tbody tr:last-child td,
.parser-history__tbody tr:last-child td { border-bottom: 0; }
.directory-table td:first-child strong { max-width: 330px; color: inherit; font-size: 16px; font-weight: 560; }
.directory-table__primary {
  display: grid;
  grid-template-columns: 24px 32px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
}
.directory-table__row-number {
  padding-top: 4px;
  transform: translateX(-10px);
  color: var(--portal-faint);
  font-family: "Geist Mono", ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: 10px;
  font-variant-numeric: tabular-nums;
  font-weight: 500;
  letter-spacing: .08em;
  line-height: 1;
}
.directory-table__link { color: inherit; text-underline-offset: 3px; }

.directory-license-stack {
  position: relative;
  display: block;
  width: 124px;
  height: 116px;
  margin-inline: auto;
  transform-origin: center;
  vertical-align: middle;
  will-change: transform;
}

.directory-license-card {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: inline-block;
  color: inherit;
  text-decoration: none;
}

.directory-license-card:nth-child(1) { z-index: 3; transform: translate(-7px, 3px) rotate(-5deg); }
.directory-license-card:nth-child(2) { z-index: 2; transform: translate(10px, -2px) rotate(5deg); }
.directory-license-card:nth-child(3) { z-index: 1; transform: translate(25px, 3px) rotate(11deg); }
.directory-license-card:only-child { transform: none; }
.directory-license-card:only-child .directory-license-card__stage { margin-inline: auto; }

.directory-license-card:focus,
.directory-license-card:focus-visible {
  outline: 0;
  box-shadow: none;
}

.directory-license-card__stage {
  display: grid;
  width: 92px;
  height: 108px;
  place-items: center;
  background: transparent;
}

.directory-license-card__paper {
  position: relative;
  display: grid;
  grid-template-rows: auto auto 1fr auto;
  width: 72px;
  height: 96px;
  padding: 6px 6px 5px;
  overflow: hidden;
  border: 0;
  border-radius: 1px;
  background: #fff;
  box-shadow: 0 -1px 3px rgb(42 45 52 / 10%);
}

.directory-license-card__paper-header {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 3px;
  margin: -6px -6px 4px;
  padding: 4px 5px;
  background: #3298c7;
  color: #fff;
  font: 3px/1.15 "Geist", system-ui, sans-serif;
}

.directory-license-card__paper-header b { font-size: 5px; letter-spacing: -.04em; }
.directory-license-card__paper-title {
  color: #12366b;
  font: 600 4px/1.2 "Geist", system-ui, sans-serif;
  text-align: center;
}
.directory-license-card__paper-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin-top: 4px;
  border: .5px solid #7c746d;
  color: #292d34;
  font: 3px/1.2 "Geist", system-ui, sans-serif;
}
.directory-license-card__paper-grid > span {
  display: block;
  min-width: 0;
  padding: 3px;
}
.directory-license-card__paper-grid > span + span { border-left: .5px solid #7c746d; }
.directory-license-card__paper-grid b {
  display: block;
  margin: -3px -3px 3px;
  padding: 2px;
  background: #f4cfac;
  font-size: 3px;
  text-align: center;
}
.directory-license-card__paper-grid small {
  display: block;
  overflow: hidden;
  font-size: 3px;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.directory-license-card__paper time {
  align-self: end;
  margin: 4px -6px -5px;
  padding: 3px 5px;
  background: #ffffcf;
  color: var(--portal-faint);
  font: 3px/1 "Geist Mono", ui-monospace, monospace;
}

.directory-license-card__empty { color: var(--portal-faint); }

.directory-license-stack.is-license-preview-source-hidden {
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}

.directory-table td.is-license-preview-open {
  position: relative;
  z-index: 4;
  overflow: visible;
}

.directory-license-preview__spacer {
  display: block;
  width: 1px;
  height: 0;
  pointer-events: none;
}

.directory-license-preview {
  position: absolute;
  z-index: 6;
  top: 0;
  right: 0;
  width: min(560px, calc(100vw - 24px));
  height: auto;
  max-height: 330px;
  aspect-ratio: 1.7 / 1;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
  border-right: .5px solid var(--portal-line-strong);
  border-left: .5px solid var(--portal-line-strong);
  border-radius: 0;
  background: #fff;
  box-shadow: none;
  transform-origin: top right;
  will-change: transform, opacity;
}

.directory-license-preview__toolbar {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 40px;
  min-width: 0;
  padding: 0 0 0 10px;
  border-bottom: 0;
  background: #fff;
}

.directory-license-preview__viewport {
  min-height: 0;
  overflow: hidden;
  overscroll-behavior: contain;
  background: #fff;
}

.directory-license-preview__viewport img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.directory-license-preview__close {
  position: relative;
  align-self: stretch;
  display: block;
  width: 40px;
  min-width: 40px;
  min-height: 40px !important;
  margin: 0 0 0 auto;
  padding: 0 !important;
}

.directory-license-preview__close::before,
.directory-license-preview__close::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 14px;
  height: 1.5px;
  background: currentColor;
  content: "";
}

.directory-license-preview__close::before { transform: translate(-50%, -50%) rotate(45deg); }
.directory-license-preview__close::after { transform: translate(-50%, -50%) rotate(-45deg); }

.directory-license-preview__icon-button {
  width: 32px;
  min-width: 32px;
  min-height: 32px !important;
  padding: 0 !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-size: 18px 18px !important;
}

.directory-license-preview__icon-button--previous { background-image: url("/assets/contractorarea/icons/chevron-left.svg") !important; }
.directory-license-preview__icon-button--next { background-image: url("/assets/contractorarea/icons/chevron-right.svg") !important; }

.directory-license-preview__date {
  position: static;
  margin-left: auto;
  padding: 0;
  border: 0;
  background: #fff;
  color: #fe5b2a;
  font: 10px/1 "Geist Mono", ui-monospace, monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.directory-license-preview__navigation {
  position: static;
  display: flex;
  align-items: center;
  gap: 8px;
}
.directory-license-preview__navigation .portal-button {
  min-height: 32px !important;
  padding: 0 !important;
  background-color: #fff;
}
.directory-license-preview__counter {
  color: var(--portal-faint);
  font: 9px/1 "Geist Mono", ui-monospace, monospace;
}

.directory-config {
  display: grid;
  gap: 22px;
  margin: 0 16px 24px;
  padding: 20px;
  border: 1px solid var(--portal-line);
  background: var(--portal-bg);
}

.directory-config__header,
.directory-config__section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.directory-config__header p { margin: 6px 0 0; }
.directory-config__catalog-form {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
  align-items: end;
  gap: 14px;
}
.directory-config__catalog-form .portal-field { margin-top: 0; }
.directory-config__create {
  padding: 14px 0;
  border-block: 1px solid var(--portal-line);
}
.directory-config__create summary { cursor: pointer; font-weight: 620; }
.directory-config__create[open] summary { margin-bottom: 14px; }
.directory-config__states {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 18px;
  margin: 14px 0 18px;
  padding: 0;
  border: 0;
}
.directory-config__states legend { margin-bottom: 8px; font-weight: 620; }
.directory-config__states small { flex-basis: 100%; color: var(--portal-muted); }
.directory-config__state-editor {
  margin: 0 0 24px;
  padding: 16px 0;
  border-block: 1px solid var(--portal-line);
}
.directory-config__state-editor p { margin: 5px 0 0; }
.directory-config__state-editor nav {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(54px, 72px));
  gap: 8px;
  margin-top: 14px;
}
.directory-config__state-editor nav .parser-history-actions__btn { min-width: 0; padding-inline: 10px; }
.directory-config__state-editor [aria-current="page"] { background: #000; color: #fff; }
.directory-config__active { display: flex; align-items: center; gap: 8px; min-height: 42px; }
.directory-config__footer { display: flex; justify-content: flex-end; margin-top: 18px; }
.portal-field--compact { min-width: 160px; margin: 0; }
.directory-config__columns { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px; }
.directory-config__section-head h3 { margin: 0; font-size: 16px; font-weight: 620; }
.directory-config__compact-actions { display: flex; gap: 12px; }
.directory-config__compact-actions[hidden] { display: none; }
.directory-config__compact-actions button {
  min-height: 38px;
  padding: 0 12px;
  border: 1px solid #000;
  border-radius: 0;
  background: #fff;
  color: #000;
  font: inherit;
  font-size: 12px;
  cursor: pointer;
}
.directory-config .portal-field { margin-top: 16px; }
.directory-config .portal-field input {
  width: 100%;
  min-height: 40px;
  padding: 0 11px;
  border: 1px solid var(--portal-line-strong);
  border-radius: 0;
  background: var(--portal-surface-strong);
  color: var(--portal-ink);
}
.directory-config__set-controls {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 12px;
}
.directory-config__set-controls .portal-field { gap: 8px; margin-top: 18px; }
.directory-config__set-controls select {
  width: 100%;
  height: 48px;
  min-height: 48px;
  padding: 0 44px 0 16px;
  border: 1px solid var(--portal-line-strong);
  border-radius: 0;
  background: var(--portal-surface-strong);
  color: var(--portal-ink);
  font: inherit;
  font-size: 15px;
  font-weight: 600;
}
.directory-config__edit-set {
  height: 48px;
  min-height: 48px;
  padding: 0 20px;
  border: 1px solid #000;
  border-radius: 0;
  background: #fff;
  color: #000;
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
}
.directory-config__groups {
  display: grid;
  gap: 16px;
  max-height: 430px;
  margin-top: 16px;
  overflow: auto;
  scrollbar-gutter: stable;
}
.directory-config__group { padding-top: 14px; border-top: 1px solid var(--portal-line); }
.directory-config__group:first-child { padding-top: 0; border-top: 0; }
.directory-config__group h4 { margin: 0 0 3px; font-size: 13px; font-weight: 620; }
.directory-config__group-meta { margin: 0 0 10px; color: var(--portal-faint); font-family: "Geist Mono", ui-monospace, monospace; font-size: 11px; }
.directory-config__options { display: grid; gap: 7px; }
.directory-config__option {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr) auto;
  align-items: start;
  gap: 9px;
  color: var(--portal-ink);
  font-size: 13px;
  line-height: 1.4;
}
.directory-config__option input { margin: 2px 0 0; }
.directory-config__option small { color: var(--portal-faint); font-family: "Geist Mono", ui-monospace, monospace; }
.directory-config__option[hidden] { display: none; }

.portal-mono,
.parser-history-project__code,
.parser-history-records,
.parser-result-pre,
.parser-enrichment-source__meta {
  font-family: "Geist Mono", ui-monospace, SFMono-Regular, Consolas, monospace;
  font-variant-numeric: tabular-nums;
}

.status-pill,
.parser-enrichment-source__status,
.parser-history-status {
  display: inline-flex;
  align-items: center;
  width: max-content;
  padding: 4px 8px;
  border-radius: 999px;
  background: var(--portal-accent-soft);
  color: var(--portal-accent);
  font-size: 11px;
  font-weight: 680;
}

.directory-empty,
.parser-history__empty { padding: 64px 24px !important; color: var(--portal-muted) !important; text-align: center; }

.directory-footer,
.parser-history__table-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 16px 18px 0;
  border-top: 1px solid var(--portal-line);
  color: var(--portal-muted);
  font-size: 12px;
}

.directory-pagination { display: flex; align-items: center; gap: 7px; }
.directory-pagination a,
.directory-pagination span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 7px 9px;
  border: 1px solid var(--portal-line);
  border-radius: 8px;
  text-decoration: none;
}
.directory-pagination span { opacity: .45; }
.directory-pagination img { width: 15px; height: 15px; }

/* Operations dashboard */
.portal-admin-shell { display: grid; gap: 24px; }
.parser-history__header { margin-bottom: 0; }
.parser-history__table-card { margin-bottom: 0 !important; }
.parser-history-project__code { margin-top: 5px; color: var(--portal-faint); font-size: 11px; line-height: 1.55; }
.parser-history__table-controls input[type="file"] { max-width: 240px; color: var(--portal-muted); font-size: 12px; }
.parser-history__table-controls label { color: var(--portal-muted); font-size: 12px; }
.parser-history__td--right,
.parser-history__th--right { text-align: right; }
.parser-history-project { display: flex; align-items: center; gap: 11px; }
.parser-history-project__icon-wrap { display: grid; width: 34px; height: 34px; flex: 0 0 auto; place-items: center; border-radius: 8px; background: #eef0f5; }
.parser-history-project__name { color: var(--portal-ink); font-size: 16px; font-weight: 560; }
.parser-history-last-run__primary { color: var(--portal-ink); }
.parser-history-last-run__secondary { margin-top: 3px; color: var(--portal-faint); font-size: 11px; }
.parser-history-actions { justify-content: flex-end; }
.parser-license-exclusions { max-width: 760px; margin-top: 10px; color: var(--portal-muted); font-size: 12px; }
.parser-license-exclusions summary { width: max-content; cursor: pointer; color: var(--portal-ink); font-weight: 620; }
.parser-license-exclusions p { margin: 8px 0; }
.parser-license-exclusions .parser-result-pre { max-height: 280px; padding: 12px; border-radius: 8px; background: #171716; }
.parser-license-exclusions small { display: block; margin-top: 7px; }
.parser-history-actions__icon-btn {
  display: inline-grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border: 1px solid var(--portal-line-strong);
  border-radius: 9px;
  background: var(--portal-surface-strong);
}
.parser-history-actions__icon-btn--danger:hover { border-color: #dbb8b5; background: var(--portal-danger-soft); }
.parser-enrichment-sequence {
  min-width: 390px;
  overflow: hidden;
  margin-top: 10px;
  border: 1px solid var(--portal-line);
  border-radius: 12px;
  background: var(--portal-surface);
}
.parser-enrichment-sequence--upload { max-width: 720px; margin: 0 16px 18px; }
.parser-enrichment-sequence__header,
.parser-enrichment-sequence__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 11px 14px;
  font-family: var(--portal-mono);
  font-size: 10px;
  font-variant-numeric: tabular-nums;
}
.parser-enrichment-sequence__header strong { font-family: "Geist", sans-serif; font-size: 12px; }
.parser-enrichment-sequence__header span,
.parser-enrichment-sequence__footer { color: var(--portal-faint); }
.parser-enrichment-sequence__track { height: 3px; overflow: hidden; background: #eef0f3; }
.parser-enrichment-sequence__track span { display: block; width: 100%; height: 100%; background: var(--portal-ink); transform: scaleX(0); transform-origin: left; transition: transform 420ms cubic-bezier(.16, 1, .3, 1); }
.parser-enrichment-sources { margin: 0; padding: 0; list-style: none; }
.parser-enrichment-source {
  position: relative;
  display: grid;
  min-width: 0;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 10px;
  padding: 12px 14px;
  border: 0;
  border-bottom: 1px solid var(--portal-line);
  background: transparent;
  transition: background 240ms ease-out;
}
.parser-enrichment-source::before {
  position: absolute;
  top: 27px;
  bottom: -13px;
  left: 22px;
  width: 1px;
  background: var(--portal-line);
  content: "";
}
.parser-enrichment-source:last-child { border-bottom: 0; }
.parser-enrichment-source:last-child::before { display: none; }
.parser-enrichment-source__marker {
  position: relative;
  z-index: 1;
  display: block;
  width: 14px;
  height: 14px;
  margin-top: 2px;
  border: 1px solid #b6bbc4;
  border-radius: 50%;
  background: #fff;
}
.parser-enrichment-source__body { min-width: 0; }
.parser-enrichment-source__header { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--portal-ink); font-size: 11px; }
.parser-enrichment-source__header strong { font-size: 12px; font-weight: 640; }
.parser-enrichment-source__progress { width: 100%; height: 4px; margin-top: 8px; accent-color: var(--portal-accent); }
.parser-enrichment-source__meta { margin-top: 5px; color: var(--portal-faint); font-size: 9px; line-height: 1.45; }
.parser-enrichment-source__message { margin-top: 5px; color: var(--portal-muted); font-size: 10px; line-height: 1.45; }
.parser-enrichment-source__values-title { margin-top: 8px; color: var(--portal-faint); font-size: 9px; font-weight: 650; text-transform: uppercase; }
.parser-enrichment-source__values { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 12px; margin: 6px 0 0; }
.parser-enrichment-source__value { min-width: 0; font-size: 9px; }
.parser-enrichment-source__value dt { color: var(--portal-faint); }
.parser-enrichment-source__value dd { overflow: hidden; margin: 2px 0 0; color: var(--portal-muted); text-overflow: ellipsis; white-space: nowrap; }
.parser-enrichment-source__empty { padding: 18px 14px; color: var(--portal-muted); font-size: 11px; }
.parser-enrichment-source--completed .parser-enrichment-source__marker { border-color: #087a4b; background: #087a4b; }
.parser-enrichment-source--completed .parser-enrichment-source__marker::after {
  position: absolute;
  top: 2px;
  left: 4px;
  width: 4px;
  height: 7px;
  border: solid #fff;
  border-width: 0 1.5px 1.5px 0;
  content: "";
  transform: rotate(45deg);
}
.parser-enrichment-source--running { background: #f2f6ff; }
.parser-enrichment-source--running .parser-enrichment-source__marker {
  border-color: var(--portal-ink);
  border-top-color: transparent;
  animation: enrichment-stage-spin 900ms linear infinite;
}
.parser-enrichment-source--queued { color: var(--portal-faint); }
.parser-enrichment-source--waiting,
.parser-enrichment-source--retrying,
.parser-enrichment-source--paused { background: #fbf7ec; }
.parser-enrichment-source--failed,
.parser-enrichment-source--stalled { background: var(--portal-danger-soft); }
.parser-enrichment-source--failed .parser-enrichment-source__marker,
.parser-enrichment-source--stalled .parser-enrichment-source__marker { border-color: var(--portal-danger); background: var(--portal-danger); }
.parser-enrichment-source--failed .parser-enrichment-source__status,
.parser-enrichment-source--stalled .parser-enrichment-source__status { background: var(--portal-danger-soft); color: var(--portal-danger); }
.parser-enrichment-sequence__footer { border-top: 1px solid var(--portal-line); }

@keyframes enrichment-stage-spin { to { transform: rotate(1turn); } }
.parser-result-section { border-top-color: var(--portal-line) !important; }
.parser-result-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.parser-result-head__title { margin: 0; font-size: 20px; }
.parser-toggle-group { display: inline-flex; }
.parser-toggle-btn { border-radius: 0; }
.parser-toggle-btn:first-child,
.parser-toggle-btn:last-child { border-radius: 0; }
.parser-toggle-btn--active { background: #000; color: #fff; }
.parser-result-card { overflow: hidden; border: 1px solid var(--portal-line); border-radius: 10px; background: #171716; }
.parser-result-coverage-card,
.parser-review-card { padding: 14px; border: 1px solid var(--portal-line); border-radius: 10px; background: var(--portal-surface-strong); }
.parser-result-pre { overflow: auto; max-height: 560px; margin: 0; padding: 20px; color: #d8e7de; font-size: 12px; line-height: 1.65; }
.parser-result-table-wrap { background: transparent; }
.parser-error { padding: 16px; background: var(--portal-danger-soft); color: var(--portal-danger); }
.parser-error__text { margin: 0; }
.parser-history-status__dot-core { width: 6px; height: 6px; margin-right: 6px; border-radius: 50%; background: currentColor; }
.parser-history-status--failed { background: var(--portal-danger-soft); color: var(--portal-danger); }
.parser-history-status--paused { background: #f3ecdc; color: #806328; }

/* ContractorArea uses one sharp monochrome button system across client and admin surfaces. */
body.parser-portal button,
body.parser-portal ::file-selector-button,
.parser-integrations-card__action {
  min-height: 46px;
  padding-inline: 18px;
  border: 1px solid #000 !important;
  border-radius: 0 !important;
  background: #fff !important;
  color: #000 !important;
}

body.parser-portal button:hover,
.parser-integrations-card__action:hover {
  background: #000 !important;
  color: #fff !important;
}

body.parser-portal button:hover img,
.parser-integrations-card__action:hover img,
.portal-button img,
.parser-history__new-project img,
.parser-download-btn img,
.parser-toggle-btn--active img { filter: invert(1); }

.portal-button,
.parser-history__new-project,
.parser-download-btn,
.parser-toggle-btn--active {
  min-height: 46px;
  border: 1px solid #000 !important;
  border-radius: 0 !important;
  background: #000 !important;
  color: #fff !important;
}

.portal-button:hover,
.parser-history__new-project:hover,
.parser-download-btn:hover,
.parser-toggle-btn--active:hover {
  background: #fff !important;
  color: #000 !important;
}

.portal-button:hover img,
.parser-history__new-project:hover img,
.parser-download-btn:hover img,
.parser-toggle-btn--active:hover img { filter: none; }

body.parser-portal button:disabled,
body.parser-portal button:disabled:hover {
  background: #fff !important;
  color: #000 !important;
  opacity: .45;
}

@media (max-width: 1000px) {
  .portal-page__heading,
  .parser-history__header,
  .directory-toolbar,
  .parser-history__table-header { align-items: flex-start; flex-direction: column; }
  .directory-filters { width: 100%; }
  .directory-layout { grid-template-columns: 280px minmax(0, 1fr); gap: 24px; }
  .directory-sidebar { --directory-sidebar-inline-padding: 24px; padding-inline: 16px var(--directory-sidebar-inline-padding); }
  .directory-config__columns { grid-template-columns: 1fr; }
  .directory-config__catalog-form { grid-template-columns: 1fr 1fr; }
  .portal-search { min-width: 0; flex: 1; }
  .parser-integrations__cards { grid-template-columns: 1fr; }
}

@media (max-width: 680px) {
  .portal-nav { align-items: flex-start; padding: 12px 16px; }
  .portal-brand__wordmark { font-size: clamp(12px, 4vw, 14px); }
  .portal-nav__links { flex-wrap: wrap; justify-content: flex-end; }
  .portal-nav__links a { min-height: 36px; padding: 0 8px; font-size: 10px; }
  .portal-nav__links .portal-nav__signout { margin-left: 0; }
  .portal-page,
  .portal-admin-shell { width: min(calc(100% - 24px), var(--portal-content)); padding: 38px 0 56px; }
  .portal-page--directory { width: auto; margin-inline: 16px; padding-top: 0; }
  .portal-page__heading h1,
  .parser-history__title { font-size: 35px; }
  .portal-metric { width: 100%; }
  .directory-filters { align-items: stretch; flex-direction: column; }
  .directory-layout,
  .directory-layout.is-sidebar-collapsed { display: block; }
  .directory-config__catalog-form { grid-template-columns: 1fr; }
  .directory-sidebar {
    --directory-sidebar-inline-padding: 0px;
    position: sticky;
    z-index: 10;
    top: 68px;
    padding: 12px 0 16px;
    border-bottom: 1px solid var(--portal-line);
    background: rgb(255 255 255 / 96%);
    backdrop-filter: blur(12px);
  }
  .directory-sidebar__toggle { margin-bottom: 12px; }
  .directory-layout.is-sidebar-collapsed .directory-sidebar {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 64px;
  }
  .directory-layout.is-sidebar-collapsed .directory-sidebar__toggle { margin: 0; }
  .directory-layout.is-sidebar-collapsed .directory-sidebar__rail {
    display: flex;
    align-items: center;
    min-width: 0;
    overflow-x: auto;
  }
  .directory-sidebar__rail-item { flex: 0 0 42px; }
  .directory-sidebar .directory-filters { margin-top: 24px; }
  .directory-results { margin-top: 28px; }
  .directory-sidebar__snapshot { margin-inline: 0; padding-inline: 16px; }
  .directory-sidebar__heading { margin-inline: 0; padding-inline: 16px; }
  .directory-table-wrap { max-height: none; }
  .directory-table { min-width: 920px; }
  .directory-layout.is-sidebar-collapsed .directory-table-wrap { --directory-sticky-top: 133px; }
  .directory-config__header,
  .directory-config__section-head { display: grid; }
  .portal-search { width: 100%; }
  .directory-footer { align-items: flex-start; flex-direction: column; }
  .directory-table th,
  .parser-history__th,
  .parser-result-table th { padding-inline: 14px; }
  .directory-table td,
  .parser-history__td,
  .parser-result-table td { padding: 16px 14px 17px; }
  .parser-enrichment-sequence { min-width: 320px; }
  .parser-enrichment-sequence--upload { margin-inline: 12px; }
  .parser-enrichment-source__values { grid-template-columns: 1fr; }
  .parser-enrichment-runs .parser-history__table { min-width: 0; }
  .parser-enrichment-runs .parser-history__thead { display: none; }
  .parser-enrichment-runs .parser-history__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    padding: 12px 0;
    border-bottom: 1px solid var(--portal-line);
  }
  .parser-enrichment-runs .parser-history__td { display: block; padding: 8px 14px; border: 0; }
  .parser-enrichment-runs .parser-history__td:nth-child(4),
  .parser-enrichment-runs .parser-history__td:nth-child(5) { grid-column: 1 / -1; }
  .parser-enrichment-runs .parser-history__td--right { text-align: left; }
  .parser-enrichment-runs .parser-history-actions { justify-content: flex-start; }
  .parser-enrichment-runs .parser-enrichment-sequence { width: 100%; min-width: 0; }
  .parser-integrations__header,
  .parser-integrations-card__row { align-items: flex-start; flex-direction: column; }
  .parser-integrations-card__right { width: 100%; justify-content: space-between; }
}

@media (prefers-reduced-motion: reduce) {
  .directory-layout { transition: none; }
  .parser-enrichment-sequence__track span,
  .parser-enrichment-source { transition: none; }
  .parser-enrichment-source--running .parser-enrichment-source__marker { animation: none; border-top-color: var(--portal-ink); background: #fff; }
}

/* ContractorArea public journal */
.ca-blog-page { display: flex; flex-direction: column; min-height: 100svh; }
.ca-blog { width: min(100%, 1240px); margin: 0 auto; padding: 72px 32px 96px; }
.ca-blog__masthead { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(280px, .6fr); gap: 48px; align-items: end; padding: 0 0 56px; border-bottom: 1px solid var(--portal-ink); }
.ca-blog__masthead h1 { max-width: 13ch; margin: 0; font-size: clamp(44px, 7vw, 88px); font-weight: 620; letter-spacing: -.04em; line-height: .98; text-wrap: balance; }
.ca-blog__masthead > p:last-child { max-width: 42ch; margin: 0; color: var(--portal-muted); font-size: 18px; line-height: 1.6; }
.ca-blog-list { margin: 0; padding: 0; list-style: none; }
.ca-blog-list li { border-bottom: 1px solid var(--portal-line); }
.ca-blog-list article { display: grid; grid-template-columns: 220px minmax(0, 1fr) auto; gap: 32px; align-items: start; padding: 34px 0 38px; }
.ca-blog-list__meta { display: grid; gap: 8px; color: var(--portal-muted); font: 12px/1.5 var(--portal-mono); }
.ca-blog-list h2 { max-width: 24ch; margin: 0 0 10px; font-size: clamp(25px, 3.2vw, 38px); font-weight: 590; letter-spacing: -.025em; line-height: 1.12; }
.ca-blog-list h2 a { text-decoration: none; }
.ca-blog-list h2 a:hover { text-decoration: underline; text-decoration-color: var(--portal-orange); text-underline-offset: 5px; }
.ca-blog-list p { max-width: 64ch; margin: 0; color: var(--portal-muted); line-height: 1.65; }
.ca-blog-list__read { justify-self: end; color: var(--portal-orange); font-size: 14px; font-weight: 650; text-underline-offset: 4px; white-space: nowrap; }
.ca-blog-pagination { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px; padding-top: 32px; font: 12px/1.5 var(--portal-mono); }
.ca-blog-pagination > :last-child { text-align: end; }
.ca-blog-pagination a { color: var(--portal-orange); font-weight: 650; text-underline-offset: 4px; }
.ca-blog-pagination span span { color: var(--portal-muted); }
.ca-blog__empty { max-width: 620px; padding: 72px 0; }
.ca-blog__empty h2 { margin: 0 0 12px; font-size: 30px; }
.ca-blog__empty p { margin: 0; color: var(--portal-muted); font-size: 18px; line-height: 1.6; }
.ca-blog-page :focus-visible { outline: 2px solid var(--portal-orange); outline-offset: 4px; }

.ca-article { width: min(100%, 920px); margin: 0 auto; padding: 64px 32px 104px; }
.ca-article__header { padding-bottom: 48px; border-bottom: 1px solid var(--portal-ink); }
.ca-article__back { display: inline-block; margin-bottom: 56px; color: var(--portal-muted); text-underline-offset: 4px; }
.ca-article__header h1 { max-width: 16ch; margin: 20px 0 22px; font-size: clamp(42px, 7vw, 76px); font-weight: 620; letter-spacing: -.04em; line-height: 1.02; text-wrap: balance; overflow-wrap: anywhere; }
.ca-article__dek { max-width: 58ch; margin: 0; color: var(--portal-muted); font-size: 20px; line-height: 1.55; }
.ca-article__meta { display: flex; flex-wrap: wrap; gap: 12px 28px; margin-top: 30px; font: 12px/1.5 var(--portal-mono); }
.ca-article__body { max-width: 720px; margin: 56px auto 0; font-size: 18px; line-height: 1.78; }
.ca-article__body h2 { margin: 60px 0 18px; font-size: 32px; line-height: 1.18; letter-spacing: -.025em; }
.ca-article__body h3 { margin: 42px 0 14px; font-size: 23px; line-height: 1.25; }
.ca-article__body p { margin: 0 0 26px; }
.ca-article__body li { margin-bottom: 10px; padding-left: 6px; }
.ca-article__body blockquote { margin: 42px 0; padding: 24px 0; border-block: 1px solid var(--portal-orange); font-size: 23px; line-height: 1.5; }
.ca-article__body blockquote p { margin-bottom: 12px; }
.ca-article__body cite { color: var(--portal-muted); font: 12px/1.5 var(--portal-mono); font-style: normal; }
.ca-article__tags { display: flex; flex-wrap: wrap; gap: 8px; max-width: 720px; margin: 64px auto 0; padding-top: 24px; border-top: 1px solid var(--portal-line); }
.ca-article__tags span { padding: 7px 9px; background: #f2f2f2; font: 11px/1 var(--portal-mono); }

.ca-blog-auth-page { display: flex; flex-direction: column; min-height: 100svh; }
.ca-blog-auth { width: min(100%, 720px); margin: auto; padding: 72px 32px 96px; }
.ca-blog-auth h1 { margin: 18px 0; font-size: clamp(38px, 7vw, 64px); line-height: 1; letter-spacing: -.04em; }
.ca-blog-auth > p { max-width: 60ch; color: var(--portal-muted); font-size: 17px; line-height: 1.6; }
.ca-blog-auth dl { margin: 34px 0; border-top: 1px solid var(--portal-line); }
.ca-blog-auth dl > div { display: grid; grid-template-columns: 140px 1fr; gap: 20px; padding: 14px 0; border-bottom: 1px solid var(--portal-line); }
.ca-blog-auth dt { color: var(--portal-muted); }
.ca-blog-auth dd { margin: 0; }
.ca-blog-auth form { display: flex; flex-wrap: wrap; gap: 12px; }
body.parser-portal .portal-button--secondary { background: #fff !important; color: #000 !important; }
body.parser-portal .portal-button--secondary:hover { background: #000 !important; color: #fff !important; }

@media (max-width: 700px) {
  .ca-blog { padding: 44px 20px 64px; }
  .ca-blog__masthead { grid-template-columns: 1fr; gap: 24px; padding-bottom: 38px; }
  .ca-blog-list article { display: block; }
  .ca-blog-list__meta { margin-bottom: 18px; }
  .ca-blog-list__read { display: inline-block; margin-top: 18px; }
  .ca-article { padding: 38px 20px 72px; }
  .ca-article__back { margin-bottom: 40px; }
  .ca-article__body { margin-top: 40px; font-size: 17px; }
  .ca-blog-auth { padding: 48px 20px 64px; }
  .ca-blog-auth dl > div { grid-template-columns: 1fr; gap: 4px; }
}

/* ENR outreach workspace */
.prospect-workspace .portal-nav { position: static; }
.prospect-page { --prospect-orange-ink: #9c3214; --prospect-orange-soft: #fff2ed; min-width: 0; gap: 28px; }
.prospect-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; }
.prospect-heading h1 { margin: 0; font-size: clamp(32px,3.5vw,48px); font-weight: 600; letter-spacing: -.04em; line-height: 1; }
.prospect-heading h1::after { display: block; width: 56px; height: 4px; margin-top: 14px; background: var(--portal-orange); content: ""; }
.prospect-heading p { max-width: 70ch; margin: 14px 0 0; color: var(--portal-muted); line-height: 1.55; }
.prospect-heading .prospect-source { flex: 0 0 auto; margin: 0; padding: 7px 9px; border: 1px solid var(--portal-orange); background: var(--prospect-orange-soft); color: var(--prospect-orange-ink); font: 600 11px/1.4 var(--portal-mono); }
.prospect-summary { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); margin: 0; border-block: 1px solid var(--portal-line); }
.prospect-summary div { padding: 18px 20px; border-right: 1px solid var(--portal-line); }
.prospect-summary div:first-child { background: var(--prospect-orange-soft); }
.prospect-summary div:first-child dd { color: var(--prospect-orange-ink); }
.prospect-summary div:last-child { border-right: 0; }
.prospect-summary dt { color: var(--portal-muted); font: 10px/1.4 var(--portal-mono); letter-spacing: .08em; text-transform: uppercase; }
.prospect-summary dd { margin: 5px 0 0; font: 500 26px/1 var(--portal-mono); font-variant-numeric: tabular-nums; }
.prospect-leads { border-block: 1px solid var(--portal-line); }
.prospect-leads > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding: 18px 0; }
.prospect-leads h2 { margin: 0; font-size: 16px; letter-spacing: -.02em; }
.prospect-leads header p,.prospect-leads__empty { margin: 5px 0 0; color: var(--portal-muted); font-size: 12px; line-height: 1.45; }
.prospect-leads header > strong { color: var(--prospect-orange-ink); font: 500 26px/1 var(--portal-mono); }
.prospect-leads__table { overflow-x: auto; border-top: 1px solid var(--portal-line); }
.prospect-leads table { width: 100%; min-width: 880px; border-collapse: collapse; }
.prospect-leads th,.prospect-leads td { padding: 12px 14px; border-bottom: 1px solid var(--portal-line); text-align: left; vertical-align: top; }
.prospect-leads th { background: #fafafa; color: var(--portal-muted); font: 10px/1.4 var(--portal-mono); letter-spacing: .08em; text-transform: uppercase; }
.prospect-leads td { font-size: 12px; }
.prospect-leads td small { display: block; margin-top: 4px; color: var(--portal-muted); }
.prospect-leads__empty { padding-bottom: 18px; }
.prospect-collector { display: grid; grid-template-columns: minmax(260px,1fr) auto auto; gap: 24px; align-items: center; padding: 16px 0; border-block: 1px solid var(--portal-line); }
.prospect-collector__intro h2 { margin: 0; font-size: 16px; letter-spacing: -.02em; }
.prospect-collector__intro p { max-width: 62ch; margin: 5px 0 0; color: var(--portal-muted); font-size: 12px; line-height: 1.45; }
.prospect-collector__state { display: flex; gap: 22px; margin: 0; }
.prospect-collector__state div { min-width: 82px; }
.prospect-collector__state dt { color: var(--portal-muted); font: 9px/1.3 var(--portal-mono); letter-spacing: .08em; text-transform: uppercase; }
.prospect-collector__state dd { max-width: 180px; margin: 4px 0 0; overflow: hidden; font: 11px/1.4 var(--portal-mono); text-overflow: ellipsis; white-space: nowrap; }
.prospect-collector__actions { display: flex; align-items: center; gap: 8px; }
.prospect-collector__actions label { display: grid; gap: 3px; color: var(--portal-muted); font: 9px/1.3 var(--portal-mono); letter-spacing: .08em; text-transform: uppercase; }
.prospect-collector__actions select { min-height: 38px; padding: 8px 28px 8px 10px; border: 1px solid var(--portal-line); border-radius: 0; background: #fff; color: var(--portal-ink); font: 600 10px/1.4 var(--portal-mono); letter-spacing: normal; text-transform: none; }
.prospect-collector__actions textarea { min-width: 240px; padding: 8px 10px; border: 1px solid var(--portal-line); background: #fff; color: var(--portal-ink); font: 11px/1.4 var(--portal-mono); letter-spacing: normal; text-transform: none; resize: vertical; }
.prospect-collector__actions a,.prospect-collector__actions button { min-height: 38px; padding: 9px 11px; border: 1px solid var(--portal-line); background: #fff; color: var(--portal-ink); font: 600 10px/1.4 var(--portal-mono); text-decoration: none; white-space: nowrap; cursor: pointer; }
.prospect-collector__actions a:hover,.prospect-collector__actions button:hover:not(:disabled) { border-color: var(--portal-orange); background: var(--prospect-orange-soft); }
.prospect-collector__actions button:disabled { cursor: default; opacity: .42; }
.prospect-collector[data-connected="true"] [data-collector-status] { color: #17633e; }
.prospect-collector:is([data-linkedin-ui-agent],[data-linkedin-outreach-section]) > details { grid-column: 1 / -1; }
.prospect-collector:is([data-linkedin-ui-agent],[data-linkedin-outreach-section]) > details summary { cursor: pointer; font: 600 10px/1.4 var(--portal-mono); letter-spacing: .06em; text-transform: uppercase; }
.prospect-collector:is([data-linkedin-ui-agent],[data-linkedin-outreach-section]) > details ul { margin: 10px 0 0; padding-left: 20px; color: var(--portal-muted); font: 11px/1.6 var(--portal-mono); }
.prospect-collector [data-linkedin-outreach-form] { display: grid; gap: 10px; margin-top: 10px; }
.prospect-collector [data-linkedin-outreach-form] textarea { width: 100%; padding: 10px; border: 1px solid var(--portal-line); font: 12px/1.5 var(--portal-mono); }
.prospect-collector [data-linkedin-outreach-form] fieldset { display: grid; gap: 6px; max-height: 220px; overflow: auto; border: 1px solid var(--portal-line); }
.prospect-collector [data-linkedin-outreach-form] label { display: flex; gap: 8px; align-items: center; font: 11px/1.4 var(--portal-mono); }
.prospect-collector [data-linkedin-outreach-form] button { width: fit-content; min-height: 36px; padding: 8px 12px; border: 1px solid var(--portal-line); background: #fff; }
.prospect-collector__state--outreach { justify-content: flex-start; padding-block: 4px; }
.prospect-collector__outreach-log { border-top: 1px solid var(--portal-line); padding-top: 10px; }
.prospect-collector__outreach-log h3 { margin: 0; font: 600 10px/1.4 var(--portal-mono); letter-spacing: .06em; text-transform: uppercase; }
.prospect-collector__outreach-log ul { margin: 8px 0 0; padding-left: 20px; color: var(--portal-muted); font: 11px/1.6 var(--portal-mono); }
.prospect-import { border-block: 1px solid var(--portal-line); }
.prospect-import > summary { padding: 16px 0; cursor: pointer; font-size: 14px; font-weight: 620; }
.prospect-import > p { max-width: 72ch; margin: 0 0 18px; color: var(--portal-muted); font-size: 13px; line-height: 1.5; }
.prospect-import__form { display: grid; grid-template-columns: minmax(260px,1fr) 110px 150px minmax(230px,auto) auto; gap: 12px; align-items: end; padding-bottom: 20px; }
.prospect-import__form > label { display: grid; gap: 7px; color: var(--portal-muted); font-size: 12px; }
.prospect-import__form input[type="file"],.prospect-import__form input[type="number"] { min-height: 42px; padding: 9px 11px; border: 1px solid var(--portal-line); background: #fff; color: var(--portal-ink); font: inherit; }
.prospect-import__form fieldset { display: flex; align-items: center; gap: 12px; min-height: 42px; margin: 0; padding: 7px 11px; border: 1px solid var(--portal-line); }
.prospect-import__form legend { padding: 0 4px; color: var(--portal-muted); font-size: 11px; }
.prospect-import__form fieldset label { display: flex; align-items: center; gap: 5px; font: 11px var(--portal-mono); }
.prospect-import__result { padding-bottom: 18px; color: #17633e; font: 11px/1.5 var(--portal-mono); }
.prospect-filters { display: grid; grid-template-columns: minmax(240px,1fr) 170px 170px 150px auto; gap: 12px; align-items: end; }
.prospect-filters label,.prospect-form label { display: grid; gap: 7px; color: var(--portal-muted); font-size: 12px; }
.prospect-filters input,.prospect-filters select,.prospect-form input,.prospect-form select,.prospect-form textarea {
  width: 100%; min-height: 46px; padding: 10px 12px; border: 1px solid var(--portal-line); border-radius: 0; background: #fff; color: var(--portal-ink);
}
.prospect-page :is(input,select,textarea,button,a):focus-visible { outline: 2px solid var(--portal-orange); outline-offset: 3px; }
.prospect-form textarea { min-height: 92px; resize: vertical; line-height: 1.5; }
.prospect-table-wrap { width: 100%; min-width: 0; max-width: 100%; overflow-x: auto; border: 1px solid var(--portal-line); contain: inline-size layout; }
.prospect-table { width: 100%; min-width: 960px; border-collapse: collapse; }
.prospect-table th,.prospect-table td { padding: 14px 16px; border-bottom: 1px solid var(--portal-line); text-align: left; vertical-align: middle; }
.prospect-table th { background: #fafafa; color: var(--portal-muted); font: 10px/1.4 var(--portal-mono); letter-spacing: .08em; text-transform: uppercase; }
.prospect-table tr:last-child td { border-bottom: 0; }
.prospect-table tbody tr:hover { background: #fafafa; }
.prospect-table tbody tr.is-disabled { opacity: .56; }
.prospect-table tbody tr:has([data-prospect-panel-link]:focus-visible) { background: var(--prospect-orange-soft); }
.prospect-company-cell,.prospect-company-heading { display: flex; align-items: center; gap: 11px; min-width: 0; }
.prospect-company-cell > div,.prospect-company-heading > div { min-width: 0; }
.prospect-logo { position: relative; display: grid; flex: 0 0 auto; overflow: hidden; place-items: center; border: 1px solid var(--portal-line); border-radius: 8px; color: #343840; font: 650 12px/1 var(--portal-mono); }
.prospect-logo--32 { width: 32px; height: 32px; }
.prospect-logo--44 { width: 44px; height: 44px; border-radius: 10px; font-size: 15px; }
.prospect-logo img { position: absolute; inset: 0; width: 100%; height: 100%; background: #fff; object-fit: contain; }
.prospect-logo img[hidden] { display: none; }
.prospect-logo--tone-0 { background: #f4e7df; }.prospect-logo--tone-1 { background: #e4edf2; }.prospect-logo--tone-2 { background: #e8eee0; }
.prospect-logo--tone-3 { background: #eee6f2; }.prospect-logo--tone-4 { background: #f1ecd9; }.prospect-logo--tone-5 { background: #e4e9f4; }
.company-logo { position: relative; display: grid; flex: 0 0 auto; overflow: hidden; place-items: center; border: 1px solid var(--portal-line); border-radius: 8px; color: #343840; font: 650 12px/1 var(--portal-mono); }
.company-logo--32 { width: 32px; height: 32px; }.company-logo--44 { width: 44px; height: 44px; border-radius: 10px; font-size: 15px; }
.company-logo img { position: absolute; inset: 0; width: 100%; height: 100%; background: #fff; object-fit: contain; }
.company-logo img[hidden] { display: none; }
.company-logo--tone-0 { background: #f4e7df; }.company-logo--tone-1 { background: #e4edf2; }.company-logo--tone-2 { background: #e8eee0; }
.company-logo--tone-3 { background: #eee6f2; }.company-logo--tone-4 { background: #f1ecd9; }.company-logo--tone-5 { background: #e4e9f4; }
.prospect-table td strong { display: block; font-size: 14px; font-weight: 620; }
.prospect-table td small { display: block; margin-top: 4px; color: var(--portal-muted); font-size: 11px; line-height: 1.4; }
.prospect-table a { text-underline-offset: 3px; }
.prospect-rank { width: 72px; font: 13px var(--portal-mono); font-variant-numeric: tabular-nums; }
.prospect-edit { font-weight: 620; text-decoration-color: var(--portal-orange); }
.prospect-edit:hover { color: var(--prospect-orange-ink); }
.prospect-status { display: inline-block; padding: 5px 8px; background: #f1f2f4; color: #474b53; font: 10px/1.2 var(--portal-mono); text-transform: uppercase; }
.prospect-status--enriched,.prospect-status--replied { background: #e5f4ec; color: #17633e; }
.prospect-status--in_progress,.prospect-status--sent { background: #e9effb; color: #315995; }
.prospect-status--needs_review,.prospect-status--ready { background: #f6efdd; color: #775c1f; }
.prospect-status--failed,.prospect-status--bounced,.prospect-status--not_interested { background: var(--portal-danger-soft); color: var(--portal-danger); }
.prospect-status--active { background: #e5f4ec; color: #17633e; }
.prospect-status--disabled { background: #ececef; color: #5f6269; }
.prospect-table-footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; color: var(--portal-muted); font: 11px/1.4 var(--portal-mono); }
.prospect-table-footer nav { display: flex; gap: 10px; }
.prospect-table-footer a { padding: 9px 12px; border: 1px solid var(--portal-line); color: var(--portal-ink); text-decoration: none; }
.prospect-workspace--drawer-open { overflow: hidden; }
.prospect-drawer-scrim { position: fixed; inset: 0; z-index: 90; background: rgb(17 19 24 / 32%); animation: prospect-scrim-in 180ms ease-out both; }
.prospect-editor { position: fixed; inset: 0 0 0 auto; z-index: 91; width: 90vw; padding: 24px; overflow-y: auto; border-left: 1px solid var(--portal-ink); background: #fff; box-shadow: -18px 0 54px rgb(17 19 24 / 14%); animation: prospect-drawer-in 220ms cubic-bezier(.16,1,.3,1) both; }
.prospect-editor:focus { outline: none; }
.prospect-editor > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding-bottom: 20px; border-bottom: 1px solid var(--portal-line); }
.prospect-editor h2,.prospect-editor h3 { margin: 0; }
.prospect-editor h2 { font-size: 24px; letter-spacing: -.025em; }
.prospect-editor h3 { margin-bottom: 18px; font-size: 15px; }
.prospect-editor header p { margin: 6px 0 0; color: var(--portal-muted); }
.prospect-editor header a { text-underline-offset: 3px; }
.prospect-editor__close { position: fixed; top: 24px; right: 90vw; z-index: 92; display: grid; width: 42px; height: 42px; transform: translateX(-12px); place-items: center; border: 1px solid var(--portal-line); background: #fff; color: var(--portal-ink); }
.prospect-editor__close:hover { border-color: var(--portal-orange); background: var(--prospect-orange-soft); }
.prospect-editor__close img { width: 18px; height: 18px; transform: rotate(45deg); }
.prospect-editor__grid { display: grid; grid-template-columns: 1fr; gap: 36px; padding-top: 24px; }
.prospect-form { display: grid; gap: 14px; }
.prospect-form--company { grid-template-columns: 1fr 1fr; padding-bottom: 28px; border-bottom: 1px solid var(--portal-line); }
.prospect-form--company > h3,.prospect-form--company > .prospect-form__split,.prospect-form--company > label:last-of-type,.prospect-form--company > button { grid-column: 1 / -1; }
.prospect-form--company > .prospect-logo-meta { grid-column: 1 / -1; margin: -7px 0 0; color: var(--portal-muted); font: 10px/1.5 var(--portal-mono); }
.prospect-form--company > button { justify-self: start; }
.prospect-availability button { min-height: 38px; padding: 9px 12px; border: 1px solid var(--portal-orange); background: var(--prospect-orange-soft); color: var(--prospect-orange-ink); font: 600 10px var(--portal-mono); cursor: pointer; }
.prospect-form__split { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.prospect-contacts { min-width: 0; }
.prospect-contacts > header { margin-bottom: 10px; }
.prospect-contacts > header h3 { margin-bottom: 0; }
.prospect-contacts > header p { margin: 5px 0 0; color: var(--portal-muted); font-size: 12px; }
.prospect-contacts > details { border-top: 1px solid var(--portal-line); }
.prospect-contacts summary,.prospect-activity summary { min-height: 46px; padding: 14px 0; cursor: pointer; font-size: 13px; font-weight: 600; }
.prospect-contacts > details > summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; list-style-position: inside; }
.prospect-contacts > details > summary small { display: block; margin: 4px 0 0 20px; color: var(--portal-muted); font-size: 11px; font-weight: 400; }
.prospect-form--contact { grid-template-columns: 1fr 1fr; padding: 4px 0 20px; }
.prospect-form--contact > .prospect-form__wide,.prospect-form--contact > .prospect-form__split,.prospect-form--contact > label:last-of-type,.prospect-form--contact > button,.prospect-contact__dates,.prospect-form--contact > .prospect-form__check { grid-column: 1 / -1; }
.prospect-form label.prospect-form__check { display: flex; align-items: center; justify-content: flex-start; gap: 8px; color: var(--portal-ink); cursor: pointer; }
.prospect-form label.prospect-form__check input[type="checkbox"] { flex: 0 0 16px; width: 16px; height: 16px; min-height: 0; margin: 0; padding: 0; accent-color: var(--portal-orange); }
.prospect-contact__dates,.prospect-email-blocked,.prospect-empty { color: var(--portal-muted); font-size: 12px; }
.prospect-email-compose,.prospect-email-history { margin: 0 0 20px; padding: 16px; border: 1px solid var(--portal-line); }
.prospect-email-compose { background: var(--prospect-orange-soft); }
.prospect-email-compose h4,.prospect-email-history h4 { margin: 0 0 14px; font-size: 13px; }
.prospect-email-compose .prospect-form button { justify-self: start; }
.prospect-email-bulk > summary small { display: block; margin: 4px 0 0 20px; color: var(--portal-muted); font-size: 11px; font-weight: 400; }
.prospect-email-compose--bulk { margin: 0 0 20px; }
.prospect-email-recipients { display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: 8px 18px; margin: 0; padding: 12px; border: 1px solid var(--portal-line); }
.prospect-email-recipients legend { padding: 0 5px; color: var(--portal-muted); font: 10px var(--portal-mono); text-transform: uppercase; }
.prospect-email-recipients label { display: flex; align-items: flex-start; justify-content: flex-start; gap: 8px; color: var(--portal-ink); font-size: 12px; cursor: pointer; }
.prospect-email-recipients input[type="checkbox"] { flex: 0 0 16px; width: 16px; height: 16px; min-height: 0; margin: 2px 0 0; padding: 0; accent-color: var(--portal-orange); }
.prospect-email-recipients small { display: block; margin-top: 2px; color: var(--portal-muted); font-size: 10px; }
.prospect-email-message { padding: 14px 0; border-top: 1px solid var(--portal-line); }
.prospect-email-message header { display: flex; justify-content: space-between; gap: 16px; color: var(--portal-muted); font: 10px/1.4 var(--portal-mono); }
.prospect-email-message header strong { color: var(--portal-ink); }
.prospect-email-message pre { margin: 10px 0 0; overflow: auto; color: var(--portal-ink); font: 12px/1.55 var(--portal-sans); white-space: pre-wrap; }
.prospect-email-message--inbound { border-left: 3px solid var(--portal-orange); padding-left: 12px; }
.prospect-contact-add summary { color: var(--prospect-orange-ink); }
.prospect-contact-trial { margin: 0 0 20px; padding: 16px; border: 1px solid var(--portal-line); background: #fafafa; }
.prospect-contact-trial > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.prospect-contact-trial > header strong,.prospect-contact-trial > header small { display: block; }
.prospect-contact-trial > header small { margin-top: 5px; color: var(--portal-muted); font: 11px/1.45 var(--portal-mono); }
.prospect-contact-trial dl { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin: 16px 0; }
.prospect-contact-trial dl div { min-width: 0; }
.prospect-contact-trial dt { color: var(--portal-muted); font: 10px/1.4 var(--portal-mono); text-transform: uppercase; }
.prospect-contact-trial dd { margin: 4px 0 0; overflow-wrap: anywhere; font: 11px/1.45 var(--portal-mono); }
.prospect-activity { padding-top: 16px; border-top: 1px solid var(--portal-line); }
.prospect-activity ol { margin: 0; padding-left: 22px; color: var(--portal-muted); font: 11px/1.8 var(--portal-mono); }
.prospect-trial-activity { margin-top: 16px; padding-top: 18px; border-top: 1px solid var(--portal-line); }
.prospect-trial-activity > header,.prospect-session-groups > header,.prospect-unlinked > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 16px; }
.prospect-trial-activity h3,.prospect-session-groups h2,.prospect-unlinked h2 { margin: 0; font-size: 18px; letter-spacing: -.02em; }
.prospect-trial-activity header p,.prospect-session-groups header p,.prospect-unlinked header p { margin: 5px 0 0; color: var(--portal-muted); font-size: 12px; }
.prospect-trial-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; }
.prospect-trial-actions button,.prospect-trial-state button { min-height: 32px; padding: 6px 9px; border: 1px solid var(--portal-line); background: #fff; color: var(--portal-ink); font: 600 10px var(--portal-mono); cursor: pointer; }
.prospect-trial-activity > header button { min-height: 32px; padding: 6px 9px; border: 1px solid var(--portal-line); background: #fff; color: var(--portal-ink); font: 600 10px var(--portal-mono); cursor: pointer; }
.prospect-trial-state { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 10px; }
.prospect-trial-state label { display: flex; align-items: center; gap: 5px; color: var(--portal-muted); font-size: 11px; }
.prospect-copy-status { min-height: 18px; margin: 8px 0 0; color: var(--portal-muted); font: 11px var(--portal-mono); }

/* Web Agent */
.web-agent-page { gap: 32px; }
.web-agent-heading { align-items: center; }
.web-agent-extension-state { display: inline-flex; align-items: center; gap: 9px; padding: 9px 12px; border: 1px solid var(--portal-line); color: var(--portal-muted); font: 600 11px/1.3 var(--portal-mono); text-transform: uppercase; }
.web-agent-extension-state span,.web-agent-runtime__dot { width: 8px; height: 8px; flex: 0 0 auto; border-radius: 50%; background: var(--portal-danger); }
.web-agent-extension-state.is-online { color: #17633e; }
.web-agent-extension-state.is-online span,.web-agent-runtime__dot.is-online { background: #218454; }
.web-agent-topology { display: grid; grid-template-columns: minmax(0,1fr) 300px; gap: 24px; align-items: start; }
.web-agent-launcher,.web-agent-runtime,.web-agent-runs,.web-agent-inspector { border-top: 1px solid var(--portal-line-strong); background: #fff; }
.web-agent-launcher { padding: 24px; }
.web-agent-launcher > header,.web-agent-runs > header,.web-agent-inspector > header,.web-agent-fields > header,.web-agent-steps > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.web-agent-launcher h2,.web-agent-runtime h2,.web-agent-runs h2,.web-agent-inspector h2 { margin: 0; font-size: 22px; letter-spacing: -.025em; }
.web-agent-launcher header p,.web-agent-runs header p,.web-agent-inspector header p,.web-agent-fields header p,.web-agent-steps header p { max-width: 70ch; margin: 7px 0 0; color: var(--portal-muted); line-height: 1.5; }
.web-agent-launcher form { display: grid; gap: 22px; margin-top: 24px; }
.web-agent-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.web-agent-form-grid label,.web-agent-field-row label,.web-agent-limits label { display: grid; gap: 7px; color: var(--portal-muted); font-size: 12px; }
.web-agent-form-grid small { font: 10px/1.4 var(--portal-mono); }
.web-agent-form-grid :is(input,select,textarea),.web-agent-field-row :is(input,select),.web-agent-limits input { width: 100%; min-height: 42px; padding: 9px 11px; border: 1px solid var(--portal-line); border-radius: 0; background: #fff; color: var(--portal-ink); }
.web-agent-form-grid textarea { resize: vertical; line-height: 1.5; }
.web-agent-span { grid-column: 1 / -1; }
.web-agent-capabilities { display: flex; flex-wrap: wrap; gap: 12px 22px; margin: 0; padding: 14px 16px; border: 1px solid var(--portal-line); }
.web-agent-capabilities legend { padding: 0 6px; color: var(--portal-muted); font: 10px/1.4 var(--portal-mono); text-transform: uppercase; }
.web-agent-capabilities label,.web-agent-field-required { display: flex !important; align-items: center; gap: 7px !important; color: var(--portal-ink) !important; cursor: pointer; }
.web-agent-capabilities input,.web-agent-field-required input { width: 16px !important; min-height: 0 !important; height: 16px; padding: 0 !important; accent-color: var(--portal-orange); }
.web-agent-fields { display: grid; gap: 12px; }
.web-agent-fields h3,.web-agent-steps h3 { margin: 0; font-size: 17px; }
.web-agent-fields > header button,.web-agent-field-row > button,.web-agent-submit button { min-height: 38px; padding: 8px 12px; border: 1px solid var(--portal-ink); background: #fff; color: var(--portal-ink); font: 600 10px/1.3 var(--portal-mono); text-transform: uppercase; }
.web-agent-field-row { display: grid; grid-template-columns: minmax(130px,.8fr) 120px 120px minmax(220px,1.6fr) auto auto; gap: 10px; align-items: end; padding: 14px 0; border-top: 1px solid var(--portal-line); }
.web-agent-field-row > button { border-color: var(--portal-line); color: var(--portal-muted); }
.web-agent-limits { border: 0; border-top: 1px solid var(--portal-line); }
.web-agent-limits summary { padding: 14px 0; cursor: pointer; font: 600 11px/1.4 var(--portal-mono); text-transform: uppercase; }
.web-agent-limits > div { display: grid; grid-template-columns: repeat(5,1fr); gap: 12px; padding-bottom: 4px; }
.web-agent-submit { display: flex; align-items: center; gap: 16px; }
.web-agent-submit button { min-height: 44px; padding-inline: 18px; background: var(--portal-ink); color: #fff; }
.web-agent-submit button:disabled { cursor: wait; opacity: .55; }
.web-agent-submit output { color: var(--portal-muted); font: 11px/1.5 var(--portal-mono); }
.web-agent-runtime { padding: 24px; }
.web-agent-runtime > p { margin: 10px 0 22px; color: var(--portal-muted); line-height: 1.55; }
.web-agent-runtime ul { display: grid; gap: 12px; margin: 0; padding: 0 0 22px; list-style: none; }
.web-agent-runtime li { display: flex; align-items: flex-start; gap: 10px; }
.web-agent-runtime li strong,.web-agent-runtime li small { display: block; }
.web-agent-runtime li small { margin-top: 3px; color: var(--portal-muted); font: 10px/1.4 var(--portal-mono); }
.web-agent-runtime dl,.web-agent-task-meta { display: grid; gap: 0; margin: 0; border-top: 1px solid var(--portal-line); }
.web-agent-runtime dl div,.web-agent-task-meta div { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--portal-line); }
.web-agent-runtime dt,.web-agent-task-meta dt { color: var(--portal-muted); font: 10px/1.4 var(--portal-mono); text-transform: uppercase; }
.web-agent-runtime dd,.web-agent-task-meta dd { margin: 0; text-align: right; font: 11px/1.4 var(--portal-mono); }
.web-agent-runs { padding-top: 22px; }
.web-agent-runs > header,.web-agent-inspector > header { padding: 0 0 18px; }
.web-agent-runs > header > a { text-underline-offset: 4px; }
.web-agent-table-scroll { overflow-x: auto; border-top: 1px solid var(--portal-line); }
.web-agent-table-scroll table { width: 100%; min-width: 980px; border-collapse: collapse; table-layout: fixed; }
.web-agent-table-scroll th,.web-agent-table-scroll td { padding: 12px 10px; border-bottom: 1px solid var(--portal-line); text-align: left; vertical-align: top; }
.web-agent-table-scroll th { color: var(--portal-muted); font: 10px/1.4 var(--portal-mono); text-transform: uppercase; }
.web-agent-table-scroll td { font-size: 12px; }
.web-agent-table-scroll td:nth-child(1),.web-agent-table-scroll th:nth-child(1) { width: 58px; }
.web-agent-table-scroll td:nth-child(2),.web-agent-table-scroll th:nth-child(2) { width: 160px; }
.web-agent-table-scroll td:nth-child(3),.web-agent-table-scroll th:nth-child(3) { width: 120px; }
.web-agent-table-scroll td:nth-child(5),.web-agent-table-scroll th:nth-child(5) { width: 70px; }
.web-agent-table-scroll td:nth-child(6),.web-agent-table-scroll th:nth-child(6) { width: 220px; }
.web-agent-table-scroll td:nth-child(7),.web-agent-table-scroll th:nth-child(7) { width: 160px; }
.web-agent-table-scroll td:nth-child(8),.web-agent-table-scroll th:nth-child(8) { width: 92px; }
.web-agent-table-scroll td:nth-child(4),.web-agent-table-scroll td:nth-child(6) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.web-agent-table-scroll tr.is-selected { background: #f3f5f8; }
.web-agent-delete { min-height: 32px; padding: 6px 9px; border: 1px solid var(--portal-line); background: #fff; color: var(--portal-danger); font: 600 9px/1.2 var(--portal-mono); text-transform: uppercase; }
.web-agent-delete:disabled { color: var(--portal-muted); cursor: not-allowed; opacity: .55; }
.web-agent-page .prospect-status--queued { background: #f1f2f4; color: #474b53; }
.web-agent-page .prospect-status--leased { background: #e9effb; color: #315995; }
.web-agent-page .prospect-status--completed { background: #e5f4ec; color: #17633e; }
.web-agent-inspector { padding-top: 22px; }
.web-agent-task-meta { grid-template-columns: repeat(5,1fr); border-bottom: 1px solid var(--portal-line); }
.web-agent-task-meta div { display: block; padding: 13px 14px; border-right: 1px solid var(--portal-line); border-bottom: 0; }
.web-agent-task-meta div:first-child { padding-left: 0; }
.web-agent-task-meta dd { margin-top: 4px; text-align: left; }
.web-agent-error { display: grid; gap: 4px; padding: 14px 16px; background: var(--portal-danger-soft); color: var(--portal-danger); }
.web-agent-error strong { font: 10px/1.4 var(--portal-mono); text-transform: uppercase; }
.web-agent-result { padding: 22px 0; border-bottom: 1px solid var(--portal-line); }
.web-agent-result > header,.web-agent-result-field > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.web-agent-result h3,.web-agent-result h4,.web-agent-result p { margin: 0; }
.web-agent-result > header p { margin-top: 5px; color: var(--portal-muted); }
.web-agent-result-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(260px,1fr)); gap: 12px; margin-top: 16px; }
.web-agent-result-field { min-width: 0; padding: 14px; border: 1px solid var(--portal-line); }
.web-agent-result-field h4 { overflow-wrap: anywhere; font-size: 14px; }
.web-agent-result-field small,.web-agent-result-status { color: var(--portal-muted); font: 9px/1.4 var(--portal-mono); text-transform: uppercase; }
.web-agent-result-field ul { margin: 12px 0 0; padding: 0; list-style: none; }
.web-agent-result-field li { display: grid; gap: 6px; padding: 10px 0; border-top: 1px solid var(--portal-line); overflow-wrap: anywhere; }
.web-agent-result-field li strong { font: 600 12px/1.5 var(--portal-mono); white-space: pre-wrap; }
.web-agent-result-field li > span,.web-agent-result-field blockquote,.web-agent-result-field footer { margin: 0; color: var(--portal-muted); font: 10px/1.5 var(--portal-mono); }
.web-agent-result-field blockquote { padding-left: 10px; border-left: 2px solid var(--portal-line-strong); }
.web-agent-result-field footer { display: flex; flex-wrap: wrap; gap: 8px 14px; }
.web-agent-result-status--found { color: #17633e; }
.web-agent-result-status--uncertain { color: #8a5b00; }
.web-agent-knowledge-map { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--portal-line); }
.web-agent-knowledge-map > header { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; }
.web-agent-knowledge-map > header p { color: var(--portal-muted); font: 10px/1.5 var(--portal-mono); }
.web-agent-map-stage { position: relative; display: grid; grid-template-columns: minmax(130px,.65fr) minmax(210px,.9fr) minmax(260px,1.5fr); gap: 64px; align-items: center; min-height: 340px; margin-top: 16px; padding: 22px; overflow: hidden; background: #f8f9fa; }
.web-agent-map-stage > svg { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.web-agent-map-stage path { fill: none; stroke: #cfd3d9; stroke-width: 1; vector-effect: non-scaling-stroke; }
.web-agent-map-stage path[data-active="true"] { stroke: var(--portal-orange); stroke-width: 1.5; }
.web-agent-map-root,.web-agent-map-fields,.web-agent-map-values { position: relative; z-index: 1; }
.web-agent-map-root { display: grid; place-content: center; justify-items: center; width: 132px; height: 132px; justify-self: center; border: 1px solid var(--portal-ink); border-radius: 50%; background-color: #fff; background-image: radial-gradient(#c9cdd3 1px,transparent 1px); background-size: 8px 8px; text-align: center; }
.web-agent-map-root span,.web-agent-map-root small { padding: 2px 5px; background: #fff; color: var(--portal-muted); font: 9px/1.3 var(--portal-mono); text-transform: uppercase; }
.web-agent-map-root strong { max-width: 96px; padding: 2px 5px; background: #fff; font: 600 12px/1.3 var(--portal-mono); overflow-wrap: anywhere; }
.web-agent-map-fields,.web-agent-map-values > section { display: grid; gap: 9px; }
.web-agent-map-fields button { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 3px 10px; min-height: 66px; padding: 11px 13px; border: 1px solid var(--portal-line); background: #fff; color: var(--portal-ink); text-align: left; }
.web-agent-map-fields button[aria-pressed="true"] { border-color: var(--portal-orange); box-shadow: inset 3px 0 var(--portal-orange); }
.web-agent-map-fields button span { overflow-wrap: anywhere; font: 600 12px/1.4 var(--portal-mono); }
.web-agent-map-fields button strong { grid-row: 1 / 3; grid-column: 2; align-self: center; font: 600 20px/1 var(--portal-mono); }
.web-agent-map-fields button small { color: var(--portal-muted); font: 9px/1.3 var(--portal-mono); text-transform: uppercase; }
.web-agent-map-values { min-width: 0; }
.web-agent-map-values article { display: grid; gap: 5px; min-width: 0; padding: 10px 12px; border-left: 2px solid var(--portal-orange); background: #fff; }
.web-agent-map-values article strong { overflow-wrap: anywhere; font: 600 11px/1.45 var(--portal-mono); white-space: pre-wrap; }
.web-agent-map-values article > span,.web-agent-map-values footer { color: var(--portal-muted); font: 9px/1.4 var(--portal-mono); }
.web-agent-map-values footer { display: flex; flex-wrap: wrap; gap: 8px 14px; }
.web-agent-map-values .web-agent-map-empty { border-left-color: var(--portal-line-strong); }
.web-agent-inspector-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; border-bottom: 1px solid var(--portal-line); }
.web-agent-inspector-grid > * { min-width: 0; margin: 0; padding: 18px; border-right: 1px solid var(--portal-line); }
.web-agent-inspector-grid > *:first-child { padding-left: 0; }
.web-agent-inspector-grid h3 { margin: 0 0 10px; font-size: 14px; }
.web-agent-inspector-grid ol { margin: 0; padding-left: 20px; }
.web-agent-inspector-grid li { margin: 6px 0; overflow-wrap: anywhere; font: 11px/1.5 var(--portal-mono); }
.web-agent-inspector summary,.web-agent-steps summary { cursor: pointer; font: 600 11px/1.4 var(--portal-mono); text-transform: uppercase; }
.web-agent-inspector pre { max-height: 360px; overflow: auto; margin: 14px 0 0; padding: 12px; background: #f6f7f9; font: 11px/1.5 var(--portal-mono); white-space: pre-wrap; overflow-wrap: anywhere; }
.web-agent-steps { padding-top: 22px; }
.web-agent-steps > details { border-top: 1px solid var(--portal-line); }
.web-agent-steps > details > summary { display: flex; justify-content: space-between; gap: 20px; padding: 14px 0; }
.web-agent-steps > details > summary span:last-child { color: var(--portal-muted); text-align: right; font-weight: 450; text-transform: none; }
.web-agent-steps > details > dl { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 16px; margin: 0 0 14px; }
.web-agent-steps > details > dl div { min-width: 0; }
.web-agent-steps dt { color: var(--portal-muted); font: 9px/1.4 var(--portal-mono); text-transform: uppercase; }
.web-agent-steps dd { margin: 4px 0 0; overflow-wrap: anywhere; font: 11px/1.4 var(--portal-mono); }
.web-agent-step-json { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; padding-bottom: 18px; }
.web-agent-step-json h4 { margin: 0; font-size: 12px; }

@media (max-width: 1050px) {
  .web-agent-topology { grid-template-columns: 1fr; }
  .web-agent-field-row { grid-template-columns: 1fr 1fr 1fr; }
  .web-agent-field-instructions { grid-column: 1 / -1; }
  .web-agent-limits > div { grid-template-columns: repeat(3,1fr); }
  .web-agent-inspector-grid,.web-agent-step-json { grid-template-columns: 1fr; }
  .web-agent-inspector-grid > * { padding-inline: 0; border-right: 0; border-top: 1px solid var(--portal-line); }
  .web-agent-map-stage { grid-template-columns: 120px minmax(190px,.8fr) minmax(220px,1fr); gap: 34px; }
}

@media (max-width: 640px) {
  .web-agent-heading,.web-agent-launcher > header,.web-agent-runs > header,.web-agent-inspector > header,.web-agent-fields > header,.web-agent-steps > header { align-items: flex-start; flex-direction: column; }
  .web-agent-form-grid,.web-agent-field-row,.web-agent-limits > div,.web-agent-task-meta { grid-template-columns: 1fr; }
  .web-agent-span,.web-agent-field-instructions { grid-column: auto; }
  .web-agent-task-meta div { padding-inline: 0; border-right: 0; }
  .web-agent-steps > details > summary,.web-agent-submit { align-items: flex-start; flex-direction: column; }
  .web-agent-steps > details > summary span:last-child { text-align: left; }
  .web-agent-steps > details > dl { grid-template-columns: 1fr; }
  .web-agent-knowledge-map > header { display: block; }
  .web-agent-map-stage { grid-template-columns: 1fr; gap: 14px; padding: 16px; }
  .web-agent-map-stage > svg { display: none; }
  .web-agent-map-root { width: 104px; height: 104px; }
}
.prospect-trial-activity details { border-top: 1px solid var(--portal-line); }
.prospect-trial-activity summary { padding: 13px 0; cursor: pointer; font: 600 12px var(--portal-mono); }
.prospect-trial-activity details p,.prospect-trial-activity ol { color: var(--portal-muted); font: 11px/1.6 var(--portal-mono); }
.prospect-pagination { display: flex; gap: 10px; margin-top: 14px; }
.prospect-session-groups,.prospect-unlinked { padding-top: 24px; border-top: 1px solid var(--portal-line); }
.prospect-session-list { border-top: 1px solid var(--portal-line); }
.prospect-session-list article { display: grid; grid-template-columns: minmax(220px,1fr) minmax(240px,1fr) auto; gap: 18px; align-items: center; min-height: 64px; padding: 10px 0; border-bottom: 1px solid var(--portal-line); }
.prospect-session-list strong,.prospect-session-list small { display: block; }
.prospect-session-list small { margin-top: 4px; color: var(--portal-muted); font-size: 11px; }
.prospect-session-list p { margin: 0; font: 11px/1.4 var(--portal-mono); }
.prospect-inbox-state { margin: -12px 0 0; color: var(--portal-muted); font: 11px/1.5 var(--portal-mono); }
.prospect-inbox-page { max-width: 1580px; }
.prospect-mailbox { display: grid; grid-template-columns: 172px minmax(400px,.92fr) minmax(420px,1.08fr); min-height: 620px; border: 1px solid var(--portal-line); background: #fff; }
.prospect-mailbox__rail { min-width: 0; padding: 16px 12px; border-right: 1px solid var(--portal-line); background: #f7f7f6; }
.prospect-mailbox__rail nav { display: grid; gap: 2px; margin-top: 18px; }
.prospect-mailbox__rail nav a { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 38px; padding: 8px 10px; color: var(--portal-muted); font-size: 12px; text-decoration: none; }
.prospect-mailbox__rail nav a:hover { background: #ededeb; color: var(--portal-ink); }
.prospect-mailbox__rail nav a.is-active { background: var(--prospect-orange-soft); color: var(--prospect-orange-ink); font-weight: 650; }
.prospect-mailbox__rail nav strong { font: 500 10px/1 var(--portal-mono); font-variant-numeric: tabular-nums; }
.prospect-mailbox__outreach { width: 100%; justify-content: center; background: var(--portal-ink); color: #fff; }
.prospect-mailbox__templates-link { display: inline-block; margin: 24px 10px 0; color: var(--portal-muted); font: 11px/1.4 var(--portal-mono); text-underline-offset: .25em; }
.prospect-mailbox__list-pane { min-width: 0; border-right: 1px solid var(--portal-line); }
.prospect-mailbox__toolbar { display: flex; align-items: center; justify-content: space-between; min-height: 48px; padding: 7px 12px; border-bottom: 1px solid var(--portal-line); color: var(--portal-muted); font: 10px/1.4 var(--portal-mono); font-variant-numeric: tabular-nums; }
.prospect-mailbox__toolbar nav { display: flex; gap: 4px; }
.prospect-mailbox__toolbar a { display: grid; width: 32px; height: 32px; place-items: center; border: 1px solid transparent; }
.prospect-mailbox__toolbar a:hover { border-color: var(--portal-line); background: #f7f7f6; }
.prospect-mailbox__toolbar img { width: 15px; height: 15px; }
.prospect-inbox-list { min-width: 0; }
.prospect-mailbox-row { display: grid; grid-template-columns: 42px minmax(110px,.42fr) minmax(190px,1fr) 82px; gap: 10px; align-items: center; min-height: 64px; padding: 9px 12px; border-bottom: 1px solid var(--portal-line); color: var(--portal-ink); text-decoration: none; }
.prospect-mailbox-row:hover { background: #f7f7f6; }
.prospect-mailbox-row.is-selected { background: var(--prospect-orange-soft); }
.prospect-mailbox-row__direction { color: var(--portal-muted); font: 600 9px/1.4 var(--portal-mono); letter-spacing: .04em; text-transform: uppercase; }
.prospect-mailbox-row--inbound .prospect-mailbox-row__direction { color: var(--prospect-orange-ink); }
.prospect-mailbox-row > strong { overflow: hidden; font-size: 12px; font-weight: 620; text-overflow: ellipsis; white-space: nowrap; }
.prospect-mailbox-row__content { min-width: 0; }
.prospect-mailbox-row__content b,.prospect-mailbox-row__content small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.prospect-mailbox-row__content b { font-size: 12px; font-weight: 580; }
.prospect-mailbox-row__content small { margin-top: 3px; color: var(--portal-muted); font-size: 11px; }
.prospect-mailbox-row time { justify-self: end; color: var(--portal-muted); font: 9px/1.4 var(--portal-mono); font-variant-numeric: tabular-nums; white-space: nowrap; }
.prospect-mailbox__viewer { min-width: 0; align-self: start; max-height: calc(100vh - 110px); padding: 22px 24px; overflow: auto; }
.prospect-mailbox__viewer:focus,.prospect-mailbox__viewer:focus-visible,.prospect-mailbox__viewer:target { outline: 0; box-shadow: none; }
.prospect-mailbox__viewer > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding-bottom: 18px; border-bottom: 1px solid var(--portal-line); }
.prospect-mailbox__viewer > header span { color: var(--prospect-orange-ink); font: 650 10px/1.4 var(--portal-mono); letter-spacing: .06em; text-transform: uppercase; }
.prospect-mailbox__viewer h2 { margin: 7px 0 0; font-size: 22px; line-height: 1.2; letter-spacing: -.025em; overflow-wrap: anywhere; }
.prospect-mailbox__viewer > header > a { display: grid; width: 34px; height: 34px; flex: 0 0 auto; place-items: center; border: 1px solid var(--portal-line); }
.prospect-mailbox__viewer > header > a:hover { background: #f7f7f6; }
.prospect-mailbox__viewer > header img { width: 16px; height: 16px; }
.prospect-mailbox__viewer dl { display: grid; gap: 7px; margin: 18px 0; }
.prospect-mailbox__viewer dl div { display: grid; grid-template-columns: 64px minmax(0,1fr); gap: 12px; }
.prospect-mailbox__viewer dt { color: var(--portal-muted); font: 10px/1.5 var(--portal-mono); text-transform: uppercase; }
.prospect-mailbox__viewer dd { margin: 0; overflow-wrap: anywhere; font-size: 12px; line-height: 1.5; }
.prospect-mailbox__address { color: var(--portal-ink); text-underline-offset: .24em; }
.prospect-mailbox__address:hover { color: var(--prospect-orange-ink); }
.prospect-mailbox__message-actions { display: flex; gap: 8px; margin: 0 0 18px; }
.prospect-mailbox__viewer pre { margin: 0 0 24px; color: var(--portal-ink); font: 13px/1.65 var(--portal-sans); white-space: pre-wrap; overflow-wrap: anywhere; }
.prospect-mailbox__body a { color: var(--prospect-orange-ink); text-underline-offset: .22em; }
.prospect-mailbox__found-contacts { margin: 0 0 24px; padding: 18px 0; border-block: 1px solid var(--portal-line); }
.prospect-mailbox__found-contacts header h3 { margin: 0; font-size: 14px; }
.prospect-mailbox__found-contacts header p { margin: 5px 0 14px; color: var(--portal-muted); font-size: 11px; }
.prospect-mailbox__found-contacts ul { margin: 0; padding: 0; list-style: none; }
.prospect-mailbox__found-contacts li { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 16px; align-items: center; min-height: 44px; border-top: 1px solid var(--portal-line); }
.prospect-mailbox__found-contacts li > div a { color: var(--portal-ink); font-size: 12px; text-underline-offset: .22em; }
.prospect-mailbox__found-contacts li > div small { display: block; margin-top: 3px; color: var(--portal-muted); font: 9px/1.4 var(--portal-mono); text-transform: uppercase; }
.prospect-mailbox__found-contacts li > span { color: var(--portal-muted); font: 9px/1.4 var(--portal-mono); text-transform: uppercase; }
.prospect-mailbox__found-contacts button { min-height: 32px; padding: 7px 10px; border: 1px solid var(--portal-line); background: #fff; color: var(--portal-ink); font: 600 9px/1.4 var(--portal-mono); text-transform: uppercase; }
.prospect-mailbox__found-contacts button:hover { border-color: var(--portal-orange); background: var(--prospect-orange-soft); }
.prospect-mailbox__viewer > .portal-button { width: max-content; }
.prospect-mailbox__empty { display: grid; min-height: 500px; place-content: center; justify-items: center; color: var(--portal-muted); text-align: center; }
.prospect-mailbox__empty img { width: 24px; height: 24px; opacity: .45; }
.prospect-mailbox__empty h2 { margin: 14px 0 0; color: var(--portal-ink); font-size: 18px; }
.prospect-mailbox__empty p { margin: 7px 0 0; font-size: 12px; }
.prospect-mailbox__composer { display: grid; gap: 14px; margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--portal-line); }
.prospect-mailbox__composer > header { display: flex; align-items: baseline; justify-content: space-between; gap: 18px; }
.prospect-mailbox__composer > header span { color: var(--prospect-orange-ink); font: 650 10px/1.4 var(--portal-mono); letter-spacing: .06em; text-transform: uppercase; }
.prospect-mailbox__composer > header h2 { margin: 5px 0 0; font-size: 20px; }
.prospect-mailbox__composer > header a { color: var(--portal-muted); font-size: 11px; text-underline-offset: .24em; }
.prospect-mailbox__composer label { display: grid; gap: 6px; color: var(--portal-muted); font: 10px/1.4 var(--portal-mono); letter-spacing: .05em; text-transform: uppercase; }
.prospect-mailbox__composer :is(input,select,textarea) { width: 100%; min-height: 42px; padding: 10px 12px; border: 1px solid var(--portal-line); border-radius: 0; background: #fff; color: var(--portal-ink); font: 13px/1.5 var(--portal-sans); letter-spacing: normal; text-transform: none; }
.prospect-mailbox__composer textarea { min-height: 190px; resize: vertical; }
.prospect-mailbox__composer input[readonly] { background: #f7f7f6; color: var(--portal-muted); }
.prospect-mailbox__composer button { width: max-content; }
.prospect-templates { border-block: 1px solid var(--portal-line); }
.prospect-templates > summary { padding: 16px 0; cursor: pointer; font-weight: 620; }
.prospect-templates > p { color: var(--portal-muted); font-size: 12px; }
.prospect-templates > form { margin: 20px 0; padding: 20px; border: 1px solid var(--portal-line); }
.prospect-templates > form button { justify-self: start; }
.prospect-templates > form.prospect-template-create { border-color: var(--portal-orange); background: var(--prospect-orange-soft); }
.prospect-template-create h3 { margin: 0; font-size: 15px; }
@keyframes prospect-drawer-in { from { opacity: .72; } to { opacity: 1; } }
@keyframes prospect-scrim-in { from { opacity: 0; } to { opacity: 1; } }

@media (max-width: 1100px) {
  .prospect-editor__grid { grid-template-columns: 1fr; }
  .prospect-mailbox { grid-template-columns: 150px minmax(320px,.9fr) minmax(340px,1.1fr); }
}

@media (max-width: 900px) {
  .prospect-heading { align-items: flex-start; flex-direction: column; }
  .prospect-summary { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .prospect-summary div:nth-child(3) { border-right: 0; }
  .prospect-summary div:nth-child(n+4) { border-top: 1px solid var(--portal-line); }
  .prospect-filters { grid-template-columns: 1fr 1fr; }
  .prospect-collector { grid-template-columns: 1fr; gap: 14px; }
  .prospect-collector__actions { flex-wrap: wrap; }
  .prospect-import__form { grid-template-columns: 1fr 1fr; }
  .prospect-mailbox { grid-template-columns: minmax(310px,.9fr) minmax(350px,1.1fr); }
  .prospect-mailbox__rail { display: flex; grid-column: 1 / -1; gap: 12px; align-items: center; padding: 10px 12px; border-right: 0; border-bottom: 1px solid var(--portal-line); }
  .prospect-mailbox__rail nav { display: flex; flex: 1; margin: 0; }
  .prospect-mailbox__rail nav a { flex: 1; }
  .prospect-mailbox__outreach { width: auto; }
  .prospect-mailbox__templates-link { margin: 0; }
}
@media (max-width: 560px) {
  .prospect-summary { grid-template-columns: 1fr 1fr; }
  .prospect-summary div:nth-child(odd) { border-right: 1px solid var(--portal-line); }
  .prospect-summary div:nth-child(even) { border-right: 0; }
  .prospect-summary div:nth-child(n+3) { border-top: 1px solid var(--portal-line); }
  .prospect-filters,.prospect-form--company,.prospect-form--contact,.prospect-form__split { grid-template-columns: 1fr; }
  .prospect-editor { width: 100vw; padding: 18px; border-left: 0; }
  .prospect-editor__close { top: 12px; right: auto; left: 12px; transform: none; }
  .prospect-editor > header { padding-left: 52px; }
  .prospect-contact-trial dl { grid-template-columns: 1fr; }
  .prospect-import__form,.prospect-session-list article { grid-template-columns: 1fr; }
  .prospect-session-list article { gap: 8px; padding: 14px 0; }
  .prospect-mailbox { grid-template-columns: 1fr; }
  .prospect-mailbox__rail { align-items: stretch; flex-direction: column; }
  .prospect-mailbox__rail nav { width: 100%; }
  .prospect-mailbox__templates-link { margin: 4px 10px; }
  .prospect-mailbox__list-pane { border-right: 0; }
  .prospect-mailbox-row { grid-template-columns: 38px minmax(80px,.4fr) minmax(130px,1fr); }
  .prospect-mailbox-row time { display: none; }
  .prospect-mailbox__viewer { max-height: none; padding: 20px 16px; border-top: 1px solid var(--portal-line); }
  .prospect-mailbox__found-contacts li { grid-template-columns: 1fr; gap: 6px; padding: 10px 0; }
  .prospect-mailbox__found-contacts button { width: 100%; }
  .prospect-mailbox__empty { min-height: 220px; }
}

@media (prefers-reduced-motion: reduce) {
  .prospect-editor,.prospect-drawer-scrim { animation: none; }
}

.source-console {
  margin: 0 16px 24px;
  border: 1px solid var(--portal-line);
  background: #fff;
}
.source-console__header,
.source-state-panel__title,
.source-card__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.source-console__header { padding: 14px 16px; border-bottom: 1px solid var(--portal-line); }
.source-console__legend { color: var(--portal-muted); font: 10px/1.4 var(--portal-mono); letter-spacing: .08em; text-transform: uppercase; }
.source-console__dot { display: inline-block; width: 6px; height: 6px; margin: 0 4px 1px 10px; background: #a1a1aa; }
.source-console__dot--ready { margin-left: 0; background: var(--portal-orange); }
.source-state-map-scroll {
  overflow-x: auto;
  padding: 24px 16px;
  border-bottom: 1px solid var(--portal-line);
  background: #fafafa;
}
.source-state-tabs {
  display: grid;
  grid-template-columns: repeat(13, 54px);
  grid-template-rows: repeat(8, 54px);
  gap: 6px;
  width: max-content;
  margin: 0 auto;
}
.source-state-tabs button {
  grid-column: var(--map-x);
  grid-row: var(--map-y);
  width: 54px;
  height: 54px;
  border: 1px solid var(--portal-line);
  background: #fff;
  color: var(--portal-muted);
  font: 11px/1 var(--portal-mono);
  letter-spacing: .12em;
  cursor: default;
}
.source-state-tabs button[aria-disabled="true"] { color: #b8bac0; background: #fafafa !important; }
.source-state-tabs button:focus-visible { outline: 2px solid var(--portal-orange); outline-offset: 2px; }
.source-state-tabs button[data-freshness-state]::after { margin-left: 5px; }
.source-state-tabs button[data-freshness-state="current"]::after { content: "✓"; color: #16754a; }
.source-state-tabs button[data-freshness-state="updating"]::after { content: "↻"; }
.source-state-tabs button[data-freshness-state="soon"]::after { content: "◷"; color: var(--portal-orange); }
.source-state-tabs button[data-freshness-state="due"]::after { content: "!"; color: var(--portal-orange); }
body.parser-portal .source-state-tabs button:not([aria-disabled="true"]) {
  color: var(--portal-ink);
  background: repeating-linear-gradient(135deg, rgb(42 45 52 / 24%) 0 1px, transparent 1px 5px), #fff !important;
  cursor: pointer;
}
body.parser-portal .source-state-tabs button[aria-selected="true"] {
  color: #fff !important;
  background: repeating-linear-gradient(135deg, rgb(255 255 255 / 22%) 0 1px, transparent 1px 5px), var(--portal-ink) !important;
  box-shadow: inset 0 -3px var(--portal-orange);
}
.source-state-panel { padding: 0 16px 16px; }
.source-state-panel[hidden] { display: none; }
.source-state-panel__title { align-items: baseline; padding: 16px 0 10px; }
.source-state-panel__title b { font-size: 20px; }
.source-state-panel__title span { color: var(--portal-muted); font: 10px/1.4 var(--portal-mono); letter-spacing: .08em; text-transform: uppercase; }
.source-card { display: grid; gap: 10px; margin-top: -1px; padding: 14px; border: 1px solid var(--portal-line); background: #fff; }
.source-card__head b { display: block; font-size: 14px; }
.source-card__head small { display: block; margin-top: 4px; color: var(--portal-muted); font: 10px/1.45 var(--portal-mono); }
.source-card__freshness { letter-spacing: .05em; }
.source-card__freshness[data-state="current"] { color: #16754a; }
.source-card__freshness[data-state="soon"],
.source-card__freshness[data-state="due"] { color: var(--portal-orange); }
.source-card__freshness[data-state="updating"] { color: var(--portal-ink); }
.source-card__actions { display: flex; flex-wrap: wrap; gap: 6px; }
.source-card__actions button,
.source-card__actions > a,
.source-card__actions > label > span {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0 11px;
  border: 1px solid var(--portal-line);
  background: #fff;
  color: var(--portal-ink);
  font: 10px/1 var(--portal-mono);
  letter-spacing: .1em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
}
.source-card__actions button:hover:not(:disabled),
.source-card__actions > a:hover,
.source-card__actions > label:hover > span { border-color: var(--portal-orange); }
.source-card__actions > label:focus-visible { outline: 2px solid var(--portal-orange); outline-offset: 2px; }
.source-card__actions .source-card__date { display: grid; gap: 3px; color: var(--portal-muted); font: 9px/1 var(--portal-mono); text-transform: uppercase; }
.source-card__actions .source-card__date input { min-height: 32px; padding: 0 8px; border: 1px solid var(--portal-line); background: #fff; color: var(--portal-ink); font: 10px/1 var(--portal-mono); }
.source-card__actions .source-card__confirmation { display: inline-flex; align-items: center; gap: 6px; color: var(--portal-muted); font: 9px/1.35 var(--portal-mono); }
.source-card__actions .source-card__confirmation > span { min-height: auto; padding: 0; border: 0; text-transform: none; letter-spacing: 0; cursor: default; }
.source-card__actions button:disabled { color: #a1a1aa; cursor: not-allowed; }
.source-card__pipeline {
  display: grid;
  gap: 0;
  margin: 6px 0 0;
  padding: 0;
  list-style: none;
}
.source-card__pipeline li {
  position: relative;
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  align-items: start;
  gap: 10px;
  min-width: 0;
  min-height: 42px;
  padding-bottom: 10px;
  color: var(--portal-muted);
  font: 10px/1.4 var(--portal-mono);
}
.source-card__pipeline li:not(:last-child)::after {
  position: absolute;
  z-index: 0;
  top: 24px;
  bottom: 0;
  left: 11px;
  width: 1px;
  background: var(--portal-line);
  content: "";
}
.source-card__pipeline-marker {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border: 1px solid var(--portal-line);
  background: #fff;
  color: var(--portal-muted);
  font: 9px/1 var(--portal-mono);
  font-variant-numeric: tabular-nums;
  transition: border-color .18s ease, background-color .18s ease, color .18s ease;
}
.source-card__pipeline-content { display: grid; gap: 3px; padding-top: 4px; }
.source-card__pipeline-content b { color: inherit; font: 600 11px/1.35 var(--portal-sans); }
.source-card__pipeline-content small { color: var(--portal-muted); font: 9px/1.45 var(--portal-mono); overflow-wrap: anywhere; }
.source-card__pipeline li[data-state="complete"] { color: #16754a; }
.source-card__pipeline li[data-state="complete"] .source-card__pipeline-marker {
  border-color: #16754a;
  background: #16754a;
  color: transparent;
}
.source-card__pipeline li[data-state="complete"] .source-card__pipeline-marker::after {
  position: absolute;
  top: 4px;
  left: 8px;
  width: 5px;
  height: 10px;
  border: solid #fff;
  border-width: 0 1px 1px 0;
  transform: rotate(45deg);
  content: "";
}
.source-card__pipeline li[data-state="active"],
.source-card__pipeline li[data-state="paused"],
.source-card__pipeline li[data-state="partial"] { color: var(--portal-ink); }
.source-card__pipeline li[data-state="active"] .source-card__pipeline-marker,
.source-card__pipeline li[data-state="paused"] .source-card__pipeline-marker,
.source-card__pipeline li[data-state="partial"] .source-card__pipeline-marker {
  border-color: var(--portal-orange);
  background: var(--portal-ink);
  color: #fff;
}
.source-card__pipeline li[data-state="active"] .source-card__pipeline-content { animation: source-pipeline-arrival .24s cubic-bezier(.16, 1, .3, 1); }
.source-card__pipeline li[data-state="failed"] { color: #b42318; }
.source-card__pipeline li[data-state="failed"] .source-card__pipeline-marker { border-color: #b42318; background: #b42318; color: transparent; }
.source-card__pipeline li[data-state="failed"] .source-card__pipeline-marker::after {
  position: absolute;
  top: 5px;
  left: 10px;
  width: 1px;
  height: 12px;
  background: #fff;
  transform: rotate(45deg);
  content: "";
}
.source-card__pipeline li[data-state="failed"] .source-card__pipeline-marker::before {
  position: absolute;
  top: 5px;
  left: 10px;
  width: 1px;
  height: 12px;
  background: #fff;
  transform: rotate(-45deg);
  content: "";
}
@keyframes source-pipeline-arrival { from { opacity: .68; clip-path: inset(0 10% 0 0); } }
.source-card progress { width: 100%; height: 4px; margin-top: 4px; border: 0; appearance: none; background: #e5e7eb; accent-color: var(--portal-orange); }
.source-card progress::-webkit-progress-bar { background: #e5e7eb; }
.source-card progress::-webkit-progress-value { background: var(--portal-orange); }
.source-card progress::-moz-progress-bar { background: var(--portal-orange); }
.source-card__status { padding-top: 9px; border-top: 1px solid var(--portal-line); color: var(--portal-muted); font: 10px/1.55 var(--portal-mono); overflow-wrap: anywhere; white-space: pre-line; }
.source-card details { border-top: 1px solid var(--portal-line); }
.source-card details summary {
  display: flex;
  align-items: center;
  gap: 7px;
  padding-top: 8px;
  cursor: pointer;
  font: 10px/1.4 var(--portal-mono);
  letter-spacing: .08em;
  text-transform: uppercase;
}
.source-card details summary::before { width: 6px; height: 6px; background: #a1a1aa; content: ""; }
.source-card[data-status="running"] details summary::before,
.source-card[data-status="queued"] details summary::before { background: var(--portal-orange); }
.source-card[data-status="completed"] details summary::before { background: #16754a; }
.source-card[data-status="failed"] details summary::before { background: #b42318; }
.source-card__log-count { margin-left: auto; color: var(--portal-muted); font-variant-numeric: tabular-nums; }
.source-card pre {
  max-height: 220px;
  margin: 8px 0 0;
  overflow: auto;
  padding: 12px;
  background: #202228;
  color: #f5f5f4;
  white-space: pre-wrap;
  font: 10px/1.5 var(--portal-mono);
}
.source-card pre.is-streaming { animation: source-log-arrival .24s cubic-bezier(.16, 1, .3, 1); }
@keyframes source-log-arrival { from { opacity: .72; clip-path: inset(0 0 12% 0); } }
.directory-certifications { display: grid; gap: 4px; min-width: 150px; }
.directory-certifications > * { display: grid; gap: 2px; color: inherit; font: 11px/1.35 var(--portal-mono); text-decoration-color: var(--portal-orange); text-underline-offset: 2px; }
.directory-certifications small { color: var(--portal-muted); font: 9px/1.25 var(--portal-mono); }
.directory-certifications .directory-certifications__notice { max-width: 260px; color: var(--portal-orange); }
.source-card__metrics { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin: 0; }
.source-card__metrics dt { color: var(--portal-muted); font: 9px/1.3 var(--portal-mono); text-transform: uppercase; }
.source-card__metrics dd { margin: 3px 0 0; overflow-wrap: anywhere; font-size: 12px; }
@media (max-width: 900px) {
  .source-state-map-scroll { padding-inline: 12px; }
  .source-state-tabs { margin-inline: 0; }
  .source-card__metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .parser-portal--admin .portal-nav { position: static; display: grid; gap: 10px; }
  .parser-portal--admin .portal-nav__links { width: 100%; flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; }
  .parser-portal--admin .portal-nav__links a { flex: 0 0 auto; }
  .source-console__header,.source-state-panel__title,.source-card__head { display: grid; }
}

@media (prefers-reduced-motion: reduce) {
  .source-card__pipeline li[data-state="active"] .source-card__pipeline-content,
  .source-card pre.is-streaming { animation: none; }
}
