/* ================================================================================================
   UNIPLIM-AUTOMATION-FOLLOWUP-03 — área unificada de Automações (Visão geral, receitas, wizard,
   timeline, mensagens, políticas, atenção, acompanhamento individual, resultados).

   Regras desta folha (contrato visual VL-05/15/16/17/19/22/23/24, §7):
   - só tokens `--uni-*`; o único valor fora da escada é o padding de card de 20px (EX-01), escrito
     como `calc(var(--uni-space-4) + var(--uni-space-1))`;
   - ritmo: página → seção 24 · seção → grupo 16 · grupo → campo 16 · rótulo → controle 8 ·
     controle → ajuda 4;
   - card clicável: borda primária + fundo primary-soft a 40% no hover — nunca lift/sombra;
   - estado selecionado nunca só por cor: anel + ícone de check;
   - anatomia dos cartões de escolha PORTADA do seletor da Base de Conhecimento (ícone em faixa
     tingida pelo acento, título, descrição, seta), declarada aqui — nenhum `kb-*` é emprestado.
   ================================================================================================ */

.ah-page {
    --ah-card-pad: calc(var(--uni-space-4) + var(--uni-space-1));
    display: flex;
    flex-direction: column;
    gap: var(--uni-space-5);
    min-width: 0;
    padding-bottom: var(--uni-space-7);
}

.ah-page > .crm-page-header { margin-bottom: 0; }

/* A app bar do celular traz margem própria (space-4); somada ao gap da página daria 40px até a faixa de abas.
   Aqui o espaço app bar → primeiro bloco fica em space-4, igual às demais telas com app bar. */
.ah-page > .uni-appbar { margin-bottom: calc(var(--uni-space-4) - var(--uni-space-5)); }

.ah-section {
    display: flex;
    flex-direction: column;
    gap: var(--uni-space-4);
    min-width: 0;
}

.ah-section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--uni-space-3) var(--uni-space-4);
    flex-wrap: wrap;
}

.ah-section-head-copy { display: flex; flex-direction: column; gap: var(--uni-space-1); min-width: 0; }

.ah-section-title {
    margin: 0;
    font-size: var(--uni-font-size-lg);
    font-weight: 600;
    line-height: 1.3;
    color: var(--uni-color-text);
}

.ah-section-sub {
    margin: 0;
    font-size: var(--uni-font-size-sm);
    line-height: 1.5;
    color: var(--uni-color-text-muted);
    max-width: 110ch;
}

.ah-card {
    display: flex;
    flex-direction: column;
    gap: var(--uni-space-4);
    padding: var(--ah-card-pad, 20px);
    border: 1px solid var(--uni-color-border);
    border-radius: var(--uni-radius-lg);
    background: var(--uni-color-surface);
    min-width: 0;
}

.ah-muted { color: var(--uni-color-text-muted); }
.ah-small { font-size: var(--uni-font-size-xs); color: var(--uni-color-text-muted); line-height: 1.45; margin: 0; }
.ah-link {
    background: none; border: 0; padding: 0; font: inherit; cursor: pointer;
    color: var(--uni-color-primary); font-weight: 600; text-decoration: none;
}
.ah-link:hover { text-decoration: underline; }
.ah-link:focus-visible { outline: 2px solid var(--uni-color-focus-ring); outline-offset: 2px; border-radius: var(--uni-radius-xs); }

.ah-inline-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--uni-space-3); }

/* ---------- 1. Operação (Visão geral): quatro fichas clicáveis ---------- */

.ah-ops {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--uni-space-4);
}

@media (max-width: 1023px) { .ah-ops { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 479px) {
    .ah-ops { gap: var(--uni-space-3); }
}

.ah-op {
    --ah-tone: var(--uni-color-primary);
    --ah-tone-soft: var(--uni-color-primary-soft);
    display: flex;
    flex-direction: column;
    gap: var(--uni-space-2);
    min-width: 0;
    padding: var(--uni-space-4) var(--ah-card-pad, 20px);
    border: 1px solid var(--uni-color-border);
    border-radius: var(--uni-radius-lg);
    background: var(--uni-color-surface);
    color: var(--uni-color-text);
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: border-color .14s ease, background-color .14s ease;
}

.ah-op:hover {
    border-color: var(--uni-color-primary);
    background: color-mix(in srgb, var(--uni-color-primary-soft) 40%, var(--uni-color-surface));
}

.ah-op:focus-visible { outline: 2px solid var(--uni-color-focus-ring); outline-offset: 2px; }

.ah-op.is-selected {
    border-color: var(--uni-color-primary);
    box-shadow: inset 0 0 0 1px var(--uni-color-primary);
}

.ah-op-top { display: flex; align-items: center; justify-content: space-between; gap: var(--uni-space-2); }

.ah-op-label { font-size: var(--uni-font-size-sm); font-weight: 500; color: var(--uni-color-text-muted); }

.ah-op-icon {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 32px;
    height: 32px;
    border-radius: var(--uni-radius-md);
    background: var(--ah-tone-soft);
    color: var(--ah-tone);
}

.ah-op-icon .crm-icon { width: 18px; height: 18px; }

.ah-op-value {
    font-size: var(--uni-font-size-2xl);
    font-weight: 600;
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
    color: var(--uni-color-text);
}

.ah-op-hint { font-size: var(--uni-font-size-xs); color: var(--uni-color-text-muted); line-height: 1.4; }

/* No celular o rótulo precisa da largura toda: o ícone repetia o que o rótulo já diz e o empurrava para duas
   linhas. Fica depois das regras base para vencer pela ordem. */
@media (max-width: 479px) {
    .ah-op { padding: var(--uni-space-4); }
    .ah-op-icon { display: none; }
}

.ah-op--neutral { --ah-tone: var(--uni-color-text-muted); --ah-tone-soft: var(--uni-color-neutral-soft); }
.ah-op--success { --ah-tone: var(--uni-color-success); --ah-tone-soft: var(--uni-color-success-soft); }
.ah-op--info { --ah-tone: var(--uni-color-info); --ah-tone-soft: var(--uni-color-info-soft); }

/* "Precisam de atenção" é prioritário: com pendências, a ficha ganha o tom de aviso. */
.ah-op--attention.is-hot {
    --ah-tone: var(--uni-color-warning);
    --ah-tone-soft: var(--uni-color-warning-soft);
    border-color: color-mix(in srgb, var(--uni-color-warning) 55%, var(--uni-color-border));
    background: color-mix(in srgb, var(--uni-color-warning-soft) 55%, var(--uni-color-surface));
}

.ah-op--attention.is-hot .ah-op-value { color: var(--uni-color-text); }

/* ---------- 2. Central de atenção ---------- */

.ah-attention { display: flex; flex-direction: column; gap: var(--uni-space-3); }

.ah-calm {
    display: flex;
    align-items: center;
    gap: var(--uni-space-3);
    padding: var(--uni-space-4) var(--ah-card-pad, 20px);
    border: 1px solid var(--uni-color-border);
    border-radius: var(--uni-radius-lg);
    background: var(--uni-color-surface);
    color: var(--uni-color-text-muted);
    font-size: var(--uni-font-size-sm);
}

.ah-calm .crm-icon { width: 20px; height: 20px; color: var(--uni-color-success); flex: 0 0 auto; }

.ah-att {
    --ah-tone: var(--uni-color-warning);
    --ah-tone-soft: var(--uni-color-warning-soft);
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: var(--uni-space-4);
    align-items: start;
    padding: var(--uni-space-4) var(--ah-card-pad, 20px);
    border: 1px solid var(--uni-color-border);
    border-left: 3px solid var(--ah-tone);
    border-radius: var(--uni-radius-lg);
    background: var(--uni-color-surface);
}

.ah-att--danger { --ah-tone: var(--uni-color-danger); --ah-tone-soft: var(--uni-color-danger-soft); }
.ah-att--info { --ah-tone: var(--uni-color-info); --ah-tone-soft: var(--uni-color-info-soft); }
.ah-att--neutral { --ah-tone: var(--uni-color-text-muted); --ah-tone-soft: var(--uni-color-neutral-soft); }

.ah-att-icon {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: var(--uni-radius-pill);
    background: var(--ah-tone-soft);
    color: var(--ah-tone);
}

.ah-att-icon .crm-icon { width: 18px; height: 18px; }

.ah-att-copy { display: flex; flex-direction: column; gap: var(--uni-space-1); min-width: 0; }

.ah-eyebrow {
    font-size: var(--uni-font-size-2xs);
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--uni-color-text-muted);
}

