/* ===== Design system — claro: fundo neutro frio + menu acento ardósia (sem dourado) ===== */
:root,
[data-tema="claro"] {
  /* Page & cards — cinza-azulado, sem tom amarelado */
  --fundo-pagina: #f5f7fa;
  --fundo-card: #ffffff;
  --fundo-elevado: #ffffff;

  /* Borders */
  --borda: #dfe3e9;
  --borda-subtle: #eef1f5;

  /* Text */
  --texto-principal: #1a1a22;
  --texto-secundario: #3d3d4a;
  --texto-terciario: #6b6b78;

  /* Ações primárias — feltro mesa (ref. #27ae60 / #2ecc71) */
  --destaque: #27ae60;
  --destaque-hover: #2ecc71;
  --destaque-muted: rgba(39, 174, 96, 0.22);
  --texto-botao-primario: #ffffff;

  /* Semantic */
  --sucesso: #27ae60;
  --sucesso-hover: #229954;
  --erro: #dc2626;

  /* Shadows */
  --sombra-sm: 0 1px 3px rgba(26, 26, 34, 0.07);
  --sombra-md: 0 4px 10px -2px rgba(26, 26, 34, 0.09);
  --sombra-lg: 0 10px 20px -4px rgba(26, 26, 34, 0.1);

  /* Radii */
  --raio: 10px;
  --raio-sm: 6px;
  --raio-botao-felt: 9999px;

  /* States */
  --fundo-hover: #eef1f6;
  --fundo-tfoot: #eef1f6;
  --fundo-resumo-dia: rgba(39, 174, 96, 0.08);
  --borda-resumo-dia: rgba(39, 174, 96, 0.2);

  /* Table — zebra neutra fria */
  --fundo-tabela: #f5f7fa;
  --fundo-tabela-hover: #e8ecf2;
  --fundo-tabela-alt: #eceff4;
  --fundo-tabela-tfoot: #e4e9ef;
  --texto-tabela: #1a1a22;
  --texto-tabela-sec: #3d3d4a;
  --texto-tabela-ter: #6b6b78;
  --thead-tabela: #2c2c38;
  --thead-texto: #f0f0f4;

  /* Sidebar — verde feltro (ref. mesa) */
  --thead-bg: #2c2c38;
  --sidebar-bg: #1a1a22;
  --sidebar-borda: rgba(141, 110, 99, 0.28);
  --sidebar-texto: #9a9aa8;
  --sidebar-texto-hover: #f0f0f4;
  --sidebar-destaque: #7bc88a;
  --sidebar-hover-bg: rgba(39, 174, 96, 0.12);
  --sidebar-hover-border: rgba(46, 204, 113, 0.45);
  --sidebar-label-text: #6d9f7c;
  --sidebar-section-divider: rgba(123, 200, 138, 0.38);

  /* KPI accent bars */
  --kpi-accent-1: #27ae60;
  --kpi-accent-2: #64748b;
  --kpi-accent-3: #64748b;
  --kpi-accent-4: #94a3b8;
}

[data-tema="escuro"] {
  /* Page & cards — base #1a1a1a como feltro/mesa escura */
  --fundo-pagina: #1a1a1a;
  --fundo-card: #222222;
  --fundo-elevado: #2a2a2a;

  /* Borders — leve calor madeira (#8d6e63) */
  --borda: #3a3532;
  --borda-subtle: #2e2c2a;

  /* Text */
  --texto-principal: #ececee;
  --texto-secundario: #a4a4ae;
  --texto-terciario: #6e6e78;

  /* Accent — feltro mesa (ref. #27ae60 / #2ecc71) */
  --destaque: #27ae60;
  --destaque-hover: #2ecc71;
  --destaque-muted: rgba(39, 174, 96, 0.28);

  /* Semantic */
  --sucesso: #2ecc71;
  --sucesso-hover: #27ae60;
  --erro: #f87171;

  /* Shadows */
  --sombra-sm: 0 1px 3px rgba(0, 0, 0, 0.35);
  --sombra-md: 0 4px 10px -2px rgba(0, 0, 0, 0.4);
  --sombra-lg: 0 10px 20px -4px rgba(0, 0, 0, 0.45);

  /* Radii */
  --raio: 10px;
  --raio-sm: 6px;
  --raio-botao-felt: 9999px;

  /* States */
  --fundo-hover: #2e2e2e;
  --fundo-tfoot: #2e2e2e;
  --fundo-resumo-dia: rgba(39, 174, 96, 0.1);
  --borda-resumo-dia: rgba(46, 204, 113, 0.28);

  /* Table — faixa clara neutra (contraste com o app escuro) */
  --fundo-tabela: #e6e6ea;
  --fundo-tabela-hover: #dadade;
  --fundo-tabela-alt: #dedee4;
  --fundo-tabela-tfoot: #d2d2d8;
  --texto-tabela: #161618;
  --texto-tabela-sec: #3d3d44;
  --texto-tabela-ter: #5c5c64;
  --thead-tabela: #2c2c38;
  --thead-texto: #f0f0f4;

  /* Sidebar — feltro claro + aro madeira suave */
  --thead-bg: #2c2c38;
  --sidebar-bg: #141414;
  --sidebar-borda: rgba(141, 110, 99, 0.35);
  --sidebar-texto: #8b8b95;
  --sidebar-texto-hover: #f0f0f4;
  --sidebar-destaque: #a2d1a4;
  --sidebar-hover-bg: rgba(162, 209, 164, 0.12);
  --sidebar-hover-border: rgba(162, 209, 164, 0.4);
  --sidebar-label-text: #8eb89d;
  --sidebar-section-divider: rgba(142, 184, 157, 0.45);

  --texto-botao-primario: #ffffff;

  /* KPI accent bars */
  --kpi-accent-1: #2ecc71;
  --kpi-accent-2: #a2d1a4;
  --kpi-accent-3: #27ae60;
  --kpi-accent-4: #6baf8f;
}

/* Escuro: selects/placeholders legíveis nos cartões (#tabela-torneios redefine o select Site) */
[data-tema="escuro"] select {
  color: var(--texto-principal);
  background-color: var(--fundo-elevado);
  border-color: var(--borda);
}

[data-tema="escuro"] input::placeholder,
[data-tema="escuro"] textarea::placeholder {
  color: var(--texto-terciario);
  opacity: 1;
}

* {
  box-sizing: border-box;
}

body {
  font-family: "Source Sans 3", -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 18px;
  background: var(--fundo-pagina);
  color: var(--texto-principal);
  margin: 0;
  padding: 0;
  line-height: 1.6;
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ===== Layout ===== */
.app-layout {
  display: flex;
  min-height: 100vh;
}

/* Em telas menores, colocar sidebar embaixo (libera largura para as tabelas) */
@media (max-width: 900px) {
  .app-layout {
    flex-direction: column;
  }

  .main-content {
    order: 1;
    max-width: none;
  }

  .sidebar {
    order: 2;
    width: 100%;
    height: auto;
    position: static;
    border-right: none;
    border-top: 1px solid var(--sidebar-borda);
  }
}

/* ===== Sidebar ===== */
.sidebar {
  width: 280px;
  flex-shrink: 0;
  min-width: 0; /* permite encolher dentro de flex sem estourar */
  background: var(--sidebar-bg);
  border-right: 1px solid var(--sidebar-borda);
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
  position: sticky;
  top: 0;
  height: 100vh;
  overflow-x: hidden;
  overflow-y: auto;
}

.sidebar-brand {
  display: flex;
  align-items: center;
  padding: 0 10px 2px 10px;
  margin-top: -6px;
  flex-shrink: 0;
  min-width: 0;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  overflow: hidden; /* sombras SVG / subpixel não saem da faixa */
}

.sidebar-logo-link {
  display: block;
  width: 100%;
  max-width: 100%;
  text-decoration: none;
  border-radius: 14px;
}

.sidebar-logo-link:focus-visible {
  outline: 2px solid var(--cor-primaria);
  outline-offset: 3px;
}

.sidebar-brand .sidebar-logo {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  height: auto;
  max-height: min(22vh, 140px);
  object-fit: contain;
  object-position: left center;
}

.sidebar-nav {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding-bottom: 12px;
}

.sidebar-nav-section + .sidebar-nav-section {
  margin-top: 6px;
  padding-top: 14px;
  border-top: 1px solid var(--sidebar-section-divider);
}

.sidebar-nav-section .sidebar-label {
  margin-bottom: 4px;
}

.sidebar-label {
  display: block;
  padding: 0 20px 6px;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--sidebar-label-text);
  opacity: 1;
}

.sidebar-link--destaque {
  font-weight: 700;
  color: var(--sidebar-texto-hover);
  letter-spacing: 0.01em;
}

.sidebar-link--destaque:hover {
  color: var(--sidebar-texto-hover);
}

.sidebar-link.sidebar-link--destaque.sidebar-link-ativo,
.sidebar-link--destaque.sidebar-link-ativo {
  font-weight: 800;
}

.sidebar-link {
  display: block;
  padding: 10px 20px;
  font-size: 1rem;
  font-weight: 500;
  color: var(--sidebar-texto);
  text-decoration: none;
  transition: color 0.15s, background 0.15s, border-color 0.15s;
  border-left: 2px solid transparent;
}

.sidebar-link:hover {
  color: var(--sidebar-texto-hover);
  background: var(--sidebar-hover-bg);
  border-left-color: var(--sidebar-hover-border);
}

.sidebar-link:focus-visible {
  outline: 2px solid var(--sidebar-destaque);
  outline-offset: 2px;
}

.sidebar-link-ativo,
.sidebar-link.sidebar-link-ativo {
  color: var(--sidebar-destaque) !important;
  background: var(--sidebar-hover-bg) !important;
  border-left-color: var(--sidebar-destaque) !important;
}

.sidebar-sair {
  margin-top: 8px;
  padding-top: 14px;
  border-top: 1px solid var(--sidebar-borda);
  font-size: 0.9375rem;
  color: var(--sidebar-texto) !important;
  opacity: 0.6;
}

.sidebar-sair:hover {
  opacity: 1;
  color: var(--sidebar-texto-hover) !important;
}

.app-right {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

/* ===== Topbar (logo no canto, estilo YouTube) ===== */
/* ===== Header ===== */
.page-header {
  background: var(--fundo-card);
  padding: 14px 28px;
  border-bottom: 1px solid var(--borda);
  box-shadow: var(--sombra-sm);
  position: sticky;
  top: 0;
  z-index: 10;
}

.page-header-inner {
  max-width: 1620px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.page-header-actions {
  display: flex;
  align-items: center;
  gap: 14px;
}

.header-avatar-btn {
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  border-radius: 50%;
  line-height: 0;
  flex-shrink: 0;
}

.header-avatar-btn:focus-visible {
  outline: 2px solid var(--destaque);
  outline-offset: 2px;
}

.header-avatar-circle {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--fundo-resumo-dia);
  border: 2px solid var(--borda);
  color: var(--destaque);
  font-size: 0.8rem;
  font-weight: 800;
  text-transform: uppercase;
  overflow: hidden;
}

.header-avatar-circle.perfil-avatar--com-foto {
  padding: 0;
  line-height: 0;
}

.page-header h1 {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--texto-principal);
}

.tema-toggle {
  display: flex;
  align-items: center;
}

.tema-botoes {
  display: inline-flex;
  border-radius: var(--raio-sm);
  padding: 2px;
  background: var(--fundo-pagina);
  border: 1px solid var(--borda);
}

.tema-botoes button {
  padding: 5px 13px;
  border: none;
  border-radius: 4px;
  background: transparent;
  color: var(--texto-terciario);
  font-size: 0.8125rem;
  font-weight: 500;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}

.tema-botoes button:hover {
  color: var(--texto-principal);
}

.tema-botoes button.ativo,
.tema-botoes button[aria-pressed="true"] {
  background: var(--fundo-card);
  color: var(--destaque);
  box-shadow: var(--sombra-sm);
  font-weight: 600;
}

/* ===== Main ===== */
.main-content {
  flex: 1;
  max-width: 1620px;
  width: 100%;
  margin: 0 auto;
  padding: 32px;
}

/* Em ecrãs menores, recuperar espaço útil (sidebar + padding) */
@media (max-width: 1100px) {
  .sidebar { width: 240px; }
  .main-content { padding: 20px; }
}

@media (max-width: 900px) {
  .sidebar { width: 220px; }
  .main-content { padding: 16px; }
}

@media (max-width: 520px) {
  .sidebar { width: 200px; }
  .main-content { padding: 12px; }
}

/* ===== Perfil bar ===== */
.perfil-bar {
  margin-bottom: 24px;
}

.perfil-conteudo {
  background: var(--fundo-card);
  padding: 16px 20px;
  border-radius: var(--raio);
  border: 1px solid var(--borda);
  box-shadow: var(--sombra-sm);
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
}

.perfil-label {
  font-weight: 500;
  font-size: 0.9375rem;
  color: var(--texto-principal);
}

.perfil-conteudo input {
  flex: 1 1 200px;
  max-width: 240px;
  padding: 9px 12px;
  border-radius: var(--raio-sm);
  border: 1px solid var(--borda);
  font-size: 0.9375rem;
  background: var(--fundo-card);
  color: var(--texto-principal);
}

.perfil-conteudo input::placeholder {
  color: var(--texto-terciario);
}

.perfil-conteudo input:focus {
  outline: none;
  border-color: var(--destaque);
  box-shadow: 0 0 0 3px var(--destaque-muted);
}

.btn-perfil {
  padding: 8px 16px;
  border-radius: var(--raio-sm);
  border: 1px solid var(--borda);
  background: var(--fundo-card);
  color: var(--texto-principal);
  font-size: 0.8125rem;
  font-weight: 500;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
}

.btn-perfil:hover {
  background: var(--fundo-hover);
  border-color: var(--texto-terciario);
}

.perfil-atual {
  font-size: 0.8125rem;
  color: var(--texto-terciario);
}

/* ===== Relatório semanal ===== */
.relatorio-section {
  margin: 0 0 24px 0;
}

.relatorio-card {
  background: var(--fundo-card);
  padding: 20px 24px;
  border-radius: var(--raio);
  border: 1px solid var(--borda);
  box-shadow: var(--sombra-sm);
}

.relatorio-card h2 {
  margin: 0 0 8px 0;
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--texto-principal);
}

.relatorio-dica {
  margin: 0 0 20px 0;
  font-size: 0.95rem;
  color: var(--texto-terciario);
}

.relatorio-charts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 18px;
}

.relatorio-chart-card {
  background: var(--fundo-resumo-dia);
  border: 1px solid var(--borda-resumo-dia);
  border-radius: var(--raio);
  padding: 10px 12px;
}

.relatorio-chart-card h3 {
  margin: 0 0 8px 0;
  font-size: 0.9rem;
  font-weight: 800;
  color: var(--texto-principal);
}

.relatorio-chart-card canvas {
  width: 100% !important;
  height: 220px !important;
}

@media (max-width: 900px) {
  .relatorio-charts {
    grid-template-columns: 1fr;
  }
}

/* ===== Lembretes ===== */
.lembretes-section {
  margin: 0 0 24px 0;
}

.lembretes-section {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.lembretes-section[hidden] {
  display: none;
}

.lembretes-bloco-card {
  background: var(--fundo-card);
  padding: 20px 24px;
  border-radius: var(--raio);
  border: 1px solid var(--borda);
  box-shadow: var(--sombra-sm);
}
.lembretes-bloco-header {
  margin-bottom: 14px;
}
.lembretes-bloco-header h3 {
  margin: 0 0 4px 0;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: -0.01em;
}
.lembretes-bloco-header .lembretes-dica {
  margin: 0;
}

.lembretes-card {
  background: var(--fundo-card);
  padding: 20px 24px;
  border-radius: var(--raio);
  border: 1px solid var(--borda);
  box-shadow: var(--sombra-sm);
}

.lembretes-card h2 {
  margin: 0 0 8px 0;
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--texto-principal);
}

.lembretes-dica {
  margin: 0 0 20px 0;
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--texto-secundario);
}

/* Alinhado a “Lembretes fixos” / cartões de lembrete (título + dica + faixa à esquerda) */
.lembretes-notas-bloco {
  margin-top: 0;
  padding-top: 0;
}

.lembretes-notas-bloco h3 {
  margin: 0 0 14px 0;
  font-size: 1rem;
  font-weight: 800;
  color: var(--texto-principal);
  letter-spacing: 0.01em;
}

.lembretes-notas-form {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 12px;
  margin-bottom: 18px;
}

.lembretes-notas-dup-campos {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 24px;
  align-items: flex-end;
}

.lembretes-notas-dup-campos .lembretes-notas-campo {
  flex: 1 1 160px;
  min-width: 0;
}

.lembretes-notas-campo {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.lembretes-notas-campo label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--texto-secundario);
}

.lembretes-notas-campo input[type="date"],
.lembretes-notas-campo input[type="text"] {
  max-width: 280px;
  padding: 8px 10px;
  border: 1px solid var(--borda);
  border-radius: var(--raio-sm);
  background: var(--fundo-card);
  color: var(--texto-principal);
  font-size: 0.875rem;
}

.lembretes-notas-campo-texto .lembretes-notas-textarea {
  max-width: none;
}

.lembretes-notas-textarea {
  display: block;
  width: 100%;
  min-height: 88px;
  resize: vertical;
  box-sizing: border-box;
  margin: 0;
  padding: 10px 12px;
  font-family: inherit;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.45;
  color: var(--texto-principal);
  background: var(--fundo-card);
  border: 1px solid var(--borda);
  border-radius: var(--raio-sm);
}

.lembretes-notas-textarea::placeholder {
  color: var(--texto-terciario);
  opacity: 0.9;
}

.lembretes-notas-textarea:focus {
  outline: none;
  border-color: var(--destaque);
}

.lembretes-notas-lista {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.lembretes-notas-grupo-titulo {
  margin: 0 0 8px 0;
  font-size: 0.9375rem;
  font-weight: 800;
  color: var(--texto-principal);
  letter-spacing: 0.01em;
}

.lembretes-notas-itens {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.lembretes-notas-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px 12px;
  align-items: start;
  padding: 14px 14px 14px 16px;
  background: var(--fundo-card);
  border: 1px solid var(--borda);
  border-radius: var(--raio);
  border-left: 4px solid var(--destaque);
  box-shadow: var(--sombra-sm);
}

.lembretes-notas-item-corpo {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.lembretes-notas-badge {
  display: inline-block;
  align-self: flex-start;
  padding: 3px 10px;
  font-size: 0.78rem;
  font-weight: 700;
  border-radius: 999px;
  font-variant-numeric: tabular-nums;
}

.lembretes-notas-badge--data {
  color: var(--texto-secundario);
  background: var(--fundo-resumo-dia);
  border: 1px solid var(--borda-resumo-dia);
}

.lembretes-notas-item .lembretes-notas-texto {
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--texto-principal);
}

.lembretes-notas-vazio {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--texto-secundario);
  font-style: italic;
}

.lembretes-form {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 20px;
  align-items: center;
  margin-bottom: 20px;
}

.lembretes-form label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--texto-secundario);
}

.lembretes-form input[type="text"],
.lembretes-form input[type="date"],
.lembretes-form input[type="time"] {
  padding: 8px 10px;
  border: 1px solid var(--borda);
  border-radius: var(--raio-sm);
  background: var(--fundo-card);
  color: var(--texto-principal);
  font-size: 0.875rem;
}

.lembretes-form input:focus {
  outline: none;
  border-color: var(--destaque);
}

