/* EABD Sourcing — dashboard panes and the /sourcing/ page.
 * Theme tokens with fallbacks (the billing.css pattern); every rule is scoped
 * to sourcing classes, and state rules sit next to their base rules. */
.src, .src-public {
	--src-surface: var(--bgColor-surface, #fff);
	--src-sunken:  var(--bgColor-surface-sunken, #f5f6f9);
	--src-fg:      var(--fgColor-default, #2b3040);
	--src-strong:  var(--fgColor-strong, #11142a);
	--src-muted:   var(--fgColor-muted, #5b6272);
	--src-border:  var(--borderColor-default, #dde1e8);
	--src-subtle:  var(--borderColor-subtle, #eceef3);
	--src-accent:  var(--fgColor-accent, #0055c3);
	--src-accent-bg: var(--bgColor-accent-subtle, #e8f0fc);
	--src-accent-strong: var(--bgColor-accent-emphasis, #0b5cd5);
	--src-ok:      var(--fgColor-positive, #0a7a4b);
	--src-ok-bg:   var(--bgColor-positive-subtle, #e5f5ee);
	--src-warn:    var(--fgColor-prestige, #8a5a00);
	--src-warn-bg: var(--bgColor-prestige-subtle, #fdf3e1);
	--src-bad:     var(--fgColor-critical, #b3261e);
	--src-bad-bg:  var(--bgColor-critical-subtle, #fdecea);
	--src-radius:  var(--radius-md, 12px);
	--src-shadow:  var(--elevation-1, 0 1px 2px rgba(17, 20, 42, .08));
	color: var(--src-fg);
	font-variant-numeric: tabular-nums;
}
.src *, .src *::before, .src *::after, .src-public *, .src-public *::before, .src-public *::after { box-sizing: border-box; }

/* ── shared bits ─────────────────────────────────────────────────────── */
.src-tabs { margin: 0 0 16px; }
.src-tabs a { display: inline-flex; align-items: center; min-height: 2rem; padding: 0 12px; border-radius: var(--radius-sm, 8px); font-size: .875rem; font-weight: 500; color: var(--src-muted); text-decoration: none; }
.src-tabs a:hover { color: var(--src-strong); }
.src-tabs a[aria-current] { background: var(--src-surface); color: var(--src-strong); box-shadow: var(--src-shadow); }
.src-chip { display: inline-flex; align-items: center; gap: 4px; height: 1.375rem; padding: 0 8px; border-radius: 999px; background: var(--src-sunken); color: var(--src-muted); font-size: .75rem; font-weight: 600; white-space: nowrap; }
.src-chip--open, .src-chip--q-submitted, .src-chip--q-viewed { background: var(--src-accent-bg); color: var(--src-accent); }
.src-chip--awarded, .src-chip--q-selected { background: var(--src-ok-bg); color: var(--src-ok); }
.src-chip--review, .src-chip--payment_pending, .src-chip--draft, .src-chip--q-draft, .src-chip--q-payment_pending, .src-chip--q-shortlisted { background: var(--src-warn-bg); color: var(--src-warn); }
.src-chip--rejected, .src-chip--q-declined, .src-chip--q-void, .src-chip--q-withdrawn { background: var(--src-bad-bg); color: var(--src-bad); }
.src-chip--product { background: var(--src-accent-bg); color: var(--src-accent); }
.src-chip--service { background: var(--src-ok-bg); color: var(--src-ok); }
.src-chip--direct { background: var(--src-accent-strong); color: #fff; }
.src-tag { display: inline-block; padding: 1px 6px; border-radius: 4px; background: var(--src-sunken); color: var(--src-muted); font-size: .6875rem; font-weight: 700; letter-spacing: .02em; text-transform: uppercase; vertical-align: middle; }
.src-tag--muted { opacity: .75; }
.src-note { margin: 0 0 14px; padding: 10px 14px; border-radius: var(--src-radius); border: 1px solid var(--src-border); background: var(--src-sunken); font-size: .875rem; }
.src-note--info { border-color: color-mix(in srgb, var(--src-accent) 30%, transparent); background: var(--src-accent-bg); }
.src-note--ok { border-color: color-mix(in srgb, var(--src-ok) 30%, transparent); background: var(--src-ok-bg); }
.src-note--warn { border-color: color-mix(in srgb, var(--src-warn) 35%, transparent); background: var(--src-warn-bg); }
ul.src-note { padding-left: 32px; }
.src-warn { color: var(--src-warn); font-weight: 600; }
.src-flag { display: inline-block; margin: 2px 6px 2px 0; padding: 2px 8px; border-radius: 6px; background: var(--src-sunken); color: var(--src-muted); font-size: .75rem; }
.src-flag--warn { background: var(--src-warn-bg); color: var(--src-warn); }
.src-more { text-align: center; margin-top: 16px; }
.src-side-note { font-size: .8125rem; }
.src-files { list-style: none; margin: 8px 0; padding: 0; }
.src-files li { display: flex; align-items: center; gap: 6px; padding: 4px 0; font-size: .875rem; }
.src-upload { cursor: pointer; }
.src-details { padding: 10px 12px; border-radius: 8px; background: var(--src-sunken); font-size: .9375rem; }
.src-details p { margin: 0 0 8px; }
.src-details p:last-child { margin: 0; }
.src-specs { list-style: none; margin: 6px 0; padding: 0; display: grid; gap: 2px; font-size: .875rem; }
.src-specs span { color: var(--src-muted); }
.src-facts { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 8px 0 0; padding: 0; font-size: .875rem; color: var(--src-muted); }
.src-facts--col { flex-direction: column; gap: 6px; }
.src-why { display: flex; align-items: flex-start; gap: 6px; margin: 10px 0 0; padding: 8px 10px; border-radius: 8px; background: var(--src-ok-bg); color: var(--src-ok); font-size: .875rem; }
.src-buyer { display: flex; align-items: center; gap: 12px; }
.src-buyer > div { display: flex; flex-direction: column; }
.src-buyer__icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--src-sunken); color: var(--src-muted); flex: none; }

/* ── lists ───────────────────────────────────────────────────────────── */
.src-list { list-style: none; margin: 0; padding: 0; border-radius: var(--src-radius); background: var(--src-surface); box-shadow: var(--src-shadow); overflow: hidden; }
.src-row { display: flex; align-items: center; gap: 12px 16px; padding: 14px 16px; border-bottom: 1px solid var(--src-subtle); }
.src-row:last-child { border-bottom: 0; }
.src-row.is-new { box-shadow: inset 3px 0 0 var(--src-accent-strong); }
.src-row__main { display: flex; flex-direction: column; gap: 3px; flex: 1 1 auto; min-width: 0; color: inherit; text-decoration: none; }
.src-row__main:hover strong { text-decoration: underline; }
.src-row__top { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.src-row__top strong { color: var(--src-strong); overflow-wrap: anywhere; }
.src-row__meta { font-size: .8125rem; }
.src-row__side { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; font-size: .8125rem; text-align: right; flex: none; }
.src-left { font-weight: 600; color: var(--src-warn); }
.src-listbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
.src-listbar .src-tabs { margin: 0; }
.src-listing-filter { margin: 0 0 14px; }
.src-listing-filter label { display: inline-flex; align-items: center; gap: 8px; }
.src-funnel { display: flex; gap: 14px; font-size: .8125rem; color: var(--src-muted); flex: none; }
.src-funnel b { color: var(--src-strong); font-size: 1rem; }
.src-funnel__q b { color: var(--src-accent); }
.src-funnel--big { flex-wrap: wrap; gap: 12px; margin: 0 0 18px; }
.src-funnel--big > span { display: flex; flex-direction: column; min-width: 130px; padding: 12px 16px; border-radius: var(--src-radius); background: var(--src-surface); box-shadow: var(--src-shadow); }
.src-funnel--big b { font-size: 1.5rem; line-height: 1.2; }
.src-funnel--big small { color: var(--src-muted); }
@media (max-width: 639.98px) { .src-row { flex-wrap: wrap; } .src-row__side { align-items: flex-start; text-align: left; } .src-funnel { flex-wrap: wrap; } }

/* ── request header and two-column pane ──────────────────────────────── */
.src-req-head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.src-req-head__num { margin: 0 0 4px; font-size: .8125rem; color: var(--src-muted); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.src-req-head__actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.src-mgr { display: grid; gap: 16px; }
@media (min-width: 1100px) { .src-mgr { grid-template-columns: minmax(0, 1fr) 340px; align-items: start; } }
.src-mgr__main { min-width: 0; display: grid; gap: 14px; align-content: start; }
.src-mgr__side { display: grid; gap: 14px; align-content: start; }
.src-mgr__bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; }
.src-sort { display: inline-flex; align-items: center; gap: 8px; }
.src-how { font-size: .8125rem; margin-left: auto; }
.src-line { padding: 10px 0; border-bottom: 1px solid var(--src-subtle); }
.src-line:last-of-type { border-bottom: 0; }
.src-line p { margin: 4px 0 0; }
.src-line--big { padding: 16px; border-bottom: 0; }
.src-line--big h2 { margin: 6px 0 2px; }
.src-paid { font-size: .8125rem; }

/* ── quote cards, compare and detail ─────────────────────────────────── */
.src-qcard { padding: 14px 16px; border-radius: var(--src-radius); background: var(--src-surface); box-shadow: var(--src-shadow); border: 1px solid transparent; }
.src-qcard + .src-qcard { margin-top: 12px; }
.src-qcard.is-selected { border-color: var(--src-ok); }
.src-qcard.is-declined { opacity: .7; }
.src-qcard__head { display: flex; align-items: center; gap: 10px; }
.src-qcard__head img, .src-qcard__ph { width: 40px; height: 40px; border-radius: 8px; object-fit: cover; flex: none; }
.src-qcard__ph { display: grid; place-items: center; background: var(--src-sunken); color: var(--src-muted); }
.src-qcard__head > div { display: flex; flex-direction: column; flex: 1 1 auto; min-width: 0; }
.src-qcard__head a { color: var(--src-strong); }
.src-qcard__head .eabd-mut { font-size: .8125rem; }
.src-qcard__chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0; }
.src-qcard__money { font-size: 1.125rem; }
.src-qcard__money strong { color: var(--src-strong); }
.src-qcard__money .eabd-mut { font-size: .8125rem; }
.src-qcard__terms { margin: 4px 0 0; font-size: .8125rem; }
.src-qcard__flags { margin-top: 8px; }
.src-qcard__acts { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 12px; }
.src-qcard__cmp { margin-left: auto; font-size: .8125rem; }
.src-compare { position: sticky; bottom: 12px; z-index: 5; }
.src-compare__bar { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-radius: var(--src-radius); background: var(--bgColor-inverse, #11142a); color: var(--fgColor-onInverse, #fff); box-shadow: var(--elevation-2, 0 8px 24px rgba(17, 20, 42, .2)); }
.src-compare__bar span { margin-right: auto; }
.src-dialog { width: min(980px, calc(100vw - 32px)); }
.src-cmp__t { width: 100%; border-collapse: collapse; font-size: .875rem; }
.src-cmp__t th, .src-cmp__t td { padding: 8px 10px; border-bottom: 1px solid var(--src-subtle); text-align: left; vertical-align: top; }
.src-cmp__t thead th { position: sticky; top: 0; background: var(--src-surface); color: var(--src-strong); }
.src-cmp__t tbody th { color: var(--src-muted); font-weight: 500; white-space: nowrap; }
.src-qd__lines { width: 100%; border-collapse: collapse; font-size: .875rem; margin: 10px 0; }
.src-qd__lines th, .src-qd__lines td { padding: 8px; border-bottom: 1px solid var(--src-subtle); text-align: left; vertical-align: top; }
.src-qd__lines tfoot th, .src-qd__lines tfoot td { border-bottom: 0; }
.src-qd__acts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--src-subtle); }
.src-analysis h2 { margin-top: 0; }
.src-spread { width: 100%; border-collapse: collapse; font-size: .8125rem; margin: 8px 0; }
.src-spread th, .src-spread td { padding: 6px 4px; border-bottom: 1px solid var(--src-subtle); text-align: right; }
.src-spread th[scope="row"], .src-spread thead th:first-child { text-align: left; font-weight: 500; }

/* ── wizard ──────────────────────────────────────────────────────────── */
.src-steps { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0 0 16px; padding: 0; counter-reset: none; }
.src-steps li { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px 6px 6px; border-radius: 999px; background: var(--src-sunken); color: var(--src-muted); font-size: .8125rem; font-weight: 600; }
.src-steps li span { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--src-surface); }
.src-steps li[aria-current] { background: var(--src-accent-strong); color: #fff; }
.src-steps li[aria-current] span { color: var(--src-accent-strong); }
.src-steps li.is-done { background: var(--src-ok-bg); color: var(--src-ok); }
.src-wiz__body { display: grid; gap: 16px; }
@media (min-width: 1024px) { .src-wiz__body { grid-template-columns: minmax(0, 1fr) 280px; align-items: start; } }
.src-wiz__main { display: grid; gap: 14px; min-width: 0; }
.src-wiz__side { position: sticky; top: calc(var(--dash-topbar-h, 64px) + 16px); }
@media (max-width: 1023.98px) { .src-wiz__side { position: static; order: -1; } }
.src-reach { padding: 16px; border-radius: var(--src-radius); background: var(--src-surface); box-shadow: var(--src-shadow); }
.src-reach__n { display: block; font-size: 2rem; font-weight: 800; line-height: 1.1; color: var(--src-accent); }
.src-reach__label { font-weight: 600; color: var(--src-strong); }
.src-reach__detail { display: flex; flex-direction: column; gap: 4px; margin-top: 8px; font-size: .8125rem; color: var(--src-muted); }
.src-wiz__bar { position: sticky; bottom: 0; z-index: 4; display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; margin-top: 16px; padding: 12px 16px; border-radius: var(--src-radius) var(--src-radius) 0 0; background: var(--src-surface); box-shadow: var(--elevation-2, 0 -4px 16px rgba(17, 20, 42, .08)); }
.src-wiz__bar .eabd-form-status { margin-right: auto; }
.src-what__box input { width: 100%; font-size: 1.0625rem; }
.src-both { margin-top: 10px; padding: 10px 12px; border-radius: 8px; background: var(--src-accent-bg); }
.src-both p { margin: 0 0 8px; }
.src-both__btns { display: flex; flex-wrap: wrap; gap: 8px; }
.src-ai { margin-top: 10px; }
.src-ai summary { cursor: pointer; display: inline-flex; align-items: center; gap: 6px; font-size: .875rem; font-weight: 600; color: var(--src-accent); }
.src-ai textarea { width: 100%; margin: 8px 0; }
.src-lcard { padding: 14px 16px; border-radius: var(--src-radius); background: var(--src-surface); box-shadow: var(--src-shadow); }
.src-lcard + .src-lcard { margin-top: 12px; }
.src-lcard__head { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.src-lcard__n { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--src-sunken); font-weight: 700; font-size: .8125rem; }
.src-lcard__rm { margin-left: auto; }
.src-cat__now { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; }
.src-refine h2 { display: flex; align-items: center; gap: 8px; margin-top: 0; }
.src-toggles { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0; }
.src .eabd-chip-check.is-zero span { opacity: .5; }
.src .eabd-chip-check small { margin-left: 4px; font-weight: 700; opacity: .8; }
.src-preview h3 { margin: 12px 0 6px; }
.src-preview__lines { margin: 0 0 10px; padding-left: 18px; }
.src-preview__lines li { margin: 4px 0; }
.src-send__reach { font-size: 1.0625rem; }
.src-send__reach b { color: var(--src-accent); font-size: 1.25rem; }
.src-send__fee strong { font-size: 1.25rem; color: var(--src-strong); }
.src-send__small { font-size: .8125rem; }
.src-upsell { max-width: 640px; }

/* ── composer ────────────────────────────────────────────────────────── */
.src-comp__grid { display: grid; gap: 16px; }
@media (min-width: 1100px) { .src-comp__grid { grid-template-columns: 320px minmax(0, 1fr); align-items: start; } .src-comp__req { position: sticky; top: calc(var(--dash-topbar-h, 64px) + 16px); max-height: calc(100vh - 120px); overflow: auto; } }
.src-comp__main { display: grid; gap: 14px; min-width: 0; }
.src-comp__main h1 { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.src-qgroup h3 { display: flex; align-items: center; gap: 8px; margin-top: 0; }
.src-qline { padding: 12px; border: 1px solid var(--src-subtle); border-radius: 10px; margin-bottom: 10px; }
.src-qline__head { display: flex; align-items: center; gap: 8px; }
.src-qline__head input { flex: 1 1 auto; min-width: 0; font-weight: 600; }
.src-qline__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px 12px; margin-top: 10px; }
.src-qline__grid label { display: flex; flex-direction: column; gap: 4px; font-size: .8125rem; color: var(--src-muted); }
.src-qline__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-top: 10px; }
.src-qline__foot input[type="text"] { flex: 1 1 220px; min-width: 0; }
.src-qline__total { margin-left: auto; color: var(--src-strong); }
.src-mile { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr) auto; gap: 8px; margin-bottom: 8px; }
.src-comp__total { margin-right: auto; font-size: 1rem; }
.src-comp__total strong { font-size: 1.25rem; color: var(--src-strong); }
@media (max-width: 639.98px) { .src-mile { grid-template-columns: 1fr 1fr; } .src-qline__total { margin-left: 0; } }

/* ── insights ────────────────────────────────────────────────────────── */
.src-kpis { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 12px; margin-bottom: 16px; }
.src-kpi { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; border-radius: var(--src-radius); background: var(--src-surface); box-shadow: var(--src-shadow); }
.src-kpi span { font-size: .8125rem; color: var(--src-muted); }
.src-kpi b { font-size: 1.5rem; color: var(--src-strong); }
.src-kpi small { font-size: .8125rem; color: var(--src-muted); font-weight: 500; }
.src-bars { display: flex; align-items: flex-end; gap: 3px; height: 160px; padding: 8px 0; border-bottom: 1px solid var(--src-border); overflow-x: auto; }
.src-bars__day { display: flex; align-items: flex-end; gap: 1px; height: 100%; flex: 1 0 12px; }
.src-bars__b { display: block; flex: 1; min-height: 1px; border-radius: 2px 2px 0 0; }
.src-bars__b--inv, .src-legend__inv::before { background: var(--src-accent-bg); }
.src-bars__b--req, .src-legend__req::before { background: var(--src-accent-strong); }
.src-bars__b--q, .src-legend__q::before { background: var(--src-ok); }
.src-legend { display: flex; flex-wrap: wrap; gap: 14px; font-size: .8125rem; color: var(--src-muted); }
.src-legend span::before { content: ""; display: inline-block; width: 10px; height: 10px; margin-right: 6px; border-radius: 2px; vertical-align: -1px; }

/* ── settings and overview card ─────────────────────────────────────── */
.src-settings { display: grid; gap: 14px; max-width: 760px; }
.src-settings h2 { margin-top: 0; }
.src-card { list-style: none; margin: 0 0 12px; padding: 0; display: grid; gap: 6px; }
.src-card strong { font-size: 1.125rem; color: var(--fgColor-strong, #11142a); margin-right: 4px; }
.src-card__cta { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }

/* ── public page ─────────────────────────────────────────────────────── */
.src-public { padding-block: 32px 64px; display: grid; gap: 40px; }
.src-public h1 { font-size: clamp(1.75rem, 4vw, 2.75rem); line-height: 1.15; margin: 0 0 12px; color: var(--src-strong); max-width: 20ch; }
.src-public__kicker { margin: 0 0 8px; font-weight: 700; color: var(--src-accent); text-transform: uppercase; letter-spacing: .06em; font-size: .8125rem; }
.src-public__lead { font-size: 1.125rem; max-width: 60ch; color: var(--src-muted); }
.src-public__steps ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); counter-reset: srcstep; }
.src-public__steps li { counter-increment: srcstep; padding: 18px; border-radius: var(--src-radius); background: var(--src-surface); box-shadow: var(--src-shadow); display: flex; flex-direction: column; gap: 6px; }
.src-public__steps li::before { content: counter(srcstep); display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--src-accent-bg); color: var(--src-accent); font-weight: 800; }
.src-public__steps span { color: var(--src-muted); font-size: .9375rem; }
.src-public__two { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.src-public__two > div { padding: 20px; border-radius: var(--src-radius); background: var(--src-sunken); }
.src-public__two h2 { margin-top: 0; }
.src-public__two li { margin: 6px 0; }
.src-public__prices { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); margin-bottom: 12px; }
.src-public__prices > div { display: flex; flex-direction: column; gap: 4px; padding: 18px; border-radius: var(--src-radius); background: var(--src-surface); box-shadow: var(--src-shadow); }
.src-public__prices strong { font-size: 1.75rem; color: var(--src-strong); }
.src-public__prices small { color: var(--src-muted); }
.src-public__faq details { padding: 12px 0; border-bottom: 1px solid var(--src-subtle); }
.src-public__faq summary { cursor: pointer; font-weight: 600; color: var(--src-strong); }
.src-public__faq p { margin: 8px 0 0; color: var(--src-muted); }

@media (prefers-reduced-motion: reduce) { .src * { transition: none !important; animation: none !important; } }