.ah-att-title { margin: 0; font-size: var(--uni-font-size-md); font-weight: 600; color: var(--uni-color-text); line-height: 1.35; }
.ah-att-text { margin: 0; font-size: var(--uni-font-size-sm); color: var(--uni-color-text-muted); line-height: 1.5; }
.ah-att-action { margin: 0; font-size: var(--uni-font-size-sm); color: var(--uni-color-text); line-height: 1.5; }

.ah-att-affected {
    display: flex;
    flex-wrap: wrap;
    gap: var(--uni-space-2);
    margin-top: var(--uni-space-2);
}

.ah-att-actions {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: var(--uni-space-2);
    min-width: 176px;
}

@media (max-width: 767px) {
    .ah-att { grid-template-columns: auto minmax(0, 1fr); }
    .ah-att-actions { grid-column: 1 / -1; min-width: 0; }
}

.ah-tag {
    display: inline-flex;
    align-items: center;
    gap: var(--uni-space-1);
    max-width: 100%;
    padding: var(--uni-space-1) var(--uni-space-2);
    border: 1px solid var(--uni-color-border);
    border-radius: var(--uni-radius-pill);
    background: var(--uni-color-surface);
    color: var(--uni-color-text);
    font: inherit;
    font-size: var(--uni-font-size-xs);
    font-weight: 500;
    line-height: 1.3;
    text-decoration: none;
    cursor: pointer;
}

.ah-tag span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ah-tag:hover { border-color: var(--uni-color-primary); background: color-mix(in srgb, var(--uni-color-primary-soft) 40%, var(--uni-color-surface)); }
.ah-tag:focus-visible { outline: 2px solid var(--uni-color-focus-ring); outline-offset: 2px; }
.ah-tag strong { font-weight: 600; font-variant-numeric: tabular-nums; }

/* ---------- 3. Listas (automações, mensagens, acompanhamentos) ---------- */

.ah-list-automations .uni-list-row {
    grid-template-columns: minmax(0, 2.1fr) minmax(0, 0.9fr) minmax(0, 1.6fr) minmax(0, 0.8fr) minmax(0, 0.9fr);
}

.ah-list-messages .uni-list-row {
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1.4fr) minmax(0, 0.9fr) minmax(0, 0.6fr);
}

.ah-list-people .uni-list-row {
    grid-template-columns: minmax(0, 1.8fr) minmax(0, 1.2fr) minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 0.5fr);
}

.ah-cell { display: flex; flex-direction: column; gap: 2px; min-width: 0; font-size: var(--uni-font-size-sm); color: var(--uni-color-text); }
.ah-cell small { font-size: var(--uni-font-size-xs); color: var(--uni-color-text-muted); line-height: 1.4; }
.ah-cell .ah-signal-warn { color: var(--uni-color-warning); font-weight: 600; }
.ah-cell .ah-signal-good { color: var(--uni-color-success); font-weight: 600; }

.ah-row-trailing { display: inline-flex; align-items: center; justify-content: flex-end; gap: var(--uni-space-2); }

.ah-skeleton {
    display: flex;
    flex-direction: column;
    gap: var(--uni-space-3);
}

.ah-skeleton > span {
    display: block;
    height: 56px;
    border-radius: var(--uni-radius-md);
    background: linear-gradient(90deg, var(--uni-color-neutral-soft), color-mix(in srgb, var(--uni-color-neutral-soft) 40%, var(--uni-color-surface)), var(--uni-color-neutral-soft));
    background-size: 200% 100%;
    animation: ah-shimmer 1.4s ease-in-out infinite;
}

.ah-skeleton--tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--uni-space-4); }
.ah-skeleton--tiles > span { height: 104px; border-radius: var(--uni-radius-lg); }
@media (max-width: 1023px) { .ah-skeleton--tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

@keyframes ah-shimmer { 0% { background-position: 100% 0; } 100% { background-position: -100% 0; } }
@media (prefers-reduced-motion: reduce) { .ah-skeleton > span { animation: none; } }

/* ---------- 4. Receitas ("O que você quer automatizar?") ---------- */

.ah-recipes {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--uni-space-4);
}

@media (max-width: 1023px) { .ah-recipes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .ah-recipes { grid-template-columns: minmax(0, 1fr); gap: var(--uni-space-3); } }

.ah-recipe {
    --ah-accent: var(--uni-color-primary);
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-content: start;
    gap: var(--uni-space-3);
    width: 100%;
    min-width: 0;
    padding: var(--uni-space-4);
    padding-bottom: calc(var(--uni-space-5) + var(--uni-space-2));
    border: 1px solid color-mix(in srgb, var(--ah-accent) 22%, var(--uni-color-border));
    border-radius: var(--uni-radius-lg);
    background: color-mix(in srgb, var(--ah-accent) 4%, var(--uni-color-surface));
    color: var(--uni-color-text);
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: border-color .14s ease, background-color .14s ease;
}

.ah-recipe:hover {
    border-color: color-mix(in srgb, var(--ah-accent) 60%, var(--uni-color-border));
    background: color-mix(in srgb, var(--ah-accent) 10%, var(--uni-color-surface));
}

.ah-recipe:focus-visible { outline: 2px solid var(--uni-color-focus-ring); outline-offset: 2px; }

.ah-recipe-icon {
    display: grid;
    place-items: center;
    width: 100%;
    height: 56px;
    border-radius: var(--uni-radius-md);
    background: color-mix(in srgb, var(--ah-accent) 13%, var(--uni-color-surface));
    color: var(--ah-accent);
}

.ah-recipe-icon .crm-icon { width: 24px; height: 24px; }

.ah-recipe-copy { display: flex; flex-direction: column; gap: var(--uni-space-1); min-width: 0; }
.ah-recipe-copy strong { font-size: var(--uni-font-size-md); font-weight: 600; color: var(--uni-color-text); line-height: 1.35; }
.ah-recipe-copy small { font-size: var(--uni-font-size-sm); color: var(--uni-color-text-muted); line-height: 1.5; }

.ah-recipe-kind {
    position: absolute;
    left: var(--uni-space-4);
    bottom: var(--uni-space-3);
    font-size: var(--uni-font-size-2xs);
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: color-mix(in srgb, var(--ah-accent) 70%, var(--uni-color-text-muted));
}

.ah-recipe-arrow {
    position: absolute;
    right: var(--uni-space-3);
    bottom: var(--uni-space-3);
    color: color-mix(in srgb, var(--ah-accent) 70%, var(--uni-color-text-muted));
}

.ah-recipe-arrow .crm-icon { width: 16px; height: 16px; }