.lembretes-opcoes {
  display: flex;
  gap: 16px;
  align-items: center;
}

.lembretes-opcoes label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-weight: 500;
  font-size: 0.875rem;
  color: var(--texto-principal);
}

.btn-adicionar-lembrete {
  padding: 8px 16px;
  font-size: 0.875rem;
  font-weight: 600;
  border: 1px dashed var(--borda);
  border-radius: var(--raio-sm);
  background: transparent;
  color: var(--destaque);
  cursor: pointer;
}

.btn-adicionar-lembrete:hover {
  background: var(--fundo-resumo-dia);
  border-color: var(--destaque);
}

.lembretes-ativos-bloco {
  margin-top: 0;
}

.lembretes-ativos-titulo {
  margin: 0 0 10px 0;
  font-size: 1rem;
  font-weight: 800;
  color: var(--texto-principal);
  letter-spacing: 0.01em;
}

.lembretes-lista {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.lembrete-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px 12px;
  align-items: start;
  padding: 14px 14px 14px 16px;
  background: var(--fundo-card);
  border: 1px solid var(--borda);
  border-radius: var(--raio);
  border-left: 4px solid var(--destaque);
  box-shadow: var(--sombra-sm);
}

.lembrete-item-corpo {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.lembrete-texto {
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.35;
  color: var(--texto-principal);
}

.lembrete-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
}

.lembrete-quando {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--texto-secundario);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.01em;
}

.lembrete-tags {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}

.lembrete-tag {
  display: inline-block;
  padding: 3px 9px;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--texto-secundario);
  background: var(--fundo-resumo-dia);
  border: 1px solid var(--borda-resumo-dia);
  border-radius: 999px;
}

.btn-remover-lembrete {
  width: 32px;
  height: 32px;
  padding: 0;
  font-size: 1.35rem;
  line-height: 1;
  border: 1px solid var(--borda);
  border-radius: var(--raio-sm);
  background: var(--fundo-card);
  color: var(--texto-terciario);
  cursor: pointer;
  flex-shrink: 0;
}

.btn-remover-lembrete:hover {
  color: var(--erro, #c53030);
  border-color: var(--erro, #c53030);
}

.lembretes-vazio {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--texto-secundario);
  font-style: italic;
}

/* ===== Lembretes fixos (tiles) ===== */
.lembretes-templates {
  margin: 0;
}

.lembretes-templates h3 {
  margin: 0 0 6px 0;
  font-size: 1rem;
  font-weight: 800;
  color: var(--texto-principal);
  letter-spacing: 0.01em;
}

.lembretes-templates .lembretes-dica {
  margin-bottom: 14px;
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--texto-secundario);
}

.forum-tabs-wrap {
  margin: 0 0 16px 0;
}

.forum-composer-block {
  margin: 0 0 18px 0;
}

.forum-composer-block .forum-toolbar {
  margin-bottom: 0;
}

.forum-composer-block .forum-form-novo:not([hidden]) {
  margin-top: 14px;
}

.forum-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin: 0;
  padding: 5px;
  border-radius: 12px;
  background: var(--fundo-elevado);
  border: 1px solid var(--borda-subtle);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.forum-tab {
  flex: 1 1 140px;
  margin: 0;
  padding: 11px 18px;
  font-size: 0.875rem;
  font-weight: 700;
  font-family: inherit;
  color: var(--texto-secundario);
  background: transparent;
  border: none;
  border-radius: 9px;
  cursor: pointer;
  transition:
    background 0.18s ease,
    color 0.18s ease,
    box-shadow 0.18s ease,
    transform 0.12s ease;
}

.forum-tab:hover {
  color: var(--texto-principal);
  background: color-mix(in srgb, var(--fundo-card) 65%, transparent);
}

.forum-tab--ativo {
  color: var(--texto-principal);
  background: var(--fundo-card);
  box-shadow:
    0 1px 3px rgba(0, 0, 0, 0.06),
    0 0 0 1px var(--borda-subtle);
}

.forum-tab--ativo:hover {
  color: var(--texto-principal);
  background: var(--fundo-card);
}

.forum-tab:focus-visible {
  outline: 2px solid var(--cor-primaria);
  outline-offset: 2px;
}

@media (max-width: 560px) {
  .forum-card {
    padding: 18px 16px 20px;
    border-radius: 12px;
  }

  .forum-page-title,
  #forum-view-lista > h2 {
    font-size: 1.28rem;
  }

  .forum-feed-item {
    padding: 15px 16px 14px;
    border-radius: 12px;
  }

  .forum-feed-item:hover {
    transform: none;
  }

  .forum-thread-card:hover {
    transform: none;
  }
}

.forum-paineis {
  min-height: 140px;
}

.forum-painel-dica {
  margin: 0 0 12px 0;
}

.forum-col-dica {
  margin: 0 0 12px 0;
  font-size: 0.86rem;
  line-height: 1.4;
  color: var(--texto-secundario);
}

.forum-lista-erro-msg {
  margin: 0 0 16px 0;
  padding: 12px 14px;
}

.forum-feed-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.forum-feed-item {
  margin: 0;
  padding: 18px 20px 16px;
  border: 1px solid var(--borda-subtle);
  border-radius: 14px;
  background: var(--fundo-card);
  box-shadow: var(--sombra-sm);
  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    transform 0.18s ease;
}

.forum-feed-item:hover {
  border-color: color-mix(in srgb, var(--cor-primaria) 22%, var(--borda));
  box-shadow: var(--sombra-md);
  transform: translateY(-1px);
}

.forum-feed-item--com-foto .forum-feed-thumb-wrap {
  max-width: 100%;
}

.forum-feed-item-mesa {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  gap: 14px 16px;
  align-items: start;
}

.forum-feed-avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  color: #f5f0e6;
  background: linear-gradient(145deg, #14532d 0%, #166534 50%, #0d3d24 100%);
  border: 2px solid color-mix(in srgb, var(--fundo-card) 40%, var(--borda));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.14),
    0 2px 8px rgba(0, 0, 0, 0.06);
  flex-shrink: 0;
}

[data-tema="escuro"] .forum-feed-avatar:not(.forum-avatar--foto) {
  background: linear-gradient(160deg, #052e16 0%, #14532d 55%, #0a2612 100%);
  color: #ebe4d4;
}

.forum-feed-avatar.forum-avatar--foto,
.forum-post-avatar.forum-avatar--foto,
.forum-topico-autor-avatar.forum-avatar--foto {
  background: transparent !important;
  padding: 0;
  overflow: hidden;
  box-shadow: none;
}

.forum-feed-avatar.forum-avatar--foto {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.forum-post-avatar.forum-avatar--foto,
.forum-topico-autor-avatar.forum-avatar--foto {
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
}

.forum-avatar-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.forum-feed-conteudo {
  min-width: 0;
}

.forum-feed-corpo-movel {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 10px;
}

/* Miniatura completa (sem crop): cabe toda a imagem dentro da caixa */
.forum-feed-thumb-wrap {
  width: 100%;
  max-width: min(420px, 100%);
  max-height: 340px;
  border-radius: var(--raio-sm);
  border: 1px solid var(--borda-resumo-dia);
  background: var(--fundo-resumo-dia);
  line-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 6px;
  box-sizing: border-box;
  overflow: hidden;
}

.forum-feed-thumb {
  display: block;
  max-width: 100%;
  max-height: 320px;
  width: auto;
  height: auto;
  object-fit: contain;
  vertical-align: middle;
}

.forum-feed-so-foto {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--texto-terciario);
}

.forum-feed-item-topo {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 6px 12px;
  margin-bottom: 8px;
}

.forum-feed-autor {
  font-size: 1.02rem;
  font-weight: 800;
  color: var(--texto-principal);
  letter-spacing: -0.01em;
}

.forum-feed-data {
  font-size: 0.92rem;
  color: var(--texto-terciario);
  font-variant-numeric: tabular-nums;
}

.forum-feed-em-topico {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  margin: 0 0 10px 0;
}

.forum-feed-em-topico-rotulo {
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--texto-terciario);
}

.forum-feed-em-topico a {
  display: inline-block;
  padding: 7px 12px;
  max-width: 100%;
  box-sizing: border-box;
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.3;
  color: var(--texto-principal);
  background: var(--fundo-elevado);
  border: 1px solid var(--borda-subtle);
  border-radius: 8px;
  text-decoration: none;
  transition:
    background 0.15s ease,
    border-color 0.15s ease;
}

.forum-feed-em-topico a:hover {
  background: color-mix(in srgb, var(--cor-primaria) 10%, var(--fundo-elevado));
  border-color: color-mix(in srgb, var(--cor-primaria) 28%, var(--borda-subtle));
}

.forum-feed-snippet {
  margin: 0;
  font-size: 1.02rem;
  line-height: 1.55;
  color: var(--texto-principal);
  white-space: pre-wrap;
  word-break: break-word;
}

.forum-img-zoom {
  cursor: zoom-in;
}

.forum-feed-corpo-full {
  white-space: pre-wrap;
  word-break: break-word;
}
.forum-feed-acoes {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 6px;
}
.forum-feed-item-topo-esq {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 12px;
  min-width: 0;
}
.forum-feed-btn-comentar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  color: var(--texto-terciario);
  cursor: pointer;
  padding: 4px;
  border-radius: var(--raio-sm);
  transition: color 0.15s, background 0.15s;
}
.forum-feed-btn-comentar:hover {
  color: var(--cor-primaria);
  background: var(--fundo-hover);
}
.forum-feed-reply-form {
  margin-top: 10px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.forum-feed-reply-form[hidden] { display: none; }
.forum-feed-reply-corpo {
  width: 100%;
  padding: 8px 10px;
  font-size: 0.95rem;
  border: 1px solid var(--borda);
  border-radius: var(--raio);
  background: var(--fundo-card);
  color: var(--texto-principal);
  resize: vertical;
  font-family: inherit;
}
.forum-feed-reply-corpo:focus {
  outline: none;
  border-color: var(--cor-primaria);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--cor-primaria) 18%, transparent);
}
.forum-feed-reply-botoes {
  display: flex;
  gap: 8px;
}
.forum-feed-reply-enviar {
  font-size: 0.88rem;
  padding: 6px 14px;
}
.forum-feed-reply-cancelar {
  font-size: 0.88rem;
  padding: 6px 14px;
}
.forum-feed-link-topico {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.84rem;
  font-weight: 700;
  color: var(--cor-primaria);
  text-decoration: none;
}

.forum-feed-paginacao-info {
  margin: 14px 0 8px 0;
  font-size: 0.88rem;
  color: var(--texto-secundario);
}

.forum-feed-paginacao {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-bottom: 8px;
}

.forum-feed-link-topico:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.forum-post-acoes {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px solid var(--borda-subtle);
}

.forum-feed-item .forum-post-acoes {
  margin-top: 12px;
  padding-top: 0;
  border-top: none;
}

/* Menu ⋯ (mais opções) — discreto */
.forum-mais-acoes-wrap {
  position: relative;
  margin-left: auto;
  flex-shrink: 0;
}

.forum-mais-acoes-wrap--topico {
  margin-left: 8px;
  display: inline-block;
  vertical-align: middle;
}

.forum-btn-mais-acoes {
  width: 32px;
  height: 32px;
  padding: 0;
  border: none;
  border-radius: var(--raio-sm);
  background: transparent;
  color: var(--texto-terciario);
  font-size: 1.25rem;
  line-height: 1;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: color 0.15s, background 0.15s;
}

.forum-btn-mais-acoes:hover,
.forum-btn-mais-acoes[aria-expanded="true"] {
  color: var(--texto-principal);
  background: var(--fundo-hover);
}

.forum-mais-acoes-popover {
  position: absolute;
  right: 0;
  bottom: 100%;
  margin-bottom: 6px;
  min-width: 220px;
  padding: 6px 0;
  background: var(--fundo-card);
  border: 1px solid var(--borda);
  border-radius: var(--raio-sm);
  box-shadow: var(--sombra-md);
  z-index: 30;
}

.forum-mais-acoes-wrap--topico .forum-mais-acoes-popover {
  bottom: auto;
  top: 100%;
  margin-bottom: 0;
  margin-top: 6px;
}

.forum-menu-item {
  display: block;
  width: 100%;
  padding: 10px 14px;
  border: none;
  background: none;
  text-align: left;
  font-size: 0.875rem;
  font-family: inherit;
  color: var(--texto-principal);
  cursor: pointer;
  transition: background 0.12s;
}

.forum-menu-item:hover {
  background: var(--fundo-hover);
}

.forum-menu-item--denunciar {
  color: var(--texto-secundario);
}

.forum-menu-item--denunciar:hover {
  color: var(--erro);
  background: rgba(248, 113, 113, 0.08);
}

.forum-menu-item--perigo {
  color: var(--texto-secundario);
}

.forum-menu-item--perigo:hover {
  color: var(--erro);
  background: rgba(248, 113, 113, 0.1);
}

.forum-btn-curtir {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border: 1px solid var(--borda);
  border-radius: 999px;
  background: var(--fundo-card);
  color: var(--texto-secundario);
  font-size: 0.875rem;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  transition: color 0.15s, border-color 0.15s, background 0.15s;
}

.forum-btn-curtir:hover {
  border-color: var(--destaque-muted);
  color: var(--texto-principal);
}

.forum-btn-curtir--ativo {
  border-color: var(--destaque);
  color: var(--destaque);
  background: var(--fundo-resumo-dia);
}

.forum-curtir-icone {
  font-size: 1rem;
  line-height: 1;
}

.forum-curtir-num {
  font-variant-numeric: tabular-nums;
  min-width: 1ch;
}

.forum-feed-vazio {
  margin: 0;
}

.forum-feed-hint-servidor {
  margin: 10px 0 0 0;
  font-size: 0.82rem;
  line-height: 1.4;
  color: var(--texto-terciario);
}

.lembretes-templates-list {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.lembrete-template-tile {
  display: grid;
  grid-template-columns: 22px 1fr;
  gap: 10px;
  align-items: start;
  flex: 1 1 280px;
  min-width: min(100%, 260px);
  max-width: 100%;
  padding: 12px 14px;
  background: var(--fundo-resumo-dia);
  border: 1px solid var(--borda-resumo-dia);
  border-radius: var(--raio);
}

.lembrete-template-checkbox {
  margin-top: 4px;
}

.lembrete-template-body {
  width: 100%;
  min-height: 60px;
  border-radius: var(--raio-sm);
  border: 1px solid var(--borda);
  background: var(--fundo-card);
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.lembrete-template-input-text {
  width: 100%;
  box-sizing: border-box;
  padding: 10px 12px;
  min-height: 44px;
  border: 1px solid var(--borda);
  border-radius: var(--raio-sm);
  background: var(--fundo-card);
  color: var(--texto-principal);
  font-size: 1rem;
  line-height: 1.45;
  font-weight: 600;
  font-family: inherit;
}

.lembrete-template-input-text::placeholder {
  color: var(--texto-terciario);
  opacity: 1;
  font-weight: 500;
}

.lembrete-template-input-text:focus {
  outline: none;
  border-color: var(--destaque);
  box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2);
}

.lembrete-template-horas-wrap {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0;
  cursor: default;
}

.lembrete-template-horas-label {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--texto-principal);
  line-height: 1.3;
}

.lembrete-template-input-horas {
  width: 100%;
  max-width: 140px;
  box-sizing: border-box;
  padding: 8px 10px;
  min-height: 42px;
  border: 1px solid var(--borda);
  border-radius: var(--raio-sm);
  background: var(--fundo-card);
  color: var(--texto-principal);
  font-size: 1rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  font-family: inherit;
}

.lembrete-template-input-horas:focus {
  outline: none;
  border-color: var(--destaque);
  box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2);
}

/* Desativado: só indica estado, sem esmaecer o texto (ficava ilegível). */
.lembrete-template-tile[data-enabled="false"] .lembrete-template-body {
  border-style: dashed;
  border-color: var(--borda);
  background: var(--fundo-resumo-dia);
}

/* ===== Meus Troféus ===== */
.trofeus-section {
  margin: 0 0 24px 0;
}

.trofeus-card {
  background: var(--fundo-card);
  padding: 20px 24px;
  border-radius: var(--raio);
  border: 1px solid var(--borda);
  box-shadow: var(--sombra-sm);
}

.trofeus-card h2 {
  margin: 0 0 8px 0;
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--texto-principal);
}

.trofeus-dica {
  margin: 0 0 16px 0;
  font-size: 0.9rem;
  color: var(--texto-terciario);
}

.trofeus-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 12px;
  margin-bottom: 18px;
}

.trofeu-campo {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.trofeu-campo--full {
  grid-column: 1 / -1;
}

/* Print e descrição: mesma largura máxima */
.trofeu-campo--larga {
  max-width: 44rem;
  width: 100%;
}

.trofeus-form label {
  font-size: 0.84rem;
  font-weight: 700;
  color: var(--texto-secundario);
}

.trofeus-form input,
.trofeus-form textarea {
  width: 100%;
  padding: 6px 9px;
  border: 1px solid var(--borda);
  border-radius: var(--raio-sm);
  background: var(--fundo-card);
  color: var(--texto-principal);
  font-size: 0.875rem;
  font-family: inherit;
}

.trofeus-form input[type="date"] {
  width: auto;
  max-width: 158px;
  min-height: 34px;
}

.trofeus-form textarea {
  min-height: 72px;
  max-height: 220px;
  resize: vertical;
  line-height: 1.35;
}

#btn-adicionar-trofeu {
  grid-column: 1 / -1;
  width: fit-content;
  padding: 8px 14px;
}

.trofeus-lista {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.trofeu-grupo-mes {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.trofeu-mes-titulo {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 800;
  color: var(--texto-secundario);
  letter-spacing: 0.02em;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--borda);
}

.trofeu-item {
  display: grid;
  grid-template-columns: 112px 1fr;
  gap: 10px;
  align-items: start;
  border: 1px solid var(--borda-resumo-dia);
  border-radius: var(--raio-sm);
  background: var(--fundo-resumo-dia);
  padding: 8px;
}

.trofeu-thumb {
  width: 100%;
  aspect-ratio: 1;
  max-height: 112px;
  object-fit: cover;
  border-radius: var(--raio-sm);
  border: 1px solid var(--borda);
  background: var(--fundo-card);
  cursor: zoom-in;
}

.trofeu-conteudo {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.trofeu-topo {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
}

.trofeu-titulo {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 800;
  line-height: 1.25;
}

.trofeu-data {
  font-size: 0.72rem;
  color: var(--texto-terciario);
  font-weight: 600;
  line-height: 1.2;
}

.trofeu-nota {
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.35;
  color: var(--texto-secundario);
}

.trofeu-acoes {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 6px;
}
.btn-compartilhar-trofeu,
.btn-remover-trofeu {
  width: fit-content;
  padding: 6px 10px;
  font-size: 0.82rem;
}

@media (max-width: 900px) {
  .trofeus-form {
    grid-template-columns: 1fr;
  }
  .trofeu-item {
    grid-template-columns: 1fr;
  }
}

/* ===== Comunidade (fórum) ===== */
.forum-section {
  margin: 0 0 28px 0;
}

.forum-section .forum-card {
  max-width: min(820px, 100%);
  margin-left: auto;
  margin-right: auto;
}

.forum-card {
  padding: 26px 28px 28px;
  border-radius: 16px;
  border: 1px solid var(--borda-subtle);
  box-shadow:
    var(--sombra-sm),
    0 0 0 1px rgba(255, 255, 255, 0.03) inset;
  background: var(--fundo-card);
}

[data-tema="escuro"] .forum-card {
  box-shadow:
    var(--sombra-sm),
    0 0 0 1px rgba(0, 0, 0, 0.2) inset;
}

.forum-page-header {
  margin-bottom: 20px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--borda-subtle);
}

.forum-eyebrow {
  margin: 0 0 6px 0;
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: var(--texto-terciario);
}

.forum-page-title,
.forum-card > h2,
.forum-view-lista > h2,
#forum-view-lista > h2 {
  margin: 0 0 10px 0;
  font-size: 1.5rem;
  font-weight: 800;
  letter-spacing: -0.025em;
  line-height: 1.2;
  color: var(--texto-principal);
}

