/* ============================================================
   THE SIGNAL — page-local styles (W2)
   Leans on design-system.css; only Signal-specific pieces live here.
   Tokens/components reused: .folio .fig .gauge .bar .track .fill
   .field .state .loading-rule .cta .cta2 .kicker .deck .mono
   Red budget preserved: red = links, one data series (Automating bars), accents.
   ============================================================ */

.sig-state { margin-bottom:8px; }
.sig-h { font-family:var(--font-display); font-weight:700; font-size:44px; line-height:1; letter-spacing:-.025em; margin-top:8px; }
.masthead h1 a { color:inherit; }
.masthead h1 a span { color:var(--red); }

/* ---------- INTAKE ---------- */
.intake { display:grid; grid-template-columns:1fr 380px; gap:56px; margin-top:40px; align-items:start; }
.intake-lead { padding-right:12px; }
/* Let the deck fill the lead column rather than capping mid-column — the intake
   is already two-column (form on the right), so the left measure earns its width. */
.intake-lead .deck { max-width:none; }
.intake-form { border-left:1px solid var(--hair); padding-left:40px; }
.sig-privacy { font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:var(--faint); margin-top:16px; line-height:1.6; }

/* Combobox / autocomplete */
.combo { position:relative; }
.combo-list { list-style:none; position:absolute; z-index:20; left:0; right:0; top:100%;
  background:var(--paper); border:1px solid var(--ink); border-top:none; max-height:280px; overflow-y:auto; box-shadow:0 8px 24px var(--shadow); }
.combo-list li { padding:11px 14px; font-family:var(--font-body); font-size:14px; cursor:pointer; border-top:1px solid var(--hair2); display:flex; justify-content:space-between; gap:12px; align-items:baseline; }
.combo-list li:first-child { border-top:none; }
.combo-list li .opt-title { font-weight:600; }
.combo-list li .opt-soc { font-family:var(--font-mono); font-size:10px; color:var(--faint); letter-spacing:.04em; }
.combo-list li[aria-selected="true"], .combo-list li:hover { background:var(--paper2); }
.combo-list li[aria-selected="true"] .opt-title { color:var(--red); }

/* Last-report shortcut */
.lastreport { border:1px solid var(--hair); padding:14px 16px; margin-top:24px; display:flex; flex-direction:column; gap:6px; }
.lastreport .lr-label { font-family:var(--font-mono); font-size:9.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--mut); }
.lr-btn { text-align:left; background:none; border:none; cursor:pointer; padding:0; font-family:var(--font-body); font-weight:600; font-size:15px; color:var(--ink); border-bottom:2px solid var(--red); align-self:flex-start; padding-bottom:2px; }
.lr-btn:hover { color:var(--red); }

/* ---------- LOADING ---------- */
.loading-wrap { margin-top:44px; max-width:520px; }
.loading-msg { font-family:var(--font-body); font-weight:700; font-size:18px; letter-spacing:-.01em; }

