/* ============================================================================================
   Hub interno da Muito Food — camada de tema sobre o Basecoat.

   O QUE É O BASECOAT. `basecoat.min.css`, ao lado deste arquivo, é o **Basecoat 1.0.2** (MIT):
   os componentes do shadcn/ui portados para HTML puro — sem React, sem build, sem Node. Botão,
   campo, cartão, tabela, diálogo e combobox vêm prontos e acessíveis. Ele é **vendorizado**: o
   arquivo mora no repo em vez de vir de CDN, para o painel não depender de rede de terceiros e
   para a atualização ser um ato nosso, datado. **Atualizar = baixar a versão nova e conferir as
   nove telas** — não existe gerenciador de pacotes aqui.
       origem: https://cdn.jsdelivr.net/npm/basecoat-css@1.0.2/dist/basecoat.cdn.min.css

   ⚠️ **Há uma segunda cópia** em `capacidades/diagnostico-onboarding/web/assets/`, porque aquele
   app tem deploy próprio e precisa rodar igual em local e em produção. As duas andam juntas: ao
   trocar de versão, trocar nas duas. Dívida declarada, não esquecida.

   O QUE ESTE ARQUIVO FAZ. Só duas coisas: troca os tokens do shadcn pela tinta da MF, e monta o
   andaime das páginas (barra, palco, seção, linha de campo). Não redesenha componente nenhum —
   é por isso que ele cabe em ~200 linhas.

   A ESCALA NEUTRA DO SHADCN FICA INTACTA, e isso é decisão, não preguiça: borda `#E5E5E5` e
   cartão branco puro são o que faz a tela ter contraste e parecer nítida. Uma tentativa anterior
   amorneceu borda e fundo ao mesmo tempo e apagou a sombra do cartão junto — a tela ficou macia e
   sem foco. Só o **fundo da página** desvia, e só porque a padronagem precisa de chão.

   A MARCA ENTRA EM QUATRO PONTOS, E NADA ALÉM:
     1. `--foreground` / `--primary` = navy #0E1420. Lê como preto, mas é o nosso.
     2. `--ring` = laranja #FF4B12 — a única cor da interface, e ela só acende no foco.
     3. `--background` = #F6F5F2 + a padronagem a 4% (calibrada com o Caio em 30/08).
     4. Space Grotesk **uma vez por tela**, no título; logo na barra. O resto é Inter.

   RÓTULO É FRASE, NÃO ETIQUETA. Nada de mono caixa-alta em rótulo de campo — ele soma ruído em
   cada linha, e este painel é aberto muitas vezes por dia. Mono fica para **dado de máquina**:
   id, contagem, data, token.
   ============================================================================================ */

:root{
  /* ---- escala neutra do shadcn, intacta ---- */
  --card:#FFFFFF;
  --popover:#FFFFFF;
  --secondary:#F1EFEA;
  --muted:#F1EFEA;
  --accent:#F1EFEA;
  --muted-foreground:#737780;
  --border:#E5E5E5;
  --input:#E5E5E5;
  --destructive:#B3261E;
  --radius:.625rem;

  /* ---- o único desvio da escala: o fundo, para a padronagem ter chão ---- */
  --background:#F6F5F2;
  /* Zona só-leitura precisa ficar ABAIXO do fundo da página, senão some contra ele. */
  --mf-travado:#EAE7E0;

  /* ---- a tinta é nossa ---- */
  --foreground:#0E1420;
  --card-foreground:#0E1420;
  --popover-foreground:#0E1420;
  --primary:#0E1420;
  --primary-foreground:#FAFAFA;
  --secondary-foreground:#0E1420;
  --accent-foreground:#0E1420;
  --ring:#FF4B12;

  --font-sans:'Inter',-apple-system,'Segoe UI',Arial,sans-serif;
  --font-mono:'JetBrains Mono',Consolas,monospace;

  --mf-display:'Space Grotesk',sans-serif;
  --mf-textura:.04;   /* calibrado com o Caio em 30/08, olhando o comparativo; `0` desliga */
}

body{position:relative;min-height:100vh;background:var(--background)}
body::before{
  content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:url('textura-grade.png') 0 0 / 280px repeat;
  opacity:var(--mf-textura);mix-blend-mode:multiply;
}