.forum-dica {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: var(--texto-secundario);
  max-width: 52ch;
}

.forum-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
}

.forum-btn-novo-topico {
  font-weight: 700;
  padding: 10px 18px;
  border-radius: 10px;
}

/* .btn usa display:inline-flex — sem isto [hidden] no botão não esconde */
.forum-btn-novo-topico[hidden] {
  display: none !important;
}

/* display:flex anula o [hidden] nativo — sem isto o formulário ficava sempre visível */
.forum-form-novo[hidden] {
  display: none !important;
}

.forum-form-novo {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 22px;
  padding: 18px 18px 16px;
  border: 1px solid var(--borda-subtle);
  border-radius: 14px;
  background: var(--fundo-elevado);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.04) inset;
}

.forum-form-novo label,
.forum-form-resposta label,
.forum-campo-foto > label {
  font-size: 0.84rem;
  font-weight: 700;
  color: var(--texto-secundario);
}

.forum-campo-ajuda {
  margin: -4px 0 6px 0;
  font-size: 0.78rem;
  line-height: 1.35;
  color: var(--texto-terciario);
}

.forum-campo-foto {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.forum-input-ficheiro {
  font-size: 0.82rem;
  max-width: 100%;
}

.forum-foto-preview-wrap {
  display: block;
  margin-top: 4px;
}

/* [hidden] perde para display:block acima (mesma especificidade) — forçar ocultar. */
.forum-foto-preview-wrap[hidden] {
  display: none !important;
}

.forum-foto-thumb {
  position: relative;
  display: inline-block;
  max-width: 160px;
  line-height: 0;
}

.forum-foto-preview {
  display: block;
  width: auto;
  height: auto;
  max-width: 160px;
  max-height: 120px;
  object-fit: contain;
  border-radius: var(--raio-sm);
  border: 1px solid var(--borda);
  background: var(--fundo-card);
}

.forum-foto-remover-x {
  position: absolute;
  top: 6px;
  right: 6px;
  width: 28px;
  height: 28px;
  padding: 0;
  margin: 0;
  border: none;
  border-radius: 50%;
  background: rgba(26, 26, 34, 0.72);
  color: #fff;
  font-family: inherit;
  font-size: 1.35rem;
  font-weight: 500;
  line-height: 1;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s, transform 0.12s;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
}

.forum-foto-remover-x:hover {
  background: var(--erro);
  color: #fff;
}

.forum-foto-remover-x:focus-visible {
  outline: 2px solid var(--destaque);
  outline-offset: 2px;
}

.forum-form-novo input[type="text"],
.forum-form-novo textarea,
.forum-form-resposta textarea {
  width: 100%;
  box-sizing: border-box;
  padding: 11px 13px;
  border: 1px solid var(--borda);
  border-radius: 10px;
  background: var(--fundo-card);
  color: var(--texto-principal);
  font-size: 0.9375rem;
  font-family: inherit;
  line-height: 1.45;
  transition:
    border-color 0.15s ease,
    box-shadow 0.15s ease;
}

.forum-form-novo input[type="text"]:focus,
.forum-form-novo textarea:focus,
.forum-form-resposta textarea:focus {
  outline: none;
  border-color: color-mix(in srgb, var(--cor-primaria) 45%, var(--borda));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--cor-primaria) 18%, transparent);
}

.forum-form-botoes {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.forum-placeholder {
  margin: 0 0 12px 0;
  font-size: 0.9rem;
  color: var(--texto-terciario);
}

.forum-threads-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.forum-thread-card {
  margin: 0;
  border: 1px solid var(--borda-subtle);
  border-radius: 14px;
  background: var(--fundo-card);
  overflow: hidden;
  box-shadow: var(--sombra-sm);
  transition:
    border-color 0.18s ease,
    box-shadow 0.18s ease,
    transform 0.15s ease;
}

.forum-thread-card:hover {
  border-color: color-mix(in srgb, var(--cor-primaria) 22%, var(--borda));
  box-shadow: var(--sombra-md);
  transform: translateY(-1px);
}

.forum-thread-card-link {
  position: relative;
  display: block;
  padding: 16px 40px 16px 18px;
  text-decoration: none;
  color: inherit;
  outline: none;
}

.forum-thread-card-link::after {
  content: "";
  position: absolute;
  right: 17px;
  top: 50%;
  width: 7px;
  height: 7px;
  border-right: 2px solid var(--texto-terciario);
  border-bottom: 2px solid var(--texto-terciario);
  transform: translateY(-55%) rotate(-45deg);
  opacity: 0.45;
  transition: opacity 0.15s ease;
}

.forum-thread-card:hover .forum-thread-card-link::after {
  opacity: 0.85;
}

.forum-thread-card-link:focus-visible {
  box-shadow: inset 0 0 0 2px var(--cor-primaria);
}

.forum-thread-titulo {
  margin: 0 0 8px 0;
  font-size: 1.15rem;
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: -0.02em;
  color: var(--texto-principal);
}

.forum-thread-linha-meta {
  margin: 0;
  font-size: 0.8125rem;
  color: var(--texto-terciario);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 8px;
}

.forum-thread-card-avatar {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  color: #f5f0e6;
  background: linear-gradient(145deg, #14532d 0%, #166534 50%, #0d3d24 100%);
  border: 2px solid color-mix(in srgb, var(--fundo-card) 40%, var(--borda));
}

[data-tema="escuro"] .forum-thread-card-avatar:not(.forum-avatar--foto) {
  background: linear-gradient(160deg, #052e16 0%, #14532d 55%, #0a2612 100%);
  color: #ebe4d4;
}

.forum-thread-card-avatar.forum-avatar--foto {
  border: 1px solid var(--borda-subtle);
  box-shadow: none;
}

.forum-thread-autor {
  font-weight: 700;
  color: var(--texto-principal);
}

.forum-thread-sep {
  opacity: 0.55;
  user-select: none;
}

.forum-vazio,
.forum-erro {
  margin: 0;
  padding: 14px;
  border-radius: var(--raio-sm);
  font-size: 0.9rem;
  line-height: 1.45;
}

.forum-vazio {
  color: var(--texto-secundario);
  background: var(--fundo-resumo-dia);
  border: 1px dashed var(--borda);
}

.forum-erro {
  color: var(--erro, #b91c1c);
  background: rgba(239, 68, 68, 0.08);
  border: 1px solid rgba(239, 68, 68, 0.25);
}

/* Evitar que display:flex anule o atributo hidden (lista + tópico visíveis ao mesmo tempo) */
#forum-view-lista[hidden],
#forum-view-topico[hidden] {
  display: none !important;
}

#forum-view-lista:not([hidden]) {
  display: block;
}

#forum-view-topico:not([hidden]) {
  display: flex;
}

.forum-view-topico {
  flex-direction: column;
  gap: 18px;
}

.forum-topico-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.forum-link-voltar {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--texto-secundario);
  text-decoration: none;
  border: 1px solid var(--borda-subtle);
  border-radius: 10px;
  background: var(--fundo-elevado);
  transition:
    color 0.15s ease,
    background 0.15s ease,
    border-color 0.15s ease;
}

.forum-link-voltar:hover {
  color: var(--texto-principal);
  background: var(--fundo-card);
  border-color: var(--borda);
}

.forum-link-voltar-seta {
  opacity: 0.75;
  font-size: 0.95em;
}

.forum-topico-artigo {
  border: 1px solid var(--borda-subtle);
  border-radius: 16px;
  background: var(--fundo-card);
  padding: 22px 22px 18px;
  box-shadow: var(--sombra-sm);
}

.forum-topico-cabecalho {
  margin-bottom: 18px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--borda-subtle);
}

.forum-topico-titulo-page {
  margin: 0 0 8px 0;
  font-size: 1.35rem;
  font-weight: 800;
  line-height: 1.22;
  letter-spacing: -0.03em;
  color: var(--texto-principal);
}

.forum-topico-meta {
  margin: 0;
  font-size: 0.875rem;
  color: var(--texto-secundario);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 8px;
}

.forum-topico-meta-texto {
  flex: 1 1 auto;
  min-width: 0;
}

.forum-topico-autor-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  color: #f5f0e6;
  background: linear-gradient(145deg, #14532d 0%, #166534 50%, #0d3d24 100%);
  border: 2px solid color-mix(in srgb, var(--fundo-card) 40%, var(--borda));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.12),
    0 1px 4px rgba(0, 0, 0, 0.06);
}

[data-tema="escuro"] .forum-topico-autor-avatar:not(.forum-avatar--foto) {
  background: linear-gradient(160deg, #052e16 0%, #14532d 55%, #0a2612 100%);
  color: #ebe4d4;
}

.forum-topico-meta .forum-mais-acoes-wrap--topico {
  flex-shrink: 0;
  margin-left: auto;
}

.forum-posts-lista {
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* Vista tópico: abertura vs respostas (evita parecer “só mais texto”) */
.forum-posts-lista > .forum-post--inicial {
  padding: 4px 0 8px 0;
}

.forum-respostas {
  margin: 0;
  padding: 16px 0 0 0;
  border-top: 1px dashed var(--borda-subtle);
}

.forum-respostas-heading {
  margin: 0 0 14px 0;
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.055em;
  color: var(--texto-terciario);
  display: flex;
  align-items: center;
  gap: 10px;
}

.forum-respostas-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.35rem;
  padding: 2px 9px;
  font-size: 0.68rem;
  font-weight: 800;
  border-radius: 999px;
  background: var(--fundo-elevado);
  border: 1px solid var(--borda-subtle);
  color: var(--texto-secundario);
  letter-spacing: 0.02em;
}

.forum-post--resposta {
  padding: 10px 0;
}

.forum-post--resposta:not(:last-child) {
  border-bottom: 1px solid var(--borda-resumo-dia);
}

.forum-post--resposta:last-child {
  padding-bottom: 4px;
}

.forum-post-cartao {
  padding: 14px 16px;
  border-radius: 12px;
  background: var(--fundo-elevado);
  border: 1px solid var(--borda-subtle);
}

.forum-post--inicial .forum-post-cartao {
  background: var(--fundo-card);
  border-color: var(--borda);
  box-shadow: var(--sombra-sm);
}

.forum-post--resposta .forum-post-cartao {
  border-left: 3px solid var(--cor-primaria);
  background: color-mix(in srgb, var(--fundo-elevado) 96%, var(--cor-primaria) 4%);
}

[data-tema="escuro"] .forum-post--resposta .forum-post-cartao {
  background: color-mix(in srgb, var(--fundo-elevado) 92%, var(--cor-primaria) 8%);
}

.forum-post-mesa {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 12px 14px;
  align-items: start;
}

.forum-post-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  color: #f5f0e6;
  background: linear-gradient(145deg, #14532d 0%, #166534 50%, #0d3d24 100%);
  border: 2px solid color-mix(in srgb, var(--fundo-card) 40%, var(--borda));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.12),
    0 1px 4px rgba(0, 0, 0, 0.06);
  flex-shrink: 0;
}

[data-tema="escuro"] .forum-post-avatar:not(.forum-avatar--foto) {
  background: linear-gradient(160deg, #052e16 0%, #14532d 55%, #0a2612 100%);
  color: #ebe4d4;
}

.forum-post-bloco {
  min-width: 0;
}

.forum-post-figura {
  margin: 0 0 8px 0;
  padding: 0;
  max-width: 100%;
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
}

.forum-post-imagem {
  display: block;
  max-width: 100%;
  width: auto;
  height: auto;
  max-height: min(360px, 70vh);
  object-fit: contain;
  border-radius: var(--raio-sm);
  border: 1px solid var(--borda-resumo-dia);
  background: var(--fundo-resumo-dia);
}

.forum-post-cabecalho {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px 12px;
  margin-bottom: 6px;
}

.forum-post-cabecalho--topico {
  align-items: center;
  justify-content: flex-start;
  margin-bottom: 8px;
  gap: 10px 12px;
}

.forum-post-cabecalho-direita {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 12px;
  margin-left: auto;
}

.forum-post-papel {
  flex-shrink: 0;
  font-size: 0.65rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 4px 9px;
  border-radius: 6px;
  line-height: 1.2;
}

.forum-post-papel--inicial {
  color: var(--cor-primaria);
  background: color-mix(in srgb, var(--cor-primaria) 14%, transparent);
  border: 1px solid color-mix(in srgb, var(--cor-primaria) 32%, var(--borda));
}

.forum-post-papel--resposta {
  color: var(--texto-secundario);
  background: var(--fundo-resumo-dia);
  border: 1px solid var(--borda-resumo-dia);
}

.forum-post-autor {
  font-size: 1.02rem;
  font-weight: 800;
  color: var(--texto-principal);
}

.forum-post-data {
  font-size: 0.92rem;
  color: var(--texto-terciario);
  font-variant-numeric: tabular-nums;
}

.forum-post-corpo {
  font-size: 1.02rem;
  line-height: 1.5;
  color: var(--texto-principal);
  white-space: pre-wrap;
  word-break: break-word;
}

.forum-post-cartao .forum-post-acoes {
  margin-top: 12px;
  padding-top: 10px;
}

.forum-form-resposta {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 18px 18px 16px;
  border: 1px solid var(--borda-subtle);
  border-radius: 14px;
  background: var(--fundo-elevado);
  box-shadow: var(--sombra-sm);
}

.forum-form-resposta label {
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--texto-terciario);
}

.forum-form-resposta .btn-destaque {
  align-self: flex-start;
  border-radius: 10px;
  padding: 10px 20px;
  font-weight: 700;
}

/* Lightbox imagens comunidade */
/* hidden + display:flex: sem !important o atributo hidden pode deixar de esconder o overlay */
.forum-lightbox[hidden] {
  display: none !important;
}

.forum-lightbox:not([hidden]) {
  display: flex;
}

.forum-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  align-items: center;
  justify-content: center;
  padding: 24px;
  padding-top: 56px;
  background: rgba(15, 18, 24, 0.88);
  box-sizing: border-box;
}

.forum-lightbox-fechar {
  position: absolute;
  top: 12px;
  right: 16px;
  z-index: 10001;
  width: 44px;
  height: 44px;
  margin: 0;
  padding: 0;
  font-size: 1.75rem;
  line-height: 1;
  color: #fff;
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: var(--raio-sm);
  cursor: pointer;
  pointer-events: auto;
}

.forum-lightbox-fechar:hover {
  background: rgba(255, 255, 255, 0.2);
}

.forum-lightbox-imagem {
  position: relative;
  z-index: 10000;
  max-width: 100%;
  max-height: calc(100vh - 80px);
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: var(--raio-sm);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.45);
  pointer-events: none;
}

body.forum-lightbox-aberto {
  overflow: hidden;
}

/* Modal foto de perfil */
.perfil-foto-modal[hidden] {
  display: none !important;
}

.perfil-foto-modal:not([hidden]) {
  display: flex;
}

.perfil-foto-modal {
  position: fixed;
  inset: 0;
  z-index: 9997;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(15, 18, 24, 0.5);
  box-sizing: border-box;
}

.perfil-foto-modal-inner {
  position: relative;
  width: 100%;
  max-width: 400px;
  padding: 22px 22px 18px;
  border-radius: var(--raio);
  background: var(--fundo-card);
  border: 1px solid var(--borda);
  box-shadow: var(--sombra-lg);
  font-family: inherit;
}

.perfil-foto-titulo {
  margin: 0 0 8px 0;
  font-size: 1.0625rem;
  font-weight: 700;
  line-height: 1.3;
  color: var(--texto-principal);
}

.perfil-foto-dica {
  margin: 0 0 14px 0;
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--texto-secundario);
}

.perfil-foto-preview-wrap {
  margin: 0 0 14px 0;
  border-radius: 50%;
  width: 96px;
  height: 96px;
  overflow: hidden;
  border: 2px solid var(--borda-resumo-dia);
  background: var(--fundo-resumo-dia);
}

.perfil-foto-preview-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.perfil-foto-label-ficheiro {
  display: inline-block;
  margin-bottom: 10px;
  font-size: 0.84rem;
  font-weight: 700;
  line-height: 1.35;
  font-family: inherit;
  color: var(--destaque);
  cursor: pointer;
}

.perfil-foto-label-ficheiro:hover {
  text-decoration: underline;
}

.perfil-foto-input {
  display: block;
  width: 100%;
  max-width: 100%;
  margin-bottom: 14px;
  font-size: 0.875rem;
  font-family: inherit;
  line-height: 1.35;
  color: var(--texto-secundario);
}

.perfil-foto-botoes {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-bottom: 12px;
}

.perfil-foto-link-wrap {
  margin: 0;
  text-align: center;
}

.perfil-foto-link-comunidade {
  margin: 0;
  padding: 0;
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--destaque);
  background: none;
  border: none;
  cursor: pointer;
  text-decoration: underline;
  font-family: inherit;
}

.perfil-foto-link-comunidade:hover {
  color: var(--destaque-hover);
}

/* ===== Minha comunidade ( página pessoal / estilo composer ) ===== */
.minha-comunidade-section {
  margin: 0 0 24px 0;
}

.minha-comunidade-wrap {
  max-width: 720px;
  margin: 0 auto;
}

.minha-comunidade-banner {
  padding: 12px 16px;
  margin-bottom: 20px;
  border-radius: var(--raio-sm);
  background: rgba(59, 130, 246, 0.1);
  border: 1px solid rgba(59, 130, 246, 0.22);
}

.minha-comunidade-banner[hidden] {
  display: none !important;
}

.minha-comunidade-banner-texto {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--texto-principal);
}

.minha-comunidade-banner a {
  font-weight: 700;
  color: var(--destaque);
}

.minha-comunidade-identidade {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 22px;
}

.minha-comunidade-avatar-grande {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--fundo-resumo-dia);
  border: 2px solid var(--borda);
  color: var(--destaque);
  font-size: 1.35rem;
  font-weight: 800;
  text-transform: uppercase;
  overflow: hidden;
}

.minha-comunidade-avatar-grande.perfil-avatar--com-foto {
  padding: 0;
  line-height: 0;
}

#minha-comunidade-avatar {
  cursor: pointer;
}

.minha-comunidade-nome {
  margin: 0 0 4px 0;
  font-size: 1.6rem;
  font-weight: 800;
  color: var(--texto-principal);
  letter-spacing: -0.02em;
}

.perfil-social-stats {
  margin: 8px 0 0 0;
  font-size: 1rem;
  color: var(--texto-secundario);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 6px;
}

.perfil-social-stats-sep {
  opacity: 0.55;
  user-select: none;
}

.perfil-social-bio {
  margin: 10px 0 0 0;
  font-size: 1.02rem;
  color: var(--texto-secundario);
  line-height: 1.5;
  white-space: pre-line;
  max-width: 520px;
}

