:root {
  /* brand palette — Design to Align style guide (Documents/ClaudeCode/design-to-align/web/src/styles/tokens.css) */
  --navy: #0D2B45;
  --blue: #105C8D;
  --teal-deep: #008B95;
  --teal: #21A29D;
  --green: #43A447;
  --green-bright: #8EC63F;

  /* neutrals (the brand guide doesn't specify UI chrome) */
  --bg: #F4F6F8;
  --bg-raised: #FFFFFF;
  --bg-sunken: #EAEEF2;
  --border: #DCE3EA;
  --border-soft: #E9EEF2;
  --ink: var(--navy);
  --ink-soft: #5B6472;
  --ink-faint: #5F6B7A;
  --danger: #B23B2E;
  /* warning tone: not in the brand guide (which has no amber), kept
     minimal and warm-neutral so it doesn't compete with the palette */
  --warn: #B07A17;
  --warn-bg: #FBF1DD;

  --gradient-progress: linear-gradient(90deg, var(--navy), var(--blue), var(--teal), var(--green));

  --font-heading: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-body: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-accent: 'Lora', Georgia, 'Times New Roman', serif;
  --mono: "SFMono-Regular", Consolas, Menlo, monospace;

  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --shadow-card: 0 1px 2px rgba(13, 43, 69, 0.06), 0 1px 1px rgba(13, 43, 69, 0.04);
  --shadow-raised: 0 12px 32px rgba(13, 43, 69, 0.14);
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 14px;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 { font-family: var(--font-heading); font-weight: 700; letter-spacing: -0.01em; }

a { color: var(--teal-deep); text-decoration: none; }
a:hover { text-decoration: underline; }

header.topbar {
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 20px; background: var(--bg-raised); border-bottom: 1px solid var(--border-soft);
}
header.topbar nav a { margin-right: 16px; color: var(--ink-soft); font-weight: 600; font-size: 13px; }
header.topbar nav a.active { color: var(--navy); }

.rep-form { display: flex; gap: 6px; align-items: center; color: var(--ink-soft); }
.rep-form input { width: 140px; }

main { padding: 20px; max-width: 1400px; margin: 0 auto; }

input, select, textarea, button {
  background: var(--bg-raised); color: var(--ink); border: 1px solid var(--border);
  border-radius: var(--radius-sm); padding: 6px 8px; font-size: 13px; font-family: inherit;
}
input:focus, select:focus, textarea:focus {
  outline: none; border-color: var(--teal); box-shadow: 0 0 0 3px rgba(33, 162, 157, 0.15);
}
button {
  cursor: pointer; font-family: var(--font-heading); font-weight: 600;
  border-color: var(--border); transition: background-color 120ms ease, border-color 120ms ease;
}
button.primary { background: var(--navy); border-color: var(--navy); color: #fff; }
button.primary:hover { background: #0a2036; }
button.danger { background: var(--danger); border-color: var(--danger); color: white; }
button:disabled { opacity: 0.45; cursor: not-allowed; }

.filters {
  display: flex; flex-wrap: wrap; gap: 8px; align-items: end;
  background: var(--bg-raised); border: 1px solid var(--border-soft); border-radius: var(--radius-md);
  padding: 12px; margin-bottom: 14px; box-shadow: var(--shadow-card);
}
.filters label { display: flex; flex-direction: column; gap: 3px; font-size: 11px; font-weight: 700; letter-spacing: 0.03em; text-transform: uppercase; color: var(--ink-soft); }

table {
  width: 100%; border-collapse: collapse; background: var(--bg-raised);
  border: 1px solid var(--border-soft); border-radius: var(--radius-md); overflow: hidden;
  box-shadow: var(--shadow-card);
}
th, td { padding: 8px 10px; border-bottom: 1px solid var(--border-soft); text-align: left; vertical-align: top; }
th {
  background: var(--bg-sunken); font-size: 11px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.04em; color: var(--ink-faint); position: sticky; top: 0;
}
th a { color: var(--ink-faint); }
tr:hover td { background: var(--bg-sunken); }

/* sortable column headers — click to sort, mirrors design-to-align's .entity-table th.is-sortable */
th.is-sortable { cursor: pointer; user-select: none; }
th.is-sortable a { display: flex; align-items: center; gap: 4px; color: var(--ink-faint); }
th.is-sortable:hover, th.is-sortable:hover a { color: var(--teal-deep); }
th.is-sortable.is-active a { color: var(--navy); }
.sort-arrow { font-size: 9px; }

.badge { display: inline-block; padding: 2px 8px; border-radius: 20px; font-size: 10.5px; font-weight: 700; letter-spacing: 0.03em; text-transform: uppercase; }
/* Status colors run navy -> blue -> teal -> green along the pipeline
   (same progression as --gradient-progress); Closed is red, Disqualified
   grey. Class names are status_slug()'d -- several statuses have spaces. */
.badge.status-new, .status-select.status-new { background: var(--bg-sunken); color: var(--ink-soft); }
.badge.status-researching, .status-select.status-researching { background: rgba(13, 43, 69, 0.10); color: var(--navy); }
.badge.status-attempting-contact, .status-select.status-attempting-contact { background: var(--warn-bg); color: var(--warn); }
.badge.status-consultation-scheduled, .status-select.status-consultation-scheduled { background: rgba(16, 92, 141, 0.14); color: var(--blue); }
.badge.status-consultation-in-progress, .status-select.status-consultation-in-progress { background: rgba(16, 92, 141, 0.22); color: var(--blue); }
.badge.status-sending-proposal, .status-select.status-sending-proposal { background: rgba(33, 162, 157, 0.14); color: var(--teal-deep); }
.badge.status-onboarding, .status-select.status-onboarding { background: rgba(67, 164, 71, 0.14); color: var(--green); }
.badge.status-active-client, .status-select.status-active-client { background: var(--green); color: #fff; }
.badge.status-closed, .status-select.status-closed { background: #F4DEDA; color: var(--danger); }
.badge.status-disqualified, .status-select.status-disqualified { background: var(--bg-sunken); color: var(--ink-faint); }

/* inline status-change select in the triage table, colored to match the current status badge */
.status-select { border-radius: 20px; font-size: 11px; font-weight: 700; padding: 3px 20px 3px 8px; border: 1px solid var(--border); background: var(--bg-raised); }
.status-select[class*="status-"]:not(.status-new) { border-color: transparent; }

.entity-tag { font-size: 10.5px; padding: 2px 7px; border-radius: var(--radius-sm); background: var(--bg-sunken); color: var(--ink-soft); font-weight: 600; }
.entity-tag.responsible { background: var(--warn-bg); color: var(--warn); }

.related-chip {
  display: inline-block; margin: 2px 4px 2px 0; padding: 2px 9px; border-radius: 20px;
  background: rgba(16, 92, 141, 0.1); color: var(--blue); font-size: 12px; border: 1px solid rgba(16, 92, 141, 0.25);
}

.score-cell .score-number { font-weight: 800; font-size: 15px; font-family: var(--font-heading); color: var(--teal-deep); }
.score-breakdown { font-size: 11px; color: var(--ink-faint); margin-top: 2px; }

.stale { color: var(--warn); }
.stale.very { color: var(--danger); font-weight: 600; }

.panel { background: var(--bg-raised); border: 1px solid var(--border-soft); border-radius: var(--radius-lg); padding: 16px; margin-bottom: 16px; box-shadow: var(--shadow-card); }
.panel h2, .panel h3 { margin-top: 0; }

.compliance-banner {
  background: #F4DEDA; border: 1px solid var(--danger); color: #7A2A20;
  padding: 12px 16px; border-radius: var(--radius-md); margin-bottom: 16px; font-weight: 700;
}
.compliance-banner.warn { background: var(--warn-bg); border-color: var(--warn); color: #7A5610; }

.related-block { background: rgba(16, 92, 141, 0.06); border: 1px solid rgba(16, 92, 141, 0.2); border-radius: var(--radius-md); padding: 12px; margin-bottom: 16px; }
.related-block h3 { margin: 0 0 8px 0; color: var(--blue); }

.grid-2 { display: grid; grid-template-columns: 1.3fr 1fr; gap: 16px; }

.vertical-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.vertical-card {
  display: block; background: var(--bg-raised); border: 1px solid var(--border-soft); border-radius: var(--radius-lg);
  padding: 24px; color: var(--ink); transition: border-color .15s, transform .15s; box-shadow: var(--shadow-card);
}
.vertical-card:hover { border-color: var(--teal); transform: translateY(-2px); text-decoration: none; }
.vertical-card h2 { color: var(--navy); }
.vertical-card p { color: var(--ink-soft); font-size: 13px; }
.vertical-card-count { margin-top: 14px; font-weight: 800; font-family: var(--font-heading); color: var(--teal-deep); }

.provenance { font-size: 11px; color: var(--ink-faint); }

.bulk-bar {
  position: sticky; bottom: 0; background: var(--bg-raised); border: 1px solid var(--border-soft);
  border-radius: var(--radius-md); padding: 10px 14px; margin-top: 10px; display: none; gap: 10px; align-items: center;
  box-shadow: var(--shadow-raised);
}
.bulk-bar.visible { display: flex; }

.source-link { font-family: var(--mono); font-size: 12px; }

.muted { color: var(--ink-soft); }
.mt0 { margin-top: 0; }
.small { font-size: 12px; }

form.inline { display: inline; }

.pull-ok { color: var(--green); font-weight: 600; }
.pull-error { color: var(--danger); font-weight: 600; }
.pull-blocked { color: var(--warn); font-weight: 600; }

/* =====================================================================
   Lead detail redesign (AI Training vertical only) -- "ld2" prefix,
   scoped entirely to lead_detail_ai_training.html. Every colour/size
   here is a value already defined above; see design_handoff_lead_detail/
   README.md §7 for the source mapping.
   ===================================================================== */

.ld2 { margin: -20px; background: var(--bg); }
.ld2-inner { max-width: 1180px; margin: 0 auto; padding: 0 40px 44px; }

.ld2-contextbar {
  display: flex; align-items: center; justify-content: space-between;
  padding: 12px 24px; background: var(--bg-raised); border-bottom: 1px solid var(--border-soft);
  font-size: 13px; font-weight: 600; color: var(--ink-soft);
}
.ld2-contextbar .ld2-nav { display: flex; gap: 18px; align-items: center; }
.ld2-contextbar .ld2-sep { color: var(--border); }
.ld2-contextbar a { color: var(--teal-deep); }
.ld2-contextbar a.is-disabled { color: var(--border); pointer-events: none; }
.ld2-contextbar .ld2-position { color: var(--navy); }

.ld2-header { display: flex; gap: 32px; align-items: flex-start; justify-content: space-between; padding: 36px 0 0; }
.ld2-identity { display: flex; flex-direction: column; gap: 12px; }
.ld2-name { margin: 0; font-size: 42px; font-weight: 800; letter-spacing: -0.02em; line-height: 1.1; color: var(--navy); font-family: var(--font-heading); }
.ld2-description { font-size: 16px; color: var(--ink); line-height: 1.5; max-width: 640px; }
.ld2-meta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 15px; color: var(--ink-soft); }
.ld2-meta .ld2-sep { color: var(--border); }
.ld2-frontdoor { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.ld2-frontdoor a { font-size: 14px; font-weight: 600; }
.ld2-frontdoor .ld2-phone { font-size: 14px; color: var(--navy); }
.ld2-frontdoor .ld2-unresearched { font-size: 14px; color: var(--ink-faint); }

.ld2-priority-block { display: flex; flex-direction: column; gap: 10px; align-items: flex-end; min-width: 280px; }
.ld2-priority-card {
  display: flex; flex-direction: column; align-items: flex-end; gap: 2px; padding: 20px 24px;
  background: var(--bg-raised); border: 1.5px solid var(--teal); border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
}
.ld2-priority-kicker { font-size: 11.5px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--teal-deep); }
.ld2-priority-score-row { display: flex; align-items: baseline; gap: 8px; }
.ld2-priority-score { font-size: 46px; font-weight: 800; letter-spacing: -0.02em; color: var(--teal-deep); line-height: 1; font-family: var(--font-heading); }
.ld2-priority-of { font-size: 15px; font-weight: 600; color: var(--ink-soft); }
.ld2-priority-rank { font-size: 13.5px; color: var(--ink-soft); }
.ld2-status-row { display: flex; gap: 8px; align-items: center; }
.ld2-status-since { font-size: 13px; color: var(--ink-soft); }

.ld2-verdict { background: var(--bg-raised); border: 1px solid var(--border-soft); border-radius: var(--radius-lg); padding: 28px 32px; box-shadow: var(--shadow-card); margin-top: 24px; }
.ld2-verdict-title, .ld2-panel-title { font-family: var(--font-accent); font-style: italic; font-size: 28px; line-height: 1.35; color: var(--navy); margin: 0 0 6px; }
.ld2-verdict-sub, .ld2-panel-sub { font-size: 13.5px; color: var(--ink-soft); margin: 0 0 22px; }
.ld2-verdict-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.ld2-tile {
  display: flex; flex-direction: column; gap: 10px; padding: 20px;
  background: var(--bg); border: 1px solid var(--border-soft); border-radius: var(--radius-md);
  border-top: 4px solid var(--blue);
}
.ld2-tile.is-growth { border-top-color: var(--green); }
.ld2-tile.is-size { border-top-color: var(--teal-deep); }
.ld2-tile.is-negative { border-top-color: var(--danger); }
.ld2-tile-kicker { font-size: 11.5px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--blue); }
.ld2-tile.is-growth .ld2-tile-kicker { color: var(--green); }
.ld2-tile.is-size .ld2-tile-kicker { color: var(--teal-deep); }
.ld2-tile.is-negative .ld2-tile-kicker { color: var(--danger); }
.ld2-tile-body { font-size: 17px; font-weight: 600; line-height: 1.4; color: var(--navy); }
.ld2-tile-caption { font-size: 13px; color: var(--ink-soft); }

.ld2-verdict-footer { display: flex; gap: 12px; align-items: center; margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--border-soft); }
.ld2-footer-pill { font-size: 10.5px; font-weight: 700; letter-spacing: 0.03em; text-transform: uppercase; padding: 3px 9px; border-radius: 20px; flex: none; white-space: nowrap; }
.ld2-footer-pill.tone-clear { background: rgba(67, 164, 71, 0.14); color: var(--green); }
.ld2-footer-pill.tone-warn { background: #F4DEDA; color: var(--danger); }
.ld2-verdict-footer-text { font-size: 13.5px; color: var(--ink-soft); }

.ld2-tabbar { display: flex; gap: 0; padding: 0 0; margin-top: 28px; border-bottom: 1px solid var(--border); background: var(--bg); overflow-x: auto; }
.ld2-tab { padding: 16px 22px; font-size: 15.5px; font-weight: 600; color: var(--ink-soft); border-bottom: 3px solid transparent; background: none; border-left: none; border-right: none; border-top: none; white-space: nowrap; }
.ld2-tab.is-active { font-weight: 700; color: var(--navy); border-bottom: 3px solid var(--teal); }
.ld2-tab-count { font-size: 11.5px; font-weight: 700; padding: 2px 7px; border-radius: 20px; margin-left: 4px; background: var(--bg-sunken); color: var(--ink-faint); }
.ld2-tab.is-active .ld2-tab-count { background: rgba(33, 162, 157, 0.14); color: var(--teal-deep); }

.ld2-tabpanels { padding: 32px 0 0; display: flex; flex-direction: column; gap: 20px; }
.ld2-panel { background: var(--bg-raised); border: 1px solid var(--border-soft); border-radius: var(--radius-lg); padding: 28px 32px 24px; box-shadow: var(--shadow-card); }
.ld2-panel.is-empty { border: 1px dashed var(--border); box-shadow: none; }
.ld2-panel-eyebrow { font-size: 11.5px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-faint); margin-bottom: 14px; }
.ld2-panel-headrow { display: flex; justify-content: space-between; align-items: flex-start; gap: 32px; }
.ld2-panel-headrow .ld2-panel-title, .ld2-panel-headrow .ld2-panel-sub { margin-bottom: 0; }
.ld2-panel-actions { display: flex; gap: 8px; flex: none; }

.ld2-btn { font-family: var(--font-body); font-size: 13.5px; padding: 11px 16px; border-radius: var(--radius-sm); cursor: pointer; transition: background-color 120ms ease, border-color 120ms ease; }
.ld2-btn-solid { font-weight: 700; border: 1px solid var(--navy); background: var(--navy); color: #fff; }
.ld2-btn-solid:hover { background: #0a2036; }
.ld2-btn-outline { font-weight: 600; border: 1px solid var(--border); background: var(--bg-raised); color: var(--navy); }
.ld2-btn-outline:hover { border-color: var(--navy); }
.ld2-btn-warn { font-weight: 600; border: 1px solid var(--warn); background: var(--bg-raised); color: var(--warn); }
.ld2-btn-small { padding: 10px 14px; }

.ld2-contact-row { display: grid; grid-template-columns: 300px 1fr 210px; gap: 24px; padding: 20px 0; border-top: 1px solid var(--border-soft); align-items: start; }
.ld2-contact-row.is-first { border-top: 1px solid var(--border); }
.ld2-contact-who { display: flex; flex-direction: column; gap: 5px; }
.ld2-contact-name { font-size: 19px; font-weight: 700; letter-spacing: -0.01em; color: var(--navy); }
.ld2-contact-title { font-size: 14.5px; color: var(--ink-soft); }
.ld2-provenance-pill { font-size: 10.5px; font-weight: 700; letter-spacing: 0.03em; text-transform: uppercase; padding: 3px 9px; border-radius: 20px; align-self: flex-start; margin-top: 3px; }
.ld2-provenance-pill.origin-provider_lookup { background: rgba(33, 162, 157, 0.14); color: var(--teal-deep); }
.ld2-provenance-pill.origin-rep_entered { background: var(--bg-sunken); color: var(--ink-faint); }
.ld2-provenance-pill.origin-company_published { background: rgba(16, 92, 141, 0.12); color: var(--blue); }
.ld2-provenance-caption { font-size: 11.5px; color: var(--ink-faint); line-height: 1.5; }

.ld2-contact-reach { display: flex; flex-direction: column; gap: 8px; }
.ld2-contact-phone { font-size: 16px; font-weight: 600; color: var(--navy); }
.ld2-contact-email { font-size: 15px; color: var(--navy); }
.ld2-contact-email.is-missing { color: var(--ink-faint); }
.ld2-frontdoor-note { font-size: 13px; color: var(--ink-soft); line-height: 1.5; margin-top: 2px; }

.ld2-permission-line { display: flex; gap: 8px; align-items: flex-start; margin-top: 2px; }
.ld2-permission-pill { font-size: 10.5px; font-weight: 700; letter-spacing: 0.03em; text-transform: uppercase; padding: 3px 9px; border-radius: 20px; flex: none; white-space: nowrap; }
.ld2-permission-pill.state-clear { background: rgba(67, 164, 71, 0.14); color: var(--green); }
.ld2-permission-pill.state-never_checked { background: var(--warn-bg); color: var(--warn); }
.ld2-permission-pill.state-flagged { background: #F4DEDA; color: var(--danger); }
.ld2-permission-text { font-size: 13px; color: var(--ink-soft); line-height: 1.5; }

.ld2-contact-actions { display: flex; flex-direction: column; gap: 8px; }
.ld2-edit-remove { font-size: 13px; color: var(--teal-deep); font-weight: 600; background: none; border: none; padding: 0; display: flex; gap: 6px; }
.ld2-edit-remove button { background: none; border: none; padding: 0; font: inherit; color: inherit; cursor: pointer; }
.ld2-edit-remove button:hover { text-decoration: underline; }

.ld2-add-contact-row { display: grid; grid-template-columns: 300px 1fr 210px; gap: 24px; padding: 20px 0 6px; border-top: 1px solid var(--border); align-items: start; }
.ld2-add-contact-col { display: flex; flex-direction: column; gap: 8px; }
.ld2-add-contact-col.is-offset { padding-top: 24px; }
.ld2-field { padding: 11px 12px; border: 1px solid var(--border); border-radius: var(--radius-sm); font-size: 14.5px; background: var(--bg-raised); color: var(--navy); width: 100%; font-family: inherit; }
.ld2-field::placeholder { color: #8A94A2; }
.ld2-field-note { font-size: 12.5px; color: var(--ink-faint); line-height: 1.5; }

.ld2-panel-footer { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-top: 16px; padding-top: 18px; border-top: 1px solid var(--border-soft); }
.ld2-panel-footer-text { font-size: 14px; color: var(--ink-soft); }
.ld2-panel-footer-text strong { color: var(--navy); font-weight: 700; }

.ld2-metrics-row { display: flex; gap: 36px; margin-top: 22px; padding: 22px 0; border-top: 1px solid var(--border-soft); border-bottom: 1px solid var(--border-soft); }
.ld2-metric { flex: 1; display: flex; flex-direction: column; gap: 4px; }
.ld2-metric-number { font-size: 32px; font-weight: 800; letter-spacing: -0.02em; font-family: var(--font-heading); }
.ld2-metric-number.tone-fresh { color: var(--green); }
.ld2-metric-number.tone-stale { color: var(--warn); }
.ld2-metric-number.tone-very-stale { color: var(--danger); }
.ld2-metric-number.tone-neutral { color: var(--navy); }
.ld2-metric-caption { font-size: 14px; color: var(--ink-soft); line-height: 1.5; }

.ld2-guardrail { display: flex; gap: 12px; padding: 14px 18px; margin-top: 18px; background: var(--bg); border-radius: var(--radius-md); border-left: 3px solid var(--teal); font-size: 14px; line-height: 1.55; color: var(--ink-soft); }
.ld2-guardrail strong { color: var(--navy); font-weight: 700; }

.ld2-evidence-table { display: flex; flex-direction: column; gap: 0; margin-top: 22px; }
.ld2-evidence-head { display: grid; grid-template-columns: 170px 1fr 120px 80px; gap: 16px; padding: 9px 0; border-bottom: 1px solid var(--border); font-size: 11px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--ink-faint); }
.ld2-evidence-row { display: grid; grid-template-columns: 170px 1fr 120px 80px; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--border-soft); align-items: start; }
.ld2-signal-col { display: flex; flex-direction: column; gap: 5px; }
.ld2-signal-pill { font-size: 11px; font-weight: 700; padding: 3px 8px; border-radius: 20px; align-self: flex-start; }
.ld2-signal-pill.lane-ai_curiosity { background: rgba(16, 92, 141, 0.12); color: var(--blue); }
.ld2-signal-pill.lane-growth_signal { background: rgba(67, 164, 71, 0.14); color: var(--green); }
.ld2-signal-pill.lane-exclusion { background: #F4DEDA; color: var(--danger); }
.ld2-signal-source { font-size: 12.5px; color: var(--ink-soft); }
.ld2-signal-detail { font-size: 15px; line-height: 1.5; color: var(--navy); }
.ld2-signal-explain { font-size: 13px; color: var(--ink-soft); margin-top: 4px; }
.ld2-signal-date { font-size: 13.5px; color: var(--navy); }
.ld2-signal-link { font-size: 13.5px; font-weight: 600; }

.ld2-score-rows { display: flex; flex-direction: column; gap: 0; }
.ld2-score-row { display: grid; grid-template-columns: 70px 1fr; gap: 20px; padding: 13px 0; border-bottom: 1px solid var(--border-soft); align-items: baseline; }
.ld2-score-points { font-size: 21px; font-weight: 800; font-family: var(--font-heading); }
.ld2-score-points.tone-positive { color: var(--teal-deep); }
.ld2-score-points.tone-bonus { color: var(--green); }
.ld2-score-points.tone-zero { color: var(--ink-faint); }
.ld2-score-points.tone-penalty { color: var(--danger); }
.ld2-score-sentence { font-size: 15px; line-height: 1.5; color: var(--navy); }
.ld2-score-sentence.tone-zero { color: var(--ink-soft); }
.ld2-score-counterfactual { color: var(--ink-soft); }

.ld2-activity-row { display: grid; grid-template-columns: 150px 1fr; gap: 24px; padding: 16px 0; border-top: 1px solid var(--border-soft); align-items: start; }
.ld2-activity-row.is-first { border-top: 1px solid var(--border); }
.ld2-activity-date-col { display: flex; flex-direction: column; gap: 4px; }
.ld2-activity-date { font-size: 14px; font-weight: 600; color: var(--navy); }
.ld2-activity-kind-pill { font-size: 10.5px; font-weight: 700; letter-spacing: 0.03em; text-transform: uppercase; padding: 3px 9px; border-radius: 20px; align-self: flex-start; }
.ld2-activity-kind-pill.kind-call { background: rgba(16, 92, 141, 0.12); color: var(--blue); }
.ld2-activity-kind-pill.kind-lookup { background: rgba(33, 162, 157, 0.14); color: var(--teal-deep); }
.ld2-activity-kind-pill.kind-status { background: var(--bg-sunken); color: var(--ink-faint); }
.ld2-activity-kind-pill.kind-pipeline { background: var(--bg-sunken); color: var(--ink-faint); }
.ld2-activity-body { font-size: 16px; line-height: 1.5; color: var(--navy); }
.ld2-activity-detail { font-size: 14px; color: var(--ink-soft); margin-top: 3px; }

.ld2-notes-header { display: flex; justify-content: space-between; align-items: baseline; gap: 24px; }
.ld2-notes-kicker { font-size: 11.5px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-faint); }
.ld2-notes-meta { font-size: 12.5px; color: var(--ink-faint); }
.ld2-notes-textarea { width: 100%; padding: 16px 18px; margin-top: 12px; border: 1px solid var(--border); border-radius: var(--radius-md); font-size: 16px; line-height: 1.6; background: var(--bg-raised); color: var(--navy); font-family: inherit; resize: vertical; }

@media (max-width: 1000px) {
  .ld2-verdict-tiles { grid-template-columns: 1fr; }
  .ld2-contact-row, .ld2-add-contact-row { grid-template-columns: 1fr; }
  .ld2-evidence-head, .ld2-evidence-row { grid-template-columns: 1fr; }
  .ld2-header { flex-direction: column; }
  .ld2-priority-block { align-items: flex-start; width: 100%; }
}

/* =====================================================================
   Lead list (triage queue) redesign -- "lq" prefix, scoped entirely to
   leads_table_ai_training.html. See design_handoff_lead_list/README.md
   §7 for the token mapping; nothing here is a new colour.
   ===================================================================== */

.lq-page { display: flex; flex-direction: column; gap: 20px; }
.lq-header { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; flex-wrap: wrap; }
.lq-title { margin: 0; font-size: 32px; font-weight: 800; letter-spacing: -0.02em; color: var(--navy); font-family: var(--font-heading); }
.lq-sub { font-size: 15px; color: var(--ink-soft); margin-top: 4px; }
.lq-header-actions { display: flex; gap: 8px; }

.lq-btn { font-family: var(--font-body); font-size: 13.5px; font-weight: 600; padding: 10px 16px; border-radius: var(--radius-sm); border: 1px solid var(--border); background: var(--bg-raised); color: var(--navy); cursor: pointer; transition: background-color 120ms ease, border-color 120ms ease; }
.lq-btn:hover { border-color: var(--navy); }
.lq-btn-small { padding: 8px 14px; font-size: 13px; }

.lq-status-strip { background: var(--bg-raised); border: 1px solid var(--border-soft); border-radius: var(--radius-lg); padding: 22px 26px; box-shadow: var(--shadow-card); }
.lq-status-headrow { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 14px; }
.lq-status-kicker { font-size: 11.5px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-faint); }
.lq-status-summary { font-size: 13px; color: var(--ink-soft); }
.lq-status-bar { display: flex; height: 10px; border-radius: 20px; overflow: hidden; background: var(--bg-sunken); }
.lq-status-legend { display: flex; gap: 28px; margin-top: 14px; flex-wrap: wrap; }
.lq-legend-item { display: flex; gap: 8px; align-items: baseline; color: inherit; text-decoration: none; }
.lq-legend-item:hover { text-decoration: none; }
.lq-legend-item:hover .lq-legend-caption { text-decoration: underline; }
.lq-legend-dot { width: 9px; height: 9px; border-radius: 20px; display: inline-block; }
.lq-legend-count { font-size: 20px; font-weight: 800; font-family: var(--font-heading); color: var(--navy); }
.lq-legend-caption { font-size: 13.5px; color: var(--ink-soft); }

.lq-views-row { display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; }
.lq-chips { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.lq-chip { font-size: 13.5px; font-weight: 600; padding: 9px 16px; border-radius: 20px; background: var(--bg-raised); border: 1px solid var(--border); color: var(--navy); text-decoration: none; display: inline-flex; gap: 6px; align-items: baseline; }
.lq-chip:hover { text-decoration: none; border-color: var(--navy); }
.lq-chip .lq-chip-count { color: var(--ink-soft); }
.lq-chip.is-active { background: var(--navy); border-color: var(--navy); color: #fff; font-weight: 700; }
.lq-chip.is-active .lq-chip-count { color: #fff; opacity: .7; }
.lq-chip.is-warn { background: var(--warn-bg); border: 1px solid var(--warn); color: var(--warn); }
.lq-chip.is-warn .lq-chip-count { color: var(--warn); opacity: .8; }
.lq-chip-saved { border-style: dashed; color: var(--ink-faint); cursor: pointer; }

.lq-search-row { display: flex; gap: 8px; align-items: center; }
.lq-search-field { padding: 10px 14px; border: 1px solid var(--border); border-radius: var(--radius-sm); font-size: 14px; background: var(--bg-raised); color: var(--navy); width: 220px; font-family: inherit; }
.lq-search-field::placeholder { color: var(--ink-faint); }
.lq-more-filters-badge { display: inline-block; margin-left: 4px; font-size: 10.5px; font-weight: 700; padding: 1px 6px; border-radius: 20px; background: rgba(33,162,157,0.14); color: var(--teal-deep); }
.lq-filters-note { font-size: 12.5px; color: var(--ink-faint); }
.lq-more-filters-panel { margin-top: 4px; }
.lq-more-filters-panel[open] summary { margin-bottom: 10px; }
.lq-more-filters-panel summary { list-style: none; cursor: pointer; }
.lq-more-filters-panel summary::-webkit-details-marker { display: none; }

.lq-table-wrap { background: var(--bg-raised); border: 1px solid var(--border-soft); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-card); }
.lq-table-head, .lq-row { display: grid; grid-template-columns: 44px 300px 1fr 150px 150px 170px; gap: 20px; align-items: start; }
.lq-table-head { padding: 12px 24px; background: var(--bg-sunken); border-bottom: 1px solid var(--border); font-size: 11px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--ink-faint); }
.lq-table-head a { color: var(--ink-faint); }
.lq-table-head .is-active a, .lq-table-head .is-active { color: var(--navy); }
.lq-table-head .sort-arrow { font-size: 9px; }
.lq-row { padding: 18px 24px; border-bottom: 1px solid var(--border-soft); }
.lq-row:last-child { border-bottom: none; }
.lq-row:hover { background: var(--bg-sunken); }
/* Attention rows are already tinted --bg-sunken; no distinct hover step
   exists without a new colour (none is available -- see handoff §7's
   "no new colours" rule), so hover is dropped here rather than invented. */
.lq-row.is-attention:hover { background: var(--bg-sunken); }
.lq-row.is-closed { opacity: .55; }
/* Briefly marks the row a status change just landed back on -- applied
   by app.js's initScrollRestore() after it restores scroll position, and
   removed after 2s. Not :target/a URL fragment: a fragment's native
   scroll-into-view fights the exact-pixel restore (handoff follow-up:
   "stay exactly where it was", not just "land near the row"). */
.lq-row.lq-row-just-changed { background: var(--bg-sunken); box-shadow: inset 3px 0 0 var(--teal); transition: background .3s, box-shadow .3s; }
.lq-row-checkbox { padding-top: 3px; }
.lq-row-checkbox input { width: 14px; height: 14px; border: 1px solid var(--border); border-radius: 3px; accent-color: var(--teal); }

.lq-who { display: flex; flex-direction: column; gap: 3px; }
.lq-who-name { font-size: 17px; font-weight: 700; letter-spacing: -0.01em; color: var(--teal-deep); }
.lq-who-meta, .lq-who-industry { font-size: 13.5px; color: var(--ink-soft); }
.lq-who-industry { font-size: 13px; }
.lq-size-unconfirmed { color: var(--warn); font-weight: 600; }
.lq-suppressed-pill { font-size: 10.5px; font-weight: 700; letter-spacing: 0.03em; text-transform: uppercase; padding: 3px 9px; border-radius: 20px; background: #F4DEDA; color: var(--danger); align-self: flex-start; }

.lq-why { display: flex; flex-direction: column; gap: 7px; }
.lq-why-sentence { font-size: 15px; line-height: 1.45; color: var(--navy); }
.lq-why-sentence .lq-highlight { color: var(--danger); font-weight: 600; }
.lq-why-pills { display: flex; gap: 6px; flex-wrap: wrap; }
.lq-pill { font-size: 11px; font-weight: 700; padding: 3px 8px; border-radius: 20px; }
.lq-pill.tone-ai { background: rgba(16,92,141,0.12); color: var(--blue); }
.lq-pill.tone-growth { background: rgba(67,164,71,0.14); color: var(--green); }
.lq-pill.tone-danger { background: #F4DEDA; color: var(--danger); }
.lq-pill.tone-warn { background: var(--warn-bg); color: var(--warn); }
.lq-pill.tone-neutral { font-weight: 600; background: var(--bg-sunken); color: var(--ink-faint); }

.lq-priority { display: flex; flex-direction: column; gap: 5px; }
.lq-priority-row { display: flex; align-items: baseline; gap: 6px; }
.lq-priority-score { font-size: 24px; font-weight: 800; letter-spacing: -0.02em; color: var(--teal-deep); font-family: var(--font-heading); }
.lq-priority-score.has-penalty { color: var(--ink-faint); }
.lq-priority-rank { font-size: 12.5px; color: var(--ink-soft); }
.lq-priority-track { height: 5px; border-radius: 20px; background: var(--bg-sunken); overflow: hidden; }
.lq-priority-fill { height: 100%; }
.lq-priority-fill.tone-top { background: var(--teal-deep); }
.lq-priority-fill.tone-mid { background: var(--teal); }
.lq-priority-fill.tone-bottom { background: var(--border); }

.lq-next { display: flex; flex-direction: column; gap: 3px; }
.lq-next-line1 { font-size: 14px; font-weight: 600; color: var(--navy); }
.lq-next-line1.tone-plain { font-weight: 400; color: var(--ink-soft); }
.lq-next-line1.tone-warn { color: var(--warn); }
.lq-next-line2 { font-size: 13px; color: var(--ink-soft); }

.lq-pagination { display: flex; justify-content: center; align-items: center; gap: 12px; padding-top: 4px; }

@media (max-width: 1000px) {
  .lq-table-head { display: none; }
  .lq-row { grid-template-columns: 1fr; gap: 8px; }
}

/* --- pcg-leads-crm additions: PCG brand mark + standalone login page ---
   Deliberately isolated at the end of the file, on top of the untouched
   Design to Align token/layout system above -- same layout/styles as the
   source app, per the request, just with Private Capital Group's own
   mark instead of a text wordmark, and a login page the source app
   (which delegates auth elsewhere) never needed. */
.topbar-brand { display: flex; align-items: center; margin-right: 24px; }
.topbar-brand img { display: block; height: 28px; width: auto; }

.login-page {
  min-height: 100vh; display: flex; align-items: center; justify-content: center;
  padding: 20px; max-width: none;
}
.login-card {
  width: 100%; max-width: 360px; background: var(--bg-raised); border: 1px solid var(--border-soft);
  border-radius: var(--radius-lg); padding: 32px 28px; text-align: center;
}
.login-logo { height: 48px; width: auto; margin-bottom: 20px; }
.login-card form { text-align: left; }

/* User menu -- top-right dropdown (name -> Admin option for owner/admin
   roles + Sign out), replacing the old plain "Signed in as ..." text +
   inline Sign out button. */
.user-menu { position: relative; }
.user-menu-trigger {
  list-style: none; cursor: pointer; display: flex; align-items: center; gap: 6px;
  padding: 6px 10px; border-radius: var(--radius-sm); font-weight: 600; font-size: 13px; color: var(--ink);
}
.user-menu-trigger::-webkit-details-marker { display: none; }
.user-menu-trigger:hover { background: var(--bg-sunken); }
.user-menu-caret { color: var(--ink-soft); font-size: 11px; }
.user-menu[open] .user-menu-trigger { background: var(--bg-sunken); }
.user-menu-panel {
  position: absolute; top: calc(100% + 6px); right: 0; min-width: 190px; z-index: 20;
  background: var(--bg-raised); border: 1px solid var(--border-soft); border-radius: var(--radius-sm);
  box-shadow: var(--shadow-card); padding: 6px; display: flex; flex-direction: column; gap: 2px;
}
.user-menu-email { font-size: 11.5px; color: var(--ink-soft); padding: 6px 10px 8px; border-bottom: 1px solid var(--border-soft); margin-bottom: 4px; word-break: break-all; }
.user-menu-panel a, .user-menu-panel .user-menu-signout {
  display: block; width: 100%; text-align: left; padding: 7px 10px; border-radius: 4px;
  border: none; background: transparent; font-size: 13px; font-family: inherit; cursor: pointer; color: var(--ink);
}
.user-menu-panel a:hover, .user-menu-panel .user-menu-signout:hover { background: var(--bg-sunken); text-decoration: none; }
.user-menu-panel form { margin: 0; }

/* ---- CSV/XML lead import ---- */
.import-error { background: #F4DEDA; color: var(--danger); border-radius: var(--radius-lg); padding: 10px 12px; margin: 10px 0; font-weight: 600; }
.import-note { background: var(--warn-bg); color: var(--ink); border-radius: var(--radius-lg); padding: 10px 12px; margin: 10px 0; }
.import-warn { color: var(--warn); font-weight: 600; }
.import-upload, .import-defaults, .import-actions { display: flex; gap: 12px; align-items: end; flex-wrap: wrap; }
.import-defaults label { min-width: 200px; }
.import-defaults input[type=text] { width: 280px; }
.import-map-table select { min-width: 220px; }
.import-map-table tr.import-mapped td:first-child { border-left: 3px solid var(--teal); }
.import-counts { display: flex; gap: 24px; flex-wrap: wrap; margin: 14px 0; }
.import-count-num { font-size: 22px; font-weight: 800; }
.import-filter { display: flex; gap: 14px; align-items: center; margin: 4px 0 10px; }
.import-filter a.active { font-weight: 800; text-decoration: underline; }
.import-status, .import-outcome { display: inline-block; padding: 2px 8px; border-radius: 20px; font-size: 10.5px; font-weight: 700; letter-spacing: 0.03em; text-transform: uppercase; background: var(--bg-sunken); color: var(--ink-soft); }
.import-status-committed, .import-outcome-new { background: rgba(67, 164, 71, 0.14); color: var(--green); }
.import-status-previewed, .import-outcome-merged { background: rgba(16, 92, 141, 0.14); color: var(--blue); }
.import-status-failed, .import-outcome-skipped { background: #F4DEDA; color: var(--danger); }
.import-status-undone { background: var(--bg-sunken); color: var(--ink-faint); }
.lead-tag { display: inline-block; padding: 1px 6px; border-radius: 10px; font-size: 10px; font-weight: 700; letter-spacing: 0.02em; background: var(--bg-sunken); color: var(--ink-soft); margin-left: 4px; white-space: nowrap; }
.lead-tag-review { background: var(--warn-bg); color: var(--warn); }
.lead-tag-inbound { background: rgba(33, 162, 157, 0.14); color: var(--teal-deep); }
.import-template-help { margin-top: 12px; }
.import-template-help ul { margin: 6px 0 0 18px; padding: 0; }
.lq-phone-match { font-size: 11.5px; font-weight: 600; color: var(--teal-deep); margin-top: 2px; }
.ld2-lookup { margin-top: 6px; font-size: 11.5px; }
.ld2-lookup summary { cursor: pointer; color: var(--teal-deep); font-weight: 600; }
.ld2-lookup-links { margin: 6px 0; }
.ld2-lookup-form { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.ld2-lookup-form .ld2-field { width: auto; min-width: 140px; }

/* ---- consultation scheduling ---- */
.sched-specialists { display: flex; gap: 8px; flex-wrap: wrap; }
.sched-chip { border-radius: 20px; padding: 6px 14px; }
.sched-chip.active { background: var(--navy); color: #fff; border-color: var(--navy); }
.sched-days { display: flex; gap: 14px; overflow-x: auto; padding-bottom: 6px; }
.sched-day { min-width: 110px; display: flex; flex-direction: column; gap: 4px; }
.sched-day-label { font-weight: 700; font-size: 12px; margin-bottom: 4px; }
.sched-slot { display: block; }
.sched-slot input { display: none; }
.sched-slot span { display: block; text-align: center; padding: 5px 8px; border: 1px solid var(--border); border-radius: 6px; font-size: 12px; cursor: pointer; }
.sched-slot input:checked + span { background: var(--teal-deep); color: #fff; border-color: var(--teal-deep); }
.sched-radio { display: block; margin: 4px 0; }
.sched-new { display: flex; gap: 8px; margin: 4px 0 4px 22px; flex-wrap: wrap; }
.ld2-consult { padding: 8px 0; border-top: 1px solid var(--border-soft); }
.ld2-consult-actions { display: flex; gap: 12px; align-items: center; margin-top: 6px; flex-wrap: wrap; font-size: 12px; }
