/* =========================================================
   Astronauta Insights — Astronauta Martech Design System v1.0
   Fundações oficiais: cor, tipografia (Aconchego · AconchegoText · Sua),
   raio (base 0.5rem), elevação shadcn. Visual chapado, fiel ao DS.
   ========================================================= */


/* Sua — tipografia funcional/sistema: UI, dados e dashboards */
@font-face {
  font-family: "Sua";
  src: url("../assets/fonts/SuaVariable.woff2") format("woff2-variations");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
/* Aconchego — display/editorial: títulos, capas, manchetes (com itálico) */
@font-face {
  font-family: "Aconchego";
  src: url("../assets/fonts/AconchegoVariable.woff2") format("woff2-variations");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Aconchego";
  src: url("../assets/fonts/AconchegoVariable.woff2") format("woff2-variations");
  font-weight: 100 900;
  font-style: italic;
  font-display: swap;
}
/* AconchegoText — corpo longo de leitura (análises, texto editorial) */
@font-face {
  font-family: "AconchegoText";
  src: url("../assets/fonts/AconchegoTextVariable.woff2") format("woff2-variations");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "AconchegoText";
  src: url("../assets/fonts/AconchegoTextVariable.woff2") format("woff2-variations");
  font-weight: 100 900;
  font-style: italic;
  font-display: swap;
}

:root {
  /* ===== Marca (tokens oficiais do DS) ===== */
  --primary: 221 100% 50%;            /* Azul Astronauta #004FFF */
  --primary-foreground: 0 0% 100%;
  --secondary: 218 85% 60%;           /* Azul claro #4280EF */
  --secondary-foreground: 0 0% 100%;
  --accent: 258 85% 47%;              /* Roxo #4912DD */
  --accent-foreground: 0 0% 100%;
  --ring: 221 100% 50%;
  /* Superfícies */
  --background: 0 0% 100%;
  --foreground: 235 96% 18%;
  --card: 0 0% 100%;
  --card-foreground: 235 96% 18%;
  /* Neutros */
  --muted: 220 20% 96%;
  --muted-foreground: 220 10% 45%;
  --border: 220 20% 90%;
  --input: 220 20% 90%;
  /* Sinalização */
  --destructive: 356 87% 60%;
  --success: 142 71% 45%;
  --warning: 48 96% 53%;
  --info: 218 85% 60%;
  /* Acentos da marca */
  --brand-yellow: 48 100% 50%;
  --brand-orange: 28 93% 52%;
  --brand-magenta: 320 100% 40%;
  --brand-dark: 235 96% 18%;
  /* Navy institucional oficial #050A30 */
  --navy: 233 81% 10%;
  --sidebar-w: 248px;

  /* ===== Superfícies chapadas (sem blur — fiel ao DS) ===== */
  --glass-surface: hsl(var(--card));
  --glass-surface-hover: hsl(220 20% 98%);
  --glass-surface-strong: hsl(var(--card));
  --glass-surface-dark: hsl(var(--navy));
  --glass-border: hsl(var(--border));
  --glass-border-dark: rgba(255, 255, 255, 0.12);
  --glass-blur: 0px;                  /* desliga o blur de vidro globalmente */
  --glass-saturation: 1;
  /* Elevação shadcn: shadow-sm */
  --glass-shadow: 0 1px 2px hsl(235 50% 12% / 0.06), 0 1px 3px hsl(235 50% 12% / 0.04);
  --glass-highlight: 0 0 0 0 transparent;

  /* ===== Raio — escala do DS (base 0.5rem / 8px) ===== */
  --radius: 0.5rem;            /* 8px — base, rounded-lg */
  --radius-card: 0.5rem;       /* cards (rounded-lg) */
  --radius-dialog: 0.75rem;    /* 12px — modais e lightbox */
  --radius-control: 0.375rem;  /* 6px — botões, inputs, nav (rounded-md) */
  --radius-pill: 9999px;       /* pílulas, dots, barras e avatares */

  /* ===== Motion — ease-out calmo, sem overshoot (DS) ===== */
  --spring: cubic-bezier(0.22, 1, 0.36, 1);
  --spring-duration: 0.2s;
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  background: hsl(220 20% 97%);
  background-attachment: fixed;
  color: hsl(var(--foreground));
  font-family: "Sua", system-ui, sans-serif;
  font-size: 14px;
  line-height: 1.45;
}

/* ---------- Layout raiz ---------- */
.shell { display: flex; min-height: 100vh; }

/* ---------- Sidebar (dark glass) ---------- */
.sidebar {
  position: fixed;
  inset: var(--tarja-h) auto 0 0;
  width: var(--sidebar-w);
  background: var(--glass-surface-dark);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturation));
  backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturation));
  border-right: 1px solid var(--glass-border-dark);
  color: #fff;
  display: flex;
  flex-direction: column;
  padding: 24px 16px;
  z-index: 30;
}
.sidebar__logo { display: block; padding: 0 8px; margin-bottom: 24px; }
.sidebar__logo img { width: 148px; display: block; }
.sidebar__produto {
  margin: 12px 8px 24px;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: hsl(218 60% 75%);
}
.nav { display: flex; flex-direction: column; gap: 5px; }
.nav__item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 14px;
  border-radius: var(--radius-control);
  color: hsl(220 40% 82%);
  text-decoration: none;
  font-weight: 500;
  transition: background var(--spring-duration) var(--spring),
              color var(--spring-duration) var(--spring),
              box-shadow var(--spring-duration) var(--spring),
              transform var(--spring-duration) var(--spring);
}
.nav__item svg { width: 18px; height: 18px; flex: none; }
.nav__item:hover { background: rgba(255, 255, 255, 0.08); color: #fff; }
.nav__item:active { transform: scale(0.97); }
.nav__item.ativo {
  background: hsl(var(--primary));
  color: hsl(var(--primary-foreground));
}
.sidebar__cliente {
  margin-top: 28px;
  padding: 13px 14px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid var(--glass-border-dark);
  border-radius: var(--radius-card);
}
.sidebar__cliente .rotulo {
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: hsl(218 60% 70%);
}
.sidebar__cliente .nome { font-weight: 700; font-size: 15px; margin-top: 2px; }
.sidebar__cliente .detalhe { font-size: 12px; color: hsl(220 40% 80%); margin-top: 2px; }
.sidebar__rodape {
  margin-top: auto;
  padding: 12px 8px 0;
  font-size: 11px;
  color: hsl(220 30% 60%);
  line-height: 1.6;
}

/* ---------- Área principal ---------- */
.principal {
  flex: 1;
  margin-left: var(--sidebar-w);
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.topbar {
  position: relative;
  z-index: 50;
  background: var(--glass-surface);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturation));
  backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturation));
  border-bottom: 1px solid var(--glass-border);
  padding: 18px 28px 14px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.topbar h1 {
  font-family: "Aconchego", "Sua", sans-serif;
  font-weight: 650;
  font-size: 24px;
  margin: 0;
  letter-spacing: -0.01em;
}
.topbar .subtitulo { color: hsl(var(--muted-foreground)); font-size: 13px; margin-top: 2px; }
.topbar__direita { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }

.chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 13px;
  border-radius: var(--radius-control);
  font-size: 12px;
  font-weight: 500;
  background: #fff;
  color: hsl(var(--muted-foreground));
  border: 1px solid var(--glass-border);
  white-space: nowrap;
}
.chip--primario {
  background: hsl(var(--primary) / 0.10);
  color: hsl(var(--primary));
  border-color: hsl(var(--primary) / 0.30);
}

/* ---------- Barra de filtros (glass sticky) ---------- */
.filtros {
  position: sticky;
  top: var(--tarja-h);
  z-index: 20;
  background: var(--glass-surface);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturation));
  backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturation));
  border-bottom: 1px solid var(--glass-border);
  padding: 12px 28px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.filtros__linha {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.filtros__avancados {
  padding-top: 10px;
  border-top: 1px dashed var(--glass-border);
  animation: ms-entrar var(--spring-duration) var(--spring);
}
/* O atributo [hidden] precisa vencer os display:flex/inline-flex acima */
.filtros[hidden],
.filtros__linha[hidden],
.filtros__badge[hidden],
.filtros__limpar[hidden] { display: none; }
.filtros select,
.filtros .ms__btn,
.filtros input[type="search"],
.filtros input[type="number"] {
  font: inherit;
  font-size: 13px;
  color: hsl(var(--foreground));
  background: #fff;
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-control);
  padding: 7px 14px;
  max-width: 180px;
  transition: background var(--spring-duration) var(--spring),
              border-color var(--spring-duration) var(--spring),
              box-shadow var(--spring-duration) var(--spring);
}
.filtros input[type="search"]:hover,
.filtros input[type="number"]:hover { background: var(--glass-surface-hover); }

