/* v2.38.0 — Recorrido de punta a punta (barra de etapas, siguiente acción, esfuerzo vs real, enlaces cruzados). Solo tokens de tema. */
.flow-chain {
  --flow-done: var(--ok, #0f766e);
  --flow-cur: var(--brand, #C41E3A);
  --flow-warn-text: #92400e;
  margin: 0 0 1rem;
  padding: .55rem .75rem .65rem;
  background: var(--surface, #fff);
  border: 1px solid var(--border, #e8eaed);
  border-radius: 12px;
}
html[data-theme="dark"] .flow-chain { --flow-warn-text: var(--warn, #fbbf24); }
.flow-chain-kicker {
  margin: 0 0 .35rem;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--text-muted, #5f6368);
}
.flow-chain-list {
  display: flex;
  gap: .35rem;
  margin: 0;
  padding: 0 0 .15rem;
  list-style: none;
  overflow-x: auto;
  scroll-snap-type: x proximity;
  scrollbar-width: thin;
}
.flow-step { flex: 1 1 0; min-width: 7.4rem; scroll-snap-align: start; position: relative; }
.flow-step > a,
.flow-step > .flow-static {
  display: flex;
  gap: .45rem;
  align-items: flex-start;
  height: 100%;
  padding: .45rem .55rem;
  border-radius: 9px;
  border: 1px solid var(--border-soft, var(--border, #e8eaed));
  background: var(--surface-2, #f8f9fa);
  color: var(--text, #202124);
  text-decoration: none;
  line-height: 1.2;
}
.flow-step > a:hover,
.flow-step > a:focus-visible { border-color: var(--flow-cur); outline: none; box-shadow: 0 0 0 2px color-mix(in srgb, var(--flow-cur) 25%, transparent); }
.flow-dot {
  flex: 0 0 auto;
  width: .7rem;
  height: .7rem;
  margin-top: .2rem;
  border-radius: 50%;
  border: 2px solid var(--text-muted, #5f6368);
  background: transparent;
}
.flow-txt { display: flex; flex-direction: column; min-width: 0; }
.flow-txt strong { font-size: .82rem; }
.flow-detail { font-size: .74rem; color: var(--text-muted, #5f6368); overflow-wrap: anywhere; }
.flow-step.is-done .flow-dot { background: var(--flow-done); border-color: var(--flow-done); }
.flow-step.is-current .flow-dot { border-color: var(--flow-cur); background: color-mix(in srgb, var(--flow-cur) 30%, transparent); }
.flow-step.is-current > a,
.flow-step.is-current > .flow-static { border-color: color-mix(in srgb, var(--flow-cur) 45%, var(--border, #e8eaed)); }
.flow-step.is-warn .flow-dot { border-color: var(--flow-warn-text); background: var(--warn-bg, #fffbeb); }
.flow-step.is-skip > a,
.flow-step.is-skip > .flow-static,
.flow-step.is-todo > .flow-static { background: transparent; border-style: dashed; }
.flow-step.is-here > a,
.flow-step.is-here > .flow-static { background: var(--surface-3, var(--surface-2, #eef1f4)); border: 2px solid var(--flow-cur); }

/* Siguiente acción independiente (proyecto) */
.wf-dock.flow-next { border-top: 1px solid var(--border, #d6deea); border-radius: 12px; margin: 0 0 1rem; }
.wf-dock.is-danger.flow-next,
.wf-dock.is-ok.flow-next,
.wf-dock.is-info.flow-next { border-top-width: 1px; }
.wf-dock-cta { display: flex; gap: .5rem; flex-wrap: wrap; justify-content: flex-end; }

/* Esfuerzo cotizado vs real */
.flow-effort { margin-bottom: 1.25rem; }
.flow-effort h2 { margin: 0 0 .25rem; font-size: 1.05rem; }
.flow-effort .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.flow-alert { margin: .5rem 0 .75rem; padding: .55rem .75rem; border-radius: 8px; border: 1px solid; font-size: .9rem; }
.flow-alert.is-danger { background: var(--danger-bg, #fef2f2); border-color: var(--danger, #991b1b); color: var(--danger, #991b1b); }
.flow-alert.is-warn { background: var(--warn-bg, #fffbeb); border-color: var(--warn, #d97706); color: var(--flow-warn-text, #92400e); }
.flow-effort { --flow-warn-text: #92400e; }
html[data-theme="dark"] .flow-effort { --flow-warn-text: var(--warn, #fbbf24); }
.flow-meter {
  display: inline-block;
  vertical-align: middle;
  width: 7rem;
  max-width: 40vw;
  height: .5rem;
  border-radius: 999px;
  background: var(--surface-3, var(--border, #e8eaed));
  overflow: hidden;
}
.flow-meter > span { display: block; height: 100%; background: var(--ok, #0f766e); }
.flow-meter.is-warn > span { background: var(--warn, #d97706); }
.flow-meter.is-danger > span { background: var(--danger, #991b1b); }
.flow-badge { display: inline-block; padding: .1rem .5rem; border-radius: 999px; font-size: .75rem; font-weight: 600; border: 1px solid transparent; }
.flow-badge.is-ok { background: var(--ok-bg, #f0fdfa); color: var(--ok, #0f766e); border-color: color-mix(in srgb, var(--ok, #0f766e) 35%, transparent); }
.flow-badge.is-warn { background: var(--warn-bg, #fffbeb); color: var(--flow-warn-text, #92400e); border-color: color-mix(in srgb, var(--warn, #d97706) 45%, transparent); }
.flow-badge.is-danger { background: var(--danger-bg, #fef2f2); color: var(--danger, #991b1b); border-color: color-mix(in srgb, var(--danger, #991b1b) 35%, transparent); }

/* Enlaces cruzados (pendientes / búsqueda) */
.flow-rel { display: flex; flex-wrap: wrap; gap: .3rem; margin: .25rem 0 .1rem; }
.flow-rel a {
  font-size: .72rem;
  padding: .08rem .45rem;
  border-radius: 999px;
  border: 1px solid var(--border, #e8eaed);
  background: var(--surface-2, #f8f9fa);
  color: var(--text, #202124);
  text-decoration: none;
}
.flow-rel a:hover, .flow-rel a:focus-visible { border-color: var(--brand, #C41E3A); color: var(--brand, #C41E3A); }
.search-results li > .flow-rel { margin-left: .25rem; }

/* Badges de vínculo del proyecto (antes con color fijo) */
.badge.flow-link-badge {
  margin: .15rem;
  padding: .15rem .55rem;
  border-radius: 999px;
  background: var(--brand, #C41E3A);
  color: var(--brand-contrast, #fff);
  text-decoration: none;
}
.badge.flow-link-badge:hover { filter: brightness(1.08); }

/* Nota de premisas precargadas desde sizing */
.svct-prefill-note { margin: .1rem 0 .4rem; padding: .35rem .55rem; border-radius: 6px; background: var(--ok-bg, #f0fdfa); color: var(--text, #202124); border-left: 3px solid var(--ok, #0f766e); }
.svct-vars input[data-prefilled] { border-color: var(--ok, #0f766e); }

@media (max-width: 720px) {
  .flow-chain { padding: .45rem .5rem .55rem; }
  .flow-step { flex: 0 0 8.2rem; }
  .flow-meter { width: 4.5rem; }
  .wf-dock-cta { justify-content: stretch; }
}
@media print { .flow-chain, .flow-next { display: none; } }

/* v2.38.0 — contraste (auditoría con script): kicker dorado y textos vacíos en tema claro */
html:not([data-theme="dark"]) .wf-dock-kicker { color: var(--brand, #C41E3A); }
.flow-step.is-here .flow-detail { color: var(--text, #202124); }
html:not([data-theme="dark"]) .crm-quote-odoo .cqk-empty { color: var(--text-muted, #5f6368); }

/* v2.41: tarjeta «Diseño de rack» en la oportunidad */
.rd-opp-card { margin-bottom: 1rem; }
.rd-opp-h { font-size: 1.05rem; margin: 0 0 .4rem; }
.rd-opp-list { margin: 0 0 .5rem; padding-left: 1.1rem; font-size: .9rem; }
