/* Merx OS: tema escuro, sem build. Classes reutilizáveis: layout, card, grid, table, btn, badge, field, alert. */
:root{--bg:#0e1116;--panel:#161b22;--panel2:#1d242d;--line:#2a323d;--txt:#e6e9ee;--muted:#8b95a3;
--accent:#2dd4a7;--accent-ink:#06261d;--warn:#f5b73b;--bad:#f0605d;--ok:#2dd4a7;--w:230px}
*{box-sizing:border-box}
html{color-scheme:dark}
body{margin:0;background:var(--bg);color:var(--txt);font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:var(--accent)}
h1{font-size:1.4rem;margin:0 0 1rem}
h2{font-size:1.1rem;margin:0 0 .75rem}
.muted{color:var(--muted)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.num{text-align:right;font-variant-numeric:tabular-nums}

/* layout */
.layout{display:flex;min-height:100vh}
.sidebar{width:var(--w);flex:none;background:var(--panel);border-right:1px solid var(--line);padding:1rem;display:flex;flex-direction:column;gap:1rem}
.brand{font-weight:700;font-size:1.25rem;letter-spacing:.02em}
.brand span{color:var(--accent)}
.menu{display:flex;flex-direction:column;gap:.25rem}
.menu a{color:var(--txt);text-decoration:none;padding:.6rem .75rem;border-radius:8px}
.menu a:hover{background:var(--panel2)}
.menu a.ativo{background:var(--accent);color:var(--accent-ink);font-weight:600}
.sair{margin-top:auto}
.main{flex:1;min-width:0}
.topbar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.75rem 1.25rem;border-bottom:1px solid var(--line);background:var(--panel)}
.seletor{display:flex;gap:.4rem}
.sync-topo{margin-left:auto;display:flex;align-items:center;gap:.5rem}
.sync{font-size:.85rem}
.content{padding:1.25rem}
.solo{min-height:100vh;display:grid;place-items:center;padding:1rem}
.menu-btn,.menu-fechar,.fundo{display:none}
/* checkbox fora da vista mas focável por teclado */
.menu-toggle{position:fixed;top:0;left:0;width:1px;height:1px;opacity:0;margin:0}
.menu-toggle:focus-visible ~ .layout .menu-btn{outline:2px solid var(--accent);outline-offset:1px}

/* card + grid */
.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:1rem 1.25rem}
.card-login{width:100%;max-width:380px}
.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.kpi{font-size:1.6rem;font-weight:700}

/* table */
/* position: o .sr-only (absoluto) dentro da tabela fica preso ao rolador e não alarga a página */
.table-wrap{overflow-x:auto;position:relative}
table{width:100%;border-collapse:collapse}
th,td{padding:.55rem .7rem;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
th{color:var(--muted);font-weight:500;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}
tr:hover td{background:var(--panel2)}

/* form */
.field{margin-bottom:1rem}
.field label{display:block;margin-bottom:.3rem;color:var(--muted);font-size:.85rem}
input,select,textarea{width:100%;background:var(--bg);color:var(--txt);border:1px solid var(--line);border-radius:8px;padding:.55rem .7rem;font:inherit}
.seletor select{width:auto;min-width:0;max-width:220px}
input:focus,select:focus,textarea:focus,.btn:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:1px}

/* button */
.btn{display:inline-block;border:1px solid var(--line);background:var(--panel2);color:var(--txt);border-radius:8px;padding:.5rem .9rem;font:inherit;cursor:pointer;text-decoration:none}
.btn:hover{border-color:var(--muted)}
.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600;width:100%}
a.btn-primary{width:auto}
.btn-ghost{background:transparent}

/* badge + alert */
.badge{display:inline-block;padding:.1rem .55rem;border-radius:999px;font-size:.75rem;background:var(--panel2);border:1px solid var(--line)}
.badge-ok{color:var(--ok);border-color:var(--ok)}
.badge-warn{color:var(--warn);border-color:var(--warn)}
.badge-bad{color:var(--bad);border-color:var(--bad)}
.alert{padding:.7rem 1.25rem;border-left:4px solid var(--muted);background:var(--panel2)}
.alert-warn{border-color:var(--warn);color:var(--warn)}
.alert-erro{border-color:var(--bad);color:var(--bad);border-radius:8px;margin-bottom:1rem}

