/* ==========================================================================
   Componentes partilhados — botões, cartões, badges, formulários, tabelas.
   ========================================================================== */

/* Botões */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  min-height: var(--tap);
  padding: 0 var(--space-5);
  border: 1px solid transparent;
  border-radius: var(--radius-full);   /* botões em pílula, como no site do Grupo */
  font-weight: 600;
  font-size: var(--fs-sm);
  letter-spacing: 0.01em;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.2s var(--ease), border-color 0.2s, color 0.2s, box-shadow 0.2s, transform 0.2s var(--ease);
}
.btn:hover { text-decoration: none; }
.btn:active { transform: translateY(1px); }
.btn:disabled { opacity: 0.45; cursor: not-allowed; box-shadow: none; transform: none; }
.btn svg { width: 18px; height: 18px; }
.btn-primary {
  background: linear-gradient(180deg, #ff2b2b 0%, var(--te-red) 55%, #d60000 100%);
  color: var(--text-on-primary);
  box-shadow: var(--shadow-red), inset 0 1px 0 rgba(255, 255, 255, 0.25);
}
.btn-primary:hover:not(:disabled) { transform: translateY(-1px); box-shadow: 0 12px 24px -10px rgba(237, 0, 0, 0.7), inset 0 1px 0 rgba(255, 255, 255, 0.25); }
/* Secundário: contorno vermelho, como os botões "Learn more" do site */
.btn-secondary { background: var(--surface-1); border-color: rgba(237, 0, 0, 0.45); color: var(--te-red); }
.btn-secondary:hover:not(:disabled) { background: var(--te-red-soft); border-color: var(--te-red); }
.btn-ghost { background: transparent; color: var(--text-2); }
.btn-ghost:hover { background: rgba(55, 70, 73, 0.06); }
.btn-danger { background: var(--color-danger); color: #fff; }
.btn-block { width: 100%; }
.btn-lg { min-height: 54px; padding: 0 var(--space-6); font-size: var(--fs-md); }
.btn-icon { padding: 0; width: var(--tap); }

/* Cartões */
.card {
  background: var(--surface-1);
  border: 1px solid rgba(16, 24, 40, 0.07);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
}
.card-body { padding: var(--space-6); }
.card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  padding: var(--space-5) var(--space-6) var(--space-3);
}
.card-header h3 { font-size: var(--fs-md); font-weight: 800; }
.card-header + .card-body { padding-top: var(--space-3); }

/* Badges de estado */
.badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 10px;
  border-radius: var(--radius-full);
  font-size: var(--fs-xs);
  font-weight: 700;
  white-space: nowrap;
}
.badge::before {
  content: "";
  width: 6px; height: 6px;
  border-radius: 50%;
  background: currentColor;
  box-shadow: 0 0 0 3px color-mix(in srgb, currentColor 18%, transparent);
}
.badge-success { background: var(--color-success-soft); color: var(--color-success); }
.badge-warning { background: var(--color-warning-soft); color: var(--color-warning); }
.badge-danger  { background: var(--color-danger-soft);  color: var(--color-danger); }
.badge-info    { background: var(--color-info-soft);    color: var(--color-info); }
.badge-neutral { background: #eef0f2; color: var(--text-2); }

/* Stat tile: ícone, valor grande e variação */
.stat {
  position: relative;
  padding: var(--space-5);
  background: var(--surface-1);
  border: 1px solid rgba(16, 24, 40, 0.07);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  transition: transform 0.25s var(--ease), box-shadow 0.25s;
}
.stat:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); }
.stat-top { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); }
.stat-icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; background: var(--te-blue-soft); color: var(--te-blue); }
.stat-icon svg { width: 20px; height: 20px; }
.stat-icon.red { background: var(--te-red-soft); color: var(--te-red); }
.stat-icon.green { background: var(--color-success-soft); color: var(--color-success); }
.stat-icon.amber { background: var(--color-warning-soft); color: var(--color-warning); }
.stat-icon.slate { background: #eef0f2; color: var(--text-2); }
.stat-label { font-size: var(--fs-sm); font-weight: 500; color: var(--text-2); }
.stat-top + .stat-label { margin-top: var(--space-4); }
.stat-value { margin-top: 2px; font-family: var(--font-display); font-size: 2rem; font-weight: 800; letter-spacing: -0.02em; line-height: 1.1; font-variant-numeric: tabular-nums; color: var(--text-1); }
.stat-meta { margin-top: var(--space-1); font-size: var(--fs-xs); color: var(--text-3); }
.delta { display: inline-flex; align-items: center; gap: 2px; padding: 2px 8px; white-space: nowrap; border-radius: var(--radius-full); font-size: 11px; font-weight: 700; background: var(--color-success-soft); color: var(--color-success); }

/* Formulários */
.field { display: flex; flex-direction: column; gap: var(--space-2); }
.label { font-size: var(--fs-sm); font-weight: 600; color: var(--text-1); }
.hint { font-size: var(--fs-xs); color: var(--text-3); }
.input, .select, .textarea {
  width: 100%;
  min-height: 48px;
  padding: var(--space-2) var(--space-4);
  background: var(--surface-1);
  border: 1px solid #dde1e4;
  border-radius: var(--radius-md);
  box-shadow: inset 0 1px 2px rgba(16, 24, 40, 0.04);
  transition: border-color 0.2s, box-shadow 0.2s;
}
.input:hover, .select:hover, .textarea:hover { border-color: var(--border-strong); }
.input:focus, .select:focus, .textarea:focus {
  outline: none;
  border-color: var(--te-blue);
  box-shadow: var(--ring);
}
.input[readonly] { background: var(--surface-2); color: var(--text-2); box-shadow: none; }
.field-error { font-size: var(--fs-xs); color: var(--color-danger); }

/* Caixa de selecção / opção com texto */
.check { display: flex; gap: var(--space-3); align-items: flex-start; font-size: var(--fs-sm); cursor: pointer; }
.check input { width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--color-primary); flex-shrink: 0; }