/* ---------- NO-MATCH ---------- */
.nomatch { margin-top:36px; max-width:720px; }
.chips { list-style:none; display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
.chips li button { cursor:pointer; background:var(--paper); border:1px solid var(--hair); color:var(--ink);
  font-family:var(--font-body); font-weight:600; font-size:13.5px; padding:9px 16px; transition:.2s; display:flex; gap:10px; align-items:baseline; }
.chips li button:hover { border-color:var(--ink); color:var(--red); }
.chips li button .chip-soc { font-family:var(--font-mono); font-size:10px; color:var(--faint); letter-spacing:.04em; }
.nomatch .ctarow { margin-top:28px; }

/* ---------- REPORT: gauge figure ---------- */
.sig-fig { margin-top:28px; }
.gauge-caption { font-size:14px; color:var(--ink2); line-height:1.55; margin-top:14px; max-width:540px; }
.gauge-caption b { font-style:normal; }
.gauge b { font-variant-numeric:tabular-nums; }

/* ---------- REPORT: task groups ---------- */
.groups { margin-top:28px; display:grid; grid-template-columns:1fr 1fr 1fr; gap:0; border-top:1px solid var(--rule); }
.group { border-left:1px solid var(--hair); padding:22px 26px 26px; }
.group:first-child { border-left:none; padding-left:0; }
.group:last-child { padding-right:0; }
.group-head { display:flex; justify-content:space-between; align-items:baseline; border-bottom:2px solid var(--rule); padding-bottom:8px; margin-bottom:6px; }
.group-name { font-family:var(--font-display); font-weight:700; font-size:15px; letter-spacing:.02em; text-transform:uppercase; }
.group-share { font-family:var(--font-mono); font-size:12px; color:var(--mut); font-variant-numeric:tabular-nums; }
.group-blurb { font-size:12.5px; color:var(--mut); line-height:1.5; margin:8px 0 16px; }
.group .bar .lbl { font-size:12.5px; align-items:baseline; gap:10px; }
.group .bar .lbl span:first-child { line-height:1.35; }
.group .bar .lbl span:last-child { font-variant-numeric:tabular-nums; white-space:nowrap; }
.group-empty { font-size:13px; color:var(--mut); }
.show-all { margin-top:14px; background:none; border:none; cursor:pointer; padding:0;
  font-family:var(--font-body); font-weight:600; font-size:12px; letter-spacing:.02em; color:var(--ink); border-bottom:2px solid var(--red); padding-bottom:2px; }
.show-all:hover { color:var(--red); }
/* one data series in red (Automating), the rest ink / faint — red budget */
.group[data-kind="automating"] .fill { background:var(--red); }
.group[data-kind="transforming"] .fill { background:var(--ink); }
.group[data-kind="durable"] .fill { background:var(--faint); }
.groups-note { font-size:13.5px; color:var(--ink2); line-height:1.6; margin-top:20px; max-width:720px; }

/* ---------- REPORT: adjacent paths ---------- */
.adjacent { margin-top:28px; display:grid; grid-template-columns:1fr 1fr 1fr; gap:0; }
.adj-card { border-left:1px solid var(--hair); padding:2px 26px 6px; }
.adj-card:first-child { border-left:none; padding-left:0; }
.adj-card .adj-exp { font-family:var(--font-display); font-weight:700; font-size:22px; color:var(--red); font-variant-numeric:tabular-nums; }
.adj-card .adj-exp small { font-family:var(--font-mono); font-weight:400; font-size:9.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--mut); display:block; }
.adj-card h4 { font-family:var(--font-display); font-weight:700; font-size:18px; letter-spacing:-.01em; margin:12px 0 6px; line-height:1.15; }
.adj-card .adj-wage { font-family:var(--font-mono); font-size:11px; color:var(--ink2); }
.adj-card .adj-link { font-family:var(--font-body); font-weight:600; font-size:12.5px; border-bottom:2px solid var(--red); display:inline-block; margin-top:12px; padding-bottom:2px; background:none; border-left:none; border-right:none; border-top:none; cursor:pointer; color:var(--ink); }
.adj-card .adj-link:hover { color:var(--red); }
.adjacent-note { font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:var(--faint); margin-top:18px; line-height:1.6; }
.adjacent-empty { font-size:14px; color:var(--mut); margin-top:8px; }

/* ---------- REPORT: wage / outlook strip ---------- */
.wagestrip { margin-top:28px; display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); }
.wage-cell { padding:20px 22px; border-left:1px solid var(--hair2); }
.wage-cell:first-child { border-left:none; padding-left:0; }
.wage-cell .wc-label { font-family:var(--font-body); font-weight:700; font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--mut); }
.wage-cell .wc-val { font-family:var(--font-display); font-weight:700; font-size:26px; letter-spacing:-.02em; margin-top:8px; font-variant-numeric:tabular-nums; line-height:1.05; }
.wage-cell .wc-val.wc-text { font-size:18px; line-height:1.2; }
.wage-cell .wc-sub { font-size:12px; color:var(--ink2); margin-top:4px; line-height:1.4; }
.wage-cell .src { font-family:var(--font-mono); font-size:9px; letter-spacing:.05em; color:var(--faint); text-transform:uppercase; display:block; margin-top:8px; line-height:1.5; }

