/* ============================================
     VARIÁVEIS CSS - Identidade Visual do Sistema
     Técnica relacionada: WCAG 2.x 1.4.3 Contrast (Minimum) (Sufficient).
     Texto normal: ≥4.5:1 sobre o fundo; texto grande: ≥3:1.
     ============================================ */
  :root {
    /* Transições e Animações */
    --card-hover-transform: translateY(-2px);
    --card-hover-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    --transition-smooth: all 0.2s ease;
    
    /* Dimensões */
    --card-border-radius: 0.5rem;
    --card-icon-size: 1.75rem;
    --card-icon-container-height: 75px;
    
    /* Cores Primárias — texto/ícone ≥4,5:1 e ≥3:1 (WCAG 1.4.3 / 1.4.11) */
    --color-primary: #2d7ba0;
    --color-primary-ink: #135F76;
    --color-primary-light: rgba(45, 123, 160, 0.08);
    --color-primary-hover: rgba(45, 123, 160, 0.12);
    
    /* Cores por Seção (verde/cinza originais falhavam em badge e ícone) */
    --color-institucional: #2d7ba0;
    --color-institucional-light: rgba(45, 123, 160, 0.08);
    --color-legislativo: #146c43;
    --color-legislativo-light: rgba(20, 108, 67, 0.10);
    --color-relatorio: #495057;
    --color-relatorio-light: rgba(73, 80, 87, 0.10);
    /* Fundos de badge: sempre escuros o bastante para texto branco (≥4,5:1) */
    --color-primary-fill: #2d7ba0;
    --color-legislativo-fill: #146c43;
    --color-relatorio-fill: #495057;
    /* Sustentável (claro): #1b5e20 ≈ 7,1:1 no branco */
    --color-sustentavel: #1b5e20;
    --color-sustentavel-light: rgba(27, 94, 32, 0.08);
    
    /* Modo Claro (padrão) */
    --bg-primary: #ffffff;
    --bg-secondary: #fafbfc;
    --bg-tertiary: #f8f9fa;
    --bg-quaternary: #f1f3f5;
    --text-primary: #2c3e50;
    --text-secondary: #5a6c7d;
    --text-tertiary: #6c757d;
    --border-color: rgba(0, 0, 0, 0.08);
    --border-color-light: rgba(0, 0, 0, 0.06);
    --border-color-hover: rgba(0, 0, 0, 0.1);
    --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 2px rgba(0, 0, 0, 0.03);
    --shadow-md: 0 4px 14px rgba(0, 0, 0, 0.1), 0 2px 6px rgba(0, 0, 0, 0.06);
    --overlay-light: rgba(255, 255, 255, 0.5);
    --gradient-icon-start: #f8f9fa;
    --gradient-icon-end: #f1f3f5;
    --gradient-body-start: #ffffff;
    --gradient-body-end: #fafbfc;
    --gradient-footer-start: #f8f9fa;
    --gradient-footer-end: #fafbfc;
  }

  /* Modo Escuro - Compatível com Bootstrap 5 data-bs-theme */
  [data-bs-theme="dark"],
  body[data-bs-theme="dark"],
  html[data-bs-theme="dark"] {
    --bg-primary: #1a1d29;
    --bg-secondary: #212530;
    --bg-tertiary: #252936;
    --bg-quaternary: #2a2e3d;
    --text-primary: #e8eaed;
    --text-secondary: #bdc1c6;
    --text-tertiary: #9aa0a6;
    --border-color: rgba(255, 255, 255, 0.1);
    --border-color-light: rgba(255, 255, 255, 0.08);
    --border-color-hover: rgba(255, 255, 255, 0.15);
    --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.3), 0 1px 2px rgba(0, 0, 0, 0.2);
    --shadow-md: 0 4px 14px rgba(0, 0, 0, 0.4), 0 2px 6px rgba(0, 0, 0, 0.3);
    --overlay-light: rgba(255, 255, 255, 0.05);
    --gradient-icon-start: #252936;
    --gradient-icon-end: #2a2e3d;
    --gradient-body-start: #1a1d29;
    --gradient-body-end: #212530;
    --gradient-footer-start: #252936;
    --gradient-footer-end: #212530;
    
    /* Tokens claros o suficiente sobre --bg-primary #1a1d29 */
    --color-primary: #6aafcc;
    --color-primary-ink: #8ec4db;
    --color-institucional: #6aafcc;
    --color-legislativo: #5dcaa0;
    --color-relatorio: #c5ccd3;
    /* #1b5e20 no dark ≈ 2,1:1 (WAVE); verde claro AA sobre #1a1d29 */
    --color-sustentavel: #6bcf8e;
    --color-sustentavel-light: rgba(107, 207, 142, 0.16);
    --color-primary-light: rgba(106, 175, 204, 0.16);
    --color-primary-hover: rgba(106, 175, 204, 0.22);
    --color-institucional-light: rgba(106, 175, 204, 0.16);
    --color-legislativo-light: rgba(93, 202, 160, 0.16);
    --color-relatorio-light: rgba(197, 204, 211, 0.14);
  }

  /* ============================================
     CARDS - Estilo Discreto e Profissional
     ============================================ */
  .card-modern {
    border-radius: var(--card-border-radius);
    border: 1px solid var(--border-color);
    overflow: hidden;
    background: var(--bg-primary);
    display: flex;
    flex-direction: column;
    height: 100%;
    box-shadow: var(--shadow-sm);
    position: relative;
    animation: none;
    transform: none;
  }

  .card-modern a.sagl-home-card-link {
    text-decoration: none;
    color: inherit;
  }

  .card-modern a.sagl-home-card-link:hover {
    text-decoration: none;
  }

  .card-modern:hover {
    transform: none;
    box-shadow: var(--shadow-sm);
    border-color: var(--border-color);
    background-color: var(--bg-primary);
  }

  .card-modern:focus-within {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
  }

  /* Container de Ícone - Discreto e Refinado */
  .card-icon-container {
    height: var(--card-icon-container-height);
    min-height: var(--card-icon-container-height);
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--gradient-icon-start) 0%, var(--gradient-icon-end) 100%);
    margin: 0;
    transition: none;
    border-bottom: 1px solid var(--border-color-light);
    position: relative;
  }

  .card-icon {
    font-size: var(--card-icon-size);
    color: var(--color-primary);
    opacity: 0.8;
    filter: none;
    transform: none;
  }

  .card-modern:hover .card-icon {
    color: var(--color-primary);
    opacity: 0.8;
    transform: none;
    filter: none;
  }

  /* Corpo do Card */
  .card-body-modern {
    padding: 1.375rem 1.5rem;
    flex: 1;
    display: flex;
    flex-direction: column;
    background: linear-gradient(to bottom, var(--gradient-body-start) 0%, var(--gradient-body-end) 100%);
  }

  .card-modern:hover .card-body-modern {
    background: var(--bg-primary);
  }

  .card-title-modern {
    font-size: 1rem;
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: 0.75rem;
    line-height: 1.35;
    letter-spacing: -0.015em;
    transition: color 0.15s ease;
  }

  .card-modern a.sagl-home-card-link:hover .card-title-modern,
  .card-modern a.sagl-home-card-link:focus-visible .card-title-modern {
    color: var(--color-primary-ink);
  }

  .card-text-modern {
    color: var(--text-secondary);
    font-size: 0.9rem;
    line-height: 1.65;
    flex: 1;
    margin-bottom: 1rem;
    text-align: left;
    font-weight: 400;
    letter-spacing: 0.01em;
  }

  /* Footer do Card - Discreto e Refinado */
  .card-footer-access {
    margin-top: auto;
    padding: 1.125rem 1.5rem;
    border-top: 1px solid var(--border-color-light);
    background: linear-gradient(to bottom, var(--gradient-footer-start) 0%, var(--gradient-footer-end) 100%);
    display: flex;
    align-items: center;
    justify-content: flex-start;
    min-height: 54px;
  }

  .card-modern:hover .card-footer-access {
    background: linear-gradient(to bottom, var(--bg-quaternary) 0%, var(--bg-tertiary) 100%);
    border-top-color: var(--border-color);
  }

  .badge-access {
    padding: 0.4em 0.75em;
    font-weight: 500;
    font-size: 0.8125rem;
    border-radius: 0.4rem;
    display: inline-flex;
    align-items: center;
    gap: 0.4em;
    letter-spacing: 0.015em;
    box-shadow: none;
    color: #ffffff !important;
    background-color: var(--color-primary-fill) !important;
  }

  .card-modern:hover .badge-access {
    background-color: var(--color-primary-fill) !important;
    color: #ffffff;
    box-shadow: none;
    transform: none;
  }

  .badge-access .fa-chevron-right {
    font-size: 0.7em;
  }

  .card-modern:hover .badge-access .fa-chevron-right {
    transform: none;
  }

  /* ============================================
     CATEGORIAS DE CARDS - Cores Diferenciadas
     ============================================ */
  /* Institucional */
  .card-category-institucional .card-icon {
    color: var(--color-institucional);
  }

  .card-category-institucional:hover {
    border-color: var(--border-color);
  }

  .card-category-institucional:hover .badge-access {
    background-color: var(--color-primary-fill) !important;
  }

  /* Legislativo */
  .card-category-legislativo .card-icon {
    color: var(--color-legislativo);
  }

  .card-category-legislativo:hover {
    border-color: var(--border-color);
  }

  .card-category-legislativo:hover .badge-access {
    background-color: var(--color-legislativo-fill) !important;
  }

  /* Relatório */
  .card-category-relatorio .card-icon {
    color: var(--color-relatorio);
  }

  .card-category-relatorio:hover {
    border-color: var(--border-color);
  }

  .card-category-relatorio:hover .badge-access {
    background-color: var(--color-relatorio-fill) !important;
  }

  /* ============================================
     COMPONENTES AUXILIARES
     ============================================ */
  .toast {
    border-radius: var(--card-border-radius);
    border: none;
  }

  .list-group-item {
    padding: 1rem 1.25rem;
    border-left: none;
    border-right: none;
  }

  .list-group-item-action:hover {
    background-color: var(--bg-tertiary);
  }

  /* Lista de alertas: cresce com o conteúdo (sem rolagem interna de 300px).
     Defesa contra CSS de outras telas vazado no <head> via HTMX. */
  #notificacoes-list-group {
    max-height: none;
    overflow: visible;
  }

  /* Títulos de grupo nas notificações (não clicáveis) */
  .notificacoes-grupo-titulo {
    background: var(--bg-tertiary) !important;
    cursor: default;
    font-size: 0.8125rem;
    letter-spacing: 0.04em;
  }
  .notificacoes-grupo-titulo:hover {
    background: var(--bg-tertiary) !important;
  }
  .notificacoes-grupo-titulo .h6 {
    font-weight: 600;
  }

  .btn-outline-primary {
    transition: var(--transition-smooth);
    padding: 0.5rem 1rem;
  }

  .notification-icon {
    font-size: 1.5rem;
    width: 40px;
    text-align: center;
  }

  .alert-dismissible .btn-close {
    padding: 1rem;
  }

  /* ============================================
     SEÇÕES - Headers e Divisores
     ============================================ */
  .section-header {
    display: flex;
    align-items: center;
    margin-bottom: 1.75rem;
    padding-bottom: 0.875rem;
    border-bottom: 1px solid var(--border-color);
    position: relative;
  }

  .section-header::after {
    content: '';
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 60px;
    height: 2.5px;
    background: var(--color-primary);
    opacity: 0.5;
    border-radius: 0 2px 2px 0;
    transition: width 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  }

  .section-header:hover::after {
    width: 100px;
    opacity: 0.7;
  }

  .section-header h2 {
    font-size: 1.25rem;
    font-weight: 500;
    margin: 0;
    color: var(--text-primary);
    letter-spacing: -0.015em;
    transition: color 0.2s ease;
  }
  .section-institucional .section-header h2,
  .section-institucional .section-header h2.text-primary {
    color: var(--color-primary-ink) !important;
  }
  .section-legislativo .section-header h2 {
    color: var(--color-legislativo) !important;
  }
  .section-relatorio .section-header h2 {
    color: var(--color-relatorio) !important;
  }

  .section-header:hover h2 {
    color: var(--text-primary);
    opacity: 0.9;
  }

  /* Cores diferenciadas por seção */
  .section-institucional .section-header::after {
    background: var(--color-institucional);
  }

  .section-legislativo .section-header::after {
    background: var(--color-legislativo);
  }

  .section-relatorio .section-header::after {
    background: var(--color-relatorio);
  }

  /* Home pública no desktop: chips/cards já cobrem os atalhos.
     Home autenticada: Sessões / Matérias / Legislação / Documentos permanecem na linha de breadcrumbs. */
  @media (min-width: 992px) {
    #main-content[data-sagl-session=""] #sagl-breadcrumb-row {
      display: none !important;
    }
  }

  /* Hero da prévia — dashboard cívico */
  .sagl-home-hero {
    border: 1px solid var(--border-color);
    border-radius: var(--sagl-foto-parlamentar-radius, 20px);
    background:
      linear-gradient(135deg, var(--color-primary-light) 0%, var(--bg-secondary) 42%, var(--bg-primary) 100%);
    padding: 1.65rem 1.6rem 1.4rem;
  }

  .sagl-home-hero-kicker {
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-primary-ink);
    margin: 0;
  }

  .sagl-home-hero-title {
    font-size: clamp(1.35rem, 2.2vw, 1.7rem);
    font-weight: 700;
    color: var(--text-primary);
    letter-spacing: -0.025em;
    line-height: 1.25;
    margin: 0.2rem 0 0.45rem;
  }

  .sagl-home-hero-lead {
    color: var(--text-secondary);
    margin: 0;
    line-height: 1.5;
    max-width: 40rem;
  }

  .sagl-home-hero-search-box {
    position: relative;
    display: flex;
    align-items: stretch;
    gap: 0;
    width: 100%;
    max-width: 56rem;
    border: 1px solid var(--border-color);
    border-radius: 0.65rem;
    overflow: hidden;
    background: var(--bg-primary);
    box-shadow: var(--shadow-sm);
  }

  /* Ícone absoluto: evita desalinho óptico do FA com padding/line-height do .form-control (claro/escuro). */
  .sagl-home-hero-search-icon {
    position: absolute;
    left: 0.9rem;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    line-height: 1;
    color: var(--text-tertiary);
    background: transparent;
    pointer-events: none;
  }

  .sagl-home-hero-search-icon .fas {
    display: block;
    line-height: 1;
  }

  .sagl-home-hero-search-box .form-control {
    border: 0;
    box-shadow: none;
    min-height: 3rem;
    border-radius: 0;
    padding-left: 2.65rem;
  }

  .sagl-home-hero-search-box .form-control:focus {
    box-shadow: none;
  }

  .sagl-home-hero-search-box .form-control::placeholder {
    color: var(--text-secondary);
    opacity: 1;
  }

  .sagl-home-kbd {
    display: inline-block;
    padding: 0.05rem 0.35rem;
    border: 1px solid var(--border-color);
    border-radius: 0.25rem;
    background: var(--bg-tertiary);
    color: var(--text-secondary);
    font-size: 0.8125rem; /* root 13px → ≥10.5px; evita WAVE “Very small text” */
    font-family: inherit;
    line-height: 1.3;
  }

  .sagl-home-hero-search-hint {
    font-size: 0.8125rem;
    color: var(--text-secondary);
    margin: 0.45rem 0 0;
    max-width: 56rem;
  }

  .sagl-home-hero-search-box .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0;
    min-height: 3rem;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
    font-weight: 600;
    white-space: nowrap;
  }

  .sagl-home-hero-search-box:focus-within {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px var(--color-primary-light);
  }

  .sagl-home-hero-ctas {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
  }

  .sagl-home-hero-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    min-height: 2.15rem;
    padding: 0.35rem 0.85rem;
    border-radius: 999px;
    border: 1px solid var(--color-primary);
    background: var(--bg-primary);
    color: var(--color-primary-ink);
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
  }

  .sagl-home-hero-chip i {
    font-size: 0.85em;
    opacity: 0.9;
  }

  .sagl-home-hero-chip:hover,
  .sagl-home-hero-chip:focus-visible {
    background: var(--color-primary-light);
    border-color: var(--color-primary-ink);
    color: var(--color-primary-ink);
    text-decoration: none;
  }

  .sagl-home-hero-chip-muted {
    border-color: var(--border-color);
    color: var(--text-secondary);
  }

  .sagl-home-hero-chip-muted:hover,
  .sagl-home-hero-chip-muted:focus-visible {
    color: var(--text-primary);
    border-color: var(--border-color-hover);
    background: var(--bg-tertiary);
  }

  .sagl-home-hero .btn:focus-visible,
  .sagl-home-hero-chip:focus-visible,
  .sagl-home-viva-card a:focus-visible,
  .sagl-home-viva-card-title-link:focus-visible,
  .sagl-home-viva-list a:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
  }

  .sagl-home-ao-vivo {
    border-radius: var(--sagl-foto-parlamentar-radius, 20px);
    background: #9b1c1c;
    color: #fff;
    padding: 0.75rem 1rem;
  }

  .sagl-home-ao-vivo-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 0.85rem;
  }

  .sagl-home-ao-vivo-copy {
    flex: 1 1 12rem;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
  }

  .sagl-home-ao-vivo strong {
    font-weight: 700;
    letter-spacing: 0.01em;
    font-size: 0.92rem;
  }

  .sagl-home-ao-vivo-title {
    font-size: 0.875rem;
    line-height: 1.35;
    opacity: 0.95;
  }

  .sagl-home-ao-vivo-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-left: auto;
  }

  .sagl-home-ao-vivo .btn-light {
    color: #9b1c1c;
    font-weight: 600;
  }

  .sagl-home-ao-vivo .btn-outline-light:hover {
    color: #9b1c1c;
  }

  @media (max-width: 575.98px) {
    .sagl-home-ao-vivo-actions {
      width: 100%;
      margin-left: 0;
    }

    .sagl-home-ao-vivo-actions .btn {
      flex: 1 1 auto;
      min-height: 2.35rem;
    }
  }

  .sagl-home-ao-vivo-dot {
    width: 0.7rem;
    height: 0.7rem;
    border-radius: 50%;
    background: #fff;
    flex: 0 0 auto;
    box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.7);
    animation: sagl-home-live-pulse 1.6s ease-out infinite;
  }

  @keyframes sagl-home-live-pulse {
    0% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.55); }
    70% { box-shadow: 0 0 0 0.45rem rgba(255, 255, 255, 0); }
    100% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0); }
  }

  @keyframes sagl-home-skel {
    0% { background-position: 100% 0; }
    100% { background-position: -100% 0; }
  }

  @keyframes sagl-home-card-in {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: none; }
  }

  @media (prefers-reduced-motion: reduce) {
    .sagl-home-ao-vivo-dot,
    .sagl-home-viva-skel,
    .sagl-home-viva-card.is-ready {
      animation: none !important;
    }
  }

  @media (max-width: 575.98px) {
    .sagl-home-hero {
      padding: 1.2rem 1rem 1.1rem;
    }

    .sagl-home-hero-search-box {
      flex-wrap: wrap;
      max-width: none;
    }

    .sagl-home-hero-search-icon {
      display: none;
    }

    .sagl-home-hero-search-box .form-control {
      flex: 1 1 100%;
      min-height: 2.75rem;
      padding-left: 0.75rem;
    }

    .sagl-home-hero-search-box .btn {
      flex: 1 1 100%;
      min-height: 2.5rem;
    }
  }

  /* Home viva — painel cívico */
  .section-home-viva .section-header h2 {
    color: var(--text-primary) !important;
  }

  .section-home-viva .section-header::after {
    background: var(--color-primary);
  }

  .section-home-viva .section-header {
    align-items: flex-start;
    gap: 0.75rem;
  }

  .sagl-home-viva-sub {
    margin-top: 0.2rem;
    font-size: 0.8125rem;
    color: var(--text-secondary);
  }

  .sagl-home-viva-preview-badge {
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--text-tertiary);
    border: 1px solid var(--border-color);
    border-radius: 999px;
    padding: 0.2rem 0.6rem;
    line-height: 1.2;
    margin-top: 0.2rem;
  }

  /* Atalhos secundários — substitui a grade de cards na prévia */
  .sagl-home-more {
    padding-top: 0.15rem;
  }

  .sagl-home-more-label {
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-primary);
    margin: 0;
    line-height: 1.3;
  }

  .sagl-home-more-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 0.35rem;
  }

  .sagl-home-more-links a {
    display: inline-flex;
    align-items: center;
    min-height: 2.15rem;
    padding: 0.25rem 0.75rem;
    border-radius: 999px;
    border: 1px solid var(--border-color);
    background: var(--bg-primary);
    color: var(--text-primary);
    font-size: 0.875rem;
    font-weight: 500;
    text-decoration: none;
    line-height: 1.2;
  }

  .sagl-home-more-links a:hover,
  .sagl-home-more-links a:focus-visible {
    color: var(--color-primary-ink);
    border-color: var(--color-primary);
    background: var(--color-primary-light);
    text-decoration: none;
  }

  .sagl-home-more-links a:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
  }

  .sagl-home-viva-skel {
    height: 15.5rem;
    border-radius: var(--sagl-foto-parlamentar-radius, 20px);
    border: 1px solid var(--border-color-light);
    background: linear-gradient(
      90deg,
      var(--bg-tertiary) 0%,
      var(--bg-secondary) 45%,
      var(--bg-tertiary) 100%
    );
    background-size: 200% 100%;
    animation: sagl-home-skel 1.2s linear infinite;
  }

  .sagl-home-viva-card {
    border-radius: var(--sagl-foto-parlamentar-radius, 20px);
    border: 1px solid var(--border-color);
    background: var(--bg-primary);
    box-shadow: var(--shadow-sm);
    padding: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }

  .sagl-home-viva-card.is-ready {
    animation: sagl-home-card-in 0.28s ease-out both;
  }

  #sagl-home-viva-body > [class*="col-"]:nth-child(1) .sagl-home-viva-card.is-ready { animation-delay: 0.02s; }
  #sagl-home-viva-body > [class*="col-"]:nth-child(2) .sagl-home-viva-card.is-ready { animation-delay: 0.07s; }
  #sagl-home-viva-body > [class*="col-"]:nth-child(3) .sagl-home-viva-card.is-ready { animation-delay: 0.12s; }

  .sagl-home-viva-card-head {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.7rem 0.95rem;
    border-bottom: 1px solid var(--border-color-light);
    background: var(--bg-secondary);
  }

  .sagl-home-viva-card-icon {
    width: 1.9rem;
    height: 1.9rem;
    border-radius: 0.45rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    background: var(--color-primary-light);
    color: var(--color-primary);
    font-size: 0.85rem;
  }

  .sagl-home-viva-card-icon.is-agenda {
    background: var(--color-primary-light);
    color: var(--color-primary-ink);
  }
  .sagl-home-viva-card-icon.is-materias {
    background: var(--color-legislativo-light);
    color: var(--color-legislativo);
  }
  .sagl-home-viva-card-icon.is-normas {
    background: var(--color-relatorio-light);
    color: var(--color-relatorio);
  }
  .sagl-home-viva-card-icon.is-mesa {
    background: var(--color-institucional-light);
    color: var(--color-institucional);
  }
  .sagl-home-viva-card-icon.is-vereadores {
    background: var(--color-primary-light);
    color: var(--color-primary-ink);
  }

  .sagl-home-viva-card-titles {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
  }

  .sagl-home-viva-card-head h3 {
    color: var(--text-primary);
    font-size: 0.95rem;
    font-weight: 700;
    margin: 0;
    line-height: 1.25;
  }

  .sagl-home-viva-card-head h3 a.sagl-home-viva-card-title-link {
    color: inherit;
    font-weight: inherit;
    text-decoration: none;
    border-radius: 0.2rem;
  }

  .sagl-home-viva-card-head h3 a.sagl-home-viva-card-title-link:hover,
  .sagl-home-viva-card-head h3 a.sagl-home-viva-card-title-link:focus-visible {
    color: var(--color-primary-ink);
    text-decoration: none;
  }

  .sagl-home-viva-card-count {
    margin-left: auto;
    font-size: 0.8125rem;
    font-weight: 700;
    color: var(--text-tertiary);
    background: var(--bg-primary);
    border: 1px solid var(--border-color);
    border-radius: 999px;
    min-width: 1.55rem;
    height: 1.55rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 0.4rem;
  }

  .sagl-home-viva-card-body {
    padding: 0.65rem 0.9rem 0.2rem;
    flex: 1 1 auto;
  }

  .sagl-home-viva-feature {
    border: 1px solid var(--border-color);
    border-left: 3px solid var(--color-primary);
    border-radius: 0.5rem;
    background: var(--color-primary-light);
    padding: 0.65rem 0.75rem;
    margin-bottom: 0.5rem;
  }

  /* Destaque quando o banner já comunica o ao vivo — sem competir em vermelho */
  .sagl-home-viva-feature.is-now {
    border-color: var(--border-color);
    border-left-color: var(--color-primary);
    background: var(--bg-secondary);
  }

  .sagl-home-viva-feature-title {
    font-size: 0.98rem;
    font-weight: 700;
    line-height: 1.3;
    margin: 0.15rem 0 0.15rem;
  }

  .sagl-home-viva-empty {
    color: var(--text-primary);
  }

  .sagl-home-viva-meta {
    color: var(--text-secondary);
  }

  .sagl-home-viva-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    border-radius: 999px;
    padding: 0.18rem 0.5rem;
    line-height: 1.2;
    white-space: nowrap;
    border: 1px solid transparent;
  }

  .sagl-home-viva-badge.is-proxima {
    color: var(--color-primary-ink);
    background: var(--color-primary-light);
    border-color: var(--border-color);
  }

  .sagl-home-viva-badge.is-live {
    color: #fff;
    background: #9b1c1c;
  }

  .sagl-home-viva-badge.is-ultima,
  .sagl-home-viva-badge.is-rel {
    color: var(--text-secondary);
    background: var(--bg-tertiary);
    border-color: var(--border-color);
  }

  /* “Há N dias”: WAVE alerta em 10px; 11px fica acima do limiar */
  .sagl-home-viva-badge.is-rel {
    font-size: 11px;
  }

  .sagl-home-viva-card a.sagl-list-edit,
  .sagl-home-viva-list a.sagl-list-edit {
    font-weight: 600;
  }

  .sagl-home-viva-list {
    margin: 0;
  }

  .sagl-home-viva-list li,
  .sagl-home-viva-item {
    padding: 0.5rem 0.1rem;
    border-bottom: 1px solid var(--border-color-light);
    border-radius: 0.3rem;
    transition: background 0.15s ease;
  }

  .sagl-home-viva-list li:last-child,
  .sagl-home-viva-item:last-child {
    border-bottom: 0;
  }

  .sagl-home-viva-list li:hover,
  .sagl-home-viva-item:hover {
    background: var(--bg-secondary);
  }

  .sagl-home-viva-item-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.65rem;
  }

  /* Cards de matérias/normas em col-lg-4: mini-cards com sigla, ícones e faixa */
  .sagl-home-viva-card.is-lista .sagl-home-viva-card-body {
    padding: 0.45rem 0.7rem 0.25rem;
  }

  .sagl-home-viva-list.is-docs {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
  }

  .sagl-home-viva-list.is-docs .sagl-home-viva-item.is-doc {
    padding: 0.5rem 0.55rem 0.5rem 0.65rem;
    border: 1px solid var(--border-color-light);
    border-bottom: 1px solid var(--border-color-light);
    border-radius: 0.55rem;
    background: var(--bg-secondary);
    box-shadow: none;
    position: relative;
    overflow: hidden;
  }

  .sagl-home-viva-list.is-docs .sagl-home-viva-item.is-doc::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: var(--color-primary);
    border-radius: 0.55rem 0 0 0.55rem;
  }

  .sagl-home-viva-list.is-docs.is-materias .sagl-home-viva-item.is-doc::before {
    background: var(--color-legislativo);
  }

  .sagl-home-viva-list.is-docs.is-normas .sagl-home-viva-item.is-doc::before {
    background: var(--color-relatorio);
  }

  .sagl-home-viva-list.is-docs .sagl-home-viva-item.is-doc:hover {
    background: var(--bg-primary);
    border-color: var(--border-color);
    box-shadow: var(--shadow-sm);
  }

  .sagl-home-viva-list.is-docs .sagl-home-viva-item-top {
    align-items: flex-start;
    gap: 0.45rem;
  }

  .sagl-home-viva-item-title {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    flex: 1 1 auto;
    min-width: 0;
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1.25;
    color: var(--color-primary-ink);
  }

  .sagl-home-viva-item-title:hover,
  .sagl-home-viva-item-title:focus-visible {
    color: var(--color-primary);
  }

  .sagl-home-viva-list.is-materias .sagl-home-viva-item-title {
    color: var(--color-legislativo);
  }

  .sagl-home-viva-list.is-materias .sagl-home-viva-item-title:hover,
  .sagl-home-viva-list.is-materias .sagl-home-viva-item-title:focus-visible {
    color: #0f5132;
  }

  .sagl-home-viva-list.is-normas .sagl-home-viva-item-title {
    color: var(--color-relatorio);
  }

  .sagl-home-viva-autoria {
    flex: 0 1 40%;
    max-width: 44%;
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.25rem;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.2;
    color: var(--text-secondary);
    text-align: right;
    min-width: 0;
  }

  .sagl-home-viva-autoria > span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .sagl-home-viva-autoria > .fas {
    opacity: 0.85;
    font-size: 0.8125rem;
  }

  .sagl-home-viva-item-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.3rem 0.45rem;
    margin-top: 0.28rem;
  }

  .sagl-home-viva-list.is-docs .sagl-home-viva-meta {
    display: inline-flex;
    align-items: center;
    gap: 0.28rem;
  }

  .sagl-home-viva-list.is-docs .sagl-home-viva-meta .fa-fw {
    opacity: 0.75;
    font-size: 0.8125rem;
  }

  .sagl-home-viva-ementa {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    color: var(--text-secondary);
    line-height: 1.45;
  }

  .sagl-home-viva-list.is-docs .sagl-home-viva-ementa {
    -webkit-line-clamp: 2;
    margin-top: 0.28rem;
    padding-top: 0.28rem;
    border-top: 1px dashed var(--border-color-light);
    font-size: 0.8125rem;
    line-height: 1.35;
  }

  .sagl-home-viva-list.is-docs .sagl-home-viva-item.has-autoria .sagl-home-viva-item-meta {
    margin-top: 0.22rem;
  }

  [data-bs-theme="dark"] .sagl-home-viva-list.is-docs .sagl-home-viva-item.is-doc {
    background: rgba(255, 255, 255, 0.03);
  }

  [data-bs-theme="dark"] .sagl-home-viva-list.is-docs .sagl-home-viva-item.is-doc:hover {
    background: rgba(255, 255, 255, 0.06);
  }

  .sagl-home-viva-more {
    margin-top: auto;
    padding: 0.6rem 0.95rem 0.75rem;
    border-top: 1px solid var(--border-color-light);
    background: var(--bg-secondary);
    font-weight: 600;
  }

  .sagl-home-cal-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-bottom: 0.65rem;
  }

  .sagl-home-cal-chip {
    border: 1px solid var(--border-color);
    background: var(--bg-secondary);
    color: var(--text-primary);
    border-radius: 999px;
    padding: 0.2rem 0.7rem;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.3;
    min-height: 2rem;
  }

  /* Off: borda/texto na cor do tipo; on: preenchimento igual ao evento no FC */
  .sagl-home-cal-chip[data-kind="sessao"] {
    color: var(--color-primary-ink);
    border-color: var(--color-primary);
    background: var(--color-primary-light);
  }

  .sagl-home-cal-chip[data-kind="audiencia"] {
    color: var(--color-legislativo);
    border-color: var(--color-legislativo);
    background: var(--color-legislativo-light);
  }

  .sagl-home-cal-chip[data-kind="comissao"] {
    color: #5c4a00;
    border-color: #8a6d1a;
    background: rgba(180, 140, 20, 0.12);
  }

  .sagl-home-cal-chip[data-kind="sessao"].is-on {
    color: #fff;
    background: var(--color-primary);
    border-color: var(--color-primary);
  }

  .sagl-home-cal-chip[data-kind="audiencia"].is-on {
    color: #fff;
    background: var(--color-legislativo);
    border-color: var(--color-legislativo);
  }

  .sagl-home-cal-chip[data-kind="comissao"].is-on {
    color: #fff;
    background: #8a6d1a;
    border-color: #8a6d1a;
  }

  /* Off: fundo claro + borda tracejada (sem opacity — contraste ≥4,5:1) */
  .sagl-home-cal-chip:not(.is-on) {
    background: var(--bg-primary);
    border-style: dashed;
  }

  .sagl-home-cal-chip:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 2px;
  }

  /*
   * Dark: tokens --color-primary/#6aafcc e --color-legislativo/#5dcaa0
   * com texto branco falham WCAG (~2:1). Fills sólidos ≥4,5:1 (mesmo
   * idioma das pílulas do FullCalendar abaixo).
   */
  [data-bs-theme="dark"] .sagl-home-cal-chip[data-kind="sessao"].is-on {
    color: #fff;
    background: #2d7ba0;
    border-color: #2d7ba0;
  }

  [data-bs-theme="dark"] .sagl-home-cal-chip[data-kind="audiencia"].is-on {
    color: #fff;
    background: #146c43;
    border-color: #146c43;
  }

  [data-bs-theme="dark"] .sagl-home-cal-chip[data-kind="comissao"] {
    color: #e6d08a;
    border-color: #c4a035;
    background: rgba(196, 160, 53, 0.12);
  }

  [data-bs-theme="dark"] .sagl-home-cal-chip[data-kind="comissao"].is-on {
    color: #1a1d29;
    background: #c4a035;
    border-color: #c4a035;
  }

  .sagl-home-viva-badge.is-kind-sessao {
    color: var(--color-primary-ink);
    background: var(--color-primary-light);
    border-color: var(--border-color);
  }

  .sagl-home-viva-badge.is-kind-audiencia {
    color: var(--color-legislativo);
    background: var(--color-legislativo-light);
    border-color: var(--border-color);
  }

  .sagl-home-viva-badge.is-kind-comissao {
    color: #5c4a00;
    background: rgba(180, 140, 20, 0.12);
    border-color: var(--border-color);
  }

  .sagl-home-fc {
    min-height: 18rem;
  }

  .sagl-home-fc,
  .sagl-home-fc.fc,
  .sagl-home-fc .fc-scrollgrid,
  .sagl-home-fc .fc-view-harness,
  .sagl-home-fc .fc-view,
  .sagl-home-viva-card.is-agenda-cal .fc,
  .sagl-home-viva-card.is-agenda-cal .fc-scrollgrid,
  .sagl-home-viva-card.is-agenda-cal .fc-view-harness {
    border-radius: 0 !important;
  }

  .sagl-home-fc.fc {
    --fc-border-color: var(--border-color);
    --fc-page-bg-color: var(--bg-primary);
    --fc-neutral-bg-color: var(--bg-secondary);
    --fc-today-bg-color: var(--color-primary-light);
    --fc-button-bg-color: var(--color-primary);
    --fc-button-border-color: var(--color-primary);
    --fc-button-text-color: #fff;
    --fc-button-hover-bg-color: var(--color-primary-ink);
    --fc-page-text-color: var(--text-primary);
    font-size: 0.875rem;
  }

  .sagl-home-fc.fc .fc-toolbar-title {
    font-size: 1.05rem;
    color: var(--text-primary);
  }

  .sagl-home-fc.fc .fc-daygrid-day-number {
    color: var(--text-primary);
    font-size: 0.8125rem;
  }

  /* Cabeçalho dom/seg/… — vence app.css (secondary !important, α 0.75) */
  .sagl-home-fc.fc .fc-col-header-cell-cushion,
  .sagl-home-viva-card.is-agenda-cal .fc-col-header-cell-cushion {
    color: #2c3e50 !important;
    font-weight: 700;
  }

  .sagl-home-fc .fc-daygrid-event.fc-event {
    color: #fff;
  }

  .sagl-home-fc .fc-daygrid-event.fc-sagl-sessao {
    background-color: var(--color-primary);
    border-color: var(--color-primary);
  }

  .sagl-home-fc .fc-daygrid-event.fc-sagl-audiencia {
    background-color: var(--color-legislativo);
    border-color: var(--color-legislativo);
  }

  .sagl-home-fc .fc-daygrid-event.fc-sagl-comissao {
    background-color: #8a6d1a;
    border-color: #8a6d1a;
  }

  /* listWeek (mobile): título legível — cor só no ponto, não na linha */
  .sagl-home-fc .fc-list-event,
  .sagl-home-fc .fc-list-event.fc-event,
  .sagl-home-fc .fc-list-event.fc-sagl-sessao,
  .sagl-home-fc .fc-list-event.fc-sagl-audiencia,
  .sagl-home-fc .fc-list-event.fc-sagl-comissao {
    background: transparent;
    border-color: transparent;
    color: var(--text-primary);
  }

  .sagl-home-fc .fc-list-event td {
    background: transparent;
  }

  .sagl-home-fc .fc-list-event.fc-sagl-sessao .fc-list-event-dot {
    border-color: var(--color-primary);
    background: var(--color-primary);
  }

  .sagl-home-fc .fc-list-event.fc-sagl-audiencia .fc-list-event-dot {
    border-color: var(--color-legislativo);
    background: var(--color-legislativo);
  }

  .sagl-home-fc .fc-list-event.fc-sagl-comissao .fc-list-event-dot {
    border-color: #8a6d1a;
    background: #8a6d1a;
  }

  .sagl-home-fc .fc-list-event {
    cursor: pointer;
  }

  .sagl-home-fc .fc-list-event:hover td {
    background: var(--color-primary-light);
  }

  .sagl-home-fc-list-ev {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem 0.55rem;
    color: var(--text-primary);
    font-weight: 600;
    line-height: 1.3;
  }

  .sagl-home-fc-list-time {
    flex: 0 0 auto;
    font-variant-numeric: tabular-nums;
    color: var(--text-secondary);
    font-weight: 700;
  }

  .sagl-home-fc-list-title {
    flex: 1 1 12rem;
    min-width: 0;
    color: var(--text-primary);
    font-weight: 600;
  }

  .sagl-home-fc-ev {
    display: flex;
    align-items: baseline;
    gap: 0.25rem;
    overflow: hidden;
    font-weight: 600;
    line-height: 1.2;
    cursor: pointer;
    color: inherit;
  }

  /* Mês compacto: só hora — título no hover e no painel do dia */
  .sagl-home-fc-ev--time {
    justify-content: center;
    gap: 0;
  }

  .sagl-home-fc-ev-time {
    flex: 0 0 auto;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.01em;
  }

  .sagl-home-fc-ev-title {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 500;
  }

  .sagl-home-cal-next {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem 0.5rem;
    margin-bottom: 0.55rem;
    padding: 0.45rem 0.55rem;
    border: 1px solid var(--border-color);
    border-left: 3px solid var(--color-primary);
    border-radius: 0.45rem;
    background: var(--color-primary-light);
  }

  .sagl-home-cal-next-label {
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--color-primary-ink);
  }

  .sagl-home-cal-next-title {
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.25;
    min-width: 0;
  }

  /* #2d7ba0 sobre primary-light (~4,25:1) falhava AA; ink #135F76 ≈ 6,5:1 */
  .sagl-home-cal-next-title.sagl-list-edit,
  .sagl-home-cal-next a.sagl-home-cal-next-title {
    color: var(--color-primary-ink) !important;
  }

  .sagl-home-cal-next-meta {
    flex: 1 1 100%;
    font-size: 0.8125rem;
    color: var(--text-secondary);
  }

  .sagl-home-cal-day {
    margin-top: 0.75rem;
    padding-top: 0.65rem;
    border-top: 1px solid var(--border-color-light);
  }

  .sagl-home-cal-day-title {
    color: var(--text-primary);
  }

  .sagl-home-cal-day-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
  }

  /* Abrir é só texto; Transmissão tem ícone. Sem flex no .btn, o stretch
     do container deixa o rótulo colado no topo. */
  .sagl-home-cal-day-actions .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1.2;
    padding: 0.28rem 0.65rem;
  }

  .sagl-home-cal-day-actions .btn .fa,
  .sagl-home-cal-day-actions .btn .fas,
  .sagl-home-cal-day-actions .btn .far {
    line-height: 1;
  }

  .sagl-home-viva-item.is-focus {
    outline: 2px solid var(--color-primary);
    outline-offset: 1px;
    border-radius: 0.4rem;
    background: var(--color-primary-light);
    padding: 0.35rem 0.4rem;
  }

  .sagl-home-viva-card.is-agenda-cal .sagl-home-viva-card-body {
    padding: 0.75rem 0.95rem 0.4rem;
  }

  .sagl-home-viva-card.is-agenda-cal .sagl-home-cal-chips {
    gap: 0.3rem;
    margin-bottom: 0.45rem;
  }

  .sagl-home-viva-card.is-agenda-cal .sagl-home-cal-chip {
    font-size: 0.8125rem;
    padding: 0.15rem 0.5rem;
    min-height: 1.75rem;
  }

  .sagl-home-viva-card.is-agenda-cal .sagl-home-fc {
    min-height: 0;
  }

  .sagl-home-viva-card.is-agenda-cal .fc {
    font-size: 0.8125rem;
  }

  .sagl-home-viva-card.is-agenda-cal .fc .fc-toolbar {
    flex-wrap: wrap;
    gap: 0.25rem;
    margin-bottom: 0.35rem;
  }

  .sagl-home-viva-card.is-agenda-cal .fc .fc-toolbar-title {
    font-size: 0.875rem;
  }

  .sagl-home-viva-card.is-agenda-cal .fc .fc-button {
    padding: 0.12rem 0.4rem;
    font-size: 0.8125rem;
  }

  .sagl-home-viva-card.is-agenda-cal .fc .fc-col-header-cell-cushion,
  .sagl-home-viva-card.is-agenda-cal .fc .fc-daygrid-day-number {
    padding: 0.15rem 0.2rem;
    font-size: 0.8125rem;
  }

  .sagl-home-viva-card.is-agenda-cal .fc-daygrid-event {
    font-size: 0.8125rem;
    padding: 0 2px;
    margin: 0 1px 1px;
    text-align: center;
    /* Pílula de hora — evita faixa larga ilegível na célula estreita */
    width: auto !important;
    max-width: 100%;
    display: inline-block;
    vertical-align: top;
  }

  .sagl-home-viva-card.is-agenda-cal .fc-daygrid-event .sagl-home-fc-ev--time {
    width: auto;
  }

  .sagl-home-viva-card.is-agenda-cal .fc-daygrid-more-link {
    font-size: 0.8125rem;
    font-weight: 700;
    display: block;
    text-align: center;
    margin-top: 1px;
  }

  /* Detalhe do dia fica no painel abaixo — não no popover do FC */
  .sagl-home-viva-card.is-agenda-cal .fc-more-popover {
    display: none !important;
  }

  .tooltip.sagl-home-fc-tooltip .tooltip-inner {
    text-align: left;
    max-width: 18rem;
  }

  .tooltip.sagl-home-fc-tooltip.is-interactive {
    pointer-events: auto;
  }

  .tooltip.sagl-home-fc-tooltip.is-interactive .tooltip-inner {
    pointer-events: auto;
  }

  .sagl-home-fc-tip-docs {
    display: inline-block;
    margin-top: 0.15rem;
  }

  .sagl-home-fc-tip-link {
    color: #fff;
    font-weight: 600;
    text-decoration: underline;
  }

  .sagl-home-fc-tip-link:hover,
  .sagl-home-fc-tip-link:focus-visible {
    color: #fff;
    text-decoration: underline;
  }

  [data-bs-theme="dark"] .sagl-home-fc-tip-link {
    color: #fff;
  }

  [data-bs-theme="dark"] .sagl-home-viva-badge.is-kind-sessao {
    color: #8ec4db;
    background: rgba(45, 123, 160, 0.28);
  }

  [data-bs-theme="dark"] .sagl-home-viva-badge.is-kind-audiencia {
    color: #5dcaa0;
    background: rgba(20, 108, 67, 0.28);
  }

  [data-bs-theme="dark"] .sagl-home-viva-badge.is-kind-comissao {
    color: #e6d08a;
    background: rgba(196, 160, 53, 0.22);
  }

  /* Footers “Ver …” — outline-primary no dark precisa de tinta legível */
  [data-bs-theme="dark"] #sagl-home-dashboard .btn-outline-primary {
    color: #8ec4db;
    border-color: #6aafcc;
    background-color: transparent;
  }

  [data-bs-theme="dark"] #sagl-home-dashboard .btn-outline-primary:hover,
  [data-bs-theme="dark"] #sagl-home-dashboard .btn-outline-primary:focus-visible {
    color: #1a1d29;
    background-color: #8ec4db;
    border-color: #8ec4db;
  }

  /* Calendário — dark: vence app.css (!important) e reforça pílulas/grade */
  [data-bs-theme="dark"] .sagl-home-fc.fc {
    --fc-border-color: rgba(255, 255, 255, 0.14);
    --fc-page-bg-color: transparent;
    --fc-neutral-bg-color: var(--bg-secondary);
    --fc-neutral-text-color: var(--text-secondary);
    --fc-today-bg-color: rgba(106, 175, 204, 0.14);
    /* #3d8fad/#6aafcc + branco < 4,5:1 (WAVE); usar fills AA */
    --fc-button-bg-color: #2d7ba0;
    --fc-button-border-color: #2d7ba0;
    --fc-button-text-color: #fff;
    --fc-button-hover-bg-color: #256a8f;
    --fc-button-hover-border-color: #256a8f;
    --fc-button-active-bg-color: #1e5f7a;
    --fc-button-active-border-color: #1e5f7a;
    --fc-page-text-color: var(--text-primary);
    --fc-list-event-hover-bg-color: rgba(106, 175, 204, 0.12);
  }

  [data-bs-theme="dark"] .sagl-home-fc.fc .fc-toolbar-title {
    color: var(--text-primary);
  }

  [data-bs-theme="dark"] .sagl-home-fc.fc .fc-col-header-cell-cushion,
  [data-bs-theme="dark"] .sagl-home-viva-card.is-agenda-cal .fc-col-header-cell-cushion {
    color: #ffffff !important;
    font-weight: 700;
  }

  [data-bs-theme="dark"] .sagl-home-fc.fc .fc-daygrid-day-number {
    color: var(--text-primary) !important;
  }

  [data-bs-theme="dark"] .sagl-home-fc.fc .fc-daygrid-day.fc-day-other .fc-daygrid-day-number,
  [data-bs-theme="dark"] .sagl-home-fc.fc .fc-day-other .fc-daygrid-day-number {
    color: #8b929a !important;
    opacity: 1;
  }

  [data-bs-theme="dark"] .sagl-home-fc.fc .fc-daygrid-day.fc-day-other {
    background-color: rgba(0, 0, 0, 0.12);
  }

  [data-bs-theme="dark"] .sagl-home-fc.fc .fc-daygrid-day.fc-day-today {
    background-color: rgba(106, 175, 204, 0.12);
  }

  [data-bs-theme="dark"] .sagl-home-fc.fc .fc-daygrid-day.fc-day-today .fc-daygrid-day-number {
    background-color: #2d7ba0;
    color: #fff !important;
  }

  [data-bs-theme="dark"] .sagl-home-fc.fc .fc-scrollgrid,
  [data-bs-theme="dark"] .sagl-home-fc.fc .fc-scrollgrid td,
  [data-bs-theme="dark"] .sagl-home-fc.fc .fc-scrollgrid th {
    border-color: rgba(255, 255, 255, 0.12) !important;
  }

  [data-bs-theme="dark"] .sagl-home-fc.fc .fc-button {
    background-color: #2d7ba0 !important;
    border-color: #2d7ba0 !important;
    color: #fff !important;
    text-shadow: none;
  }

  [data-bs-theme="dark"] .sagl-home-fc.fc .fc-button:hover {
    background-color: #256a8f !important;
    border-color: #256a8f !important;
    color: #fff !important;
  }

  [data-bs-theme="dark"] .sagl-home-fc.fc .fc-button:disabled,
  [data-bs-theme="dark"] .sagl-home-fc.fc .fc-button:disabled:hover {
    background-color: var(--bg-quaternary) !important;
    border-color: var(--border-color) !important;
    color: var(--text-tertiary) !important;
    opacity: 1;
  }

  [data-bs-theme="dark"] .sagl-home-fc .fc-daygrid-event.fc-event {
    color: #fff !important;
  }

  /* Pílulas sólidas (não pastéis do token dark) — contraste no fundo #1a1d29 */
  [data-bs-theme="dark"] .sagl-home-fc .fc-daygrid-event.fc-sagl-sessao {
    background-color: #2d7ba0 !important;
    border-color: #2d7ba0 !important;
    color: #fff !important;
  }

  /* #2a9d72 + branco ≈ 3,4:1; #146c43 ≈ 6,5:1 */
  [data-bs-theme="dark"] .sagl-home-fc .fc-daygrid-event.fc-sagl-audiencia {
    background-color: #146c43 !important;
    border-color: #146c43 !important;
    color: #fff !important;
  }

  [data-bs-theme="dark"] .sagl-home-fc .fc-daygrid-event.fc-sagl-comissao {
    background-color: #c4a035 !important;
    border-color: #c4a035 !important;
    color: #1a1d29 !important;
  }

  [data-bs-theme="dark"] .sagl-home-fc .fc-daygrid-more-link {
    color: var(--color-primary-ink) !important;
  }

  [data-bs-theme="dark"] .sagl-home-cal-next {
    background: rgba(106, 175, 204, 0.12);
    border-color: rgba(106, 175, 204, 0.35);
  }

  [data-bs-theme="dark"] .sagl-home-cal-next-label {
    color: var(--color-primary-ink);
  }

  [data-bs-theme="dark"] .sagl-home-cal-next-title {
    color: var(--text-primary);
  }

  [data-bs-theme="dark"] .sagl-home-cal-day-title {
    color: var(--text-primary);
  }

  [data-bs-theme="dark"] .sagl-home-fc-list-ev,
  [data-bs-theme="dark"] .sagl-home-fc-list-title {
    color: var(--text-primary);
  }

  [data-bs-theme="dark"] .sagl-home-fc .fc-list-event:hover td {
    background: rgba(106, 175, 204, 0.12);
  }

  [data-bs-theme="dark"] .sagl-home-fc .fc-list-day-cushion {
    background: var(--bg-secondary) !important;
    color: var(--text-primary);
  }

  @media (max-width: 991.98px) {
    .sagl-home-hero-chip {
      min-height: 2.25rem;
    }

    .sagl-home-viva-card-count {
      display: none;
    }
  }

  .sagl-home-viva-more {
    display: flex;
    justify-content: flex-end;
    align-items: center;
  }

  .sagl-home-viva-more a {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
  }

  .sagl-home-viva-more a::after {
    content: '→';
    font-weight: 700;
  }

  /* Footers dos cards «Atividade legislativa»: botão outline (mesmo idioma do institucional) */
  .sagl-home-viva-more a.sagl-home-viva-more-btn {
    font-size: 0.8125rem;
    font-weight: 600;
    text-decoration: none;
  }

  .sagl-home-viva-more a.sagl-home-viva-more-btn::after {
    content: none;
  }

  /* Contagem no header institucional: a lista já é a vitrine */
  .sagl-home-inst-card .sagl-home-viva-card-count {
    display: none !important;
  }

  /* Prévia: menos “card dentro de card” no miolo da home */
  body:has(#sagl-home-viva) .page-content > .container-fluid > .col-lg-12 > .card {
    border: 0;
    box-shadow: none;
    background: transparent;
  }

  body:has(#sagl-home-viva) .page-content > .container-fluid > .col-lg-12 > .card > .card-body {
    padding-left: 0;
    padding-right: 0;
  }

  .sagl-home-viva-list a:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
  }

  [data-bs-theme="dark"] .sagl-home-viva-feature {
    background: var(--color-primary-light);
  }

  [data-bs-theme="dark"] .sagl-home-viva-card-head,
  [data-bs-theme="dark"] .sagl-home-viva-more {
    background: var(--bg-tertiary);
  }

  [data-bs-theme="dark"] .sagl-home-inst-card.is-mesa .sagl-home-viva-more {
    background: var(--sagl-inst-mesa-stage-bg);
  }

  [data-bs-theme="dark"] .sagl-home-inst-card.is-vereadores .sagl-home-viva-more {
    background: var(--sagl-inst-galeria-stage-bg);
  }

  /* Institucional — mesa + faixa de vereadores (padrão viva, não moldura externa) */
  .section-home-institucional .section-header h2 {
    color: var(--text-primary) !important;
  }

  .section-home-institucional .section-header::after {
    background: var(--color-institucional);
  }

  .sagl-home-inst-skel {
    min-height: 12.5rem;
  }

  /* Período / legislatura na mesma linha do título do card */
  .sagl-home-inst-card .sagl-home-viva-card-titles {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.65rem;
  }

  .sagl-home-inst-card .sagl-home-viva-card-titles h3 {
    flex: 0 1 auto;
    min-width: 0;
  }

  .sagl-home-inst-head-meta {
    margin: 0;
    line-height: 1.2;
    flex: 0 1 auto;
    min-width: 0;
    max-width: 100%;
  }

  .sagl-home-inst-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    margin: 0;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    border: 1px solid var(--border-color);
    background: var(--bg-primary);
    color: var(--text-secondary);
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.3;
    max-width: 100%;
  }

  .sagl-home-inst-chip.is-head {
    padding: 0.12rem 0.5rem;
    background: var(--bg-primary);
  }

  .sagl-home-inst-chip span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .sagl-home-inst-card.is-mesa {
    border-color: color-mix(in srgb, var(--color-institucional) 28%, var(--border-color));
  }

  .sagl-home-inst-card.is-mesa .sagl-home-viva-card-head {
    background: color-mix(
      in srgb,
      var(--color-institucional) 10%,
      var(--bg-secondary)
    );
    border-bottom-color: color-mix(
      in srgb,
      var(--color-institucional) 18%,
      var(--border-color-light)
    );
  }

  .sagl-home-inst-card.is-mesa .sagl-home-viva-card-body.is-mesa-body {
    padding: 0.75rem;
    background: transparent;
  }

  .sagl-home-inst-mesa-stage {
    background: var(--sagl-inst-mesa-stage-bg);
    border-radius: var(--sagl-foto-parlamentar-radius, 20px);
    padding: 0.9rem 0.75rem;
  }

  /*
   * Mesa: tiles de largura fixa (igual à galeria); centraliza se não preencher a linha.
   */
  .sagl-home-inst-mesa-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--sagl-home-inst-tile-gap, 0.75rem);
    width: 100%;
  }

  /*
   * Específico o bastante para vencer a.sagl-list-edit { border-radius: 0.15rem }
   * de listagens_cadastro.css (os tiles usam as duas classes).
   */
  a.sagl-home-inst-person.sagl-list-edit,
  a.sagl-home-inst-person.sagl-list-edit:visited,
  .sagl-home-inst-person {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.55rem;
    box-sizing: border-box;
    width: var(--sagl-home-inst-tile-width);
    max-width: 100%;
    flex: 0 0 var(--sagl-home-inst-tile-width);
    min-width: 0;
    color: inherit;
    border: 1px solid var(--border-color);
    border-radius: var(--sagl-foto-parlamentar-radius, 20px);
    background: var(--sagl-inst-tile-bg);
    padding: 0.75rem 0.55rem 0.7rem;
    /* visible: pílula do cargo pode “sair” um pouco da base da foto */
    overflow: visible;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease,
      background 0.15s ease;
  }

  .sagl-home-inst-card.sagl-home-viva-card {
    border-radius: var(--sagl-foto-parlamentar-radius, 20px);
  }

  a.sagl-home-inst-person.sagl-list-edit:hover,
  .sagl-home-inst-person:hover {
    border-color: var(--border-color-hover);
    box-shadow: var(--shadow-sm);
    transform: translateY(-1px);
  }

  a.sagl-home-inst-person.sagl-list-edit:hover .sagl-home-inst-nome,
  a.sagl-home-inst-person.sagl-list-edit:focus-visible .sagl-home-inst-nome,
  .sagl-home-inst-person:hover .sagl-home-inst-nome,
  .sagl-home-inst-person:focus-visible .sagl-home-inst-nome {
    color: var(--color-primary-ink);
  }

  a.sagl-home-inst-person.sagl-list-edit:focus-visible,
  .sagl-home-inst-person:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
  }

  .sagl-home-inst-person.is-mesa {
    background: var(--sagl-inst-tile-bg);
    box-shadow: 0 1px 2px rgba(19, 95, 118, 0.06);
  }

  /*
   * Tokens institucionais — contraste Mesa (azul suave) × Vereadores (cinza),
   * tiles brancos; mesmo radius/largura.
   */
  .section-home-institucional {
    /* Espelha o canônico (mesa_diretora_consulta.css) — a home não carrega aquele CSS. */
    --sagl-foto-parlamentar-size: 9rem;
    --sagl-foto-parlamentar-radius: 20px;
    --sagl-foto-parlamentar-tile-gap: 0.75rem;
    --sagl-foto-parlamentar-tile-width: calc(var(--sagl-foto-parlamentar-size) + 2.1rem);
    --sagl-home-inst-tile-gap: var(--sagl-foto-parlamentar-tile-gap);
    --sagl-home-inst-tile-width: var(--sagl-foto-parlamentar-tile-width);
    --sagl-inst-tile-bg: var(--bg-primary);
    --sagl-inst-mesa-stage-bg: color-mix(
      in srgb,
      var(--color-institucional) 19%,
      var(--bg-secondary)
    );
    --sagl-inst-galeria-stage-bg: var(--bg-secondary);
  }

  .sagl-home-inst-avatar {
    position: relative;
    display: block;
    width: var(--sagl-foto-parlamentar-size);
    height: var(--sagl-foto-parlamentar-size);
    max-width: min(var(--sagl-foto-parlamentar-size), 100%);
    border-radius: var(--sagl-foto-parlamentar-radius);
    overflow: hidden;
    border: 0;
    background: var(--bg-tertiary);
    flex-shrink: 0;
    box-sizing: border-box;
  }

  .sagl-home-inst-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    display: block;
  }

  .sagl-home-inst-avatar.is-placeholder {
    background: color-mix(in srgb, var(--bs-secondary-bg, #e9ecef) 85%, var(--bg-tertiary));
  }

  .sagl-home-inst-avatar-ph {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: var(--text-tertiary, #adb5bd);
  }

  .sagl-home-inst-avatar-ph > i {
    font-size: calc(var(--sagl-foto-parlamentar-size) * 0.42);
    opacity: 0.55;
    line-height: 1;
  }

  .sagl-home-inst-person-meta {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    min-width: 0;
    width: 100%;
  }

  /*
   * Cargo: pílula central na base da foto (como a referência),
   * sobreposta à borda inferior — não faixa full-width.
   */
  .sagl-home-inst-cargo {
    position: relative;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: auto;
    max-width: calc(100% - 0.5rem);
    margin: -0.85rem auto 0.2rem;
    padding: 0.32rem 0.9rem;
    border-radius: 999px;
    background: var(--color-primary-fill, var(--color-primary));
    color: #fff;
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    text-transform: none;
    line-height: 1.25;
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    pointer-events: none;
    box-shadow: 0 1px 3px rgba(19, 95, 118, 0.25);
  }


  .sagl-home-inst-nome {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--color-primary);
    line-height: 1.3;
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .sagl-home-inst-partido {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 1.25rem;
    max-width: 7.25rem;
    padding: 0.1rem 0.4rem;
    border-radius: 999px;
    border: 1px solid var(--border-color);
    background: var(--bg-primary);
    color: var(--text-secondary);
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .sagl-home-inst-person.is-mesa .sagl-home-inst-partido {
    background: var(--bg-secondary);
  }

  .sagl-home-inst-person.is-galeria {
    height: 100%;
    width: 100%;
    flex: none;
    max-width: none;
    background: var(--sagl-inst-tile-bg);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
  }

  .sagl-home-inst-person.is-galeria .sagl-home-inst-nome {
    font-size: 0.8125rem;
  }

  /* Vereadores: stage cinza (sem rodapé “ver todos”) */
  .sagl-home-viva-card-body.is-galeria-body {
    padding: 0.75rem;
    background: transparent;
  }

  .sagl-home-inst-galeria-stage {
    border: 0;
    border-radius: var(--sagl-foto-parlamentar-radius, 20px);
    background: var(--sagl-inst-galeria-stage-bg);
    padding: 0.85rem 0.4rem;
  }

  .sagl-home-inst-galeria {
    --sagl-galeria-nav-gutter: 2.85rem;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    min-width: 0;
    /* Reserva as laterais para as setas — fotos ficam no miolo */
    padding-inline: var(--sagl-galeria-nav-gutter);
  }

  .sagl-home-inst-galeria.is-single {
    padding-inline: 0.55rem;
  }

  .sagl-home-inst-galeria-viewport {
    position: relative;
    flex: 0 1 auto;
    min-width: 0;
    overflow: hidden;
  }

  .sagl-home-inst-galeria-viewport::before,
  .sagl-home-inst-galeria-viewport::after {
    content: none;
  }

  .sagl-home-inst-galeria-track {
    display: flex;
    flex-wrap: nowrap;
    gap: var(--sagl-home-inst-tile-gap, 0.75rem);
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    min-width: 0;
    padding: 0.1rem 0 0.2rem;
    scroll-padding-inline: 0;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .sagl-home-inst-galeria.is-single .sagl-home-inst-galeria-nav {
    display: none;
  }

  .sagl-home-inst-galeria-track::-webkit-scrollbar {
    display: none;
  }

  .sagl-home-inst-galeria-track:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
  }

  /* Mesma largura dos tiles da mesa */
  .sagl-home-inst-galeria-item {
    flex: 0 0 var(--sagl-home-inst-tile-width);
    width: var(--sagl-home-inst-tile-width);
    scroll-snap-align: start;
    min-width: 0;
  }

  .sagl-home-inst-galeria-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 999px;
    border: 1px solid color-mix(in srgb, var(--color-primary) 35%, var(--border-color));
    background: var(--color-primary);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    line-height: 1;
    box-shadow: var(--shadow-sm);
    z-index: 3;
  }

  .sagl-home-inst-galeria-nav.is-prev {
    left: 0.2rem;
  }

  .sagl-home-inst-galeria-nav.is-next {
    right: 0.2rem;
  }

  .sagl-home-inst-galeria-nav:hover:not(:disabled),
  .sagl-home-inst-galeria-nav:focus-visible:not(:disabled) {
    border-color: var(--color-primary-ink);
    color: #fff;
    background: var(--color-primary-ink);
  }

  .sagl-home-inst-galeria-nav:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
  }

  .sagl-home-inst-galeria-nav:disabled {
    opacity: 0.35;
    cursor: default;
    box-shadow: none;
  }

  @media (max-width: 575.98px) {
    .section-home-institucional {
      --sagl-foto-parlamentar-size: 7.5rem;
      --sagl-foto-parlamentar-tile-gap: 0.55rem;
      --sagl-foto-parlamentar-tile-width: calc(var(--sagl-foto-parlamentar-size) + 1.6rem);
      --sagl-home-inst-tile-gap: var(--sagl-foto-parlamentar-tile-gap);
      --sagl-home-inst-tile-width: var(--sagl-foto-parlamentar-tile-width);
    }

    .sagl-home-inst-galeria {
      --sagl-galeria-nav-gutter: 2.6rem;
    }

    .sagl-home-inst-galeria-stage {
      padding: 0.75rem 0.25rem;
    }

    .sagl-home-inst-galeria-nav {
      width: 2.25rem;
      height: 2.25rem;
      min-width: 2.25rem;
      min-height: 2.25rem;
    }

    .sagl-home-inst-galeria-nav.is-prev {
      left: 0.1rem;
    }

    .sagl-home-inst-galeria-nav.is-next {
      right: 0.1rem;
    }

    .sagl-home-inst-galeria-viewport::before,
    .sagl-home-inst-galeria-viewport::after {
      width: 0.45rem;
    }

    .sagl-home-inst-chip.is-head span {
      white-space: normal;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .sagl-home-inst-person {
      transition: none;
    }

    .sagl-home-inst-person:hover {
      transform: none;
    }

    .sagl-home-inst-galeria-track {
      scroll-behavior: auto;
    }
  }

  [data-bs-theme="dark"] .section-home-institucional {
    --sagl-inst-tile-bg: var(--bg-primary);
    --sagl-inst-mesa-stage-bg: color-mix(
      in srgb,
      var(--color-institucional) 22%,
      var(--bg-tertiary)
    );
    --sagl-inst-galeria-stage-bg: var(--bg-tertiary);
  }

  [data-bs-theme="dark"] .sagl-home-inst-card.is-mesa .sagl-home-viva-card-head {
    background: color-mix(in srgb, var(--color-institucional) 16%, var(--bg-tertiary));
  }

  [data-bs-theme="dark"] .sagl-home-inst-cargo {
    background: var(--color-primary);
    color: var(--bg-primary);
  }

  [data-bs-theme="dark"] .sagl-home-inst-avatar.is-placeholder {
    background: var(--bs-tertiary-bg, #2b3035);
  }

  [data-bs-theme="dark"] .sagl-home-inst-avatar-ph {
    color: var(--bs-secondary-color, #adb5bd);
  }

  [data-bs-theme="dark"] .sagl-home-inst-galeria-nav {
    background: var(--color-primary);
    color: var(--bg-primary);
  }

  /* Sustentabilidade / impacto ambiental
     Claro: #1b5e20 ≈ 7,1:1 no branco. Escuro: token no bloco [data-bs-theme=dark]
     (#6bcf8e) — não redefinir em :root aqui (vence o dark e o WAVE volta a falhar). */
  .section-sustentavel .section-header h2 {
    color: var(--color-sustentavel, #1b5e20) !important;
  }

  .section-sustentavel .section-header::after {
    background: var(--color-sustentavel);
  }

  .impacto-stat-card {
    border-radius: var(--card-border-radius);
    border: 1px solid var(--border-color);
    background: var(--bg-primary);
    box-shadow: var(--shadow-sm);
    height: 100%;
    padding: 1.25rem 1.125rem;
    text-align: center;
    transition: var(--transition-smooth);
  }

  .impacto-stat-card:hover {
    box-shadow: var(--shadow-md);
    border-color: rgba(27, 94, 32, 0.3);
  }

  .impacto-stat-icon {
    font-size: 1.5rem;
    color: var(--color-sustentavel);
    opacity: 1;
    margin-bottom: 0.5rem;
  }

  .impacto-stat-value {
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.2;
    min-height: 1.6rem;
  }

  .impacto-stat-label {
    font-size: 0.8125rem;
    color: var(--text-secondary);
    margin-top: 0.35rem;
    line-height: 1.35;
  }

  .impacto-metodologia {
    /* Sem .small aninhado: 0.875em × 0.78rem ≈ 8,9px (WAVE very small text) */
    font-size: 0.8125rem;
    /* #6c757d sobre --bs-body-bg #f2f5f7 = 4,28:1 (WAVE); #495057 ≈ 7,5:1 */
    color: #495057;
    line-height: 1.5;
    border-top: 1px solid var(--border-color-light);
    padding-top: 0.875rem;
    margin-top: 0.5rem;
  }

  .impacto-metodologia p,
  .impacto-metodologia > summary {
    color: #495057;
  }

  .section-sustentavel > p.text-muted {
    color: #495057 !important;
  }

  [data-bs-theme="dark"] .section-sustentavel .section-header h2 {
    color: var(--color-sustentavel, #6bcf8e) !important;
  }

  [data-bs-theme="dark"] .impacto-stat-icon {
    color: var(--color-sustentavel, #6bcf8e);
  }

  [data-bs-theme="dark"] .impacto-stat-card:hover {
    border-color: rgba(107, 207, 142, 0.45);
  }

  [data-bs-theme="dark"] .impacto-metodologia,
  [data-bs-theme="dark"] .impacto-metodologia p,
  [data-bs-theme="dark"] .impacto-metodologia > summary,
  [data-bs-theme="dark"] .section-sustentavel > p.text-muted {
    color: var(--text-secondary, #bdc1c6) !important;
  }

  .impacto-metodologia > summary {
    font-weight: 600;
  }

  .impacto-metodologia > summary:hover,
  .impacto-metodologia > summary:focus-visible,
  [data-bs-theme="dark"] .impacto-metodologia > summary:hover,
  [data-bs-theme="dark"] .impacto-metodologia > summary:focus-visible {
    color: var(--color-sustentavel, var(--color-primary)) !important;
  }

  .impacto-metodologia[open] > summary {
    margin-bottom: 0.25rem;
  }

  .impacto-loading .impacto-stat-value {
    color: var(--text-tertiary);
    font-weight: 500;
    font-size: 0.95rem;
  }

  /* ============================================
     SEÇÕES - Espaçamento e Estrutura
     ============================================ */
  section {
    margin-bottom: 2.5rem;
    position: relative;
  }

  section.mb-5 {
    margin-bottom: 2.5rem;
  }

  section.mb-5:last-child {
    margin-bottom: 2rem;
  }

  section.mb-5:not(:last-child)::after {
    content: '';
    position: absolute;
    bottom: -1.25rem;
    left: 10%;
    right: 10%;
    height: 1px;
    background: linear-gradient(to right, transparent, var(--border-color-light), transparent);
  }

  /* ============================================
     GRID - Espaçamento Responsivo
     ============================================ */
  .row.g-4 {
    --bs-gutter-x: 1.5rem;
    --bs-gutter-y: 1.5rem;
  }

  @media (min-width: 992px) {
    .row.g-4 {
      --bs-gutter-x: 2rem;
      --bs-gutter-y: 2rem;
    }
  }

  /* ============================================
     ACESSIBILIDADE - Estados de Foco e Contraste (SC 1.4.3)
     ============================================ */
  a:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
    border-radius: var(--card-border-radius);
  }

  /* ============================================
     HEADER DA PÁGINA
     ============================================ */
  header.mb-4 {
    margin-bottom: 1.25rem !important;
    padding-bottom: 0.75rem;
  }

  .firstHeading {
    font-size: 1.625rem;
    font-weight: 500;
    color: var(--text-primary);
    margin-bottom: 0;
    letter-spacing: -0.02em;
    line-height: 1.3;
  }

  .firstHeading i {
    color: var(--color-primary);
    opacity: 0.75;
    font-size: 1.25rem;
    margin-right: 0.5rem;
    transition: opacity 0.2s ease;
  }

  .firstHeading:hover i {
    opacity: 1;
  }

  /* ============================================
     RESPONSIVIDADE
     ============================================ */
  @media (min-width: 992px) {
    .card-body-modern {
      padding: 1.375rem 1.625rem;
    }

    .card-footer-access {
      padding: 1.125rem 1.625rem;
    }
  }

  @media (max-width: 991.98px) {
    .card-title-modern {
      font-size: 0.95rem;
    }

    .card-text-modern {
      font-size: 0.875rem;
    }
  }

  @media (max-width: 575.98px) {
    .card-icon-container {
      height: 80px;
    }
    
    .card-icon {
      font-size: 2rem;
    }
    
    .card-text-modern {
      font-size: 0.85rem;
    }
  }

  /* Neutraliza o tema global (sagl-v6-sobrio): fadeIn, hover de borda/sombra e ícones em <a> */
  #sagl-home-dashboard .card,
  #sagl-home-dashboard .card.card-modern,
  #sagl-home-dashboard .impacto-stat-card {
    animation: none !important;
    transform: none !important;
    transition: none !important;
  }

  #sagl-home-dashboard .card:hover,
  #sagl-home-dashboard .card.card-modern:hover,
  #sagl-home-dashboard .impacto-stat-card:hover {
    transform: none !important;
    box-shadow: var(--shadow-sm) !important;
    border-color: var(--border-color) !important;
  }

  #sagl-home-dashboard .card a .card-icon,
  #sagl-home-dashboard .card a:hover .card-icon,
  #sagl-home-dashboard .card a .fas,
  #sagl-home-dashboard .card a:hover .fas,
  #sagl-home-dashboard .card a .mdi,
  #sagl-home-dashboard .card a:hover .mdi {
    transform: none !important;
    filter: none !important;
  }

  #sagl-home-dashboard .card-category-institucional a .card-icon,
  #sagl-home-dashboard .card-category-institucional a:hover .card-icon {
    color: var(--color-institucional) !important;
  }

  #sagl-home-dashboard .card-category-legislativo a .card-icon,
  #sagl-home-dashboard .card-category-legislativo a:hover .card-icon {
    color: var(--color-legislativo) !important;
  }

  #sagl-home-dashboard .card-category-relatorio a .card-icon,
  #sagl-home-dashboard .card-category-relatorio a:hover .card-icon {
    color: var(--color-relatorio) !important;
  }

  #sagl-home-dashboard .badge-access,
  #sagl-home-dashboard .card:hover .badge-access,
  #sagl-home-dashboard .badge.bg-primary.badge-access {
    box-shadow: none !important;
    transform: none !important;
    filter: none !important;
  }

  #sagl-home-dashboard .badge-access .fas,
  #sagl-home-dashboard a:hover .badge-access .fas {
    color: inherit !important;
    transform: none !important;
  }

  /* Painel autenticado — contraste WCAG 1.4.3 / ícones 1.4.11 */
  #sagl-home-dashboard .card-header.bg-primary .painel-header-lead {
    color: #ffffff;
    opacity: 1;
  }

  /* Bootstrap bg-info (#0dcaf0) + branco ≈ 2:1 — fill escuro ≥4,5:1 */
  #sagl-home-dashboard .badge.bg-info {
    --bs-badge-color: #fff;
    background-color: #087990 !important;
    color: #fff !important;
  }

  #sagl-home-dashboard .notification-icon.text-warning-emphasis {
    color: var(--bs-warning-text-emphasis, #997404) !important;
  }

  #sagl-home-dashboard .notification-icon.text-info-emphasis {
    color: var(--bs-info-text-emphasis, #087990) !important;
  }

  /*
   * WAVE “Very small text”: html{font-size:13px} → 0.75rem≈9.75px.
   * Piso 0.8125rem (~10.5px) na home viva / institucional / agenda.
   */
  #sagl-home-dashboard .sagl-home-viva-badge,
  #sagl-home-dashboard .sagl-home-viva-card-count,
  #sagl-home-dashboard .sagl-home-viva-autoria,
  #sagl-home-dashboard .sagl-home-viva-preview-badge,
  #sagl-home-dashboard .sagl-home-inst-partido,
  #sagl-home-dashboard .sagl-home-inst-cargo,
  #sagl-home-dashboard .sagl-home-inst-chip,
  #sagl-home-dashboard .sagl-home-cal-chip,
  #sagl-home-dashboard .sagl-home-cal-next-label,
  #sagl-home-dashboard .sagl-home-cal-next-meta,
  #sagl-home-dashboard .sagl-home-fc .fc-button,
  #sagl-home-dashboard .sagl-home-fc .fc-daygrid-day-number,
  #sagl-home-dashboard .sagl-home-fc .fc-col-header-cell-cushion,
  #sagl-home-dashboard .sagl-home-fc .fc-daygrid-event,
  #sagl-home-dashboard .sagl-home-fc .fc-daygrid-more-link,
  #sagl-home-dashboard .sagl-home-viva-card.is-agenda-cal .fc .fc-button,
  #sagl-home-dashboard .sagl-home-viva-card.is-agenda-cal .fc .fc-daygrid-day-number,
  #sagl-home-dashboard .sagl-home-viva-card.is-agenda-cal .fc .fc-col-header-cell-cushion,
  #sagl-home-dashboard .sagl-home-viva-card.is-agenda-cal .fc-daygrid-event,
  #sagl-home-dashboard .sagl-home-viva-card.is-agenda-cal .fc-daygrid-more-link {
    font-size: 0.8125rem !important;
  }

  /* Badge relativo (“Há N dias”): 11px — 10px ainda alertava no WAVE */
  #sagl-home-dashboard .sagl-home-viva-badge.is-rel {
    font-size: 11px !important;
  }