/* Tabelas */
.table-wrap { overflow-x: auto; }
.table { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); }
.table th {
  padding: var(--space-3) var(--space-5);
  text-align: left;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-3);
  background: #fafbfc;
  border-bottom: 1px solid var(--border);
}
.table td { padding: var(--space-4) var(--space-5); border-bottom: 1px solid #eef0f2; }
.table tbody tr { transition: background 0.15s; }
.table tbody tr:hover { background: #f7f9ff; }
.table tbody tr:last-child td { border-bottom: 0; }

/* Avatar com iniciais (cor estável por pessoa, em tons da marca) */
.avatar {
  display: inline-grid;
  place-items: center;
  width: 38px; height: 38px;
  border-radius: 50%;
  background: linear-gradient(135deg, #eaf0ff, #dfe7ff);
  color: var(--te-blue-dark);
  font-size: var(--fs-sm);
  font-weight: 800;
  flex-shrink: 0;
  box-shadow: inset 0 0 0 1px rgba(40, 90, 255, 0.12);
}

/* Resumo (lista chave/valor) */
.summary { margin: 0; display: grid; }
.summary > div { display: flex; justify-content: space-between; align-items: center; gap: var(--space-4); padding: var(--space-3) 0; font-size: var(--fs-sm); }
.summary > div + div { border-top: 1px solid var(--border); }
.summary dt { color: var(--text-3); }
.summary dd { margin: 0; font-weight: 600; text-align: right; overflow-wrap: anywhere; }

/* Separadores com contagem (filtro por estado) */
.tabs { display: flex; gap: var(--space-1); border-bottom: 1px solid var(--border); overflow-x: auto; scrollbar-width: none; }
.tabs::-webkit-scrollbar { display: none; }
.tab {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-4) var(--space-3);
  margin-bottom: -1px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: none;
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--text-2);
  white-space: nowrap;
  cursor: pointer;
  transition: color 0.2s, border-color 0.2s;
}
.tab:hover { color: var(--text-1); }
.tab .count {
  padding: 1px 8px;
  border-radius: var(--radius-full);
  background: #eef0f2;
  font-size: 11px;
  font-weight: 700;
  color: var(--text-2);
}
.tab[aria-selected="true"] { color: var(--te-red); border-bottom-color: var(--te-red); }
.tab[aria-selected="true"] .count { background: var(--te-red); color: #fff; }

/* Barra de ferramentas */
.toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); padding: var(--space-4) var(--space-5); }
.toolbar .input, .toolbar .select { min-height: 42px; width: auto; font-size: var(--fs-sm); }
.toolbar .search { flex: 1 1 220px; }
.btn-sm { min-height: 34px; padding: 0 var(--space-3); font-size: var(--fs-xs); }