/* ---------- REPORT: narrative (editable) ---------- */
.narrative { margin-top:28px; }
.narr-tools { display:flex; justify-content:space-between; align-items:baseline; gap:16px; margin-bottom:10px; flex-wrap:wrap; }
.narr-label { font-family:var(--font-mono); font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--mut); }
.narr-edit { width:100%; min-height:150px; resize:vertical; border:1px solid var(--hair); background:var(--paper2); color:var(--ink);
  font-family:var(--font-body); font-size:16.5px; line-height:1.6; padding:20px 22px; }
.narr-edit:focus { outline:none; border-color:var(--ink); }
.narr-why { font-size:13px; color:var(--mut); line-height:1.55; margin-top:12px; border-left:2px solid var(--hair); padding-left:14px; }
.narr-why .narr-why-k { font-family:var(--font-mono); font-style:normal; font-size:9.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--faint); display:block; margin-bottom:4px; }
.narr-fail { font-size:15px; color:var(--ink2); line-height:1.55; border-left:2px solid var(--hair); padding-left:16px; }

/* ---------- REPORT: CTA band + restart + sources ---------- */
.sig-cta-band { border:1px solid var(--rule); margin-top:40px; display:grid; grid-template-columns:1fr auto; gap:32px; align-items:center; padding:30px 34px; }
.sig-cta-band .kicker { margin-bottom:10px; }
.sig-cta-band .sig-h { font-size:26px; margin-top:0; }
.sig-cta-band .deck { font-size:15px; margin-top:10px; max-width:620px; }
.report-restart { margin-top:20px; }

.sources { margin-top:24px; border-top:1px solid var(--hair); }
.source-row { padding:16px 0; border-bottom:1px solid var(--hair2); display:grid; grid-template-columns:1fr auto; gap:16px; align-items:baseline; }
.source-row .src-name { font-family:var(--font-body); font-weight:700; font-size:14px; }
.source-row .src-meta { font-family:var(--font-mono); font-size:10px; letter-spacing:.05em; color:var(--mut); text-transform:uppercase; margin-top:3px; }
.source-row .src-used { font-size:12.5px; color:var(--ink2); margin-top:4px; }
.source-row .src-link { font-family:var(--font-body); font-weight:600; font-size:12px; border-bottom:2px solid var(--red); padding-bottom:2px; white-space:nowrap; }
.source-row .src-link:hover { color:var(--red); }
.sources-foot { font-family:var(--font-mono); font-size:10px; letter-spacing:.05em; text-transform:uppercase; color:var(--faint); margin-top:16px; }
.sources-foot a { border-bottom:1px solid var(--red); }

/* ---------- INTAKE PATHS (title / compose / JD switcher) ---------- */
.intake-paths { margin-top:28px; }
.intake-paths .paths-label { font-family:var(--font-mono); font-size:9.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--mut); display:block; margin-bottom:10px; }
.intake-paths ul { list-style:none; display:flex; flex-wrap:wrap; gap:8px; }
.path-btn { cursor:pointer; background:var(--paper); border:1px solid var(--hair); color:var(--ink);
  font-family:var(--font-body); font-weight:600; font-size:13px; padding:8px 14px; transition:.15s; }
.path-btn:hover { border-color:var(--ink); }
.path-btn.is-active { border-color:var(--ink); color:var(--red); border-bottom-width:2px; }