.perfil-social-acoes {
  margin-top: 10px;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.perfil-social-identidade-textos .perfil-social-acoes .btn {
  min-width: 120px;
}

/* ── Painel de edição de perfil ─────────────────────────── */
.perfil-edit-panel {
  background: var(--fundo-card);
  border: 1px solid var(--borda);
  border-radius: 12px;
  padding: 20px 24px;
  margin-top: 16px;
}
.perfil-edit-titulo {
  font-size: 1.15rem;
  font-weight: 600;
  margin: 0 0 14px 0;
}
.perfil-edit-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.perfil-edit-campo {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.perfil-edit-campo label {
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--texto-secundario);
}
.perfil-edit-campo input,
.perfil-edit-campo textarea {
  background: var(--fundo-elevado);
  border: 1px solid var(--borda);
  border-radius: 8px;
  padding: 10px 12px;
  font-size: 1rem;
  color: var(--texto-primario);
  font-family: inherit;
  resize: vertical;
}
.perfil-edit-campo input:focus,
.perfil-edit-campo textarea:focus {
  border-color: var(--destaque);
  outline: none;
}
.perfil-edit-bio-count {
  font-size: 0.82rem;
  color: var(--texto-terciario);
  text-align: right;
}
.perfil-edit-acoes {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
}
.perfil-edit-erro {
  color: #ef4444;
  font-size: 0.85rem;
  margin: 0;
}

.forum-feed-autor-link,
.forum-post-autor-link,
a.forum-thread-autor {
  font-weight: 700;
  color: var(--texto-principal);
  text-decoration: none;
}

.forum-feed-autor-link:hover,
.forum-post-autor-link:hover,
a.forum-thread-autor:hover {
  color: var(--destaque);
  text-decoration: underline;
}

.minha-comunidade-handle {
  margin: 0;
  font-size: 1rem;
  color: var(--texto-secundario);
}

.minha-comunidade-composer {
  border: 1px solid var(--borda-resumo-dia);
  border-radius: var(--raio);
  box-shadow: var(--sombra-sm);
  padding: 16px 18px;
  margin-bottom: 20px;
  background: linear-gradient(168deg, rgba(20, 83, 45, 0.06) 0%, transparent 40%), var(--fundo-card);
}

[data-tema="escuro"] .minha-comunidade-composer {
  background: linear-gradient(168deg, rgba(34, 197, 94, 0.07) 0%, transparent 38%), var(--fundo-card);
}

.minha-comunidade-composer-linha-topo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--borda-resumo-dia);
}

.minha-comunidade-composer-rotulo {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--texto-terciario);
}

.minha-comunidade-visibilidade {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--texto-principal);
}

.minha-comunidade-form {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.minha-comunidade-form label {
  font-size: 0.84rem;
  font-weight: 700;
  color: var(--texto-secundario);
}

.minha-comunidade-form input[type="text"],
.minha-comunidade-form textarea {
  width: 100%;
  box-sizing: border-box;
  padding: 10px 12px;
  border: 1px solid var(--borda);
  border-radius: var(--raio-sm);
  background: var(--fundo-card);
  color: var(--texto-principal);
  font-size: 0.95rem;
  font-family: inherit;
}

.minha-comunidade-form textarea {
  min-height: 4.5rem;
  resize: vertical;
  line-height: 1.45;
}

.minha-comunidade-form-acoes {
  display: flex;
  justify-content: flex-end;
  margin-top: 4px;
}

.minha-comunidade-separador-tabs {
  display: flex;
  gap: 20px;
  border-bottom: 1px solid var(--borda);
  margin-bottom: 16px;
}

.minha-comunidade-tab {
  padding: 10px 2px;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  color: var(--texto-terciario);
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
}

.minha-comunidade-tab.ativo {
  color: var(--texto-principal);
  border-bottom-color: var(--destaque);
}

.minha-comunidade-vazio {
  text-align: center;
  padding: 36px 20px;
  border: 1px dashed var(--borda);
  border-radius: var(--raio);
  background: var(--fundo-pagina);
}

.minha-comunidade-vazio-icone {
  font-size: 2rem;
  opacity: 0.35;
  margin-bottom: 10px;
}

.minha-comunidade-vazio-titulo {
  margin: 0 0 8px 0;
  font-size: 1rem;
  font-weight: 800;
  color: var(--texto-principal);
}

.minha-comunidade-vazio-texto {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--texto-secundario);
}

.minha-comunidade-vazio-texto a {
  font-weight: 700;
  color: var(--destaque);
}

/* ===== Ajuda ===== */
.ajuda-section {
  margin: 0 0 24px 0;
}

.ajuda-card {
  background: var(--fundo-card);
  padding: 20px 24px;
  border-radius: var(--raio);
  border: 1px solid var(--borda);
  box-shadow: var(--sombra-sm);
}

.ajuda-card h2 {
  margin: 0 0 8px 0;
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--texto-principal);
}

.ajuda-dica {
  margin: 0 0 24px 0;
  font-size: 0.875rem;
  color: var(--texto-terciario);
}

.ajuda-bloco {
  margin-bottom: 20px;
  padding: 16px;
  background: var(--fundo-resumo-dia);
  border: 1px solid var(--borda-resumo-dia);
  border-radius: var(--raio);
}

.ajuda-bloco:last-child {
  margin-bottom: 0;
}

.ajuda-bloco h3 {
  margin: 0 0 8px 0;
  font-size: 1rem;
  font-weight: 700;
  color: var(--texto-principal);
}

.ajuda-bloco p {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.5;
  color: var(--texto-secundario);
}

.ajuda-links {
  margin: 0;
  padding-left: 20px;
}

.ajuda-links li {
  margin-bottom: 6px;
  font-size: 0.9rem;
}

.ajuda-links a {
  color: var(--destaque);
  text-decoration: none;
}

.ajuda-links a:hover {
  text-decoration: underline;
}

.ajuda-fale-acoes {
  margin: 8px 0 0 0;
  min-height: 2.5rem;
}

.ajuda-contato-estado {
  display: inline-block;
  margin-top: 12px;
  font-size: 0.9rem;
  color: var(--texto-terciario);
}

.ajuda-fale .btn-fale-conosco {
  display: inline-block;
  margin-top: 12px;
  padding: 10px 22px;
  font-size: 0.9rem;
  font-weight: 600;
  border-radius: var(--raio-botao-felt);
  background: var(--destaque);
  color: var(--texto-botao-primario);
  text-decoration: none;
  border: none;
  cursor: pointer;
}

.ajuda-fale .btn-fale-conosco:hover {
  opacity: 0.9;
}

/* ===== Bads / Flips ===== */
.bads-flips-section {
  margin: 32px 0 24px 0;
}

.contabilizador-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  padding: 4px 0;
  margin: -4px 0 0 0;
  user-select: none;
}
.contabilizador-header h2 {
  margin: 0;
}
.contabilizador-header:hover {
  color: var(--destaque);
}
.contabilizador-toggle {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--texto-terciario);
  line-height: 1;
}

.bads-flips-card {
  background: var(--fundo-card);
  padding: 18px 22px;
  border-radius: var(--raio);
  border: 1px solid var(--borda);
  box-shadow: var(--sombra-sm);
}

.bads-flips-card h2 {
  margin: 0 0 8px 0;
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--texto-principal);
}

.bads-flips-dica {
  margin: 0 0 18px 0;
  font-size: 0.875rem;
  color: var(--texto-terciario);
}

.contabilizador-share-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  margin: 0 0 16px 0;
  padding: 10px 12px;
  border-radius: var(--raio-sm);
  background: var(--fundo-resumo-dia);
  border: 1px solid var(--borda-resumo-dia);
}

.contabilizador-share-label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--texto-secundario);
}

.contabilizador-share-date,
.contabilizador-share-modo {
  padding: 6px 8px;
  font-size: 0.8125rem;
  border-radius: var(--raio-sm);
  border: 1px solid var(--borda);
  background: var(--fundo-card);
  color: var(--texto-principal);
}

.contabilizador-share-modo {
  max-width: 12rem;
}

/* Off-screen: captura html2canvas dos gráficos do contabilizador */
.contabilizador-captura-staging {
  position: fixed;
  left: -12000px;
  top: 0;
  z-index: -5;
  width: 920px;
  max-width: 920px;
  padding: 18px 20px;
  background: var(--fundo-card);
  border: 1px solid var(--borda);
  border-radius: var(--raio);
  box-sizing: border-box;
}

.contabilizador-captura-staging-titulo {
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--texto-principal);
  margin: 0 0 14px 0;
  text-align: center;
}

.contabilizador-captura-staging-inner {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 18px;
  justify-content: center;
  align-items: flex-start;
}

.contabilizador-captura-bloco {
  width: 260px;
  max-width: 100%;
  text-align: center;
}

.contabilizador-captura-bloco-titulo {
  margin: 0 0 8px 0;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--texto-principal);
}

.contabilizador-captura-canvas-wrap {
  width: 220px;
  height: 220px;
  margin: 0 auto;
}

.contabilizador-linha-par {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px 20px;
  margin-bottom: 24px;
  align-items: stretch;
}

.contabilizador-linha-par .contabilizador-bloco {
  margin-bottom: 0;
  min-width: 0;
}

@media (max-width: 960px) {
  .contabilizador-linha-par {
    grid-template-columns: 1fr;
  }
}

.contabilizador-bloco {
  margin-bottom: 20px;
}
.contabilizador-bloco:last-child {
  margin-bottom: 0;
}

.contabilizador-bloco-inner {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  /* Só o espaço necessário entre quadrados e gráfico — evita flex-grow da coluna dos contadores */
  gap: 10px 12px;
}

.contabilizador-contadores {
  flex: 0 1 auto;
  width: fit-content;
  max-width: 100%;
  min-width: 0;
}

.contabilizador-grafico {
  flex: 0 0 auto;
  width: 200px;
  min-width: 200px;
  height: 200px;
  min-height: 200px;
  align-self: center;
}

.contabilizador-grafico canvas {
  max-width: 100% !important;
  max-height: 100% !important;
}

.contabilizador-titulo {
  margin: 0 0 12px 0;
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--texto-principal);
}

.bads-flips-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 14px;
}

.bads-flips-item {
  padding: 18px 18px;
  background: var(--fundo-resumo-dia);
  border: 1px solid var(--borda-resumo-dia);
  border-radius: var(--raio);
}

.bads-flips-item--ganhos {
  background: rgba(34, 197, 94, 0.12);
  border-color: rgba(34, 197, 94, 0.35);
}

.bads-flips-item--perdidos {
  background: rgba(239, 68, 68, 0.12);
  border-color: rgba(239, 68, 68, 0.35);
}

.bads-flips-item h3,
.bads-flips-item h4 {
  margin: 0 0 6px 0;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--texto-principal);
}

.bads-flips-desc {
  margin: 0 0 12px 0;
  font-size: 0.875rem;
  color: var(--texto-terciario);
  line-height: 1.4;
}

.bads-flips-contador {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}

.bads-flips-numero {
  font-size: 2.125rem;
  font-weight: 800;
  color: var(--destaque);
  min-width: 48px;
}

.bads-flips-btns {
  display: flex;
  gap: 8px;
}

.btn-bads-flips {
  padding: 9px 20px;
  font-size: 0.9375rem;
  font-weight: 600;
  border-radius: var(--raio-botao-felt);
  cursor: pointer;
  border: none;
  background: var(--destaque);
  color: var(--texto-botao-primario);
}

.btn-bads-flips:hover {
  background: var(--destaque-hover);
}

.btn-bads-flips.btn-secundario {
  border-radius: var(--raio-sm);
  background: transparent;
  color: var(--texto-secundario);
  border: 1px solid var(--borda);
}

.btn-bads-flips.btn-secundario:hover {
  background: var(--fundo-hover);
}

.btn-bads-flips.btn-menor {
  padding: 6px 12px;
  font-size: 0.85rem;
  background: var(--texto-terciario);
}
.btn-bads-flips.btn-menor:hover {
  background: var(--texto-secundario);
}

.relatorio-vazio {
  color: var(--texto-secundario);
  font-style: italic;
}

.relatorio-semana-topo {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px 12px;
  margin-bottom: 10px;
}

.relatorio-semana-topo .relatorio-semana-titulo {
  margin: 0;
  flex: 1 1 auto;
  min-width: 12rem;
}

.btn-compartilhar-comunidade {
  padding: 5px 10px;
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
}

.mensal-controles .btn-compartilhar-comunidade {
  padding: 6px 10px;
}

.relatorio-semana-topo .btn-compartilhar-semana-comunidade {
  padding: 4px 9px;
  font-size: 0.75rem;
  flex-shrink: 0;
}

.relatorio-semana {
  margin-bottom: 24px;
  padding: 16px;
  background: var(--fundo-resumo-dia);
  border: 1px solid var(--borda-resumo-dia);
  border-radius: var(--raio);
}

.relatorio-semana:last-child {
  margin-bottom: 0;
}

.relatorio-semana-titulo {
  margin: 0 0 12px 0;
  font-size: 1.12rem;
  font-weight: 700;
  color: var(--texto-principal);
}

.relatorio-semana-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 12px 20px;
}

.relatorio-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.relatorio-label {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--texto-secundario);
}

.relatorio-valor {
  font-size: 1.02rem;
  font-weight: 700;
  color: var(--texto-principal);
}

/* Relatório semanal: dias */
.relatorio-dia-list {
  margin-top: 14px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.relatorio-dia-row {
  padding: 14px;
  border-radius: var(--raio);
  border: 1px solid var(--borda-resumo-dia);
  background: rgba(148, 163, 184, 0.06);
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.relatorio-dia-row:hover {
  border-color: rgba(22, 163, 74, 0.35);
  box-shadow: 0 0 0 2px rgba(22, 163, 74, 0.10);
  background: rgba(148, 163, 184, 0.1);
}

.relatorio-dia--highlight {
  background: rgba(34, 197, 94, 0.14) !important;
  border-color: rgba(34, 197, 94, 0.35);
  box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.12);
}

[data-tema="escuro"] .relatorio-dia--highlight {
  background: rgba(74, 222, 128, 0.14) !important;
  border-color: rgba(74, 222, 128, 0.32);
  box-shadow: 0 0 0 3px rgba(74, 222, 128, 0.12);
}

.relatorio-dia-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.relatorio-dia-top-right {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.relatorio-dia-data {
  font-weight: 900;
  font-size: 1rem;
  color: var(--texto-principal);
}

.relatorio-dia-lucro {
  font-weight: 900;
  font-size: 1rem;
}

.relatorio-dia-cta {
  margin: 0 0 10px 0;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--texto-terciario);
}

.btn-relatorio-dia-excluir {
  border: 1px solid rgba(239, 68, 68, 0.35);
  background: rgba(239, 68, 68, 0.08);
  color: #b91c1c;
  font-size: 0.82rem;
  font-weight: 700;
  padding: 4px 8px;
  border-radius: 999px;
  cursor: pointer;
}

.btn-relatorio-dia-excluir:hover {
  background: rgba(239, 68, 68, 0.16);
}

.relatorio-dia-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 10px 16px;
}

/* Toggle de dias no relatório semanal */
.relatorio-dias-toggle {
  margin-top: 12px;
}

.relatorio-dias-toggle summary {
  cursor: pointer;
  user-select: none;
  font-weight: 800;
  font-size: 0.96rem;
  color: var(--texto-principal);
  padding: 10px 12px;
  border-radius: var(--raio-sm);
  border: 1px solid var(--borda-resumo-dia);
  background: var(--fundo-card);
  margin-bottom: 10px;
}

.relatorio-dias-toggle[open] summary {
  border-color: rgba(22, 163, 74, 0.45);
}

[data-tema="escuro"] .relatorio-dias-toggle[open] summary {
  border-color: rgba(74, 222, 128, 0.45);
}

.relatorio-contab-ganhos {
  color: #16a34a !important;
}

.relatorio-contab-perdidos {
  color: #dc2626 !important;
}

/* ===== Bankroll ===== */
.bankroll-section {
  margin: 0 0 24px 0;
}

.bankroll-mini {
  margin: 0 0 24px 0;
  display: flex;
  justify-content: flex-start;
}
.bankroll-mini-card {
  background: var(--fundo-card);
  border: 1px solid var(--borda);
  border-radius: var(--raio);
  box-shadow: var(--sombra-sm);
  padding: 28px 32px; /* igual Entrada rápida */
  width: 100%;
  max-width: 640px;   /* igual Entrada rápida */
  min-width: 0;
  box-sizing: border-box;
}
.bankroll-mini-item {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 0;
  border-radius: 0;
  background: transparent;
  border: none;
}

.bankroll-mini-top {
  display: flex;
  align-items: center;
  justify-content: flex-start; /* opções à esquerda */
  gap: 12px;
  flex-wrap: wrap;
}

.bankroll-mini-titulo {
  margin: 0;
  font-size: 1.125rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--texto-principal);
}

.bankroll-mini-sub {
  margin: 0;
  font-size: 0.875rem;
  color: var(--texto-terciario);
  line-height: 1.4;
}

.bankroll-mini-help {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: help;
  user-select: none;
  border-bottom: 1px dotted color-mix(in srgb, var(--texto-terciario) 55%, transparent);
}

.bankroll-mini-help::after {
  content: "?";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--borda) 75%, transparent);
  background: color-mix(in srgb, var(--fundo-card) 70%, transparent);
  color: var(--texto-terciario);
  font-weight: 900;
  font-size: 0.8rem;
  line-height: 1;
}

.bankroll-mini-session-row {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
}

.bankroll-mini-session-label {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--texto-terciario);
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.bankroll-mini-session-valor {
  font-size: 0.95rem;
  font-weight: 800;
  color: var(--texto-principal);
  font-variant-numeric: tabular-nums;
}

.bankroll-mini-session-sep {
  color: var(--texto-terciario);
  font-weight: 700;
}
.bankroll-mini-label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--texto-secundario);
}

.bankroll-mini-select {
  font: inherit;
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--texto-secundario);
  background: var(--fundo-card);
  border: 1px solid var(--borda);
  border-radius: 999px;
  padding: 8px 12px;
  max-width: 100%;
  width: auto;
  box-shadow: var(--sombra-sm);
  cursor: pointer;
}

[data-tema="escuro"] .bankroll-mini-select {
  background: var(--fundo-elevado);
  color: #e4e4e7;
  border-color: var(--borda);
}

.bankroll-mini-select:focus-visible {
  outline: 2px solid rgba(39, 174, 96, 0.55);
  outline-offset: 2px;
}
.bankroll-mini-valor {
  font-size: 1.75rem;
  font-weight: 800;
  color: var(--texto-principal);
  line-height: 1.05;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
}
.bankroll-mini-valor.destaque {
  color: var(--destaque);
}

.bankroll-card {
  background: var(--fundo-card);
  padding: 20px 24px;
  border-radius: var(--raio);
  border: 1px solid var(--borda);
  box-shadow: var(--sombra-sm);
}

.bankroll-card h2 {
  margin: 0 0 16px 0;
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--texto-principal);
}

.bankroll-principal {
  margin-bottom: 20px;
}

.bankroll-destaque {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-bottom: 16px;
}

.bankroll-atual-card,
.bankroll-lucro-card {
  flex: 1;
  min-width: 140px;
  padding: 16px;
  border-radius: var(--raio);
  background: var(--fundo-resumo-dia);
  border: 1px solid var(--borda-resumo-dia);
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.bankroll-atual-label,
.bankroll-lucro-label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--texto-secundario);
}

