/* Dinonna OS — tema visual único do sistema.
   Fonte da verdade pra cor e tipografia — todo HTML do sistema (protótipo,
   pwa-gerente, e o que vier a seguir) linka este arquivo em vez de duplicar
   :root. Mudou uma cor? Muda só aqui. Ver docs/dinonna-os-plano-diretor.md §12.

   Paleta "Suave B" (aprovada 13/07/2026) — mesma família de cor verde-
   acinzentado escuro do protótipo original, luminosidade levantada pra
   tirar a dureza do quase-preto (#101310 → #1f251f). Verde/vermelho/âmbar
   mantêm o mesmo significado (entrada·ação / saída·alerta / pendência),
   levemente dessaturados pra não competir com o fundo mais claro. */
:root{
  --bg:#1f251f;
  --panel:#262d26;
  --panel-2:#2d352d;
  --panel-3:#343d34;
  --line:rgba(242,244,238,.1);
  --line-strong:rgba(242,244,238,.2);
  --ink:#f2f4ee;
  --mut:#aab5a1;
  --dim:#828d78;
  --grn:#6fb350;
  --grn-ink:#9ad675;
  --grn-soft:rgba(111,179,80,.16);
  --on-grn:#10190c;
  --red:#cf6358;
  --red-ink:#eb9a8f;
  --red-soft:rgba(207,99,88,.15);
  --amb:#d6a75a;
  --amb-ink:#eac07a;
  --amb-soft:rgba(214,167,90,.15);
  --blue:#5b8fc7;
  --blue-ink:#a8c6ea;
  --blue-soft:rgba(91,143,199,.16);
  /* Escalas > Livre (15/07/2026): cores exclusivas pro card de criação livre
     do kanban de funcionários — nunca as mesmas de vermelho/âmbar/azul, que
     já têm significado fixo (folga/limpeza/lixo) nessa tela. */
  --purple:#9b7ecb;
  --purple-ink:#c3aee8;
  --purple-soft:rgba(155,126,203,.16);
  --pink:#d47ea9;
  --pink-ink:#eeb0d0;
  --pink-soft:rgba(212,126,169,.15);
  --teal:#4fb3ad;
  --teal-ink:#8ad6d1;
  --teal-soft:rgba(79,179,173,.16);
  --mono:'JetBrains Mono',monospace;
  --disp:'Bricolage Grotesque',sans-serif;
  --body:'Instrument Sans',sans-serif;
  --r:12px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
a{color:var(--grn-ink);text-decoration:none}
h1,h2,h3{font-family:var(--disp);font-weight:600;letter-spacing:-.01em}
.mono{font-family:var(--mono)}
.pos{color:var(--grn-ink)}
.neg{color:var(--red-ink)}
.mut{color:var(--mut)}

/* Gating por papel — Dinonna OS é um sistema só, Master é um usuário com
   mais telas liberadas na mesma casca, não um app separado. Qualquer tela
   marcada data-master/data-gerente-only some pro papel oposto. O JS de
   login soma a classe role-master/role-gerente/role-caixa no <body>. */
body.role-gerente [data-master]{display:none!important}
body.role-master [data-gerente-only]{display:none!important}
/* Caixa (15/07/2026, papel novo — Vanessa): ainda sem permissões definidas,
   então por padrão só enxerga o Dashboard — esconde qualquer outro item de
   navegação, seja ele data-master, data-gerente-only ou compartilhado (sem
   nenhum dos dois atributos, como Colaboradores/Notas/Cardápio hoje). Vai
   crescendo conforme as permissões dela forem decididas — Estoque
   (17/07/2026) foi a primeira exceção liberada, pedido explícito do dono. */
/* 20/07/2026: caixa ganhou Fechamento de caixa — o fechamento é feito tanto
   pelo gerente quanto pelo caixa (decisão do dono). Cada tela nova liberada
   aqui precisa do par no JS: um branch em mostrarApp() que a inicialize. */
/* 27/07/2026: o caixa ganhou CARDÁPIO e LANÇAMENTOS, mas só em parte — as
   sub-abas que não são dela levam data-sem-caixa (ver abaixo). Motivo:
   - Cardápio > Fim do dia: "sobras: gerente ou caixa" (dono, 27/07);
   - Lançamentos > Notas & recibos: "o caixa também recebe mercadorias e uma vez
     na semana o gerente está de folga… então ela precisa validar a mercadoria
     que chegou" (dono, 25/07) — a decisão estava registrada e nunca tinha
     chegado ao gating;
   - Estoque > Pedidos já vinha junto, por ser sub-aba de uma tela que ela via. */
body.role-caixa [data-screen]:not([data-screen="dashboard"]):not([data-screen="estoque"]):not([data-screen="caixa"]):not([data-screen="cardapio"]):not([data-screen="lanc"]){display:none!important}
/* 20/07/2026: `data-sem-caixa` = todo mundo vê, menos o caixa. Nasceu do
   painel de indicadores (CMV, ticket médio, margem, ranking de vendas): o
   gerente PRECISA ver, o caixa não. `data-master` não servia porque
   esconderia do gerente junto. */
body.role-caixa [data-sem-caixa]{display:none!important}
body.role-caixa [data-master],
/* 20/07/2026: Fechamento de caixa é feito pelo gerente E pelo caixa, mas NÃO
   pelo Master — gravarFechamento() usa sessao.unidadeId cru, que é null pra
   ele. Por isso a tela fica com data-gerente-only (some do Master) e o caixa
   ganha esta exceção pontual em vez de perder o atributo. */
body.role-caixa [data-gerente-only]:not([data-screen="caixa"]){display:none!important}
