
/* ══════════════════════════════════════════════════════════════════════
   WORKFLOW DETAIL (.wfs) — extends the .wfx listing kit.
   Colours resolve through V2 tokens so dark mode is inherited; only what a
   token cannot express gets an explicit dark twin at the bottom.
   ══════════════════════════════════════════════════════════════════════ */

/* ── Hero ─────────────────────────────────────────────────────────── */
.v2x.wfs .ws-hero{position:relative;overflow:hidden;border:1px solid var(--v2-line);border-radius:22px;
  background:radial-gradient(120% 100% at 88% -30%,rgba(54,128,237,.13),transparent 60%),
             linear-gradient(180deg,var(--v2-accent-soft2) 0%,var(--white) 70%);padding:26px}
.v2x.wfs .ws-hero::before{content:"";position:absolute;inset-block:0;inset-inline-end:0;width:min(360px,44%);
  background-image:radial-gradient(rgba(54,128,237,.16) 1.5px,transparent 1.5px);background-size:18px 18px;
  -webkit-mask-image:linear-gradient(260deg,#000,transparent 82%);mask-image:linear-gradient(260deg,#000,transparent 82%);
  pointer-events:none}
.v2x.wfs .ws-hero > *{position:relative;z-index:1}
.v2x.wfs .ws-top{display:flex;align-items:flex-start;gap:18px;flex-wrap:wrap}
.v2x.wfs .ws-ico{flex:0 0 auto;width:72px;height:72px;border-radius:20px;display:flex;align-items:center;
  justify-content:center;color:#fff;font-size:1.7rem;background:var(--wf-accent,var(--brand-blue));
  box-shadow:0 12px 26px -10px rgba(54,128,237,.55)}
.v2x.wfs .ws-head{flex:1;min-width:260px}
.v2x.wfs .ws-crumb{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:650;
  color:var(--brand-blue-dark);background:var(--v2-accent-soft);border:1px solid #d6e4fc;
  padding:4px 11px;border-radius:999px}
.v2x.wfs .ws-crumb:hover{text-decoration:none;background:#dfeafd}
.v2x.wfs h1{font-size:clamp(1.7rem,3.8vw,2.5rem);font-weight:800;letter-spacing:-.025em;line-height:1.12;
  margin:12px 0 8px;color:var(--v2-ink)}
.v2x.wfs .ws-tag{font-size:1.02rem;color:var(--v2-muted);margin:0;max-width:64ch;line-height:1.55}
.v2x.wfs .ws-badges{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}
.v2x.wfs .ws-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:20px}
.v2x.wfs .ws-byline{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:16px;
  font-size:12.5px;color:var(--v2-muted)}
.v2x.wfs .ws-byline b{color:var(--v2-ink);font-weight:650}

.v2x.wfs .ws-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1px;
  background:var(--v2-line);border:1px solid var(--v2-line);border-radius:14px;overflow:hidden;margin-top:20px}
.v2x.wfs .ws-metric{background:var(--white);padding:13px 15px}
.v2x.wfs .ws-metric .lb{font-size:10.8px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--v2-muted)}
.v2x.wfs .ws-metric .vl{font-size:14.6px;font-weight:750;color:var(--v2-ink);margin-top:3px;font-variant-numeric:tabular-nums}

/* ── Sticky tab strip ─────────────────────────────────────────────── */
.v2x.wfs .ws-tabs{position:sticky;top:0;z-index:20;display:flex;gap:4px;overflow-x:auto;margin:20px 0 0;
  padding:6px;background:color-mix(in srgb,var(--white) 92%,transparent);backdrop-filter:blur(8px);
  border:1px solid var(--v2-line);border-radius:14px;scrollbar-width:thin}
.v2x.wfs .ws-tabs a{white-space:nowrap;padding:9px 14px;border-radius:10px;color:var(--v2-muted);
  font-weight:650;font-size:.9rem;transition:background .15s,color .15s}
.v2x.wfs .ws-tabs a:hover{background:var(--v2-accent-soft);color:var(--brand-blue);text-decoration:none}

/* ── Layout ───────────────────────────────────────────────────────── */
.v2x.wfs .ws-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;align-items:start;margin-top:20px}
.v2x.wfs .ws-rail{position:sticky;top:76px;display:grid;gap:14px}

