
:root {
  --ab-azul-900:#0B1E4D; --ab-azul-800:#12296B; --ab-azul-700:#1D4ED8;
  --ab-azul-500:#2563EB; --ab-azul-100:#EAF1FF; --ab-borda:#E3E8F2;
}
body { background:#F5F7FB; font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
.ab-topo {
  background: radial-gradient(circle at 15% 0%, var(--ab-azul-700) 0%, var(--ab-azul-900) 65%);
  color:#fff; padding:1.1rem 1.5rem;
}
.ab-topo h1 { font-size:1.15rem; font-weight:700; margin:0; }
.ab-topo .sub { font-size:.82rem; color:#cfe0ff; }
.ab-login-wrap { min-height:100vh; display:flex; align-items:center; justify-content:center; background:var(--ab-azul-900); }
.ab-login-card { background:#fff; border-radius:16px; padding:2.2rem; max-width:380px; width:100%; text-align:center; box-shadow:0 20px 60px rgba(0,0,0,.35); }
.ab-tabs { display:flex; gap:.4rem; padding:.8rem 1.5rem 0; flex-wrap:wrap; }
.ab-tab { border:none; background:transparent; padding:.5rem 1rem; border-radius:999px 999px 0 0; font-weight:600; color:#5b6b8c; cursor:pointer; }
.ab-tab.active { background:#fff; color:var(--ab-azul-800); }
.ab-corpo { background:#fff; margin:0 1.5rem 1.5rem; padding:1.4rem; border-radius:0 12px 12px 12px; box-shadow:0 2px 10px rgba(20,30,60,.06); }
.ab-card { border:1px solid var(--ab-borda); border-radius:10px; padding:1rem; margin-bottom:.8rem; }
.ab-subtabs { display:flex; gap:1.2rem; border-bottom:1px solid var(--ab-borda); margin-bottom:1rem; flex-wrap:wrap; }
.ab-subtab { border:none; background:transparent; padding:.5rem .1rem .6rem; margin-bottom:-1px; font-weight:600; font-size:.9rem; color:#5b6b8c; cursor:pointer; border-bottom:2px solid transparent; }
.ab-subtab.active { color:var(--ab-azul-700); border-bottom-color:var(--ab-azul-700); }
.ab-subtab-painel { display:none; }
.ab-subtab-painel.active { display:block; }
.ab-confirm-msg { color:#1b8a5a; font-size:.78rem; font-weight:600; white-space:nowrap; opacity:1; transition:opacity .6s ease; }
.ab-confirm-msg.fade { opacity:0; }
.ab-badge-livre { background:#DCFCE7; color:#166534; }
.ab-badge-ocupado { background:#FEE2E2; color:#991B1B; }
table.ab-tabela { width:100%; font-size:.88rem; }
table.ab-tabela th { color:#5b6b8c; font-weight:600; font-size:.78rem; text-transform:uppercase; }
th.ab-th-sortavel { cursor:pointer; user-select:none; white-space:nowrap; }
th.ab-th-sortavel:hover { color:#0B1E4D; }
.ab-filtros .form-select { font-size:.85rem; }
.ab-msg-erro { background:#FEE2E2; color:#991B1B; border-radius:8px; padding:.6rem .9rem; font-size:.86rem; }
.ab-msg-ok { background:#DCFCE7; color:#166534; border-radius:8px; padding:.6rem .9rem; font-size:.86rem; }

/* 26/09/2026 -- confirmação de presença por e-mail (aba Agenda geral) */
.ab-conf-resumo { display:flex; flex-wrap:wrap; gap:8px; align-items:flex-start; margin:0 0 14px; }
.ab-conf-kpi { border:1px solid #e5e7eb; background:#fff; border-radius:10px; padding:8px 14px; font-size:20px; font-weight:700; color:#0B1E4D; line-height:1.1; text-align:left; cursor:pointer; }
.ab-conf-kpi span { display:block; font-size:11px; font-weight:500; color:#6b7280; }
.ab-conf-kpi.ok { border-color:#bbf7d0; background:#f0fdf4; }
.ab-conf-kpi.pend { border-color:#fde68a; background:#fffbeb; }
.ab-conf-kpi.nao { border-color:#fecaca; background:#fef2f2; }
.ab-conf-acoes { margin-left:auto; text-align:right; }
.ab-conf { min-width:132px; font-size:12px; font-weight:600; }
.ab-conf-pendente { background-color:#fffbeb; color:#92400e; }
.ab-conf-confirmado { background-color:#f0fdf4; color:#166534; }
.ab-conf-recusado { background-color:#fef2f2; color:#991B1B; }

/* 07/10/2026 -- multi-feira: seletor de feira no topo + aba Feiras */
.ab-feira-seletor { display:flex; align-items:center; gap:.5rem; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.25); border-radius:10px; padding:.35rem .6rem; }
.ab-feira-seletor label { font-size:.75rem; color:#cfe0ff; font-weight:600; text-transform:uppercase; letter-spacing:.03em; margin:0; }
.ab-feira-seletor select { min-width:200px; max-width:320px; font-weight:600; }
.ab-feira-cor { display:inline-block; width:12px; height:12px; border-radius:50%; vertical-align:middle; margin-right:6px; border:1px solid rgba(0,0,0,.15); }
.ab-feira-card { border:1px solid var(--ab-borda); border-radius:10px; padding:1rem; margin-bottom:.8rem; display:flex; gap:1rem; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; }
.ab-feira-card.inativa { opacity:.6; }
.ab-feira-card h6 { margin:0 0 .2rem; font-weight:700; }
.ab-feira-meta { font-size:.8rem; color:#5b6b8c; }
.ab-feira-status { font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.03em; border-radius:999px; padding:2px 10px; background:#EAF1FF; color:#1D4ED8; }
.ab-feira-status.encerrada { background:#F1F5F9; color:#64748B; }
.ab-feira-status.rascunho { background:#FEF9C3; color:#854D0E; }
.ab-feira-status.em_andamento, .ab-feira-status.agenda_aberta { background:#DCFCE7; color:#166534; }
@media (max-width: 640px) {
  .ab-feira-seletor { width:100%; }
  .ab-feira-seletor select { min-width:0; flex:1; }
}

/* 07/10/2026 -- números por feira (só administradores) */
.ab-feira-numeros { display:flex; flex-wrap:wrap; gap:14px; margin-top:.5rem; font-size:.8rem; color:#5b6b8c; }
.ab-feira-numeros strong { color:#0B1E4D; font-size:.95rem; font-variant-numeric: tabular-nums; }
.ab-feira-totais { display:grid; grid-template-columns:repeat(4, 1fr); gap:.6rem; margin:.4rem 0 1rem; }
.ab-feira-totais div { border:1px solid var(--ab-borda); border-radius:10px; padding:.6rem .8rem; font-size:.78rem; color:#5b6b8c; }
.ab-feira-totais strong { display:block; font-size:1.35rem; color:#0B1E4D; line-height:1.1; font-variant-numeric: tabular-nums; }
@media (max-width: 640px) { .ab-feira-totais { grid-template-columns:repeat(2, 1fr); } }

/* 07/10/2026 -- Leads separados em abas Fornecedores / Compradores, com pendentes */
.ab-tab-selo { display:inline-flex; align-items:center; justify-content:center; min-width:20px; height:20px; padding:0 6px; border-radius:999px; background:#F59E0B; color:#fff; font-size:.72rem; font-weight:700; margin-left:4px; vertical-align:middle; }
.ab-lead-abas { display:grid; grid-template-columns:1fr 1fr; gap:.6rem; margin-bottom:.8rem; }
.ab-lead-aba { border:2px solid var(--ab-borda); background:#fff; border-radius:12px; padding:.7rem .9rem; text-align:left; cursor:pointer; display:flex; flex-direction:column; gap:.2rem; }
.ab-lead-aba:hover { border-color:#c7d7fe; }
.ab-lead-aba.active { border-color:var(--ab-azul-700); background:var(--ab-azul-100); }
.ab-lead-aba-nome { font-weight:700; color:var(--ab-azul-900); font-size:1rem; }
.ab-lead-aba-total { display:inline-block; background:#e5e7eb; color:#374151; border-radius:999px; padding:0 8px; font-size:.78rem; margin-left:2px; }
.ab-lead-aba.active .ab-lead-aba-total { background:#fff; }
.ab-lead-aba-pend { font-size:.82rem; font-weight:700; color:#92400E; }
.ab-lead-aba-ok { font-size:.82rem; color:#166534; }
.ab-lead-pendente { border-left:4px solid #F59E0B; }
@media (max-width: 560px) { .ab-lead-aba { padding:.6rem; } .ab-lead-aba-nome { font-size:.92rem; } .ab-lead-aba-pend, .ab-lead-aba-ok { font-size:.76rem; } }

/* 07/10/2026: planos de acesso pós-feira */
.ab-acesso-encerrado { max-width:520px; margin:3rem auto; text-align:center; background:#fff; border:1px solid var(--ab-borda); border-radius:14px; padding:2rem 1.5rem; }
.ab-link-novo { display:flex; gap:.5rem; align-items:center; background:#F0FDF4; border:1px solid #BBF7D0; border-radius:10px; padding:.6rem; }
.ab-link-novo input { font-family: ui-monospace, Menlo, Consolas, monospace; font-size:.78rem; }

/* 09/10/2026: respostas do formulário de pré-inscrição no detalhe do lead */
.ab-respostas { display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:.8rem; margin:.4rem 0 .9rem; }
.ab-resp-sec { background:#f8faff; border:1px solid #e3e9f6; border-radius:10px; padding:.6rem .8rem; }
.ab-resp-tit { font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#1D4ED8; margin-bottom:.35rem; }
.ab-resp-sec dl { margin:0; font-size:.82rem; }
.ab-resp-sec dt { color:#6b7591; font-weight:500; }
.ab-resp-sec dd { margin:0 0 .35rem; color:#1f2a44; white-space:pre-line; }
.ab-fm-secao { border:1px solid var(--ab-borda); border-radius:10px; padding:.7rem .8rem; margin-bottom:.7rem; background:#fcfdff; }
.ab-fm-q { border-top:1px dashed #e3e7ef; padding:.5rem 0; }
.ab-fm-q.off { opacity:.5; }
.ab-fm-q-l1 { display:flex; gap:.5rem; align-items:center; flex-wrap:wrap; }
.ab-fm-q-l1 .fm-q[data-k=rotulo] { flex:1 1 280px; }

/* 09/10/2026: sugestão de substituto */
.ab-subst-alerta { background:#FFFBEB; border:1px solid #FDE68A; border-radius:10px; padding:.6rem .8rem; font-size:.86rem; margin-bottom:.8rem; }
tr.ab-linha-subst td { background:#FFFBEB !important; }
.ab-subst-painel { border-color:#FDE68A; }
.ab-subst-lista { display:grid; gap:.6rem; }
.ab-subst-item { border:1px solid var(--ab-borda); border-radius:10px; padding:.65rem .8rem; background:#fff; }
.ab-subst-item.melhor { border-color:#86EFAC; background:#F0FDF4; }
.ab-subst-cab { display:flex; justify-content:space-between; gap:.6rem; align-items:flex-start; }
.ab-subst-motivos { display:flex; flex-wrap:wrap; gap:.35rem; margin-top:.45rem; }
.ab-subst-motivos span { font-size:.74rem; background:#EEF2FF; color:#3730A3; border-radius:999px; padding:.15rem .55rem; }
