/* =========================================================
   Pulso — Automações (prefixo .au-)
   ========================================================= */

/* ---------- Lista ---------- */
.au-search { min-width: 220px; max-width: 420px; }
.au-sort { width: auto; min-width: 210px; }
.au-segn { font-size: 10px; opacity: 0.6; margin-left: 2px; }
.au-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.au-card { padding: 20px; display: flex; flex-direction: column; gap: 14px; cursor: pointer; }
.au-title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
.au-desc { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 32px; }
.au-trigline { display: flex; align-items: center; gap: 8px; min-width: 0; font-size: 12px; color: var(--muted); padding: 9px 12px; border-radius: 14px; background: rgba(255, 255, 255, 0.035); border: 1px solid var(--line); }
.au-trigline b { color: var(--text-2); font-weight: 500; }
.au-seq { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; min-height: 28px; }
.au-seq .ic { width: 28px; height: 28px; border-radius: 10px; font-size: 14px; }
.au-seq .au-arrow { color: var(--subtle); font-size: 12px; display: inline-flex; }
.au-seq .au-more { font-size: 11px; color: var(--subtle); padding: 0 6px; }
.au-cardstats { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; padding-top: 14px; border-top: 1px solid var(--line); }
.au-cardstats .v { font-size: 15px; font-weight: 600; font-variant-numeric: tabular-nums; letter-spacing: -0.01em; }
.au-cardstats .l { font-size: 10px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--subtle); margin-top: 2px; }
.au-card .xs .iconify { vertical-align: -2px; }
.au-reco { display: flex; align-items: center; gap: 12px; padding: 16px; }