/* Checkbox de tabela */
.cb { width: 18px; height: 18px; accent-color: var(--color-primary); cursor: pointer; }
.table .col-cb { width: 44px; }
.table tr.is-selected { background: var(--color-primary-soft); }
.table tbody tr { cursor: pointer; }
.cell-person { display: flex; align-items: center; gap: var(--space-3); }
.cell-person strong { display: block; font-weight: 600; }
.cell-person > div > span { display: block; font-size: var(--fs-xs); color: var(--text-3); }

/* Colunas secundárias escondidas em ecrãs pequenos */
@media (max-width: 640px) {
  .table .hide-sm { display: none; }
  .table th, .table td { padding: var(--space-3); }
}

/* Barra de acções em lote */
.bulkbar {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex-wrap: wrap;
  padding: var(--space-3) var(--space-5);
  background: linear-gradient(90deg, var(--night) 0%, var(--night-2) 100%);
  color: #fff;
  font-size: var(--fs-sm);
  font-weight: 600;
}
.bulkbar .btn { background: rgba(255, 255, 255, 0.14); color: #fff; border-color: transparent; }
.bulkbar .btn:hover { background: rgba(255, 255, 255, 0.24); }

/* Paginação */
.pager { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); padding: var(--space-3) var(--space-4); font-size: var(--fs-sm); color: var(--text-2); }

/* Estado vazio */
.empty { padding: var(--space-8) var(--space-4); text-align: center; color: var(--text-3); font-size: var(--fs-sm); }

/* Painel lateral (detalhe) */
.drawer-scrim { position: fixed; inset: 0; z-index: 60; background: rgba(11, 15, 26, 0.45); backdrop-filter: blur(3px); }
.drawer {
  position: fixed;
  top: 0; right: 0; bottom: 0;
  z-index: 61;
  display: flex;
  flex-direction: column;
  width: min(440px, 100%);
  background: var(--surface-1);
  box-shadow: var(--shadow-lg);
}
.drawer-header { display: flex; align-items: flex-start; gap: var(--space-3); padding: var(--space-5); border-bottom: 1px solid var(--border); }
.drawer-body { flex: 1; overflow-y: auto; padding: var(--space-5); }
.drawer-footer { display: flex; gap: var(--space-2); padding: var(--space-4) var(--space-5); border-top: 1px solid var(--border); }
.drawer h4 { font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-3); margin-bottom: var(--space-2); }

/* Modal */
.modal-scrim { position: fixed; inset: 0; z-index: 70; display: grid; place-items: center; padding: var(--space-4); background: rgba(11, 15, 26, 0.5); backdrop-filter: blur(4px); }
.modal { width: min(560px, 100%); max-height: 90vh; overflow-y: auto; background: var(--surface-1); border-radius: var(--radius-xl); box-shadow: 0 40px 80px -20px rgba(11, 15, 26, 0.45); animation: rise 0.3s var(--ease); }
.modal-header { display: flex; align-items: center; justify-content: space-between; padding: var(--space-5); border-bottom: 1px solid var(--border); }
.modal-body { padding: var(--space-5); }
.modal-footer { display: flex; justify-content: flex-end; gap: var(--space-2); padding: var(--space-4) var(--space-5); border-top: 1px solid var(--border); }

