/* Fundação compartilhada pelas TRÊS superfícies do projeto: o site público,
   o backoffice da equipe (/admin/) e o portal do cliente (/app/).

   Existe para que o :root seja uma fonte de verdade ÚNICA. Antes do ciclo 16
   os tokens moravam em site.css e a área restrita carregava a folha inteira
   da landing page — 61 KB para usar três classes. O problema não era o peso:
   era herdar por acidente regras escritas para outra coisa. Foi assim que a
   armadilha 4 nasceu, com o sistema de reveal virando dono de `translate` e
   cancelando em silêncio o de quem não sabia.

   Regra: nada entra aqui que não seja usado pelas três superfícies. Regra de
   landing page vai para site.css; regra de área restrita vai para admin.css. */
:root{
  /* brand — unchanged */
  --navy:#0A2647; --blue:#1E6FD9; --blue-dark:#154F9E;
  --green:#3FA34D; --green-dark:#2E7D38; --bg:#F5F7FB; --surface:#FFFFFF;
  --surface-2:#F0F3F9; /* painel discreto sobre --surface; usado por .admin-cofre */
  --ink:#10233F; --muted:#5B6B84; --line:#E3E8F1;
  /* marca da contabilidade (ciclo 28): o padrão é a JotaNexo; um <style> de
     estilo_da_marca() redefine as duas com valores já validados por Marca */
  --marca:#0A2647; --marca-texto:#FFFFFF;

  /* new surfaces & accents */
  --green-darker:#245F2C; /* .btn-primary:hover — darker than --green-dark now that --green-dark is the resting state (contrast fix) */
  --navy-900:#071B33; --blue-lt:#5B9BF3; --green-lt:#8FD3A0;
  --amber:#B4531A; --amber-bg:#FDF1E7; --sand:#FFFDF8;
  /* identidade comum às três superfícies (apresentação do MVP):
     navy intermediário e as duas cores de estado do produto */
  --navy-800:#0D2C52; --estado-aguardando:#E0A040; --estado-atraso:#C0392B;
  --line-dark:rgba(255,255,255,.14);
  --ink-on-dark:#E8EFF8; --muted-on-dark:#9DB0C9;

  /* radii */
  --r-sm:10px; --r-md:14px; --r-lg:20px; --r-pill:999px;
  --radius:14px; /* legacy alias, kept so untouched rules keep working */

  /* elevation */
  --shadow-sm:0 1px 2px rgba(10,38,71,.05), 0 2px 8px rgba(10,38,71,.04);
  --shadow-md:0 4px 12px rgba(10,38,71,.07), 0 12px 28px rgba(10,38,71,.07);
  --shadow-lg:0 12px 24px rgba(10,38,71,.10), 0 28px 60px rgba(10,38,71,.12);
  --shadow:var(--shadow-sm); /* legacy alias */
  --glow-green:0 8px 22px rgba(63,163,77,.32);

  /* fluid type scale */
  --step--1:clamp(.78rem,.75rem + .12vw,.85rem);
  --step-0:clamp(.94rem,.90rem + .18vw,1rem);
  --step-1:clamp(1.06rem,1.00rem + .30vw,1.20rem);
  --step-2:clamp(1.25rem,1.13rem + .58vw,1.60rem);
  --step-3:clamp(1.50rem,1.28rem + 1.05vw,2.15rem);
  --step-4:clamp(1.80rem,1.42rem + 1.85vw,2.90rem);
  --step-hero:clamp(2.10rem,1.30rem + 3.05vw,3.35rem);

  --wrap:1120px;
  --font-display:'Manrope','Segoe UI',system-ui,sans-serif;
  --font-body:'Inter','Segoe UI',system-ui,sans-serif;
  --ease-out:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{background:var(--bg);color:var(--ink);font-family:var(--font-body);line-height:1.6;-webkit-font-smoothing:antialiased;}
h1,h2,h3,h4{font-family:var(--font-display);color:var(--navy);margin:0;letter-spacing:-.01em;line-height:1.15;}
p{margin:0;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}

/* brand glyph */
.glyph{display:inline-flex;align-items:flex-end;gap:3px;height:20px;}
.glyph i{display:block;width:5px;background:var(--green);border-radius:2px;}
.glyph i:nth-child(1){height:7px;}.glyph i:nth-child(2){height:12px;}
.glyph i:nth-child(3){height:17px;}.glyph i:nth-child(4){height:20px;background:var(--blue);}
.brand{display:inline-flex;align-items:center;gap:11px;}
.brand-name{font-family:var(--font-display);font-weight:700;font-size:19px;color:var(--navy);}
.brand--light .brand-name{color:#fff;}
