/* =====================================================================
   Quimatic — Comissão & Cadastro 2026
   Identidade: laranja #F05A22 + preto #1A1A1A + cinzas neutros (tema claro).
   Mantém os nomes de classe que as páginas já usam (.card, .grid, .btn,
   .pill, .banner, .form...). Variáveis legadas (--line, --panel2, --accent)
   preservadas para os estilos inline das páginas.
   ===================================================================== */
:root{
  --bg:#F2F2F2; --surface:#ffffff;
  --line:#E0E0E0; --line2:#ECECEC;
  --txt:#1A1A1A; --mut:#555555;
  --orange:#F05A22; --orange-d:#c94410; --orange-l:#ff7a4a;
  --black:#1A1A1A; --black-d:#0d0d0d;
  /* legado (estilos inline das páginas) */
  --panel:#ffffff; --panel2:#F6F6F6; --accent:#F05A22; --brand:#1A1A1A; --brand2:#0d0d0d;
  --ok:#176c3b; --warn:#9a6700; --risk:#b42318;
}
*{box-sizing:border-box}
html{overflow-x:hidden}
body{margin:0;font-family:ui-sans-serif,system-ui,'Segoe UI',Arial,sans-serif;background:var(--bg);color:var(--txt);font-size:14px}
/* faixa laranja fixa no topo — assinatura de marca */
body::before{content:"";position:fixed;top:0;left:0;width:100vw;height:4px;background:var(--orange);z-index:9999;pointer-events:none}
a{color:var(--orange-d);text-decoration:none}
a:hover{text-decoration:underline}
h1{font-size:20px;margin:.2em 0 .5em}h2{font-size:16px;margin-top:26px}h3{margin:0 0 6px;font-size:15px}
.sub{color:var(--mut);margin-top:-4px}
.muted{color:var(--mut)}
.note{font-size:12px;color:var(--mut);margin-top:12px;line-height:1.55}

