:root {
    --verde-950: #102a25;
    --verde-900: #163c34;
    --verde-800: #1e5045;
    --verde-700: #26705f;
    --verde-600: #2f8b73;
    --verde-100: #dff2eb;
    --verde-50: #eef9f5;
    --laranja: #f28c48;
    --laranja-claro: #fff0e5;
    --azul: #3b72cc;
    --vermelho: #c64b4b;
    --amarelo: #b87812;
    --tinta: #1c2926;
    --texto-suave: #65736f;
    --borda: #e2e8e5;
    --fundo: #f4f7f5;
    --branco: #ffffff;
    --sombra: 0 12px 35px rgba(24, 54, 47, .08);
    --raio: 18px;
}

* { box-sizing: border-box; }
html { font-size: 16px; }
body { margin: 0; color: var(--tinta); background: var(--fundo); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.45; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 0; font-size: clamp(1.55rem, 3vw, 2rem); line-height: 1.15; letter-spacing: -.035em; }
h2 { margin-bottom: .35rem; font-size: 1.15rem; letter-spacing: -.02em; }
.estrutura { min-height: 100vh; display: grid; grid-template-columns: 250px minmax(0, 1fr); }
.barra-lateral { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; padding: 28px 18px 20px; overflow-y: auto; background: var(--verde-950); color: #dceae5; z-index: 30; }
.marca { display: flex; align-items: center; gap: 12px; padding: 0 9px; }
.marca-simbolo { width: 42px; height: 42px; display: inline-grid; place-items: center; flex: 0 0 auto; border-radius: 13px; background: var(--laranja); color: white; font-weight: 800; font-size: 1.3rem; box-shadow: 0 7px 18px rgba(242, 140, 72, .25); }
.marca strong, .marca small { display: block; }
.marca strong { color: white; letter-spacing: -.02em; font-size: 1.05rem; }
.marca small { color: #96aea7; margin-top: 1px; font-size: .72rem; }
.menu-principal { display: flex; flex-direction: column; gap: 7px; margin-top: 48px; }
.menu-principal a { display: flex; align-items: center; gap: 13px; padding: 12px 13px; border-radius: 12px; color: #acc1bb; font-size: .91rem; font-weight: 550; transition: .18s ease; }
.menu-principal a:hover { color: white; background: rgba(255,255,255,.06); }
.menu-principal a.ativo { color: white; background: var(--verde-800); box-shadow: inset 3px 0 var(--laranja); }
.icone-menu { width: 23px; font-size: 1.2rem; text-align: center; color: #7fa398; }
.menu-principal a.ativo .icone-menu { color: var(--laranja); }
.rodape-menu { margin-top: auto; display: flex; align-items: center; gap: 7px; border-top: 1px solid rgba(255,255,255,.09); padding-top: 18px; }
.perfil-resumo { display: flex; align-items: center; min-width: 0; gap: 10px; padding: 5px; flex: 1; }
.perfil-resumo > span:last-child { min-width: 0; }
.perfil-resumo strong, .perfil-resumo small { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.perfil-resumo strong { color: white; font-size: .82rem; }
.perfil-resumo small { color: #91aaa3; font-size: .68rem; text-transform: capitalize; }
.avatar { width: 34px; height: 34px; display: inline-grid; place-items: center; border-radius: 50%; background: var(--verde-700); color: white; font-weight: 750; }
.botao-sair { border: 0; background: transparent; color: #91aaa3; cursor: pointer; padding: 8px; font-size: 1.25rem; }
.conteudo-principal { width: 100%; min-width: 0; padding: 30px clamp(22px, 4vw, 54px) 60px; }
.cabecalho-pagina { min-height: 61px; display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 26px; }
.sobretitulo { margin-bottom: 5px; color: var(--verde-600); font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .13em; }
.cabecalho-data { text-align: right; color: var(--tinta); font-weight: 700; font-size: .85rem; }
.cabecalho-data small { display: block; color: var(--texto-suave); font-weight: 500; }
.menu-movel { display: none; border: 0; background: white; border-radius: 10px; padding: 9px 12px; box-shadow: var(--sombra); cursor: pointer; }
.grade { display: grid; gap: 20px; }
.grade-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grade-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grade-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grade-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.cartao { min-width: 0; background: var(--branco); border: 1px solid rgba(31, 68, 60, .06); border-radius: var(--raio); padding: 22px; box-shadow: var(--sombra); }
.cabecalho-cartao { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.cabecalho-cartao p { margin-bottom: 3px; }
.cabecalho-cartao h2 { margin: 0; }
.cartao-indicador { position: relative; overflow: hidden; padding: 20px; }
.cartao-indicador::after { content: ""; position: absolute; width: 70px; height: 70px; right: -22px; top: -22px; border-radius: 50%; background: var(--verde-100); opacity: .75; }
.cartao-indicador .rotulo { color: var(--texto-suave); font-size: .76rem; font-weight: 650; }
.cartao-indicador strong { display: block; margin-top: 12px; font-size: 1.65rem; letter-spacing: -.04em; }
.cartao-indicador small { color: var(--texto-suave); font-size: .71rem; }
.cartao-indicador.destaque { color: white; background: var(--verde-800); }
.cartao-indicador.destaque .rotulo, .cartao-indicador.destaque small { color: #bad2cb; }
.cartao-indicador.destaque::after { background: var(--laranja); opacity: .35; }
.secao { margin-top: 22px; }
.tabela-responsiva { width: 100%; overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: .84rem; }
th { padding: 11px 12px; text-align: left; color: var(--texto-suave); font-size: .66rem; text-transform: uppercase; letter-spacing: .07em; border-bottom: 1px solid var(--borda); white-space: nowrap; }
td { padding: 14px 12px; border-bottom: 1px solid #edf1ef; vertical-align: middle; }
tbody tr:last-child td { border-bottom: 0; }
tbody tr:hover { background: #f9fbfa; }
.texto-direita { text-align: right; }
.texto-centro { text-align: center; }
.texto-suave { color: var(--texto-suave); }
.texto-perigo { color: var(--vermelho); }
.texto-sucesso { color: var(--verde-600); }
.fonte-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .8rem; }
.etiqueta { display: inline-flex; align-items: center; border-radius: 999px; padding: 4px 9px; font-size: .67rem; font-weight: 750; white-space: nowrap; }
.etiqueta-sucesso { color: #216c58; background: var(--verde-100); }
.etiqueta-alerta { color: #9a6010; background: #fff2d8; }
.etiqueta-perigo { color: #9f3939; background: #ffe7e7; }
.etiqueta-neutra { color: #596965; background: #edf1ef; }
.botao { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 42px; padding: 10px 16px; border: 1px solid transparent; border-radius: 11px; cursor: pointer; font-size: .82rem; font-weight: 750; transition: .18s ease; }
.botao:hover { transform: translateY(-1px); }
.botao:disabled { opacity: .55; cursor: not-allowed; transform: none; }
.botao-primario { color: white; background: var(--verde-700); box-shadow: 0 7px 17px rgba(38, 112, 95, .18); }
.botao-primario:hover { background: var(--verde-800); }
.botao-secundario { color: var(--verde-800); background: var(--verde-50); border-color: #d8ebe4; }
.botao-perigo { color: var(--vermelho); background: #fff1f1; border-color: #f4dcdc; }
.botao-laranja { color: white; background: var(--laranja); }
.botao-largo { width: 100%; }
.botao-pequeno { min-height: 32px; padding: 6px 10px; font-size: .72rem; border-radius: 8px; }
.grupo-botoes { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.formulario { width: 100%; }
.formulario.empilhado { display: flex; flex-direction: column; gap: 15px; }
.formulario .linha { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.formulario .linha-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
label { display: flex; flex-direction: column; gap: 7px; color: #45524e; font-size: .76rem; font-weight: 700; }
input, select, textarea { width: 100%; border: 1px solid #d9e1de; border-radius: 10px; padding: 11px 12px; color: var(--tinta); background: white; outline: none; transition: border-color .18s, box-shadow .18s; }
textarea { resize: vertical; min-height: 88px; }
input:focus, select:focus, textarea:focus { border-color: var(--verde-600); box-shadow: 0 0 0 3px rgba(47, 139, 115, .11); }
input::placeholder, textarea::placeholder { color: #a4afac; }
.campo-com-acao { display: flex; gap: 8px; }
.campo-com-acao input { flex: 1; }
.ajuda { margin: -4px 0 0; color: var(--texto-suave); font-size: .7rem; font-weight: 450; }
.alerta { margin-bottom: 18px; padding: 12px 15px; border-radius: 11px; font-size: .8rem; font-weight: 650; }
.alerta-sucesso { color: #1f6c58; background: #e3f4ed; border: 1px solid #c9e9dd; }
.alerta-erro { color: #a13b3b; background: #fff0f0; border: 1px solid #f1d5d5; }
.alerta-aviso { color: #8b5c13; background: #fff5df; border: 1px solid #f1dfb9; }
.alerta-flutuante { position: fixed; right: 28px; top: 24px; z-index: 100; max-width: min(430px, calc(100vw - 40px)); box-shadow: var(--sombra); animation: entrada-alerta .2s ease; }
@keyframes entrada-alerta { from { transform: translateY(-8px); opacity: 0; } }
.vazio { display: grid; place-items: center; min-height: 160px; padding: 30px; text-align: center; color: var(--texto-suave); }
.vazio strong { display: block; color: var(--tinta); margin-bottom: 5px; }
.modal { position: fixed; inset: 0; z-index: 70; display: none; place-items: center; padding: 20px; background: rgba(12, 31, 27, .56); backdrop-filter: blur(3px); }
.modal.aberto { display: grid; }
.modal-conteudo { width: min(680px, 100%); max-height: calc(100vh - 40px); overflow-y: auto; background: white; border-radius: 20px; padding: 24px; box-shadow: 0 30px 80px rgba(6, 24, 19, .25); animation: entrada-modal .18s ease; }
#modal-produto .modal-conteudo { width: min(960px, 100%); }
@keyframes entrada-modal { from { transform: translateY(10px) scale(.985); opacity: 0; } }
.fechar-modal { width: 34px; height: 34px; border: 0; border-radius: 50%; color: var(--texto-suave); background: var(--fundo); cursor: pointer; }
.carregando { pointer-events: none; opacity: .62; }

/* Autenticação */
.pagina-autenticacao { min-height: 100vh; background: #f5f7f6; }
.autenticacao-conteudo { min-height: 100vh; display: grid; grid-template-columns: minmax(320px, 1.05fr) minmax(390px, .95fr); }
.autenticacao-apresentacao { position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: space-between; padding: clamp(34px, 6vw, 72px); color: white; background: radial-gradient(circle at 80% 15%, rgba(242,140,72,.19), transparent 27%), linear-gradient(145deg, var(--verde-950), var(--verde-800)); }
.autenticacao-apresentacao::after { content: ""; position: absolute; width: 420px; height: 420px; right: -210px; bottom: -180px; border: 1px solid rgba(255,255,255,.13); border-radius: 50%; box-shadow: 0 0 0 70px rgba(255,255,255,.025), 0 0 0 140px rgba(255,255,255,.02); }
.marca-clara { padding: 0; }
.autenticacao-apresentacao > div:nth-child(2) { position: relative; z-index: 1; max-width: 600px; }
.autenticacao-apresentacao h1 { max-width: 580px; font-size: clamp(2.2rem, 5vw, 4.2rem); line-height: 1.02; }
.autenticacao-apresentacao p:not(.sobretitulo) { max-width: 500px; margin-top: 24px; color: #b9cec8; font-size: 1rem; }
.autenticacao-apresentacao > small { color: #849f97; }
.cartao-autenticacao { align-self: center; justify-self: center; width: min(430px, calc(100% - 48px)); padding: 38px; border-radius: 22px; background: white; box-shadow: var(--sombra); }
.cabecalho-formulario { margin-bottom: 25px; }
.cabecalho-formulario h2 { font-size: 1.65rem; }
.cabecalho-formulario > p:last-child { color: var(--texto-suave); font-size: .82rem; }
.nota-seguranca { display: block; margin-top: 20px; color: var(--texto-suave); text-align: center; font-size: .66rem; }
.erro-pagina { text-align: center; }
.erro-pagina .marca-simbolo { margin: 0 auto 25px; }
.erro-pagina p:not(.sobretitulo) { color: var(--texto-suave); }
.perfil-pagina { max-width: 900px; }
.perfil-cartao { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; min-height: 330px; }
.avatar-grande { width: 76px; height: 76px; margin-bottom: 17px; font-size: 1.7rem; }
.perfil-cartao p { color: var(--texto-suave); }

/* Listas, estoque e caixa */
.produto-identificacao { display: flex; align-items: center; gap: 11px; min-width: 220px; }
.produto-identificacao > img { width: 46px; height: 46px; flex: 0 0 46px; border: 1px solid var(--borda); border-radius: 11px; background: var(--fundo); object-fit: cover; }
.produto-identificacao-cabecalho { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.produto-opcoes-badge { white-space: nowrap; color: var(--verde-700); background: var(--verde-100); }
.linha-produto-agrupado { background: linear-gradient(90deg, rgba(47, 139, 115, .035), transparent 24%); }
.codigo-produto-lista small, .codigo-produto-lista strong, .saldo-produto-agregado small { display: block; }
.codigo-produto-lista small, .saldo-produto-agregado small { color: var(--texto-suave); font-family: inherit; font-size: .58rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.codigo-produto-lista strong { margin-top: 2px; color: var(--verde-700); font-size: .78rem; }
.saldo-produto-agregado small { margin-top: 3px; }
.status-loja { display: inline-block; margin-top: 5px; font-size: .64rem; }
.campo-foto-produto { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 18px; align-items: center; padding: 15px; border: 1px solid var(--borda); border-radius: 14px; background: var(--fundo); }
.campo-foto-produto[hidden] { display: none; }
.campo-foto-produto > img { width: 112px; height: 112px; border: 1px solid var(--borda); border-radius: 13px; background: white; object-fit: cover; }
.campo-foto-produto strong { display: block; margin-bottom: 3px; }
.campo-foto-produto p { margin: 0 0 10px; }
.campo-foto-produto input[type="file"] { width: min(100%, 420px); margin: 0 8px 8px 0; padding: 7px; background: white; font-size: .72rem; }
.variacoes-produto { padding: 15px; border: 1px solid var(--borda); border-radius: 14px; background: #fbfdfc; }
.variacoes-cabecalho, .variacoes-lista-cabecalho { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.variacoes-cabecalho p, .variacoes-lista-cabecalho p { margin: 0; }
.variacoes-cabecalho .sobretitulo { margin-bottom: 3px; }
.variacoes-cabecalho > div { min-width: 0; }
#configuracao-variacoes { margin-top: 15px; }
#configuracao-variacoes > label, #campo-variacao-individual > label { display: flex; flex-direction: column; gap: 6px; }
#campo-variacao-individual, #campo-multiplas-variacoes { margin-top: 14px; }
.variacoes-lista-cabecalho { align-items: flex-end; margin-bottom: 10px; }
.variacoes-lista-cabecalho strong, .variacoes-lista-cabecalho span { display: block; }
.lista-variacoes { display: grid; gap: 9px; }
.linha-variacao { min-width: 0; margin: 0; padding: 10px 11px 12px; border: 1px solid #dce7e3; border-radius: 11px; background: white; }
.linha-variacao-persistida { border-color: #b9d7cd; background: #fbfefd; }
.linha-variacao legend { padding: 0 5px; color: var(--verde-700); font-size: .65rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.estado-linha-variacao { display: inline-block; margin-left: 5px; padding: 2px 6px; border-radius: 999px; color: #6b7e78; background: #edf3f1; font-size: .55rem; letter-spacing: .03em; }
.linha-variacao-persistida .estado-linha-variacao { color: var(--verde-700); background: var(--verde-100); }
.linha-variacao-campos { display: grid; grid-template-columns: 1.25fr 1fr 1fr .7fr auto; gap: 8px; align-items: end; }
.linha-variacao label { min-width: 0; font-size: .62rem; }
.linha-variacao input { min-width: 0; padding: 8px; font-size: .72rem; }
.remover-variacao { width: 34px; height: 34px; border: 0; border-radius: 9px; color: var(--vermelho); background: #fff0f0; font-size: 1.15rem; cursor: pointer; }
.remover-variacao:hover:not(:disabled) { background: #ffe1e1; }
.remover-variacao:disabled { opacity: .35; cursor: not-allowed; }
.resumo-estoque-variacoes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 12px; padding: 12px; border: 1px solid #dce7e3; border-radius: 11px; background: #f4f8f6; }
.resumo-estoque-variacoes > span { color: var(--texto-suave); font-size: .62rem; text-transform: uppercase; letter-spacing: .05em; }
.resumo-estoque-variacoes > span strong { display: block; margin-top: 3px; color: var(--tinta); font-size: .92rem; }
.resumo-estoque-variacoes > p { grid-column: 1 / -1; margin: 2px 0 0; font-size: .7rem; font-weight: 700; }
#controle-multiplas-variacoes:has(input:disabled) { cursor: default; opacity: .8; }
.controles-visibilidade-produto { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 24px; }
.busca-lista { display: flex; gap: 8px; }
.busca-lista input { width: min(290px, 36vw); }
.linha-checkbox { flex-direction: row; align-items: center; }
.linha-checkbox input { width: auto; }
.alinhado-direita { justify-content: flex-end; }
.compacto { margin: 0; padding: 10px 12px; }
.estoque-grade { grid-template-columns: minmax(280px, .72fr) minmax(560px, 1.8fr); align-items: start; }
.resumo-saldo { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; padding: 12px; border-radius: 12px; background: var(--fundo); }
.resumo-saldo span { color: var(--texto-suave); font-size: .64rem; text-transform: uppercase; letter-spacing: .05em; }
.resumo-saldo strong { display: block; margin-top: 3px; color: var(--tinta); font-size: .9rem; }
.tabela-alta { max-height: 560px; overflow-y: auto; }
.tabela-alta thead { position: sticky; top: 0; background: white; z-index: 1; }
.caixa-vazio { min-height: calc(100vh - 170px); display: grid; place-items: center; }
.caixa-abertura { width: min(510px, 100%); text-align: center; padding: 38px; }
.caixa-abertura .icone-grande { margin: 0 auto 20px; }
.caixa-abertura .formulario { margin-top: 26px; text-align: left; }
.icone-grande { width: 70px; height: 70px; display: grid; place-items: center; border-radius: 22px; color: var(--laranja); background: var(--laranja-claro); font-size: 2rem; }
.indicador-texto { font-size: 1.25rem !important; }
.caixa-grade { grid-template-columns: minmax(0, 1.7fr) minmax(280px, .68fr); align-items: start; }
.acoes-caixa { gap: 20px; }
.cartao-fechamento { border-color: #f0dddd; }
.filtro-status select { min-width: 220px; }
.comprovante-resumo { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 20px; }
.comprovante-resumo span { padding: 12px; border-radius: 11px; background: var(--fundo); color: var(--texto-suave); font-size: .68rem; }
.comprovante-resumo strong { display: block; margin-top: 3px; color: var(--tinta); font-size: .8rem; }
.comprovante-totais { width: min(320px, 100%); margin: 20px 0 0 auto; }
.comprovante-totais p { display: flex; justify-content: space-between; gap: 15px; margin: 0; padding: 6px 0; color: var(--texto-suave); font-size: .78rem; }
.comprovante-totais p.total { margin-top: 7px; padding-top: 12px; border-top: 1px solid var(--borda); color: var(--tinta); font-size: 1rem; }
.acoes-comprovante { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--borda); }
.acoes-comprovante small { max-width: 340px; color: var(--texto-suave); text-align: right; }

/* Frente de caixa */
.pdv { display: grid; grid-template-columns: minmax(0, 1fr) 345px; gap: 20px; min-height: calc(100vh - 145px); }
.pdv-venda { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.leitor-codigo { position: relative; display: grid; grid-template-columns: auto minmax(220px, 1fr) auto; align-items: center; gap: 14px; padding: 13px 15px; border: 1px solid #dbe5e1; border-radius: 15px; background: white; box-shadow: var(--sombra); }
.leitor-icone { width: 43px; height: 43px; display: grid; place-items: center; border-radius: 12px; color: var(--verde-700); background: var(--verde-50); font-size: 1.4rem; }
.leitor-codigo label { gap: 2px; }
.leitor-codigo label span { color: var(--texto-suave); font-size: .65rem; }
.leitor-codigo input { padding: 2px 0; border: 0; border-radius: 0; box-shadow: none; font-size: 1.1rem; font-weight: 650; }
.sugestoes-produto-pdv { position: absolute; z-index: 30; top: calc(100% + 6px); left: 44px; width: min(620px, calc(100% - 60px)); max-height: 380px; overflow: auto; border: 1px solid var(--borda); border-radius: 12px; background: #fff; box-shadow: 0 16px 35px rgba(20,54,47,.18); }
.sugestao-produto-pdv { width: 100%; display: flex; align-items: center; gap: 11px; padding: 10px; border: 0; border-bottom: 1px solid var(--borda); background: #fff; text-align: left; cursor: pointer; }.sugestao-produto-pdv:last-child { border-bottom: 0; }.sugestao-produto-pdv:hover { background: var(--verde-50); }.sugestao-produto-pdv img, .sugestao-produto-pdv .sem-foto { width: 42px; height: 42px; flex: 0 0 auto; border-radius: 8px; object-fit: cover; background: var(--verde-100); }.sugestao-produto-pdv .sem-foto { display: grid; place-items: center; color: var(--verde-700); }.sugestao-produto-pdv span { min-width: 0; flex: 1; }.sugestao-produto-pdv strong, .sugestao-produto-pdv small { display: block; }.sugestao-produto-pdv small { overflow: hidden; color: var(--texto-suave); text-overflow: ellipsis; white-space: nowrap; }.sugestao-produto-pdv b { color: var(--verde-700); white-space: nowrap; }
.carrinho-pdv { flex: 1; padding: 0; overflow: hidden; }
.carrinho-cabecalho { padding: 20px 22px 0; }
.contador-itens { display: inline-grid; place-items: center; min-width: 25px; height: 25px; margin-left: 5px; padding: 0 6px; border-radius: 999px; color: var(--verde-700); background: var(--verde-100); font-size: .7rem; vertical-align: middle; }
.carrinho-tabela { position: relative; min-height: 360px; max-height: calc(100vh - 300px); overflow-y: auto; }
.carrinho-tabela thead { position: sticky; top: 0; z-index: 2; background: white; }
.carrinho-tabela th:first-child, .carrinho-tabela td:first-child { padding-left: 22px; }
.carrinho-tabela th:last-child, .carrinho-tabela td:last-child { padding-right: 22px; }
.quantidade-carrinho { width: 84px; padding: 7px 8px; text-align: center; }
.remover-item { width: 28px; height: 28px; border: 0; border-radius: 8px; color: var(--vermelho); background: #fff0f0; cursor: pointer; }
.carrinho-vazio { position: absolute; inset: 60px 0 0; display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--texto-suave); }
.carrinho-vazio[hidden] { display: none; }
.carrinho-vazio > span { margin-bottom: 11px; color: #b8c7c2; font-size: 2.3rem; }
.carrinho-vazio strong { color: var(--tinta); }
.carrinho-vazio p { margin: 4px 0; font-size: .78rem; }
.resumo-pdv { position: sticky; top: 25px; align-self: start; padding: 22px; background: var(--verde-950); color: white; }
.resumo-topo { display: flex; align-items: start; justify-content: space-between; gap: 12px; padding-bottom: 18px; border-bottom: 1px solid rgba(255,255,255,.1); }
.resumo-topo small { color: #8fa9a1; text-align: right; font-size: .65rem; }
.resumo-topo small strong { color: white; }
.totais-pdv { padding: 21px 0; }
.totais-pdv p, .desconto-pdv { display: flex; flex-direction: row; align-items: center; justify-content: space-between; margin-bottom: 13px; color: #a9bfB8; font-size: .75rem; }
.totais-pdv p strong { color: white; }
.desconto-pdv input { width: 100px; padding: 6px 8px; border-color: rgba(255,255,255,.1); color: white; background: rgba(255,255,255,.07); text-align: right; }
.total-pdv { display: flex; justify-content: space-between; align-items: end; margin-top: 17px; padding-top: 17px; border-top: 1px solid rgba(255,255,255,.1); }
.total-pdv span { color: #a9bfb8; font-size: .75rem; }
.total-pdv strong { color: #ffb27b; font-size: 1.65rem; letter-spacing: -.04em; }
.pagamento-pdv { padding-top: 18px; border-top: 1px solid rgba(255,255,255,.1); }
.rotulo-bloco { margin-bottom: 9px; color: #a9bfb8; font-size: .68rem; text-transform: uppercase; letter-spacing: .06em; }
.formas-pagamento { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; }
.formas-pagamento:has(input[value="FIADO"]) { grid-template-columns: repeat(2, 1fr); }
.formas-pagamento label { display: block; cursor: pointer; }
.formas-pagamento input { position: absolute; opacity: 0; pointer-events: none; }
.formas-pagamento span { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 9px 5px; border: 1px solid rgba(255,255,255,.1); border-radius: 10px; color: #a8beb7; background: rgba(255,255,255,.04); font-size: .63rem; transition: .16s; }
.formas-pagamento b { color: white; font-size: .88rem; }
.formas-pagamento input:checked + span { color: white; border-color: var(--laranja); background: rgba(242,140,72,.14); }
.pagamento-pdv > label { margin-top: 13px; color: #a9bfb8; }
.pagamento-pdv input { border-color: rgba(255,255,255,.12); color: white; background: rgba(255,255,255,.07); }
.pagamento-pdv small { color: #829d95; font-size: .65rem; }
.cliente-fiado-pdv { margin-top: 13px; }
.cliente-fiado-pdv[hidden] { display: none; }
.rotulo-cliente-fiado { display: block; margin-bottom: 6px; color: #a9bfb8; font-size: .7rem; font-weight: 700; }
.seletor-cliente-fiado { width: 100%; padding: 10px 11px; border: 1px solid rgba(255,255,255,.13); border-radius: 10px; color: white; background: rgba(255,255,255,.07); text-align: left; cursor: pointer; }
.seletor-cliente-fiado span, .seletor-cliente-fiado small { display: block; }
.seletor-cliente-fiado small { margin-top: 2px; color: #829d95; }
.limpar-cliente-fiado { margin-top: 5px; padding: 2px 0; border: 0; color: #ffb27b; background: transparent; font-size: .66rem; cursor: pointer; }
.botao-finalizar { width: 100%; margin-top: 18px; justify-content: space-between; padding: 13px 16px; }
.botao-finalizar span { padding: 2px 6px; border-radius: 5px; background: rgba(255,255,255,.2); font-size: .62rem; }
.atalhos-pdv { display: flex; justify-content: center; gap: 11px; margin: 12px 0 0; color: #78948c; font-size: .59rem; }
kbd { padding: 2px 4px; border: 1px solid rgba(255,255,255,.16); border-radius: 4px; font-family: inherit; }
.modal-busca { width: min(600px, 100%); }
.resultados-busca { min-height: 200px; max-height: 430px; margin-top: 15px; overflow-y: auto; }
.resultado-produto { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 13px 10px; border: 0; border-bottom: 1px solid var(--borda); background: white; text-align: left; cursor: pointer; }
.resultado-produto:hover { background: var(--verde-50); }
.resultado-produto strong, .resultado-produto small { display: block; }
.resultado-produto small { margin-top: 3px; color: var(--texto-suave); }
.resultado-produto b { color: var(--verde-700); }
.resultado-cliente-fiado { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 10px; border: 0; border-bottom: 1px solid var(--borda); background: white; text-align: left; cursor: pointer; }
.resultado-cliente-fiado:hover { background: var(--verde-50); }
.resultado-cliente-fiado > span:last-child { text-align: right; }
.resultado-cliente-fiado strong, .resultado-cliente-fiado small, .resultado-cliente-fiado b { display: block; }
.resultado-cliente-fiado small { color: var(--texto-suave); }
.resultado-cliente-fiado b { color: var(--vermelho); }
.modal-cliente-fiado-pdv { width: min(600px, 100%); }
.modal-pagamento { width: min(520px, 100%); text-align: center; }
.estado-pagamento { display: flex; flex-direction: column; align-items: center; }
.pagamento-animacao { width: 74px; height: 74px; display: grid; place-items: center; margin-bottom: 20px; border-radius: 50%; background: var(--verde-50); color: var(--verde-700); font-size: 1.7rem; font-weight: 800; }
.pagamento-animacao.processando { animation: pulsar 1.5s ease-in-out infinite; }
.pagamento-animacao.aprovado { color: white; background: var(--verde-600); animation: none; }
@keyframes pulsar { 50% { box-shadow: 0 0 0 13px rgba(47,139,115,.08); } }
.estado-pagamento > p:not(.sobretitulo) { max-width: 410px; color: var(--texto-suave); }
.qr-pix { width: 220px; height: 220px; object-fit: contain; margin: 8px 0 15px; border: 1px solid var(--borda); border-radius: 14px; }
.copia-cola { width: 100%; display: flex; gap: 8px; margin-bottom: 16px; }
.copia-cola input { min-width: 0; font-family: ui-monospace, monospace; font-size: .68rem; }
.centralizado { justify-content: center; }

/* Clientes e contas no fiado */
.linha-inativa { opacity: .58; }
.modal-fiado-detalhe { width: min(980px, 100%); }
.cabecalho-subsecao-fiado { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 10px; }
.cabecalho-subsecao-fiado h3 { margin: 0; }
.vazio-compacto { min-height: 90px; padding: 16px; }
.resumo-recebimento-fiado { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.resumo-recebimento-fiado span { padding: 12px; border-radius: 11px; color: var(--texto-suave); background: var(--fundo); font-size: .68rem; }
.resumo-recebimento-fiado strong { display: block; margin-top: 3px; color: var(--tinta); font-size: .82rem; }

/* Modos isolados: PDV e consulta de preços */
.modo-pdv { min-height: 100vh; background: #edf2ef; }
.cabecalho-pdv-isolado, .cabecalho-consulta { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 12px 24px; border-bottom: 1px solid var(--borda); background: white; }
.cabecalho-pdv-isolado { position: sticky; top: 0; z-index: 40; }
.cabecalho-pdv-isolado .marca, .cabecalho-consulta .marca { padding: 0; }
.cabecalho-pdv-isolado .marca-simbolo, .cabecalho-consulta .marca-simbolo { width: 38px; height: 38px; border-radius: 11px; }
.cabecalho-pdv-isolado .marca strong, .cabecalho-consulta .marca strong { color: var(--tinta); }
.cabecalho-pdv-isolado .marca small, .cabecalho-consulta .marca small { color: var(--texto-suave); }
.acoes-pdv-isolado { display: flex; align-items: center; gap: 10px; }
.acoes-pdv-isolado form { margin: 0; }
.operador-pdv { display: flex; align-items: center; gap: 9px; padding: 0 9px; font-size: .78rem; font-weight: 700; }
.operador-pdv small { display: block; color: var(--texto-suave); font-size: .62rem; font-weight: 500; }
.conteudo-pdv-isolado { padding: 18px 22px 28px; }
.modo-pdv .pdv { min-height: calc(100vh - 118px); }
.modo-pdv .resumo-pdv { top: 90px; }
.modo-consulta { min-height: 100vh; background: radial-gradient(circle at 20% 10%, rgba(47,139,115,.17), transparent 34%), linear-gradient(145deg, #f5f8f6, #e6efeb); }
.cabecalho-consulta { background: rgba(255,255,255,.88); backdrop-filter: blur(12px); }
.conteudo-consulta { width: min(1180px, calc(100% - 40px)); margin: 0 auto; padding: clamp(35px, 7vh, 80px) 0; }
.consulta-precos-tela { display: grid; grid-template-columns: minmax(350px, .8fr) minmax(470px, 1.2fr); gap: clamp(28px, 6vw, 80px); align-items: center; min-height: calc(100vh - 230px); }
.consulta-chamada h1 { max-width: 520px; font-size: clamp(2.4rem, 5vw, 4.7rem); }
.consulta-chamada > p:not(.sobretitulo) { color: var(--texto-suave); }
.leitor-consulta { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px; margin-top: 28px; padding: 10px; border: 1px solid #d7e3df; border-radius: 16px; background: white; box-shadow: var(--sombra); }
.leitor-consulta > span { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 11px; color: var(--verde-700); background: var(--verde-50); font-size: 1.35rem; }
.leitor-consulta input { border: 0; box-shadow: none; font-size: 1.05rem; }
.resultado-consulta-preco { min-height: 470px; display: grid; place-items: center; padding: clamp(30px, 5vw, 60px); border-radius: 30px; background: var(--verde-950); color: white; box-shadow: 0 28px 75px rgba(16,42,37,.2); text-align: center; }
.consulta-ociosa, .consulta-nao-encontrado, .consulta-produto { width: 100%; }
.consulta-ociosa > span, .consulta-nao-encontrado > span { display: block; margin-bottom: 15px; color: #6e9187; font-size: 4rem; }
.consulta-ociosa strong, .consulta-nao-encontrado strong { display: block; font-size: 1.45rem; }
.consulta-ociosa p, .consulta-nao-encontrado p, .consulta-produto > p { color: #9bb4ad; }
.consulta-produto h2 { margin: 22px auto 8px; font-size: clamp(1.6rem, 3vw, 2.5rem); }
.consulta-preco { margin: 32px auto 24px; padding: 25px; border: 1px solid rgba(255,255,255,.1); border-radius: 20px; background: rgba(255,255,255,.06); }
.consulta-preco small, .consulta-preco span { display: block; color: #9bb4ad; }
.consulta-preco strong { display: block; color: #ffad70; font-size: clamp(3.2rem, 7vw, 5.5rem); line-height: 1.05; letter-spacing: -.06em; }
.consulta-produto code { color: #799a91; }
.consulta-nao-encontrado > span { width: 72px; height: 72px; display: grid; place-items: center; margin: 0 auto 18px; border-radius: 50%; color: #ffb5b5; background: rgba(198,75,75,.18); font-size: 2rem; }

/* Usuários, categorias e fiscal */
.resumo-papeis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.papel-resumo { padding: 18px; }
.papel-resumo h2 { margin-top: 12px; }
.papel-resumo p { min-height: 38px; margin: 0; color: var(--texto-suave); font-size: .75rem; }
.modal-pequeno { width: min(500px, 100%); }
.grade-categorias { align-items: stretch; }
.categoria-cartao { position: relative; display: grid; grid-template-columns: 10px minmax(0, 1fr) auto; gap: 14px; align-items: start; min-height: 150px; padding: 18px; border: 1px solid var(--borda); border-radius: 15px; background: white; }
.categoria-cartao.inativa { opacity: .55; }
.categoria-cor { width: 10px; height: 100%; min-height: 110px; border-radius: 999px; }
.categoria-cartao small { color: var(--texto-suave); font-size: .65rem; }
.categoria-cartao h3 { margin: 4px 0; font-size: 1rem; }
.categoria-cartao p { margin: 0 0 8px; color: var(--texto-suave); font-size: .72rem; }
.categoria-cartao div > span { color: var(--verde-700); font-size: .68rem; font-weight: 700; }
.fiscal-caixa-cartao { padding: 18px; border: 1px solid var(--borda); border-radius: 15px; background: #fbfdfc; }
.fiscal-caixa-cartao > div { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.fiscal-caixa-cartao > div small { color: var(--texto-suave); }
.fiscal-caixa-cartao h3 { margin: 16px 0 12px; }
.fiscal-caixa-cartao p { display: flex; justify-content: space-between; margin: 0; padding: 5px 0; color: var(--texto-suave); font-size: .75rem; }
.fiscal-caixa-cartao p strong { color: var(--tinta); }
.filtro-estoque { padding: 15px 18px; }
.filtro-estoque form { align-items: end; }
.filtro-estoque label { min-width: 220px; }
.busca-produtos-completa select { min-width: 180px; }

@media (max-width: 1150px) {
    .pdv { grid-template-columns: minmax(0, 1fr) 310px; }
    .estoque-grade, .caixa-grade { grid-template-columns: 1fr; }
    .consulta-precos-tela { grid-template-columns: 1fr; }
    .resultado-consulta-preco { min-height: 420px; }
}

@media (max-width: 1050px) {
    .grade-4, .grade-5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .grade-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
    .estrutura { display: block; }
    .barra-lateral { position: fixed; left: -270px; width: 250px; transition: left .2s ease; box-shadow: 18px 0 50px rgba(0,0,0,.15); }
    .barra-lateral.aberta { left: 0; }
    .conteudo-principal { padding: 22px 18px 50px; }
    .menu-movel { display: inline-block; }
    .cabecalho-pagina { justify-content: flex-start; }
    .cabecalho-data { margin-left: auto; }
    .autenticacao-conteudo { grid-template-columns: 1fr; }
    .autenticacao-apresentacao { display: none; }
    .cartao-autenticacao { margin: 35px auto; }
    .pdv { grid-template-columns: 1fr; }
    .resumo-pdv { position: static; }
    .carrinho-tabela { max-height: none; }
    .cabecalho-pdv-isolado, .cabecalho-consulta { align-items: flex-start; }
    .acoes-pdv-isolado { justify-content: flex-end; flex-wrap: wrap; }
    .operador-pdv { display: none; }
    .resumo-papeis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
    .grade-2, .grade-3, .grade-4, .grade-5 { grid-template-columns: 1fr; }
    .formulario .linha, .formulario .linha-3 { grid-template-columns: 1fr; }
    .cabecalho-data { display: none; }
    .cabecalho-cartao { align-items: flex-start; flex-direction: column; }
    .cartao { padding: 17px; }
    .alerta-flutuante { right: 16px; top: 16px; }
    .busca-lista { width: 100%; }
    .busca-lista input { width: 100%; }
    .leitor-codigo { grid-template-columns: auto 1fr; }
    .leitor-codigo .botao { grid-column: 1 / -1; }
    .comprovante-resumo { grid-template-columns: 1fr; }
    .cabecalho-pdv-isolado, .cabecalho-consulta { padding: 10px 12px; }
    .cabecalho-pdv-isolado .marca span:last-child, .cabecalho-consulta .marca span:last-child { display: none; }
    .conteudo-pdv-isolado { padding: 12px; }
    .acoes-pdv-isolado .botao-secundario { display: none; }
    .conteudo-consulta { width: min(100% - 24px, 1180px); padding-top: 25px; }
    .leitor-consulta { grid-template-columns: auto 1fr; }
    .leitor-consulta .botao { grid-column: 1 / -1; }
    .resultado-consulta-preco { min-height: 360px; padding: 25px 18px; }
    .resumo-papeis { grid-template-columns: 1fr; }
    .resumo-recebimento-fiado { grid-template-columns: 1fr; }
    .categoria-cartao { grid-template-columns: 8px 1fr; }
    .categoria-cartao .botao { grid-column: 2; justify-self: start; }
    .campo-foto-produto { grid-template-columns: 1fr; }
    .variacoes-cabecalho, .variacoes-lista-cabecalho { align-items: flex-start; flex-direction: column; }
    .linha-variacao-campos { grid-template-columns: 1fr; }
    .remover-variacao { justify-self: end; }
    .resumo-estoque-variacoes { grid-template-columns: 1fr; }
}

/* Painel financeiro */
.painel-financeiro { margin-bottom: 20px; overflow: hidden; }
.painel-financeiro-cabecalho { align-items: end; }
.painel-financeiro-cabecalho small { color: var(--texto-suave); }
.filtro-financeiro { display: flex; align-items: end; gap: 9px; flex-wrap: wrap; }
.filtro-financeiro label { min-width: 135px; color: var(--texto-suave); font-size: .66rem; }
.filtro-financeiro select, .filtro-financeiro input { min-width: 135px; padding: 8px 10px; }
.resumo-financeiro { margin: 18px 0; }
.resumo-financeiro > div { padding: 15px; border: 1px solid var(--borda); border-radius: 13px; background: var(--fundo); }
.resumo-financeiro span, .resumo-financeiro small { display: block; color: var(--texto-suave); font-size: .67rem; }
.resumo-financeiro strong { display: block; margin: 5px 0 3px; color: var(--tinta); font-size: 1.2rem; }
.resumo-financeiro .lucro strong { color: var(--verde-700); }
.legenda-grafico { display: flex; justify-content: flex-end; gap: 16px; color: var(--texto-suave); font-size: .67rem; }
.legenda-grafico span::before { content: ''; display: inline-block; width: 9px; height: 9px; margin-right: 5px; border-radius: 3px; }
.legenda-grafico .faturamento::before { background: var(--verde-600); }
.legenda-grafico .custo::before { background: var(--laranja); }
.legenda-grafico .lucro::before { background: #65b9a3; }
.grafico-financeiro { height: 260px; display: flex; align-items: stretch; gap: 7px; margin-top: 12px; padding: 18px 8px 0; border-bottom: 1px solid var(--borda); overflow-x: auto; }
.grupo-grafico { min-width: 38px; flex: 1 0 38px; display: flex; flex-direction: column; justify-content: flex-end; text-align: center; }
.barras-grafico { height: 210px; display: flex; align-items: flex-end; justify-content: center; gap: 2px; }
.barras-grafico i { width: min(10px, 28%); min-height: 2px; border-radius: 4px 4px 0 0; }
.barra-faturamento { background: var(--verde-600); }
.barra-custo { background: var(--laranja); }
.barra-lucro { background: #65b9a3; }
.grupo-grafico > span { height: 28px; padding-top: 6px; color: var(--texto-suave); font-size: .58rem; white-space: nowrap; }
.aviso-custo { margin: 13px 0 0; color: var(--texto-suave); font-size: .64rem; }
.vazio-grafico { min-height: 170px; }

/* Relatório de reposição */
.relatorio-reposicao-filtros { padding: 18px 20px; }
.linha-filtros-reposicao { display: grid; grid-template-columns: minmax(210px, 1.25fr) minmax(160px, .7fr) minmax(160px, .7fr) minmax(105px, .45fr) auto; gap: 13px; align-items: end; }
.linha-filtros-reposicao label small { color: var(--texto-suave); font-size: .64rem; font-weight: 500; }
.acoes-filtros-reposicao { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.relatorio-reposicao-lista .cabecalho-cartao > p { max-width: 360px; text-align: right; }
.tabela-reposicao td { padding-top: 10px; padding-bottom: 10px; }
.tabela-reposicao tr.reposicao-urgente { background: linear-gradient(90deg, #fff1f1, #fffafa 34%, transparent); }
.foto-reposicao { width: 54px; height: 54px; display: grid; place-items: center; border: 1px solid var(--borda); border-radius: 11px; background: var(--fundo); object-fit: cover; }
.foto-reposicao-vazia { color: #9baaa5; font-size: 1.15rem; }
.quantidade-comprar { display: inline-flex; min-width: 58px; justify-content: center; padding: 6px 9px; border: 1px solid #f1d4bc; border-radius: 9px; color: #955621; background: var(--laranja-claro); font-size: .92rem; font-weight: 800; }

@media (max-width: 1250px) {
    .linha-filtros-reposicao { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .acoes-filtros-reposicao { grid-column: 1 / -1; justify-content: flex-start; }
}
@media (max-width: 720px) {
    .filtro-financeiro { width: 100%; }
    .filtro-financeiro label { flex: 1 1 130px; }
    .filtro-financeiro .botao { flex: 1 1 100%; }
    .linha-filtros-reposicao { grid-template-columns: 1fr; }
    .acoes-filtros-reposicao { grid-column: auto; }
    .acoes-filtros-reposicao .botao { flex: 1 1 145px; }
    .relatorio-reposicao-lista .cabecalho-cartao > p { text-align: left; }
}