/* ---------- Multi-select nos filtros ---------- */
.ms { position: relative; display: inline-flex; }
.ms__btn {
  cursor: pointer;
  white-space: nowrap;
  text-align: left;
  min-width: 100px;
  padding-right: 28px;
}
.ms__btn:hover { background: var(--glass-surface-hover); }
.ms__btn:active { transform: scale(0.97); }
.ms__btn::after {
  content: "▾";
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 10px;
  color: hsl(var(--muted-foreground));
  pointer-events: none;
}
.ms--ativo .ms__btn {
  border-color: hsl(var(--primary) / 0.45);
  background: hsl(var(--primary) / 0.08);
  color: hsl(var(--primary));
}
.ms--ativo .ms__btn::after { color: hsl(var(--primary)); }
.ms__panel {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 100;
  background: var(--glass-surface-strong);
  -webkit-backdrop-filter: blur(40px) saturate(var(--glass-saturation));
  backdrop-filter: blur(40px) saturate(var(--glass-saturation));
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-card);
  box-shadow: 0 8px 24px hsl(235 50% 12% / 0.12), var(--glass-highlight);
  min-width: 180px;
  max-width: 300px;
  max-height: 224px;
  overflow-y: auto;
  padding: 5px;
  animation: ms-entrar var(--spring-duration) var(--spring);
}
@keyframes ms-entrar {
  from { opacity: 0; transform: translateY(-6px) scale(0.97); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
.ms__item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 11px;
  border-radius: var(--radius-control);
  cursor: pointer;
  font-size: 13px;
  color: hsl(var(--foreground));
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ms__item:hover { background: hsl(var(--primary) / 0.08); }
.ms__item input[type=checkbox] {
  width: 14px; height: 14px;
  cursor: pointer; flex-shrink: 0;
  accent-color: hsl(var(--primary));
}
.ms__item span { overflow: hidden; text-overflow: ellipsis; max-width: 240px; }
.ms__vazio { display: block; padding: 10px 12px; font-size: 13px; color: hsl(var(--muted-foreground)); }
.ms__busca {
  position: sticky;
  top: -5px;
  background: var(--glass-surface);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  padding: 4px 4px 6px;
  margin: -5px -5px 4px;
  border-bottom: 1px solid var(--glass-border);
  z-index: 1;
}
.ms__busca input {
  width: 100%;
  padding: 6px 10px;
  font-size: 13px;
  border: 1px solid hsl(var(--border));
  border-radius: var(--radius-control);
  background: hsl(var(--background));
  color: hsl(var(--foreground));
  outline: none;
}
.ms__busca input:focus { border-color: hsl(var(--ring)); }
.ms__lista { display: flex; flex-direction: column; gap: 1px; }
.filtros select:focus-visible,
.filtros input:focus-visible,
button:focus-visible {
  outline: 2px solid hsl(var(--ring));
  outline-offset: 1px;
}
.filtros input[type="search"] { min-width: 170px; }
.filtros input[type="number"] { width: 120px; }
.filtros .check {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: hsl(var(--muted-foreground));
  white-space: nowrap;
  cursor: pointer;
}
.filtros .check input[type=checkbox] { accent-color: hsl(var(--primary)); }
.filtros .contagem {
  font-size: 12px;
  color: hsl(var(--muted-foreground));
  white-space: nowrap;
}

/* ---------- Filtros: busca com ícone ---------- */
.filtros__busca { position: relative; display: inline-flex; align-items: center; }
.filtros__busca svg {
  position: absolute;
  left: 13px;
  width: 15px; height: 15px;
  color: hsl(var(--muted-foreground));
  pointer-events: none;
}
.filtros__busca input[type="search"] {
  padding-left: 35px;
  min-width: 250px;
  max-width: 340px;
}

/* ---------- Filtros: ações (mais / limpar / contagem à direita) ---------- */
.filtros__linha--principal .filtros__mais { margin-left: auto; }
.filtros__mais {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font: inherit;
  font-size: 13px;
  padding: 7px 14px;
  border-radius: var(--radius-control);
  border: 1px solid var(--glass-border);
  background: #fff;
  color: hsl(var(--foreground));
  cursor: pointer;
  white-space: nowrap;
  transition: background var(--spring-duration) var(--spring),
              border-color var(--spring-duration) var(--spring),
              color var(--spring-duration) var(--spring);
}
.filtros__mais svg { width: 15px; height: 15px; }
.filtros__mais:hover { background: var(--glass-surface-hover); border-color: hsl(var(--primary) / 0.45); }
.filtros__mais--ativo {
  background: hsl(var(--primary) / 0.08);
  border-color: hsl(var(--primary) / 0.45);
  color: hsl(var(--primary));
}
.filtros__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: var(--radius-pill);
  background: hsl(var(--primary));
  color: #fff;
  font-size: 10.5px;
  font-weight: 700;
}
.filtros__limpar {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font: inherit;
  font-size: 12.5px;
  padding: 7px 12px;
  border-radius: var(--radius-control);
  border: 1px solid transparent;
  background: transparent;
  color: hsl(var(--muted-foreground));
  cursor: pointer;
  transition: background var(--spring-duration) var(--spring), color var(--spring-duration) var(--spring);
}
.filtros__limpar svg { width: 14px; height: 14px; }
.filtros__limpar:hover { color: hsl(var(--destructive)); background: hsl(var(--destructive) / 0.08); }

/* ---------- Botões (pill + glow + spring) ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.01em;
  padding: 8px 16px;
  border-radius: var(--radius-control);
  border: 1px solid transparent;
  cursor: pointer;
  transition: background var(--spring-duration) var(--spring),
              border-color var(--spring-duration) var(--spring),
              color var(--spring-duration) var(--spring),
              box-shadow var(--spring-duration) var(--spring),
              transform var(--spring-duration) var(--spring);
}
.btn:active { transform: scale(0.97); }
.btn svg { width: 15px; height: 15px; }
.btn--default {
  background: hsl(var(--primary));
  color: hsl(var(--primary-foreground));
}
.btn--default:hover {
  background: hsl(221 100% 44%);
}
.btn--outline {
  background: #fff;
  color: hsl(var(--foreground));
  border-color: var(--glass-border);
}
.btn--outline:hover { background: var(--glass-surface-hover); }
.btn--ghost { background: transparent; color: hsl(var(--muted-foreground)); }
.btn--ghost:hover { background: rgba(255, 255, 255, 0.5); color: hsl(var(--foreground)); }
.btn--sm { padding: 5px 12px; font-size: 12px; }

/* ---------- Conteúdo ---------- */
.conteudo { padding: 24px 28px 48px; display: flex; flex-direction: column; gap: 20px; }

.grid-kpi {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 12px;
}

/* ---------- Visões rápidas (presets) ---------- */
.presets {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.presets__rotulo {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: hsl(var(--muted-foreground));
  margin-right: 2px;
}
.preset {
  font: inherit;
  font-size: 12.5px;
  font-weight: 600;
  padding: 6px 14px;
  border-radius: var(--radius-control);
  border: 1px solid var(--glass-border);
  background: #fff;
  color: hsl(var(--foreground));
  cursor: pointer;
  white-space: nowrap;
  max-width: 260px;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: background var(--spring-duration) var(--spring),
              border-color var(--spring-duration) var(--spring),
              color var(--spring-duration) var(--spring),
              transform var(--spring-duration) var(--spring);
}
.preset:hover { border-color: hsl(var(--primary) / 0.45); color: hsl(var(--primary)); }
.preset:active { transform: scale(0.96); }
.preset--ativo {
  background: hsl(var(--primary));
  border-color: hsl(var(--primary));
  color: #fff;
}
.preset--ativo:hover { color: #fff; border-color: hsl(var(--primary)); }

/* ---------- Destaques inteligentes ---------- */
.destaque {
  background: var(--glass-surface);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-card);
  box-shadow: var(--glass-shadow);
  padding: 16px 18px;
  border-top: 3px solid hsl(var(--success));
}
.destaque--atencao { border-top-color: hsl(var(--warning)); }
.destaque__rotulo {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: hsl(var(--muted-foreground));
}
.destaque__valor {
  font-weight: 860;
  font-size: 24px;
  letter-spacing: -0.015em;
  font-variant-numeric: tabular-nums;
  margin-top: 6px;
  line-height: 1.1;
}
.destaque--atencao .destaque__valor { color: hsl(28 80% 38%); }
.destaque__nome {
  font-size: 12.5px;
  font-weight: 600;
  margin-top: 8px;
  line-height: 1.4;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.destaque__sub { font-size: 12px; color: hsl(var(--muted-foreground)); margin-top: 4px; }
.grid-destaques { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }

/* StatTile — card glass */
.stat {
  background: var(--glass-surface);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturation));
  backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturation));
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-card);
  box-shadow: var(--glass-shadow), var(--glass-highlight);
  padding: 16px 18px;
}
.stat__rotulo {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: hsl(var(--muted-foreground));
}
.stat__valor {
  font-weight: 860;
  font-size: 26px;
  letter-spacing: -0.015em;
  font-variant-numeric: tabular-nums;
  margin-top: 6px;
  line-height: 1.1;
}
.stat__sub { font-size: 12px; color: hsl(var(--muted-foreground)); margin-top: 5px; }
.stat--acento { border-top: 3px solid hsl(var(--primary)); }
.stat--acento.indicador-lead { border-top-color: hsl(var(--accent)); }
.stat--acento.indicador-leadgen { border-top-color: hsl(var(--brand-orange)); }

/* Cards de painel — glass */
.painel {
  background: var(--glass-surface);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturation));
  backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturation));
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-card);
  box-shadow: var(--glass-shadow), var(--glass-highlight);
  padding: 18px 20px;
  min-width: 0;
}
.painel h2 { font-family: "Aconchego", "Sua", sans-serif; font-size: 16px; font-weight: 700; margin: 0 0 2px; letter-spacing: -0.01em; }
.painel .descricao { font-size: 12px; color: hsl(var(--muted-foreground)); margin: 0 0 14px; }
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 1100px) { .grid-2 { grid-template-columns: 1fr; } }
.grafico-box { position: relative; height: 300px; }
.grafico-box--alto { height: 380px; }

/* ---------- Badges ---------- */
.badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 9px;
  border-radius: var(--radius-pill);
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
}
.badge--bloco { background: hsl(var(--primary) / 0.10); color: hsl(var(--primary)); }
.badge--formato { background: hsl(var(--accent) / 0.10); color: hsl(var(--accent)); }
.badge--unidade { background: hsl(var(--muted)); color: hsl(var(--muted-foreground)); border: 1px solid var(--glass-border); }
.badge--alerta { background: hsl(var(--warning) / 0.18); color: hsl(28 80% 38%); }
.badge--indicador-inscricao { background: hsl(var(--primary) / 0.10); color: hsl(var(--primary)); }
.badge--indicador-lead { background: hsl(var(--accent) / 0.10); color: hsl(var(--accent)); }
.badge--indicador-leadgen { background: hsl(var(--brand-orange) / 0.12); color: hsl(28 90% 35%); }
.badge--indicador-conversao_google { background: hsl(122 39% 49% / .12); color: hsl(122 39% 30%); }
.badge--indicador-lead_linkedin { background: hsl(201 100% 35% / .12); color: hsl(201 100% 26%); }
.badge--indicador-resultado_tiktok { background: hsl(0 0% 10% / .12); color: hsl(0 0% 32%); }

/* canal badges */
.badge--canal { font-weight: 600; font-size: 9px; letter-spacing: .04em; text-transform: uppercase; }

/* Resumo semestral — dado estático (histórico) x dado vigente (atualizado) */
.badge--historico { background: hsl(var(--muted)); color: hsl(var(--muted-foreground)); border: 1px solid var(--glass-border); }
.badge--vigente { background: hsl(122 39% 49% / .14); color: hsl(122 39% 26%); }
.badge--vigente::before {
  content: ""; display: inline-block; width: 6px; height: 6px; border-radius: 50%;
  background: hsl(122 39% 40%); margin-right: 5px;
  animation: pulso-vigente 1.8s ease-in-out infinite;
}
@keyframes pulso-vigente { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
.canal--meta      { background: hsl(211 100% 50% / .12); color: hsl(211 100% 38%); }
.canal--google    { background: hsl(122 39% 49% / .12);  color: hsl(122 39% 30%); }
.canal--linkedin  { background: hsl(201 100% 35% / .12); color: hsl(201 100% 26%); }
.canal--tiktok    { background: hsl(0 0% 10% / .12);     color: hsl(0 0% 32%); }

.nota--aviso { background: hsl(var(--warning) / .14); border-left: 3px solid hsl(var(--warning) / .7); }

/* ---------- Tabela (glass forte para densidade) ---------- */
.tabela-wrap {
  overflow-x: auto;
  overflow-y: auto;
  /* altura calculada: viewport menos topo do card (header + filtros + painel + gap) */
  max-height: calc(100vh - var(--tabela-top, 300px));
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-card);
  background: var(--glass-surface-strong);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturation));
  backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturation));
  box-shadow: var(--glass-shadow), var(--glass-highlight);
}
table.dados { width: 100%; border-collapse: collapse; font-size: 13px; }
table.dados thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: rgba(246, 248, 253, 0.95);
  color: hsl(var(--muted-foreground));
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-align: right;
  padding: 10px 12px;
  border-bottom: 1px solid hsl(var(--border));
  cursor: pointer;
  user-select: none;
  white-space: nowrap;
}
table.dados thead th.esq { text-align: left; }
table.dados thead th:hover { color: hsl(var(--foreground)); }
table.dados thead th .seta { font-size: 9px; margin-left: 3px; }
table.dados tbody td {
  padding: 10px 12px;
  border-bottom: 1px solid hsl(var(--border) / 0.7);
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
table.dados tbody td.esq { text-align: left; white-space: normal; }
table.dados tbody tr:last-child td { border-bottom: none; }
table.dados tbody tr:hover { background: hsl(var(--primary) / 0.05); }
table.dados .anuncio-nome { font-weight: 600; max-width: 330px; }
table.dados .anuncio-meta { display: flex; gap: 5px; margin-top: 4px; flex-wrap: wrap; }
table.dados .num-bom { color: hsl(var(--success)); font-weight: 700; }
table.dados input[type="checkbox"] { accent-color: hsl(var(--primary)); width: 15px; height: 15px; cursor: pointer; }

.paginacao {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 4px 0;
  font-size: 13px;
  color: hsl(var(--muted-foreground));
}
.paginacao .botoes { display: flex; gap: 6px; }

/* ---------- Comparador ---------- */
.vazio {
  background: var(--glass-surface);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturation));
  backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturation));
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-card);
  box-shadow: var(--glass-shadow), var(--glass-highlight);
  padding: 56px 24px;
  text-align: center;
  color: hsl(var(--muted-foreground));
}
.vazio h2 { font-family: "Aconchego", "Sua", sans-serif; color: hsl(var(--foreground)); font-size: 18px; font-weight: 700; margin: 0 0 6px; letter-spacing: -0.01em; }
.vazio p { margin: 0 0 18px; }
.chips-selecao { display: flex; gap: 8px; flex-wrap: wrap; }
.chip-sel {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-control);
  padding: 6px 7px 6px 13px;
  font-size: 12px;
  font-weight: 600;
  max-width: 320px;
}
.chip-sel span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chip-sel button {
  border: none;
  background: hsl(var(--muted));
  color: hsl(var(--muted-foreground));
  border-radius: var(--radius-pill);
  width: 19px;
  height: 19px;
  line-height: 1;
  cursor: pointer;
  font-size: 12px;
  transition: background var(--spring-duration) var(--spring),
              color var(--spring-duration) var(--spring),
              transform var(--spring-duration) var(--spring);
}
.chip-sel button:hover { background: hsl(var(--destructive)); color: #fff; transform: scale(1.1); }
.grid-comparar {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 12px;
}
.card-comp {
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-card);
  background: var(--glass-surface);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturation));
  backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturation));
  box-shadow: var(--glass-shadow), var(--glass-highlight);
  padding: 16px;
}
.card-comp h3 { font-size: 13.5px; margin: 0 0 4px; line-height: 1.35; }
.card-comp .origem { font-size: 11.5px; color: hsl(var(--muted-foreground)); margin-bottom: 10px; }
.card-comp dl { margin: 10px 0 0; display: grid; grid-template-columns: 1fr auto; row-gap: 7px; font-size: 12.5px; }
.card-comp dt { color: hsl(var(--muted-foreground)); }
.card-comp dd { margin: 0; font-weight: 700; font-variant-numeric: tabular-nums; text-align: right; }
.card-comp dd.melhor { color: hsl(var(--success)); }

