/**
 * gov.mz · Portal Único do Cidadão — folha unificada
 * Origem: 01-tokens-base → 15-utentes + 16-nova-pele (fundida na base)
 */

/* ============================================================
   Tokens
   ============================================================ */
   :root {
    --gz-verde-900: #012A16;
    --gz-verde-800: #023D20;
    --gz-verde-700: #034F2A;
    --gz-verde-600: #045C31;
    --gz-verde-500: #046A38;
    --gz-verde-100: #CBE3D5;
    --gz-verde-50:  #E8F2EC;
    --gz-amarelo:      #FFD100;
    --gz-amarelo-300:  #FFE566;
    --gz-amarelo-50:   #FFF6D6;
    --gz-tinta:     #1A1A1A;
    --gz-cinza-600: #55595C;
    --gz-cinza-300: #9AA19C;
    --gz-cinza-200: #D9DDDA;
    --gz-cinza-100: #ECEEEC;
    --gz-cinza-50:  #F5F6F5;
    --gz-alerta:    #B25E00;
    --gz-info:      #0B5FA5;
  
    /* Nova pele: paleta complementar (emblema + tons institucionais neutros) */
    --gz2-teal-700: #0E4F5C;
    --gz2-teal-500: #147D8A;
    --gz2-teal-50:  #E7F1F3;
    --gz2-areia-50: #F7F3EC;
    --gz2-terracota: #C45C26;
    --gz2-carvao-900: #171C1F;
    --gz2-carvao-800: #22272B;
    --gz2-carvao-600: #3A4147;
  
    --gz-sombra: 0 1px 2px rgba(1,42,22,.06), 0 2px 8px rgba(1,42,22,.08);
    --gz-sombra-alta: 0 4px 16px rgba(1,42,22,.3);
    --gz-raio: 12px;
    --gz-raio-sm: 8px;
    --gz-raio-pill: 999px;
    --gz-borda: 1px solid var(--gz-cinza-200);
    --gz-borda-campo: 1.5px solid var(--gz-cinza-300);
    --gz-focus-campo: 0 0 0 3px var(--gz-verde-50);
    --gz-gradiente-marca: linear-gradient(135deg, var(--gz-verde-800), var(--gz-verde-500));
    --gz-gradiente-carteira: linear-gradient(135deg, var(--gz2-teal-700), var(--gz2-teal-500));
    --gz-transicao-cartao: box-shadow .15s ease, border-color .15s ease;
  
    --bs-body-font-family: 'Noto Sans', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
    --bs-body-color: var(--gz-tinta);
    --bs-body-font-size: 1rem;
    --bs-body-line-height: 1.55;
    --bs-link-color-rgb: 4, 92, 49;
    --bs-link-hover-color-rgb: 3, 79, 42;
    --bs-border-radius: .5rem;
  }
  
  /* ============================================================
     Base
     ============================================================ */
  body {
    -webkit-text-size-adjust: 100%;
    font-family: 'Noto Sans', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif !important;
    color: var(--gz-tinta);
    background: var(--gz-cinza-50);
    line-height: 1.55;
  }
  a { text-underline-offset: 3px; color: var(--gz-verde-600); }
  a:hover { color: var(--gz-verde-700); }
  :focus-visible {
    outline: none;
    box-shadow: 0 0 0 2px #fff, 0 0 0 5px var(--gz-amarelo), 0 0 0 6px var(--gz-tinta);
    border-radius: 4px;
  }
  h1, h2, h3, h4, .titulo { color: var(--gz-tinta); font-weight: 700; }
  .gz-titulo, main h1, .titulo {
    font-size: clamp(1.5rem, 3.5vw, 2rem);
    line-height: 1.2;
  }
  .gz-titulo { font-weight: 700; }
  .gz-sub { color: var(--gz-cinza-600); max-width: 70ch; }
  
  .gz-breadcrumb,
  .breadcrumbs .breadcrumb,
  .breadcrumb { --bs-breadcrumb-divider: "›"; font-size: .875rem; }
  .breadcrumb-item a { text-decoration: none; font-weight: 600; color: var(--gz-verde-600); }
  .breadcrumb-item a:hover { text-decoration: underline; }
  .breadcrumb-item.active { color: var(--gz-cinza-600); }
  
  /* ============================================================
     Padrões partilhados
     ============================================================ */
  .gz-cartao,
  .gz-vida,
  .gz-noticia,
  .gz-servico,
  .gz-stat,
  .gz-acesso,
  .gz-config-cartao,
  .gz-noticia-destaque,
  .gz-noticia-secundaria {
    background: #fff;
    border: var(--gz-borda);
    border-radius: var(--gz-raio);
  }
  .gz-cartao,
  .gz-vida,
  .gz-noticia,
  .gz-servico,
  .gz-stat,
  .gz-acesso,
  .gz-config-cartao,
  .gz-noticia-secundaria { box-shadow: var(--gz-sombra); }
  .gz-noticia-destaque,
  .gz-balcao,
  .gz-boasvindas { box-shadow: var(--gz-sombra-alta); }
  
  .gz-vida,
  .gz-balcao,
  .gz-noticia,
  .gz-servico,
  .gz-acesso,
  .gz-noticia-destaque,
  .gz-noticia-secundaria {
    display: flex;
    flex-direction: column;
  }
  .gz-balcao,
  .gz-noticia,
  .gz-servico,
  .gz-stat,
  .gz-acesso,
  .gz-noticia-destaque,
  .gz-noticia-secundaria { height: 100%; }
  .gz-balcao,
  .gz-noticia,
  .gz-situacao,
  .gz-stat,
  .gz-acesso,
  .gz-noticia-destaque,
  .gz-noticia-secundaria,
  .gz-noticia-historica { text-decoration: none; }
  
  .gz-noticia:hover,
  .gz-servico:hover,
  .gz-stat:hover,
  .gz-acesso:hover,
  .gz-noticia-secundaria:hover { border-color: var(--gz2-teal-500); }
  .gz-servico:hover,
  .gz-stat:hover,
  .gz-acesso:hover { box-shadow: var(--gz-sombra-alta); }
  
  .gz-vida .icone,
  .gz-situacao .icone,
  .gz-seleccao .icone,
  .gz-stat .icone,
  .gz-acesso .icone {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--gz2-teal-50);
    color: var(--gz2-teal-700);
  }
  
  .gz-chip,
  .gz-filtro {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    border: 2px solid var(--gz-cinza-200);
    border-radius: var(--gz-raio-pill);
    background: #fff;
    color: var(--gz-cinza-600);
    font-weight: 600;
  }
  .gz-chip.activo,
  .gz-filtro.activo {
    border-color: var(--gz-verde-500);
    background: var(--gz-verde-50);
    color: var(--gz-verde-700);
  }
  .gz-chip .contagem,
  .gz-filtro .contagem,
  .gz-situacao .contagem {
    font-size: .8125rem;
    background: var(--gz-cinza-50);
    border-radius: var(--gz-raio-pill);
    padding: 2px 8px;
  }
  
  /* ============================================================
     Botões
     ============================================================ */
  .btn {
    min-height: 48px;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    border-radius: var(--gz-raio-sm);
  }
  .btn-gz-primario {
    --bs-btn-bg: var(--gz-verde-500);
    --bs-btn-border-color: var(--gz-verde-500);
    --bs-btn-color: #fff;
    --bs-btn-hover-bg: var(--gz-verde-700);
    --bs-btn-hover-border-color: var(--gz-verde-700);
    --bs-btn-hover-color: #fff;
    --bs-btn-active-bg: var(--gz-verde-800);
    --bs-btn-active-border-color: var(--gz-verde-800);
    --bs-btn-active-color: #fff;
  }
  .btn-gz-contorno {
    --bs-btn-bg: #fff;
    --bs-btn-border-color: var(--gz-verde-500);
    --bs-btn-color: var(--gz-verde-700);
    --bs-btn-hover-bg: var(--gz-cinza-50);
    --bs-btn-hover-border-color: var(--gz-verde-500);
    --bs-btn-hover-color: var(--gz-verde-700);
    --bs-btn-active-bg: var(--gz-verde-100);
    --bs-btn-active-border-color: var(--gz-verde-700);
    --bs-btn-active-color: var(--gz-verde-800);
    border-width: 2px;
  }
  .btn-gz-pesquisar { border: 2px solid var(--gz-amarelo); }
  .btn-gz-perigo {
    --bs-btn-bg: #fff;
    --bs-btn-border-color: var(--gz-alerta);
    --bs-btn-color: var(--gz-alerta);
    --bs-btn-hover-bg: var(--gz-amarelo-50);
    --bs-btn-hover-border-color: var(--gz-alerta);
    --bs-btn-hover-color: var(--gz-alerta);
    border-width: 2px;
  }
  
  /* ============================================================
     Cabeçalho
     ============================================================ */
  .gz-faixa-oficial {
    background: var(--gz2-carvao-800);
    color: #fff;
    font-size: .875rem;
  }
  .gz-faixa-oficial .gz-lema { color: #B9C2C8; }
  .gz-ponto {
    display: inline-block;
    width: 10px; height: 10px;
    border-radius: 3px;
    background: var(--gz-amarelo);
    flex: 0 0 10px;
  }
  .gz-cabecalho { border-bottom: var(--gz-borda); }
  .gz-cabecalho .navbar-brand img { height: 32px; width: auto; }
  /* Emblema do Estado junto ao logótipo */
  .gz-cabecalho .navbar-brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
  }
  .gz-cabecalho .navbar-brand::before {
    content: "";
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    background: url("/temas/govmz/assets/assets/emblema-mocambique.png") center / contain no-repeat;
  }
  .gz-cabecalho .nav-link { color: var(--gz-tinta); font-weight: 500; }
  .gz-cabecalho .nav-link:hover { color: var(--gz-verde-700); }
  
  /* ============================================================
     Herói
     ============================================================ */
  .gz-heroi {
    position: relative;
    background: var(--gz2-carvao-800);
    overflow: hidden;
  }
  .gz-heroi-foto {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    object-position: center 30%;
  }
  .gz-heroi-gradiente {
    position: absolute; inset: 0;
    background: linear-gradient(90deg,
      rgba(15, 24, 21, .68) 0%,
      rgba(15, 24, 21, .42) 42%,
      rgba(15, 24, 21, .10) 74%,
      rgba(15, 24, 21, 0) 100%);
    pointer-events: none;
  }
  .gz-heroi-base {
    position: absolute; left: 0; right: 0; bottom: 0;
    height: 80px;
    background: linear-gradient(0deg, rgba(15, 24, 21, .30), rgba(15, 24, 21, 0));
    pointer-events: none;
  }
  .gz-heroi-conteudo {
    position: relative;
    padding-block: clamp(48px, 9vw, 96px) clamp(64px, 10vw, 110px);
  }
  .gz-heroi h1 {
    font-size: clamp(1.75rem, 5vw, 2.75rem);
    font-weight: 700; line-height: 1.2;
    max-width: 20ch; color: #fff;
    text-wrap: pretty;
    text-shadow: 0 2px 14px rgba(0, 0, 0, .45);
  }
  .gz-heroi .gz-heroi-sub {
    color: #F1F5F3;
    max-width: 46ch;
    font-size: clamp(1rem, 2vw, 1.125rem);
    text-wrap: pretty;
    text-shadow: 0 1px 10px rgba(0, 0, 0, .45);
  }
  .gz-heroi .form-control {
    min-height: 52px;
    border: 2px solid var(--gz-verde-700);
  }
  .gz-assinatura-dispositivos {
    position: absolute;
    right: clamp(16px, 4vw, 48px);
    bottom: 28px;
    width: clamp(280px, 27vw, 410px);
    border-radius: var(--gz-raio);
    box-shadow: 0 10px 28px rgba(1,42,22,.5);
    pointer-events: none;
  }
  .gz-sugestoes {
    position: absolute; top: 60px; left: 0; right: 0; z-index: 20;
    background: #fff;
    border: var(--gz-borda);
    border-radius: var(--gz-raio);
    box-shadow: var(--gz-sombra-alta);
    overflow: hidden;
  }
  .gz-sugestoes a {
    display: flex; justify-content: space-between; gap: 1rem;
    align-items: baseline; flex-wrap: wrap;
    padding: 12px 16px;
    border-bottom: 1px solid var(--gz-cinza-100);
    text-decoration: none;
  }
  .gz-sugestoes a:hover { background: var(--gz-cinza-50); }
  .gz-sugestoes .nome { font-weight: 600; color: var(--gz-tinta); }
  .gz-sugestoes .entidade { font-size: .875rem; color: var(--gz-cinza-600); white-space: nowrap; }
  
  /* ============================================================
     Secções, cartões, selos, chips, tempo
     ============================================================ */
  .gz-seccao { padding-block: clamp(32px, 6vw, 56px); }
  .gz-seccao-cinza { background: var(--gz-cinza-50); }
  .gz-seccao-verde { background: var(--gz2-areia-50); }
  .gz-seccao-clara { background: var(--gz2-teal-50); }
  
  .gz-kicker {
    display: inline-flex; align-items: center; gap: 9px;
    font-size: .875rem;
    font-weight: 600;
    letter-spacing: .14em; text-transform: uppercase;
    color: var(--gz-cinza-600);
  }
  .gz-kicker h1 { font-size: 0.871rem !important; margin-top: 10px; }
  .gz-seccao-verde .gz-kicker { color: var(--gz2-carvao-600); }
  .gz-seccao-verde .text-white { color: var(--gz-tinta) !important; }
  .gz-seccao-verde p { color: var(--gz-cinza-600) !important; }
  
  .gz-cartao h3 { font-size: 1.125rem; font-weight: 600; }
  .gz-linha-lista {
    display: flex; justify-content: space-between; align-items: center;
    gap: 8px 12px; flex-wrap: wrap;
    padding-block: 12px;
    border-bottom: 1px solid var(--gz-cinza-100);
    font-size: .9375rem;
  }
  .gz-linha-lista:last-of-type { border-bottom: 0; }
  
  .gz-selo {
    display: inline-flex; align-items: center; gap: 7px;
    padding: 4px 12px;
    border-radius: var(--gz-raio-pill);
    font-size: .8125rem; font-weight: 600;
    background: #fff; white-space: nowrap;
    border: 1.5px solid currentColor;
  }
  .gz-selo::before {
    content: ""; width: 8px; height: 8px;
    border-radius: 50%; background: currentColor;
  }
  .gz-selo-sucesso { color: var(--gz-verde-600); }
  .gz-selo-alerta  { color: var(--gz-alerta); }
  .gz-selo-info    { color: var(--gz-info); }
  .gz-selo-neutro  { color: var(--gz-cinza-600); }
  
  .gz-chip { padding: 0 14px; font-size: .875rem; }
  .gz-chip-valor { border-radius: var(--gz-raio-sm); }
  
  .gz-tempo-linha {
    display: flex; align-items: center; gap: 12px;
    padding-block: 10px;
    border-bottom: 1px solid var(--gz-cinza-100);
  }
  .gz-tempo-linha:last-child { border-bottom: 0; }
  .gz-tempo-icone { font-size: 1.625rem; flex: 0 0 32px; text-align: center; }
  .gz-tempo-temp { font-weight: 700; font-size: 1.25rem; }
  .gz-data-bloco {
    flex: 0 0 46px; text-align: center;
    background: var(--gz-verde-50);
    border-radius: var(--gz-raio-sm); padding-block: 5px;
  }
  .gz-data-bloco .dia { font-weight: 700; font-size: 1.0625rem; line-height: 1; color: var(--gz-verde-700); }
  .gz-data-bloco .mes { font-size: .6875rem; font-weight: 600; letter-spacing: .08em; color: var(--gz-verde-500); }
  
  /* ============================================================
     Situações de vida
     ============================================================ */
  .gz-vida {
    border-top: 6px solid var(--gz2-teal-500);
    padding: 16px;
  }
  .gz-vida .icone {
    width: 40px; height: 40px; border-radius: var(--gz-raio);
    font-size: 1.125rem;
    margin-bottom: 12px;
  }
  .gz-vida h4 { font-size: 1.125rem; font-weight: 600; line-height: 1.3; margin-bottom: 8px; }
  .gz-vida p { font-size: .9375rem; color: var(--gz-cinza-600); flex: 1; margin-bottom: 12px; }
  .gz-vida a { font-size: .9375rem; font-weight: 600; padding-block: 4px; align-self: flex-start; }
  
  .gz-situacao {
    display: inline-flex; align-items: center; gap: 10px;
    min-height: 48px;
    padding: 6px 18px 6px 10px;
    border: var(--gz-borda);
    border-radius: var(--gz-raio-pill);
    background: #fff;
  }
  .gz-situacao:hover { border-color: var(--gz2-teal-500); background: var(--gz2-teal-50); }
  .gz-situacao .icone {
    width: 32px; height: 32px; border-radius: 10px;
    font-size: 1rem;
  }
  .gz-situacao .rotulo { font-weight: 600; font-size: .9375rem; color: var(--gz-tinta); }
  .gz-situacao .contagem { font-weight: 600; color: var(--gz-cinza-600); }
  
  /* ============================================================
     Balcões, carteira, notícias (cartão compacto)
     ============================================================ */
  .gz-balcao {
    background: #fff; border-radius: var(--gz-raio); overflow: hidden;
    box-shadow: 0 4px 16px rgba(23, 28, 31, .16);
    transition: box-shadow .15s ease;
  }
  .gz-balcao:hover { box-shadow: 0 8px 24px rgba(23, 28, 31, .26); }
  .gz-balcao img { width: 100%; height: 170px; object-fit: cover; background: var(--gz2-areia-50); }
  .gz-balcao h3 { font-size: 1.25rem; font-weight: 600; color: var(--gz-tinta); }
  .gz-balcao p { font-size: .9375rem; color: var(--gz-cinza-600); }
  .gz-balcao .accao {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 48px; padding: 0 20px;
    border: 2px solid var(--gz2-teal-700);
    border-radius: var(--gz-raio-sm);
    color: var(--gz2-teal-700);
    font-weight: 600; font-size: .9375rem;
  }
  .gz-balcao:hover .accao { background: var(--gz2-teal-50); }
  
  .gz-carteira {
    background: var(--gz-gradiente-carteira);
    color: #fff; border-radius: var(--gz-raio);
    box-shadow: var(--gz-sombra);
  }
  .gz-carteira .linha {
    display: flex; justify-content: space-between; gap: 8px;
    font-size: .875rem; padding-block: 8px;
    border-bottom: 1px solid rgba(255,255,255,.2);
  }
  .gz-carteira .linha:last-child { border-bottom: 0; }
  .gz-carteira .estado { color: var(--gz-amarelo-300); font-weight: 600; }
  .gz-carteira p { color: #CFE5E9 !important; }
  
  .gz-noticia { padding: 18px; }
  .gz-noticia .tema {
    align-self: flex-start;
    font-size: .75rem; font-weight: 700;
    letter-spacing: .1em; text-transform: uppercase;
    color: var(--gz2-teal-700);
    background: var(--gz2-teal-50);
    border-radius: var(--gz-raio-pill); padding: 4px 12px;
  }
  .gz-noticia .titulo { font-weight: 600; line-height: 1.4; color: var(--gz-tinta); flex: 1; }
  .gz-noticia .fonte,
  .gz-noticia-secundaria .fonte { font-size: .8125rem; color: var(--gz-cinza-600); }
  
  /* ============================================================
     Rodapé
     ============================================================ */
  .gz-selo-oficial { width: clamp(88px, 12vw, 112px); height: auto; }
  .gz-rodape {
    background: var(--gz2-carvao-900);
    color: #B9C2C8;
  }
  .gz-rodape a { color: #fff; }
  .gz-rodape .titulo-coluna {
    color: #fff; font-size: .875rem;
    text-transform: uppercase; letter-spacing: .08em;
  }
  .gz-rodape .base {
    border-top: 1px solid rgba(255,255,255,.2);
    font-size: .875rem;
  }
  /* Emblema do Estado na base do rodapé, antes do ponto amarelo */
  .gz-rodape .base .gz-ponto {
    width: 22px; height: 22px;
    border-radius: 0;
    background: url("/temas/govmz/assets/assets/emblema-mocambique.png") center / contain no-repeat;
  }
  
  /* ============================================================
     Catálogo
     ============================================================ */
  .gz-filtros {
    display: flex; flex-wrap: wrap; gap: 8px;
    align-items: center;
  }
  .gz-filtro { gap: 8px; padding: 0 18px; font-size: .9375rem; }
  .gz-filtro:hover { border-color: var(--gz-verde-500); color: var(--gz-verde-700); }
  .gz-filtro.activo .contagem { background: #fff; }
  
  .gz-servico {
    border-top: 4px solid var(--gz2-teal-500);
    padding: 12px;
    transition: var(--gz-transicao-cartao);
  }
  .gz-servico .etiquetas {
    display: flex; flex-wrap: wrap; gap: 6px;
    margin-bottom: 6px;
  }
  .gz-servico .etiquetas:empty { display: none; }
  .gz-servico h3 {
    font-size: 1rem; font-weight: 600; line-height: 1.3;
    margin-bottom: 4px;
  }
  .gz-servico h3 a { color: var(--gz-tinta); text-decoration: none; }
  .gz-servico h3 a:hover { color: var(--gz-verde-700); text-decoration: underline; }
  .gz-servico .descricao {
    font-size: .875rem; color: var(--gz-cinza-600);
    flex: 1; margin-bottom: 10px;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .gz-servico .rodape {
    display: flex; justify-content: space-between; align-items: center;
    gap: 6px 12px; flex-wrap: wrap;
    border-top: 1px solid var(--gz-cinza-100);
    padding-top: 8px;
  }
  .gz-servico .entidade {
    font-size: .8125rem; color: var(--gz-cinza-600);
    display: flex; align-items: center; gap: 6px;
  }
  .gz-servico .entidade i { color: var(--gz-verde-500); }
  
  .gz-etiqueta {
    display: inline-flex; align-items: center;
    padding: 3px 10px;
    border-radius: var(--gz-raio-pill);
    font-size: .75rem; font-weight: 700;
    letter-spacing: .06em; text-transform: uppercase;
  }
  .gz-etiqueta-novo { background: var(--gz-verde-50); color: var(--gz-verde-700); border: 1px solid var(--gz-verde-100); }
  .gz-etiqueta-beta { background: var(--gz-amarelo-50); color: var(--gz-alerta); border: 1px solid #de7979; }
  .gz-etiqueta-externo { background: var(--gz-cinza-50); color: var(--gz-cinza-600); border: 1px solid #EAD9A8; }
  
  .gz-contagem-resultados {
    font-size: .875rem;
    color: var(--gz-cinza-600);
    text-align: center;
  }
  
  .gz-seleccao {
    display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
    background: var(--gz-verde-50);
    border: 1px solid var(--gz-verde-100);
    border-inline-start: 6px solid var(--gz-verde-500);
    border-radius: var(--gz-raio);
    padding: 12px 16px;
    margin-top: 16px;
  }
  .gz-seleccao .icone {
    width: 36px; height: 36px; border-radius: 10px;
    background: #fff;
    flex: 0 0 36px;
  }
  .gz-seleccao .texto { flex: 1; min-width: 200px; }
  .gz-seleccao .titulo { font-weight: 700; font-size: .9375rem; color: var(--gz-verde-800); }
  .gz-seleccao .detalhe { font-size: .8125rem; color: var(--gz-cinza-600); }
  .gz-seleccao .limpar {
    font-size: .875rem; font-weight: 600;
    min-height: 40px;
    display: inline-flex; align-items: center; gap: 6px;
  }
  .gz-seleccao .entidades-lista {
    display: flex; flex-wrap: wrap; gap: 8px;
    width: 100%;
    padding-top: 10px;
    border-top: 1px solid var(--gz-verde-100);
  }
  .gz-entidade-chip {
    display: inline-flex; align-items: center; gap: 8px;
    min-height: 40px;
    padding: 0 14px;
    border: 1.5px solid var(--gz-verde-100);
    border-radius: var(--gz-raio-pill);
    background: #fff;
    color: var(--gz-verde-800);
    font-weight: 600; font-size: .875rem;
  }
  .gz-entidade-chip:hover { border-color: var(--gz-verde-500); background: var(--gz-verde-50); }
  .gz-entidade-chip.activo {
    border-color: var(--gz-verde-500);
    background: var(--gz-verde-700);
    color: #fff;
  }
  .gz-entidade-chip .contagem {
    font-size: .75rem;
    background: var(--gz-verde-50);
    color: var(--gz-verde-800);
    border-radius: var(--gz-raio-pill);
    padding: 2px 8px;
  }
  .gz-entidade-chip.activo .contagem { background: rgba(255,255,255,.2); color: #fff; }
  
  /* ============================================================
     Área reservada
     ============================================================ */
  .gz-boasvindas {
    background: var(--gz-gradiente-marca);
    color: #fff;
    border-radius: var(--gz-raio);
    padding: clamp(16px, 3vw, 24px);
  }
  .gz-boasvindas h1 { font-size: clamp(1.25rem, 3vw, 1.5rem); font-weight: 700; color: #fff; }
  .gz-boasvindas .perfil { color: var(--gz-verde-100); font-size: .9375rem; }
  .gz-boasvindas .form-select {
    min-height: 48px;
    border: 2px solid rgba(255,255,255,.35);
    background-color: rgba(255,255,255,.08);
    color: #fff;
    font-weight: 600;
  }
  .gz-boasvindas .form-select option { color: var(--gz-tinta); }
  .gz-boasvindas .btn-sair {
    min-height: 44px;
    border: 2px solid rgba(255,255,255,.6);
    border-radius: var(--gz-raio-sm);
    background: transparent;
    color: #fff;
    font-weight: 600; font-size: .875rem;
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    padding: 0 16px;
  }
  .gz-boasvindas .btn-sair:hover { background: rgba(255,255,255,.12); color: #fff; }
  
  .gz-stat {
    display: flex; justify-content: space-between; align-items: center; gap: 12px;
    border-inline-start: 6px solid var(--gz-verde-500);
    padding: 16px;
  }
  .gz-stat .rotulo {
    font-size: .8125rem; font-weight: 600;
    letter-spacing: .08em; text-transform: uppercase;
    color: var(--gz-cinza-600);
  }
  .gz-stat .valor { font-size: 2rem; font-weight: 700; line-height: 1.1; color: var(--gz-tinta); }
  .gz-stat .icone {
    width: 48px; height: 48px; border-radius: var(--gz-raio); flex: 0 0 48px;
    font-size: 1.25rem;
  }
  .gz-stat-rascunho { border-inline-start-color: var(--gz-cinza-300); }
  .gz-stat-rascunho .icone { background: var(--gz-cinza-50); color: var(--gz-cinza-600); }
  .gz-stat-submetido { border-inline-start-color: var(--gz-info); }
  .gz-stat-submetido .icone { background: #E7F1F9; color: var(--gz-info); }
  .gz-stat-finalizado { border-inline-start-color: var(--gz-verde-600); }
  
  .gz-acesso {
    align-items: center; text-align: center;
    padding: 20px 16px;
    transition: var(--gz-transicao-cartao);
  }
  .gz-acesso .icone {
    width: 48px; height: 48px; border-radius: var(--gz-raio);
    font-size: 1.25rem;
    margin-bottom: 10px;
  }
  .gz-acesso h3 { font-size: 1rem; font-weight: 600; color: var(--gz-tinta); margin-bottom: 4px; }
  .gz-acesso p { font-size: .8125rem; color: var(--gz-cinza-600); margin: 0; }
  
  .gz-tabela-pedidos { --bs-table-hover-bg: var(--gz-verde-50); font-size: .9375rem; }
  .gz-tabela-pedidos thead th {
    background: var(--gz-verde-50);
    color: var(--gz-verde-800);
    font-size: .8125rem; font-weight: 700;
    letter-spacing: .06em; text-transform: uppercase;
    border-bottom: 2px solid var(--gz-verde-100);
    padding: 12px;
    white-space: nowrap;
  }
  .gz-tabela-pedidos tbody td { padding: 12px; vertical-align: middle; border-color: var(--gz-cinza-100); }
  .gz-tabela-pedidos .accao {
    display: inline-flex; align-items: center; justify-content: center;
    width: 40px; height: 40px; border-radius: var(--gz-raio-sm);
    border: 1.5px solid var(--gz-cinza-200);
    color: var(--gz-verde-700);
    text-decoration: none;
  }
  .gz-tabela-pedidos .accao:hover { border-color: var(--gz-verde-500); background: var(--gz-verde-50); }
  .gz-pago { color: var(--gz-verde-600); }
  .gz-nao-pago { color: var(--gz-cinza-300); }
  
  /* ============================================================
     Configurações
     ============================================================ */
  .gz-config-nav {
    display: flex; flex-direction: column; gap: 4px;
    position: sticky; top: 16px;
  }
  .gz-config-nav a {
    display: flex; align-items: center; gap: 12px;
    min-height: 48px;
    padding: 8px 14px;
    border-radius: var(--gz-raio-sm);
    text-decoration: none;
    font-weight: 600; font-size: .9375rem;
    color: var(--gz-cinza-600);
    border: 1px solid transparent;
  }
  .gz-config-nav a:hover { background: var(--gz-cinza-50); color: var(--gz-verde-700); }
  .gz-config-nav a.activo {
    background: var(--gz-verde-50);
    color: var(--gz-verde-800);
    border-color: var(--gz-verde-100);
    border-inline-start: 4px solid var(--gz-verde-500);
  }
  .gz-config-nav a i { width: 20px; text-align: center; color: var(--gz-verde-500); }
  
  .gz-config-cartao {
    padding: clamp(16px, 3vw, 24px);
    scroll-margin-top: 16px;
  }
  .gz-config-cartao h2 {
    font-size: 1.125rem; font-weight: 600;
    display: flex; align-items: center; gap: 10px;
    margin-bottom: 4px;
  }
  .gz-config-cartao h2 i { color: var(--gz-verde-500); }
  .gz-config-cartao .descricao { font-size: .875rem; color: var(--gz-cinza-600); margin-bottom: 20px; }
  .gz-config-cartao .form-label { font-weight: 600; font-size: .875rem; margin-bottom: 4px; }
  .gz-config-cartao .form-control,
  .gz-config-cartao .form-select {
    min-height: 48px;
    border: var(--gz-borda-campo);
    border-radius: var(--gz-raio-sm);
    font-size: 1rem;
  }
  .gz-config-cartao .form-control:focus,
  .gz-config-cartao .form-select:focus {
    border-color: var(--gz-verde-500);
    box-shadow: var(--gz-focus-campo);
  }
  .gz-config-cartao .form-text { font-size: .8125rem; color: var(--gz-cinza-600); }
  .gz-config-cartao .campo-bloqueado { background: var(--gz-cinza-50); }
  .gz-config-cartao .form-switch .form-check-input {
    width: 3em; height: 1.6em;
    border: var(--gz-borda-campo);
    cursor: pointer;
  }
  .gz-config-cartao .form-switch .form-check-input:checked {
    background-color: var(--gz-verde-500);
    border-color: var(--gz-verde-500);
  }
  .gz-config-cartao .form-switch .form-check-label { font-size: .9375rem; }
  .gz-linha-preferencia {
    display: flex; justify-content: space-between; align-items: center; gap: 12px;
    padding-block: 14px;
    border-bottom: 1px solid var(--gz-cinza-100);
  }
  .gz-linha-preferencia:last-of-type { border-bottom: 0; }
  .gz-linha-preferencia .info .titulo { font-weight: 600; font-size: .9375rem; }
  .gz-linha-preferencia .info .detalhe { font-size: .8125rem; color: var(--gz-cinza-600); }
  .gz-config-perigo { border-inline-start: 6px solid var(--gz-alerta); }
  .gz-config-perigo h2 i { color: var(--gz-alerta); }
  
  /* ============================================================
     Notícias (página)
     ============================================================ */
  .gz-noticia-destaque,
  .gz-noticia-secundaria { overflow: hidden; }
  .gz-noticia-destaque:hover .titulo { text-decoration: underline; }
  .gz-noticia-destaque img {
    width: 100%;
    height: clamp(220px, 30vw, 380px);
    object-fit: cover;
  }
  .gz-noticia-destaque .corpo,
  .gz-noticia-secundaria .corpo {
    display: flex; flex-direction: column; flex: 1;
  }
  .gz-noticia-destaque .corpo { padding: clamp(16px, 3vw, 28px); }
  .gz-noticia-destaque .titulo {
    font-size: clamp(1.25rem, 2.6vw, 1.75rem);
    font-weight: 700; line-height: 1.25;
    color: var(--gz-tinta);
    text-wrap: pretty;
    margin: 10px 0 8px;
  }
  .gz-noticia-destaque .resumo { font-size: 1rem; color: var(--gz-cinza-600); flex: 1; }
  .gz-noticia-destaque .fonte { font-size: .875rem; color: var(--gz-cinza-600); margin-top: 14px; }
  
  .gz-noticia-secundaria img { width: 100%; height: 150px; object-fit: cover; }
  .gz-noticia-secundaria .corpo { padding: 14px 16px; }
  .gz-noticia-secundaria .titulo {
    font-size: 1.0625rem; font-weight: 600; line-height: 1.35;
    color: var(--gz-tinta);
    margin: 8px 0 6px;
    flex: 1;
  }
  
  .gz-noticia-historica {
    display: flex; align-items: baseline; gap: 12px 16px; flex-wrap: wrap;
    padding-block: 14px;
    border-bottom: 1px solid var(--gz-cinza-100);
  }
  .gz-noticia-historica:hover .titulo { color: var(--gz-verde-700); text-decoration: underline; }
  .gz-noticia-historica .data {
    flex: 0 0 92px;
    font-size: .8125rem; font-weight: 600;
    color: var(--gz-cinza-600);
    white-space: nowrap;
  }
  .gz-noticia-historica .titulo {
    flex: 1; min-width: 200px;
    font-size: .9375rem; font-weight: 600;
    color: var(--gz-tinta);
  }
  .gz-noticia-historica .tema-mini {
    font-size: .6875rem; font-weight: 700;
    letter-spacing: .08em; text-transform: uppercase;
    color: var(--gz2-teal-700);
    background: var(--gz2-teal-50);
    border-radius: var(--gz-raio-pill);
    padding: 3px 10px;
    white-space: nowrap;
  }
  
  .gz-paginacao { display: flex; justify-content: center; gap: 6px; flex-wrap: wrap; }
  .gz-paginacao a,
  .gz-paginacao span {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 44px; min-height: 44px;
    padding: 0 12px;
    border: 1.5px solid var(--gz-cinza-200);
    border-radius: var(--gz-raio-sm);
    font-weight: 600; font-size: .9375rem;
    color: var(--gz-verde-700);
    text-decoration: none;
    background: #fff;
  }
  .gz-paginacao a:hover { border-color: var(--gz-verde-500); background: var(--gz-verde-50); }
  .gz-paginacao .actual {
    background: var(--gz-verde-700);
    border-color: var(--gz-verde-700);
    color: #fff;
  }
  .gz-paginacao .inactivo { color: var(--gz-cinza-300); pointer-events: none; }
  
  /* ============================================================
     Registo e login (LOMS)
     ============================================================ */
  body.utentes_novo,
  body.utentes_login { background: var(--gz-cinza-50); }
  body.utentes_novo main { max-width: 860px; padding-bottom: clamp(32px, 6vw, 56px); }
  body.utentes_login main { padding-bottom: clamp(24px, 4vw, 40px); }
  body.utentes_novo main h1,
  body.utentes_login main h1 { margin-block: 8px 4px; }
  body.utentes_login main h1 { text-align: center; }
  body.utentes_novo .breadcrumbs .breadcrumb,
  body.utentes_login .breadcrumbs .breadcrumb { margin-bottom: 8px; }
  
  body.utentes_novo #frmNew {
    background: #fff;
    border: var(--gz-borda) !important;
    border-radius: var(--gz-raio) !important;
    box-shadow: var(--gz-sombra-alta) !important;
    max-width: 720px;
  }
  body.utentes_novo #frmNew legend {
    font-size: 1.125rem; font-weight: 600;
    color: var(--gz-tinta);
    float: none; width: auto; margin-bottom: 0;
  }
  body.utentes_novo #frmNew table { width: 100%; border-collapse: collapse; }
  body.utentes_novo #frmNew table td { padding: 10px 0; }
  body.utentes_novo #frmNew label {
    font-weight: 600; font-size: .875rem;
    color: var(--gz-tinta);
    display: inline-block;
    margin-bottom: 4px;
  }
  body.utentes_novo #frmNew input[type="text"],
  body.utentes_novo #frmNew input[type="password"],
  body.utentes_novo #frmNew input[type="email"],
  body.utentes_novo #frmNew input[type="tel"],
  body.utentes_novo #frmNew select {
    display: block;
    width: 100%;
    min-height: 48px;
    padding: 8px 14px;
    border: var(--gz-borda-campo);
    border-radius: var(--gz-raio-sm);
    background: #fff;
    color: var(--gz-tinta);
    font: inherit; font-size: 1rem;
    transition: border-color .15s ease, box-shadow .15s ease;
  }
  body.utentes_novo #frmNew input:focus,
  body.utentes_novo #frmNew select:focus,
  body.utentes_login .form-floating > .form-control:focus {
    outline: none;
    border-color: var(--gz-verde-500);
    box-shadow: var(--gz-focus-campo);
  }
  body.utentes_novo #frmNew input[readonly] { background: var(--gz-cinza-50); }
  body.utentes_novo #frmNew input::placeholder { color: var(--gz-cinza-300); }
  body.utentes_novo #frmNew i,
  body.utentes_novo #frmNew .form-text,
  body.utentes_novo #frmNew small {
    font-style: normal;
    font-size: .8125rem;
    color: var(--gz-cinza-600);
  }
  body.utentes_novo #frmNew .bi_tipo_bi_info,
  body.utentes_novo #frmNew .nuit_tipo_nuit_info {
    display: inline-block;
    margin-top: 4px;
    font-size: .8125rem;
  }
  body.utentes_novo #frmNew font[color="red"] { color: var(--gz-alerta); font-weight: 700; }
  body.utentes_novo #frmNew .tipo_bi,
  body.utentes_novo #frmNew .tipo_nuit { display: block; position: relative; }
  body.utentes_novo #frmNew .tipo_bi input,
  body.utentes_novo #frmNew .tipo_nuit input { padding-right: 118px !important; }
  body.utentes_novo #frmNew .tipo_bi .btn,
  body.utentes_novo #frmNew .tipo_nuit .btn {
    position: absolute; top: 4px; right: 4px; bottom: 4px;
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 0; height: auto;
    padding: 0 18px;
    border: none;
    border-radius: 6px;
    background: var(--gz-verde-500);
    color: #fff;
    font-weight: 600; font-size: .875rem;
    cursor: pointer;
  }
  body.utentes_novo #frmNew .tipo_bi .btn:hover,
  body.utentes_novo #frmNew .tipo_nuit .btn:hover { background: var(--gz-verde-700); color: #fff; }
  body.utentes_novo #frmNew .btn-primary.btn-sm {
    background: #fff;
    border: 2px solid var(--gz-verde-500);
    color: var(--gz-verde-700);
    border-radius: var(--gz-raio-sm);
    font-weight: 600;
    min-height: 40px;
    display: inline-flex; align-items: center; justify-content: center;
    padding: 0 14px;
  }
  body.utentes_novo #frmNew .btn-primary.btn-sm:hover { background: var(--gz-verde-50); }
  body.utentes_novo #frmNew button[type="submit"],
  body.utentes_login .card .btn-primary {
    background: var(--gz-verde-500);
    border: none;
    border-radius: var(--gz-raio-sm);
    color: #fff;
    font-weight: 600; font-size: 1rem;
    min-height: 52px;
    display: inline-flex; align-items: center; justify-content: center;
  }
  body.utentes_novo #frmNew button[type="submit"]:hover,
  body.utentes_login .card .btn-primary:hover,
  body.utentes_login .card .btn-primary:focus { background: var(--gz-verde-700); color: #fff; }
  body.utentes_novo #frmNew button[type="submit"]:disabled,
  body.utentes_login .card .btn-primary:disabled { background: var(--gz-cinza-300); }
  body.utentes_novo #frmNew button[type="submit"]:disabled { cursor: not-allowed; }
  body.utentes_novo #frmNew .intl-tel-input { display: block; width: 100%; }
  body.utentes_novo #frmNew .intl-tel-input .selected-flag { padding-left: 12px; }
  body.utentes_novo #frmNew .intl-tel-input .country-list {
    border: var(--gz-borda);
    border-radius: var(--gz-raio-sm);
    box-shadow: var(--gz-sombra-alta);
    font-size: .9375rem;
  }
  body.utentes_novo #frmNew img[src*="captcha"] {
    border: var(--gz-borda);
    border-radius: var(--gz-raio-sm);
    background: #fff;
    padding: 4px;
    margin-bottom: 6px;
  }
  body.utentes_novo #frmNew #security_code {
    text-align: center;
    letter-spacing: 10px;
    max-width: 180px !important;
    font-weight: 700;
  }
  body.utentes_novo #frmNew input[type="checkbox"] {
    width: 20px; height: 20px;
    min-height: 0;
    accent-color: var(--gz-verde-500);
    vertical-align: -4px;
    cursor: pointer;
  }
  body.utentes_novo #frmNew input[type="checkbox"] + label {
    font-weight: 400; font-size: .9375rem;
    color: var(--gz-cinza-600);
  }
  body.utentes_novo #frmNew input[type="checkbox"] + label a { color: var(--gz-verde-600); }
  body.utentes_novo .voltar {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    min-height: 48px;
    padding: 0 24px;
    margin: 0 auto 8px;
    border: 2px solid var(--gz-verde-500);
    border-radius: var(--gz-raio-sm);
    background: #fff;
    color: var(--gz-verde-700);
    font-weight: 600;
    text-decoration: none;
  }
  body.utentes_novo .voltar:hover { background: var(--gz-verde-50); color: var(--gz-verde-700); }
  body.utentes_novo .voltar::before {
    content: "‹";
    font-size: 1.25rem; line-height: 1;
  }
  
  body.utentes_login .card {
    border: var(--gz-borda) !important;
    border-radius: var(--gz-raio) !important;
    box-shadow: var(--gz-sombra-alta) !important;
    overflow: hidden;
    margin-top: 1.5rem !important;
  }
  body.utentes_login .card-header.bg-primary {
    background: var(--gz-gradiente-marca) !important;
    border-bottom: none;
    position: relative;
  }
  body.utentes_login .card-header.bg-primary h4 {
    font-weight: 700;
    font-size: 1.25rem;
    letter-spacing: .01em;
  }
  body.utentes_login .card-header.bg-primary h4::before {
    content: "";
    display: inline-block;
    width: 10px; height: 10px;
    border-radius: 3px;
    background: var(--gz-amarelo);
    margin-right: 10px;
    vertical-align: 2px;
  }
  body.utentes_login .card-body .text-muted { color: var(--gz-cinza-600) !important; }
  body.utentes_login .form-floating > .form-control {
    min-height: 56px;
    border: var(--gz-borda-campo);
    border-radius: var(--gz-raio-sm);
    font-size: 1rem;
    color: var(--gz-tinta);
  }
  body.utentes_login .form-floating > label { color: var(--gz-cinza-600); }
  body.utentes_login .form-floating > .form-control:focus ~ label,
  body.utentes_login .form-floating > .form-control:not(:placeholder-shown) ~ label {
    color: var(--gz-verde-700);
    font-weight: 600;
  }
  body.utentes_login .card a { color: var(--gz-verde-600); }
  body.utentes_login .card a:hover { color: var(--gz-verde-700); }
  body.utentes_login .card a small { font-size: .9375rem; font-weight: 600; }
  body.utentes_login .card a small u { text-decoration: none; }
  body.utentes_login .card a:hover small u { text-decoration: underline; }
  body.utentes_login .card .small.text-muted {
    font-size: .8125rem !important;
    line-height: 1.5;
    color: var(--gz-cinza-600) !important;
  }
  body.utentes_login .g-recaptcha { display: inline-block; }
  
  /* ============================================================
     Utentes / LOMS legado
     ============================================================ */
  .btn-primary, .btn-success, input[type="submit"].btn, button[type="submit"].btn {
    background: var(--gz-verde-500) !important;
    border-color: var(--gz-verde-500) !important;
    color: #fff !important;
  }
  .btn-primary:hover, .btn-success:hover,
  input[type="submit"].btn:hover, button[type="submit"].btn:hover {
    background: var(--gz-verde-700) !important;
    border-color: var(--gz-verde-700) !important;
  }
  .btn-default, .btn-secondary, .btn-outline-primary {
    background: #fff !important;
    border: 2px solid var(--gz-verde-500) !important;
    color: var(--gz-verde-700) !important;
  }
  .btn-default:hover, .btn-secondary:hover, .btn-outline-primary:hover { background: var(--gz-verde-50) !important; }
  .btn-danger {
    background: #fff !important;
    border: 2px solid var(--gz-alerta) !important;
    color: var(--gz-alerta) !important;
  }
  .btn-danger:hover { background: var(--gz-amarelo-50) !important; }
  
  .dashboard .tags { margin: 24px auto !important; }
  .dashboard .tags .tag {
    height: auto !important;
    min-height: 130px;
    background: #fff !important;
    border: var(--gz-borda) !important;
    border-radius: var(--gz-raio) !important;
    box-shadow: var(--gz-sombra);
    padding: 20px 12px !important;
    margin-bottom: 16px;
    color: var(--gz-verde-700) !important;
    transition: var(--gz-transicao-cartao);
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    text-decoration: none;
  }
  .dashboard .tags .tag:hover {
    border-color: var(--gz-verde-500) !important;
    box-shadow: var(--gz-sombra-alta);
  }
  .dashboard .tags .tag .fa {
    font-size: 28px !important;
    width: 56px; height: 56px;
    border-radius: var(--gz-raio);
    background: var(--gz2-teal-50);
    color: var(--gz2-teal-700);
    display: flex; align-items: center; justify-content: center;
    margin-bottom: 10px !important;
  }
  .dashboard .tags .tag h5 {
    text-transform: none !important;
    font-size: .9375rem !important;
    font-weight: 600 !important;
    color: var(--gz-tinta) !important;
    letter-spacing: 0 !important;
  }
  
  .panel, .card, .well {
    background: #fff !important;
    border: var(--gz-borda) !important;
    border-radius: var(--gz-raio) !important;
    box-shadow: var(--gz-sombra) !important;
  }
  .panel-heading, .card-header {
    background: var(--gz-verde-50) !important;
    color: var(--gz-verde-800) !important;
    border-bottom: 1px solid var(--gz-verde-100) !important;
    border-radius: var(--gz-raio) var(--gz-raio) 0 0 !important;
    font-weight: 700;
  }
  .panel-heading .referencia { color: var(--gz-cinza-600); }
  .card-header.bg-primary {
    background: var(--gz-gradiente-marca) !important;
    color: #fff !important;
  }
  
  .form { max-width: 100%; }
  .form fieldset {
    border: none !important;
    background: #fff;
    border-radius: var(--gz-raio);
    padding: clamp(16px, 3vw, 24px) !important;
  }
  .form legend { font-size: 1.125rem; font-weight: 600; }
  label { font-weight: 600; font-size: .875rem; color: var(--gz-tinta); }
  input[type="text"], input[type="password"], input[type="email"],
  input[type="tel"], input[type="number"], select, textarea, .form-control, .form-select {
    min-height: 40px;
    padding: 8px 14px;
    border: var(--gz-borda-campo) !important;
    border-radius: var(--gz-raio-sm) !important;
    background: #fff;
    color: var(--gz-tinta);
    font: inherit;
  }
  input:focus, select:focus, textarea:focus, .form-control:focus, .form-select:focus {
    outline: none;
    border-color: var(--gz-verde-500) !important;
    box-shadow: var(--gz-focus-campo) !important;
  }
  input[readonly], input[disabled] { background: var(--gz-cinza-50); }
  input[type="checkbox"], input[type="radio"] {
    min-height: 0; width: 20px; height: 20px;
    accent-color: var(--gz-verde-500);
  }
  font[color="red"] { color: var(--gz-alerta) !important; font-weight: 700; }
  .text-muted, small, .form-text { color: var(--gz-cinza-600) !important; }
  .nuit_status.error { color: var(--gz-alerta) !important; }
  .nuit_status.success { color: var(--gz-verde-600) !important; }
  
  .tabela_registos, .listagem { margin: 16px 0; }
  .tabela_registos table, table.table {
    background: #fff;
    border-radius: var(--gz-raio);
    overflow: hidden;
    box-shadow: var(--gz-sombra);
  }
  .tabela_registos th, table.table thead th {
    background: var(--gz-verde-50) !important;
    color: var(--gz-verde-800) !important;
    font-size: .8125rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    border-bottom: 2px solid var(--gz-verde-100) !important;
    padding: 12px !important;
  }
  .tabela_registos td, table.table tbody td {
    padding: 12px !important;
    vertical-align: middle;
    border-color: var(--gz-cinza-100) !important;
  }
  table.table tbody tr:hover { background: var(--gz-verde-50); }
  .lista_vazia { color: var(--gz-cinza-300) !important; padding: 24px; }
  
  .filterBox {
    border: var(--gz-borda-campo) !important;
    border-radius: var(--gz-raio-sm) !important;
    min-height: 44px;
  }
  .opcoes a, .opcoes span {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 40px; min-height: 40px;
    border: 1.5px solid var(--gz-cinza-200);
    border-radius: var(--gz-raio-sm);
    color: var(--gz-verde-700);
    text-decoration: none;
    margin: 2px;
  }
  .opcoes a:hover { border-color: var(--gz-verde-500); background: var(--gz-verde-50); }
  .pagination > li > a, .pagination > li > span {
    color: var(--gz-verde-700);
    border-color: var(--gz-cinza-200);
  }
  .pagination > .active > a, .pagination > .active > span {
    background: var(--gz-verde-700) !important;
    border-color: var(--gz-verde-700) !important;
    color: #fff !important;
  }
  
  .dropify-wrapper {
    border: 2px dashed var(--gz-cinza-300) !important;
    border-radius: var(--gz-raio) !important;
  }
  .dropify-wrapper:hover { border-color: var(--gz-verde-500) !important; background: var(--gz-verde-50) !important; }
  
  .select2-container--default .select2-selection--single {
    min-height: 40px;
    border: var(--gz-borda-campo) !important;
    border-radius: var(--gz-raio-sm) !important;
    display: flex; align-items: center;
  }
  .select2-container--default .select2-selection--single .select2-selection__arrow { top: 50%; transform: translateY(-50%); }
  .select2-dropdown { border: var(--gz-borda) !important; border-radius: var(--gz-raio-sm) !important; box-shadow: var(--gz-sombra-alta); }
  .select2-container--default .select2-results__option--highlighted[aria-selected] {
    background: var(--gz-verde-500) !important;
  }
  
  /* ============================================================
     Responsive + movimento reduzido
     ============================================================ */
  @media (max-width: 991.98px) {
    .gz-assinatura-dispositivos { display: none; }
    .gz-config-nav {
      flex-direction: row;
      position: static;
      overflow-x: auto;
      padding-bottom: 8px;
      -webkit-overflow-scrolling: touch;
    }
    .gz-config-nav a { white-space: nowrap; flex: 0 0 auto; }
  }
  
  @media (prefers-reduced-motion: reduce) {
    * { animation: none !important; transition: none !important; }
  }
  