.ah-recipe--primary { --ah-accent: var(--uni-color-primary); }
.ah-recipe--info { --ah-accent: var(--uni-color-info); }
.ah-recipe--success { --ah-accent: var(--uni-color-success); }
.ah-recipe--warning { --ah-accent: var(--uni-color-warning); }
.ah-recipe--danger { --ah-accent: var(--uni-color-danger); }
.ah-recipe--accent { --ah-accent: var(--crm-color-accent, var(--uni-color-info)); }
.ah-recipe--neutral {
    --ah-accent: var(--uni-color-text-muted);
    border-style: dashed;
    background: var(--uni-color-surface);
}

/* ---------- 5. Seletor de escolha exclusiva (com estado selecionado) ---------- */

.ah-choices {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: var(--uni-space-3);
}

.ah-choices--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 767px) { .ah-choices, .ah-choices--2 { grid-template-columns: minmax(0, 1fr); } }

.ah-choice {
    --ah-accent: var(--uni-color-primary);
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
    gap: var(--uni-space-3);
    min-height: 44px;
    padding: var(--uni-space-4);
    padding-right: calc(var(--uni-space-5) + var(--uni-space-4));
    border: 1px solid var(--uni-color-border);
    border-radius: var(--uni-radius-lg);
    background: var(--uni-color-surface);
    cursor: pointer;
    transition: border-color .14s ease, background-color .14s ease;
}

.ah-choice input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none; }

.ah-choice:hover { border-color: var(--uni-color-border-strong, var(--uni-color-border)); background: color-mix(in srgb, var(--uni-color-neutral-soft) 45%, var(--uni-color-surface)); }
.ah-choice:focus-within { outline: 2px solid var(--uni-color-focus-ring); outline-offset: 2px; }

.ah-choice-icon {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: var(--uni-radius-md);
    background: color-mix(in srgb, var(--ah-accent) 12%, var(--uni-color-surface));
    color: var(--ah-accent);
}

.ah-choice-icon .crm-icon { width: 18px; height: 18px; }

.ah-choice-copy { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ah-choice-copy strong { font-size: var(--uni-font-size-sm); font-weight: 600; color: var(--uni-color-text); line-height: 1.35; }
.ah-choice-copy small { font-size: var(--uni-font-size-xs); color: var(--uni-color-text-muted); line-height: 1.45; }

.ah-choice-check {
    position: absolute;
    top: var(--uni-space-4);
    right: var(--uni-space-4);
    display: grid;
    place-items: center;
    width: 20px;
    height: 20px;
    border: 2px solid var(--uni-color-border-strong, var(--uni-color-border));
    border-radius: var(--uni-radius-pill);
    background: var(--uni-color-surface);
    color: var(--uni-color-on-primary);
}

.ah-choice-check .crm-icon { width: 12px; height: 12px; opacity: 0; }

.ah-choice.is-selected {
    border-color: var(--ah-accent);
    background: color-mix(in srgb, var(--ah-accent) 7%, var(--uni-color-surface));
    box-shadow: inset 0 0 0 1px var(--ah-accent);
}

.ah-choice.is-selected .ah-choice-check { border-color: var(--ah-accent); background: var(--ah-accent); }
.ah-choice.is-selected .ah-choice-check .crm-icon { opacity: 1; }

.ah-choice.is-disabled { cursor: not-allowed; opacity: .6; }
.ah-choice.is-disabled:hover { border-color: var(--uni-color-border); background: var(--uni-color-surface); }

.ah-choice-lock {
    display: inline-flex;
    align-items: center;
    gap: var(--uni-space-1);
    margin-top: var(--uni-space-1);
    font-size: var(--uni-font-size-xs);
    color: var(--uni-color-text-muted);
}

/* ---------- 6. Wizard (página, não modal: tela cheia no celular) ---------- */

.ah-wizard {
    display: flex;
    flex-direction: column;
    gap: var(--uni-space-5);
    width: 100%;
    max-width: 960px;
    margin: 0 auto;
    min-width: 0;
}

.ah-wizard-stepper { padding: var(--uni-space-2) 0; }

.ah-wizard-card {
    display: flex;
    flex-direction: column;
    gap: var(--uni-space-5);
    padding: var(--uni-space-5);
    border: 1px solid var(--uni-color-border);
    border-radius: var(--uni-radius-lg);
    background: var(--uni-color-surface);
    min-width: 0;
}

@media (max-width: 767px) { .ah-wizard-card { padding: var(--uni-space-4); gap: var(--uni-space-5); } }

.ah-wizard-head { display: flex; flex-direction: column; gap: var(--uni-space-2); }
.ah-wizard-head h2 { margin: 0; font-size: var(--uni-font-size-xl); font-weight: 600; line-height: 1.3; color: var(--uni-color-text); }
.ah-wizard-head p { margin: 0; font-size: var(--uni-font-size-md); color: var(--uni-color-text-muted); line-height: 1.55; max-width: 70ch; }

.ah-group { display: flex; flex-direction: column; gap: var(--uni-space-3); min-width: 0; }
.ah-group + .ah-group { padding-top: var(--uni-space-5); border-top: 1px solid var(--uni-color-border); }
.ah-group-title { margin: 0; font-size: var(--uni-font-size-md); font-weight: 600; color: var(--uni-color-text); }
.ah-group-hint { margin: 0; font-size: var(--uni-font-size-sm); color: var(--uni-color-text-muted); line-height: 1.5; }

/* UNIPLIM-FC-06 (UX §9.5) — o rodapé é feedback (quando há) + UniWizardNav, que traz a própria grade de três posições. */
.ah-wizard-footer {
    position: sticky;
    bottom: 0;
    z-index: var(--uni-z-sticky);
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: var(--uni-space-2);
    padding: var(--uni-space-4) 0;
    background: linear-gradient(to top, var(--uni-color-app-bg) 72%, color-mix(in srgb, var(--uni-color-app-bg) 0%, transparent));
}

/* Revisão: "Salvar rascunho" (secundária) + "Publicar e ativar" (Primary) dividem o centro; no celular, uma sobre a outra. */
.ah-wizard-center-actions { display: flex; align-items: center; justify-content: center; gap: var(--uni-space-3); flex-wrap: wrap; }

.ah-wizard-feedback { font-size: var(--uni-font-size-sm); color: var(--uni-color-danger); }

/* Celular: o stepper sai (a app bar já diz "Etapa X de 6 · nome") e o rodapé vira barra de ação de verdade —
   fundo sólido e borda; Voltar e Salvar rascunho numa linha, a ação principal em largura total embaixo.
   (UniButton renderiza .app-button: o seletor antigo .uni-btn nunca pegava.) */
@media (max-width: 767px) {
    .ah-wizard-stepper { display: none; }
    .ah-wizard-footer {
        gap: var(--uni-space-2);
        margin-inline: calc(-1 * var(--uni-page-pad-x, 20px));
        /* O contêiner rolável termina no topo da navegação inferior, mas tem a cauda da página como padding:
           sem descontá-la, o conteúdo aparecia entre a barra e a navegação. */
        bottom: calc(-1 * var(--uni-page-tail, 32px));
        padding: var(--uni-space-3) var(--uni-page-pad-x, 20px) calc(var(--uni-space-3) + env(safe-area-inset-bottom, 0px));
        border-top: 1px solid var(--uni-color-border);
        background: var(--uni-color-surface);
    }
    .ah-wizard-center-actions { flex-direction: column-reverse; align-items: stretch; gap: var(--uni-space-2); }
    .ah-wizard-center-actions .app-button { width: 100%; justify-content: center; min-height: calc(var(--uni-space-7) + var(--uni-space-1)); }
}

/* ---------- 7. Timeline linear (editor e revisão) ---------- */

.ah-timeline { display: flex; flex-direction: column; min-width: 0; }

.ah-tl-block {
    --ah-tone: var(--uni-color-text-muted);
    --ah-tone-soft: var(--uni-color-neutral-soft);
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--uni-space-4);
    padding: var(--uni-space-4) var(--ah-card-pad, 20px);
    border: 1px solid var(--uni-color-border);
    border-radius: var(--uni-radius-lg);
    background: var(--uni-color-surface);
    min-width: 0;
}