/* ---------- Receitas ---------- */
.au-hero { display: grid; grid-template-columns: 1.15fr 1fr; gap: 16px; }
.au-scratch { display: flex; flex-direction: column; align-items: flex-start; }
.au-scratch > .row { align-self: stretch; }
.au-scratch .h2 { color: #fff; }
.au-how { display: flex; flex-direction: column; gap: 14px; }
.au-how-step { display: flex; gap: 12px; align-items: flex-start; }
.au-cats { border-bottom: 0; }
.au-recipes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.au-recipe { padding: 22px; display: flex; flex-direction: column; }
.au-recipe-desc { min-height: 58px; }
.au-grow { flex: 1; }

/* Prévia de receita */
.au-pvwrap { display: grid; grid-template-columns: minmax(0, 1fr) 240px; gap: 20px; align-items: start; }
.au-pv-trigger { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 16px; }
.au-pv-step { position: relative; display: flex; gap: 12px; align-items: flex-start; padding-bottom: 16px; }
.au-pv-step::before { content: ""; position: absolute; left: 13px; top: 32px; bottom: 2px; width: 2px; background: rgba(255, 255, 255, 0.1); border-radius: 2px; }
.au-pv > .au-pv-step:last-child::before, .au-pv-branch .au-pv-step:last-child::before { display: none; }
.au-pv-type { text-transform: uppercase; letter-spacing: 0.1em; font-size: 10px; }
.au-pv-branches { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0 0 16px 40px; }
.au-pv-branch { padding: 12px; border-radius: 14px; border: 1px solid var(--line); background: rgba(255, 255, 255, 0.02); min-width: 0; }
.au-pv-branch .au-pv-branches { margin-left: 0; grid-template-columns: 1fr; }
.au-pv-side { display: flex; flex-direction: column; gap: 10px; position: sticky; top: 0; }
.au-pv-box { padding: 12px 14px; }
.au-pv-list { display: flex; flex-direction: column; gap: 8px; font-size: 12px; color: var(--text-2); }
.au-pv-list li { display: flex; align-items: center; gap: 8px; }
.au-pv-list .iconify { color: var(--cyan-2); font-size: 15px; }

/* Escolha de gatilho */
.au-trig-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.au-trig-opt {
  display: flex; flex-direction: column; align-items: flex-start; gap: 6px; text-align: left; padding: 14px; border-radius: 16px;
  border: 1px solid var(--line); background: rgba(255, 255, 255, 0.03); transition: border-color 0.2s, background 0.2s, transform 0.2s;
}
.au-trig-opt:hover { border-color: rgba(34, 211, 238, 0.5); background: rgba(34, 211, 238, 0.06); transform: translateY(-2px); }
.au-trig-opt .ic { margin-bottom: 4px; }

/* ---------- Construtor ---------- */
.au-builder { display: flex; flex-direction: column; height: calc(100vh - var(--topbar-h)); min-height: 520px; }
.au-bar {
  position: relative; z-index: 7; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 10px 16px;
  border-bottom: 1px solid var(--line); background: rgba(12, 12, 13, 0.88); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
}
.au-name {
  background: transparent; border: 1px solid transparent; border-radius: 10px; font-size: 16px; font-weight: 600; letter-spacing: -0.015em;
  padding: 6px 8px; width: min(340px, 34vw); min-width: 140px; color: var(--text); outline: none; transition: border-color 0.2s, background 0.2s; text-overflow: ellipsis;
}
.au-name:hover { border-color: var(--line); }
.au-name:focus { border-color: var(--cyan-2); background: rgba(255, 255, 255, 0.04); }
.au-saved { display: inline-flex; align-items: center; gap: 6px; color: var(--subtle); white-space: nowrap; }
.au-tools { display: flex; align-items: center; gap: 6px; margin-left: auto; flex-wrap: wrap; }
.au-zoom { display: inline-flex; align-items: center; border: 1px solid var(--line); border-radius: 999px; padding: 2px; background: rgba(255, 255, 255, 0.03); }
.au-zoom button { height: 28px; min-width: 30px; padding: 0 8px; border-radius: 999px; font-size: 12px; color: var(--text-2); display: inline-flex; align-items: center; justify-content: center; font-variant-numeric: tabular-nums; }
.au-zoom button:hover { background: rgba(255, 255, 255, 0.08); color: var(--text); }
.au-on { background: rgba(34, 211, 238, 0.14) !important; border-color: rgba(34, 211, 238, 0.4) !important; color: var(--cyan-2) !important; }
.au-pulse { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.5); animation: au-save-pulse 2s infinite; }
@keyframes au-save-pulse { 0% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.45); } 70% { box-shadow: 0 0 0 8px rgba(255, 255, 255, 0); } 100% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0); } }

.au-body { position: relative; flex: 1; min-height: 0; display: flex; overflow: hidden; }
.au-canvas {
  flex: 1; overflow: auto; position: relative; cursor: grab; outline: none;
  background-color: #0b0b0c;
  background-image: radial-gradient(rgba(255, 255, 255, 0.085) 1px, transparent 1.3px);
  background-size: 22px 22px;
}
.au-canvas.panning { cursor: grabbing; user-select: none; }
.au-stage { position: relative; display: flex; justify-content: center; min-width: 100%; width: max-content; padding: 44px 140px 220px; }
.au-flow { display: flex; flex-direction: column; align-items: center; }
.au-hint {
  position: absolute; right: 16px; bottom: 14px; z-index: 3; display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px;
  color: var(--subtle); background: rgba(16, 16, 18, 0.85); border: 1px solid var(--line); pointer-events: none;
}