/* ---------- COMPOSE ---------- */
.compose { margin-top:32px; }
.compose-lead .deck { max-width:640px; }
.compose-grid { display:grid; grid-template-columns:1fr 1fr; gap:44px; margin-top:32px; align-items:start; }
.compose-results { list-style:none; margin-top:14px; max-height:420px; overflow-y:auto; border-top:1px solid var(--hair); }
.compose-res-item { display:flex; justify-content:space-between; gap:14px; align-items:baseline; padding:12px 0; border-bottom:1px solid var(--hair2); }
.compose-res-item .cr-text { font-size:13.5px; line-height:1.4; }
.cr-add { cursor:pointer; background:none; border:1px solid var(--hair); color:var(--ink); white-space:nowrap;
  font-family:var(--font-body); font-weight:600; font-size:11.5px; padding:5px 12px; transition:.15s; }
.cr-add:hover:not(:disabled) { border-color:var(--ink); color:var(--red); }
.cr-add.is-added, .cr-add:disabled { color:var(--faint); border-color:var(--hair2); cursor:default; }
.compose-empty-res { font-size:13px; color:var(--mut); padding:14px 0; }

.compose-picked { border-left:1px solid var(--hair); padding-left:40px; }
.picked-head { display:flex; justify-content:space-between; align-items:baseline; border-bottom:2px solid var(--rule); padding-bottom:8px; }
.picked-label { font-family:var(--font-body); font-weight:700; font-size:14px; letter-spacing:.02em; text-transform:uppercase; }
.picked-count { font-size:12px; color:var(--mut); font-variant-numeric:tabular-nums; }
.picked-list { list-style:none; margin-top:12px; }
.picked-item { display:flex; justify-content:space-between; gap:14px; align-items:baseline; padding:11px 0; border-bottom:1px solid var(--hair2); }
.picked-item .pi-text { font-size:13px; line-height:1.4; }
.pi-remove { cursor:pointer; background:none; border:none; padding:0; white-space:nowrap;
  font-family:var(--font-body); font-weight:600; font-size:11.5px; color:var(--ink); border-bottom:2px solid var(--red); padding-bottom:1px; }
.pi-remove:hover { color:var(--red); }
.picked-empty { font-size:12.5px; color:var(--mut); margin-top:14px; }
.compose-name { margin-top:24px; }
.compose .ctarow { margin-top:22px; display:flex; gap:14px; align-items:center; flex-wrap:wrap; }

/* ---------- JD ---------- */
.jd { margin-top:32px; max-width:760px; }
.jd-lead .deck { max-width:640px; }
.jd .field { margin-top:24px; }
.jd-textarea { width:100%; resize:vertical; border:1px solid var(--hair); background:var(--paper2); color:var(--ink);
  font-size:13px; line-height:1.55; padding:16px 18px; }
.jd-textarea:focus { outline:none; border-color:var(--ink); }
.jd-meta { display:flex; justify-content:space-between; gap:16px; margin-top:8px; flex-wrap:wrap; }
.jd-count { font-variant-numeric:tabular-nums; color:var(--mut); }
.jd-error { font-size:13.5px; color:var(--red); margin-top:12px; }
.jd .ctarow { margin-top:22px; display:flex; gap:14px; align-items:center; flex-wrap:wrap; }