.ah-tl-block.is-clickable { cursor: pointer; transition: border-color .14s ease, background-color .14s ease; }
.ah-tl-block.is-clickable:hover { border-color: var(--uni-color-primary); background: color-mix(in srgb, var(--uni-color-primary-soft) 40%, var(--uni-color-surface)); }
.ah-tl-block.is-clickable:focus-visible { outline: 2px solid var(--uni-color-focus-ring); outline-offset: 2px; }
.ah-tl-block.has-issue { border-color: color-mix(in srgb, var(--uni-color-danger) 55%, var(--uni-color-border)); }

.ah-tl-icon {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: var(--uni-radius-pill);
    background: var(--ah-tone-soft);
    color: var(--ah-tone);
}

.ah-tl-icon .crm-icon { width: 18px; height: 18px; }

.ah-tl-copy { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ah-tl-kind { font-size: var(--uni-font-size-2xs); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--ah-tone); }
.ah-tl-title { font-size: var(--uni-font-size-md); font-weight: 600; color: var(--uni-color-text); line-height: 1.35; overflow-wrap: anywhere; }
.ah-tl-detail { font-size: var(--uni-font-size-sm); color: var(--uni-color-text-muted); line-height: 1.45; }
.ah-tl-issue { font-size: var(--uni-font-size-xs); color: var(--uni-color-danger); line-height: 1.45; }
.ah-tl-trailing { display: inline-flex; align-items: center; gap: var(--uni-space-2); }

.ah-tl-block--when { --ah-tone: var(--uni-color-primary); --ah-tone-soft: var(--uni-color-primary-soft); }
.ah-tl-block--wait { --ah-tone: var(--uni-color-text-muted); --ah-tone-soft: var(--uni-color-neutral-soft); }
.ah-tl-block--send { --ah-tone: var(--uni-color-success); --ah-tone-soft: var(--uni-color-success-soft); }
.ah-tl-block--task { --ah-tone: var(--uni-color-info); --ah-tone-soft: var(--uni-color-info-soft); }
.ah-tl-block--notify { --ah-tone: var(--uni-color-warning); --ah-tone-soft: var(--uni-color-warning-soft); }
.ah-tl-block--stop {
    --ah-tone: var(--uni-color-danger);
    --ah-tone-soft: var(--uni-color-danger-soft);
    align-items: start;
    background: color-mix(in srgb, var(--uni-color-neutral-soft) 35%, var(--uni-color-surface));
}

/* Conector vertical entre blocos: linha centralizada no ícone (sem texto em pseudo-elemento). */
.ah-tl-connector {
    position: relative;
    height: var(--uni-space-5);
    margin-left: calc(var(--ah-card-pad, 20px) + 19px);
    border-left: 2px solid var(--uni-color-border);
}

.ah-tl-stops { display: flex; flex-wrap: wrap; gap: var(--uni-space-2); margin-top: var(--uni-space-2); }

/* A faixa do "Adicionar passo" também desenha a linha, na mesma posição dos conectores: a linha do tempo
   segue contínua do último passo até o "Pare quando" (antes ela se partia aqui). */
.ah-tl-add {
    position: relative;
    display: flex;
    justify-content: flex-start;
    padding-left: calc(var(--ah-card-pad, 20px) + 40px + var(--uni-space-4));
}

.ah-tl-add::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: calc(var(--ah-card-pad, 20px) + 19px);
    border-left: 2px solid var(--uni-color-border);
}

@media (max-width: 767px) {
    .ah-tl-block { grid-template-columns: 36px minmax(0, 1fr) auto; gap: var(--uni-space-3); padding: var(--uni-space-4); }
    .ah-tl-icon { width: 36px; height: 36px; }
    .ah-tl-connector { margin-left: calc(var(--uni-space-4) + 17px); height: var(--uni-space-4); }
    .ah-tl-add { padding-left: calc(var(--uni-space-4) + 36px + var(--uni-space-3)); }
    .ah-tl-add::before { left: calc(var(--uni-space-4) + 17px); }
}

/* ---------- 8. Editor de passo (modal) ---------- */

.ah-form { display: flex; flex-direction: column; gap: var(--uni-space-5); min-width: 0; }
.ah-form-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: var(--uni-space-4); align-items: end; }
.ah-form-row--tight { grid-template-columns: minmax(96px, 140px) minmax(0, 1fr); }
@media (max-width: 767px) { .ah-form-row, .ah-form-row--tight { grid-template-columns: minmax(0, 1fr); } }
/* UNIPLIM-V2-CC01 OVV-F52 — mesmo defeito do "Adicionar" da Contra-resposta: o `align-self: flex-start` do `.app-button` vencia o
   `align-items: end` da linha e o "Adicionar" do feriado subia para a altura dos rótulos. Volta à base dos campos (42px). */
.ah-holiday-add > .app-button { align-self: end; }

.ah-sentence {
    margin: 0;
    padding: var(--uni-space-3) var(--uni-space-4);
    border-radius: var(--uni-radius-md);
    background: var(--uni-color-neutral-soft);
    font-size: var(--uni-font-size-sm);
    color: var(--uni-color-text);
    line-height: 1.5;
}

.ah-sentence strong { font-weight: 600; }

.ah-textarea { min-height: 132px; resize: vertical; line-height: 1.5; }

.ah-vars { display: flex; flex-wrap: wrap; gap: var(--uni-space-2); }

.ah-var {
    display: inline-flex;
    align-items: center;
    gap: var(--uni-space-1);
    padding: var(--uni-space-1) var(--uni-space-2);
    border: 1px dashed var(--uni-color-border-strong, var(--uni-color-border));
    border-radius: var(--uni-radius-pill);
    background: var(--uni-color-surface);
    color: var(--uni-color-text);
    font: inherit;
    font-size: var(--uni-font-size-xs);
    cursor: pointer;
}

.ah-var:hover { border-color: var(--uni-color-primary); color: var(--uni-color-primary); }
.ah-var:focus-visible { outline: 2px solid var(--uni-color-focus-ring); outline-offset: 2px; }
.ah-var[disabled] { cursor: not-allowed; opacity: .55; }

.ah-preview {
    display: flex;
    flex-direction: column;
    gap: var(--uni-space-2);
    padding: var(--uni-space-4);
    border: 1px solid var(--uni-color-border);
    border-radius: var(--uni-radius-md);
    background: color-mix(in srgb, var(--uni-color-success-soft) 35%, var(--uni-color-surface));
}

.ah-preview p { margin: 0; font-size: var(--uni-font-size-sm); color: var(--uni-color-text); white-space: pre-wrap; line-height: 1.55; overflow-wrap: anywhere; }

/* ---------- 9. Comportamento por canal (dentro × fora da janela) ---------- */

.ah-behavior { display: flex; flex-direction: column; gap: var(--uni-space-3); }

