/* TrendCardápio — base visual compartilhada (painel, cadastro, admin, landing). */
:root {
  --tinta: #17201B;
  --tinta-2: #3F4842;
  --tinta-3: #5C645F;
  --fundo: #F6F5F0;
  --fundo-2: #ECEAE3;
  --cartao: #FFFFFF;
  --linha: #E3E1DA;
  --marca: #C93A22;
  --marca-escura: #9E2A16;
  --verde: #1F4D3A;
  --verde-claro: #E3ECE6;
  --ok: #2E7D4F;
  --aviso: #8A4B00;
  --aviso-claro: #FFF1E0;
  --erro: #A3301B;
  --erro-claro: #FCE8E4;
  --raio: 14px;
  --toque: 44px;
  --titulo: 'Space Grotesk', system-ui, sans-serif;
  --texto: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
}
* { box-sizing: border-box; }
html, body { margin: 0; }
body { font-family: var(--texto); color: var(--tinta); background: var(--fundo); font-size: 15px; line-height: 1.45; -webkit-font-smoothing: antialiased; }
a { color: var(--marca); }
a:hover { color: var(--marca-escura); }
h1, h2, h3 { font-family: var(--titulo); letter-spacing: -.01em; margin: 0; }
h1 { font-size: 30px; line-height: 1.1; }
h2 { font-size: 20px; }
p { margin: 0; }
img { max-width: 100%; }
[hidden] { display: none !important; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Botões */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: var(--toque); padding: 0 18px; border-radius: 12px; border: 1px solid var(--linha); background: var(--cartao); color: var(--tinta); font: 600 14px var(--texto); cursor: pointer; text-decoration: none; white-space: nowrap; }
.btn:hover { border-color: #C9C6BC; color: var(--tinta); }
.btn:disabled { opacity: .5; cursor: not-allowed; }
.btn-marca { background: var(--marca); border-color: var(--marca); color: #fff; }
.btn-marca:hover { background: var(--marca-escura); border-color: var(--marca-escura); color: #fff; }
.btn-escuro { background: var(--tinta); border-color: var(--tinta); color: #fff; }
.btn-escuro:hover { background: #000; color: #fff; }
.btn-verde { background: var(--verde); border-color: var(--verde); color: #fff; }
.btn-verde:hover { background: #163828; color: #fff; }
.btn-texto { border-color: transparent; background: transparent; }
.btn-perigo { color: var(--erro); }
.btn-grande { min-height: 52px; font-size: 15px; padding: 0 24px; }
.btn-bloco { width: 100%; }

/* Formulários */
.campo { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 600; }
.campo small { font-weight: 400; color: var(--tinta-3); }
input[type=text], input[type=email], input[type=password], input[type=tel], input[type=search], input[type=number], input[type=url], select, textarea {
  font: 400 15px var(--texto); color: var(--tinta); min-height: var(--toque); padding: 0 12px; border: 1px solid #D6D3CA; border-radius: 10px; background: #fff; width: 100%;
}
textarea { padding: 10px 12px; min-height: 80px; resize: vertical; }
input:focus, select:focus, textarea:focus, .btn:focus-visible, button:focus-visible, a:focus-visible { outline: 3px solid rgba(201, 58, 34, .35); outline-offset: 1px; }
.interruptor { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: var(--toque); font-weight: 500; cursor: pointer; }
.interruptor input { width: 22px; height: 22px; accent-color: var(--verde); }
.grade { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }

/* Superfícies */
.cartao { background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio); padding: 18px; }
.chip { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; padding: 4px 9px; border-radius: 99px; background: var(--fundo-2); color: var(--tinta-2); letter-spacing: .02em; }
.chip-ok { background: var(--verde-claro); color: var(--verde); }
.chip-aviso { background: var(--aviso-claro); color: var(--aviso); }
.chip-erro { background: var(--erro-claro); color: var(--erro); }
.chip-escuro { background: var(--tinta); color: #fff; }
.mudo { color: var(--tinta-3); }
.pilha { display: flex; flex-direction: column; gap: 12px; }
.linha { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.entre { justify-content: space-between; }
.vazio { padding: 32px 16px; text-align: center; color: var(--tinta-3); }

/* Avisos */
#avisos { position: fixed; left: 50%; bottom: 20px; transform: translateX(-50%); display: flex; flex-direction: column; gap: 8px; z-index: 1000; width: min(440px, calc(100% - 32px)); }
.aviso { background: var(--tinta); color: #fff; padding: 12px 16px; border-radius: 12px; font-size: 14px; box-shadow: 0 8px 24px rgba(0,0,0,.18); }
.aviso-erro { background: var(--erro); }

/* Janela (dialog) */
dialog { border: 0; border-radius: 18px; padding: 0; width: min(520px, calc(100% - 24px)); max-height: calc(100% - 24px); }
dialog::backdrop { background: rgba(20, 24, 22, .5); }
.janela { padding: 20px; display: flex; flex-direction: column; gap: 14px; }
.janela-rodape { display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap; }

/* Topo da plataforma */
.topo { background: #fff; border-bottom: 1px solid var(--linha); }
.topo-dentro { max-width: 1200px; margin: 0 auto; padding: 12px 20px; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.marca { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--tinta); font: 600 17px var(--titulo); }
.marca span.t { width: 32px; height: 32px; border-radius: 9px; background: var(--marca); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; }

@media (max-width: 640px) {
  h1 { font-size: 25px; }
}
.rolar { overflow-x: auto; border: 1px solid var(--linha); border-radius: var(--raio); background: #fff; }