/* ---------- CONFIRM ---------- */
.confirm { margin-top:28px; }
.confirm-lead .deck { max-width:640px; }
.confirm-body { display:grid; grid-template-columns:1fr 300px; gap:44px; margin-top:28px; align-items:start; border-top:1px solid var(--rule); padding-top:24px; }
.folio-lite { font-family:var(--font-mono); font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--mut); border-bottom:1px solid var(--hair); padding-bottom:8px; margin-bottom:14px; }
.confirm-task-list { list-style:none; counter-reset:ctask; }
.confirm-task-list li { counter-increment:ctask; position:relative; padding:12px 0 12px 34px; border-bottom:1px solid var(--hair2); font-size:14px; line-height:1.45; }
.confirm-task-list li::before { content:counter(ctask); position:absolute; left:0; top:12px; font-family:var(--font-mono); font-size:12px; color:var(--red); font-weight:500; }
.confirm-wage { border:1px solid var(--hair); padding:20px 22px; }
.confirm-wage .cw-label { font-family:var(--font-body); font-weight:700; font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--mut); }
.confirm-wage .cw-val { font-family:var(--font-display); font-weight:700; font-size:24px; letter-spacing:-.02em; margin-top:8px; font-variant-numeric:tabular-nums; line-height:1.1; }
.confirm-wage .cw-src { font-family:var(--font-mono); font-size:9px; letter-spacing:.05em; color:var(--faint); text-transform:uppercase; margin-top:10px; }
.confirm-industry { font-size:10px; letter-spacing:.05em; text-transform:uppercase; color:var(--faint); margin-top:16px; line-height:1.6; }
.confirm-actions { display:flex; gap:14px; flex-wrap:wrap; margin-top:28px; align-items:center; }
.confirm-nearby-wrap { margin-top:28px; border-top:1px solid var(--rule); padding-top:20px; }
.confirm-nearby-list { list-style:none; display:grid; grid-template-columns:1fr 1fr 1fr; gap:0; }
.confirm-nearby-list li { border-left:1px solid var(--hair); }
.confirm-nearby-list li:first-child { border-left:none; }
.confirm-nearby-btn { width:100%; text-align:left; cursor:pointer; background:none; border:none; padding:14px 20px;
  display:flex; flex-direction:column; gap:6px; }
.confirm-nearby-list li:first-child .confirm-nearby-btn { padding-left:0; }
.confirm-nearby-btn .cn-title { font-family:var(--font-body); font-weight:700; font-size:14.5px; line-height:1.2; color:var(--ink); border-bottom:2px solid var(--red); padding-bottom:2px; align-self:flex-start; }
.confirm-nearby-btn:hover .cn-title { color:var(--red); }
.confirm-nearby-btn .cn-wage { font-family:var(--font-mono); font-size:10.5px; color:var(--ink2); }
.confirm-nearby-empty { font-size:13px; color:var(--mut); }

/* ---------- RESPONSIVE ---------- */
@media (max-width:820px){
  .intake, .groups, .adjacent, .sig-cta-band,
  .compose-grid, .confirm-body, .confirm-nearby-list { grid-template-columns:1fr !important; }
  .intake-form { border-left:none; padding-left:0; border-top:1px solid var(--rule); margin-top:32px; padding-top:28px; }
  .intake-lead { padding-right:0; }
  .sig-h { font-size:34px; }
  .group, .adj-card { border-left:none; padding-left:0; padding-right:0; border-top:1px solid var(--hair2); padding-top:18px; margin-top:6px; }
  .group:first-child, .adj-card:first-child { border-top:none; }
  .wagestrip { grid-template-columns:1fr 1fr; }
  .wage-cell { border-left:none; padding-left:0; border-top:1px solid var(--hair2); }
  .wage-cell:nth-child(even){ padding-left:22px; border-left:1px solid var(--hair2); }
  .wage-cell:nth-child(1),.wage-cell:nth-child(2){ border-top:none; }
  .sig-cta-band { text-align:left; }
  .compose-picked { border-left:none; padding-left:0; border-top:1px solid var(--rule); margin-top:32px; padding-top:26px; }
  .confirm-nearby-list li { border-left:none; border-top:1px solid var(--hair2); }
  .confirm-nearby-list li:first-child { border-top:none; }
  .confirm-nearby-list li:first-child .confirm-nearby-btn,
  .confirm-nearby-btn { padding-left:0; padding-right:0; }
}
@media (max-width:640px){
  .sig-h { font-size:28px; }
  .wagestrip { grid-template-columns:1fr; }
  .wage-cell, .wage-cell:nth-child(even) { border-left:none; padding-left:0; border-top:1px solid var(--hair2); }
  .wage-cell:first-child { border-top:none; }
  .source-row { grid-template-columns:1fr; }
}
@media (max-width:400px){
  .sig-h { font-size:24px; }
}