.ah-behavior-row {
    display: grid;
    grid-template-columns: minmax(140px, 0.9fr) minmax(0, 1.6fr);
    gap: var(--uni-space-3) var(--uni-space-4);
    align-items: start;
    padding: var(--uni-space-3) var(--uni-space-4);
    border: 1px solid var(--uni-color-border);
    border-radius: var(--uni-radius-md);
    background: var(--uni-color-surface);
}

.ah-behavior-when { font-size: var(--uni-font-size-sm); font-weight: 600; color: var(--uni-color-text); }
.ah-behavior-what { display: flex; flex-direction: column; gap: var(--uni-space-1); font-size: var(--uni-font-size-sm); color: var(--uni-color-text); min-width: 0; }
.ah-behavior-what small { font-size: var(--uni-font-size-xs); color: var(--uni-color-text-muted); line-height: 1.45; }
.ah-behavior-row.is-blocked { border-color: color-mix(in srgb, var(--uni-color-danger) 50%, var(--uni-color-border)); background: color-mix(in srgb, var(--uni-color-danger-soft) 45%, var(--uni-color-surface)); }
.ah-behavior-row.is-blocked .ah-behavior-what { color: var(--uni-color-danger); }

@media (max-width: 767px) { .ah-behavior-row { grid-template-columns: minmax(0, 1fr); } }

/* ---------- 10. Políticas herdadas ("Padrão da empresa") ---------- */

.ah-policies { display: flex; flex-direction: column; gap: var(--uni-space-3); }

.ah-policy {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr) auto;
    align-items: start;
    gap: var(--uni-space-3) var(--uni-space-4);
    padding: var(--uni-space-4) var(--ah-card-pad, 20px);
    border: 1px solid var(--uni-color-border);
    border-radius: var(--uni-radius-lg);
    background: var(--uni-color-surface);
}

.ah-policy-icon {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: var(--uni-radius-md);
    background: var(--uni-color-neutral-soft);
    color: var(--uni-color-text-muted);
}

.ah-policy-icon .crm-icon { width: 18px; height: 18px; }
.ah-policy-copy { display: flex; flex-direction: column; gap: var(--uni-space-1); min-width: 0; }
.ah-policy-title { margin: 0; font-size: var(--uni-font-size-md); font-weight: 600; color: var(--uni-color-text); }
.ah-policy-value { margin: 0; font-size: var(--uni-font-size-sm); color: var(--uni-color-text); line-height: 1.5; }

.ah-policy-source {
    display: inline-flex;
    align-items: center;
    gap: var(--uni-space-1);
    font-size: var(--uni-font-size-xs);
    color: var(--uni-color-text-muted);
}

.ah-policy-source .crm-icon { width: 14px; height: 14px; }
.ah-policy-source.is-custom { color: var(--uni-color-primary); font-weight: 600; }

.ah-policy-editor {
    grid-column: 2 / -1;
    display: flex;
    flex-direction: column;
    gap: var(--uni-space-4);
    padding-top: var(--uni-space-4);
    border-top: 1px dashed var(--uni-color-border);
}

@media (max-width: 767px) {
    .ah-policy { grid-template-columns: 32px minmax(0, 1fr); }
    .ah-policy-icon { width: 32px; height: 32px; }
    .ah-policy > .ah-inline-actions, .ah-policy-editor { grid-column: 1 / -1; }
}

/* Semana (janela de envio / dias úteis) */
.ah-week { display: flex; flex-direction: column; gap: var(--uni-space-2); }

.ah-week-row {
    display: grid;
    grid-template-columns: minmax(120px, 160px) minmax(0, 1fr);
    align-items: center;
    gap: var(--uni-space-3);
    min-height: 44px;
}

.ah-week-times { display: flex; align-items: center; gap: var(--uni-space-2); flex-wrap: wrap; }
.ah-week-times .app-control { width: 120px; }
.ah-week-off { font-size: var(--uni-font-size-sm); color: var(--uni-color-text-muted); }
@media (max-width: 479px) { .ah-week-row { grid-template-columns: minmax(0, 1fr); gap: var(--uni-space-2); } }

/* ---------- 11. Simulação / preflight ---------- */

.ah-verdicts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--uni-space-3); }
@media (max-width: 767px) { .ah-verdicts { grid-template-columns: minmax(0, 1fr); } }

.ah-verdict {
    --ah-tone: var(--uni-color-success);
    display: flex;
    flex-direction: column;
    gap: var(--uni-space-1);
    padding: var(--uni-space-3) var(--uni-space-4);
    border: 1px solid var(--uni-color-border);
    border-left: 3px solid var(--ah-tone);
    border-radius: var(--uni-radius-md);
    background: var(--uni-color-surface);
}

.ah-verdict--warning { --ah-tone: var(--uni-color-warning); }
.ah-verdict--danger { --ah-tone: var(--uni-color-danger); }
.ah-verdict--neutral { --ah-tone: var(--uni-color-text-muted); }
.ah-verdict strong { font-size: var(--uni-font-size-sm); font-weight: 600; color: var(--uni-color-text); }
.ah-verdict span { font-size: var(--uni-font-size-xs); color: var(--uni-color-text-muted); line-height: 1.45; }

.ah-plan { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; }

.ah-plan li {
    display: grid;
    grid-template-columns: minmax(150px, 190px) minmax(0, 1fr);
    gap: var(--uni-space-4);
    padding: var(--uni-space-3) 0;
    border-bottom: 1px solid var(--uni-color-border);
}

.ah-plan li:last-child { border-bottom: 0; }
.ah-plan-when { font-size: var(--uni-font-size-sm); font-weight: 600; color: var(--uni-color-text); font-variant-numeric: tabular-nums; }
.ah-plan-what { display: flex; flex-direction: column; gap: var(--uni-space-1); min-width: 0; font-size: var(--uni-font-size-sm); color: var(--uni-color-text); }
.ah-plan-what small { font-size: var(--uni-font-size-xs); color: var(--uni-color-text-muted); line-height: 1.45; }
@media (max-width: 767px) { .ah-plan li { grid-template-columns: minmax(0, 1fr); gap: var(--uni-space-1); } }

.ah-checks { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: var(--uni-space-2); }

.ah-check {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr);
    gap: var(--uni-space-3);
    align-items: start;
    padding: var(--uni-space-3) var(--uni-space-4);
    border-radius: var(--uni-radius-md);
    background: color-mix(in srgb, var(--uni-color-neutral-soft) 45%, var(--uni-color-surface));
}