.bankroll-atual-valor {
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--destaque);
}

.bankroll-lucro-valor {
  font-size: 1.25rem;
  font-weight: 700;
}
.bankroll-lucro-valor.lucro-positivo { color: #16a34a; }
.bankroll-lucro-valor.lucro-negativo { color: #dc2626; }

.bankroll-explica {
  margin: 0 0 18px 0;
  padding: 12px 14px;
  font-size: 0.875rem;
  line-height: 1.55;
  color: var(--texto-secundario);
  background: var(--fundo-resumo-dia);
  border: 1px solid var(--borda-resumo-dia);
  border-radius: var(--raio-sm);
}

.bankroll-explica a {
  color: var(--destaque);
  font-weight: 600;
  text-decoration: none;
}

.bankroll-explica a:hover {
  text-decoration: underline;
}

.bankroll-inicial-row {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  margin-top: 4px;
}

.bankroll-inicial-campos {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.bankroll-inicial-row label {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--texto-secundario);
}

.bankroll-inicial-row input {
  width: 120px;
  padding: 8px 12px;
  border: 1px solid var(--borda);
  border-radius: var(--raio-sm);
  font-size: 0.9375rem;
}

.bankroll-inicial-dica {
  font-size: 0.8125rem;
  color: var(--texto-terciario);
  line-height: 1.4;
  max-width: 40rem;
}

.bankroll-dias {
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--borda);
}
.bankroll-dias-titulo {
  display: block;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--texto-terciario);
  margin-bottom: 8px;
}
.bankroll-dias-lista {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.bankroll-dia-item {
  border: 1px solid var(--borda-resumo-dia);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  background: var(--fundo-resumo-dia);
  border-radius: 999px;
  font-size: 0.875rem;
  cursor: pointer;
  font: inherit;
  color: inherit;
}
.bankroll-dia-rotulo { color: var(--texto-terciario); }
.bankroll-dia-valor { font-weight: 700; }
.bankroll-dia-valor.lucro-positivo { color: #16a34a; }
.bankroll-dia-valor.lucro-negativo { color: #dc2626; }

.bankroll-dia-item.ativo {
  border-color: var(--destaque);
  box-shadow: 0 0 0 2px var(--destaque-muted);
}

.bankroll-dia-detalhe {
  margin-top: 10px;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px 14px;
  border: 1px solid var(--borda-resumo-dia);
  border-radius: var(--raio-sm);
  background: linear-gradient(180deg, var(--fundo-resumo-dia) 0%, rgba(148, 163, 184, 0.08) 100%);
  font-size: 0.95rem;
  color: var(--texto-principal);
}

.bankroll-dia-detalhe-titulo {
  font-weight: 800;
  font-size: 1rem;
}

.bankroll-dia-detalhe-acoes {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.btn-dia-detalhe-acao {
  padding: 6px 10px;
  font-size: 0.82rem;
  font-weight: 700;
}

.bankroll-dia-detalhe-grid {
  display: grid;
  grid-template-columns: 1.25fr 1fr 1fr 1fr;
  gap: 8px 12px;
  align-items: center;
  border-top: 1px dashed var(--borda-resumo-dia);
  padding-top: 8px;
}

.bankroll-dia-detalhe-grid > div {
  padding: 6px 4px;
}

/* Linhas verticais entre colunas (4 colunas fixas) */
.bankroll-dia-detalhe-grid > div:nth-child(4n + 1),
.bankroll-dia-detalhe-grid > div:nth-child(4n + 2),
.bankroll-dia-detalhe-grid > div:nth-child(4n + 3) {
  border-right: 1px solid var(--borda-resumo-dia);
}

.bankroll-dia-detalhe-head {
  font-size: 0.78rem;
  font-weight: 800;
  color: var(--texto-terciario);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.bankroll-dia-detalhe-site {
  font-weight: 700;
}

.bankroll-dia-detalhe-buyin {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.bankroll-dia-detalhe-subrow {
  display: flex;
  align-items: baseline;
  gap: 6px;
  font-weight: inherit; /* cor/weight vem de .lucro-positivo / .lucro-negativo */
}

.bankroll-dia-detalhe-sublabel {
  font-size: 0.72rem;
  font-weight: 900;
  color: var(--texto-terciario);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  line-height: 1;
}

.bankroll-dia-detalhe-buyin-valor {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 3px;
  font-weight: 900;
  line-height: 1.2;
}

.bankroll-dia-detalhe-delta-num {
  font-variant-numeric: tabular-nums;
}

.bankroll-dia-detalhe-sublabel--delta {
  display: block;
  text-transform: none;
  font-weight: 700;
  letter-spacing: 0.01em;
  line-height: 1.25;
}

.bankroll-detalhes {
  margin-top: 8px;
}

.bankroll-por-sala-top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--borda);
}

.bankroll-por-sala-esq {
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1 1 auto;
  min-width: 0;
}

.bankroll-por-sala-titulo {
  margin: 0;
  font-size: 1.0625rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--texto-principal);
}

.bankroll-por-sala-esq .bankroll-mes-row {
  margin-bottom: 0;
}

.bankroll-mes-row,
.bankroll-saque-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}
.bankroll-mes-row label,
.bankroll-saque-row label {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--texto-secundario);
  min-width: 50px;
}
.bankroll-mes-row input,
.bankroll-saque-row input {
  padding: 8px 12px;
  border: 1px solid var(--borda);
  border-radius: var(--raio-sm);
  font-size: 0.9375rem;
}
.bankroll-saque-row input { width: 120px; }

.bankroll-sites-tabela {
  margin-top: 12px;
}
.bankroll-sites-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9375rem;
}
.bankroll-sites-table th,
.bankroll-sites-table td {
  padding: 10px 12px;
  text-align: left;
  border-bottom: 1px solid var(--borda);
}
.bankroll-sites-table th.th-valor,
.bankroll-sites-table td.td-valor {
  text-align: right;
  width: 140px;
}
.bankroll-sites-table input[type="number"],
.bankroll-sites-table input[type="text"] {
  width: 100%;
  max-width: 120px;
  padding: 8px 10px;
  border: 1px solid var(--borda);
  border-radius: var(--raio-sm);
  font-size: 0.9375rem;
  text-align: right;
}
.bankroll-sites-table input[type="text"] {
  text-align: left;
}

[data-tema="escuro"] .bankroll-sites-table input[type="number"],
[data-tema="escuro"] .bankroll-sites-table input[type="text"] {
  color: var(--texto-principal);
  background: var(--fundo-elevado);
}

.bankroll-sites-table tfoot td {
  border-top: 2px solid var(--borda);
  padding-top: 12px;
}
.btn-adicionar-sala {
  padding: 6px 12px;
  font-size: 0.875rem;
  font-weight: 600;
  border: 1px dashed var(--borda);
  background: transparent;
  color: var(--texto-secundario);
  border-radius: var(--raio-sm);
  cursor: pointer;
}
.btn-adicionar-sala:hover {
  border-color: var(--destaque);
  color: var(--destaque);
}

.btn-adicionar-sala--destaque {
  padding: 12px 26px;
  font-size: 1.0625rem;
  font-weight: 700;
  border: none;
  border-radius: var(--raio-botao-felt);
  background: var(--destaque);
  color: var(--texto-botao-primario);
  box-shadow: var(--sombra-sm);
  flex-shrink: 0;
  align-self: center;
  letter-spacing: 0.02em;
}
.btn-adicionar-sala--destaque:hover {
  background: var(--destaque-hover);
  color: var(--texto-botao-primario);
}
.bankroll-sala-extra .btn-remover-sala {
  width: 28px;
  height: 28px;
  padding: 0;
  border: none;
  background: transparent;
  color: var(--texto-terciario);
  cursor: pointer;
  border-radius: var(--raio-sm);
  font-size: 1.25rem;
  line-height: 1;
}
.bankroll-sala-extra .btn-remover-sala:hover {
  background: var(--fundo-hover);
  color: var(--erro);
}

/* ===== Saques ===== */
.saques-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 20px;
}

/* ===== Metas ===== */
.metas-card {
  background: var(--fundo-card);
  padding: 20px 24px;
  border-radius: var(--raio);
  border: 1px solid var(--borda);
  box-shadow: var(--sombra-sm);
}

.metas-estudo-card {
  margin: 14px 0 18px 0;
  padding: 14px 16px;
  border-radius: var(--raio);
  border: 1px solid var(--borda-resumo-dia);
  background: var(--fundo-resumo-dia);
}

.metas-estudo-top {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px 16px;
}

.metas-estudo-titulo {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--texto-principal);
}

.metas-estudo-dica {
  margin: 6px 0 0 0;
  font-size: 0.85rem;
  color: var(--texto-terciario);
  line-height: 1.4;
}

.metas-estudo-crono {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
  min-width: 180px;
}

.metas-estudo-crono-label {
  font-size: 0.75rem;
  font-weight: 800;
  color: var(--texto-terciario);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.metas-estudo-crono-val {
  font-size: 1.6rem;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
  color: var(--texto-principal);
}

.metas-estudo-acoes {
  margin-top: 12px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.metas-estudo-resumo {
  margin: 12px 0 0 0;
  font-size: 0.875rem;
  color: var(--texto-secundario);
}

.metas-dica {
  margin: 0 0 20px 0;
  font-size: 0.875rem;
  color: var(--texto-terciario);
}

.metas-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 16px;
  margin: 0 0 18px 0;
}

.metas-controls label {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--texto-secundario);
}

.metas-controls select {
  padding: 8px 12px;
  border: 1px solid var(--borda);
  border-radius: var(--raio-sm);
  font-size: 0.9375rem;
  background: var(--fundo-card);
  color: var(--texto-principal);
}

.metas-periodo-atual {
  font-size: 0.875rem;
  color: var(--texto-terciario);
  font-weight: 600;
}

.metas-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 16px 20px;
}

.metas-item {
  padding: 16px;
  border: 1px solid var(--borda-resumo-dia);
  border-radius: var(--raio);
  background: var(--fundo-resumo-dia);
}

.metas-item-top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.metas-item-top h3 {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
  color: var(--texto-principal);
}

.metas-tag {
  font-size: 0.75rem;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(14, 165, 233, 0.12);
  color: var(--destaque);
}

.metas-tag-volume {
  background: rgba(14, 165, 233, 0.12);
  color: var(--destaque);
}
.metas-tag-performance {
  background: rgba(245, 158, 11, 0.15);
  color: #f59e0b;
}
.metas-tag-finance {
  background: rgba(34, 197, 94, 0.12);
  color: #16a34a;
}
.metas-tag-estudo {
  background: rgba(14, 165, 233, 0.12);
  color: var(--destaque);
}
.metas-tag-disciplina {
  background: rgba(168, 85, 247, 0.12);
  color: #a855f7;
}

.metas-progress {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}

.metas-progress-bar {
  flex: 1;
  height: 8px;
  border-radius: 999px;
  background: rgba(200, 169, 110, 0.16);
  position: relative;
  overflow: hidden;
}

.metas-progress-fill {
  height: 100%;
  width: 0%;
  border-radius: 999px;
  background: var(--destaque);
}

.metas-progress-pct {
  min-width: 52px;
  text-align: right;
  font-weight: 800;
  color: var(--texto-secundario);
}

.metas-meta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid var(--borda-subtle);
  padding-top: 10px;
}

.metas-actual {
  display: flex;
  align-items: baseline;
  gap: 6px;
  flex: 1;
  min-width: 160px;
}

.metas-actual-label {
  color: var(--texto-terciario);
  font-weight: 600;
  font-size: 0.875rem;
}

.metas-actual-value {
  font-weight: 800;
  color: var(--texto-principal);
}
.metas-actual-unit {
  color: var(--texto-terciario);
  font-weight: 700;
  font-size: 0.875rem;
  margin-left: 2px;
}

.metas-input-label {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--texto-secundario);
}

.metas-meta-row input[type="number"],
.metas-meta-row input[type="text"] {
  width: 120px;
  padding: 8px 10px;
  border: 1px solid var(--borda);
  border-radius: var(--raio-sm);
  background: var(--fundo-card);
  color: var(--texto-principal);
  font-size: 0.9375rem;
}

/* Metas personalizadas (lista + formulário) */
.metas-goal-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 16px;
  margin: 18px 0 18px 0;
}

.metas-goal-card {
  border: 1px solid var(--borda-resumo-dia);
  border-radius: var(--raio);
  background: var(--fundo-resumo-dia);
  padding: 16px;
}

.metas-goal-card-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 10px;
}

.metas-goal-name {
  font-weight: 800;
  color: var(--texto-principal);
  font-size: 1rem;
  margin-bottom: 2px;
}

.metas-goal-sub {
  color: var(--texto-terciario);
  font-weight: 700;
  font-size: 0.85rem;
}

.metas-goal-pct {
  min-width: 66px;
  text-align: right;
  font-weight: 900;
  color: var(--texto-secundario);
}

.metas-nova-meta {
  border-top: 1px solid var(--borda-subtle);
  padding-top: 18px;
  margin-top: 12px;
}

.metas-nova-meta h3 {
  margin: 0 0 12px 0;
  font-size: 1rem;
}

.metas-nova-meta-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 18px;
  align-items: end;
}

.metas-nova-meta-grid label {
  grid-column: span 1;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--texto-secundario);
}

.metas-nova-meta-grid input,
.metas-nova-meta-grid select {
  width: 100%;
  padding: 8px 10px;
  border: 1px solid var(--borda);
  border-radius: var(--raio-sm);
  background: var(--fundo-card);
  color: var(--texto-principal);
  font-size: 0.9375rem;
}

.metas-goal-category-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.metas-goal-current-row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 10px 14px;
  margin-top: 12px;
  border-top: 1px solid var(--borda-subtle);
  padding-top: 10px;
}

.metas-goal-current-row .metas-actual-label {
  font-size: 0.875rem;
}

.metas-goal-editor {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
  margin-top: 10px;
  align-items: center;
}

.metas-goal-editor select,
.metas-goal-editor input {
  padding: 8px 10px;
  border: 1px solid var(--borda);
  border-radius: var(--raio-sm);
  background: var(--fundo-card);
  color: var(--texto-principal);
  font-size: 0.9375rem;
}

.metas-goal-editor select {
  min-width: 140px;
}

.metas-goal-editor input[type="text"] {
  width: 110px;
}

.saques-section .saques-card {
  background: var(--fundo-card);
  padding: 20px 24px;
  border-radius: var(--raio);
  border: 1px solid var(--borda);
}
.saques-dica {
  margin: 0 0 20px 0;
  font-size: 0.875rem;
  color: var(--texto-terciario);
}
.saques-form {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
}
.saques-form label {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--texto-secundario);
}
.saques-form input {
  padding: 8px 12px;
  border: 1px solid var(--borda);
  border-radius: var(--raio-sm);
  font-size: 0.9375rem;
}
.saques-form select {
  padding: 8px 12px;
  border: 1px solid var(--borda);
  border-radius: var(--raio-sm);
  font-size: 0.9375rem;
  background: var(--fundo-card);
  color: var(--texto-principal);
}
.saques-resumo {
  margin-bottom: 24px;
  padding: 16px;
  background: var(--fundo-resumo-dia);
  border-radius: var(--raio);
  display: inline-flex;
  flex-direction: column;
  gap: 4px;
}
.saques-total-label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--texto-secundario);
}
.saques-total-valor {
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--destaque);
}
.saques-lista-wrapper h3 {
  margin: 0 0 12px 0;
  font-size: 1rem;
  font-weight: 600;
  color: var(--texto-principal);
}
.saques-lista {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.saque-item {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 10px 14px;
  background: var(--fundo-resumo-dia);
  border-radius: var(--raio-sm);
  font-size: 0.9375rem;
}
.saque-data {
  min-width: 100px;
  color: var(--texto-secundario);
}
.saque-site {
  min-width: 110px;
  font-weight: 600;
  color: var(--texto-principal);
}
.saque-valor {
  font-weight: 700;
  flex: 1;
}
.btn-remover-saque {
  width: 28px;
  height: 28px;
  padding: 0;
  border: none;
  background: transparent;
  color: var(--texto-terciario);
  cursor: pointer;
  font-size: 1.2rem;
  border-radius: var(--raio-sm);
}
.btn-remover-saque:hover {
  background: var(--fundo-hover);
  color: var(--erro);
}
.saques-vazio {
  color: var(--texto-terciario);
  font-style: italic;
  margin: 0;
}

.bankroll-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  padding: 4px 0;
  margin: -4px 0 0 0;
  user-select: none;
}
.bankroll-header:hover {
  color: var(--destaque);
}
.bankroll-toggle {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--texto-terciario);
  line-height: 1;
}
.bankroll-header--minimizado .bankroll-toggle {
  transform: rotate(0deg);
}

.bankroll-salas-extras {
  display: contents;
}

.bankroll-sala-extra .td-sala-nome-extra {
  vertical-align: middle;
}
.bankroll-sala-extra .br-sala-nome-display {
  cursor: pointer;
  line-height: 1.4;
}
.bankroll-sala-extra .br-sala-nome {
  display: none;
}
.bankroll-sala-extra--editando-nome .br-sala-nome-display {
  display: none;
}
.bankroll-sala-extra--editando-nome .br-sala-nome {
  display: block;
  max-width: min(260px, 100%);
}

.bankroll-sala-extra .br-sala-nome,
.bankroll-sala-extra .br-sala-valor {
  padding: 8px 12px;
  border: 1px solid var(--borda);
  border-radius: var(--raio-sm);
  font-size: 0.9375rem;
  font-family: inherit;
  background: var(--fundo-card);
  color: var(--texto-principal);
}
.bankroll-sala-extra .br-sala-nome:focus,
.bankroll-sala-extra .br-sala-valor:focus {
  outline: none;
  border-color: var(--destaque);
}

/* ===== Container ===== */
.container {
  display: flex;
  flex-direction: column;
  gap: 24px;
  align-items: stretch;
}

/* ===== Entrada rápida + cartão de sessão (mesma linha) ===== */
.rapido-sessao-linha {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: 24px;
  flex-wrap: wrap;
  width: 100%;
}

/* ===== Entrada rápida (principal) ===== */
.form-rapido {
  background: var(--fundo-card);
  padding: 28px 32px;
  border-radius: var(--raio);
  border: 1px solid var(--borda);
  box-shadow: var(--sombra-sm);
  flex: 1 1 320px;
  width: 100%;
  max-width: 640px;
  min-width: 0;
  box-sizing: border-box;
}

.sessao-card {
  background: var(--fundo-card);
  padding: 28px 32px;/* match .form-rapido */
  border-radius: var(--raio);
  border: 1px solid var(--borda);
  box-shadow: var(--sombra-sm);
  flex: 1 1 240px;
  width: 100%;
  max-width: 380px;
  min-width: 240px;
  min-height: 0;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 12px;
}

.sessao-card-titulo {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--texto-principal);
}

.sessao-card-dica {
  margin: 0;
  font-size: 0.8125rem;
  color: var(--texto-terciario);
  line-height: 1.4;
}

.sessao-tempo-display {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 112px;
  padding: 20px 16px;
  margin: 4px 0;
  background: var(--fundo-hover);
  border: 1px solid var(--borda);
  border-radius: var(--raio-sm);
}

.sessao-card .sessao-tempo {
  font-size: clamp(2rem, 5vw, 3rem);
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.03em;
  line-height: 1.1;
  color: var(--texto-principal);
  text-align: center;
  min-width: 0;
}

.sessao-card .btn-finalizar-sessao {
  margin-top: auto;
}

