/* ============================================================================
   FISCALLEGIS — sistema visual compartilhado
   Fonte única dos tokens de cor, tipografia, raios, sombras e componentes.
   Carregado por todas as páginas antes do <style> específico de cada uma.

   Por que existe: antes as variáveis eram copiadas em cada arquivo e já haviam
   divergido (o índice usava --texto:#14352a, o simulador #0c2920). Aqui elas
   vivem uma vez só.
   ========================================================================== */

/* ---------------------------------------------------------------- fontes --
   Hospedadas no próprio projeto (WOFF2, subconjuntos latin e latin-ext).
   Não basta declarar a família e torcer para existir no aparelho.
   font-display:swap → o texto aparece na hora, com a fonte de sistema, e troca
   quando a webfont chega. Nunca fica invisível.                             */

@font-face{font-family:'Manrope';font-style:normal;font-weight:600;font-display:swap;
  src:url('../fonts/manrope-latin-600-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Manrope';font-style:normal;font-weight:600;font-display:swap;
  src:url('../fonts/manrope-latin-ext-600-normal.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Manrope';font-style:normal;font-weight:700;font-display:swap;
  src:url('../fonts/manrope-latin-700-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Manrope';font-style:normal;font-weight:700;font-display:swap;
  src:url('../fonts/manrope-latin-ext-700-normal.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}

@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/source-sans-3-latin-400-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/source-sans-3-latin-ext-400-normal.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:600;font-display:swap;
  src:url('../fonts/source-sans-3-latin-600-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:600;font-display:swap;
  src:url('../fonts/source-sans-3-latin-ext-600-normal.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:700;font-display:swap;
  src:url('../fonts/source-sans-3-latin-700-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:700;font-display:swap;
  src:url('../fonts/source-sans-3-latin-ext-700-normal.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}

/* ---------------------------------------------------------------- tokens -- */
:root{
  /* verdes institucionais */
  --noite:#0c2920;
  --floresta:#0f3d2e;
  --acao:#147a4b;          /* CTA — 5,36:1 com branco (o antigo #1fa463 dava 3,21:1) */
  --acao-escuro:#0f6039;   /* hover/active do CTA */
  --menta:#34d399;         /* só sobre fundo escuro; nunca texto pequeno no claro */

  /* superfícies — fundo levemente quente, no lugar do gelo azulado */
  --fundo:#f7f3ec;
  --superficie:#fffdf9;
  --branco:#ffffff;
  --linha:#dde7e1;
  --linha-forte:#c4d6cc;

  /* texto */
  --texto:#0c2920;
  --texto-suave:#52665e;

  /* IDENTIDADE DOS REGIMES — os mesmos valores no site, no PDF e em gráficos.
     Duas correções em relação à paleta original das diretrizes:
     1. --hibrido deixou de ser o MESMO hex do --acao. Botão verde ao lado de
        cartão verde lia como endosso; agora o verde do regime é mais escuro
        (7,83:1 com branco) e o verde de ação continua sendo só o de clicar.
     2. Tradicional e Híbrido têm 1,32:1 ENTRE SI — em escala de cinza viram o
        mesmo tom. Como o relatório precisa funcionar impresso em preto e branco,
        a listra do Tradicional é HACHURADA e a do Híbrido é sólida: a diferença
        passa a ser de forma, não só de cor. */
  --tradicional:#356b7b;
  --tradicional-fraco:#e8f1f3;
  --tradicional-listra:repeating-linear-gradient(135deg,#356b7b 0 3px,#5b8a97 3px 6px);
  --hibrido:#0e5e3a;
  --hibrido-fraco:#e3efe8;

  /* estados */
  --aviso-texto:#6b4e00;
  --aviso-fundo:#fff4d8;
  --aviso-borda:#e7c86f;
  --risco-texto:#8a2a2a;
  --risco-fundo:#fdeaea;
  --risco-borda:#f0c9c9;

  /* raios — três medidas, não dez */
  --raio-pequeno:8px;
  --raio-medio:12px;
  --raio-grande:18px;
  --raio-pilula:100px;

  /* elevação — usada com parcimônia; a regra é borda, não sombra */
  --sombra-sutil:0 1px 2px rgba(12,41,32,.05);
  --sombra-media:0 6px 20px rgba(12,41,32,.10);

  /* tipografia */
  --sans:'Source Sans 3',system-ui,-apple-system,'Segoe UI',Helvetica,Arial,sans-serif;
  --display:'Manrope','Source Sans 3',system-ui,-apple-system,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,'SF Mono',Menlo,Consolas,monospace; /* só fórmulas técnicas */

  /* ---- apelidos de compatibilidade ----------------------------------------
     As páginas antigas usam estes nomes em centenas de lugares. Mantê-los
     apontando para os tokens novos evita uma reescrita de risco e garante que
     não sobre nenhuma cor velha esquecida. NÃO usar em código novo.          */
  --gelo:var(--fundo);
  --gelo-borda:var(--linha);
  --suave:var(--texto-suave);
  --aviso:var(--aviso-texto);
  --aviso-bg:var(--aviso-fundo);
}

/* -------------------------------------------------------------- tipografia */
body{font-family:var(--sans);font-weight:400;}
h1,h2,h3,h4,.display{font-family:var(--display);font-weight:700;letter-spacing:-.02em;}

/* Algarismos tabulares: valores alinham na coluna sem virar terminal.
   Substitui o uso de fonte monoespaçada em dinheiro, percentual e data. */
.num,.valor,td.num,.tabular{font-variant-numeric:tabular-nums lining-nums;}

/* ------------------------------------------------------------------ marca --
   Lockup bicolor: `fiscal` + `legis`. A divisão cai depois do PRIMEIRO L.
   O micro-espaço em .wm-a evita a leitura errada "fisca+llegis" sem separar
   a palavra em duas.                                                        */
.fl-logo{display:inline-flex;align-items:center;gap:.55em;text-decoration:none;}
.fl-logo .fl-simbolo{display:block;flex-shrink:0;height:1.55em;width:auto;}
.fl-wordmark{font-family:var(--display);font-weight:700;letter-spacing:-.025em;
  font-size:1.18em;line-height:1;white-space:nowrap;}
.fl-wordmark .wm-a{margin-right:.018em;}
.fl-wordmark .wm-a{color:var(--floresta);}
.fl-wordmark .wm-b{color:var(--acao);}
.fl-logo--escuro .fl-wordmark .wm-a{color:#fff;}
.fl-logo--escuro .fl-wordmark .wm-b{color:var(--menta);}

/* ------------------------------------------------------------------ ícones --
   Uma família só, de traço, desenhada na mesma grade de 24 com espessura 1.8.
   Técnica: máscara CSS + background currentColor, para o ícone herdar a cor do
   texto sem precisar de sprite SVG repetido em cada página.                  */
.ico{display:inline-block;width:1.15em;height:1.15em;flex-shrink:0;
  background-color:currentColor;vertical-align:-.18em;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-position:center;mask-position:center;
  -webkit-mask-size:contain;mask-size:contain;}
.ico-lg{width:1.5em;height:1.5em;}

.ico-check{-webkit-mask-image:var(--i-check);mask-image:var(--i-check);}
.ico-seta{-webkit-mask-image:var(--i-seta);mask-image:var(--i-seta);}
.ico-alerta{-webkit-mask-image:var(--i-alerta);mask-image:var(--i-alerta);}
.ico-info{-webkit-mask-image:var(--i-info);mask-image:var(--i-info);}
.ico-lupa{-webkit-mask-image:var(--i-lupa);mask-image:var(--i-lupa);}
.ico-cadeado{-webkit-mask-image:var(--i-cadeado);mask-image:var(--i-cadeado);}
.ico-relogio{-webkit-mask-image:var(--i-relogio);mask-image:var(--i-relogio);}
.ico-calendario{-webkit-mask-image:var(--i-calendario);mask-image:var(--i-calendario);}
.ico-pessoas{-webkit-mask-image:var(--i-pessoas);mask-image:var(--i-pessoas);}
.ico-documento{-webkit-mask-image:var(--i-documento);mask-image:var(--i-documento);}
.ico-livro{-webkit-mask-image:var(--i-livro);mask-image:var(--i-livro);}
.ico-ferramenta{-webkit-mask-image:var(--i-ferramenta);mask-image:var(--i-ferramenta);}
.ico-retorno{-webkit-mask-image:var(--i-retorno);mask-image:var(--i-retorno);}
.ico-formatura{-webkit-mask-image:var(--i-formatura);mask-image:var(--i-formatura);}
.ico-conversa{-webkit-mask-image:var(--i-conversa);mask-image:var(--i-conversa);}
.ico-circuito{-webkit-mask-image:var(--i-circuito);mask-image:var(--i-circuito);}
.ico-galpao{-webkit-mask-image:var(--i-galpao);mask-image:var(--i-galpao);}
.ico-loja{-webkit-mask-image:var(--i-loja);mask-image:var(--i-loja);}
.ico-aperto{-webkit-mask-image:var(--i-aperto);mask-image:var(--i-aperto);}
.ico-escudo{-webkit-mask-image:var(--i-escudo);mask-image:var(--i-escudo);}
.ico-envelope{-webkit-mask-image:var(--i-envelope);mask-image:var(--i-envelope);}
.ico-balao{-webkit-mask-image:var(--i-balao);mask-image:var(--i-balao);}
.ico-percentual{-webkit-mask-image:var(--i-percentual);mask-image:var(--i-percentual);}
.ico-bussola{-webkit-mask-image:var(--i-bussola);mask-image:var(--i-bussola);}
.ico-alvo{-webkit-mask-image:var(--i-alvo);mask-image:var(--i-alvo);}
.ico-grafico{-webkit-mask-image:var(--i-grafico);mask-image:var(--i-grafico);}

:root{
  --i-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
  --i-seta:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
  --i-alerta:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.3 3.9 1.9 18a2 2 0 0 0 1.7 3h16.8a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z'/%3E%3Cpath d='M12 9v4M12 17h.01'/%3E%3C/svg%3E");
  --i-info:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.2'/%3E%3Cpath d='M12 16v-4.5M12 8h.01'/%3E%3C/svg%3E");
  --i-lupa:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10.5' cy='10.5' r='7'/%3E%3Cpath d='m20.5 20.5-5-5'/%3E%3C/svg%3E");
  --i-cadeado:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='10.5' width='16' height='10.5' rx='2.2'/%3E%3Cpath d='M8 10.5V7a4 4 0 0 1 8 0v3.5'/%3E%3C/svg%3E");
  --i-relogio:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.2'/%3E%3Cpath d='M12 7v5.2l3.3 2'/%3E%3C/svg%3E");
  --i-calendario:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.2' y='5' width='17.6' height='16' rx='2.4'/%3E%3Cpath d='M3.2 10h17.6M8 3v4M16 3v4'/%3E%3C/svg%3E");
  --i-pessoas:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16.5 20v-1.6a3.6 3.6 0 0 0-3.6-3.6H6.6A3.6 3.6 0 0 0 3 18.4V20'/%3E%3Ccircle cx='9.7' cy='7.6' r='3.6'/%3E%3Cpath d='M21 20v-1.6a3.6 3.6 0 0 0-2.7-3.5M15.5 4.2a3.6 3.6 0 0 1 0 6.9'/%3E%3C/svg%3E");
  --i-documento:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 3v5h5M9 13h6M9 17h4'/%3E%3C/svg%3E");
  --i-livro:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4.5A2.5 2.5 0 0 1 6.5 2H20v18H6.5A2.5 2.5 0 0 0 4 22z'/%3E%3Cpath d='M4 17.5A2.5 2.5 0 0 1 6.5 15H20'/%3E%3C/svg%3E");
  --i-ferramenta:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.2 6.2a4.2 4.2 0 0 0 5.6 5.5l-8.1 8.1a2.4 2.4 0 0 1-3.4-3.4z'/%3E%3Cpath d='m17.5 3.2 3.3 3.3'/%3E%3C/svg%3E");
  --i-retorno:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 0 1 15.3-6.4L21 8'/%3E%3Cpath d='M21 3v5h-5'/%3E%3Cpath d='M21 12a9 9 0 0 1-15.3 6.4L3 16'/%3E%3Cpath d='M3 21v-5h5'/%3E%3C/svg%3E");
  --i-formatura:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 9 12 4.5 2 9l10 4.5z'/%3E%3Cpath d='M6 11.2V16c0 1.5 2.7 3 6 3s6-1.5 6-3v-4.8'/%3E%3C/svg%3E");
  --i-conversa:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 14.5a2.5 2.5 0 0 1-2.5 2.5H8l-4 4V5.5A2.5 2.5 0 0 1 6.5 3h11A2.5 2.5 0 0 1 20 5.5z'/%3E%3C/svg%3E");
  --i-circuito:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='7' y='7' width='10' height='10' rx='2'/%3E%3Cpath d='M10 3v4M14 3v4M10 17v4M14 17v4M3 10h4M3 14h4M17 10h4M17 14h4'/%3E%3C/svg%3E");
  --i-galpao:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21V9.5L12 5l9 4.5V21z'/%3E%3Cpath d='M8 21v-6h8v6M3 21h18'/%3E%3C/svg%3E");
  --i-loja:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 9h16v11a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1z'/%3E%3Cpath d='M3.5 9 5 4h14l1.5 5M9 21v-6h6v6'/%3E%3C/svg%3E");
  --i-aperto:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m11 17-2.2 2.2a2 2 0 0 1-2.8-2.8L8 14.4'/%3E%3Cpath d='M13 7.5 15.5 5a2 2 0 0 1 2.8 2.8L14 12.2l-2.2-2.2'/%3E%3Cpath d='m5.5 12 3 3M18.5 12l-3-3'/%3E%3C/svg%3E");
  --i-escudo:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s7.5-3.4 7.5-9.4V5.6L12 2.8 4.5 5.6v6c0 6 7.5 9.4 7.5 9.4z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E");
  --i-envelope:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.8' y='5' width='18.4' height='14' rx='2.2'/%3E%3Cpath d='m3.5 6.5 8.5 6 8.5-6'/%3E%3C/svg%3E");
  --i-balao:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 11.5a8.4 8.4 0 0 1-9 8.4 9 9 0 0 1-3.8-.8L3 21l1.9-4.9A8.3 8.3 0 0 1 4 11.5 8.4 8.4 0 0 1 12.5 3 8.4 8.4 0 0 1 21 11.5z'/%3E%3C/svg%3E");
  --i-percentual:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m19 5-14 14'/%3E%3Ccircle cx='7.5' cy='7.5' r='2.7'/%3E%3Ccircle cx='16.5' cy='16.5' r='2.7'/%3E%3C/svg%3E");
  --i-bussola:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.2'/%3E%3Cpath d='m15.6 8.4-2 5.2-5.2 2 2-5.2z'/%3E%3C/svg%3E");
  --i-alvo:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Ccircle cx='12' cy='12' r='4.6'/%3E%3Ccircle cx='12' cy='12' r='.6' fill='%23000'/%3E%3C/svg%3E");
  --i-grafico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3v17a1 1 0 0 0 1 1h17'/%3E%3Cpath d='m7 15 3.5-4 3 2.6L20 7'/%3E%3C/svg%3E");
}

/* ---------------------------------------------------------------- foco -----
   Um anel de foco único, visível sobre fundo claro e escuro. Requisito de
   acessibilidade e, na prática, o que permite usar o site só com teclado.   */
/* !important de propósito: o anel de foco é requisito de acessibilidade e não
   pode ser desligado por engano por uma regra de página (era o que acontecia —
   havia `outline:none` espalhado no CSS antigo dos campos). */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,
textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible,
[role="radio"]:focus-visible,[role="button"]:focus-visible{
  outline:3px solid var(--acao) !important;
  outline-offset:2px !important;
}
.sobre-escuro :focus-visible,
[data-fundo="escuro"] :focus-visible{outline-color:var(--menta) !important;}
.tap-link{display:inline-flex;align-items:center;min-height:44px}

/* --------------------------------------------------------------- estados --
   Nunca comunicar só por cor: cada estado tem cor + forma (ícone, borda, selo).
*/
.fl-selo{display:inline-flex;align-items:center;gap:.4em;font-size:11px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;padding:.32em .7em;
  border-radius:var(--raio-pilula);border:1px solid currentColor;}
.fl-selo--recomendado{color:var(--floresta);background:var(--branco);}

/* --------------------------------------------------------- identidade dos regimes */
.regime-trad{color:var(--tradicional);}
.regime-hib{color:var(--hibrido);}

/* ---------------------------------------------------------- movimento ------ */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important;
  }
}

/* ------------------------------------------------------------- impressão -- */
@media print{
  .ico{-webkit-print-color-adjust:exact;print-color-adjust:exact;}
}

/* ---- opt-in de divulgação por WhatsApp (RESERVADO — não usado hoje) ----
   Retirado do formulário gratuito porque entrava entre o último campo e o CTA.
   Mantido aqui pronto para quando a autorização for pedida no checkout.
   Caixa própria e NÃO pré-marcada, separada do e-mail: o art. 8º, §4º da LGPD
   anula autorização genérica, então o consentimento para divulgar por WhatsApp
   precisa ser específico e destacado. */
.optin{ display:flex; gap:10px; align-items:flex-start; margin:2px 0 16px;
  padding:12px 14px; background:var(--gelo); border:1px solid var(--linha);
  border-radius:var(--raio-pequeno); cursor:pointer }
.optin:hover{ border-color:var(--linha-forte) }
.optin input[type=checkbox]{ width:20px; height:20px; margin:1px 0 0; flex-shrink:0;
  accent-color:var(--acao); cursor:pointer }
.optin span{ font-size:13px; line-height:1.5; color:var(--texto-suave) }
.optin input[type=checkbox]:focus-visible{ outline:3px solid var(--acao) !important;
  outline-offset:2px !important }

/* Rodapé permanente do simulador: a identificação da empresa não pode viver
   dentro de uma etapa que só aparece depois da compra. */
.rodape-fixo{ background:var(--floresta); color:var(--branco); margin-top:32px; padding:26px 0 30px }
.rodape-fixo .foot-legal{ margin-top:0; padding-top:0; border-top:none }

/* ---- rodapé legal: identificação da empresa e reserva de direitos ----
   Decreto 7.962/2013 art. 2º, I (nome empresarial + CNPJ em local de destaque)
   e Lei 9.610/1998. O endereço físico (inciso II) entra em .fl-endereco quando
   houver endereço comercial — o seletor já existe para não mexer no CSS depois. */
.foot-legal{ margin-top:18px; padding-top:16px; border-top:1px solid rgba(255,255,255,.14);
  font-size:12.5px; line-height:1.65; opacity:.82 }
.foot-legal p{ margin:0 0 6px }
.foot-legal .fl-marca{ font-weight:700; font-family:var(--display); font-size:14px; letter-spacing:-.01em;
  margin-bottom:2px; opacity:1 }
/* opacidade alta de proposito: esta e a linha que o Decreto 7.962 manda exibir
   "em local de destaque e de facil visualizacao". Era .72 e reprovava no
   contraste AA (3,89:1) — a linha exigida por lei era a menos legivel da pagina. */
.foot-legal .fl-razao{ font-weight:500; letter-spacing:.01em; opacity:.92; font-size:11.5px;
  text-transform:none }
.foot-legal .fl-endereco{ }
.foot-legal .fl-ressalva{ max-width:78ch; opacity:.85 }
.foot-legal .fl-copy{ margin-top:10px; opacity:.92 }
/* cor explícita: sem isto os links herdam o azul padrão do navegador em
   páginas que não redefinem <a>, e ficam ilegíveis sobre o verde escuro. */
.foot-legal a{ color:inherit; text-decoration:underline; text-underline-offset:2px }
.foot-legal a:hover{ color:var(--menta) }
@media(max-width:640px){ .foot-legal{ font-size:12px } }