.dropzone {
  display: grid;
  place-items: center;
  gap: var(--space-2);
  padding: var(--space-7) var(--space-4);
  border: 2px dashed var(--border-strong);
  border-radius: var(--radius-md);
  text-align: center;
  color: var(--text-2);
  font-size: var(--fs-sm);
  cursor: pointer;
}
.dropzone:hover, .dropzone.is-over { border-color: var(--color-primary); background: var(--color-primary-soft); }
.dropzone svg { width: 32px; height: 32px; color: var(--color-primary); }

/* Lista de verificação (resultado da importação) */
.checklist { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-2); font-size: var(--fs-sm); }
.checklist li { display: flex; align-items: center; gap: var(--space-3); padding: var(--space-3); border-radius: var(--radius-md); background: var(--surface-2); }
.checklist li strong { margin-left: auto; font-variant-numeric: tabular-nums; }

/* Notificações */
.toasts { position: fixed; right: var(--space-5); bottom: var(--space-5); z-index: 80; display: grid; gap: var(--space-2); }
.toast { max-width: 380px; padding: var(--space-3) var(--space-4) var(--space-3) var(--space-5); border-radius: var(--radius-md); background: rgba(11, 15, 26, 0.92); backdrop-filter: blur(8px); color: #fff; font-size: var(--fs-sm); box-shadow: var(--shadow-lg); border-left: 3px solid #3fb57a; animation: rise 0.3s var(--ease); }

/* Lista simples (prazos, actividade) */
.list { list-style: none; margin: 0; padding: 0; }
.list li { display: flex; align-items: flex-start; gap: var(--space-3); padding: var(--space-3) 0; font-size: var(--fs-sm); }
.list li + li { border-top: 1px solid var(--border); }
.list .meta { font-size: var(--fs-xs); color: var(--text-3); }
.date-chip {
  display: grid;
  place-items: center;
  width: 44px;
  flex-shrink: 0;
  padding: var(--space-1) 0;
  border-radius: var(--radius-sm);
  background: var(--surface-2);
  border: 1px solid var(--border);
  line-height: 1.1;
}
.date-chip strong { font-size: var(--fs-md); }
.date-chip span { font-size: 10px; text-transform: uppercase; color: var(--text-3); }
.date-chip.is-next { background: var(--color-primary-soft); border-color: transparent; color: var(--color-primary); }

/* Barra de progresso (ocupação) */
.meter { height: 8px; border-radius: var(--radius-full); background: #eceff3; overflow: hidden; }
.meter > span { display: block; height: 100%; border-radius: var(--radius-full); background: linear-gradient(90deg, #5b84ff, var(--color-data)); transition: width 0.8s var(--ease); }
.meter.is-warn > span { background: var(--color-warning); }

/* Barra empilhada (distribuição RSVP) */
.stackbar { display: flex; gap: 2px; height: 14px; border-radius: 4px; overflow: hidden; }
.stackbar > span { display: block; height: 100%; }
.legend { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-4); margin-top: var(--space-3); font-size: var(--fs-xs); color: var(--text-2); }
.legend span { display: inline-flex; align-items: center; gap: 6px; }
.legend i { width: 10px; height: 10px; border-radius: 3px; display: inline-block; }

/* Gráfico (SVG) */
.chart { position: relative; }
.chart svg { width: 100%; height: auto; overflow: visible; }
.chart [hidden] { display: none; }
.chart .grid-line { stroke: var(--border); stroke-width: 1; }
.chart .axis-label { fill: var(--text-3); font-size: 11px; }
.chart .series { fill: none; stroke: var(--color-data); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.chart .area { fill: var(--color-data); opacity: 0.08; }
.chart .crosshair { stroke: var(--text-3); stroke-width: 1; stroke-dasharray: 3 3; }
.chart .dot { fill: var(--color-data); stroke: var(--surface-1); stroke-width: 2; }
.chart .marker-line { stroke: var(--te-red); stroke-width: 1.5; stroke-dasharray: 4 3; }
.chart .marker-label { fill: var(--te-red); font-size: 11px; font-weight: 600; }
.chart-tip {
  position: absolute;
  pointer-events: none;
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-sm);
  background: #15181e;
  color: #fff;
  font-size: var(--fs-xs);
  white-space: nowrap;
  transform: translate(-50%, calc(-100% - 10px));
}
.chart-tip strong { font-size: var(--fs-sm); }

/* Matriz de permissões */
.matrix th:not(:first-child), .matrix td:not(:first-child) { text-align: center; }
.matrix th.is-focus, .matrix td.is-focus { background: var(--color-accent-soft); }
.matrix tbody tr { cursor: default; }
.matrix tbody tr:hover { background: transparent; }
.perm { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; }
.perm svg { width: 15px; height: 15px; }
.perm-sim { background: var(--color-success-soft); color: var(--color-success); }
.perm-nao { color: var(--text-3); }
.perm-limitado { background: var(--color-warning-soft); color: var(--color-warning); }
.perm-note { display: block; margin-top: 2px; font-size: 11px; color: var(--text-3); line-height: 1.3; }

/* Fluxo em passos (acesso excepcional) */
.flow { display: grid; grid-template-columns: repeat(5, 1fr); gap: var(--space-2); counter-reset: passo; }
.flow li { list-style: none; position: relative; padding: var(--space-3); border-radius: var(--radius-md); background: var(--surface-2); border: 1px solid var(--border); font-size: var(--fs-xs); color: var(--text-2); }
.flow li::before { counter-increment: passo; content: counter(passo); display: inline-grid; place-items: center; width: 20px; height: 20px; margin-bottom: var(--space-2); border-radius: 50%; background: var(--color-primary); color: #fff; font-weight: 700; font-size: 11px; }
.flow li strong { display: block; color: var(--text-1); font-size: var(--fs-sm); }
@media (max-width: 900px) { .flow { grid-template-columns: 1fr 1fr; } }

/* Formulário com pré-visualização ao lado */
.edit-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: var(--space-6); align-items: start; }
.edit-preview { position: sticky; top: var(--space-5); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); }
.form-grid .full { grid-column: 1 / -1; }
.textarea { min-height: 110px; resize: vertical; line-height: 1.5; }
.form-actions {
  position: sticky;
  bottom: 0;
  z-index: 5;
  display: flex;
  justify-content: flex-end;
  gap: var(--space-2);
  margin-top: var(--space-5);
  padding: var(--space-3) 0;
  background: var(--surface-0);
  border-top: 1px solid var(--border);
}
.prog-row { display: grid; grid-template-columns: 110px 1fr auto; gap: var(--space-2); align-items: center; }
@media (max-width: 1100px) {
  .edit-layout { grid-template-columns: 1fr; }
  .edit-preview { position: static; }
}
@media (max-width: 640px) { .form-grid { grid-template-columns: 1fr; } }

/* Telemóvel de pré-visualização */
.phone {
  width: 300px;
  max-width: 100%;
  margin: 0 auto;
  padding: 10px;
  border-radius: 36px;
  background: #15181e;
  box-shadow: var(--shadow-lg);
}
.phone-screen { height: 560px; overflow-y: auto; border-radius: 28px; background: var(--surface-0); font-size: 13px; }
.phone-hero { position: relative; padding: 20px 18px 40px; background: var(--te-art) 50% 120% / 220% auto no-repeat, var(--night-glow), var(--night); }
.phone-hero img { height: 30px; width: auto; margin-bottom: 18px; padding: 4px 6px; border-radius: 8px; background: #fff; }
.phone-hero small { font-size: 10px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: #ffb3b3; }
.phone-hero strong { display: block; margin-top: 6px; font-family: var(--font-display); font-size: 22px; font-weight: 800; line-height: 1.1; color: #fff; }
.phone-hero + .phone-body { position: relative; margin-top: -24px; }
.phone-body { display: grid; gap: 10px; padding: 12px; }
.phone-card { padding: 12px; border-radius: 12px; background: #fff; border: 1px solid var(--border); }
.phone-card dt { font-size: 10px; color: var(--text-3); }
.phone-card dd { margin: 0 0 8px; font-weight: 600; }
.phone-card dd:last-child { margin-bottom: 0; }
.phone-btn { display: block; padding: 10px; border-radius: 999px; background: var(--color-primary); color: #fff; font-weight: 600; text-align: center; }
.preview-label { margin-bottom: var(--space-3); text-align: center; font-size: var(--fs-xs); color: var(--text-3); font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; }

/* Ícone grande em círculo (sucesso, estado neutro) */
.icon-circle {
  display: grid;
  place-items: center;
  width: 64px; height: 64px;
  border-radius: 50%;
}
.icon-circle svg { width: 30px; height: 30px; }
.icon-circle.success { background: var(--color-success-soft); color: var(--color-success); }
.icon-circle.neutral { background: var(--surface-2); color: var(--text-2); border: 1px solid var(--border); }
.icon-circle.warning { background: var(--color-warning-soft); color: var(--color-warning); }
.icon-circle.danger { background: var(--color-danger-soft); color: var(--color-danger); }
.icon-circle.info { background: #eef3ff; color: var(--te-blue); }

/* Pesquisa no directório (formulários do back-office) */
.dir-results { display: grid; gap: var(--space-2); min-height: 44px; }
.dir-item, .dir-picked {
  display: flex; align-items: center; gap: var(--space-3);
  width: 100%; padding: var(--space-3); border: 1px solid var(--border); border-radius: 14px;
  background: var(--surface-1); text-align: left; font: inherit; color: inherit;
}
.dir-item { cursor: pointer; transition: border-color 0.15s, background 0.15s; }
.dir-item:hover:not(:disabled) { border-color: var(--te-blue); background: #f5f8ff; }
.dir-item:disabled { opacity: 0.6; cursor: default; }
.dir-item > div, .dir-picked > div { flex: 1; min-width: 0; }
.dir-item strong, .dir-picked strong { display: block; font-size: var(--fs-sm); }
.dir-item span:not(.avatar):not(.badge), .dir-picked span:not(.avatar) { display: block; font-size: var(--fs-xs); color: var(--text-3); }
.dir-picked { border-color: var(--te-blue); background: #f5f8ff; box-shadow: 0 0 0 3px rgba(40, 90, 255, 0.12); }

/* Escolha segmentada (ex.: tipo de convidado) */
.seg { display: inline-flex; padding: 4px; border-radius: var(--radius-full); background: var(--surface-2); gap: 4px; }
.seg label { position: relative; }
.seg input { position: absolute; opacity: 0; }
.seg span { display: block; padding: 8px 16px; border-radius: var(--radius-full); font-size: var(--fs-sm); font-weight: 600; color: var(--text-2); cursor: pointer; }
.seg input:checked + span { background: #fff; color: var(--text-1); box-shadow: var(--shadow-sm, 0 1px 3px rgba(16, 24, 40, 0.15)); }
.seg input:focus-visible + span { outline: 2px solid var(--te-blue); }

/* Linha acabada de criar */
@keyframes realce { from { background: #fff4c2; } to { background: transparent; } }
tr.is-new td, .is-new { animation: realce 2.4s var(--ease); }

/* Lista editável de linhas (ex.: candidatos) */
.linhas { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-2); }
.linha { display: flex; gap: var(--space-2); align-items: center; }
.linha .input { flex: 1; min-width: 0; }
.linha .select { flex: 0 1 42%; width: auto; min-width: 0; }
.linha .btn-icon { flex-shrink: 0; }

/* Aviso de privacidade */
.privacy-note {
  display: flex;
  gap: var(--space-3);
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-md);
  background: linear-gradient(135deg, #eef3ff, #f4f7ff);
  border: 1px solid rgba(40, 90, 255, 0.12);
  color: var(--te-blue-dark);
  font-size: var(--fs-xs);
  line-height: 1.5;
}
.privacy-note svg { width: 16px; height: 16px; flex-shrink: 0; margin-top: 2px; }