.sessao-card .btn-corrigir-sessoes {
  margin-top: 8px;
  padding: 9px 14px;
  font-size: 0.85rem;
}

.modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
}

.modal[hidden] {
  display: none !important;
}

.modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
}

.modal-card {
  position: relative;
  width: min(900px, calc(100vw - 32px));
  max-height: calc(100vh - 32px);
  overflow: auto;
  margin: 16px auto;
  background: var(--fundo-card);
  border: 1px solid var(--borda);
  border-radius: var(--raio);
  box-shadow: var(--sombra-lg);
  padding: 18px 18px 14px;
}

.modal-topo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.modal-titulo {
  margin: 0;
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--texto-principal);
}

.modal-fechar {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  border: 1px solid var(--borda);
  background: var(--fundo-hover);
  color: var(--texto-principal);
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
}

.modal-fechar:hover {
  border-color: color-mix(in srgb, var(--cor-primaria) 22%, var(--borda));
}

.modal-dica {
  margin: 10px 0 14px;
  font-size: 0.875rem;
  color: var(--texto-terciario);
  line-height: 1.45;
}

.modal-acoes {
  margin-top: 14px;
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}

.sessoes-body {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.sessoes-filtros {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px 16px;
  margin: 0 0 12px 0;
  padding: 12px;
  border: 1px solid var(--borda);
  border-radius: var(--raio-sm);
  background: var(--fundo-hover);
}

.sessoes-filtros-campo label {
  display: block;
  font-size: 0.78rem;
  font-weight: 800;
  color: var(--texto-secundario);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  margin-bottom: 6px;
}

.sessoes-filtros-campo input[type="date"] {
  padding: 8px 10px;
  border: 1px solid var(--borda);
  border-radius: var(--raio-sm);
  background: var(--fundo-card);
  color: var(--texto-principal);
  font-size: 0.92rem;
}

.sessoes-filtros-acoes {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.sessao-edit {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: flex-end;
  padding: 12px;
  border: 1px solid var(--borda);
  border-radius: var(--raio-sm);
  background: var(--fundo-resumo-dia);
}

.sessao-edit-col {
  flex: 1 1 240px;
  min-width: 220px;
}

.sessao-edit-meta {
  flex: 1 1 220px;
  min-width: 220px;
  font-size: 0.92rem;
  color: var(--texto-secundario);
  padding-bottom: 2px;
}

.sessao-edit-acoes {
  display: flex;
  gap: 10px;
  flex: 0 0 auto;
  align-items: center;
}

.sessao-edit label {
  display: block;
  font-size: 0.78rem;
  font-weight: 800;
  color: var(--texto-secundario);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  margin-bottom: 6px;
}

.sessao-edit input[type="datetime-local"] {
  width: 100%;
  padding: 8px 10px;
  border: 1px solid color-mix(in srgb, var(--borda) 90%, #000 10%);
  border-radius: var(--raio-sm);
  background: #fff;
  color: var(--texto-principal);
  font-size: 0.92rem;
}

.sessao-edit-meta strong {
  font-variant-numeric: tabular-nums;
}

.sessao-edit .btn-mini {
  padding: 9px 12px;
  border-radius: var(--raio-sm);
  border: 1px solid var(--borda);
  background: var(--fundo-card);
  cursor: pointer;
  font-weight: 700;
}

.sessao-edit .btn-mini.btn-mini--primario {
  background: var(--destaque);
  color: var(--texto-botao-primario);
  border-color: transparent;
}

.sessao-edit .btn-mini:disabled {
  opacity: 0.65;
  cursor: not-allowed;
}

@media (max-width: 620px) {
  .sessao-edit-col,
  .sessao-edit-meta {
    min-width: 100%;
  }
}

.form-rapido h2 {
  margin: 0 0 8px 0;
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--texto-principal);
}

.form-rapido-dica {
  margin: 0 0 16px 0;
  font-size: 0.8125rem;
  color: var(--texto-terciario);
  line-height: 1.4;
}

.form-rapido-inner {
  display: flex;
  gap: 16px;
  align-items: flex-end;
  flex-wrap: wrap;
}

.form-rapido-campo {
  margin-bottom: 0;
}

.form-rapido-campo label {
  display: block;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--texto-secundario);
  margin-bottom: 6px;
}

.form-rapido-buyin {
  flex: 1 1 140px;
}

.form-rapido-buyin input {
  font-size: 1.125rem;
  padding: 12px 16px;
  min-width: 100px;
  width: 100%;
  border: 1px solid var(--borda);
  border-radius: var(--raio-sm);
  background: var(--fundo-card);
  color: var(--texto-principal);
  font-family: inherit;
}

.form-rapido-buyin input:focus {
  outline: none;
  border-color: var(--destaque);
}

.form-rapido-site,
.form-rapido-moeda {
  flex: 0 0 auto;
}

.form-rapido-site select,
.form-rapido-site input,
.form-rapido-moeda select {
  font-size: 0.9375rem;
  padding: 12px 14px;
  min-width: 110px;
  border: 1px solid var(--borda);
  border-radius: var(--raio-sm);
  background: var(--fundo-card);
  color: var(--texto-principal);
  font-family: inherit;
}

.form-rapido-site input {
  min-width: 140px;
  max-width: min(220px, 100%);
}

.form-rapido-site select:focus,
.form-rapido-site input:focus,
.form-rapido-moeda select:focus {
  outline: none;
  border-color: var(--destaque);
}

.form-rapido .btn-rapido {
  flex-shrink: 0;
  padding: 12px 24px;
  font-size: 1rem;
}

/* btn-secundario — ações secundárias gerais */
.btn-secundario {
  display: inline-block;
  padding: 10px 16px;
  border-radius: var(--raio-sm);
  border: 1px solid var(--borda);
  background: var(--fundo-card);
  color: var(--texto-principal);
  font-size: 0.9375rem;
  font-weight: 500;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
}

.btn-secundario:hover {
  background: var(--fundo-hover);
  border-color: var(--texto-terciario);
}

.btn-secundario.ativo {
  border-color: var(--destaque);
  box-shadow: 0 0 0 3px var(--destaque-muted);
}

/* Botão primário (destaque) — usado no fórum, metas, modal foto perfil, etc. */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px 16px;
  border: none;
  border-radius: var(--raio-sm);
  font-family: inherit;
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  transition: background 0.15s, opacity 0.15s;
}

.btn-destaque {
  background: var(--destaque);
  color: var(--texto-botao-primario);
}

.btn-destaque:hover {
  background: var(--destaque-hover);
}

/* ===== Form fields ===== */
.form-linha {
  margin-bottom: 14px;
}

.form-linha:last-of-type {
  margin-bottom: 20px;
}

.form-linha label {
  display: block;
  font-size: 0.9375rem;
  font-weight: 500;
  margin-bottom: 4px;
  color: var(--texto-secundario);
}

.form-linha input,
.form-linha select {
  width: 100%;
  padding: 10px 12px;
  border-radius: var(--raio-sm);
  border: 1px solid var(--borda);
  font-size: 0.9375rem;
  font-family: inherit;
  background: var(--fundo-card);
  color: var(--texto-principal);
}

.form-linha input:focus,
.form-linha select:focus {
  outline: none;
  border-color: var(--destaque);
  box-shadow: 0 0 0 3px var(--destaque-muted);
}

.btn-adicionar {
  width: 100%;
  padding: 10px 20px;
  border-radius: var(--raio-botao-felt);
  border: none;
  background: var(--destaque);
  color: var(--texto-botao-primario);
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
}

.btn-adicionar:hover {
  background: var(--destaque-hover);
}

.btn-rapido {
  flex-shrink: 0;
}

/* ===== Tables area ===== */
.tabela-wrapper {
  flex: 2 1 420px;
  min-width: 0;
  overflow-x: visible;
  width: 100%;
}

/* Tabela de torneios — ferramenta principal: mais destaque no dashboard */
#torneios.tabela-wrapper {
  margin-top: 16px;
}

#torneios .tabela-header-row h2 {
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--texto-principal);
}

/* Viewport: em ecrãs estreitos permite scroll local sem partir o layout geral */
.torneios-table-viewport {
  width: 100%;
  /* Sem barra horizontal: a tabela se adapta por breakpoints (ocultando colunas) */
  overflow-x: clip;
  overflow-y: visible;
  border-radius: var(--raio);
  border: 1px solid var(--borda);
  box-shadow: var(--sombra-md);
  background: var(--fundo-tabela);
  margin-bottom: 16px;
  scrollbar-gutter: stable;
}

/* Em telas menores, não “cortar” a tabela por overflow-x: clip */
@media (max-width: 1100px) {
  .torneios-table-viewport { overflow-x: visible; }
}

.torneios-table-viewport #tabela-torneios {
  border: none;
  border-radius: 0;
  box-shadow: none;
  margin-bottom: 0;
}

.tabela-header-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}

.tabela-filtros {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.tabela-filtros .btn-secundario {
  padding: 7px 11px;
  font-size: 0.85rem;
}

.tabela-filtros .btn-secundario.ativo {
  border-color: var(--destaque);
  color: var(--destaque);
  box-shadow: 0 0 0 2px var(--destaque-muted);
}

#torneios-mes-ref {
  padding: 7px 10px;
  border-radius: var(--raio-sm);
  border: 1px solid var(--borda);
  background: var(--fundo-card);
  color: var(--texto-principal);
  font-size: 0.875rem;
}

.tabela-filtro-info {
  margin: -2px 0 10px 0;
  font-size: 0.9rem;
  color: var(--texto-terciario);
}

.torneios-paginacao {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  flex-wrap: wrap;
  margin: 8px 0 10px 0;
}

.torneios-paginacao .btn-pag {
  padding: 6px 10px;
  min-width: 34px;
  border: 1px solid var(--borda);
  border-radius: var(--raio-sm);
  background: var(--fundo-card);
  color: var(--texto-principal);
  font-size: 0.85rem;
  font-weight: 700;
  cursor: pointer;
}

.torneios-paginacao .btn-pag:hover {
  border-color: var(--destaque);
  color: var(--destaque);
}

.torneios-paginacao .btn-pag.ativo {
  border-color: var(--destaque);
  color: var(--destaque);
  box-shadow: 0 0 0 2px var(--destaque-muted);
}

.torneios-paginacao .btn-pag-ellipsis {
  cursor: default;
  border-style: dashed;
  color: var(--texto-terciario);
}

.tabela-header-row h2 {
  margin: 0;
  font-size: 1.0625rem;
  font-weight: 600;
  color: var(--texto-principal);
}

.sessao-tempo {
  font-weight: 600;
  color: var(--texto-principal);
  font-variant-numeric: tabular-nums;
}

.tabela-wrapper h2 {
  margin: 0 0 12px 0;
  font-size: 1.0625rem;
  font-weight: 600;
  color: var(--texto-principal);
}

.th-acoes-inicio {
  position: relative;
  text-align: left;
  vertical-align: middle;
  white-space: nowrap;
}

.th-acoes-inicio-btns {
  display: flex;
  align-items: center;
  gap: 6px;
}

.add-menu-header {
  position: absolute;
  left: 0;
  top: 100%;
  margin-top: 4px;
}

.th-acoes-salvar {
  text-align: center;
  vertical-align: middle;
}

.btn-salvar-tudo {
  padding: 6px 16px;
  border-radius: var(--raio-botao-felt);
  border: none;
  font-size: 0.8125rem;
  font-weight: 600;
  cursor: pointer;
  background: var(--sucesso);
  color: #fff;
  transition: opacity 0.15s, background 0.15s;
}

.btn-salvar-tudo:hover {
  background: var(--sucesso-hover);
  opacity: 0.95;
}

/* Rascunho: linha nova até preencher nome / buy-in / etc. */
.linha-nova {
  background: rgba(22, 163, 74, 0.14) !important;
  border-left: 3px solid rgba(22, 163, 74, 0.6);
}

.linha-nova td {
  background: transparent !important;
  border-color: rgba(22, 163, 74, 0.22);
}

[data-tema="escuro"] .linha-nova {
  background: rgba(74, 222, 128, 0.14) !important;
  border-left-color: rgba(74, 222, 128, 0.75);
}

[data-tema="escuro"] .linha-nova td {
  border-color: rgba(74, 222, 128, 0.25);
}

/* Destaque temporário para torneio recém-adicionado */
.linha-recente {
  background: rgba(100, 116, 139, 0.12) !important;
  border-left: 3px solid rgba(100, 116, 139, 0.55);
}

.linha-recente td {
  background: transparent !important;
  border-color: rgba(100, 116, 139, 0.2);
}

[data-tema="escuro"] .linha-recente {
  background: rgba(100, 116, 139, 0.14) !important;
  border-left-color: rgba(100, 116, 139, 0.6);
}

[data-tema="escuro"] .linha-recente td {
  border-color: rgba(100, 116, 139, 0.22);
}

.btn-add-inline {
  min-width: 28px;
  padding: 4px 10px;
  font-size: 1rem;
  font-weight: 700;
  border-radius: var(--raio-botao-felt);
  background: var(--sucesso);
  color: #fff;
}

.btn-add-inline:hover {
  background: var(--sucesso-hover);
}

.btn-add-linha {
  width: 32px;
  height: 32px;
  padding: 0;
  border-radius: 50%;
  border: 2px solid var(--sucesso);
  background: var(--fundo-card);
  color: var(--sucesso);
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s, color 0.15s;
}

.btn-add-linha:hover {
  background: var(--sucesso);
  color: #fff;
}

.tabela-legenda {
  margin: 0 0 12px 0;
  font-size: 0.9375rem;
  color: var(--texto-secundario);
}

.tabela-wrapper h2:not(:first-child) {
  margin-top: 28px;
}

/* Cor por dia do calendário: hoje verde, ontem ouro, alternando (mesma data = mesma cor) */
#tabela-torneios tbody tr.linha-dia-verde td {
  background: color-mix(in srgb, #16a34a 13%, var(--fundo-tabela)) !important;
}

#tabela-torneios tbody tr.linha-dia-ouro td {
  background: color-mix(in srgb, #c9a227 16%, var(--fundo-tabela)) !important;
}

#tabela-torneios tbody tr.dia-header.linha-dia-verde td,
#tabela-torneios tbody tr.hora-header.linha-dia-verde td {
  background: color-mix(in srgb, #16a34a 22%, var(--fundo-tabela-alt)) !important;
}

#tabela-torneios tbody tr.dia-header.linha-dia-ouro td,
#tabela-torneios tbody tr.hora-header.linha-dia-ouro td {
  background: color-mix(in srgb, #c9a227 22%, var(--fundo-tabela-alt)) !important;
}

#tabela-torneios tbody tr.linha-dia-verde:hover td,
#tabela-torneios tbody tr.linha-dia-ouro:hover td {
  filter: brightness(0.97);
}

#tabela-torneios tbody tr.linha-importante.linha-dia-verde td {
  background: color-mix(in srgb, #f59e0b 24%, color-mix(in srgb, #16a34a 11%, var(--fundo-tabela))) !important;
}

#tabela-torneios tbody tr.linha-importante.linha-dia-ouro td {
  background: color-mix(in srgb, #f59e0b 24%, color-mix(in srgb, #c9a227 14%, var(--fundo-tabela))) !important;
}

/* ===== Tables ===== */
table {
  width: 100%;
  border-collapse: collapse;
  background: var(--fundo-card);
  border-radius: var(--raio);
  border: 1px solid var(--borda);
  overflow: visible;
  box-shadow: var(--sombra-sm);
  margin-bottom: 16px;
}

/* Tournament table specifically uses inverted (light/dark) background */
#tabela-torneios {
  background: var(--fundo-tabela);
  border-color: var(--borda);
  table-layout: fixed; /* compressão previsível */
  width: 100%;
  min-width: 0; /* nunca força overflow */
}

#tabela-torneios thead th {
  background: var(--thead-tabela);
  color: var(--thead-texto);
  vertical-align: middle;
  font-size: 0.875rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  line-height: 1.3;
  padding: 8px 6px;
  font-family: "Source Sans 3", -apple-system, BlinkMacSystemFont, sans-serif;
}

/* Mínimos por coluna: hora, data e ações deixam de colapsar com a % antiga */
#tabela-torneios thead th:nth-child(1),
#tabela-torneios tbody td:nth-child(1) {
  width: 2.75rem;
  min-width: 2.75rem;
  text-align: center;
}

#tabela-torneios thead th:nth-child(2),
#tabela-torneios tbody td:nth-child(2) {
  width: 3rem;
  min-width: 3rem;
  text-align: center;
}

#tabela-torneios thead th:nth-child(3),
#tabela-torneios tbody td:nth-child(3) {
  /* Data: foco em DD/MM (ano oculto no Chrome/Edge via WebKit rules abaixo) */
  min-width: 4.5rem;
  max-width: 5.25rem;
  width: 4.75rem;
  white-space: nowrap;
  text-align: center;
  vertical-align: middle;
}

#tabela-torneios thead th:nth-child(4),
#tabela-torneios tbody td:nth-child(4) {
  /* Hora precisa caber HH:MM nos inputs */
  min-width: 6.1rem;
  max-width: 6.75rem;
  width: 6.35rem;
  white-space: nowrap;
  text-align: center;
}

#tabela-torneios thead th:nth-child(5) {
  /* "Torneio": menor e elipsado */
  min-width: 8.5rem;
  max-width: 14rem;
  width: 10.5rem;
  text-align: center;
}

#tabela-torneios tbody td:nth-child(5) {
  min-width: 8.5rem;
  max-width: 14rem;
  width: 10.5rem;
  text-align: center;
}

#tabela-torneios thead th:nth-child(6),
#tabela-torneios tbody td:nth-child(6) {
  /* Site: mais compacto para dar espaço às AÇÕES */
  min-width: 4.75rem;
  max-width: 6.25rem;
  width: 5.25rem;
  text-align: center;
}

/* Colunas numéricas importantes: mantêm largura “estática” */
#tabela-torneios thead th:nth-child(7),
#tabela-torneios tbody td:nth-child(7) { width: 6.75rem; min-width: 6.25rem; }
#tabela-torneios thead th:nth-child(8),
#tabela-torneios tbody td:nth-child(8) { width: 4.75rem; min-width: 4.25rem; }
#tabela-torneios thead th:nth-child(10),
#tabela-torneios tbody td:nth-child(10) { width: 6.75rem; min-width: 6.25rem; }
#tabela-torneios thead th:nth-child(11),
#tabela-torneios tbody td:nth-child(11) { width: 6.75rem; min-width: 6.25rem; }

#tabela-torneios thead th:nth-child(9),
#tabela-torneios tbody td:nth-child(9) {
  /* Posição/entradas: compacto (sem “engordar”) */
  min-width: 6.5rem;
  max-width: 7.25rem;
  width: 6.9rem;
  text-align: center;
}

#tabela-torneios thead th:nth-child(12),
#tabela-torneios tbody td:nth-child(12) {
  min-width: 10.5rem;
  max-width: 12.75rem;
  width: 12.25rem; /* cabe +S/+R/★/⧉/X sem cortar */
  text-align: center;
}

/* AÇÕES: não deixar “vazar”/estourar largura */
#tabela-torneios .td-acoes-inner {
  gap: 4px 4px;
  flex-wrap: wrap;
  justify-content: center;
}

/* Botão X sempre visível e compacto */
#tabela-torneios .btn-excluir-inline {
  padding: 3px 6px;
  min-width: 24px;
  font-size: 0.9rem;
  order: 99;
}