/* ---------- SHELL: sidebar + coluna principal ---------- */
.shell{display:flex;min-height:100vh}
.side{width:232px;flex:0 0 232px;background:var(--black);color:#cbd5e1;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.side-brand{display:flex;align-items:center;gap:.6rem;padding:16px 16px;border-bottom:1px solid rgba(255,255,255,.08);color:#fff;font-weight:700}
.qbadge{width:30px;height:30px;background:var(--orange);border-radius:6px;display:inline-flex;align-items:center;justify-content:center;font-size:15px;font-weight:800;color:#fff;flex-shrink:0}
.side-name{font-size:14px;line-height:1.1}
.side-nav{flex:1;padding:10px 10px;overflow-y:auto}
.nav-sec{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:#8a8a8a;padding:14px 10px 5px}
.nav-item{display:flex;align-items:center;gap:.65rem;padding:.5rem .7rem;border-radius:6px;color:#cbd5e1;font-weight:500;margin-bottom:2px}
.nav-item i{font-size:18px;width:20px;text-align:center}
.nav-item:hover{background:rgba(255,255,255,.07);color:#fff;text-decoration:none}
.nav-item.active{background:var(--orange);color:#fff}
.side-foot{padding:12px 16px;border-top:1px solid rgba(255,255,255,.08);font-size:11px;color:rgba(255,255,255,.4);display:flex;align-items:center;gap:.4rem}
.side-foot .dot{width:5px;height:5px;border-radius:50%;background:var(--orange);display:inline-block}
.side-backdrop{display:none}

.main-col{flex:1;min-width:0;display:flex;flex-direction:column}
/* header branco com barra laranja inferior */
.appbar{position:sticky;top:4px;z-index:20;background:#fff;display:flex;align-items:center;gap:14px;padding:11px 22px;box-shadow:inset 0 -2px 0 var(--orange),0 1px 3px rgba(0,0,0,.06)}
.appbar-title{font-size:15px;font-weight:600;margin:0;color:var(--txt);flex:1}
.appbar-user{text-align:right;line-height:1.15}
.appbar-user .u-name{font-size:13px;font-weight:600}
.appbar-user .u-chip{display:inline-block;background:var(--black);color:#fff;font-size:9px;letter-spacing:.04em;text-transform:uppercase;font-weight:700;border-radius:999px;padding:1px 8px}
.appbar .out{color:var(--orange-d);font-weight:600;display:inline-flex;align-items:center;gap:.3rem}
.hamb{display:none;background:none;border:1px solid var(--line);color:var(--txt);border-radius:6px;padding:5px 8px;margin:0;cursor:pointer}

.wrap{max-width:1100px;width:100%;margin:0 auto;padding:22px}
.auth-wrap{max-width:none}

/* ---------- CARDS ---------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:18px}
.card.auth{max-width:400px;margin:2vh auto 8vh;box-shadow:0 6px 24px rgba(0,0,0,.06)}
.card.auth h1{margin:0 0 2px;font-size:19px}
.auth-brand{display:flex;align-items:center;justify-content:center;gap:.55rem;padding:7vh 0 0;color:var(--txt);font-size:17px;font-weight:700}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-top:16px}
.cards .card h3{font-size:20px}

/* ---------- FORM ---------- */
label{display:block;font-size:12px;color:var(--mut);margin:13px 0 5px;font-weight:500}
input,select,textarea{width:100%;background:#fff;border:1px solid #cfcfcf;color:var(--txt);border-radius:6px;padding:9px 10px;font-size:14px;font-family:inherit}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px rgba(240,90,34,.18)}
.otp-input{letter-spacing:10px;font-size:22px;text-align:center}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.checks{display:flex;gap:14px;flex-wrap:wrap;margin-top:6px}
.chk{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--txt);margin:0}
.chk input{width:auto}

/* ---------- BOTÕES ---------- */
button,.btn{display:inline-flex;align-items:center;gap:.35rem;background:var(--black);color:#fff;border:none;border-radius:6px;padding:9px 15px;font-size:14px;font-weight:600;cursor:pointer;margin-top:14px;text-decoration:none}
button:hover,.btn:hover{background:var(--black-d);text-decoration:none}
button:disabled{opacity:.45;cursor:not-allowed}
.btn{margin-top:0}
/* CTA laranja (ex.: liberar pagamento) */
button.ok,.btn.ok{background:var(--orange)}
button.ok:hover,.btn.ok:hover{background:var(--orange-d)}
/* botões "fantasma" (páginas usam style inline background:transparent) — texto escuro */
.btn[style*="transparent"]{color:var(--txt)}
.btn[style*="transparent"]:hover{background:#f1f1f1 !important;text-decoration:none}
/* link-botão */
button.link,a.link,.link{background:none;border:none;color:var(--orange-d);padding:0;margin:0;font-weight:600;cursor:pointer;font-size:inherit;display:inline}
button.link:hover,a.link:hover,.link:hover{text-decoration:underline;background:none}
form.inline,.inline{display:inline;margin:0}
.soon{font-size:11px;color:var(--mut);border:1px solid var(--line);border-radius:20px;padding:2px 10px}

/* ---------- FLASH / BANNERS ---------- */
.flash,.banner{border-radius:7px;padding:10px 14px;margin:12px 0;font-size:13px;border:1px solid}
.flash.ok,.banner.ok{background:#e7f5ec;border-color:#bfe3cd;color:#176c3b}
.flash.erro,.banner.erro,.banner.risk{background:#fdeaea;border-color:#f3c4c4;color:#b42318}
.flash.info,.banner.info{background:#f4f4f5;border-color:#e2e2e6;color:#444}
.flash.warn,.banner.warn{background:#fff5e2;border-color:#ffdca0;color:#9a6700}

/* ---------- TABELAS ---------- */
/* rolagem horizontal p/ tabelas largas (envolva a tabela em <div class="scrollx">) */
.scrollx{overflow-x:auto;max-width:100%;border:1px solid var(--line);border-radius:8px;margin-top:12px}
.scrollx table.grid{margin-top:0;border:none;border-radius:0}
table.grid{width:100%;border-collapse:collapse;margin-top:12px;font-size:13px;background:#fff;border:1px solid var(--line);border-radius:8px}
table.grid th,table.grid td{text-align:left;padding:9px 11px;border-bottom:1px solid var(--line2)}
table.grid th{color:var(--mut);font-size:11px;text-transform:uppercase;letter-spacing:.4px;background:#fafafa}
table.grid th a{color:var(--mut)}
table.grid tr:last-child td{border-bottom:none}
table.grid tbody tr:hover td{background:#fafafa}

/* ---------- PILLS ---------- */
.pill{display:inline-block;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:600}
.pill.ok{background:#e7f5ec;color:#176c3b}
.pill.off{background:#fdeaea;color:#b42318}
.pill.info{background:#eef0f2;color:#555}

hr{border:none;border-top:1px solid var(--line)}

/* ---------- CARDS HORIZONTAIS DE REGISTRO (ex.: Pedidos) ---------- */
.rec-list{display:flex;flex-direction:column;gap:10px;margin-top:16px}
.rec-card{background:#fff;border:1px solid var(--line);border-left:3px solid var(--line);border-radius:8px;padding:11px 14px}
.rec-card.alert{border-left-color:var(--orange)}
.rec-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.rec-nf{font-weight:700}
.rec-razao{font-weight:600;flex:1;min-width:160px}
.rec-valor{font-weight:700;white-space:nowrap}
.rec-meta{color:var(--mut);font-size:12px;margin:5px 0 8px}
.rec-fields{display:flex;flex-wrap:wrap;gap:5px 20px;font-size:13px}
.rec-fields .f{white-space:nowrap}
.rec-fields .f b{color:var(--mut);font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.03em;margin-right:5px}
.rec-badges{margin-top:8px;display:flex;gap:5px;flex-wrap:wrap}
.badge-tap{background:var(--black);color:#fff;padding:2px 9px;border-radius:999px;font-size:.72rem;font-weight:700}
.badge-deq{background:var(--orange);color:#fff;padding:2px 9px;border-radius:999px;font-size:.72rem;font-weight:700}
/* barra de filtros com respiro em relação aos indicadores */
.filterbar{margin-top:20px;display:flex;gap:12px;align-items:end;flex-wrap:wrap}

/* ---------- BANCADA DE REVISÃO (Fase 19d) ----------
   Problema corrigido: o painel "contestar / revisar" morava dentro da última
   célula da tabela e o contexto do pedido era uma fila de itens nowrap. Isso
   dava à tabela uma largura mínima muito maior que a janela; com
   html{overflow-x:hidden} o painel simplesmente saía da tela em monitores
   menores (ou com zoom do navegador). Agora o painel ocupa a linha inteira e
   tudo dentro dele quebra linha. */
.ctx-box{font-size:12.5px;line-height:2;background:var(--panel2);border-radius:8px;padding:8px 12px;margin:6px 0;max-width:100%}
.ctx-lin{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 2px}
.ctx-lin > span{max-width:100%;overflow-wrap:anywhere}
.rev-painel{max-width:960px}
.rev-painel .resol-form{max-width:100%}
.resol-form select,.resol-form input[type=text],.resol-form input:not([type]),.resol-form textarea{max-width:100%}
.resol-form > div[style*="flex"]{max-width:100%}
.resol-form label{overflow-wrap:anywhere}

/* ---------- RESPONSIVO ---------- */
@media (max-width:1100px){
  /* o contexto do pedido vira uma coluna: rótulo e valor continuam juntos,
     mas cada bloco (PEDIDO/CLIENTE/QUEM RECEBE/MOTOR) empilha sem esticar */
  .ctx-lin{line-height:1.75}
  .rev-painel{max-width:100%}
}
@media (max-width:860px){
  .side{position:fixed;left:0;top:0;bottom:0;z-index:60;transform:translateX(-100%);transition:transform .2s ease;box-shadow:0 0 24px rgba(0,0,0,.3)}
  body.side-open .side{transform:translateX(0)}
  body.side-open .side-backdrop{display:block;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:50}
  .hamb{display:inline-flex}
  .form .row{grid-template-columns:1fr}
}
