@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 400; font-display: swap; src: url('fonts/manrope-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 600; font-display: swap; src: url('fonts/manrope-latin-600-normal.woff2') format('woff2'); }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 800; font-display: swap; src: url('fonts/manrope-latin-800-normal.woff2') format('woff2'); }
html, body { font-family: 'Manrope', 'Avenir Next', sans-serif; margin: 0; min-width: 320px; }
#blazor-error-ui { background: #fff3cd; color: #1b1e25; bottom: 0; display: none; left: 0; padding: .6rem 1.25rem; position: fixed; width: 100%; z-index: 1000; }
#blazor-error-ui .dismiss { cursor: pointer; position: absolute; right: .75rem; top: .5rem; }
.foxion-hero { background: radial-gradient(1200px 500px at 80% -10%, rgba(242,106,27,.22), transparent 60%); }
.foxion-numero { font-variant-numeric: tabular-nums; font-weight: 800; letter-spacing: -.02em; }
h1:focus { outline: none; } /* foco programático do FocusOnNavigate: só para leitores de tela */
.foxion-titulo { font-size: clamp(2rem, 5vw, 3.5rem); line-height: 1.1; }
.foxion-faixa { background: var(--mud-palette-surface); border-block: 1px solid var(--mud-palette-lines-default); }
.foxion-lista { margin: 0; padding-left: 1.2rem; }
.foxion-lista li { margin-bottom: .5rem; line-height: 1.5; }
.foxion-rodape { border-top: 1px solid var(--mud-palette-lines-default); }
/* Painel do pedido do PDV: fica visível ao rolar, mas nunca passa por baixo da barra superior e rola por dentro se for alto. */
.foxion-pedido { position: sticky; top: 72px; max-height: calc(100vh - 88px); overflow-y: auto; }
@media (max-width: 959px) { .foxion-pedido { position: static; max-height: none; overflow: visible; } }
/* Barra superior fixa (64 px): foco por teclado, âncoras e rolagem automática não podem parar debaixo dela. */
html { scroll-padding-top: 80px; scroll-padding-bottom: 16px; }
.foxion-alvo { min-height: 44px; min-width: 44px; } /* alvo de toque mínimo (WCAG 2.5.8) */
.foxion-pular { position: absolute; left: 8px; top: -60px; z-index: 2000; background: var(--mud-palette-surface); color: var(--mud-palette-text-primary); padding: 10px 16px; border-radius: 8px; border: 2px solid var(--mud-palette-primary); }
.foxion-pular:focus { top: 8px; }
:focus-visible { outline: 3px solid var(--mud-palette-primary); outline-offset: 2px; }
#conteudo:focus { outline: none; }
.foxion-aviso { display: flex; gap: .6rem; align-items: flex-start; padding: .7rem .9rem; border-radius: 10px;
  border: 1px solid var(--mud-palette-lines-default); border-left-width: 5px;
  background: var(--mud-palette-surface); color: var(--mud-palette-text-primary); }
.foxion-aviso-informacao { border-left-color: var(--mud-palette-secondary); }
.foxion-aviso-sucesso { border-left-color: var(--mud-palette-success); }
.foxion-aviso-atencao { border-left-color: var(--mud-palette-warning); }
.foxion-aviso-informacao .foxion-aviso-icone { color: var(--mud-palette-secondary); }
.foxion-aviso-sucesso .foxion-aviso-icone { color: var(--mud-palette-success); }
.foxion-aviso-atencao .foxion-aviso-icone { color: var(--mud-palette-warning); }
/* Texto só para leitores de tela (ex.: região aria-live que anuncia mudanças). */
.foxion-so-leitor { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* ---- Painel do super admin ---- */
.admin-login { min-height: 100vh; display: grid; place-items: center; padding: 1rem; background: #f6f3ee; color: #1a1c22; }
.admin-login-cartao { width: 100%; max-width: 420px; background: #fff; border: 1px solid #e3ddd2; border-radius: 16px; padding: 2rem; box-shadow: 0 8px 30px rgba(0,0,0,.06); }
.admin-login h1 { font-size: 1.4rem; margin: 0 0 .25rem; }
.admin-login p { margin: 0 0 1.25rem; color: #4a4d57; }
.admin-login label { display: block; font-weight: 600; margin: .9rem 0 .3rem; }
.admin-login input { width: 100%; padding: .7rem .8rem; font-size: 1rem; border: 1px solid #9b9486; border-radius: 10px; background: #fff; color: #1a1c22; box-sizing: border-box; }
.admin-login input:focus-visible, .admin-login button:focus-visible { outline: 3px solid #B8500A; outline-offset: 2px; }
.admin-login button { width: 100%; margin-top: 1.25rem; padding: .8rem; font-size: 1rem; font-weight: 700; border: 0; border-radius: 10px; background: #B8500A; color: #fff; cursor: pointer; }
.admin-login .erro { margin-top: 1rem; padding: .7rem .9rem; border-radius: 10px; border-left: 4px solid #B3261E; background: #fdeceb; color: #1a1c22; }
@media (prefers-color-scheme: dark) {
  .admin-login { background: #111318; color: #ececf1; }
  .admin-login-cartao { background: #1a1d24; border-color: #2c303a; }
  .admin-login p { color: #b8bcc8; }
  .admin-login input { background: #111318; color: #ececf1; border-color: #6b7080; }
  .admin-login button { background: #E8792B; color: #111318; }
  .admin-login .erro { background: #3a1d1b; color: #ececf1; }
}
.admin-mono { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.admin-doc-previa { max-width: 75ch; line-height: 1.6; }
.admin-doc-previa table { border-collapse: collapse; width: 100%; margin: 1rem 0; }
.admin-doc-previa th, .admin-doc-previa td { border: 1px solid var(--mud-palette-lines-default); padding: .4rem .6rem; text-align: left; vertical-align: top; }

/* ---- Planos e páginas legais ---- */
.foxion-plano-destaque { border: 2px solid var(--mud-palette-primary) !important; }
.foxion-por-mes { font-size: 1rem; font-weight: 500; opacity: .8; }
.foxion-link-rodape { margin-right: 1rem; display: inline-block; padding: .25rem 0; color: inherit; text-decoration: underline; }
.foxion-documento { line-height: 1.7; }
.foxion-documento h1, .foxion-documento h2, .foxion-documento h3 { margin: 1.5rem 0 .5rem; }
.foxion-documento table { border-collapse: collapse; width: 100%; margin: 1rem 0; display: block; overflow-x: auto; }
.foxion-documento th, .foxion-documento td { border: 1px solid var(--mud-palette-lines-default); padding: .4rem .6rem; text-align: left; vertical-align: top; }