/* Inputs de Hora: ocupar a célula e mostrar HH:MM */
#tabela-torneios .input-hora {
  width: 100%;
  min-width: 0;
  font-variant-numeric: tabular-nums;
  padding: 4px 6px;
  font-size: 0.9rem;
  box-sizing: border-box;
}

/* Breakpoints sem scroll: escondem colunas menos importantes para manter Hora + valores */
@media (max-width: 1200px) {
  /* Esconde Posição/entradas */
  #tabela-torneios thead th:nth-child(9),
  #tabela-torneios tbody td:nth-child(9) { display: none; }
}

@media (max-width: 1020px) {
  /* Esconde Site */
  #tabela-torneios thead th:nth-child(6),
  #tabela-torneios tbody td:nth-child(6) { display: none; }
}

@media (max-width: 940px) {
  /* Compacta AÇÕES: mantém só excluir e + (remove botões extras) */
  #tabela-torneios .btn-clonar,
  #tabela-torneios .btn-importante-inline,
  #tabela-torneios .btn-satelitado-rapido { display: none; }
  #tabela-torneios thead th:nth-child(12),
  #tabela-torneios tbody td:nth-child(12) { width: 7.25rem; min-width: 7.25rem; max-width: 7.25rem; }
}

@media (max-width: 860px) {
  /* Se ainda apertar, esconde Data (mantém Hora + valores) */
  #tabela-torneios thead th:nth-child(3),
  #tabela-torneios tbody td:nth-child(3) { display: none; }
}

@media (max-width: 780px) {
  /* Último recurso: esconde Nome (fica só números + hora) */
  #tabela-torneios thead th:nth-child(5),
  #tabela-torneios tbody td:nth-child(5) { display: none; }
}

/* Telas médias: reduzir densidade antes de esconder conteúdo */
@media (max-width: 980px) {
  #tabela-torneios thead th {
    font-size: 0.78rem;
    padding: 6px 4px;
  }
  #tabela-torneios tbody td {
    font-size: 0.9rem;
  }
  #tabela-torneios .input-tabela {
    font-size: 0.875rem;
  }
  #tabela-torneios .td-acoes-inner {
    gap: 4px 4px;
  }
}

/* Telas pequenas/médias: modo empilhado (sem scroll horizontal e sem perder dados) */
@media (max-width: 1100px) {
  .torneios-table-viewport {
    overflow-x: visible;
    border: none;
    box-shadow: none;
    background: transparent;
  }

  #tabela-torneios {
    display: block;
    background: transparent;
    border: none;
  }

  #tabela-torneios thead,
  #tabela-torneios tfoot {
    display: none;
  }

  #tabela-torneios tbody {
    display: block;
  }

  /* No modo empilhado, não ocultar linhas por colapso de dia/hora */
  #tabela-torneios tbody tr.linha-oculta {
    display: block !important;
  }

  /* Reexibe colunas que foram escondidas por breakpoints anteriores */
  #tabela-torneios tbody td:nth-child(3),
  #tabela-torneios tbody td:nth-child(4),
  #tabela-torneios tbody td:nth-child(5),
  #tabela-torneios tbody td:nth-child(6),
  #tabela-torneios tbody td:nth-child(7),
  #tabela-torneios tbody td:nth-child(8),
  #tabela-torneios tbody td:nth-child(9),
  #tabela-torneios tbody td:nth-child(10),
  #tabela-torneios tbody td:nth-child(11),
  #tabela-torneios tbody td:nth-child(12) {
    display: flex !important;
  }

  /* Oculta colunas auxiliares (checkbox + número do dia) */
  #tabela-torneios tbody td.td-select,
  #tabela-torneios tbody td.td-ordem-dia {
    display: none !important;
  }

  /* Linhas “normais” viram cards */
  #tabela-torneios tbody tr {
    display: block;
    margin: 10px 0;
    border: 1px solid var(--borda);
    border-radius: calc(var(--raio) + 4px);
    background: var(--fundo-tabela);
    box-shadow: var(--sombra-sm);
    overflow: hidden;
  }

  #tabela-torneios tbody tr > td {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border-left: none !important;
    border-bottom: 1px solid rgba(10, 22, 40, 0.08);
    text-align: right;
    white-space: normal;
  }

  #tabela-torneios tbody tr > td:last-child {
    border-bottom: none;
  }

  #tabela-torneios tbody tr > td::before {
    content: attr(data-label);
    flex: 0 0 auto;
    color: var(--texto-tabela-sec);
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    font-size: 0.72rem;
    text-align: left;
  }

  #tabela-torneios tbody tr > td[data-label=""]::before {
    content: "";
    display: none;
  }

  /* Inputs/Selects ocupam a “coluna” de valor */
  #tabela-torneios tbody td input,
  #tabela-torneios tbody td select {
    width: 100%;
    max-width: 16rem;
  }

  /* AÇÕES: alinhar à direita e quebrar */
  #tabela-torneios .td-acoes-inner {
    justify-content: flex-end;
  }

  /* Linhas especiais (dia/hora/resumo) continuam como “faixa” */
  #tabela-torneios tbody tr.dia-header,
  #tabela-torneios tbody tr.hora-header,
  #tabela-torneios tbody tr.dia-resumo {
    margin: 12px 0 6px 0;
    border: none;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
  }

  #tabela-torneios tbody tr.dia-header > td,
  #tabela-torneios tbody tr.hora-header > td,
  #tabela-torneios tbody tr.dia-resumo > td,
  #tabela-torneios tbody tr > td[colspan] {
    display: block !important;
    padding: 8px 0 !important;
    border: none !important;
    text-align: left;
  }

  #tabela-torneios tbody tr.dia-header > td::before,
  #tabela-torneios tbody tr.hora-header > td::before,
  #tabela-torneios tbody tr.dia-resumo > td::before,
  #tabela-torneios tbody tr > td[colspan]::before {
    content: "";
    display: none;
  }
}

#tabela-torneios .input-nome {
  max-width: 100%;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  text-overflow: ellipsis;
  text-align: center;
}

/* Data/Hora: inputs mais compactos para caber melhor */
#tabela-torneios .input-data,
#tabela-torneios .input-hora {
  padding: 6px 8px;
  font-size: 0.9375rem;
}

/* Em navegadores WebKit, esconde o ano para caber melhor (mostra dd/mm) */
@supports (-webkit-touch-callout: none) {
  #tabela-torneios input[type="date"]::-webkit-datetime-edit-year-field { display: none; }
  #tabela-torneios input[type="date"]::-webkit-datetime-edit-text { padding: 0 1px; }
}

/* (removido) breakpoints duplicados que escondiam Hora e forçavam min-width */

#tabela-torneios td:nth-child(5) {
  overflow: hidden;
}

#tabela-torneios td:nth-child(6) select.input-tabela {
  max-width: 100%;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  text-align: center;
  text-align-last: center;
  font-family: inherit;
  font-size: 0.9375rem;
  padding-left: 6px;
  padding-right: 6px;
}

/* Buy-in, rebuys, ITM: números mais legíveis */
#tabela-torneios thead th:nth-child(7),
#tabela-torneios thead th:nth-child(8),
#tabela-torneios thead th:nth-child(10),
#tabela-torneios tbody td:nth-child(7),
#tabela-torneios tbody td:nth-child(8),
#tabela-torneios tbody td:nth-child(10) {
  text-align: center;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  padding-left: 8px;
  padding-right: 8px;
}

#tabela-torneios tbody td:nth-child(7),
#tabela-torneios tbody td:nth-child(8),
#tabela-torneios tbody td:nth-child(10) {
  font-weight: 600;
}

#tabela-torneios tbody td:nth-child(7) .input-num,
#tabela-torneios tbody td:nth-child(8) .input-rebuys,
#tabela-torneios tbody td:nth-child(10) .input-itm {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  text-align: center;
  font-size: 1rem;
  font-weight: 600;
  padding: 5px 6px;
  box-sizing: border-box;
}

#tabela-torneios thead th:nth-child(11) {
  text-align: center;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  padding-left: 6px;
  padding-right: 6px;
  min-width: 4.75rem;
  max-width: 7rem;
  width: 6.25rem;
  white-space: normal;
  line-height: 1.25;
  vertical-align: middle;
}

#tabela-torneios tbody td:nth-child(11) {
  text-align: center;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  font-size: 0.875rem;
  padding-left: 6px;
  padding-right: 6px;
  min-width: 4.75rem;
  max-width: 7rem;
  width: 6.25rem;
  white-space: normal;
  line-height: 1.25;
  vertical-align: middle;
}

/* Posição e entradas no mesmo td — cabe na coluna sem forçar scroll */
#tabela-torneios .td-pos-entrada {
  white-space: nowrap;
  overflow: hidden;
}

#tabela-torneios .cell-pos-entrada {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-width: 0;
  max-width: 100%;
}

#tabela-torneios .cell-pos-entrada .input-posicao {
  flex: 0 1 3.25rem;
  width: 3.25rem;
  min-width: 2.6rem;
  max-width: 3.4rem;
  text-align: center;
}

#tabela-torneios .cell-pos-entrada .input-players {
  flex: 0 1 3.75rem;
  width: 3.75rem;
  min-width: 2.8rem;
  max-width: 4.1rem;
  text-align: center;
}

#tabela-torneios .cell-pos-entrada-sep {
  color: var(--texto-tabela-ter);
  flex-shrink: 0;
  font-size: 0.8125rem;
}

#tabela-torneios tbody td {
  text-align: center;
  vertical-align: middle;
  font-size: 0.9375rem;
}

/* Compactação geral da tabela (mais linhas visíveis) */
#tabela-torneios tbody td,
#tabela-torneios tfoot th {
  padding: 6px 6px;
}

#tabela-torneios td {
  color: var(--texto-tabela);
  border-bottom-color: rgba(10, 22, 40, 0.08);
}

#tabela-torneios td + td {
  border-left-color: rgba(10, 22, 40, 0.07);
}

#tabela-torneios tbody td:nth-child(even) {
  background: transparent;
}

#tabela-torneios tbody tr:not(.linha-dia-verde):not(.linha-dia-ouro):hover {
  background: var(--fundo-tabela-hover);
}

#tabela-torneios tfoot tr {
  background: var(--fundo-tabela-tfoot);
}

#tabela-torneios tfoot th {
  color: var(--texto-tabela);
  text-align: center;
  vertical-align: middle;
}

#tabela-torneios tfoot th#total-investido,
#tabela-torneios tfoot th#total-recebido,
#tabela-torneios tfoot th#total-roi,
#tabela-torneios tfoot th#lucro-total {
  text-align: center;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  font-size: 0.95rem;
  padding-left: 8px;
  padding-right: 8px;
}

#tabela-torneios .dia-header td {
  color: var(--texto-tabela-sec);
  background: var(--fundo-tabela-alt);
  border-bottom-color: rgba(10, 22, 40, 0.1);
  text-align: left !important;
  justify-content: flex-start;
  padding-left: 34px;
}

#tabela-torneios .hora-header td,
#tabela-torneios .hora-header td.hora-header-celula {
  text-align: left;
  color: var(--texto-tabela);
  background: rgba(10, 22, 40, 0.04);
  padding: 5px 10px 5px 30px;
  font-size: 0.8125rem;
  font-weight: 800;
  line-height: 1.35;
  vertical-align: middle;
}

#tabela-torneios tr.hora-header .hora-header-label {
  display: inline-block;
  font-variant-numeric: tabular-nums;
  font-weight: 800;
  color: var(--texto-tabela);
}

#tabela-torneios tr.hora-header td::before {
  left: 11px;
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--texto-tabela);
}

[data-tema="escuro"] #tabela-torneios tr.hora-header > td {
  background: rgba(22, 22, 28, 0.06);
}

#tabela-torneios .dia-resumo td {
  background: rgba(10, 22, 40, 0.06);
  border-top-color: rgba(10, 22, 40, 0.12);
  border-bottom-color: rgba(10, 22, 40, 0.12);
}

#tabela-torneios .dia-resumo .dia-resumo-conteudo,
#tabela-torneios .dia-resumo .dia-resumo-lucro {
  color: var(--texto-tabela);
}

#tabela-torneios .dia-resumo .dia-resumo-itens {
  color: var(--texto-tabela-sec);
}

#tabela-torneios input.input-tabela,
#tabela-torneios input.input-prize,
#tabela-torneios input.input-hora,
#tabela-torneios select.input-tabela {
  background: rgba(255, 255, 255, 0.85);
  color: var(--texto-tabela);
  border-color: rgba(22, 22, 28, 0.14);
}

#tabela-torneios input.input-hora {
  max-width: none;
  width: 100%;
  min-width: 0;
  padding: 3px 6px;
  font-size: 0.875rem;
  font-variant-numeric: tabular-nums;
  text-align: center;
}

#tabela-torneios input.input-data {
  max-width: 100%;
  width: 100%;
  min-width: 0;
  padding: 3px 6px;
  font-size: 0.8125rem;
  font-variant-numeric: tabular-nums;
  text-align: center;
  margin: 0;
}

[data-tema="claro"] #tabela-torneios input.input-tabela,
[data-tema="claro"] #tabela-torneios input.input-prize,
[data-tema="claro"] #tabela-torneios input.input-hora,
[data-tema="claro"] #tabela-torneios input.input-data,
[data-tema="claro"] #tabela-torneios select.input-tabela {
  background: var(--fundo-card);
  color: var(--texto-principal);
  border-color: var(--borda);
}

#tabela-torneios .lucro-positivo { color: #15803d; }
#tabela-torneios .lucro-negativo { color: #b91c1c; }

[data-tema="escuro"] #tabela-torneios .lucro-positivo { color: #16a34a; }
[data-tema="escuro"] #tabela-torneios .lucro-negativo { color: #dc2626; }

#tabela-torneios .linha-nova {
  background: rgba(34, 197, 94, 0.14) !important;
  border-left: 3px solid rgba(34, 197, 94, 0.7);
}
#tabela-torneios .linha-nova td { background: transparent !important; }

th,
td {
  padding: 8px 10px;
  text-align: left;
  border-bottom: 1px solid var(--borda-subtle);
  font-size: 0.9375rem;
}

th {
  text-align: center;
  font-weight: 600;
}

td {
  text-align: center;
  font-variant-numeric: tabular-nums;
}

/* Separadores de coluna + colunas alternadas */
th + th,
td + td {
  border-left: 1px solid var(--borda);
}

tbody td:nth-child(even) {
  background: rgba(148, 163, 184, 0.06);
}

/* Linhas agrupadoras por dia */
.dia-header td {
  text-align: left;
  font-weight: 700;
  font-size: 0.875rem;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--texto-secundario);
  background: var(--fundo-hover);
  border-bottom: 1px solid var(--borda);
  cursor: pointer;
  user-select: none;
  position: relative;
  padding-left: 34px;
}

.dia-header td::before {
  content: "▾";
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 14px;
  color: var(--texto-terciario);
}

.dia-header--colapsado td::before {
  content: "▸";
}

.linha-oculta {
  display: none;
}

/* Em telas menores, evitar “sumir” a tabela por colapso (dia/hora) */
@media (max-width: 1280px) {
  /* A tabela ainda pode estar no layout de tabela (não empilhado).
     Nesse caso, manter as linhas visíveis mesmo se estiverem colapsadas. */
  #tabela-torneios tr.linha-oculta {
    display: table-row !important;
  }
}

.hora-header td {
  text-align: left;
  font-weight: 700;
  font-size: 0.8125rem;
  color: var(--texto-terciario);
  background: rgba(148, 163, 184, 0.10);
  border-bottom: 1px solid var(--borda);
  cursor: pointer;
  user-select: none;
  position: relative;
  padding-left: 34px;
}

.hora-header td::before {
  content: "▾";
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 13px;
  color: var(--texto-terciario);
}

.hora-header--colapsado td::before {
  content: "▸";
}

.input-hora {
  max-width: 110px;
}

.dia-resumo td {
  background: var(--fundo-resumo-dia);
  font-weight: 600;
  border-top: 2px solid var(--borda-resumo-dia);
  border-bottom: 2px solid var(--borda-resumo-dia);
  padding: 10px 14px;
  font-size: 0.9rem;
}

.dia-resumo .dia-resumo-conteudo {
  color: var(--texto-principal);
}

.dia-resumo .dia-resumo-itens {
  color: var(--texto-secundario);
}

.dia-resumo .dia-resumo-lucro {
  font-weight: 700;
}


thead th {
  background: var(--thead-bg);
  color: var(--thead-texto);
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 10px 10px;
  border-bottom: none;
}

tbody tr {
  transition: background 0.1s;
}

tbody tr:hover {
  background: var(--fundo-hover);
}

tbody tr:last-child td {
  border-bottom: none;
}

tfoot tr {
  background: var(--fundo-tfoot);
  border-top: 2px solid var(--borda);
}

tfoot th {
  font-weight: 600;
  color: var(--texto-principal);
  background: transparent;
  padding: 12px 16px;
}

.roi-total {
  text-align: right;
  font-size: 1rem;
  font-weight: 600;
  margin: 0 0 16px 0;
  color: var(--texto-principal);
}

.lucro-positivo {
  color: var(--sucesso);
  font-weight: 600;
}

.lucro-negativo {
  color: var(--erro);
  font-weight: 600;
}

/* Prize opcional + status */
.input-prize {
  width: 110px;
  padding: 8px 10px;
  border-radius: var(--raio-sm);
  border: 1px solid var(--borda);
  background: var(--fundo-card);
  color: var(--texto-principal);
  font-family: inherit;
  font-size: 0.9375rem;
}

.input-tabela {
  width: 100%;
  max-width: 160px;
  padding: 8px 10px;
  border-radius: var(--raio-sm);
  border: 1px solid var(--borda);
  background: var(--fundo-card);
  color: var(--texto-principal);
  font-family: inherit;
  font-size: 0.9375rem;
}

.input-num {
  max-width: 120px;
}

.input-nome {
  max-width: 260px;
}

.input-itm {
  max-width: 120px;
}

.input-rebuys {
  max-width: 90px;
}

.input-posicao {
  max-width: 90px;
}

.input-players {
  max-width: 120px;
}

.btn-acao-secundario {
  background: var(--borda);
  color: var(--texto-secundario);
}

.btn-acao-secundario:hover {
  opacity: 0.9;
}


.input-prize:focus {
  outline: none;
  border-color: var(--destaque);
  box-shadow: 0 0 0 3px var(--destaque-muted);
}

.input-prize:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}

.status-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 0.8125rem;
  font-weight: 600;
  border: 1px solid var(--borda);
}

.status-aberto {
  background: var(--destaque-muted);
  color: var(--texto-principal);
}

.status-finalizado {
  background: rgba(16, 185, 129, 0.15);
  color: var(--texto-principal);
}

.lucro-pendente {
  color: var(--texto-terciario);
}

.acoes-vazio {
  color: var(--texto-terciario);
}

/* ===== Action buttons ===== */
.btn-acao {
  padding: 6px 10px;
  margin: 0 2px;
  border-radius: var(--raio-sm);
  border: none;
  font-size: 0.6875rem;
  font-weight: 600;
  cursor: pointer;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  transition: opacity 0.15s;
}

.btn-acao:hover {
  opacity: 0.9;
}

.btn-sem-premio {
  border-radius: var(--raio-botao-felt);
  padding: 6px 12px;
  background: var(--borda);
  color: var(--texto-secundario);
}

.btn-com-premio {
  background: var(--sucesso);
  color: #fff;
}