.v2x.wfs .ws-sec{background:var(--white);border:1px solid var(--v2-line);border-radius:18px;padding:22px;
  box-shadow:var(--shadow-sm);margin-bottom:16px;scroll-margin-top:88px}
.v2x.wfs .ws-sec > h2{display:flex;align-items:center;gap:10px;font-size:1.18rem;font-weight:800;
  letter-spacing:-.02em;margin:0 0 6px;color:var(--v2-ink)}
.v2x.wfs .ws-sec > h2 i{color:var(--wf-accent,var(--brand-blue));font-size:1rem}
.v2x.wfs .ws-sec__sub{margin:0 0 16px;color:var(--v2-muted);font-size:13.8px}
.v2x.wfs .ws-prose{color:var(--v2-muted);font-size:14.9px;line-height:1.75}
.v2x.wfs .ws-prose p{margin:0 0 13px}
.v2x.wfs .ws-prose p:last-child{margin:0}
.v2x.wfs .ws-sub{margin:22px 0 10px;font-size:.95rem;font-weight:750;color:var(--v2-ink)}

.v2x.wfs .ws-list{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.v2x.wfs .ws-list li{display:flex;gap:11px;align-items:flex-start;font-size:14.2px;line-height:1.55;color:var(--v2-muted)}
.v2x.wfs .ws-list li i{flex:0 0 auto;margin-top:3px;font-size:.86rem}
.v2x.wfs .ws-list.is-good li i{color:var(--v2-green)}
.v2x.wfs .ws-list.is-bad li i{color:var(--v2-amber)}
.v2x.wfs .ws-list.is-neutral li i{color:var(--brand-blue)}
.v2x.wfs .ws-2col{display:grid;grid-template-columns:1fr 1fr;gap:22px}

/* ── Flow diagram ─────────────────────────────────────────────────── */
.v2x .wf-diagram{border:1px solid var(--v2-line);border-radius:14px;overflow:hidden;background:var(--v2-bg)}
.v2x .wf-diagram__bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  padding:10px 12px;background:var(--white);border-bottom:1px solid var(--v2-line)}
.v2x .wf-diagram__legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11.5px;color:var(--v2-muted)}
.v2x .wf-diagram__legend span{display:inline-flex;align-items:center;gap:6px}
.v2x .wf-diagram__legend i{width:9px;height:9px;border-radius:3px;display:inline-block}
.v2x .wf-diagram__tools{display:flex;align-items:center;gap:4px}
.v2x .wf-diagram__tools button{border:1px solid var(--v2-line);background:var(--white);color:var(--v2-muted);
  width:32px;height:32px;border-radius:9px;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.v2x .wf-diagram__tools button:hover{background:var(--v2-accent-soft);color:var(--brand-blue);border-color:#d6e4fc}
.v2x .wf-diagram__tools button:focus-visible{outline:none;box-shadow:var(--shadow-brand)}
.v2x .wf-diagram__sep{width:1px;height:20px;background:var(--v2-line);margin:0 4px}
.v2x .wf-diagram__canvas{max-height:560px;overflow:auto;padding:16px;display:flex;justify-content:center}
.v2x .wf-diagram__canvas:focus-visible{outline:2px solid var(--brand-blue);outline-offset:-2px}
.v2x .wf-diagram__canvas svg{transition:transform .18s ease;max-width:none}
.v2x .wf-diagram__hint{margin:0;padding:8px 12px;font-size:11.5px;color:var(--v2-muted);
  background:var(--white);border-top:1px solid var(--v2-line)}
.v2x .wf-diagram.is-faux-full{position:fixed;inset:0;z-index:9999;border-radius:0;background:var(--white)}
.v2x .wf-diagram.is-faux-full .wf-diagram__canvas{max-height:calc(100vh - 96px)}
.v2x .wf-diagram:fullscreen{background:var(--white);padding:0}
.v2x .wf-diagram:fullscreen .wf-diagram__canvas{max-height:calc(100vh - 96px)}

/* ── Steps ────────────────────────────────────────────────────────── */
.v2x.wfs .ws-steps{display:grid;gap:14px;counter-reset:wstep}
.v2x.wfs .ws-step{position:relative;border:1px solid var(--v2-line);border-radius:16px;background:var(--white);
  padding:18px 18px 18px 20px;transition:border-color .16s,box-shadow .16s}
.v2x.wfs .ws-step:hover{border-color:#cfe0fb;box-shadow:var(--shadow-md)}
.v2x.wfs .ws-step__hd{display:flex;align-items:flex-start;gap:13px}
.v2x.wfs .ws-step__n{flex:0 0 auto;width:34px;height:34px;border-radius:11px;display:flex;align-items:center;
  justify-content:center;background:var(--wf-accent,var(--brand-blue));color:#fff;font-weight:750;font-size:14px}
.v2x.wfs .ws-step__t{font-size:1.02rem;font-weight:750;color:var(--v2-ink);margin:4px 0 0;line-height:1.3}
.v2x.wfs .ws-step__meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.v2x.wfs .ws-step__body{margin-top:12px;font-size:14.2px;line-height:1.65;color:var(--v2-muted)}
.v2x.wfs .ws-io{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.v2x.wfs .ws-io > div{padding:10px 12px;border:1px solid var(--v2-line);border-radius:10px;background:var(--v2-bg);
  font-size:12.8px;color:var(--v2-muted)}
.v2x.wfs .ws-io b{display:block;font-size:10.6px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--v2-muted);margin-bottom:3px}
.v2x.wfs .ws-note{display:flex;gap:10px;align-items:flex-start;margin-top:11px;padding:11px 13px;border-radius:10px;
  font-size:13px;line-height:1.55}
.v2x.wfs .ws-note.is-tip{background:rgba(54,128,237,.08);color:var(--v2-muted)}
.v2x.wfs .ws-note.is-warn{background:rgba(245,158,11,.11);color:#8a5300}
.v2x.wfs .ws-note i{margin-top:2px}
.v2x.wfs .ws-note ul{margin:0;padding-inline-start:16px}

/* ── Prompt block ─────────────────────────────────────────────────── */
.v2x.wfs .ws-prompt{margin-top:12px;border:1px solid var(--v2-line);border-radius:12px;overflow:hidden;background:var(--v2-bg)}
.v2x.wfs .ws-prompt__hd{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:8px 12px;background:var(--white);border-bottom:1px solid var(--v2-line);
  font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--v2-muted)}
.v2x.wfs .ws-copy{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--v2-line);background:var(--white);
  color:var(--brand-blue);font-size:11.5px;font-weight:650;padding:4px 10px;border-radius:8px;cursor:pointer;
  letter-spacing:0;text-transform:none;transition:background .15s,border-color .15s}
.v2x.wfs .ws-copy:hover{background:var(--v2-accent-soft);border-color:#d6e4fc}
.v2x.wfs .ws-copy.is-done{color:var(--v2-green)}
.v2x.wfs .ws-prompt pre{margin:0;padding:13px;font:12.6px/1.6 var(--font-mono,ui-monospace,monospace);
  color:var(--v2-ink);white-space:pre-wrap;word-break:break-word;max-height:340px;overflow:auto}

/* ── Rows (tools / models / integrations) ─────────────────────────── */
.v2x.wfs .ws-rows{display:grid;gap:10px}
.v2x.wfs .ws-row{display:flex;align-items:center;gap:13px;padding:13px;border:1px solid var(--v2-line);
  border-radius:13px;background:var(--white);color:inherit;transition:border-color .16s,box-shadow .16s,transform .16s}
.v2x.wfs .ws-row:hover{border-color:#cfe0fb;box-shadow:var(--shadow-md);transform:translateY(-1px);text-decoration:none}
.v2x.wfs .ws-row__logo{flex:0 0 auto;width:42px;height:42px;border-radius:11px;object-fit:cover;
  background:var(--v2-bg);border:1px solid var(--v2-line)}
.v2x.wfs .ws-row__ph{flex:0 0 auto;width:42px;height:42px;border-radius:11px;display:flex;align-items:center;
  justify-content:center;background:var(--v2-accent-soft);color:var(--brand-blue);font-weight:800;font-size:15px}
.v2x.wfs .ws-row__b{flex:1;min-width:0}
.v2x.wfs .ws-row__nm{font-size:14.6px;font-weight:700;color:var(--v2-ink);display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.v2x.wfs .ws-row__nt{font-size:12.6px;color:var(--v2-muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v2x.wfs .ws-row__go{flex:0 0 auto;color:var(--v2-muted);transition:transform .16s,color .16s}
.v2x.wfs .ws-row:hover .ws-row__go{transform:translateX(3px);color:var(--brand-blue)}

.v2x.wfs .ws-ints{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.v2x.wfs .ws-int{display:flex;align-items:center;gap:10px;padding:11px 12px;border:1px solid var(--v2-line);
  border-radius:12px;background:var(--white);font-size:13.4px;font-weight:650;color:var(--v2-ink);
  transition:border-color .16s,transform .16s}
.v2x.wfs .ws-int:hover{border-color:#cfe0fb;transform:translateY(-1px);text-decoration:none;color:var(--v2-ink)}
.v2x.wfs .ws-int i{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:.8rem;flex:0 0 auto}
.v2x.wfs .ws-int small{display:block;font-size:10.8px;font-weight:500;color:var(--v2-muted)}

/* ── Prerequisites / use cases ────────────────────────────────────── */
.v2x.wfs .ws-pre{display:grid;gap:9px}
.v2x.wfs .ws-preitem{display:flex;align-items:flex-start;gap:11px;padding:12px 13px;border:1px solid var(--v2-line);
  border-radius:12px;background:var(--white)}
.v2x.wfs .ws-preitem > i{flex:0 0 auto;width:30px;height:30px;border-radius:9px;display:flex;align-items:center;
  justify-content:center;background:var(--v2-accent-soft);color:var(--brand-blue);font-size:.8rem}
.v2x.wfs .ws-preitem .l{font-size:14px;font-weight:650;color:var(--v2-ink)}
.v2x.wfs .ws-preitem .dt{font-size:12.6px;color:var(--v2-muted);margin-top:2px;line-height:1.5}

.v2x.wfs .ws-uc{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.v2x.wfs .ws-uccard{padding:16px;border:1px solid var(--v2-line);border-radius:14px;background:var(--white);
  transition:border-color .16s,box-shadow .16s,transform .16s}
.v2x.wfs .ws-uccard:hover{border-color:#cfe0fb;box-shadow:var(--shadow-md);transform:translateY(-2px)}
.v2x.wfs .ws-uccard .ic{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;
  justify-content:center;background:var(--v2-accent-soft);color:var(--brand-blue);margin-bottom:11px}
.v2x.wfs .ws-uccard h3{font-size:14.8px;font-weight:750;margin:0 0 5px;color:var(--v2-ink);line-height:1.3}
.v2x.wfs .ws-uccard p{margin:0;font-size:13.4px;line-height:1.55;color:var(--v2-muted)}
.v2x.wfs .ws-uccard .out{display:inline-flex;align-items:center;gap:6px;margin-top:10px;font-size:11.6px;
  font-weight:650;color:var(--v2-green)}

/* ── Metrics grid ─────────────────────────────────────────────────── */
.v2x.wfs .ws-mgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.v2x.wfs .ws-mcard{padding:15px;border:1px solid var(--v2-line);border-radius:13px;background:var(--white)}
.v2x.wfs .ws-mcard .k{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--v2-muted)}
.v2x.wfs .ws-mcard .v{font-size:1.42rem;font-weight:800;color:var(--v2-ink);margin-top:5px;font-variant-numeric:tabular-nums}
.v2x.wfs .ws-meter{height:6px;border-radius:4px;background:var(--v2-line);overflow:hidden;margin-top:9px}
.v2x.wfs .ws-meter i{display:block;height:100%;border-radius:4px;background:var(--wf-accent,var(--brand-blue))}

/* ── Related ──────────────────────────────────────────────────────── */
.v2x.wfs .ws-relgrp{margin-bottom:18px}
.v2x.wfs .ws-relgrp:last-child{margin-bottom:0}
.v2x.wfs .ws-relgrp > h3{font-size:11.6px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--v2-muted);margin:0 0 10px}
.v2x.wfs .ws-relgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}

/* ── FAQ ──────────────────────────────────────────────────────────── */
.v2x.wfs .ws-faq{border:1px solid var(--v2-line);border-radius:12px;overflow:hidden;margin-bottom:10px;background:var(--white)}
.v2x.wfs .ws-faq summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;
  cursor:pointer;font-weight:650;font-size:14.4px;color:var(--v2-ink);list-style:none}
.v2x.wfs .ws-faq summary::-webkit-details-marker{display:none}
.v2x.wfs .ws-faq summary:hover{background:var(--v2-accent-soft2)}
.v2x.wfs .ws-faq summary .pm{color:var(--v2-muted);transition:transform .2s}
.v2x.wfs .ws-faq[open] summary .pm{transform:rotate(45deg)}
.v2x.wfs .ws-faq .bd{padding:0 16px 14px;font-size:14px;line-height:1.65;color:var(--v2-muted)}
.v2x.wfs .ws-faqvote{display:flex;align-items:center;gap:10px;padding:10px 16px;border-top:1px solid var(--v2-line);
  font-size:12.2px;color:var(--v2-muted)}
.v2x.wfs .ws-faqvote button{border:1px solid var(--v2-line);background:var(--white);color:var(--v2-muted);
  padding:4px 11px;border-radius:8px;font-size:11.8px;font-weight:650;cursor:pointer;transition:all .15s}
.v2x.wfs .ws-faqvote button:hover{border-color:var(--brand-blue);color:var(--brand-blue)}

/* ── Reviews ──────────────────────────────────────────────────────── */
.v2x.wfs .ws-rev{display:flex;gap:13px;padding:15px 0;border-bottom:1px solid var(--v2-line)}
.v2x.wfs .ws-rev:last-child{border-bottom:0}
.v2x.wfs .ws-rev__av{flex:0 0 auto;width:38px;height:38px;border-radius:50%;background:var(--v2-accent-soft);
  color:var(--brand-blue);display:flex;align-items:center;justify-content:center;font-weight:750;font-size:14px}
.v2x.wfs .ws-rev__n{font-size:13.8px;font-weight:700;color:var(--v2-ink)}
.v2x.wfs .ws-rev__m{font-size:11.8px;color:var(--v2-muted);margin-top:1px}
.v2x.wfs .ws-rev__b{font-size:13.8px;line-height:1.6;color:var(--v2-muted);margin:7px 0 0}
.v2x.wfs .ws-stars{display:inline-flex;gap:2px;color:var(--v2-amber);font-size:.78rem}
.v2x.wfs .ws-stars .off{color:var(--v2-line)}
.v2x.wfs .ws-revform{margin-top:18px;padding-top:18px;border-top:1px solid var(--v2-line)}
.v2x.wfs .ws-revform label{display:block;font-size:12.6px;font-weight:650;color:var(--v2-ink);margin-bottom:6px}
.v2x.wfs .ws-revform input[type=text],.v2x.wfs .ws-revform textarea{width:100%;border:1px solid var(--v2-line);
  border-radius:10px;padding:10px 12px;font-size:14px;background:var(--white);color:var(--v2-ink);outline:none;
  font-family:inherit}
.v2x.wfs .ws-revform input:focus,.v2x.wfs .ws-revform textarea:focus{border-color:var(--brand-blue);box-shadow:var(--shadow-brand)}
.v2x.wfs .ws-ratepick{display:flex;gap:5px;margin-bottom:12px}
.v2x.wfs .ws-ratepick button{border:1px solid var(--v2-line);background:var(--white);width:36px;height:36px;
  border-radius:9px;cursor:pointer;color:var(--v2-line);font-size:1rem;transition:all .15s}
.v2x.wfs .ws-ratepick button.on{color:var(--v2-amber);border-color:var(--v2-amber)}
.v2x.wfs .ws-msg{padding:12px 14px;border-radius:10px;font-size:13.4px;margin-top:12px}
.v2x.wfs .ws-msg.is-ok{background:rgba(22,163,74,.10);color:#15803d;border:1px solid rgba(22,163,74,.24)}
.v2x.wfs .ws-err{display:block;color:var(--v2-red);font-size:12.4px;margin-top:6px}

/* ── Sidebar ──────────────────────────────────────────────────────── */
.v2x.wfs .ws-card{background:var(--white);border:1px solid var(--v2-line);border-radius:16px;padding:16px;
  box-shadow:var(--shadow-sm)}
.v2x.wfs .ws-card h2{font-size:11.6px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--v2-muted);margin:0 0 12px}
.v2x.wfs .ws-kv{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;
  border-bottom:1px solid var(--v2-line);font-size:13.4px}
.v2x.wfs .ws-kv:last-child{border-bottom:0}
.v2x.wfs .ws-kv .k{color:var(--v2-muted)}
.v2x.wfs .ws-kv .v{font-weight:700;color:var(--v2-ink);text-align:end}
.v2x.wfs .ws-toc a{display:flex;align-items:center;gap:9px;padding:7px 10px;margin:0 -10px;border-radius:9px;
  font-size:13.4px;font-weight:600;color:var(--v2-muted);transition:background .14s,color .14s}
.v2x.wfs .ws-toc a::before{content:"";width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.5;flex:0 0 auto}
.v2x.wfs .ws-toc a:hover{background:var(--v2-accent-soft2);color:var(--brand-blue);text-decoration:none}
.v2x.wfs .ws-exports{display:grid;gap:8px}
.v2x.wfs .ws-exports a,.v2x.wfs .ws-exports button{display:flex;align-items:center;gap:9px;padding:9px 12px;
  border:1px solid var(--v2-line);border-radius:10px;background:var(--white);color:var(--v2-ink);
  font-size:13.2px;font-weight:650;cursor:pointer;transition:border-color .15s,background .15s;text-align:start}
.v2x.wfs .ws-exports a:hover,.v2x.wfs .ws-exports button:hover{border-color:var(--brand-blue);
  background:var(--v2-accent-soft2);color:var(--brand-blue);text-decoration:none}
.v2x.wfs .ws-exports i{width:16px;text-align:center}
.v2x.wfs .ws-taglist{display:flex;flex-wrap:wrap;gap:7px}
.v2x.wfs .ws-spark{display:flex;align-items:flex-end;gap:2px;height:44px;margin-top:10px}
.v2x.wfs .ws-spark span{flex:1;min-width:2px;border-radius:2px 2px 0 0;background:var(--wf-accent,var(--brand-blue));opacity:.35}
.v2x.wfs .ws-spark span:last-child{opacity:.9}

/* ── Dark twins ───────────────────────────────────────────────────── */
body.theme-dark .v2x.wfs .ws-hero{
  background:radial-gradient(120% 100% at 88% -30%,rgba(54,128,237,.20),transparent 60%),
             linear-gradient(180deg,rgba(54,128,237,.08) 0%,var(--white) 70%)}
body.theme-dark .v2x.wfs .ws-hero::before{background-image:radial-gradient(rgba(255,255,255,.10) 1.5px,transparent 1.5px)}
body.theme-dark .v2x.wfs .ws-crumb{background:rgba(54,128,237,.16);border-color:rgba(96,164,245,.28);color:#8FC0F8}
body.theme-dark .v2x.wfs .ws-row:hover,
body.theme-dark .v2x.wfs .ws-uccard:hover,
body.theme-dark .v2x.wfs .ws-int:hover,
body.theme-dark .v2x.wfs .ws-step:hover{border-color:rgba(96,164,245,.28)}
body.theme-dark .v2x.wfs .ws-toc a:hover,
body.theme-dark .v2x.wfs .ws-faq summary:hover{background:rgba(255,255,255,.04)}
body.theme-dark .v2x.wfs .ws-uccard .ic,
body.theme-dark .v2x.wfs .ws-preitem > i,
body.theme-dark .v2x.wfs .ws-row__ph,
body.theme-dark .v2x.wfs .ws-rev__av{background:rgba(54,128,237,.18);color:#8FC0F8}
body.theme-dark .v2x.wfs .ws-note.is-warn{background:rgba(245,158,11,.14);color:#F0B44E}
body.theme-dark .v2x.wfs .ws-uccard .out{color:#5BD99B}
body.theme-dark .v2x.wfs .ws-msg.is-ok{background:rgba(22,163,74,.14);color:#5BD99B;border-color:rgba(91,217,155,.26)}
/* The diagram is exported on a white background, so its own surface stays light */
body.theme-dark .v2x .wf-diagram__canvas{background:#F7F9FC}

/* ── Responsive ───────────────────────────────────────────────────── */
@media (max-width:1099.98px){
  .v2x.wfs .ws-layout{grid-template-columns:1fr}
  .v2x.wfs .ws-rail{position:static}
  .v2x.wfs .ws-relgrid{grid-template-columns:1fr}
}
@media (max-width:767.98px){
  .v2x.wfs .ws-hero{padding:20px}
  .v2x.wfs .ws-ico{width:58px;height:58px;border-radius:17px;font-size:1.4rem}
  .v2x.wfs .ws-uc,.v2x.wfs .ws-2col,.v2x.wfs .ws-io{grid-template-columns:1fr}
  .v2x.wfs .ws-sec{padding:18px}
  .v2x.wfs .ws-actions .v2-btn{flex:1 1 auto;justify-content:center}
  .v2x.wfs .ws-tabs{top:0;border-radius:0;margin-inline:-12px}
}
@media (hover:none){
  .v2x.wfs .ws-row:hover,.v2x.wfs .ws-uccard:hover,.v2x.wfs .ws-int:hover{transform:none}
}
@media (prefers-reduced-motion:reduce){
  .v2x.wfs .ws-row,.v2x.wfs .ws-uccard,.v2x.wfs .ws-int,.v2x .wf-diagram__canvas svg{transition:none}
  .v2x.wfs .ws-row:hover,.v2x.wfs .ws-uccard:hover{transform:none}
}
@media print{
  .v2x.wfs .ws-tabs,.v2x.wfs .ws-rail,.v2x.wfs .ws-actions,
  .v2x .wf-diagram__bar,.v2x .wf-diagram__hint,.v2x.wfs .ws-revform{display:none}
  .v2x.wfs .ws-layout{grid-template-columns:1fr}
  .v2x.wfs .ws-sec{break-inside:avoid;box-shadow:none}
}


/* ══════════════════════════════════════════════════════════════════════════
   §CARD — the workflow CARD kit, moved here 2026-08-14
   --------------------------------------------------------------------------
   These rules used to live in assets/css/ext/v2-public-workflow-index.css.
   That sheet was only ever linked from the /workflows LISTING, but its
   consumers are all on the DETAIL page:

     .wf-pill   × 26  — every meta chip across the section partials
     .wf-card*        — the Related band (workflow-sections/related.blade.php
                        includes v2.public.partials.workflow-card)
     .wf-flag   × 2 · .wf-ico · .wf-rail · .wf-select × 2

   So all of it rendered UNSTYLED on /workflows/{slug} — 26 bare-text pills
   and a Related band of undecorated links — because the sheet that defined
   them was never loaded there. Moving them here fixes that and lets the
   listing sheet be deleted outright (the listing now wears /ai-directory's
   sheet — see resources/views/livewire/v2/public/workflow-index.blade.php).

   NOT moved, deliberately: `.wf-grid` (the detail page lays the Related band
   out with `.ws-relgrid`) and `.wf-grid.is-list .wf-card` (list mode is a
   listing concept and the listing no longer uses this card).

   `--wf-accent` is set on the page root by workflow-show.blade.php, so the
   accent rail / icon tile / step dots pick up the workflow's own colour.
   ══════════════════════════════════════════════════════════════════════════ */
.v2x .wf-card{position:relative;display:flex;flex-direction:column;gap:12px;padding:18px;
  background:var(--white);border:1px solid var(--v2-line);border-radius:16px;box-shadow:var(--shadow-sm);
  color:inherit;overflow:hidden;transition:transform .18s,box-shadow .18s,border-color .18s}
.v2x .wf-card::before{content:"";position:absolute;inset-inline-start:0;inset-block:0;width:3px;
  background:var(--wf-accent,var(--brand-blue));transform:scaleY(0);transform-origin:top;
  transition:transform .22s cubic-bezier(.16,1,.3,1)}
.v2x .wf-card:hover{transform:translateY(-3px);border-color:#cfe0fb;box-shadow:var(--shadow-lg);text-decoration:none}
.v2x .wf-card:hover::before{transform:scaleY(1)}
.v2x .wf-card:focus-visible{outline:none;box-shadow:var(--shadow-brand)}

.v2x .wf-card__top{display:flex;align-items:flex-start;gap:12px}
/* The text column of the card head. It only ever got its flex sizing from
   the LIST-mode rule (.wf-grid.is-list .wf-card__body), which was correctly
   left behind in the listing sheet — but the property it carried,
   `min-width:0`, is what lets a long workflow name shrink and ellipsis
   inside this flex row instead of forcing the card wider. It belongs on the
   element itself, not on a view mode this page does not have. */
.v2x .wf-card__body{flex:1;min-width:0}
.v2x .wf-ico{flex:0 0 auto;width:46px;height:46px;border-radius:13px;display:flex;align-items:center;
  justify-content:center;color:#fff;font-size:1.05rem;background:var(--wf-accent,var(--brand-blue));
  transition:transform .18s}
.v2x .wf-card:hover .wf-ico{transform:scale(1.06) rotate(-4deg)}
.v2x .wf-card__ttl{font-size:16px;font-weight:750;color:var(--v2-ink);margin:0 0 3px;letter-spacing:-.015em;line-height:1.28}
.v2x .wf-card__cat{font-size:12px;color:var(--v2-muted);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.v2x .wf-card__desc{font-size:13.4px;line-height:1.55;color:var(--v2-muted);margin:0;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.v2x .wf-card__meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:4px}
.v2x .wf-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;
  font-size:11.4px;font-weight:650;border:1px solid var(--v2-line);background:var(--v2-bg);color:var(--v2-muted)}
.v2x .wf-pill.is-brand{background:var(--v2-accent-soft);border-color:#d6e4fc;color:var(--brand-blue-dark)}
.v2x .wf-pill.is-green{background:rgba(22,163,74,.11);border-color:rgba(22,163,74,.26);color:#15803d}
.v2x .wf-pill.is-amber{background:rgba(245,158,11,.12);border-color:rgba(245,158,11,.28);color:#b45309}
.v2x .wf-pill.is-violet{background:rgba(139,92,246,.11);border-color:rgba(139,92,246,.26);color:#6d28d9}
.v2x .wf-card__foot{display:flex;align-items:center;gap:13px;padding-top:11px;border-top:1px solid var(--v2-line);
  font-size:12.2px;color:var(--v2-muted);flex-wrap:wrap}
.v2x .wf-card__foot b{color:var(--v2-ink);font-weight:700;font-variant-numeric:tabular-nums}
.v2x .wf-card__go{margin-inline-start:auto;color:var(--brand-blue);font-weight:650;display:inline-flex;align-items:center;gap:6px}
.v2x .wf-card__go i{transition:transform .18s}
.v2x .wf-card:hover .wf-card__go i{transform:translateX(3px)}

.v2x .wf-flag{position:absolute;top:12px;inset-inline-end:12px;font-size:11px;font-weight:700;
  display:inline-flex;align-items:center;gap:5px}
.v2x .wf-flag.is-star{color:var(--v2-amber)}
.v2x .wf-flag.is-fire{color:var(--v2-red)}

/* mini step rail on the card — shows the shape of the workflow at a glance */
.v2x .wf-rail{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.v2x .wf-rail i{width:6px;height:6px;border-radius:50%;background:var(--wf-accent,var(--brand-blue));opacity:.35}
.v2x .wf-rail i:first-child,.v2x .wf-rail i:last-child{opacity:.85}
.v2x .wf-rail span{font-size:11.4px;color:var(--v2-muted);margin-inline-start:4px}

/* The zoom / export selects on the diagram bar. */
.v2x .wf-select{width:100%;border:1px solid var(--v2-line);border-radius:10px;padding:8px 11px;font-size:13.2px;
  background:var(--white);color:var(--v2-ink);outline:none;cursor:pointer}
.v2x .wf-select:focus{border-color:var(--brand-blue);box-shadow:var(--shadow-brand)}

/* Dark twins — moved with their light rules so a theme can never go missing.
   The token-driven rules (border, ink, muted) already flip via .v2x; only the
   hand-mixed rgba tints and the hard-coded inks need an explicit twin. */
body.theme-dark .v2x .wf-pill{background:rgba(255,255,255,.05)}
body.theme-dark .v2x .wf-pill.is-green{color:#5BD99B}
body.theme-dark .v2x .wf-pill.is-amber{color:#F0B44E}
body.theme-dark .v2x .wf-pill.is-violet{color:#C4A7FB}
body.theme-dark .v2x .wf-card:hover{border-color:rgba(96,164,245,.28)}

@media (hover:none){ .v2x .wf-card:hover{transform:none} }
@media (prefers-reduced-motion:reduce){
  .v2x .wf-card,.v2x .wf-ico,.v2x .wf-card__go i{transition:none}
  .v2x .wf-card:hover{transform:none}
}