/* DUAS ARMADILHAS DO BASECOAT, pagas com defeito em produção (30/08):

   1. `.card > section` e `.card > footer` são seletores de FILHO DIRETO. Pôr um `<form>` entre o
      cartão e eles faz os dois virarem netos e perderem todo o padding — a tela abre com o botão
      colado no campo. O `<form>` envolve o CARTÃO, nunca o contrário.

   2. Este build traz os COMPONENTES do shadcn, não os UTILITÁRIOS do Tailwind. `grid`, `gap-4`,
      `flex`, `space-y-*` não existem aqui e falham em silêncio. Para empilhar campos, use
      `.mf-form`.

------------------------------------------------------------------------------------ a barra */
.mf-topo{
  position:sticky;top:0;z-index:40;
  display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;
  padding:12px 26px;border-bottom:1px solid var(--border);
  background:color-mix(in srgb,var(--background) 88%,transparent);backdrop-filter:blur(8px);
}
/* `logo-h-navy-sem-assinatura.png` e o RECORTE do logo horizontal do design system: a
   assinatura "publicidade e audiovisual para gastronomia" ocupa a faixa de cima e, na
   altura de uma barra de navegacao, vira 2px de borrao ilegivel. O recorte tira so essa
   faixa (y 0..32 dos 172 originais) — o desenho nao foi tocado, e o arquivo canonico
   segue intacto na skill. A altura em CSS caiu junto (18->16) para o logotipo ficar do
   mesmo tamanho optico de antes. */
.mf-topo img{height:16px;display:block}
.mf-topo nav{display:flex;align-items:center;gap:6px;font-size:13.5px}
.mf-topo nav .quem{color:var(--muted-foreground);margin-right:8px}
.mf-topo nav a{
  color:var(--muted-foreground);text-decoration:none;
  padding:5px 9px;border-radius:calc(var(--radius) - 4px);
}
.mf-topo nav a:hover{color:var(--foreground);background:var(--muted)}
.mf-topo nav a:focus-visible{outline:2px solid var(--ring);outline-offset:1px}

/* ------------------------------------------------------------------------------- o palco */
.mf-palco{max-width:940px;margin:0 auto;padding:40px 26px 84px}
.mf-palco.largo{max-width:1080px}
.mf-palco.estreito{max-width:460px}

.mf-titulo{
  font-family:var(--mf-display);font-weight:700;
  font-size:clamp(26px,3.3vw,32px);letter-spacing:-.027em;line-height:1.15;
  color:var(--foreground);margin:0;
}
.mf-sub{margin:7px 0 0;font-size:15px;color:var(--muted-foreground);max-width:64ch}
.mf-sub a{color:var(--foreground);text-decoration:underline;text-underline-offset:2px}
.mf-cabeca{margin-bottom:30px}
.dado{font-family:var(--font-mono);font-size:12px;color:var(--muted-foreground)}
.dado b{color:var(--foreground);font-weight:500}

.mf-voltar{
  display:inline-flex;align-items:center;gap:7px;margin-bottom:16px;
  font-size:13.5px;color:var(--muted-foreground);text-decoration:none;
}
.mf-voltar:hover{color:var(--foreground)}
.mf-voltar svg{width:15px;height:15px}

/* Divisória de assunto: frase pequena, sem caixa-alta e sem cor. */
.mf-secao{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:30px 0 10px}
.mf-secao h2{font-size:13.5px;font-weight:500;color:var(--muted-foreground);margin:0}
.mf-secao .conta{font-size:12.5px;color:var(--muted-foreground)}