.btn-com-premio:hover {
  background: var(--sucesso-hover);
}

.btn-sem-premio:hover {
  background: var(--texto-terciario);
  color: var(--fundo-card);
}

.btn-menu {
  padding: 4px 8px;
  font-size: 1rem;
  line-height: 1;
  min-width: 28px;
}

.btn-clonar {
  padding: 4px 8px;
  font-size: 0.95rem;
  line-height: 1;
  min-width: 28px;
  color: var(--texto-secundario);
  background: var(--fundo-card);
  border: 1px solid var(--borda);
}

.btn-clonar:hover {
  color: var(--destaque);
  border-color: var(--destaque);
  background: var(--fundo-resumo-dia);
}

.btn-add-rapido,
.btn-satelitado-rapido,
.btn-rebuy-inline,
.btn-importante-inline {
  padding: 4px 7px;
  font-size: 0.8rem;
  line-height: 1;
  min-width: 28px;
  color: var(--texto-secundario);
  background: var(--fundo-card);
  border: 1px solid var(--borda);
}

.btn-add-rapido:hover,
.btn-satelitado-rapido:hover,
.btn-rebuy-inline:hover {
  color: var(--destaque);
  border-color: var(--destaque);
  background: var(--fundo-resumo-dia);
}

.btn-importante-inline:hover,
.btn-importante-inline[data-active="1"] {
  color: #b7791f;
  border-color: #d69e2e;
  background: rgba(250, 204, 21, 0.18);
}

.btn-excluir-inline {
  padding: 4px 8px;
  font-size: 0.95rem;
  line-height: 1;
  min-width: 28px;
  color: var(--texto-secundario);
  background: var(--fundo-card);
  border: 1px solid var(--borda);
}

.btn-excluir-inline:hover {
  color: var(--erro, #c53030);
  border-color: var(--erro, #c53030);
  background: var(--fundo-resumo-dia);
}

.td-acoes {
  position: relative;
  white-space: nowrap;
}

#tabela-torneios .td-acoes {
  vertical-align: middle;
  padding-top: 5px;
  padding-bottom: 5px;
  overflow: visible; /* não corta botões (X) */
  white-space: normal; /* permite quebra dentro da célula */
}

#tabela-torneios .td-acoes-inner {
  display: flex;
  flex-wrap: wrap; /* permite aparecer todos os botões sem cortar */
  align-items: center;
  justify-content: center;
  gap: 4px 4px;
  white-space: normal;
}

#tabela-torneios .td-acoes .btn-acao {
  margin: 0;
  flex: 0 0 auto;
}

.linha-importante td {
  background: rgba(250, 204, 21, 0.12);
}

.acoes-menu-popup {
  position: absolute;
  right: 0;
  top: 100%;
  margin-top: 4px;
  min-width: 120px;
  background: var(--fundo-card);
  border: 1px solid var(--borda);
  border-radius: var(--raio-sm);
  box-shadow: var(--sombra);
  z-index: 10;
  display: flex;
  flex-direction: column;
  padding: 4px 0;
}

.acoes-menu-popup:not([hidden]) {
  display: flex;
}

.acoes-menu-popup[hidden] {
  display: none;
}

.acoes-menu-popup button {
  padding: 8px 12px;
  border: none;
  background: none;
  text-align: left;
  cursor: pointer;
  font-size: 0.875rem;
  color: var(--texto-principal);
}

.acoes-menu-popup button:hover {
  background: var(--fundo-hover);
}

.acoes-menu-popup button[data-action="excluir-linha"]:hover {
  color: var(--erro);
}

/* ===== Resumo mensal (estilo planilha) ===== */
.mensal-section {
  margin-top: 28px;
}

.mensal-card {
  background: var(--fundo-card);
  border: 1px solid var(--borda);
  border-radius: var(--raio);
  box-shadow: var(--sombra-sm);
  padding: 20px 24px;
}

.mensal-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}

.mensal-header h2 {
  margin: 0;
  font-size: 1.0625rem;
  font-weight: 700;
}

.mensal-controles {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.mensal-label {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--texto-secundario);
}

.mensal-controles input[type="month"] {
  padding: 8px 10px;
  border-radius: var(--raio-sm);
  border: 1px solid var(--borda);
  background: var(--fundo-card);
  color: var(--texto-principal);
  font-size: 0.9375rem;
}

.mensal-grid {
  border: 1px solid var(--borda);
  border-radius: var(--raio);
  overflow: hidden;
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  background: var(--fundo-card);
  margin-bottom: 16px;
}

.mensal-cell {
  border-right: 1px solid var(--borda);
  border-bottom: 1px solid var(--borda);
  padding: 10px 10px;
  min-height: 66px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.mensal-cell:nth-child(7n) {
  border-right: none;
}

.mensal-weekday {
  background: var(--thead-tabela);
  color: var(--thead-texto);
  font-weight: 800;
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  min-height: auto;
}

.mensal-day {
  font-weight: 800;
  font-size: 0.875rem;
  color: var(--texto-secundario);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
}

.mensal-trofeu-marker {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 999px;
  background: rgba(245, 158, 11, 0.2);
  font-size: 1.125rem;
  line-height: 1;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}

.mensal-trofeu-marker:focus-visible {
  outline: 2px solid var(--destaque, #f59e0b);
  outline-offset: 2px;
}

.mensal-value {
  font-weight: 800;
  font-size: 0.9375rem;
  font-variant-numeric: tabular-nums;
}

.mensal-pos {
  background: rgba(16, 185, 129, 0.14);
}

.mensal-neg {
  background: rgba(239, 68, 68, 0.12);
}

.mensal-zero {
  background: rgba(148, 163, 184, 0.10);
}

.mensal-empty {
  background: var(--fundo-card);
  opacity: 0.65;
}

/* Tema escuro: calendário coerente com o fundo escuro */
[data-tema="escuro"] .mensal-grid {
  background: var(--fundo-card);
  border-color: var(--borda);
}

[data-tema="escuro"] .mensal-grid .mensal-cell {
  border-color: var(--borda);
}

[data-tema="escuro"] .mensal-grid .mensal-weekday {
  background: var(--thead-tabela);
  color: var(--thead-texto);
}

[data-tema="escuro"] .mensal-grid .mensal-day {
  color: var(--texto-terciario);
}

[data-tema="escuro"] .mensal-trofeu-marker {
  background: rgba(245, 158, 11, 0.35);
}

[data-tema="escuro"] .mensal-grid .mensal-value {
  color: var(--texto-principal);
}

[data-tema="escuro"] .mensal-grid .mensal-pos {
  background: rgba(16, 185, 129, 0.15);
}

[data-tema="escuro"] .mensal-grid .mensal-pos .mensal-value {
  color: #34D399;
}

[data-tema="escuro"] .mensal-grid .mensal-neg {
  background: rgba(239, 68, 68, 0.14);
}

[data-tema="escuro"] .mensal-grid .mensal-neg .mensal-value {
  color: #f87171;
}

[data-tema="escuro"] .mensal-grid .mensal-zero {
  background: rgba(148, 163, 184, 0.08);
}

[data-tema="escuro"] .mensal-grid .mensal-zero .mensal-value {
  color: var(--texto-terciario);
}

[data-tema="escuro"] .mensal-grid .mensal-empty {
  background: var(--fundo-elevado);
  opacity: 0.6;
}

[data-tema="escuro"] .mensal-grid .mensal-cell.mensal-empty .mensal-day,
[data-tema="escuro"] .mensal-grid .mensal-cell.mensal-empty .mensal-value {
  color: var(--texto-terciario);
}

.mensal-metrics {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 18px;
}

.mensal-detalhes h3 {
  margin: 0 0 10px 0;
  font-size: 0.98rem;
  font-weight: 800;
  color: var(--texto-principal);
}

.mensal-detalhes-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px 12px;
  margin-bottom: 10px;
}

.mensal-chart-card {
  background: var(--fundo-resumo-dia);
  border: 1px solid var(--borda-resumo-dia);
  border-radius: var(--raio);
  padding: 10px 12px;
}

/* Em "Detalhes do mês", reduzir o espaçamento entre a linha principal e a seguinte */
.mensal-detalhes .mensal-metrics {
  margin-bottom: 8px;
}

.mensal-chart-card h3 {
  margin: 0 0 8px 0;
  font-size: 0.9rem;
}

.mensal-chart-card canvas {
  width: 100% !important;
  height: 220px !important;
}

.metric {
  background: var(--fundo-hover);
  border: 1px solid var(--borda);
  border-radius: var(--raio-sm);
  padding: 10px 12px;
}

.metric-label {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--texto-secundario);
  margin-bottom: 6px;
  display: block;
}

.metric-value {
  font-size: 1rem;
  font-weight: 800;
  color: var(--texto-principal);
  font-variant-numeric: tabular-nums;
}

.metric input {
  width: 100%;
  padding: 9px 10px;
  border-radius: var(--raio-sm);
  border: 1px solid var(--borda);
  background: var(--fundo-card);
  color: var(--texto-principal);
  font-size: 0.9375rem;
  font-family: inherit;
}

.metric input:focus {
  outline: none;
  border-color: var(--destaque);
  box-shadow: 0 0 0 3px var(--destaque-muted);
}

.mensal-bankroll-sites h3 {
  margin: 0 0 10px 0;
  font-size: 0.9375rem;
  font-weight: 800;
  color: var(--texto-principal);
}

.sites-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 12px;
}

.site-item {
  background: var(--fundo-hover);
  border: 1px solid var(--borda);
  border-radius: var(--raio-sm);
  padding: 10px 12px;
}

.site-item label {
  display: block;
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--texto-secundario);
  margin-bottom: 6px;
}

.site-item input {
  width: 100%;
  padding: 9px 10px;
  border-radius: var(--raio-sm);
  border: 1px solid var(--borda);
  background: var(--fundo-card);
  color: var(--texto-principal);
  font-size: 0.9375rem;
  font-family: inherit;
}

.site-item input:focus {
  outline: none;
  border-color: var(--destaque);
  box-shadow: 0 0 0 3px var(--destaque-muted);
}

.site-total {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

@media (max-width: 1100px) {
  .mensal-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .mensal-detalhes-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .sites-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ===================================================
   Blue Steel — New Components
   =================================================== */

/* ===== KPI Cards grid ===== */
.kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 20px;
}

@media (max-width: 900px) {
  .kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  .kpi-grid { grid-template-columns: 1fr; }
}

.kpi-card {
  background: var(--fundo-card);
  border: 1px solid var(--borda);
  border-radius: var(--raio);
  padding: 14px 16px;
  position: relative;
  overflow: hidden;
  box-shadow: var(--sombra-sm);
  transition: box-shadow 0.15s;
}

.kpi-card:hover {
  box-shadow: var(--sombra-md);
}

.kpi-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--kpi-color, var(--destaque));
  border-radius: var(--raio) var(--raio) 0 0;
}

.kpi-card--green  { --kpi-color: #16a34a; }
.kpi-card--blue   { --kpi-color: #64748b; }
.kpi-card--blue2  { --kpi-color: #94a3b8; }
.kpi-card--red    { --kpi-color: #f87171; }

.kpi-card-label {
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--texto-terciario);
  margin-bottom: 6px;
}

.kpi-card-valor {
  font-size: 1.625rem;
  font-weight: 700;
  line-height: 1;
  color: var(--texto-principal);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
}

.kpi-card-valor--green { color: #16a34a; }
.kpi-card-valor--blue  { color: var(--destaque); }

.kpi-card-sub {
  font-size: 0.75rem;
  color: var(--texto-terciario);
  margin-top: 5px;
}

/* ===== Session active badge ===== */
.sessao-ativa-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 999px;
  background: var(--fundo-card);
  border: 1px solid var(--borda);
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--texto-secundario);
}

.sessao-ativa-badge::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #16a34a;
  flex-shrink: 0;
  box-shadow: 0 0 0 2px rgba(22, 163, 74, 0.28);
}

.sessao-ativa-badge.inativo::before {
  background: var(--texto-terciario);
  box-shadow: none;
}

/* ===== Sidebar user footer ===== */
.sidebar-user {
  padding: 10px 0 0 0;
  border-bottom: 1px solid var(--sidebar-borda);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
}

.sidebar-user-row {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 0 20px 12px;
}

.sidebar-user-perfil.sidebar-link {
  display: flex;
  align-items: center;
  padding: 10px 20px;
  margin: 0;
  width: 100%;
  box-sizing: border-box;
  font-size: 0.9375rem;
  font-weight: 600;
  border-top: 1px solid var(--sidebar-borda);
  border-left: 2px solid transparent;
  border-radius: 0;
}

.sidebar-user-perfil-inner {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.sidebar-user-perfil-icone {
  flex-shrink: 0;
  opacity: 0.9;
  color: var(--sidebar-destaque);
}

.sidebar-user-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--sidebar-hover-bg);
  border: 1px solid var(--sidebar-hover-border);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--sidebar-destaque);
  font-size: 0.75rem;
  font-weight: 700;
  flex-shrink: 0;
  text-transform: uppercase;
  overflow: hidden;
}

.sidebar-user-avatar.perfil-avatar--com-foto {
  padding: 0;
  line-height: 0;
}

.perfil-avatar-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.sidebar-user-info {
  flex: 1;
  min-width: 0;
}

.sidebar-user-nome {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--sidebar-texto-hover);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.sidebar-user-sair {
  font-size: 0.8125rem;
  color: var(--sidebar-texto);
  text-decoration: none;
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
}

.sidebar-user-sair:hover {
  color: var(--erro);
}

/* ===== Header actions row ===== */
.header-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.btn-header-primary {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 18px;
  background: var(--destaque);
  color: var(--texto-botao-primario);
  border: none;
  border-radius: var(--raio-botao-felt);
  font-size: 0.8125rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
  white-space: nowrap;
}

.btn-header-primary:hover {
  background: var(--destaque-hover);
}

/* ===== Quick-add bar (compact inline version) ===== */
.form-rapido-bar {
  background: var(--fundo-card);
  border: 1px solid var(--borda);
  border-radius: var(--raio);
  padding: 12px 16px;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  box-shadow: var(--sombra-sm);
  margin-bottom: 16px;
}

.form-rapido-bar-label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--texto-terciario);
  white-space: nowrap;
}

/* ===== ROI badge inline in table ===== */
.roi-badge {
  display: inline-block;
  padding: 2px 7px;
  border-radius: 4px;
  font-size: 0.75rem;
  font-weight: 700;
}

.roi-badge--pos {
  background: rgba(22, 163, 74, 0.12);
  color: #15803d;
}

.roi-badge--neg {
  background: rgba(220, 38, 38, 0.1);
  color: #b91c1c;
}

[data-tema="escuro"] .roi-badge--pos { background: rgba(34, 197, 94, 0.18); color: #22c55e; }
[data-tema="escuro"] .roi-badge--neg { background: rgba(248, 113, 113, 0.15); color: #f87171; }

/* ===== Table row accent bar ===== */
.linha-lucro-pos td:first-child { border-left: 3px solid #16a34a !important; }
.linha-lucro-neg td:first-child { border-left: 3px solid #dc2626 !important; }

/* ===== Multi-select bulk bar ===== */
/* display:flex sobrescrevia [hidden] (mesma especificidade, CSS autor ganha). */
.bulk-bar {
  display: none;
}
.bulk-bar:not([hidden]) {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  margin-bottom: 8px;
  background: var(--destaque-muted);
  border: 1px solid var(--destaque);
  border-radius: var(--raio-sm);
  flex-wrap: wrap;
}

.bulk-count {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--destaque);
  flex: 1;
}

.btn-bulk-delete {
  padding: 5px 14px;
  border-radius: var(--raio-sm);
  border: none;
  background: var(--erro);
  color: #fff;
  font-size: 0.8125rem;
  font-weight: 600;
  cursor: pointer;
  transition: opacity .15s;
}

.btn-bulk-delete:hover { opacity: .85; }

.btn-bulk-cancel {
  padding: 5px 14px;
  border-radius: var(--raio-sm);
  border: 1px solid var(--borda);
  background: var(--fundo-card);
  color: var(--texto-secundario);
  font-size: 0.8125rem;
  font-weight: 600;
  cursor: pointer;
}

.btn-bulk-cancel:hover { background: var(--fundo-hover); }

/* Checkbox column */
.th-select-all {
  width: 32px;
  text-align: center;
  padding: 8px 6px;
}

.td-select {
  width: 32px;
  text-align: center;
  padding: 6px;
}

/* Selected row highlight */
.linha-selecionada td {
  background: var(--destaque-muted) !important;
}

/* ===== Moderação (comunidade) / denúncias ===== */
.moderacao-section .moderacao-card {
  max-width: 960px;
  margin: 0 auto;
  padding: 1rem 0 2rem;
}
.moderacao-intro {
  color: var(--texto-secundario);
  font-size: 0.9375rem;
  line-height: 1.5;
  margin-bottom: 1.25rem;
}
.moderacao-intro code {
  font-size: 0.85em;
  padding: 0.1em 0.35em;
  border-radius: 4px;
  background: var(--fundo-elevado);
}
.moderacao-grid {
  display: grid;
  gap: 1.25rem;
  margin-bottom: 1.5rem;
}
@media (min-width: 768px) {
  .moderacao-grid {
    grid-template-columns: 1fr 1.2fr;
  }
}
.moderacao-bloco {
  background: var(--fundo-card);
  border: 1px solid var(--borda-subtle);
  border-radius: var(--raio);
  padding: 1rem 1.1rem;
  box-shadow: var(--sombra-sm);
}
.moderacao-bloco--full {
  margin-bottom: 1.25rem;
}
.moderacao-bloco h3 {
  margin: 0 0 0.5rem;
  font-size: 1rem;
}
.moderacao-hint {
  font-size: 0.8125rem;
  color: var(--texto-terciario);
  margin: 0 0 0.75rem;
}
.moderacao-select-wrap {
  display: block;
  margin-bottom: 0.75rem;
}
.moderacao-select {
  width: 100%;
  max-width: 280px;
  padding: 0.5rem 0.65rem;
  border-radius: var(--raio-sm);
  border: 1px solid var(--borda);
  background: var(--fundo-pagina);
  color: var(--texto-principal);
}
.moderacao-add-linha {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}
.moderacao-add-linha input {
  flex: 1;
  min-width: 140px;
  padding: 0.5rem 0.65rem;
  border-radius: var(--raio-sm);
  border: 1px solid var(--borda);
  background: var(--fundo-pagina);
  color: var(--texto-principal);
}
.moderacao-lista-palavras {
  list-style: none;
  margin: 0;
  padding: 0;
  max-height: 220px;
  overflow: auto;
  font-size: 0.875rem;
}
.moderacao-lista-palavras li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 6px 8px;
  border-bottom: 1px solid var(--borda-subtle);
}
.moderacao-lista-palavras li.inactive {
  opacity: 0.45;
}
.moderacao-filtros {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 0.75rem;
}
.moderacao-tabela-wrap {
  overflow-x: auto;
  font-size: 0.8125rem;
}
.moderacao-tabela {
  width: 100%;
  border-collapse: collapse;
}
.moderacao-tabela th,
.moderacao-tabela td {
  border: 1px solid var(--borda-subtle);
  padding: 8px 10px;
  text-align: left;
  vertical-align: top;
}
.moderacao-tabela th {
  background: var(--fundo-elevado);
  font-weight: 600;
}
.moderacao-logs {
  margin-top: 0.75rem;
  max-height: 360px;
  overflow: auto;
}