/* Gatilho */
.au-trigger { width: 330px; padding: 16px 18px; cursor: pointer; border-radius: 22px; transition: transform 0.2s var(--ease), box-shadow 0.2s; text-align: left; }
.au-trigger:hover { transform: translateY(-2px); }
.au-trigger.is-selected { box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.45), 0 20px 40px -18px rgba(0, 0, 0, 0.6); }
.au-trigger .eyebrow .iconify { font-size: 13px; }
.au-trig-edit { display: inline-flex; align-items: center; gap: 4px; padding: 3px 8px; border-radius: 999px; background: rgba(255, 255, 255, 0.16); border: 1px solid rgba(255, 255, 255, 0.3); opacity: 0; transition: opacity 0.2s; }
.au-trigger:hover .au-trig-edit, .au-trigger.is-selected .au-trig-edit { opacity: 1; }
.au-trig-stats { display: flex; gap: 14px; margin-top: 12px; padding-top: 10px; border-top: 1px solid rgba(255, 255, 255, 0.22); font-size: 12px; opacity: 0.92; }
.au-trigger.tone-yellow .ic-glass, .au-pv-trigger.tone-yellow .ic-glass { color: #422006; background: rgba(66, 32, 6, 0.1); border-color: rgba(66, 32, 6, 0.22); }
.au-trigger.tone-yellow .au-trig-edit { background: rgba(66, 32, 6, 0.1); border-color: rgba(66, 32, 6, 0.2); }
.au-trigger.tone-yellow .au-trig-stats { border-top-color: rgba(66, 32, 6, 0.2); }

/* Nós */
.au-node {
  position: relative; width: 292px; padding: 12px 12px 12px 16px; border-radius: 18px; text-align: left; cursor: pointer; outline: none;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.015)), #141416;
  border: 1px solid rgba(255, 255, 255, 0.12); box-shadow: 0 16px 30px -18px rgba(0, 0, 0, 0.85);
  transition: border-color 0.2s, box-shadow 0.25s, transform 0.2s var(--ease);
}
.au-node::before { content: ""; position: absolute; left: 0; top: 14px; bottom: 14px; width: 3px; border-radius: 0 3px 3px 0; background: var(--tone, #737373); box-shadow: 0 0 12px var(--tone, transparent); }
.au-node:hover { border-color: rgba(255, 255, 255, 0.24); transform: translateY(-1px); }
.au-node:focus-visible { border-color: var(--cyan-2); }
.au-node.is-selected { border-color: var(--cyan-2); box-shadow: 0 0 0 3px rgba(34, 211, 238, 0.18), 0 16px 30px -18px rgba(0, 0, 0, 0.85); }
.au-node-head { display: flex; align-items: center; gap: 10px; }
.au-node-type { font-size: 10px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--subtle); font-weight: 500; }
.au-node-title { font-size: 13px; font-weight: 600; color: var(--text); }
.au-node-menu { opacity: 0.4; transition: opacity 0.2s; }
.au-node:hover .au-node-menu, .au-node.is-selected .au-node-menu { opacity: 1; }
.au-node-body { margin-top: 8px; font-size: 12px; color: var(--muted); line-height: 1.5; overflow-wrap: anywhere; }
.au-node-body b { color: var(--text-2); font-weight: 500; }
.au-node-stats { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 10px; padding-top: 9px; border-top: 1px dashed rgba(255, 255, 255, 0.09); font-size: 11px; color: var(--subtle); }
.au-node-stats b { color: var(--text-2); font-weight: 600; font-variant-numeric: tabular-nums; }
.au-node-stats .text-emerald b, .au-node-stats .text-rose b { color: inherit; }
.au-node.au-t-condition { background: linear-gradient(135deg, rgba(168, 85, 247, 0.16), rgba(168, 85, 247, 0.03)), #151217; border-color: rgba(192, 132, 252, 0.32); }
.au-node.au-t-goal { border-style: dashed; border-color: rgba(52, 211, 153, 0.5); background: linear-gradient(135deg, rgba(16, 185, 129, 0.14), rgba(16, 185, 129, 0.02)), #121513; }
.au-node.au-t-wait { background: linear-gradient(135deg, rgba(56, 189, 248, 0.09), rgba(56, 189, 248, 0.01)), #131416; }
.au-node.au-end { width: auto; display: inline-flex; align-items: center; gap: 8px; padding: 6px 6px 6px 6px; border-radius: 999px; }
.au-node.au-end::before { display: none; }
.au-node.au-new { animation: au-pop 0.45s var(--ease) both; }
@keyframes au-pop { from { opacity: 0; transform: scale(0.92); } to { opacity: 1; transform: none; } }
.au-mt { display: inline-block; font-family: var(--mono); font-size: 10.5px; line-height: 1.5; padding: 0 5px; border-radius: 5px; color: var(--cyan-2); background: rgba(34, 211, 238, 0.12); border: 1px solid rgba(34, 211, 238, 0.22); }
.au-chip { display: inline-flex; align-items: center; gap: 5px; padding: 1px 8px; border-radius: 999px; font-size: 11px; color: var(--text-2); background: rgba(255, 255, 255, 0.06); border: 1px solid var(--line); vertical-align: 1px; }
.au-chip .dot { width: 6px; height: 6px; }

/* Conectores */
.au-link { position: relative; width: 2px; height: 58px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; background: rgba(255, 255, 255, 0.17); }
.au-link::after { content: ""; position: absolute; bottom: -1px; left: 50%; transform: translateX(-50%); border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 6px solid rgba(255, 255, 255, 0.32); }
.au-live .au-link { background: repeating-linear-gradient(180deg, rgba(34, 211, 238, 0.6) 0 6px, rgba(34, 211, 238, 0.1) 6px 12px); background-size: 2px 12px; animation: au-flow 0.8s linear infinite; }
.au-live .au-link::after { border-top-color: rgba(34, 211, 238, 0.7); }
@keyframes au-flow { to { background-position: 0 12px; } }
.au-plus {
  position: relative; z-index: 2; flex-shrink: 0; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; font-size: 14px;
  background: #18181b; border: 1px solid rgba(255, 255, 255, 0.22); color: var(--text-2); opacity: 0.8;
  transition: transform 0.2s var(--ease), background 0.2s, border-color 0.2s, box-shadow 0.2s, opacity 0.2s;
}
.au-plus:hover, .au-plus:focus-visible { background: var(--cyan); border-color: var(--cyan-2); color: #fff; transform: scale(1.15); box-shadow: 0 0 0 6px rgba(34, 211, 238, 0.16); opacity: 1; }
.au-stem { width: 2px; height: 22px; background: rgba(255, 255, 255, 0.17); flex-shrink: 0; }

/* Ramos Sim / Não */
.au-branches { display: flex; align-items: stretch; gap: 48px; }
.au-branch { position: relative; display: flex; flex-direction: column; align-items: center; padding-top: 22px; min-width: 292px; }
.au-branch::before { content: ""; position: absolute; top: 0; height: 2px; background: rgba(255, 255, 255, 0.17); }
.au-branch:first-child::before { left: 50%; right: -24px; }
.au-branch:last-child::before { left: -24px; right: 50%; }
.au-branch::after { content: ""; position: absolute; top: 0; left: calc(50% - 1px); width: 2px; height: 22px; background: rgba(255, 255, 255, 0.17); }
.au-branch-label {
  position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 4px; font-size: 11px; font-weight: 600; padding: 3px 10px 3px 8px; border-radius: 999px;
}
.au-branch-label .iconify { font-size: 12px; }
.au-branch-label.yes { background: rgba(16, 185, 129, 0.16); color: var(--emerald-2); border: 1px solid rgba(52, 211, 153, 0.45); }
.au-branch-label.no { background: rgba(244, 63, 94, 0.14); color: var(--rose-2); border: 1px solid rgba(251, 113, 133, 0.42); }
.au-branch-tail { position: relative; flex: 1; align-self: stretch; min-height: 26px; background: linear-gradient(rgba(255, 255, 255, 0.17), rgba(255, 255, 255, 0.17)) center / 2px 100% no-repeat; }
.au-branch-tail::after { content: ""; position: absolute; bottom: 0; height: 2px; background: rgba(255, 255, 255, 0.17); }
.au-branch:first-child .au-branch-tail::after { left: 50%; right: -24px; }
.au-branch:last-child .au-branch-tail::after { left: -24px; right: 50%; }
.au-branch-tail.none { background: none; }
.au-branch-tail.none::after { display: none; }
.au-live .au-branch::before, .au-live .au-branch::after, .au-live .au-stem { background: rgba(34, 211, 238, 0.4); }

.au-endcap { display: inline-flex; align-items: center; gap: 6px; margin-top: 2px; font-size: 11px; color: var(--subtle); padding: 6px 12px; border-radius: 999px; border: 1px dashed rgba(255, 255, 255, 0.2); background: rgba(12, 12, 13, 0.8); }
.au-empty-hint { width: 330px; margin: 6px 0 18px; padding: 18px; text-align: center; border-radius: 20px; border: 1px dashed rgba(34, 211, 238, 0.35); background: rgba(34, 211, 238, 0.05); cursor: default; }

/* Catálogo de passos (popover) */
.au-catpop { width: 440px; }
.au-catalog { padding: 10px; max-height: min(70vh, 560px); overflow-y: auto; }
.au-cat-group { font-size: 10px; text-transform: uppercase; letter-spacing: 0.14em; color: var(--subtle); padding: 10px 8px 4px; }
.au-cat-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; }
.au-cat-item { display: flex; align-items: center; gap: 10px; width: 100%; padding: 8px; border-radius: 12px; text-align: left; transition: background 0.15s; }
.au-cat-item:hover, .au-cat-item:focus-visible { background: rgba(255, 255, 255, 0.07); outline: none; }
.au-cat-l, .au-cat-d { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* selos "Em breve" (WhatsApp) e "via API" (compra, carrinho, visita) */
.au-soon, .au-api { font-size: 10px; padding: 1px 6px; margin-left: 4px; vertical-align: 1px; font-weight: 600; }

/* Painel lateral */
.au-panel {
  position: absolute; top: 0; right: 0; bottom: 0; z-index: 6; width: 400px; max-width: 100%; display: flex; flex-direction: column;
  background: rgba(16, 16, 18, 0.97); border-left: 1px solid var(--line-2); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
  transform: translateX(105%); transition: transform 0.35s var(--ease), box-shadow 0.35s;
}
.au-panel.open { transform: none; box-shadow: -30px 0 60px -30px rgba(0, 0, 0, 0.85); }
.au-grabber { display: none; }
.au-panel-head { display: flex; align-items: flex-start; gap: 12px; padding: 18px 18px 14px 20px; border-bottom: 1px solid var(--line); }
.au-panel-body { flex: 1; overflow-y: auto; padding: 18px 20px 24px; display: flex; flex-direction: column; gap: 16px; }
.au-panel-foot { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; padding: 12px 16px; border-top: 1px solid var(--line); background: rgba(255, 255, 255, 0.02); }
.au-pstats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 12px 14px; border-radius: 14px; background: rgba(255, 255, 255, 0.035); border: 1px solid var(--line); }
.au-switchrow { display: flex; align-items: center; gap: 12px; cursor: pointer; }
.au-mchips { margin-top: 2px; }
.au-mchip { height: 24px; padding: 0 9px; border-radius: 999px; font-size: 11px; color: var(--text-2); background: rgba(255, 255, 255, 0.05); border: 1px solid var(--line); transition: background 0.15s, border-color 0.15s, color 0.15s; }
.au-mchip:hover { background: rgba(34, 211, 238, 0.12); border-color: rgba(34, 211, 238, 0.4); color: var(--cyan-2); }
.au-branchinfo { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.au-branchinfo > div { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; padding: 12px; border-radius: 14px; border: 1px solid var(--line); background: rgba(255, 255, 255, 0.02); }
.au-sender { display: flex; align-items: center; gap: 6px; color: var(--muted); }
.au-sender .iconify { flex-shrink: 0; }

.au-thumb { position: relative; height: 230px; overflow: hidden; border-radius: 14px; border: 1px solid var(--line-2); background: #eef2f6; cursor: zoom-in; }
.au-thumb-inner { width: 600px; transform-origin: top left; transform: scale(0.6); pointer-events: none; }
.au-thumb::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 70px; background: linear-gradient(transparent, rgba(10, 10, 10, 0.55)); pointer-events: none; }
.au-thumb-cta { position: absolute; left: 50%; bottom: 12px; z-index: 1; transform: translateX(-50%) translateY(6px); display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; font-size: 12px; font-weight: 500; color: #0a0a0a; background: #fff; opacity: 0; transition: opacity 0.2s, transform 0.2s; }
.au-thumb:hover .au-thumb-cta, .au-thumb:focus-visible .au-thumb-cta { opacity: 1; transform: translateX(-50%); }

.au-wpp { padding: 16px; border-radius: 16px; background: #0b141a url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40'%3E%3Ccircle cx='2' cy='2' r='1' fill='%23ffffff' fill-opacity='.05'/%3E%3C/svg%3E"); border: 1px solid var(--line); }
.au-wpp-bubble { position: relative; max-width: 88%; margin-left: auto; padding: 8px 10px 18px; border-radius: 12px 12px 2px 12px; background: #005c4b; color: #e9edef; font-size: 13px; line-height: 1.45; white-space: pre-wrap; overflow-wrap: anywhere; }
.au-wpp-bubble .au-mt { color: #a7f3d0; background: rgba(255, 255, 255, 0.1); border-color: rgba(255, 255, 255, 0.18); }
.au-wpp-time { position: absolute; right: 8px; bottom: 3px; font-size: 10px; color: rgba(233, 237, 239, 0.65); }

/* Métricas e teste */
.au-metrics, .au-testlog {
  position: absolute; z-index: 4; width: 300px; padding: 16px; border-radius: 20px; background: rgba(20, 20, 22, 0.94);
  border: 1px solid var(--line-2); box-shadow: var(--shadow-lg); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  animation: pop-in 0.25s var(--ease) both;
}
.au-metrics { left: 16px; top: 16px; }
.au-metrics .empty { padding: 20px 4px; }
.au-mgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 10px; }
.au-mrev { display: flex; align-items: center; justify-content: space-between; margin-top: 12px; padding: 10px 12px; border-radius: 12px; background: rgba(250, 204, 21, 0.08); border: 1px solid rgba(250, 204, 21, 0.22); color: var(--yellow-2); }
.au-testlog { left: 16px; bottom: 16px; width: 340px; max-height: calc(100% - 32px); display: flex; flex-direction: column; }
.au-tl { display: flex; flex-direction: column; gap: 8px; overflow-y: auto; min-height: 0; }
.au-tl-item { display: flex; align-items: center; gap: 10px; animation: rise 0.35s var(--ease) both; }
.au-tl-item .ic { width: 26px; height: 26px; border-radius: 9px; font-size: 13px; }
.au-tl-done { display: flex; align-items: center; gap: 8px; margin-top: 4px; padding-top: 10px; border-top: 1px solid var(--line); font-size: 12px; color: var(--text-2); }
.au-dot {
  position: absolute; left: 0; top: 0; z-index: 5; width: 18px; height: 18px; margin: -9px 0 0 -9px; border-radius: 50%; pointer-events: none;
  background: var(--cyan-2); box-shadow: 0 0 0 6px rgba(34, 211, 238, 0.25), 0 0 26px 8px rgba(34, 211, 238, 0.55);
  transition: transform 0.55s var(--ease);
}
.au-hit { animation: au-hit 0.9s ease; }
@keyframes au-hit { 0% { box-shadow: 0 0 0 0 rgba(34, 211, 238, 0.7); } 100% { box-shadow: 0 0 0 20px rgba(34, 211, 238, 0); } }
.au-visited { border-color: rgba(34, 211, 238, 0.55) !important; }
.au-trigger.au-visited { box-shadow: 0 0 0 3px rgba(34, 211, 238, 0.5); }

.au-tpick { display: flex; flex-direction: column; gap: 4px; max-height: 360px; overflow-y: auto; }
.au-tpick-row { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 12px; cursor: pointer; border: 1px solid transparent; transition: background 0.15s, border-color 0.15s; }
.au-tpick-row:hover { background: rgba(255, 255, 255, 0.05); }
.au-tpick-row.on { background: rgba(34, 211, 238, 0.08); border-color: rgba(34, 211, 238, 0.35); }
.au-tpick-row input { position: absolute; opacity: 0; pointer-events: none; }

/* ---------- Responsivo ---------- */
@media (max-width: 1180px) {
  .au-recipes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .au-lbl { display: none; }
  .au-tools .btn:not(.btn-icon) { padding: 0 10px; }
}
@media (max-width: 1024px) {
  .au-grid { grid-template-columns: minmax(0, 1fr); }
  .au-hero { grid-template-columns: minmax(0, 1fr); }
  .au-pvwrap { grid-template-columns: minmax(0, 1fr); }
  .au-pv-side { position: static; }
}
@media (max-width: 760px) {
  .au-search { max-width: none; min-width: 0; flex-basis: 100%; }
  .au-sort { flex: 1; }
  .au-recipes { grid-template-columns: minmax(0, 1fr); }
  .au-trig-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .au-bar { padding: 8px 10px; gap: 6px; }
  .au-name { width: 0; flex: 1 1 0; min-width: 0; font-size: 15px; }
  #au-status { flex-shrink: 0; }
  .au-saved { display: none; }
  .au-tools { width: 100%; margin-left: 0; overflow-x: auto; flex-wrap: nowrap; padding-bottom: 2px; scrollbar-width: none; }
  .au-tools::-webkit-scrollbar { display: none; }
  .au-tools > * { flex-shrink: 0; }
  .au-hint { display: none; }
  .au-stage { padding: 28px 40px 200px; }
  .au-node, .au-branch { width: 264px; min-width: 264px; }
  .au-node.au-end { width: auto; min-width: 0; }
  .au-trigger, .au-empty-hint { width: 290px; }
  .au-branches { gap: 32px; }
  .au-branch:first-child::before, .au-branch:first-child .au-branch-tail::after { right: -16px; }
  .au-branch:last-child::before, .au-branch:last-child .au-branch-tail::after { left: -16px; }
  .au-panel {
    position: fixed; top: auto; left: 0; right: 0; bottom: 0; width: 100%; height: 78vh; z-index: 90;
    border-left: 0; border-top: 1px solid var(--line-2); border-radius: 24px 24px 0 0; transform: translateY(105%);
  }
  .au-panel.open { transform: none; box-shadow: 0 -30px 60px -20px rgba(0, 0, 0, 0.85); }
  .au-grabber { display: block; width: 40px; height: 4px; border-radius: 4px; background: rgba(255, 255, 255, 0.2); margin: 8px auto 0; }
  .au-metrics { left: 10px; right: 10px; top: 10px; width: auto; }
  .au-testlog { left: 10px; right: 10px; bottom: 10px; width: auto; max-height: 45%; }
  .au-catpop { width: calc(100vw - 16px); }
}
@media (max-width: 560px) {
  .au-cardstats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .au-cardstats > :nth-child(n+4) { display: none; }
  .au-trig-grid { grid-template-columns: minmax(0, 1fr); }
  .au-cat-grid { grid-template-columns: minmax(0, 1fr); }
  .au-pv-branches { grid-template-columns: minmax(0, 1fr); margin-left: 20px; }
}