/* ------------------------------------------------- lista de linhas com ícone (hub, listas) */
.card.compacto{padding-block:0;gap:0}
.mf-lista{padding:6px}
a.mf-item,.mf-item{
  display:flex;align-items:flex-start;gap:12px;
  padding:11px 12px;border-radius:calc(var(--radius) - 2px);
  text-decoration:none;color:inherit;transition:background .12s;
}
a.mf-item:hover{background:var(--muted)}
a.mf-item:focus-visible{outline:2px solid var(--ring);outline-offset:-2px}
.mf-item .ico{flex:0 0 auto;width:17px;height:17px;margin-top:2px;color:var(--muted-foreground)}
a.mf-item:hover .ico{color:var(--foreground)}
.mf-item .txt{flex:1;min-width:0}
.mf-item .nome{display:block;font-size:14.5px;font-weight:500;color:var(--foreground)}
.mf-item .desc{display:block;margin-top:2px;font-size:13.5px;line-height:1.5;color:var(--muted-foreground)}
.mf-kbd{
  flex:0 0 auto;font-family:var(--font-mono);font-size:10.5px;color:var(--muted-foreground);
  background:var(--muted);border:1px solid var(--border);border-radius:5px;padding:2px 6px 3px;
  line-height:1;margin-top:3px;
}
.mf-selo{
  flex:0 0 auto;font-family:var(--font-mono);font-size:11px;font-weight:500;
  border-radius:999px;padding:3px 9px;border:1px solid var(--border);
  background:var(--muted);color:var(--muted-foreground);white-space:nowrap;
}
.mf-selo.ok{background:#0F8F68;border-color:#0F8F68;color:#fff}
.mf-selo.falta{background:var(--ring);border-color:var(--ring);color:#fff}

/* ---------------------------------------------------- linha de campo, em duas colunas */
.mf-linhas{display:flex;flex-direction:column}
.mf-linha{
  display:grid;grid-template-columns:264px 1fr;gap:24px;align-items:start;
  padding:15px 0;border-top:1px solid var(--border);
}
.mf-linha:first-child{border-top:0;padding-top:2px}
.mf-linha .rot strong{display:block;font-size:14px;font-weight:500;color:var(--foreground)}
.mf-linha .rot p{margin:3px 0 0;font-size:13px;line-height:1.45;color:var(--muted-foreground)}
.mf-linha .field{gap:6px}
.mf-linha .field > .select,
.mf-linha .field > .input,
.mf-linha .field > .textarea{width:100%}
/* Pendência: 2px na canaleta. É o único laranja que aparece fora do foco. */
.mf-linha.pendente{box-shadow:inset 2px 0 0 var(--ring);padding-left:14px;margin-left:-16px}

.mf-afixo{display:flex;align-items:center;gap:10px}
.mf-afixo .input{flex:1}
.mf-afixo span{font-size:13px;color:var(--muted-foreground);white-space:nowrap}

/* Formulário simples (login, senha, pedido de acesso): campos empilhados com respiro.
   NÃO usar `class="grid gap-4"` aqui — o build do Basecoat traz os COMPONENTES do shadcn, não os
   utilitários do Tailwind, e essas classes não existem. */
.mf-form{display:grid;gap:18px}

/* --------------------------------------------------------------- bloco de link, clicar e copiar */
/* O bloco É o botão: uma afordância, não duas. Diz "copiar" na ponta e confirma ao clicar. */
.link-copiavel{
  display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;
  text-align:left;border:0;cursor:pointer;
  background:var(--foreground);color:#FAFAFA;
  border-radius:calc(var(--radius) - 2px);padding:14px 16px;
  font-family:var(--font-mono);font-size:13px;line-height:1.6;
  transition:background .12s;
}
.link-copiavel:hover{background:#1B2434}
.link-copiavel:focus-visible{outline:2px solid var(--ring);outline-offset:2px}
.link-copiavel .url{min-width:0;word-break:break-all}
.link-copiavel .acao{
  flex:0 0 auto;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;
  color:rgba(250,250,250,.55);transition:color .12s;white-space:nowrap;
}
.link-copiavel:hover .acao{color:rgba(250,250,250,.85)}
.link-copiavel.copiado .acao{color:#6FDCA8}

/* ----------------------------------------------------------------- linha de pessoa/acesso */
.mf-pessoa{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:13px 12px;border-radius:calc(var(--radius) - 2px);
}
.mf-pessoa:hover{background:var(--muted)}
.mf-pessoa .n{font-size:14.5px;font-weight:500}
.mf-pessoa .u{font-family:var(--font-mono);font-size:12px;color:var(--muted-foreground);margin-left:8px}
.mf-pessoa .acoes{display:flex;gap:8px;flex-shrink:0}
.mf-pessoa form{display:inline}
.mf-vazio{margin:10px 12px;font-size:14px;color:var(--muted-foreground)}

.mf-rodape{
  margin-top:30px;padding-top:20px;border-top:1px solid var(--border);
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
}
.mf-dica{font-size:13px;color:var(--muted-foreground)}

.mf-marca{position:fixed;bottom:16px;right:18px;opacity:.3;pointer-events:none}
.mf-marca img{height:19px;display:block}

@media (max-width:760px){
  .mf-linha{grid-template-columns:1fr;gap:8px}
  .mf-palco{padding:28px 16px 68px}
  .mf-marca{display:none}
}