.ah-check-icon { display: grid; place-items: center; width: 24px; height: 24px; border-radius: var(--uni-radius-pill); }
.ah-check-icon .crm-icon { width: 14px; height: 14px; }
.ah-check--ok .ah-check-icon { background: var(--uni-color-success-soft); color: var(--uni-color-success); }
.ah-check--warning .ah-check-icon { background: var(--uni-color-warning-soft); color: var(--uni-color-warning); }
.ah-check--blocked .ah-check-icon { background: var(--uni-color-danger-soft); color: var(--uni-color-danger); }
.ah-check-copy { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ah-check-copy strong { font-size: var(--uni-font-size-sm); font-weight: 600; color: var(--uni-color-text); }
.ah-check-copy span { font-size: var(--uni-font-size-sm); color: var(--uni-color-text-muted); line-height: 1.45; }

.ah-issues { margin: 0; padding-left: var(--uni-space-5); display: flex; flex-direction: column; gap: var(--uni-space-1); font-size: var(--uni-font-size-sm); color: var(--uni-color-danger); line-height: 1.45; }

/* ---------- 12. Acompanhamento individual (drawer) ---------- */

.ah-drawer-head { display: flex; flex-direction: column; gap: var(--uni-space-3); }
.ah-drawer-actions { display: flex; flex-wrap: wrap; gap: var(--uni-space-2); }

.ah-next {
    display: flex;
    flex-direction: column;
    gap: var(--uni-space-1);
    padding: var(--uni-space-3) var(--uni-space-4);
    border-radius: var(--uni-radius-md);
    background: color-mix(in srgb, var(--uni-color-primary-soft) 55%, var(--uni-color-surface));
}

.ah-next--warning { background: color-mix(in srgb, var(--uni-color-warning-soft) 70%, var(--uni-color-surface)); }
.ah-next--muted { background: var(--uni-color-neutral-soft); }
.ah-next strong { font-size: var(--uni-font-size-sm); font-weight: 600; color: var(--uni-color-text); }
.ah-next span { font-size: var(--uni-font-size-sm); color: var(--uni-color-text-muted); line-height: 1.5; }

.ah-block { display: flex; flex-direction: column; gap: var(--uni-space-3); min-width: 0; }
.ah-block-title { margin: 0; font-size: var(--uni-font-size-md); font-weight: 600; color: var(--uni-color-text); }

.ah-facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--uni-space-3) var(--uni-space-4);
    margin: 0;
}

.ah-facts > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ah-facts dt { font-size: var(--uni-font-size-2xs); font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--uni-color-text-muted); }
.ah-facts dd { margin: 0; font-size: var(--uni-font-size-sm); font-weight: 600; color: var(--uni-color-text); overflow-wrap: anywhere; }
.ah-facts .ah-facts-wide { grid-column: 1 / -1; }
@media (max-width: 479px) { .ah-facts { grid-template-columns: minmax(0, 1fr); } }

.ah-events { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; }

.ah-event {
    --ah-tone: var(--uni-color-border-strong, var(--uni-color-border));
    position: relative;
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr);
    gap: var(--uni-space-3);
    padding-bottom: var(--uni-space-4);
}

.ah-event:last-child { padding-bottom: 0; }

.ah-event-rail {
    position: relative;
    display: flex;
    justify-content: center;
}

.ah-event-dot {
    position: relative;
    z-index: 1;
    width: 10px;
    height: 10px;
    margin-top: 5px;
    border-radius: var(--uni-radius-pill);
    background: var(--ah-tone);
    box-shadow: 0 0 0 3px var(--uni-color-surface);
}

.ah-event:not(:last-child) .ah-event-rail { border-left: 0; }
.ah-event:not(:last-child) .ah-event-line {
    position: absolute;
    top: 16px;
    bottom: calc(-1 * var(--uni-space-4));
    left: 50%;
    width: 2px;
    transform: translateX(-50%);
    background: var(--uni-color-border);
}

.ah-event--success { --ah-tone: var(--uni-color-success); }
.ah-event--info { --ah-tone: var(--uni-color-info); }
.ah-event--warning { --ah-tone: var(--uni-color-warning); }
.ah-event--danger { --ah-tone: var(--uni-color-danger); }
.ah-event--primary { --ah-tone: var(--uni-color-primary); }

.ah-event-copy { display: flex; flex-direction: column; gap: var(--uni-space-1); min-width: 0; }
.ah-event-title { font-size: var(--uni-font-size-sm); font-weight: 600; color: var(--uni-color-text); line-height: 1.4; }
.ah-event-meta { font-size: var(--uni-font-size-xs); color: var(--uni-color-text-muted); line-height: 1.4; }

.ah-bubble {
    margin-top: var(--uni-space-1);
    padding: var(--uni-space-3);
    border-radius: var(--uni-radius-md);
    background: color-mix(in srgb, var(--uni-color-success-soft) 45%, var(--uni-color-surface));
    border: 1px solid var(--uni-color-border);
    font-size: var(--uni-font-size-sm);
    line-height: 1.5;
    color: var(--uni-color-text);
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.ah-badges { display: flex; flex-wrap: wrap; gap: var(--uni-space-2); }

/* ---------- 13. Resultados ---------- */

.ah-metrics {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: var(--uni-space-4);
    margin: 0;
}

.ah-metric {
    display: flex;
    flex-direction: column;
    gap: var(--uni-space-1);
    padding: var(--uni-space-4) var(--ah-card-pad, 20px);
    border: 1px solid var(--uni-color-border);
    border-radius: var(--uni-radius-lg);
    background: var(--uni-color-surface);
    min-width: 0;
}

.ah-metric dt { font-size: var(--uni-font-size-sm); font-weight: 500; color: var(--uni-color-text-muted); }
.ah-metric dd { margin: 0; font-size: var(--uni-font-size-xl); font-weight: 600; color: var(--uni-color-text); font-variant-numeric: tabular-nums; }
.ah-metric small { font-size: var(--uni-font-size-xs); color: var(--uni-color-text-muted); line-height: 1.45; }

.ah-funnel { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: var(--uni-space-3); }

.ah-funnel li {
    display: grid;
    grid-template-columns: minmax(160px, 1.1fr) minmax(0, 2fr) minmax(64px, auto);
    align-items: center;
    gap: var(--uni-space-3) var(--uni-space-4);
}

.ah-funnel-label { display: flex; flex-direction: column; gap: 2px; font-size: var(--uni-font-size-sm); color: var(--uni-color-text); }
.ah-funnel-label small { font-size: var(--uni-font-size-xs); color: var(--uni-color-text-muted); line-height: 1.4; }
.ah-funnel-bar { height: 8px; border-radius: var(--uni-radius-pill); background: var(--uni-color-neutral-soft); overflow: hidden; }
.ah-funnel-bar > span { display: block; height: 100%; border-radius: inherit; background: var(--uni-color-primary); }
.ah-funnel-value { font-size: var(--uni-font-size-sm); font-weight: 600; text-align: right; color: var(--uni-color-text); font-variant-numeric: tabular-nums; }
.ah-funnel-value.is-unsupported { font-weight: 500; color: var(--uni-color-text-muted); }

@media (max-width: 767px) {
    .ah-funnel li { grid-template-columns: minmax(0, 1fr) auto; }
    .ah-funnel-bar { grid-column: 1 / -1; grid-row: 2; }
}

/* ---------- 14. Barra de alterações não publicadas (detalhe) ---------- */

.ah-dirty-bar {
    position: sticky;
    bottom: 0;
    z-index: var(--uni-z-sticky);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--uni-space-3) var(--uni-space-4);
    flex-wrap: wrap;
    padding: var(--uni-space-3) var(--uni-space-4);
    border: 1px solid color-mix(in srgb, var(--uni-color-primary) 35%, var(--uni-color-border));
    border-radius: var(--uni-radius-lg);
    background: color-mix(in srgb, var(--uni-color-primary-soft) 70%, var(--uni-color-surface));
    box-shadow: var(--uni-shadow-md);
}

.ah-dirty-bar p { margin: 0; font-size: var(--uni-font-size-sm); color: var(--uni-color-text); line-height: 1.45; }

@media (max-width: 767px) {
    .ah-dirty-bar { margin-bottom: env(safe-area-inset-bottom, 0px); }
    .ah-dirty-bar .ah-inline-actions { width: 100%; }
    .ah-dirty-bar .uni-btn { flex: 1 1 0; justify-content: center; }
}

/* ---------- 15. Divulgação progressiva ---------- */

.ah-advanced > summary {
    display: inline-flex;
    align-items: center;
    gap: var(--uni-space-2);
    min-height: 44px;
    font-size: var(--uni-font-size-sm);
    font-weight: 600;
    color: var(--uni-color-primary);
    cursor: pointer;
    list-style: none;
}

