.cx{gap:10px;min-width:0;display:grid}.cx__title{color:var(--ts-navy);letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:.6875rem;font-weight:700;line-height:1.3}.cx-grid2{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.cx-field{min-width:0}.cx-badge{border:2.5px solid var(--accent,var(--ts-navy));background:var(--app-surface);min-width:28px;height:28px;color:var(--ts-navy);font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;transition:transform var(--dur-fast) var(--ease-out), background-color var(--dur-fast), box-shadow var(--dur-fast);border-radius:999px;flex:none;place-items:center;padding:0 5px;font-size:.75rem;font-weight:800;line-height:1;display:inline-grid}.cx-badge:hover:not(:disabled){background:var(--accent-tint,var(--app-tint));transform:scale(1.08)}.cx-badge.is-selected{background:var(--accent-tint,var(--app-tint));box-shadow:0 0 0 3px var(--accent-tint,var(--app-tint))}.cx-badge:disabled{color:var(--app-muted);cursor:default;border-style:dashed}.cx-mini{border:1.5px solid var(--app-border-strong);background:var(--app-surface);min-width:20px;height:18px;color:var(--ts-navy);font-family:var(--ts-font-sans);vertical-align:1px;border-radius:999px;place-items:center;padding:0 4px;font-size:.625rem;font-weight:800;line-height:1;display:inline-grid}.cx-start{border:1px solid var(--app-border);border-left:4px solid var(--accent);border-radius:var(--app-radius-small);background:var(--app-bg);transition:box-shadow var(--dur-fast), border-color var(--dur-fast);gap:10px;padding:12px 12px 12px 8px;display:grid}.cx-start.is-linked{box-shadow:0 0 0 3px var(--accent-tint)}.cx-start__head{align-items:center;gap:8px;display:flex}.cx-state{border:0;gap:6px;min-width:0;margin:0;padding:0}.cx-state__legend{margin-bottom:4px;padding:0}.cx-state__kindrow{align-items:center;gap:8px;display:flex}.cx-state__kindrow .select{flex:auto;min-width:0}.cx-state__pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 8px;display:grid}.cx-state__pair>.cx-field{grid-row:span 3;grid-template-rows:subgrid;align-content:start}.cx-state__pair>.cx-field>.field__head{align-self:end}.cx-state__pair .field__label{color:var(--app-text);font-weight:400}.cx-state__resolved{color:var(--app-muted);font-variant-numeric:tabular-nums;margin:0;font-size:.78rem}.cx-state__fog{color:var(--status-error-ink);font-weight:600}.cx-chain-head{align-items:center;gap:8px;margin-top:6px;display:flex}.cx-chain-head__count{color:var(--app-muted);font-variant-numeric:tabular-nums;font-size:.75rem}.cx-chain-head__all{margin:0 -6px 0 auto}.cx-strip{gap:3px;height:6px;display:flex}.cx-strip__seg{background:var(--accent);transform-origin:50%;transition:transform var(--dur-fast) var(--ease-out), opacity var(--dur-fast);border-radius:3px;flex:1 1 0}.cx-strip__seg[data-status=error]{background:var(--status-error-ink)}.cx-strip__seg[data-status=waiting]{background:var(--app-border-strong)}.cx-strip__seg.is-linked{transform:scaleY(1.7)}.cx-strip__seg.is-playing{animation:cx-strip-pulse .9s var(--ease-out) infinite alternate}.cx-empty{border:1px dashed var(--app-border-strong);border-radius:var(--app-radius-small);color:var(--app-muted);text-align:center;margin:0;padding:12px;font-size:.8125rem}.cx-chain{margin:0;padding:0;list-style:none;display:grid;position:relative}.cx-chain__item{min-width:0;position:relative}.cx-flow{height:24px;position:relative}.cx-flow__stem{background:repeating-linear-gradient(to bottom, var(--app-border-strong) 0 5px, transparent 5px 9px);background-size:2px 9px;width:2px;animation:.9s linear infinite cx-flow;position:absolute;top:0;bottom:4px;left:25px}.cx-flow__stem:after{content:"";border-top:5px solid var(--app-border-strong);border-left:4px solid #0000;border-right:4px solid #0000;position:absolute;bottom:-4px;left:-3px}.cx-flow__insert{border:1px solid var(--app-border-strong);background:var(--app-surface);height:20px;color:var(--app-link);font:inherit;cursor:pointer;opacity:0;transition:opacity var(--dur-fast), transform var(--dur-fast) var(--ease-out), background-color var(--dur-fast), border-color var(--dur-fast);border-radius:999px;align-items:center;gap:4px;padding:0 7px;font-size:.6875rem;font-weight:700;line-height:1;display:inline-flex;position:absolute;top:50%;left:42px;transform:translateY(-50%)scale(.9)}.cx-flow:hover .cx-flow__insert,.cx-flow.is-open .cx-flow__insert,.cx-flow__insert:focus-visible{opacity:1;transform:translateY(-50%)scale(1)}.cx-flow__insert:hover{border-color:var(--ts-blue-dark);background:var(--app-tint)}.cx-flow__insert:disabled{display:none}@media (hover:none){.cx-flow__insert{opacity:1;transform:translateY(-50%)scale(1)}}.cx-step{border:1px solid var(--app-border);border-left:4px solid var(--accent);border-radius:var(--app-radius-small);background:var(--app-surface);min-width:0;box-shadow:var(--app-shadow);animation:cx-enter var(--dur-med) var(--ease-out) both;transition:box-shadow var(--dur-fast), border-color var(--dur-fast), opacity var(--dur-med);position:relative}.cx-step.is-linked{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint), var(--app-shadow-hover)}.cx-step.is-playing .cx-badge{animation:cx-ping 1.1s var(--ease-out) infinite}.cx-step[data-status=error]{border-left-color:var(--status-error-ink)}.cx-step[data-status=waiting] .cx-step__head,.cx-step[data-status=waiting] .cx-step__status{opacity:.62}.cx-step__head{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"badge meta"".toggle";align-items:center;gap:2px 8px;padding:8px 6px 4px 8px;display:grid}.cx-step__head>.cx-badge{grid-area:badge}.cx-step__meta{grid-area:meta;justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.cx-step__toggle{min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background-color var(--dur-fast);background:0 0;border:0;border-radius:6px;grid-area:toggle;gap:3px;margin:0 0 0 -6px;padding:3px 6px;display:grid}.cx-step__toggle:hover{background:var(--accent-tint)}.cx-step__line{align-items:center;gap:4px;min-width:0;display:flex}.cx-step__line .chip{text-overflow:ellipsis;min-width:0;overflow:hidden}.cx-step__line .chip svg{flex:none}.cx-step__n{color:var(--app-muted);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;flex:none;font-size:.6875rem;font-weight:700}.cx-chip--reference{background:color-mix(in srgb, var(--ts-gray) 12%, var(--ts-white));color:var(--app-muted)}.cx-step__chevron{color:var(--app-muted);transition:transform var(--dur-med) var(--ease-out);flex:none}.cx-step__toggle[aria-expanded=true] .cx-step__chevron{transform:rotate(180deg)}.cx-step__summary{color:var(--app-text);font-size:.8125rem;line-height:1.35}.cx-step__tools{gap:0;display:flex}.cx-step__tools .btn--icon.btn--small{width:26px;min-height:28px;color:var(--app-muted)}.cx-step__tools .btn--icon.btn--small:hover:not(:disabled){color:var(--ts-navy)}.cx-step__tools .cx-step__delete:hover:not(:disabled){background:var(--status-error-tint);color:var(--status-error-ink)}.cx-step__tools .btn:disabled{opacity:.35;background:0 0;border-color:#0000}.cx-step__status{padding:0 10px 8px 46px}.cx-step__result,.cx-step__waiting{color:var(--app-muted);font-family:var(--ts-font-serif);margin:0;font-size:.78rem;line-height:1.45}.cx-step__result strong{color:var(--accent-ink);font-family:var(--ts-font-sans);font-variant-numeric:tabular-nums;font-weight:700}.cx-step__error{background:var(--status-error-tint);color:var(--status-error-ink);animation:cx-reveal var(--dur-med) var(--ease-out);border-radius:6px;margin:0;padding:6px 8px;font-size:.78rem;font-weight:600;line-height:1.4}.cx-step__error:before{content:"! ";font-weight:800}.cx-step__body{border-top:1px dashed var(--app-border);animation:cx-reveal var(--dur-med) var(--ease-out);gap:10px;padding:10px 12px 12px;display:grid}.cx-step__body[hidden]{display:none}.cx-add{gap:8px;display:grid}.cx-add__btn{width:100%;min-height:40px;color:var(--app-link);border-style:dashed;border-width:1.5px}.cx-add__btn[aria-expanded=true]{border-style:solid;border-color:var(--ts-blue-dark);background:var(--app-tint)}.cx-note{margin:0}.cx-menu{border:1px solid var(--app-border-strong);border-radius:var(--app-radius-small);background:var(--app-surface);box-shadow:var(--app-shadow-hover);transform-origin:top;animation:cx-pop var(--dur-med) var(--ease-out);grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:2px;margin:2px 0 8px;padding:6px;display:grid}.cx-menu__item{color:var(--app-text);font:inherit;text-align:left;cursor:pointer;animation:cx-enter var(--dur-med) var(--ease-out) both;animation-delay:calc(var(--i,0) * 18ms);transition:background-color var(--dur-fast);background:0 0;border:0;border-radius:6px;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;padding:6px 8px;display:grid}.cx-menu__item:hover,.cx-menu__item:focus-visible{background:var(--accent-tint)}.cx-menu__item:focus-visible{outline-offset:-1px}.cx-menu__icon{background:var(--accent-tint);width:34px;height:34px;color:var(--accent-ink);transition:transform var(--dur-fast) var(--ease-out);border-radius:8px;place-items:center;display:grid}.cx-menu__item:hover .cx-menu__icon,.cx-menu__item:focus-visible .cx-menu__icon{transform:scale(1.08)rotate(-4deg)}.cx-menu__text{gap:1px;min-width:0;display:grid}.cx-menu__name{color:var(--ts-navy);font-size:.875rem;font-weight:600;line-height:1.25}.cx-menu__desc{color:var(--app-muted);font-family:var(--ts-font-serif);font-size:.75rem;line-height:1.35}.cx-undo{border-radius:var(--app-radius-small);background:var(--ts-navy);color:var(--ts-white);animation:cx-pop var(--dur-med) var(--ease-out);justify-content:space-between;align-items:center;gap:8px;padding:6px 6px 6px 12px;font-size:.8125rem;display:flex}.cx-undo .btn--ghost{color:var(--ts-white)}.cx-undo .btn--ghost:hover{background:color-mix(in srgb, var(--ts-white) 16%, transparent);color:var(--ts-white)}@keyframes cx-enter{0%{opacity:0;transform:translateY(-6px)}}@keyframes cx-reveal{0%{opacity:0;transform:translateY(-4px)}}@keyframes cx-pop{0%{opacity:0;transform:scale(.97)translateY(-4px)}}@keyframes cx-flow{to{background-position:0 9px}}@keyframes cx-ping{0%{box-shadow:0 0 0 0 var(--accent)}to{box-shadow:0 0 0 8px #0000}}@keyframes cx-strip-pulse{to{opacity:.7;transform:scaleY(1.9)}}@media (prefers-reduced-motion:reduce){.cx-flow__stem,.cx-step,.cx-step.is-playing .cx-badge,.cx-strip__seg.is-playing,.cx-menu,.cx-menu__item,.cx-step__body,.cx-step__error,.cx-undo{animation:none}}@media print{.cx-step__tools,.cx-flow__insert,.cx-add,.cx-undo{display:none}}