/* estreito: menu vira gaveta aberta pelo botão (checkbox, sem JS) */
@media (max-width:760px){
  .sidebar{position:fixed;inset:0 auto 0 0;z-index:10;transform:translateX(-100%);transition:transform .2s}
  .menu-toggle:checked ~ .layout .sidebar{transform:none}
  .menu-toggle:checked ~ .layout .fundo{display:block;position:fixed;inset:0;z-index:9;background:rgba(0,0,0,.6)}
  .menu-fechar{display:inline-block;float:right;padding:.2rem .6rem;border:1px solid var(--line);border-radius:8px;font-size:.85rem;font-weight:400;cursor:pointer}
  .menu-btn{display:inline-block;padding:.5rem .9rem;border:1px solid var(--line);border-radius:8px;cursor:pointer}
  .topbar{padding:.6rem .75rem}
  .content{padding:.75rem}
  .seletor{flex:1 1 100%}
  .seletor select{flex:1;max-width:none}
  .sync-topo{margin-left:0}
  .grid.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpi{font-size:1.25rem}
}

/* Vendas Hoje */
#vendas-hoje{display:flex;flex-direction:column;gap:1rem}
.destaque{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem}
.grande{font-size:2.4rem;font-weight:700;line-height:1.1}
.atualizar{display:flex;align-items:center;gap:.75rem}
.sobe{color:var(--ok);font-weight:600}
.desce{color:var(--bad);font-weight:600}
.kpi-link{font-size:1rem}
.est{color:var(--warn);cursor:help}
.grafico{position:relative;height:260px}
.grid.duas{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.lista{list-style:none;margin:0;padding:0}
.lista li{display:flex;align-items:center;gap:.75rem;padding:.5rem 0;border-bottom:1px solid var(--line)}
.lista li:last-child{border-bottom:0}
.lista .nome{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
.lista li.canal{flex-wrap:wrap}
.aviso-canal{flex:1 1 100%;font-size:.78rem}
.thumb{width:40px;height:40px;border-radius:8px;object-fit:cover;background:var(--panel2);flex:none}
@media (max-width:760px){.grande{font-size:1.9rem}.atualizar{width:100%;justify-content:space-between}}

/* Resumo Financeiro */
.coluna{display:flex;flex-direction:column;gap:1rem}
.filtros{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end}
.filtros .field{margin:0}
.filtros .btn-primary{width:auto}
td.num,th.num{text-align:right}
td.produtos{max-width:28ch;overflow:hidden;text-overflow:ellipsis}

/* Produtos e Configurações */
.custo-form{display:flex;gap:.4rem}
.custo-form input{width:7.5rem}
.erro-campo{color:var(--bad);font-size:.8rem;margin-top:.25rem;white-space:normal}
.aviso-linha{color:var(--warn);font-size:.8rem;margin-top:.25rem;white-space:normal;max-width:34ch}
.link-btn{background:none;border:0;padding:0;font:inherit;color:var(--accent);text-decoration:underline;cursor:pointer}
td.nome-produto{white-space:normal;min-width:16ch;max-width:36ch}
.paginacao{display:flex;gap:.75rem;align-items:center}
.alert-ok{border-color:var(--ok);color:var(--ok);border-radius:8px}
.form-grade{display:grid;gap:0 1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.canal-form{border-top:1px solid var(--line);padding-top:1rem;margin-top:1rem}
.canal-form h3{margin:0 0 .75rem;font-size:1rem}
.btn-auto{width:auto}
.resultado{margin-top:1rem;padding:.75rem 1rem;background:var(--panel2);border-radius:8px}
textarea{resize:vertical}

.pendentes{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between}

/* Envios */
.abas{display:flex;flex-wrap:wrap;gap:.4rem}
.aba{display:inline-flex;gap:.5rem;align-items:center;padding:.5rem .9rem;border:1px solid var(--line);border-radius:8px;color:var(--txt);text-decoration:none}
.aba:hover{border-color:var(--muted)}
.aba.ativa{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}
tr.atrasado td{background:rgba(240,96,93,.12)}
td.itens{white-space:normal;min-width:20ch;max-width:36ch}
td.marcar{width:2rem}
td.marcar input,td.marcar-todos input{width:auto}
.acoes-lote{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}
.enviar-linha{display:flex;gap:.4rem}
.enviar-linha input{width:11rem}
.forms-linha{display:none}