.ah-advanced > summary::-webkit-details-marker { display: none; }
.ah-advanced > summary .crm-icon { width: 16px; height: 16px; transition: transform .14s ease; }
.ah-advanced[open] > summary .crm-icon { transform: rotate(180deg); }
.ah-advanced > summary:focus-visible { outline: 2px solid var(--uni-color-focus-ring); outline-offset: 2px; border-radius: var(--uni-radius-xs); }
.ah-advanced-body { display: flex; flex-direction: column; gap: var(--uni-space-4); padding: var(--uni-space-2) 0 0; }

/* Seletor: variante sem ícone e acentos por opção (sem estilo inline). */
.ah-choice--noicon { grid-template-columns: minmax(0, 1fr); }
.ah-choice--primary { --ah-accent: var(--uni-color-primary); }
.ah-choice--info { --ah-accent: var(--uni-color-info); }
.ah-choice--success { --ah-accent: var(--uni-color-success); }
.ah-choice--warning { --ah-accent: var(--uni-color-warning); }
.ah-choice--danger { --ah-accent: var(--uni-color-danger); }
.ah-choice--neutral { --ah-accent: var(--uni-color-text-muted); }

/* Texto só para leitores de tela (cabeçalho de coluna de ação, rótulos). */
.ah-sr-only {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* Histórico — reações imediatas e o recorte por situação dos acompanhamentos. */
.ah-list-executions .uni-list-row {
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 0.4fr);
}

.ah-history-segment { padding: 0; }

.ah-history-controls .uni-select,
.ah-history-controls select { min-width: 180px; }

@media (max-width: 767px) {
    .ah-history-controls { width: 100%; }
    .ah-history-controls .uni-select,
    .ah-history-controls select { width: 100%; }
}

/* Dado dentro do texto de uma mensagem: marcador legível, nunca a sintaxe {{chave}}. */
.ah-var-token {
    display: inline-block;
    padding: 0 var(--uni-space-1);
    border-radius: var(--uni-radius-sm);
    background: var(--uni-color-primary-soft);
    color: var(--uni-color-primary);
    font-weight: 500;
    line-height: 1.45;
    white-space: nowrap;
}

/* Resultado de uma intervenção no drawer: frase inteira, sem reticências — é a explicação do que aconteceu. */
.ah-notice-wrap .uni-inline-notice-text { white-space: normal; overflow: visible; text-overflow: clip; line-height: 1.45; }
.ah-notice-wrap { align-items: flex-start; }

/* Central de políticas: trava à esquerda, "Editar" sempre na borda direita — a coluna de ação alinha entre
   linhas com e sem trava; rótulo do switch centralizado com o botão. */
.ah-policy-actions { justify-content: flex-end; align-items: center; }
.ah-policy-actions .uni-switch-row { align-items: center; margin: 0; }
/* UNIPLIM-V2-CC01 OVV-F67 — a linha da política alinha pelo topo (`align-items: start`, por causa do editor que abre embaixo);
   a coluna de ação volta ao eixo da primeira linha, e Travar fica centrado com a ação circular Editar/Fechar (UniIconAction). */
.ah-policy > .ah-policy-actions { align-self: center; }
.ah-policy-actions .app-icon-action { flex: 0 0 auto; }

/* Resultados no celular: duas métricas por linha, como as fichas da visão geral — uma por linha alongava a página. */
@media (max-width: 479px) {
    .ah-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--uni-space-3); }
}

/* ---------- Receitas guiadas (Instagram, Aniversário) ---------- */

/* Uma forma de resposta / um público: chave no topo e o conteúdo aparece só quando ligada (divulgação progressiva). */
.ah-reply-channel {
    display: flex;
    flex-direction: column;
    gap: var(--uni-space-4);
    padding: var(--uni-space-4) var(--ah-card-pad, 20px);
    border: 1px solid var(--uni-color-border);
    border-radius: var(--uni-radius-lg);
    background: var(--uni-color-surface);
}

.ah-reply-channel.is-on { border-color: color-mix(in srgb, var(--uni-color-primary) 45%, var(--uni-color-border)); }

.ah-reply-list { display: flex; flex-direction: column; gap: var(--uni-space-3); }

.ah-reply-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--uni-space-2); }

@media (max-width: 767px) { .ah-reply-item { grid-template-columns: minmax(0, 1fr); } }

.ah-keyword-entry { display: flex; gap: var(--uni-space-2); align-items: center; max-width: 520px; }
.ah-keyword-entry .app-control { flex: 1 1 auto; min-width: 0; }

.ah-tags { display: flex; flex-wrap: wrap; gap: var(--uni-space-2); }

.ah-tag-remove {
    display: inline-grid;
    place-items: center;
    width: 20px;
    height: 20px;
    margin-left: var(--uni-space-1);
    border: 0;
    border-radius: var(--uni-radius-pill);
    background: transparent;
    color: var(--uni-color-text-muted);
    cursor: pointer;
}
.ah-tag-remove:hover { background: var(--uni-color-neutral-soft); color: var(--uni-color-text); }
.ah-tag-remove:focus-visible { outline: 2px solid var(--uni-color-focus-ring); outline-offset: 1px; }
.ah-tag-remove .crm-icon { width: 12px; height: 12px; }

/* Só o controle fica estreito; a dica usa a largura da linha (não quebra em quatro linhas). */
.ah-field-narrow .app-control { max-width: 220px; }

/* Prévia do Instagram: comentário, resposta encaixada e DM — sem imitar a marca, só a estrutura da conversa. */
.ah-ig-preview {
    display: flex;
    flex-direction: column;
    gap: var(--uni-space-3);
    padding: var(--uni-space-4);
    border: 1px solid var(--uni-color-border);
    border-radius: var(--uni-radius-lg);
    background: color-mix(in srgb, var(--uni-color-neutral-soft) 45%, var(--uni-color-surface));
    max-width: 560px;
}
.ah-ig-comment { display: flex; flex-wrap: wrap; gap: var(--uni-space-1) var(--uni-space-2); font-size: var(--uni-font-size-sm); line-height: 1.45; color: var(--uni-color-text); }
.ah-ig-reply { margin-left: var(--uni-space-6); padding-left: var(--uni-space-3); border-left: 2px solid var(--uni-color-border); }
.ah-ig-handle { font-weight: 600; }
.ah-ig-dm { display: flex; flex-direction: column; gap: var(--uni-space-1); align-items: flex-start; }

/* "Ver N pessoas" — modal com navegação em níveis (rodada 6 do Owner). Altura fixa: lista e pessoa trocam de lugar
   dentro da mesma moldura, sem o modal crescer e encolher a cada ida e volta. */