/* ---------- Rankings ---------- */
.controles-ranking { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.controles-ranking select {
  font: inherit;
  font-size: 13px;
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-control);
  padding: 7px 14px;
  background: #fff;
}
.lista-ranking { display: flex; flex-direction: column; gap: 6px; margin-top: 14px; }
.linha-ranking {
  display: grid;
  grid-template-columns: 34px minmax(220px, 1.3fr) 2fr 130px;
  align-items: center;
  gap: 14px;
  background: #fff;
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-card);
  padding: 10px 14px;
}
.linha-ranking .posicao {
  width: 26px;
  height: 26px;
  border-radius: var(--radius-pill);
  background: hsl(var(--muted));
  color: hsl(var(--muted-foreground));
  font-weight: 800;
  font-size: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.linha-ranking:nth-child(1) .posicao { background: hsl(var(--primary)); color: #fff; }
.linha-ranking:nth-child(2) .posicao { background: hsl(var(--secondary)); color: #fff; }
.linha-ranking:nth-child(3) .posicao { background: hsl(var(--accent)); color: #fff; }
.linha-ranking .nome { font-weight: 600; font-size: 13px; line-height: 1.3; }
.linha-ranking .origem { font-size: 11.5px; color: hsl(var(--muted-foreground)); margin-top: 2px; }
.linha-ranking .barra { height: 8px; border-radius: var(--radius-pill); background: hsl(var(--muted)); overflow: hidden; }
.linha-ranking .barra > div {
  height: 100%;
  border-radius: var(--radius-pill);
  background: hsl(var(--primary));
}
.linha-ranking .valor { font-weight: 800; font-variant-numeric: tabular-nums; text-align: right; font-size: 14px; }

.nota {
  font-size: 12px;
  color: hsl(var(--muted-foreground));
  background: hsl(var(--info) / 0.08);
  border: 1px solid hsl(var(--info) / 0.22);
  border-radius: var(--radius-card);
  padding: 9px 14px;
}

/* ---------- Mídia: miniaturas ---------- */
.thumb {
  position: relative;
  display: block;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  border: 1px solid var(--glass-border);
  background: hsl(var(--muted));
  padding: 0;
  overflow: hidden;
  cursor: zoom-in;
  flex: none;
  transition: border-color var(--spring-duration) var(--spring),
              transform var(--spring-duration) var(--spring),
              box-shadow var(--spring-duration) var(--spring);
}
.thumb img, .thumb video { width: 100%; height: 100%; object-fit: cover; display: block; }
.thumb--vazio {
  display: flex;
  align-items: center;
  justify-content: center;
  color: hsl(var(--muted-foreground) / 0.55);
}
.thumb--vazio svg { width: 18px; height: 18px; }
.thumb:hover {
  border-color: hsl(var(--primary));
  transform: scale(1.04);
}
.thumb__play {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  background: rgba(5, 10, 48, 0.35);
}
.thumb__play svg { width: 16px; height: 16px; }
.thumb__contador {
  position: absolute;
  right: 3px;
  bottom: 3px;
  background: rgba(14, 16, 36, 0.85);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  border-radius: var(--radius-pill);
  padding: 1px 6px;
}

/* ---------- Mídia: prévia nos cards ---------- */
.previa {
  position: relative;
  width: 100%;
  border-radius: var(--radius-card);
  border: 1px solid var(--glass-border);
  background: hsl(var(--muted));
  overflow: hidden;
  margin-bottom: 12px;
  cursor: zoom-in;
  max-height: 280px;
}
.previa--vertical { max-width: 150px; margin-left: auto; margin-right: auto; }
.previa img, .previa video { width: 100%; height: 100%; object-fit: cover; display: block; }
.previa__play {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  background: rgba(5, 10, 48, 0.3);
}
.previa__play svg { width: 28px; height: 28px; }
.previa__grade { display: grid; width: 100%; height: 100%; gap: 2px; }
.previa__grade--1 { grid-template-columns: 1fr; }
.previa__grade--2 { grid-template-columns: 1fr 1fr; }
.previa__grade--3 { grid-template-columns: 1fr 1fr 1fr; }
.previa__grade--4 { grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; }
.previa__placeholder {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: hsl(var(--muted-foreground) / 0.6);
  font-size: 11.5px;
}
.previa__placeholder svg { width: 26px; height: 26px; }
.previa--texto {
  aspect-ratio: auto;
  cursor: default;
  background: #fff;
  padding: 14px;
  max-height: 360px;
  overflow-y: auto;
}
.previa__headline { font-weight: 700; font-size: 13.5px; }
.previa__corpo { font-size: 12.5px; color: hsl(var(--muted-foreground)); margin-top: 6px; line-height: 1.5; }
.previa__meta { font-size: 11px; color: hsl(var(--muted-foreground)); margin-top: 10px; text-transform: uppercase; letter-spacing: 0.05em; }
.previa__canal { font-size: 11px; color: hsl(var(--muted-foreground) / 0.6); margin-top: 8px; font-style: italic; }

/* RSA (Search): títulos e descrições como listas, preservando hierarquia */
.rsa { display: flex; flex-direction: column; gap: 14px; text-align: left; }
.rsa__rot { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: hsl(var(--primary)); }
.rsa__lista { margin: 6px 0 0; padding-left: 20px; display: flex; flex-direction: column; gap: 4px; }
.rsa__lista li { font-size: 13px; line-height: 1.45; color: hsl(var(--foreground)); }
.rsa__lista--desc li { color: hsl(var(--muted-foreground)); }
.previa--texto-lightbox { max-width: 480px; max-height: 80vh; overflow-y: auto; border-radius: var(--radius-lg); box-shadow: var(--shadow-card); }

/* ---------- Miniatura de texto (Search, sem criativo visual) ---------- */
.thumb--texto {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  background: hsl(217 91% 60% / 0.08);
  border-color: hsl(217 91% 60% / 0.25);
  color: hsl(217 91% 50%);
}
.thumb--texto:hover { border-color: hsl(217 91% 50%); }
.thumb__texto-icone { display: flex; align-items: center; }
.thumb__texto-icone svg { width: 14px; height: 14px; }
.thumb__texto-nome {
  font-size: 9px;
  line-height: 1.2;
  color: hsl(var(--muted-foreground));
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  max-width: 38px;
}

/* ---------- Lightbox de pré-visualização ---------- */
.lightbox {
  position: fixed;
  inset: 0;
  z-index: 60;
  background: rgba(6, 8, 20, 0.55);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 28px;
}
.lightbox__caixa {
  background: var(--glass-surface-strong);
  -webkit-backdrop-filter: blur(48px) saturate(var(--glass-saturation));
  backdrop-filter: blur(48px) saturate(var(--glass-saturation));
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-dialog);
  max-width: min(880px, 94vw);
  max-height: 92vh;
  width: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 24px 64px rgba(2, 9, 50, 0.45), var(--glass-highlight);
  animation: dialog-entrar 0.32s var(--spring);
}
@keyframes dialog-entrar {
  from { opacity: 0; transform: translateY(14px) scale(0.96); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
.lightbox__caixa--vertical { max-width: 420px; }
.lightbox__caixa--quadrado { max-width: 620px; }
.lightbox__topo {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 18px;
  border-bottom: 1px solid hsl(var(--border));
}
.lightbox__titulo { font-weight: 700; font-size: 14px; }
.lightbox__origem { font-size: 12px; color: hsl(var(--muted-foreground)); margin-top: 2px; }
.lightbox__fechar {
  border: none;
  background: hsl(var(--muted));
  color: hsl(var(--muted-foreground));
  width: 28px;
  height: 28px;
  border-radius: var(--radius-pill);
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
  flex: none;
  transition: background var(--spring-duration) var(--spring),
              color var(--spring-duration) var(--spring),
              transform var(--spring-duration) var(--spring);
}
.lightbox__fechar:hover { background: hsl(var(--destructive)); color: #fff; transform: scale(1.1); }
.lightbox__midia {
  overflow: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  background: hsl(var(--muted) / 0.6);
  min-height: 200px;
}
.lightbox__midia img, .lightbox__midia video { max-width: 100%; max-height: 76vh; display: block; }
.lightbox__midia iframe { width: 100%; aspect-ratio: 16 / 9; border: 0; }
.lightbox__conjunto {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 8px;
  padding: 14px;
}
.lightbox__conjunto img { width: 100%; border-radius: 12px; }
.lightbox__vazio {
  padding: 44px 28px;
  text-align: center;
  color: hsl(var(--muted-foreground));
  font-size: 13px;
}
.lightbox__vazio svg { width: 30px; height: 30px; opacity: 0.5; }
.lightbox__vazio .detalhe { font-size: 12px; margin-top: 6px; }
.lightbox__vazio code { background: hsl(var(--muted)); padding: 1px 5px; border-radius: 4px; font-size: 11px; }

/* ---------- Modal (configurações) ---------- */
.modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 70;
  background: rgba(6, 8, 20, 0.55);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.modal {
  background: var(--glass-surface-strong);
  -webkit-backdrop-filter: blur(48px) saturate(var(--glass-saturation));
  backdrop-filter: blur(48px) saturate(var(--glass-saturation));
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-dialog);
  width: min(460px, 94vw);
  padding: 22px 24px;
  box-shadow: 0 24px 64px rgba(2, 9, 50, 0.45), var(--glass-highlight);
  animation: dialog-entrar 0.32s var(--spring);
}
.modal__topo { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.modal__topo h2 { font-size: 16px; margin: 0; }
.campo { display: block; margin-bottom: 12px; }
.campo span {
  display: block;
  font-size: 12px;
  font-weight: 600;
  color: hsl(var(--muted-foreground));
  margin-bottom: 5px;
}
.campo input, .campo select {
  width: 100%;
  font: inherit;
  font-size: 13px;
  padding: 10px 14px;
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-control);
  background: #fff;
  color: hsl(var(--foreground));
}
.modal__nota {
  font-size: 11.5px;
  color: hsl(var(--muted-foreground));
  line-height: 1.55;
  background: hsl(var(--muted) / 0.7);
  border-radius: var(--radius-card);
  padding: 10px 12px;
}
.modal__acoes { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; }

/* ---------- Barra de seleção flutuante (dark glass dock) ---------- */
.selecao-flutuante {
  position: fixed;
  left: calc(var(--sidebar-w) + 24px);
  right: 24px;
  bottom: 18px;
  z-index: 40;
  background: var(--glass-surface-dark);
  -webkit-backdrop-filter: blur(32px) saturate(var(--glass-saturation));
  backdrop-filter: blur(32px) saturate(var(--glass-saturation));
  border: 1px solid var(--glass-border-dark);
  color: #fff;
  border-radius: var(--radius-dialog);
  padding: 10px 16px;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  box-shadow: 0 14px 40px rgba(2, 9, 50, 0.4);
  animation: dock-entrar 0.32s var(--spring);
}
@keyframes dock-entrar {
  from { opacity: 0; transform: translateY(16px) scale(0.97); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
.selecao-flutuante__contagem { font-size: 13px; font-weight: 600; margin-right: auto; }
.selecao-flutuante .btn--outline { background: rgba(255, 255, 255, 0.08); border-color: rgba(255, 255, 255, 0.3); color: #fff; text-decoration: none; box-shadow: none; }
.selecao-flutuante .btn--outline:hover { background: rgba(255, 255, 255, 0.16); }
.selecao-flutuante .btn--ghost { color: hsl(220 40% 80%); }
.selecao-flutuante .btn--ghost:hover { background: rgba(255, 255, 255, 0.08); color: #fff; }
.selecao-flutuante .btn[disabled] { opacity: 0.55; cursor: not-allowed; }
@media (max-width: 880px) { .selecao-flutuante { left: 16px; right: 16px; } }

/* ---------- Resumo semestral (home) ---------- */
.resumo-semestral {
  border: 1px solid var(--glass-border);
  margin-bottom: 18px;
}
.resumo-semestral__topo { margin-bottom: 12px; }
.resumo-semestral__periodo { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.resumo-semestral__atualizado { flex-basis: 100%; font-size: 11px; color: hsl(var(--muted-foreground)); font-style: italic; }
.tabela-resumo { margin-top: 4px; }
.tabela-resumo th:not(.esq), .tabela-resumo td:not(.esq) { text-align: right; }
.tabela-resumo .resumo-semestral__delta { font-weight: 700; }
.resumo-semestral__delta--up { color: hsl(122 39% 30%); }
.resumo-semestral__delta--alerta { color: hsl(28 80% 38%); }
.resumo-semestral--pagina { padding: 28px; }
.resumo-semestral--pagina .resumo-semestral__topo {
  display: flex; gap: 24px; flex-wrap: wrap; justify-content: space-between;
  padding-bottom: 18px; margin-bottom: 22px; border-bottom: 1px solid var(--glass-border);
}

.comparativo-grande-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px;
}
.comparativo-grande {
  border: 1px solid var(--glass-border); border-radius: var(--radius);
  padding: 18px; background: hsl(var(--card));
}
.comparativo-grande__rotulo { font-size: 13px; font-weight: 700; color: hsl(var(--muted-foreground)); text-transform: uppercase; letter-spacing: .03em; margin-bottom: 12px; }
/* Empilhado (2025.2 em cima, 2026.2 embaixo) em vez de lado a lado — evita
   números grandes disputando espaço horizontal e se sobrepondo em telas estreitas. */
.comparativo-grande__valores { display: flex; flex-direction: column; gap: 8px; }
.comparativo-grande__valor { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; min-width: 0; }
.comparativo-grande__num {
  font-family: "Aconchego", "Sua", sans-serif; font-size: 22px; font-weight: 700;
  letter-spacing: -0.01em; text-align: right; overflow-wrap: anywhere;
}
.comparativo-grande__valor--hist .comparativo-grande__num { color: hsl(var(--muted-foreground)); font-size: 18px; }
.comparativo-grande__valor--vig .comparativo-grande__num { color: hsl(var(--primary)); }
.comparativo-grande__seta { display: none; }
.comparativo-grande__delta { margin-top: 14px; font-size: 13px; font-weight: 700; text-align: center; }

/* ---------- Leitura do período (home) ---------- */
.painel--leitura {
  border: 1px solid hsl(var(--primary) / 0.22);
  background:
    radial-gradient(120% 140% at 0% 0%, hsl(var(--primary) / 0.06), transparent 60%),
    hsl(var(--card));
  margin-bottom: 18px;
}
.leitura__topo { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.leitura__topo h2 { display: flex; align-items: center; gap: 7px; }
.leitura__topo h2::before {
  content: ""; width: 7px; height: 7px; border-radius: 50%;
  background: hsl(var(--primary)); box-shadow: 0 0 0 4px hsl(var(--primary) / 0.15);
}
#leitura-gerar svg { width: 15px; height: 15px; }
.leitura__corpo { max-width: 880px; }
.leitura__corpo .ia-vazio { font-size: 13.5px; line-height: 1.6; }
.leitura__corpo strong { color: hsl(var(--foreground)); }

/* ---------- Painel de análise com IA ---------- */
.painel--ia { border-top: 3px solid hsl(var(--accent)); }
.ia-vazio { font-size: 13px; color: hsl(var(--muted-foreground)); }
.ia-status {
  display: flex;
  align-items: center;
  gap: 16px;
  font-size: 13px;
  color: hsl(var(--muted-foreground));
  padding: 10px 0;
}
/* AILoadingState — três pontos com bounce */
.spinner {
  position: relative;
  width: 7px;
  height: 7px;
  margin: 0 12px;
  border: none;
  border-radius: var(--radius-pill);
  background: hsl(var(--accent));
  animation: ia-bounce 1.2s infinite ease-in-out;
  animation-delay: 0.2s;
  flex: none;
}
.spinner::before, .spinner::after {
  content: "";
  position: absolute;
  top: 0;
  width: 7px;
  height: 7px;
  border-radius: var(--radius-pill);
  background: hsl(var(--accent));
  animation: ia-bounce 1.2s infinite ease-in-out;
}
.spinner::before { left: -12px; animation-delay: 0s; }
.spinner::after { left: 12px; animation-delay: 0.4s; }
@keyframes ia-bounce {
  0%, 80%, 100% { transform: scale(0.5); opacity: 0.4; }
  40%           { transform: scale(1); opacity: 1; }
}
.nota--erro { background: hsl(var(--destructive) / 0.07); border-color: hsl(var(--destructive) / 0.3); color: hsl(356 70% 40%); }
.ia-resultado { font-size: 13.5px; line-height: 1.65; max-width: 760px; }
.ia-resultado h2 {
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: hsl(var(--accent));
  margin: 18px 0 6px;
}
.ia-resultado h2:first-child { margin-top: 0; }
.ia-resultado h3, .ia-resultado h4 { font-size: 13.5px; margin: 12px 0 4px; }
.ia-resultado p { font-family: "AconchegoText", "Sua", sans-serif; margin: 0 0 8px; }
.ia-resultado ul { margin: 0 0 10px; padding-left: 20px; }
.ia-resultado li { font-family: "AconchegoText", "Sua", sans-serif; margin-bottom: 4px; }
.ia-resultado code { background: hsl(var(--muted)); padding: 1px 5px; border-radius: 4px; font-size: 12px; }
.ia-rodape {
  margin-top: 14px;
  padding-top: 10px;
  border-top: 1px solid hsl(var(--border));
  font-size: 11.5px;
  color: hsl(var(--muted-foreground));
}

/* ---------- Briefings ---------- */
.brief-lista { display: flex; flex-direction: column; gap: 10px; }
.brief-card {
  display: block; text-decoration: none; color: inherit;
  padding: 14px 16px; border: 1px solid var(--glass-border); border-radius: var(--radius-card);
  background: var(--glass-surface); transition: all var(--spring-duration) var(--spring);
}
.brief-card:hover { border-color: hsl(var(--primary)); box-shadow: var(--shadow-card); transform: translateY(-1px); }
.brief-card__topo { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.brief-card__topo h3 { margin: 0; font-size: 15px; line-height: 1.3; }
.brief-card__data { font-size: 12px; color: hsl(var(--muted-foreground)); white-space: nowrap; }
.brief-card__rod { font-size: 12px; color: hsl(var(--muted-foreground)); margin-top: 6px; }
.brief-detalhe__topo { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.brief-detalhe__acoes { display: flex; gap: 8px; align-items: center; }
.brief-detalhe__del:hover { color: hsl(0 70% 55%); }
.brief-detalhe__titulo { margin: 6px 0 4px; }
.brief-detalhe__meta { font-size: 13px; color: hsl(var(--muted-foreground)); margin-bottom: 14px; }
.brief-detalhe__veredito { margin: 12px 0 18px; padding: 14px 18px; border-left: 4px solid hsl(var(--primary)); }
.brief-detalhe__veredito-rotulo { font-size: 11px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: hsl(var(--muted-foreground)); margin-bottom: 4px; }
.brief-detalhe__veredito p { margin: 0; line-height: 1.5; }
.brief-detalhe__conteudo { max-width: 760px; margin-top: 8px; line-height: 1.65; }
.brief-detalhe__conteudo h2 { margin: 22px 0 8px; font-size: 18px; padding-bottom: 6px; border-bottom: 1px solid var(--glass-border); }
.brief-detalhe__conteudo h3 { margin: 16px 0 6px; font-size: 15px; }
.brief-detalhe__conteudo ul { margin: 6px 0 12px; padding-left: 20px; }
.brief-detalhe__conteudo li { margin: 3px 0; }
.brief-detalhe__conteudo p { margin: 8px 0; }

/* ---------- Grupos de análise ---------- */
.vazio-bloco { text-align: center; padding: 40px 24px; }
.vazio-bloco h2 { margin: 0 0 8px; }
.vazio-bloco .descricao { max-width: 520px; margin: 0 auto; }

/* Construtor de Segmentos */
.construtor { padding: 18px 22px; margin-bottom: 14px; }
.construtor__cabecalho { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.construtor__filtros { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px 16px; margin-bottom: 14px; }
.atr-bloco { display: flex; flex-direction: column; gap: 6px; }
.atr-bloco__topo { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.atr-bloco__titulo { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: hsl(var(--muted-foreground)); }
.atr-bloco__modo {
  display: inline-flex; border: 1px solid hsl(var(--border)); border-radius: var(--radius-pill);
  overflow: hidden; background: hsl(var(--background));
}
.atr-modo__opt {
  padding: 2px 8px; font-size: 10px; font-weight: 700; letter-spacing: 0.04em;
  border: 0; background: transparent; color: hsl(var(--muted-foreground)); cursor: pointer;
  transition: all var(--spring-duration) var(--spring);
}
.atr-modo__opt + .atr-modo__opt { border-left: 1px solid hsl(var(--border)); }
.atr-modo__opt:hover:not(.atr-modo__opt--ativo) { color: hsl(var(--foreground)); }
.atr-modo__opt--ativo { background: hsl(var(--primary)); color: #fff; }
.atr-bloco__chips { display: flex; flex-wrap: wrap; gap: 5px; }
.chip-atr {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 4px 9px; font-size: 12px; line-height: 1.25;
  border: 1px solid hsl(var(--border)); border-radius: var(--radius-pill);
  background: hsl(var(--background)); color: hsl(var(--foreground));
  cursor: pointer; user-select: none;
  transition: all var(--spring-duration) var(--spring);
}
.chip-atr:hover { border-color: hsl(var(--primary)); }
.chip-atr--ativo { background: hsl(var(--primary)); color: #fff; border-color: hsl(var(--primary)); }
.chip-atr__n { font-size: 10.5px; opacity: 0.7; }
.chip-atr--ativo .chip-atr__n { opacity: 0.9; }
.construtor__resultado {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; flex-wrap: wrap;
  padding: 12px 14px; border-top: 1px solid var(--glass-border); border-bottom: 1px solid var(--glass-border);
  margin: 0 -6px;
}
.construtor__contagem { font-size: 13px; color: hsl(var(--muted-foreground)); }
.construtor__contagem strong { font-size: 18px; color: hsl(var(--foreground)); font-weight: 800; }
.construtor__previa {
  display: flex; flex-wrap: wrap; gap: 6px; padding-top: 12px;
}
.constr-prev {
  width: 56px; height: 56px; border-radius: 8px; overflow: hidden;
  background: hsl(var(--muted)); flex: none;
}
.constr-prev img, .constr-prev video { width: 100%; height: 100%; object-fit: cover; }
.constr-prev--mais {
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 700; color: hsl(var(--muted-foreground));
  background: hsl(var(--muted) / 0.6);
}
.construtor__sugestoes { margin-top: 16px; padding-top: 14px; border-top: 1px dashed var(--glass-border); }
.construtor__sugestoes-titulo { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: hsl(var(--muted-foreground)); margin-bottom: 8px; }
.construtor__sugestoes-lista { display: flex; flex-wrap: wrap; gap: 6px; }
.btn-sugest {
  padding: 6px 12px; font-size: 12.5px; font-weight: 600;
  border: 1px solid hsl(var(--accent)); border-radius: var(--radius-pill);
  background: hsl(var(--accent) / 0.12); color: hsl(var(--foreground));
  cursor: pointer;
  transition: all var(--spring-duration) var(--spring);
}
.btn-sugest:hover { background: hsl(var(--accent) / 0.25); }
.btn-sugest__n { font-size: 11px; opacity: 0.7; margin-left: 4px; }

.grupos-topo {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; flex-wrap: wrap; padding: 16px 20px; margin-bottom: 14px;
}
.grupos-topo__acoes { display: flex; gap: 8px; align-items: center; }

.grupos-grade {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 12px; margin-bottom: 16px;
}
.grupo-card {
  border: 1px solid var(--glass-border); border-radius: var(--radius-card);
  background: var(--glass-surface); box-shadow: var(--glass-shadow);
  padding: 14px; transition: border-color var(--spring-duration) var(--spring);
}
.grupo-card--sel { border-color: hsl(var(--primary)); box-shadow: 0 0 0 2px hsl(var(--primary) / 0.18); }
.grupo-card__topo { display: flex; align-items: flex-start; gap: 8px; }
.grupo-card__check { display: flex; align-items: center; gap: 8px; cursor: pointer; flex: 1; min-width: 0; }
.grupo-card__check input { width: 16px; height: 16px; accent-color: hsl(var(--primary)); flex: none; }
.grupo-card__nome { font-weight: 700; font-size: 14px; white-space: normal; word-break: break-word; }
.grupo-card__acoes { display: flex; gap: 2px; flex: none; }
.icone-btn {
  border: none; background: transparent; cursor: pointer; font-size: 15px; line-height: 1;
  width: 26px; height: 26px; border-radius: 8px; color: hsl(var(--muted-foreground));
}
.icone-btn:hover { background: hsl(var(--muted)); color: hsl(var(--foreground)); }
.grupo-card__meta { font-size: 11.5px; color: hsl(var(--muted-foreground)); margin: 6px 0 10px; }
.grupo-card__thumbs { display: grid; grid-template-columns: repeat(5, 34px); gap: 5px; }
.grupo-card__thumbs .thumb { width: 34px; height: 34px; border-radius: 8px; cursor: default; }
.grupo-card__mais {
  width: 34px; height: 34px; border-radius: 8px;
  background: hsl(var(--muted)); color: hsl(var(--muted-foreground));
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 600; line-height: 1;
}

/* Modal: opções de grupo */
.modal__rotulo { font-size: 12px; font-weight: 600; color: hsl(var(--muted-foreground)); margin-bottom: 6px; }
.grupo-opcoes { display: flex; flex-direction: column; gap: 6px; max-height: 220px; overflow-y: auto; margin-bottom: 14px; }
.grupo-opcao {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 10px 12px; border: 1px solid var(--glass-border); border-radius: var(--radius-control);
  background: #fff; font: inherit; font-size: 13.5px; cursor: pointer; text-align: left;
  transition: border-color var(--spring-duration) var(--spring), background var(--spring-duration) var(--spring);
}
.grupo-opcao:hover { border-color: hsl(var(--primary) / 0.5); background: hsl(var(--primary) / 0.05); }
.grupo-opcao__n { font-size: 11px; font-weight: 700; color: hsl(var(--muted-foreground)); background: hsl(var(--muted)); border-radius: var(--radius-pill); padding: 1px 8px; }

/* Saída da análise por grupos */
.analise-saida__topo { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.analise-grupos { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 12px; margin: 14px 0; }
.analise-grupo { border: 1px solid var(--glass-border); border-radius: var(--radius-card); background: hsl(var(--muted) / 0.4); padding: 14px; }
.analise-grupo h3 { margin: 0 0 8px; font-size: 14px; color: hsl(var(--foreground)); }
.analise-h { font-size: 13px; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; color: hsl(var(--accent)); margin: 20px 0 8px; }
.analise-recs { font-size: 13.5px; line-height: 1.6; margin: 0; padding-left: 20px; }
.analise-recs li { margin-bottom: 6px; }
.analise-cabecalho h2 { margin: 8px 0 4px; }
.analise-cabecalho .btn { margin-bottom: 4px; }

/* Card de Veredito (destaque no topo) */
.veredito {
  border-left: 4px solid hsl(var(--accent));
  padding: 16px 20px; margin-bottom: 14px;
}
.veredito__rot {
  font-size: 11px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase;
  color: hsl(var(--accent)); margin-bottom: 6px;
}
.veredito .ia-resultado { font-size: 15px; line-height: 1.6; font-weight: 500; }
.veredito .ia-resultado p { margin: 0; }

/* Cards por criativo (dentro de cada grupo) */
.cc-detalhe { margin-top: 12px; }
.cc-detalhe > summary {
  cursor: pointer; font-size: 12.5px; font-weight: 600; color: hsl(var(--primary));
  list-style: none; padding: 6px 0; user-select: none;
}
.cc-detalhe > summary::-webkit-details-marker { display: none; }
.cc-detalhe > summary::before { content: "▸ "; }
.cc-detalhe[open] > summary::before { content: "▾ "; }
.cc-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; margin-top: 8px; }
.cc {
  border: 1px solid var(--glass-border); border-radius: var(--radius-card); background: #fff;
  padding: 12px; display: flex; flex-direction: column; gap: 10px;
}
.cc-topo { display: flex; gap: 10px; align-items: flex-start; }
.cc-thumb {
  width: 46px; height: 46px; border-radius: 10px; overflow: hidden; flex: none;
  background: hsl(var(--muted)); display: flex; align-items: center; justify-content: center;
}
.cc-thumb img { width: 100%; height: 100%; object-fit: cover; }
.cc-thumb--texto { background: hsl(217 91% 60% / 0.1); }
.cc-thumb__txt { font-weight: 800; color: hsl(217 91% 50%); font-size: 16px; }
.cc-id { min-width: 0; flex: 1; }
.cc-nome { font-weight: 700; font-size: 13px; line-height: 1.3; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.cc-badges { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 5px; }
.cc-metricas { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 12px; }
.cc-m { display: flex; justify-content: space-between; font-size: 11.5px; }
.cc-m span { color: hsl(var(--muted-foreground)); }
.cc-m b { font-variant-numeric: tabular-nums; }
.cc-bloco { font-size: 12px; line-height: 1.5; }
.cc-rot { display: block; font-size: 10px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: hsl(var(--muted-foreground)); margin-bottom: 2px; }
.cc-bloco p { margin: 0; color: hsl(var(--foreground)); }

/* Histórico */
.hist-lista { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }
.hist-item {
  display: block; padding: 12px 14px; border: 1px solid var(--glass-border);
  border-radius: var(--radius-card); background: #fff; text-decoration: none; color: inherit;
  transition: border-color var(--spring-duration) var(--spring), transform var(--spring-duration) var(--spring);
}
.hist-item:hover { border-color: hsl(var(--primary) / 0.5); transform: translateX(2px); }
.hist-item__titulo { font-weight: 700; font-size: 14px; }
.hist-item__meta { font-size: 11.5px; color: hsl(var(--muted-foreground)); margin-top: 3px; }

.sidebar__config {
  margin-top: 10px;
  border: none;
  font: inherit;
  font-size: 13px;
  cursor: pointer;
  background: transparent;
  width: 100%;
  text-align: left;
}

/* ---------- Aviso (sidebar) ---------- */
.sidebar__aviso {
  margin-top: 14px;
  display: flex;
  gap: 9px;
  padding: 11px 12px;
  border-radius: var(--radius-card);
  background: hsl(var(--warning) / 0.1);
  border: 1px solid hsl(var(--warning) / 0.28);
}
.sidebar__aviso svg {
  width: 15px;
  height: 15px;
  flex: none;
  margin-top: 1px;
  color: hsl(var(--warning));
}
.sidebar__aviso-texto {
  font-size: 11px;
  line-height: 1.5;
  color: hsl(220 35% 78%);
}
.sidebar__aviso-texto strong { color: #fff; font-weight: 600; }

/* ---------- Conta / logout (sidebar) ---------- */
.sidebar__conta {
  margin-top: auto;
  padding-top: 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.sidebar__conta-email {
  font-size: 11.5px;
  color: hsl(218 50% 78%);
  padding: 0 8px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sidebar__sair {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border-radius: var(--radius-control);
  border: 1px solid var(--glass-border-dark);
  background: rgba(255, 255, 255, 0.04);
  color: hsl(220 40% 82%);
  font: inherit;
  font-size: 12.5px;
  font-weight: 500;
  cursor: pointer;
  transition: background var(--spring-duration) var(--spring),
              color var(--spring-duration) var(--spring),
              transform var(--spring-duration) var(--spring);
}
.sidebar__sair svg { width: 16px; height: 16px; flex: none; }
.sidebar__sair:hover { background: hsl(var(--destructive) / 0.18); color: #fff; border-color: hsl(var(--destructive) / 0.4); }
.sidebar__sair:active { transform: scale(0.97); }

/* ---------- Gate de login (Supabase Auth) ---------- */
.sor-login { display: none; }
body.sor-anon .shell { display: none; }
body.sor-anon .sor-login {
  display: flex;
  position: fixed;
  inset: 0;
  z-index: 100;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background:
    radial-gradient(120% 120% at 0% 0%, hsl(var(--accent) / 0.35), transparent 55%),
    radial-gradient(120% 120% at 100% 100%, hsl(var(--primary) / 0.35), transparent 55%),
    linear-gradient(160deg, hsl(var(--navy)), hsl(var(--brand-dark)));
}
.sor-login__card {
  width: 100%;
  max-width: 380px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 36px 32px 28px;
  background: var(--glass-surface-strong);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-dialog);
  box-shadow: 0 24px 70px rgba(5, 10, 48, 0.45);
}
.sor-login__logo { width: 150px; align-self: flex-start; margin-bottom: 4px; }
.sor-login__titulo { font-size: 17px; font-weight: 700; color: hsl(var(--foreground)); }
.sor-login__sub { font-size: 13px; color: hsl(var(--muted-foreground)); margin-top: -8px; margin-bottom: 6px; }
.sor-login__campo { display: flex; flex-direction: column; gap: 5px; }
.sor-login__campo span { font-size: 12px; font-weight: 600; color: hsl(var(--foreground)); }
.sor-login__campo input {
  font: inherit;
  font-size: 14px;
  padding: 11px 13px;
  border-radius: var(--radius-control);
  border: 1px solid hsl(var(--input));
  background: hsl(var(--background));
  color: hsl(var(--foreground));
  transition: border-color var(--spring-duration) var(--spring), box-shadow var(--spring-duration) var(--spring);
}
.sor-login__campo input:focus {
  outline: none;
  border-color: hsl(var(--ring));
  box-shadow: 0 0 0 3px hsl(var(--ring) / 0.18);
}
.sor-login__erro {
  display: none;
  font-size: 12.5px;
  color: hsl(var(--destructive));
  background: hsl(var(--destructive) / 0.1);
  border-radius: 10px;
  padding: 8px 11px;
}
.sor-login__btn {
  margin-top: 4px;
  padding: 12px;
  border: none;
  border-radius: var(--radius-control);
  background: hsl(var(--primary));
  color: hsl(var(--primary-foreground));
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: filter var(--spring-duration) var(--spring), transform var(--spring-duration) var(--spring);
}
.sor-login__btn:hover { filter: brightness(1.05); }
.sor-login__btn:active { transform: scale(0.98); }
.sor-login__btn:disabled { opacity: 0.6; cursor: progress; }
.sor-login__rodape { text-align: center; font-size: 11px; color: hsl(var(--muted-foreground)); margin-top: 6px; }

.analise-saida__acoes { display: flex; gap: 8px; flex-wrap: wrap; }
.badge--sazonal { background: hsl(var(--brand-orange) / 0.16); color: hsl(28 92% 36%); }
.lightbox__apelido { display: flex; gap: 8px; padding: 4px 0 8px; }
.lightbox__apelido input {
  flex: 1; font: inherit; font-size: 13px; padding: 8px 11px;
  border-radius: var(--radius-control); border: 1px solid var(--glass-border);
  background: #fff; color: hsl(var(--foreground));
}
.lightbox__apelido input:focus { outline: none; border-color: hsl(var(--ring)); box-shadow: 0 0 0 3px hsl(var(--ring) / 0.18); }

/* ---------- Config de IA: campos extras (A2) ---------- */
.campo-dupla { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.campo textarea {
  font: inherit; font-size: 14px; padding: 10px 12px; width: 100%;
  border-radius: var(--radius-control); border: 1px solid hsl(var(--input));
  background: hsl(var(--background)); color: hsl(var(--foreground));
  resize: vertical; box-sizing: border-box;
}
.campo textarea:focus { outline: none; border-color: hsl(var(--ring)); box-shadow: 0 0 0 3px hsl(var(--ring) / 0.18); }
@media (max-width: 480px) { .campo-dupla { grid-template-columns: 1fr; } }

/* ---------- Glossário ---------- */
.modal--largo { max-width: 620px; }
.glossario { margin: 6px 0 0; display: flex; flex-direction: column; gap: 2px; max-height: 60vh; overflow-y: auto; }
.glossario__item { display: grid; grid-template-columns: 150px 1fr; gap: 12px; padding: 9px 4px; border-bottom: 1px solid hsl(var(--border)); }
.glossario__item:last-child { border-bottom: none; }
.glossario dt { font-weight: 700; font-size: 13px; color: hsl(var(--foreground)); }
.glossario dd { margin: 0; font-size: 13px; line-height: 1.5; color: hsl(var(--muted-foreground)); }
@media (max-width: 560px) { .glossario__item { grid-template-columns: 1fr; gap: 2px; } }

/* ---------- Decks (U2/U3) ---------- */
.deck-topo { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.deck-tabs { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.deck-tab { font: inherit; font-size: 13px; padding: 7px 13px; border-radius: var(--radius-control); border: 1px solid var(--glass-border); background: #fff; color: hsl(var(--foreground)); cursor: pointer; }
.deck-tab--ativa { background: hsl(var(--primary)); color: #fff; border-color: hsl(var(--primary)); }
.deck-tab-sep { display: inline-block; width: 1px; height: 22px; background: hsl(var(--border)); margin: 0 6px; }
.deck { display: flex; flex-direction: column; gap: 16px; }
.deck-slide { background: #fff; border: 1px solid var(--glass-border); border-radius: var(--radius-card); box-shadow: var(--glass-shadow); padding: 26px 30px; }
.deck-slide__head { margin-bottom: 14px; }
.deck-kicker { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: hsl(var(--primary)); }
.deck-slide h2 { font-family: "Aconchego", "Sua", sans-serif; font-size: 24px; font-weight: 650; margin: 4px 0 0; }
.deck-capa { background: linear-gradient(155deg, hsl(var(--navy)), hsl(258 60% 30%)); color: #fff; }
.deck-capa h1 { font-family: "Aconchego", "Sua", sans-serif; font-size: 38px; margin: 8px 0 0; line-height: 1.05; }
.deck-capa__sub { font-size: 16px; opacity: .85; margin-top: 12px; }
.deck-capa__rodape { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-top: 26px; font-size: 12.5px; opacity: .8; }
.deck-lead { font-size: 16px; color: hsl(var(--muted-foreground)); }
.deck-bullets { margin: 6px 0 0; padding-left: 18px; display: flex; flex-direction: column; gap: 7px; font-size: 14px; line-height: 1.5; }
.deck-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.deck-kpis--mini { grid-template-columns: repeat(3, 1fr); gap: 8px; }
.deck-kpi { background: hsl(var(--muted)); border-radius: var(--radius-card); padding: 14px 16px; }
.deck-kpi__rot { font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: hsl(var(--muted-foreground)); }
.deck-kpi__val { font-size: 22px; font-weight: 750; color: hsl(var(--foreground)); margin-top: 4px; }
.deck-kpi__sub { font-size: 11.5px; color: hsl(var(--muted-foreground)); margin-top: 2px; }
.deck-nota { font-size: 13px; line-height: 1.5; padding: 11px 13px; border-radius: 12px; background: hsl(var(--muted)); }
.deck-nota--ok { background: hsl(var(--success) / 0.12); }
.deck-nota--alerta { background: hsl(var(--warning) / 0.14); }
.deck-nota--info { background: hsl(var(--info) / 0.12); }
.deck-duas { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.deck-versus { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.deck-colh { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; margin-bottom: 8px; }
.deck-colh.win { color: hsl(var(--success)); }
.deck-colh.lose { color: hsl(var(--destructive)); }
.deck-crow { display: grid; grid-template-columns: 44px 1fr auto; align-items: center; gap: 10px; padding: 6px 0; border-bottom: 1px solid hsl(var(--border)); }
.deck-crow__nome { font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.deck-crow__ctr { font-weight: 700; font-variant-numeric: tabular-nums; }
.deck-crow.win .deck-crow__ctr { color: hsl(var(--success)); }
.deck-crow.lose .deck-crow__ctr { color: hsl(var(--destructive)); }
.deck-cmp { display: flex; flex-direction: column; gap: 14px; }
.deck-cmp__row { display: grid; grid-template-columns: 200px 1fr 70px; align-items: center; gap: 14px; }
.deck-cmp__lab { font-size: 13px; font-weight: 600; }
.deck-cmp__lab small { display: block; font-weight: 400; color: hsl(var(--muted-foreground)); font-size: 11px; }
.deck-cmp__b { display: flex; align-items: center; gap: 6px; font-size: 12px; }
.deck-cmp__b .bar { height: 9px; border-radius: 5px; }
.deck-cmp__b.com .bar { background: hsl(var(--primary)); }
.deck-cmp__b.sem .bar { background: hsl(var(--muted-foreground) / 0.4); }
.deck-cmp__b span:first-child { width: 28px; color: hsl(var(--muted-foreground)); }
.deck-cmp__d { font-weight: 700; text-align: right; font-variant-numeric: tabular-nums; }
.deck-cmp__d.pos { color: hsl(var(--success)); }
.deck-cmp__d.neg { color: hsl(var(--destructive)); }
.deck-cmp__d.zero { color: hsl(var(--muted-foreground)); }
.deck-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.deck-chip { background: hsl(var(--muted)); border-radius: 14px; padding: 12px 16px; font-size: 13px; }
.deck-chip b { font-size: 18px; }
.deck-vazio { font-size: 14px; color: hsl(var(--muted-foreground)); padding: 10px 0; }
.deck-pai { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.deck-pai-card { border: 1px solid var(--glass-border); border-radius: 18px; padding: 16px 18px; }
.deck-pai-card__topo { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.deck-pai-card__topo h3 { margin: 0; font-size: 16px; }
.deck-pai-card__verd { margin-top: 10px; font-size: 13px; color: hsl(var(--muted-foreground)); }
/* Galeria de peças do deck — criativos visíveis e clicáveis */
.deck-galeria { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 14px; align-items: start; }
.deck-peca { margin: 0; display: flex; flex-direction: column; gap: 8px; }
.deck-peca .thumb { width: 100%; height: 150px; border-radius: 12px; cursor: zoom-in; }
.deck-peca__nome { font-size: 12.5px; font-weight: 600; line-height: 1.3; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.deck-peca__meta { font-size: 11px; color: hsl(var(--muted-foreground)); }
/* Mini-card de RSA (texto): mostra os títulos reais, clicável */
.deck-peca-txt {
  display: flex; flex-direction: column; gap: 6px; width: 100%; min-height: 150px;
  text-align: left; padding: 12px 14px; border-radius: 12px; cursor: zoom-in; font: inherit; color: inherit;
  background: hsl(217 91% 60% / 0.06); border: 1px solid hsl(217 91% 60% / 0.22);
  transition: border-color var(--spring-duration) var(--spring), box-shadow var(--spring-duration) var(--spring);
}
.deck-peca-txt:hover { border-color: hsl(217 91% 50%); box-shadow: var(--shadow-card); }
.deck-peca-txt__cab { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: hsl(var(--primary)); }
.deck-peca-txt__lista { margin: 2px 0 0; padding-left: 16px; display: flex; flex-direction: column; gap: 3px; }
.deck-peca-txt__lista li { font-size: 12px; line-height: 1.32; color: hsl(var(--foreground)); overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.deck-peca-txt__mais { margin-top: auto; padding-top: 6px; font-size: 10.5px; color: hsl(var(--muted-foreground)); }
.deck-peca--win { position: relative; }
.deck-peca--win .thumb { box-shadow: 0 0 0 3px hsl(142 70% 45%); }
.deck-peca--lose .thumb { box-shadow: 0 0 0 3px hsl(0 70% 55%); opacity: 0.92; }
.deck-peca--teste .thumb { box-shadow: 0 0 0 2px hsl(45 90% 55%); }
.deck-peca--win::before {
  content: "★"; position: absolute; top: 6px; left: 8px; z-index: 2;
  background: hsl(142 70% 45%); color: #fff; font-size: 11px; font-weight: 700;
  width: 22px; height: 22px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
}
/* Thumb placeholder "Vídeo em processamento" */
.thumb--processando {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 8px;
  background: linear-gradient(135deg, hsl(var(--muted) / 0.6), hsl(var(--muted) / 0.3));
  color: hsl(var(--muted-foreground));
  text-align: center;
  padding: 12px 8px;
  border: 1px dashed hsl(var(--border));
}
.thumb__proc-ico { width: 28px; height: 28px; opacity: 0.55; }
.thumb__proc-ico svg { width: 100%; height: 100%; }
.thumb__proc-rot {
  font-size: 10.5px; font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.25;
  text-transform: uppercase;
  opacity: 0.85;
}
/* Padrão vencedor por produto — tiles iconográficos */
.deck-padroes { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.deck-padrao {
  border: 1px solid var(--glass-border); border-radius: 18px;
  padding: 18px 20px;
  background: linear-gradient(135deg, hsl(var(--background)) 0%, hsl(var(--muted) / 0.3) 100%);
}
.deck-padrao__h { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.deck-padrao__h h3 { margin: 2px 0 0; font-size: 17px; line-height: 1.2; }
.deck-padrao__cat { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: hsl(var(--muted-foreground)); }
.deck-padrao__ctr-box {
  text-align: right;
  padding: 6px 14px;
  border-radius: 12px;
  background: hsl(142 70% 92%);
  color: hsl(142 70% 25%);
  border: 1px solid hsl(142 70% 80%);
}
.deck-padrao__ctr-num { font-size: 22px; font-weight: 800; line-height: 1; }
.deck-padrao__ctr-rot { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; margin-top: 2px; opacity: 0.85; }
.pv-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 8px; }
.pv-tile {
  position: relative;
  padding: 10px 11px;
  border-radius: 12px;
  background: hsl(var(--background));
  border: 1px solid var(--glass-border);
  display: flex; flex-direction: column; gap: 2px;
  min-height: 88px;
}
.pv-tile__ico {
  width: 22px; height: 22px;
  display: inline-flex; align-items: center; justify-content: center;
  color: hsl(var(--muted-foreground));
  margin-bottom: 4px;
}
.pv-tile__ico svg { width: 18px; height: 18px; }
.pv-tile__rot { font-size: 10px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: hsl(var(--muted-foreground)); }
.pv-tile__val { font-size: 14px; line-height: 1.25; font-weight: 600; color: hsl(var(--foreground)); margin-top: 1px; }
.pv-tile__val b { font-weight: 800; }
.pv-tile__sub { font-size: 11px; color: hsl(var(--muted-foreground)); margin-top: auto; padding-top: 4px; }
.pv-tile--pos { border-color: hsl(142 50% 70%); background: hsl(142 60% 97%); }
.pv-tile--pos .pv-tile__ico { color: hsl(142 70% 35%); }
.pv-tile--neg { border-color: hsl(0 50% 80%); background: hsl(0 60% 98%); }
.pv-tile--neg .pv-tile__ico { color: hsl(0 70% 50%); }

/* O que diferencia — cards categorizados */
.dif-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.dif-card {
  border: 1px solid var(--glass-border);
  border-radius: 16px;
  padding: 16px 18px;
  background: hsl(var(--background));
}
.dif-card__h {
  display: flex; align-items: center; gap: 8px;
  padding-bottom: 10px; margin-bottom: 12px;
  border-bottom: 1px solid hsl(var(--border) / 0.6);
}
.dif-card__h svg { width: 20px; height: 20px; color: hsl(var(--primary)); flex: none; }
.dif-card__h h3 { margin: 0; font-size: 15px; }
.dif-card__sub { font-size: 10px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: hsl(var(--muted-foreground)); margin: 14px 0 6px; }
.dif-row {
  display: grid; grid-template-columns: 160px 1fr 70px;
  gap: 10px; align-items: center;
  padding: 8px 0; border-bottom: 1px dashed hsl(var(--border) / 0.5);
  font-size: 12.5px;
}
.dif-row:last-child { border-bottom: 0; }
.dif-row__nome { font-weight: 600; }
.dif-row__bars { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.dif-row__b { display: grid; grid-template-columns: 28px 1fr 44px; align-items: center; gap: 6px; }
.dif-row__leg { font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: hsl(var(--muted-foreground)); }
.dif-row__bar { display: block; height: 7px; background: hsl(var(--muted)); border-radius: 4px; overflow: hidden; min-width: 0; }
.dif-row__bar span { display: block; height: 100%; background: hsl(var(--primary)); border-radius: 4px; }
.dif-row__b.sem .dif-row__bar span { background: hsl(var(--muted-foreground) / 0.4); }
.dif-row__val { font-size: 11px; text-align: right; font-weight: 700; }
.dif-row__delta { font-weight: 800; font-size: 13px; text-align: right; }
.dif-row__delta.pos { color: hsl(142 70% 35%); }
.dif-row__delta.neg { color: hsl(0 70% 50%); }
.dif-row__delta.zero { color: hsl(var(--muted-foreground)); }
.dif-cat { display: flex; flex-direction: column; gap: 3px; }
.dif-cat__row {
  display: grid; grid-template-columns: 1fr 60px 50px; gap: 8px;
  padding: 6px 10px;
  background: hsl(var(--muted) / 0.3);
  border-radius: 8px;
  font-size: 12px;
}
.dif-cat__row--top { background: hsl(var(--primary) / 0.1); border-left: 3px solid hsl(var(--primary)); padding-left: 7px; }
.dif-cat__nome { font-weight: 600; }
.dif-cat__ctr { font-weight: 800; text-align: right; }
.dif-cat__n { font-size: 11px; color: hsl(var(--muted-foreground)); text-align: right; }
/* Argumentos — impulsionam × travam (versão prática) */
.arg-painel { display: flex; flex-direction: column; gap: 14px; }
.arg-resumo {
  padding: 12px 16px;
  background: linear-gradient(135deg, hsl(var(--primary) / 0.08), hsl(var(--accent) / 0.06));
  border-left: 3px solid hsl(var(--primary));
  border-radius: 10px;
  font-size: 13px; line-height: 1.5;
}
.arg-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.arg-coluna { display: flex; flex-direction: column; gap: 8px; }
.arg-coluna__h {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 14px; border-radius: 12px;
  font-weight: 700;
}
.arg-coluna__h svg { width: 22px; height: 22px; flex: none; }
.arg-coluna__h--pos { background: hsl(142 60% 92%); color: hsl(142 70% 25%); border: 1px solid hsl(142 50% 75%); }
.arg-coluna__h--neg { background: hsl(0 60% 96%); color: hsl(0 70% 38%); border: 1px solid hsl(0 50% 80%); }
.arg-coluna__titulo { font-size: 14px; line-height: 1.2; }
.arg-coluna__sub { font-size: 11px; font-weight: 600; opacity: 0.8; margin-top: 2px; }
.arg-card {
  padding: 12px 14px; border-radius: 12px;
  border: 1px solid var(--glass-border);
  background: hsl(var(--background));
  display: flex; flex-direction: column; gap: 6px;
}
.arg-card--pos { border-left: 3px solid hsl(142 70% 45%); }
.arg-card--neg { border-left: 3px solid hsl(0 70% 55%); opacity: 0.95; }
.arg-card__h { display: flex; align-items: center; gap: 8px; }
.arg-card__sinal { font-size: 18px; font-weight: 900; line-height: 1; }
.arg-card--pos .arg-card__sinal { color: hsl(142 70% 40%); }
.arg-card--neg .arg-card__sinal { color: hsl(0 70% 50%); }
.arg-card__nome { font-weight: 700; font-size: 14px; flex: 1; }
.arg-card__n { font-size: 11px; font-weight: 700; color: hsl(var(--muted-foreground)); padding: 2px 8px; background: hsl(var(--muted)); border-radius: 999px; }
.arg-card__ctr { font-size: 12.5px; color: hsl(var(--foreground)); line-height: 1.4; }
.arg-card__ctr b { font-size: 15px; }
.arg-card--pos .arg-card__ctr b { color: hsl(142 70% 35%); }
.arg-card--neg .arg-card__ctr b { color: hsl(0 70% 45%); }
.arg-card__acao { font-size: 12px; color: hsl(var(--muted-foreground)); padding: 6px 10px; background: hsl(var(--muted) / 0.5); border-radius: 8px; line-height: 1.4; }
.arg-card__acao b { color: hsl(var(--foreground)); font-weight: 700; }
@media (max-width: 760px) { .arg-cols { grid-template-columns: 1fr; } }

/* Argumentos vencedores (tabela antiga — mantém pra compat se em algum lugar) */
.deck-arg-tabela { display: flex; flex-direction: column; gap: 2px; }
.deck-arg-tabela__cab, .deck-arg-tabela__linha {
  display: grid; grid-template-columns: 180px 1fr 60px 100px; gap: 12px; align-items: center;
  padding: 8px 10px; font-size: 13px;
}
.deck-arg-tabela__cab {
  font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em;
  color: hsl(var(--muted-foreground)); border-bottom: 1px solid var(--glass-border);
}
.deck-arg-tabela__linha { border-bottom: 1px solid hsl(var(--border) / 0.5); }
.deck-arg-tabela__linha:hover { background: hsl(var(--primary) / 0.04); }
.deck-arg-tabela__nome { font-weight: 600; }
.deck-arg-tabela__barra { position: relative; display: flex; align-items: center; gap: 8px; }
.deck-arg-tabela__barra .bar { display: block; height: 10px; background: hsl(var(--primary) / 0.4); border-radius: 3px; }
.deck-arg-tabela__barra .val { font-weight: 700; font-size: 12px; min-width: 60px; }
.deck-arg-tabela__n { font-size: 12px; color: hsl(var(--muted-foreground)); }
.deck-arg-tabela__delta { font-weight: 700; font-size: 13px; text-align: right; }
.deck-arg-tabela__delta.pos { color: hsl(142 70% 35%); }
.deck-arg-tabela__delta.neg { color: hsl(0 70% 50%); }
.deck-arg-tabela__delta.zero { color: hsl(var(--muted-foreground)); }
/* Tag cloud lexical (versão antiga, mantida pra compat) */
.deck-tags { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: baseline; padding: 16px; background: hsl(var(--muted) / 0.3); border-radius: 12px; }
.deck-tag {
  font-weight: 700; color: hsl(var(--primary));
  padding: 2px 8px; border-radius: 999px; background: hsl(var(--primary) / 0.08);
  cursor: help; line-height: 1;
}
.deck-tag small { font-size: 11px; opacity: 0.6; font-weight: 500; margin-left: 3px; }
/* Nuvem de palavras: vencedoras x perdedoras */
.deck-nuvens { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.deck-nuvem-bloco {
  background: hsl(var(--muted) / 0.25);
  border-radius: 14px;
  padding: 14px 18px;
  border: 1px solid var(--glass-border);
}
.deck-nuvem-bloco__titulo {
  font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em;
  margin-bottom: 10px;
}
.deck-nuvem-bloco__titulo--win { color: hsl(142 70% 35%); }
.deck-nuvem-bloco__titulo--lose { color: hsl(0 70% 50%); }
.deck-nuvem {
  display: flex; flex-wrap: wrap; gap: 6px 14px;
  align-items: baseline; line-height: 1.15;
}
.deck-nuvem__palavra {
  font-weight: 700;
  cursor: help;
  transition: transform 0.15s ease;
  white-space: nowrap;
}
.deck-nuvem__palavra:hover { transform: scale(1.08); }
@media (max-width: 760px) { .deck-nuvens { grid-template-columns: 1fr; } }
/* Cards de recomendação preditiva */
.deck-rec-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; margin-bottom: 6px; }
.deck-rec-card {
  border: 1px solid var(--glass-border); border-radius: 14px; padding: 14px 16px;
  background: linear-gradient(135deg, hsl(var(--primary) / 0.08) 0%, hsl(var(--accent) / 0.06) 100%);
}
.deck-rec-card__rotulo { font-size: 11px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: hsl(var(--muted-foreground)); margin-bottom: 6px; }
.deck-rec-card__valor { font-size: 16px; font-weight: 800; line-height: 1.2; color: hsl(var(--foreground)); margin-bottom: 4px; }
.deck-rec-card__nota { font-size: 11.5px; color: hsl(var(--muted-foreground)); }
@media (max-width: 760px) {
  .deck-padroes { grid-template-columns: 1fr; }
  .deck-arg-tabela__cab, .deck-arg-tabela__linha { grid-template-columns: 1fr 1fr; gap: 6px; }
}
.deck-cat { font-size: 13px; line-height: 1.6; padding: 6px 0; color: hsl(var(--foreground)); }
.deck-cat b { color: hsl(var(--muted-foreground)); font-weight: 700; font-size: 11px; text-transform: uppercase; letter-spacing: 0.05em; display: block; margin-bottom: 3px; }
@media (max-width: 760px) { .deck-kpis, .deck-duas, .deck-versus, .deck-pai { grid-template-columns: 1fr; } .deck-cmp__row { grid-template-columns: 1fr; gap: 4px; } .deck-galeria { grid-template-columns: 1fr 1fr; } }

/* ---------- Seletor de período (popover no topbar) ---------- */
.periodo-seletor { position: relative; }
.periodo-painel { position: absolute; top: calc(100% + 8px); left: 0; z-index: 40; background: hsl(var(--card)); border: 1px solid hsl(var(--border)); border-radius: var(--radius); box-shadow: 0 8px 24px rgb(0 0 0 / 0.12); padding: 14px; min-width: 320px; }
.periodo-painel__nota { font-size: 11.5px; color: hsl(var(--muted-foreground)); margin-top: 10px; line-height: 1.5; max-width: 320px; }

/* ---------- Calendário de snapshots diários ---------- */
.cal-cabecalho { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 20px; }
.cal-range { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.cal-range input[type=date] { font: inherit; font-size: 13px; border: 1px solid hsl(var(--input)); border-radius: var(--radius); padding: 6px 10px; background: hsl(var(--background)); color: hsl(var(--foreground)); }
.cal-mes { margin-bottom: 32px; }
.cal-mes__titulo { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: hsl(var(--muted-foreground)); margin-bottom: 12px; }
.cal-grade { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.cal-dia-nome { font-size: 11px; font-weight: 700; text-align: center; padding: 4px; color: hsl(var(--muted-foreground)); text-transform: uppercase; letter-spacing: 0.04em; }
.cal-dia { min-height: 52px; border-radius: var(--radius); border: 1px solid transparent; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; padding: 6px 4px; font-size: 12px; transition: background 0.15s; }
.cal-dia--vazio { background: transparent; }
.cal-dia--sem-dado { background: hsl(var(--muted) / 0.3); color: hsl(var(--muted-foreground)); }
.cal-dia--tem-dado { background: hsl(var(--primary) / 0.08); border-color: hsl(var(--primary) / 0.3); cursor: pointer; color: hsl(var(--foreground)); }
.cal-dia--tem-dado:hover { background: hsl(var(--primary) / 0.18); border-color: hsl(var(--primary) / 0.6); }
.cal-dia--ativo { background: hsl(var(--primary)); border-color: hsl(var(--primary)); color: hsl(var(--primary-foreground)); }
.cal-dia--ativo:hover { background: hsl(var(--primary) / 0.85); }
.cal-dia__num { font-weight: 700; font-size: 14px; }
.cal-dia__pip { width: 6px; height: 6px; border-radius: 50%; background: currentColor; margin-top: 4px; opacity: 0.7; }
.cal-disclaimer { display: flex; align-items: flex-start; gap: 10px; background: hsl(var(--muted) / 0.4); border: 1px solid hsl(var(--border)); border-radius: var(--radius); padding: 12px 16px; font-size: 13px; color: hsl(var(--muted-foreground)); margin-bottom: 16px; }
.cal-disclaimer svg { flex-shrink: 0; margin-top: 1px; }
.cal-sem-dados { text-align: center; padding: 40px 16px; color: hsl(var(--muted-foreground)); }
.cal-resumo { margin-top: 20px; }
.cal-resumo__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; margin-top: 12px; }
.cal-resumo__card { background: hsl(var(--card)); border: 1px solid hsl(var(--border)); border-radius: var(--radius); padding: 14px 16px; }
.cal-resumo__data { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: hsl(var(--muted-foreground)); margin-bottom: 6px; }
.cal-resumo__val { font-size: 18px; font-weight: 800; color: hsl(var(--foreground)); }
.cal-resumo__sub { font-size: 11.5px; color: hsl(var(--muted-foreground)); margin-top: 2px; }

/* ---------- Acessibilidade: reduzir movimento ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}

/* ---------- Responsivo ---------- */
@media (max-width: 880px) {
  .sidebar { position: static; width: 100%; flex-direction: row; align-items: center; gap: 16px; padding: 12px 16px; flex-wrap: wrap; }
  .sidebar__cliente, .sidebar__rodape, .sidebar__produto { display: none; }
  .nav { flex-direction: row; }
  .principal { margin-left: 0; }
  .shell { flex-direction: column; }
}

/* =========================================================
   UX 2.0: sidebar agrupada, filtros colapsados, KPIs hero,
   rodapé de IA com feedback e tour guiado (demo)
   ========================================================= */

/* Grupos da sidebar */
.nav__grupo {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.35);
  padding: 12px 12px 3px;
  user-select: none;
}
.nav > .nav__grupo:first-child { padding-top: 2px; }

/* Linha-resumo dos filtros (barra colapsada) */
.filtros { padding: 9px 28px; }
.filtros__resumo { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; cursor: pointer; }
.filtros__toggle {
  display: inline-flex; align-items: center; gap: 7px;
  font: inherit; font-size: 13px; font-weight: 600; color: hsl(var(--foreground));
  background: #fff; border: 1px solid var(--glass-border); border-radius: var(--radius-control);
  padding: 7px 12px; cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease;
  position: relative;
}
.filtros__toggle:hover { border-color: hsl(var(--primary) / 0.45); background: var(--glass-surface-hover); }
.filtros__toggle svg { width: 15px; height: 15px; }
.filtros__seta { transition: transform 0.2s ease; }
.filtros--aberto .filtros__seta { transform: rotate(180deg); }
.filtros__ativos { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; min-width: 0; }
.f-chip {
  font-size: 11.5px; font-weight: 600; color: hsl(var(--primary));
  background: hsl(var(--primary) / 0.08); border: 1px solid hsl(var(--primary) / 0.18);
  border-radius: var(--radius-pill); padding: 3px 10px; white-space: nowrap;
  max-width: 260px; overflow: hidden; text-overflow: ellipsis;
}
.f-chip--vazio {
  color: hsl(var(--muted-foreground)); background: transparent;
  border-style: dashed; font-weight: 500;
}
.filtros__resumo .contagem { margin-left: auto; white-space: nowrap; }

/* KPIs hero da Visão geral */
.grid-kpi--hero .stat { position: relative; overflow: hidden; }
.grid-kpi--hero .stat::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, hsl(var(--primary)), hsl(var(--accent)));
}
.grid-kpi--hero .stat__valor {
  font-family: "Aconchego", "Sua", sans-serif;
  font-size: 31px;
  letter-spacing: -0.02em;
}
@media (prefers-reduced-motion: no-preference) {
  .grid-kpi--hero .stat { animation: stat-entrar 0.45s ease both; }
  .grid-kpi--hero .stat:nth-child(2) { animation-delay: 0.06s; }
  .grid-kpi--hero .stat:nth-child(3) { animation-delay: 0.12s; }
  .grid-kpi--hero .stat:nth-child(4) { animation-delay: 0.18s; }
}
@keyframes stat-entrar {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: none; }
}

/* Rodapé de IA com ações (feedback) */
.ia-rodape--acoes { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.fb { display: inline-flex; align-items: center; gap: 6px; }
.fb__pergunta { font-size: 12px; color: hsl(var(--muted-foreground)); }
.fb__btn {
  background: transparent; border: 1px solid var(--glass-border); border-radius: 8px;
  width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer; color: hsl(var(--muted-foreground));
  transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}
.fb__btn svg { width: 14px; height: 14px; }
.fb__btn:hover { color: hsl(var(--primary)); border-color: hsl(var(--primary) / 0.4); background: hsl(var(--primary) / 0.06); }
.fb__obrigado { font-size: 12px; font-weight: 600; color: hsl(122 39% 30%); }

/* Tour guiado */
.tour-foco {
  position: fixed; z-index: 10000; pointer-events: none;
  border-radius: 12px;
  box-shadow: 0 0 0 3px hsl(var(--brand-orange)), 0 0 0 9999px rgba(8, 12, 34, 0.55);
  transition: top 0.25s ease, left 0.25s ease, width 0.25s ease, height 0.25s ease;
}
.tour-card {
  position: fixed; z-index: 10001; width: 330px; max-width: calc(100vw - 32px);
  background: #fff; border-radius: 14px; padding: 18px 20px;
  box-shadow: 0 18px 50px rgba(10, 15, 40, 0.35);
}
@media (prefers-reduced-motion: no-preference) {
  .tour-card { animation: tour-entrar 0.25s ease both; }
}
@keyframes tour-entrar {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: none; }
}
.tour-card__passo {
  font-size: 11px; font-weight: 700; letter-spacing: 0.08em;
  text-transform: uppercase; color: hsl(var(--brand-orange));
}
.tour-card__titulo { font-family: "Aconchego", "Sua", sans-serif; font-size: 18px; font-weight: 800; margin: 6px 0 4px; }
.tour-card__texto { font-size: 13.5px; line-height: 1.5; color: hsl(var(--muted-foreground)); margin: 0 0 14px; }
.tour-card__acoes { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.tour-card__pular {
  background: none; border: none; font: inherit; font-size: 12.5px;
  color: hsl(var(--muted-foreground)); cursor: pointer; padding: 4px;
}
.tour-card__pular:hover { color: hsl(var(--destructive)); }
.tour-card__nav { display: flex; gap: 8px; }

/* No layout mobile a nav vira uma linha: os headers de grupo saem de cena */
@media (max-width: 880px) {
  .nav__grupo { display: none; }
}

/* ---------- Placar comparativo (Comparador) ---------- */
.matriz__topo {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 12px; flex-wrap: wrap; margin-bottom: 14px;
}
.matriz__prioridade {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 12px; color: hsl(var(--muted-foreground)); white-space: nowrap;
}
.matriz__prioridade select {
  font: inherit; font-size: 13px; color: hsl(var(--foreground));
  border: 1px solid hsl(var(--input)); border-radius: var(--radius-control);
  padding: 7px 10px; background: #fff;
}
.matriz-wrap {
  overflow: auto;
  max-height: 72vh;
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-card);
  background: #fff;
}
.matriz { border-collapse: separate; border-spacing: 0; width: 100%; min-width: 640px; }
.matriz th, .matriz td { padding: 10px 14px; border-bottom: 1px solid hsl(var(--border)); }

/* Cabeçalho fixo no scroll vertical + 1ª coluna fixa no horizontal */
.matriz thead th {
  position: sticky; top: 0; z-index: 3;
  background: #fff;
  vertical-align: bottom;
  box-shadow: inset 0 -2px 0 hsl(var(--border));
}
.matriz__canto, .matriz__metrica {
  position: sticky; left: 0; z-index: 2;
  background: #fff;
  text-align: left;
  min-width: 168px; max-width: 210px;
  box-shadow: inset -1px 0 0 hsl(var(--border));
}
.matriz thead .matriz__canto {
  z-index: 4;
  font-size: 11px; font-weight: 700; letter-spacing: 0.07em;
  text-transform: uppercase; color: hsl(var(--muted-foreground));
}

/* Coluna de cada criativo */
.matriz__cria { min-width: 158px; max-width: 200px; text-align: left; }
.matriz__rank {
  display: inline-flex; align-items: center;
  font-size: 10.5px; font-weight: 800; letter-spacing: 0.04em;
  color: hsl(var(--muted-foreground));
  background: hsl(var(--muted)); border-radius: var(--radius-pill);
  padding: 2px 8px; margin-bottom: 7px;
}
.matriz__rank--lider { color: #fff; background: linear-gradient(90deg, hsl(var(--primary)), hsl(var(--accent))); }
.matriz__thumb { margin-bottom: 7px; }
.matriz__thumb .thumb { width: 62px; height: 62px; border-radius: 10px; }
.matriz__nome {
  font-size: 12px; font-weight: 600; line-height: 1.3;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden; margin-bottom: 6px;
}
.matriz__tags { display: flex; gap: 4px; flex-wrap: wrap; }

/* Linha de métrica (1ª coluna clicável = reordena) */
.matriz__metrica { font-size: 12.5px; font-weight: 700; cursor: pointer; user-select: none; }
.matriz__metrica:hover { color: hsl(var(--primary)); }
.matriz__metrica:focus-visible { outline: 2px solid hsl(var(--primary)); outline-offset: -2px; }
.matriz__dir { display: block; font-size: 10px; font-weight: 500; color: hsl(var(--muted-foreground)); margin-top: 2px; }
.matriz__linha--ativa .matriz__metrica { color: hsl(var(--primary)); }
.matriz__linha--ativa td, .matriz__linha--ativa th { background: hsl(var(--primary) / 0.045); }
.matriz tbody tr:hover td, .matriz tbody tr:hover th { background: hsl(var(--primary) / 0.03); }
.matriz__linha--ativa.matriz tbody tr:hover td { background: hsl(var(--primary) / 0.06); }

/* Células de valor */
.matriz__cel { min-width: 130px; vertical-align: top; }
.matriz__cel--vazia { color: hsl(var(--muted-foreground)); }
.matriz__valor {
  font-size: 14px; font-weight: 750; font-variant-numeric: tabular-nums;
  display: flex; align-items: center; gap: 5px; white-space: nowrap;
}
.matriz__valor svg { width: 13px; height: 13px; color: hsl(var(--success, 122 39% 35%)); flex: none; }
.matriz__cel--melhor .matriz__valor { color: hsl(122 39% 28%); }
.matriz__barra {
  height: 5px; border-radius: 3px; background: hsl(var(--muted));
  margin: 6px 0 4px; overflow: hidden; max-width: 150px;
}
.matriz__barra span {
  display: block; height: 100%; border-radius: 3px;
  background: hsl(var(--primary) / 0.45);
  transition: width 0.35s ease;
}
.matriz__cel--melhor .matriz__barra span { background: hsl(122 39% 42%); }
.matriz__delta { font-size: 10.5px; font-weight: 600; color: hsl(var(--muted-foreground)); white-space: nowrap; }
.matriz__delta--bom { color: hsl(122 39% 30%); }
.matriz__delta--ruim { color: hsl(28 80% 38%); }

/* Desloca o layout inteiro pela altura da tarja fixa de demonstração.
   Precisa vir depois do reset html,body { padding: 0 } lá do topo. */
body { padding-top: var(--tarja-h); }

/* ---------- Sparklines nos KPIs hero ---------- */
.stat__spark { margin-top: 10px; height: 30px; }
.sparkline { width: 100%; height: 30px; display: block; }

/* ---------- Lista rica (Top 10, e reutilizável) ---------- */
.lista-rica { display: flex; flex-direction: column; }
.lista-item {
  display: grid;
  grid-template-columns: 26px 62px 1fr auto;
  align-items: center; gap: 14px;
  padding: 10px 8px;
  border-bottom: 1px solid hsl(var(--border));
}
.lista-item:last-child { border-bottom: none; }
.lista-item:hover { background: hsl(var(--primary) / 0.03); }
.lista-item__pos {
  font-family: "Aconchego", "Sua", sans-serif;
  font-size: 16px; font-weight: 800; color: hsl(var(--muted-foreground));
  text-align: center;
}
.lista-item__thumb .thumb { width: 56px; height: 56px; border-radius: 10px; }
.lista-item__corpo { min-width: 0; }
.lista-item__nome {
  font-size: 13.5px; font-weight: 600; line-height: 1.3;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.lista-item__meta { display: flex; align-items: center; gap: 8px; margin: 3px 0 6px; flex-wrap: wrap; }
.lista-item__origem { font-size: 11.5px; color: hsl(var(--muted-foreground)); }
.lista-item__barra { height: 6px; border-radius: 3px; background: hsl(var(--muted)); overflow: hidden; max-width: 340px; }
.lista-item__barra span { display: block; height: 100%; border-radius: 3px; transition: width 0.4s ease; }
.lista-item__nums { text-align: right; white-space: nowrap; }
.lista-item__valor { font-size: 16px; font-weight: 800; font-variant-numeric: tabular-nums; }
.lista-item__valor span { display: block; font-size: 10px; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; color: hsl(var(--muted-foreground)); }
.lista-item__sec { font-size: 11.5px; color: hsl(var(--muted-foreground)); margin-top: 2px; }
@media (max-width: 620px) {
  .lista-item { grid-template-columns: 22px 44px 1fr auto; gap: 10px; }
  .lista-item__thumb .thumb { width: 40px; height: 40px; }
  .lista-item__barra { display: none; }
}

/* ---------- Tendência sob a sparkline ---------- */
.stat__trend {
  margin-top: 4px; font-size: 11px; font-weight: 600;
  color: hsl(var(--muted-foreground)); letter-spacing: 0.01em;
}

/* ---------- Rodapé de totais na tabela do Explorador ---------- */
.dados tfoot .tabela-total td {
  position: sticky; bottom: 0; z-index: 2;
  background: hsl(var(--primary) / 0.06);
  border-top: 2px solid hsl(var(--primary) / 0.30);
  font-weight: 750; font-variant-numeric: tabular-nums;
}
.tabela-total__n {
  display: inline-block; margin-left: 8px;
  font-size: 11px; font-weight: 600; color: hsl(var(--muted-foreground));
}

/* ---------- Ícone de info nos rótulos de KPI ---------- */
.stat__rotulo { display: inline-flex; align-items: center; gap: 5px; }
.stat__info {
  display: inline-flex; align-items: center; justify-content: center;
  width: 14px; height: 14px; border-radius: 50%;
  border: none; background: none; padding: 0; cursor: help;
  color: hsl(var(--muted-foreground)); opacity: 0.6;
}
.stat__info:hover { opacity: 1; color: hsl(var(--primary)); }
.stat__info svg { width: 13px; height: 13px; }