.ah-people-modal { height: min(720px, 92vh); }
.ah-people-modal .uni-modal-body > div:not([hidden]) { display: flex; flex-direction: column; gap: var(--uni-space-5); }
.ah-people-modal .ah-facts { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
@media (max-width: 767px) { .ah-people-modal { height: 92vh; } }

/* A última pessoa aberta a partir da lista: a mesma marca do hover, para saber de onde se voltou. */
.uni-list-row-link.is-recent {
    border-color: color-mix(in srgb, var(--uni-color-primary) 40%, var(--uni-color-border));
    background: color-mix(in srgb, var(--uni-color-primary-soft) 40%, var(--uni-color-surface));
}
.uni-scan-row.is-recent { border-color: color-mix(in srgb, var(--uni-color-primary) 40%, var(--uni-color-border)); }


/* ---------- UNIPLIM-AUTOMATION-FOLLOWUP-04 — card de capacidade (oferta comercial contextual) ----------
   Uma oferta só, um CTA, sem popup/carrossel/piscar. Mesma linguagem do modal comercial (gradiente da marca +
   cartão suave), em formato de faixa: arte product-native à esquerda, texto e ação à direita; empilha no celular. */
.uni-capacity {
    position: relative; display: grid; grid-template-columns: 148px minmax(0, 1fr); gap: var(--uni-space-4);
    padding: var(--uni-space-4); border-radius: var(--uni-radius-lg);
    border: 1px solid color-mix(in srgb, var(--uni-color-primary) 30%, var(--uni-color-border));
    background: color-mix(in srgb, var(--uni-color-primary-soft) 35%, var(--uni-color-surface));
}
/* Aviso discreto: faixa compacta de uma linha (ícone, título + medidor fino, oferta em texto, CTA pequeno). */
.uni-capacity.is-nudge { grid-template-columns: 40px minmax(0, 1fr); align-items: center; gap: var(--uni-space-3); padding: var(--uni-space-2) calc(var(--uni-space-3) + 32px) var(--uni-space-2) var(--uni-space-3); }
.uni-capacity.is-nudge .uni-capacity-art { width: 40px; height: 40px; aspect-ratio: auto; align-self: center; }
.uni-capacity.is-nudge .uni-capacity-eyebrow { display: none; }
.uni-capacity.is-nudge .uni-capacity-body { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: var(--uni-space-4); row-gap: 2px; align-items: center; }
.uni-capacity.is-nudge .uni-capacity-body > * { grid-column: 1; }
.uni-capacity.is-nudge .uni-capacity-title { font-size: var(--uni-font-size-sm); }
.uni-capacity.is-nudge .uni-capacity-meter { max-width: 420px; font-size: var(--uni-font-size-xs); }
.uni-capacity.is-nudge .uni-capacity-text { font-size: var(--uni-font-size-xs); color: var(--uni-color-text-muted); }
.uni-capacity.is-nudge .uni-capacity-offer { padding: 0; border: 0; background: none; font-size: var(--uni-font-size-xs); font-weight: 400; color: var(--uni-color-text-muted); }
.uni-capacity.is-nudge .uni-capacity-actions { grid-column: 2; grid-row: 1 / span 4; margin: 0; }
.uni-capacity-art { border-radius: var(--uni-radius-md); overflow: hidden; align-self: start; aspect-ratio: 4 / 3; }
.uni-capacity-art svg { display: block; width: 100%; height: 100%; }
.uni-capacity-flow { stroke-dasharray: 6 6; }
@media (prefers-reduced-motion: no-preference) {
    .uni-capacity-flow { animation: uni-capacity-flow 2.4s linear infinite; }
}
@keyframes uni-capacity-flow { to { stroke-dashoffset: -24; } }
.uni-capacity-body { display: flex; flex-direction: column; gap: var(--uni-space-2); min-width: 0; }
.uni-capacity-eyebrow { margin: 0; font-size: var(--uni-font-size-xs); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--uni-color-primary); }
.uni-capacity-title { margin: 0; font-size: var(--uni-font-size-md); font-weight: 700; line-height: 1.35; color: var(--uni-color-text); }
.uni-capacity-meter { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--uni-space-3); font-size: var(--uni-font-size-sm); color: var(--uni-color-text-muted); }
.uni-capacity-meter strong { color: var(--uni-color-text); }
.uni-capacity-text { margin: 0; font-size: var(--uni-font-size-sm); line-height: 1.5; color: var(--uni-color-text); }
.uni-capacity-hint { margin: 0; font-size: var(--uni-font-size-xs); line-height: 1.5; color: var(--uni-color-text-muted); }
.uni-capacity-offer {
    margin: 0; padding: var(--uni-space-2) var(--uni-space-3); border-radius: var(--uni-radius-md);
    background: var(--uni-color-surface); border: 1px solid var(--uni-color-border);
    font-size: var(--uni-font-size-sm); font-weight: 600; color: var(--uni-color-text);
}
.uni-capacity-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--uni-space-2) var(--uni-space-3); margin-top: var(--uni-space-1); }
.uni-capacity-link { font-size: var(--uni-font-size-sm); font-weight: 600; color: var(--uni-color-primary); text-decoration: none; }
.uni-capacity-link:hover { text-decoration: underline; }
.uni-capacity-link:focus-visible { outline: 2px solid var(--uni-color-focus-ring); outline-offset: 2px; border-radius: var(--uni-radius-md); }
.uni-capacity-dismiss {
    position: absolute; top: var(--uni-space-2); right: var(--uni-space-2); width: 28px; height: 28px; display: grid; place-items: center;
    border: 0; border-radius: var(--uni-radius-pill); background: transparent; color: var(--uni-color-text-muted); cursor: pointer;
}
.uni-capacity-dismiss:hover { background: var(--uni-color-neutral-soft); color: var(--uni-color-text); }
.uni-capacity-dismiss:focus-visible { outline: 2px solid var(--uni-color-focus-ring); outline-offset: 1px; }
.uni-capacity-dismiss .crm-icon { width: 16px; height: 16px; }
@media (max-width: 767px) {
    .uni-capacity, .uni-capacity.is-nudge { grid-template-columns: minmax(0, 1fr); }
    .uni-capacity-art { aspect-ratio: auto; height: 96px; }
    .uni-capacity.is-nudge .uni-capacity-art { display: none; }
    .uni-capacity.is-nudge .uni-capacity-body { grid-template-columns: minmax(0, 1fr); }
    .uni-capacity.is-nudge .uni-capacity-actions { grid-column: 1; grid-row: auto; margin-top: var(--uni-space-1); }
    .uni-capacity.is-nudge .uni-capacity-actions > * { flex: 0 0 auto; }
    .uni-capacity-actions > * { flex: 1 1 100%; justify-content: center; text-align: center; }
}

/* UNIPLIM-DEMO-UAT-CLOSURE-01 — AUTO-02/03, BUG-05 (UX-PARITY-01, UX-RESPONSIVE-01): faixa de filtros do Histórico.
   Busca explícita com largura própria (lupa e placeholder na mesma linha, sem estourar) + período + situação.
   Celular: a busca ocupa a linha inteira, os seletores dividem a linha de baixo — a capability é a mesma. */
.ah-history-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--uni-space-3);
    margin-bottom: var(--uni-space-4);
}

.ah-history-filters .ah-history-search {
    flex: 1 1 360px;
    min-width: min(100%, 280px);
}

.ah-history-filters .ah-history-search input {
    min-width: 0;
    text-overflow: ellipsis;
}

.ah-history-filters .uni-select,
.ah-history-filters select {
    flex: 0 0 auto;
    min-width: 180px;
}

.ah-history-more {
    display: flex;
    justify-content: center;
    padding-top: var(--uni-space-4);
}

@media (max-width: 767px) {
    .ah-history-filters .ah-history-search {
        flex-basis: 100%;
    }

    .ah-history-filters .uni-select,
    .ah-history-filters select {
        flex: 1 1 0;
        min-width: 0;
    }
}

/* UNIPLIM-DEMO-UAT-CLOSURE-01 (AUTO-BUG-04) — "Ativa · alterações não publicadas" não invade a coluna vizinha. */
.ah-list-automations .ah-status-cell {
    min-width: 0;
    overflow: hidden;
}

.ah-list-automations .ah-status-badge {
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
    text-align: left;
    line-height: 1.25;
}
