/* Veiga Fluxo — identidade: madeira escura, papel de MDF cru, laranja de serra, fita de borda como detalhe */
:root {
  --madeira: #2E1F15;
  --madeira-2: #47301F;
  --madeira-3: #6B4A33;
  --serra: #C4561F;
  --serra-escura: #A2441A;
  --serra-clara: #FBE7DA;
  --mdf: #F3ECE1;
  --papel: #FFFDF9;
  --linha: #E5DACA;
  --linha-forte: #D3C4AE;
  --texto: #2A211B;
  --suave: #6F6257;
  --muda: #95887C;
  --ok: #2F7A54;
  --ok-claro: #E3F1E8;
  --alerta: #9A6412;
  --alerta-claro: #FBF0D9;
  --perigo: #B3261E;
  --perigo-claro: #FBE4E1;
  --azul: #1C77B8;
  --azul-claro: #E2EEF8;
  --raio: 12px;
  --sombra: 0 1px 2px rgba(46, 31, 21, .06), 0 4px 14px rgba(46, 31, 21, .06);
  --lateral: 244px;
  --fonte: "Inter", "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--fonte); color: var(--texto); background: var(--mdf); font-size: 15px; line-height: 1.45; overflow-x: hidden; }
img, svg { max-width: 100%; }
a { color: var(--serra-escura); }
button, input, select, textarea { font: inherit; color: inherit; }
h1, h2, h3, h4 { line-height: 1.2; margin: 0; letter-spacing: -.01em; }
.num, .tab { font-variant-numeric: tabular-nums; }
.oculto { display: none !important; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- marca ---------- */
.marca { display: flex; align-items: center; gap: 10px; color: #fff; text-decoration: none; }
.marca svg { width: 30px; height: 31px; flex: none; }
.marca b { display: block; font-size: 16px; letter-spacing: .01em; }
.marca small { display: block; font-size: 11.5px; color: #D9C7B2; letter-spacing: .04em; text-transform: uppercase; }

/* ---------- estrutura ---------- */
.layout { min-height: 100vh; }
.lateral { display: none; }
.topo { position: sticky; top: 0; z-index: 30; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 14px; background: var(--madeira); color: #fff; box-shadow: 0 2px 0 var(--serra); }
.topo .btn-menu { background: transparent; border: 1px solid rgba(255,255,255,.25); color: #fff; border-radius: 10px; padding: 7px 10px; display: flex; align-items: center; gap: 6px; font-size: 14px; }
.conteudo { padding: 16px 14px 96px; max-width: 1180px; margin: 0 auto; width: 100%; min-width: 0; }
.gaveta { position: fixed; inset: 0; z-index: 60; display: none; }
.gaveta.aberta { display: block; }
.gaveta .fundo { position: absolute; inset: 0; background: rgba(30, 20, 12, .45); }
.gaveta .painel-menu { position: absolute; top: 0; left: 0; bottom: 0; width: min(300px, 86vw); background: var(--madeira); padding: 16px 12px; overflow-y: auto; }

.menu { list-style: none; margin: 18px 0 0; padding: 0; }
.menu a { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 10px; color: #EADBC8; text-decoration: none; font-size: 15px; }
.menu a svg { width: 18px; height: 18px; flex: none; opacity: .85; }
.menu a:hover { background: rgba(255,255,255,.06); color: #fff; }
.menu a.ativo { background: var(--madeira-2); color: #fff; box-shadow: inset 3px 0 0 var(--serra); }
.quem { margin-top: 18px; padding: 12px; border-top: 1px solid rgba(255,255,255,.1); color: #D9C7B2; font-size: 13px; }
.quem b { color: #fff; display: block; font-size: 14px; }
.quem button { margin-top: 8px; background: transparent; border: 1px solid rgba(255,255,255,.25); color: #fff; border-radius: 8px; padding: 6px 10px; font-size: 13px; cursor: pointer; }

@media (min-width: 960px) {
  /* a coluna da lateral também é pintada no fundo do grid, para não parecer cortada em página longa */
  .layout { display: grid; grid-template-columns: var(--lateral) minmax(0, 1fr);
    background: linear-gradient(to right, var(--madeira) 0, var(--madeira) var(--lateral), var(--mdf) var(--lateral)); }
  .lateral { display: flex; flex-direction: column; position: sticky; top: 0; height: 100vh; overflow-y: auto; padding: 20px 14px; background: var(--madeira);
    background-image: repeating-linear-gradient(97deg, rgba(255,255,255,.018) 0 2px, transparent 2px 9px); }
  .topo { display: none; }
  .conteudo { padding: 28px 32px 64px; }
}

/* ---------- títulos ---------- */
.cabeca { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 10px 16px; margin-bottom: 16px; }
.cabeca h1 { font-size: 24px; font-weight: 750; }
.cabeca p { margin: 4px 0 0; color: var(--suave); }
.sobretitulo { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--serra-escura); font-weight: 700; margin-bottom: 4px; }
h2.secao { font-size: 16px; font-weight: 700; margin: 0 0 10px; display: flex; align-items: center; gap: 8px; }
@media (min-width: 960px) { .cabeca h1 { font-size: 28px; } }

/* ---------- cartões ---------- */
.cartao { background: var(--papel); border: 1px solid var(--linha); border-radius: var(--raio); padding: 14px; box-shadow: var(--sombra); min-width: 0; }
.cartao + .cartao { margin-top: 12px; }
.cartao.fita { border-left: 4px solid var(--serra); }
.grade { display: grid; gap: 12px; }
.grade > * + * { margin-top: 0 !important; }
@media (min-width: 700px) { .g2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .g3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .g4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .g4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } .g-painel { grid-template-columns: 3fr 2fr; align-items: start; } }

.kpi { position: relative; overflow: hidden; }
.kpi .rot { font-size: 13px; color: var(--suave); font-weight: 600; }
.kpi .val { font-size: 34px; font-weight: 800; letter-spacing: -.02em; margin: 2px 0; font-variant-numeric: tabular-nums; }
.kpi .det { font-size: 13px; color: var(--suave); }
.kpi::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: var(--linha); }
.kpi.k-serra::after { background: var(--serra); }
.kpi.k-azul::after { background: var(--azul); }
.kpi.k-perigo::after { background: var(--perigo); }
.kpi.k-ok::after { background: var(--ok); }
.kpi.k-perigo .val { color: var(--perigo); }

/* ---------- botões ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 10px 14px; border-radius: 10px; border: 1px solid var(--linha-forte); background: var(--papel);
  color: var(--texto); font-weight: 600; font-size: 14.5px; cursor: pointer; text-decoration: none; min-height: 42px; white-space: nowrap; }
.btn:hover { border-color: var(--madeira-3); }
.btn svg { width: 17px; height: 17px; flex: none; }
.btn.prim { background: var(--serra); border-color: var(--serra); color: #fff; }
.btn.prim:hover { background: var(--serra-escura); }
.btn.escuro { background: var(--madeira); border-color: var(--madeira); color: #fff; }
.btn.perigo { color: var(--perigo); border-color: #E7B9B4; }
.btn.ok { background: var(--ok); color: #fff; border-color: var(--ok); }
.btn.peq { padding: 6px 10px; min-height: 34px; font-size: 13.5px; border-radius: 8px; }
.btn.fantasma { background: transparent; border-color: transparent; color: var(--serra-escura); }
.btn:disabled { opacity: .55; cursor: not-allowed; }
.acoes { display: flex; flex-wrap: wrap; gap: 8px; }
.acoes.direita { justify-content: flex-end; }

/* ---------- formulários ---------- */
.campo { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.campo > span, .campo > label { font-size: 13px; font-weight: 600; color: var(--suave); }
.campo small { color: var(--muda); font-size: 12.5px; }
input[type=text], input[type=email], input[type=password], input[type=number], input[type=search], input[type=tel], input[type=time], input[type=date], select, textarea {
  width: 100%; min-width: 0; padding: 10px 11px; border: 1px solid var(--linha-forte); border-radius: 10px; background: #fff; font-size: 16px; min-height: 44px; }
textarea { min-height: 84px; resize: vertical; }
input:focus, select:focus, textarea:focus, .btn:focus-visible, a:focus-visible { outline: 3px solid rgba(196, 86, 31, .3); outline-offset: 1px; border-color: var(--serra); }
.vazio-def { background: #FFF8EE !important; border-style: dashed !important; border-color: #D9A46B !important; }
.linha-form { display: grid; gap: 12px; }
@media (min-width: 640px) { .lf2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .lf3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .lf4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.check { display: flex; align-items: center; gap: 8px; font-size: 14.5px; cursor: pointer; }
.check input { width: 20px; height: 20px; accent-color: var(--serra); }

/* data dd/mm/aaaa sobreposta ao input nativo */
.data-br { position: relative; display: block; min-width: 0; }
.data-br .data-rotulo { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 44px; padding: 10px 11px; border: 1px solid var(--linha-forte);
  border-radius: 10px; background: #fff; font-size: 16px; pointer-events: none; font-variant-numeric: tabular-nums; }
.data-br .data-rotulo.vazio { color: var(--muda); }
.data-br .data-rotulo svg { width: 18px; height: 18px; color: var(--suave); }
.data-br input[type=date] { position: absolute; inset: 0; opacity: 0; width: 100%; height: 100%; cursor: pointer; min-height: 0; padding: 0; border: 0; }
.data-br input[type=date]:focus + .data-rotulo { outline: 3px solid rgba(196, 86, 31, .3); border-color: var(--serra); }
.data-br.peq .data-rotulo { min-height: 34px; padding: 5px 9px; font-size: 14px; border-radius: 8px; }

/* ---------- etiquetas ---------- */
.etq { display: inline-flex; align-items: center; gap: 5px; padding: 2px 9px; border-radius: 999px; font-size: 12.5px; font-weight: 650; white-space: nowrap; background: #EFE7DB; color: var(--madeira-2); }
.etq svg { width: 13px; height: 13px; }
.etq.rascunho { background: #EFE7DB; color: #5C4A3B; }
.etq.enviado { background: var(--azul-claro); color: #134F7A; }
.etq.aprovado { background: var(--ok-claro); color: #1F5A3C; }
.etq.perdido { background: #EDEAE7; color: #6A615A; text-decoration: line-through; text-decoration-thickness: 1px; }
.etq.atraso { background: var(--perigo-claro); color: var(--perigo); }
.etq.aviso { background: var(--alerta-claro); color: var(--alerta); }
.etq.exemplo { background: #F1EADF; color: #7A6553; font-weight: 600; }
.etq.ok { background: var(--ok-claro); color: #1F5A3C; }

/* ---------- listas ---------- */
.lista { display: flex; flex-direction: column; gap: 10px; }
.item { display: block; background: var(--papel); border: 1px solid var(--linha); border-radius: var(--raio); padding: 12px 14px; color: inherit; text-decoration: none; box-shadow: var(--sombra); min-width: 0; }
a.item:hover { border-color: var(--linha-forte); }
.item .l1 { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.item .tit { font-weight: 700; overflow-wrap: anywhere; }
.item .sub { color: var(--suave); font-size: 13.5px; overflow-wrap: anywhere; }
.meta { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 13px; color: var(--suave); margin-top: 6px; }
.meta b { color: var(--texto); font-weight: 600; }
.vazio { text-align: center; color: var(--suave); padding: 28px 12px; border: 1px dashed var(--linha-forte); border-radius: var(--raio); background: rgba(255,255,255,.4); }

/* tabelas viram cartões no celular */
.tabela { width: 100%; border-collapse: collapse; font-size: 14px; }
.tabela th { text-align: left; font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: var(--suave); font-weight: 700; padding: 8px; border-bottom: 1px solid var(--linha-forte); }
.tabela td { padding: 9px 8px; border-bottom: 1px solid var(--linha); vertical-align: middle; }
.tabela td.n, .tabela th.n { text-align: right; font-variant-numeric: tabular-nums; }
.rolagem { overflow-x: auto; max-width: 100%; }
@media (max-width: 699px) {
  .tabela.responsiva thead { display: none; }
  .tabela.responsiva, .tabela.responsiva tbody, .tabela.responsiva tr, .tabela.responsiva td { display: block; width: 100%; }
  .tabela.responsiva tr { border: 1px solid var(--linha); border-radius: 10px; padding: 8px 10px; margin-bottom: 8px; background: #fff; }
  .tabela.responsiva td { border: 0; padding: 3px 0; display: flex; justify-content: space-between; gap: 10px; text-align: right; }
  .tabela.responsiva td::before { content: attr(data-r); color: var(--suave); font-size: 12.5px; text-align: left; font-weight: 600; }
  .tabela.responsiva td.n { text-align: right; }
}

/* filtros em linha */
.filtros { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-end; margin-bottom: 14px; }
.filtros .campo { flex: 1 1 140px; }
.chips { display: flex; gap: 6px; flex-wrap: wrap; }
.chip { border: 1px solid var(--linha-forte); background: var(--papel); border-radius: 999px; padding: 6px 12px; font-size: 13.5px; font-weight: 600; cursor: pointer; color: var(--madeira-2); min-height: 36px; }
.chip.ativo { background: var(--madeira); color: #fff; border-color: var(--madeira); }
.chip .c { font-weight: 700; opacity: .75; margin-left: 4px; }

/* ---------- aviso/alerta ---------- */
.alerta { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border-radius: 10px; background: var(--alerta-claro); color: #6B470C; font-size: 14px; border: 1px solid #EED7A6; }
.alerta.perigo { background: var(--perigo-claro); color: #7D1B15; border-color: #F0C1BB; }
.alerta.info { background: var(--azul-claro); color: #134F7A; border-color: #BFD8EC; }
.alerta.ok { background: var(--ok-claro); color: #1F5A3C; border-color: #BCDDC9; }
.alerta svg { width: 18px; height: 18px; flex: none; margin-top: 1px; }
.alerta + .alerta { margin-top: 8px; }

/* ---------- etapas (régua de fita de borda) ---------- */
.regua { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 3px; margin-top: 8px; }
.regua i { display: block; height: 8px; border-radius: 4px; background: #E6DCCD; }
.regua i.feita { background: var(--madeira-3); }
.regua i.atual { background: var(--serra); }
.regua i.atual.atrasada { background: var(--perigo); }
.regua-rotulos { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 3px; font-size: 10.5px; color: var(--muda); margin-top: 3px; }
.regua-rotulos span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.passos { list-style: none; margin: 0; padding: 0; }
.passos li { position: relative; padding: 0 0 14px 28px; }
.passos li::before { content: ""; position: absolute; left: 7px; top: 18px; bottom: -2px; width: 2px; background: var(--linha-forte); }
.passos li:last-child::before { display: none; }
.passos li .bola { position: absolute; left: 0; top: 3px; width: 16px; height: 16px; border-radius: 50%; border: 2px solid var(--linha-forte); background: #fff; }
.passos li.feita .bola { background: var(--madeira-3); border-color: var(--madeira-3); }
.passos li.atual .bola { background: var(--serra); border-color: var(--serra); box-shadow: 0 0 0 4px var(--serra-clara); }
.passos li.atual.atrasada .bola { background: var(--perigo); border-color: var(--perigo); box-shadow: 0 0 0 4px var(--perigo-claro); }
.passos li b { display: block; font-size: 14.5px; }
.passos li span { font-size: 13px; color: var(--suave); }

/* ---------- quadro da fábrica ---------- */
.quadro { display: grid; gap: 12px; }
@media (min-width: 960px) { .quadro { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; align-items: start; } .quadro-abas { display: none !important; } }
.coluna { background: #EAE0D2; border-radius: var(--raio); padding: 8px; min-width: 0; }
.coluna h3 { font-size: 13.5px; display: flex; justify-content: space-between; align-items: center; gap: 6px; padding: 4px 4px 8px; }
.coluna h3 .cnt { background: var(--papel); border-radius: 999px; padding: 1px 8px; font-size: 12px; }
.coluna.minha { background: #F2DCCB; box-shadow: inset 0 3px 0 var(--serra); }
.coluna .vaziocol { font-size: 13px; color: var(--muda); text-align: center; padding: 14px 4px; }
.card-movel { background: var(--papel); border-radius: 10px; padding: 10px; border: 1px solid var(--linha); margin-bottom: 8px; border-left: 4px solid var(--madeira-3); }
.card-movel.atrasado { border-left-color: var(--perigo); }
.card-movel .t { font-weight: 700; font-size: 14px; overflow-wrap: anywhere; }
.card-movel .s { font-size: 12.5px; color: var(--suave); overflow-wrap: anywhere; }
.card-movel .btn { width: 100%; margin-top: 8px; white-space: normal; text-align: center; }
@media (max-width: 959px) { .quadro .coluna { display: none; } .quadro .coluna.visivel { display: block; } }

/* ---------- agenda ---------- */
.semana-nav { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.semana-nav .rot { font-weight: 700; min-width: 0; }
.agenda-grade { display: none; }
@media (min-width: 960px) {
  .agenda-grade { display: grid; grid-template-columns: 130px repeat(var(--dias, 6), minmax(0, 1fr)); gap: 4px; }
  .agenda-dias { display: none; }
}
.agenda-grade .cab { font-size: 12.5px; font-weight: 700; color: var(--suave); padding: 6px; text-align: center; }
.agenda-grade .cab.hoje { color: var(--serra-escura); }
.agenda-grade .cab .fer { display: block; font-weight: 600; color: var(--alerta); font-size: 11px; }
.agenda-grade .mont { font-weight: 700; font-size: 13.5px; padding: 8px 6px; background: var(--papel); border-radius: 8px; border: 1px solid var(--linha); }
.agenda-grade .cel { background: rgba(255,255,255,.55); border-radius: 8px; min-height: 76px; padding: 4px; border: 1px solid var(--linha); min-width: 0; }
.agenda-grade .cel.hoje { background: #FFF6EE; border-color: #EBC6AC; }
.ag-item { display: block; width: 100%; text-align: left; background: var(--papel); border: 1px solid var(--linha-forte); border-left: 4px solid var(--azul); border-radius: 8px; padding: 6px 7px; margin-bottom: 4px;
  font-size: 12.5px; cursor: pointer; color: var(--texto); min-width: 0; }
.ag-item b { display: block; font-size: 12.5px; }
.ag-item span { display: block; color: var(--suave); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ag-item.conflito { border-left-color: var(--perigo); background: #FFF4F2; }
.ag-item.feito { border-left-color: var(--ok); opacity: .8; }
.dia-bloco { margin-bottom: 14px; }
.dia-bloco h3 { font-size: 14px; margin: 0 0 6px; display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }
.dia-bloco h3.hoje { color: var(--serra-escura); }
.dia-bloco .ag-item { font-size: 14px; padding: 9px 10px; }
.dia-bloco .ag-item b { font-size: 14px; }
.dia-bloco .ag-item span { white-space: normal; }

/* ---------- gráficos ---------- */
.grafico { position: relative; }
.grafico svg { display: block; width: 100%; height: auto; overflow: visible; }
.legenda { display: flex; gap: 14px; flex-wrap: wrap; font-size: 13px; color: var(--suave); margin-bottom: 8px; }
.legenda i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 6px; vertical-align: -1px; }
.dica { position: absolute; pointer-events: none; background: var(--madeira); color: #fff; font-size: 12.5px; padding: 6px 9px; border-radius: 8px; white-space: nowrap; transform: translate(-50%, -110%); z-index: 5; box-shadow: var(--sombra); }
.barras-h { display: flex; flex-direction: column; gap: 8px; }
.barra-h { display: grid; grid-template-columns: 128px minmax(0, 1fr) 70px; gap: 8px; align-items: center; font-size: 13.5px; }
.barra-h .trilho { height: 14px; background: #EFE7DB; border-radius: 4px; display: flex; overflow: hidden; gap: 2px; }
.barra-h .trilho i { display: block; height: 100%; border-radius: 4px; }
.barra-h .trilho i.em-dia { background: var(--madeira-3); }
.barra-h .trilho i.atr { background: var(--perigo); background-image: repeating-linear-gradient(45deg, rgba(255,255,255,.25) 0 3px, transparent 3px 7px); }
.barra-h .v { text-align: right; font-variant-numeric: tabular-nums; color: var(--suave); }
.barra-h .v b { color: var(--perigo); }
.mini-semana { display: grid; grid-template-columns: 72px repeat(6, minmax(0, 1fr)); gap: 3px; font-size: 12px; align-items: center; }
.mini-semana .d { text-align: center; color: var(--muda); font-weight: 600; }
.mini-semana .n { font-weight: 650; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mini-semana .c { height: 26px; border-radius: 6px; background: #EFE7DB; display: flex; align-items: center; justify-content: center; font-weight: 700; color: var(--madeira-2); }
.mini-semana .c.t1 { background: #D7E6F3; color: #134F7A; }
.mini-semana .c.t2 { background: #9FC3E2; color: #0E3D5F; }
.mini-semana .c.cf { background: var(--perigo-claro); color: var(--perigo); box-shadow: inset 0 0 0 2px var(--perigo); }
.mini-semana .c.hoje { outline: 2px solid var(--serra); outline-offset: -2px; }

/* ---------- orçamento ---------- */
.amb { border: 1px solid var(--linha-forte); border-radius: var(--raio); background: #FBF7F1; padding: 10px; margin-bottom: 12px; }
.amb-cab { display: flex; gap: 8px; align-items: center; }
.amb-cab input { font-weight: 700; }
.movel { background: var(--papel); border: 1px solid var(--linha); border-radius: 10px; padding: 10px; margin-top: 10px; }
.movel-cab { display: flex; gap: 8px; align-items: center; }
.peca { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 6px; padding: 8px; border: 1px solid var(--linha); border-radius: 10px; margin-top: 8px; background: #fff; position: relative; }
.peca .full { grid-column: 1 / -1; }
.peca .campo > span { font-size: 11.5px; }
.peca input, .peca select { min-height: 38px; padding: 7px 8px; font-size: 15px; border-radius: 8px; }
.peca .rem { position: absolute; top: 4px; right: 4px; }
@media (min-width: 900px) {
  .peca { grid-template-columns: minmax(0, 1.6fr) minmax(0, 2fr) 84px 84px 64px minmax(0, 1.4fr) minmax(0, 1.8fr) 36px; align-items: end; padding: 6px 8px; }
  .peca .full { grid-column: auto; }
  .peca .rem { position: static; }
  .peca .campo > span { display: none; }
  .peca.cab-pecas { background: transparent; border: 0; padding: 0 8px; margin-top: 10px; font-size: 11.5px; font-weight: 700; color: var(--suave); text-transform: uppercase; letter-spacing: .04em; }
}
.cab-pecas { display: none; }
@media (min-width: 900px) { .cab-pecas { display: grid; } }
.fer { display: grid; grid-template-columns: minmax(0, 1fr) 84px 36px; gap: 6px; margin-top: 6px; align-items: center; }
.fer input, .fer select { min-height: 38px; padding: 7px 8px; font-size: 15px; border-radius: 8px; }
.mini-tit { font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--suave); font-weight: 700; margin-top: 12px; }
.resumo-calc .linha { display: flex; justify-content: space-between; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--linha); font-size: 14px; }
.resumo-calc .linha:last-child { border-bottom: 0; }
.resumo-calc .linha .q { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.resumo-calc .linha small { display: block; color: var(--muda); font-size: 12px; }
.total-calc { display: flex; justify-content: space-between; align-items: baseline; padding: 12px; background: var(--madeira); color: #fff; border-radius: 10px; margin-top: 10px; gap: 10px; }
.total-calc b { font-size: 20px; font-variant-numeric: tabular-nums; }
.mini-calc { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 13.5px; color: var(--texto); margin-bottom: 8px; font-variant-numeric: tabular-nums; }
.mini-calc b { font-weight: 750; }
@media (min-width: 1500px) { .mini-calc { display: none; } }
.barra-fixa { position: sticky; bottom: 0; z-index: 20; background: rgba(243, 236, 225, .96); backdrop-filter: blur(4px); padding: 10px 0; margin-top: 16px; border-top: 1px solid var(--linha-forte); }
.icone-btn { background: transparent; border: 1px solid var(--linha); border-radius: 8px; width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; color: var(--suave); flex: none; }
.icone-btn:hover { color: var(--perigo); border-color: #E7B9B4; }
.icone-btn svg { width: 16px; height: 16px; }
.duas-col { display: grid; gap: 14px; }
@media (min-width: 1500px) { .duas-col { grid-template-columns: minmax(0, 1fr) 360px; align-items: start; } .duas-col .lado { position: sticky; top: 20px; } }
@media (min-width: 1100px) and (max-width: 1499px) { .duas-col > .lado { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; align-items: start; } .duas-col > .lado > .cartao + .cartao { margin-top: 0; } }

/* ---------- modal ---------- */
.modal { position: fixed; inset: 0; z-index: 80; display: flex; align-items: flex-end; justify-content: center; background: rgba(30, 20, 12, .5); }
.modal .caixa { background: var(--papel); width: 100%; max-width: 560px; max-height: 92vh; overflow-y: auto; border-radius: 16px 16px 0 0; padding: 18px 16px; }
.modal .caixa h2 { font-size: 18px; margin-bottom: 12px; }
@media (min-width: 700px) { .modal { align-items: center; } .modal .caixa { border-radius: 16px; padding: 22px; } }

/* ---------- aviso flutuante ---------- */
.toast { position: fixed; left: 50%; bottom: 18px; transform: translateX(-50%); background: var(--madeira); color: #fff; padding: 11px 16px; border-radius: 10px; z-index: 100; font-size: 14px;
  box-shadow: 0 6px 24px rgba(0,0,0,.2); max-width: calc(100vw - 28px); }
.toast.erro { background: var(--perigo); }

/* ---------- entrada ---------- */
.entrada { min-height: 100vh; display: grid; }
.entrada .lado-marca { background: var(--madeira); color: #fff; padding: 26px 20px 30px; position: relative; overflow: hidden;
  background-image: repeating-linear-gradient(97deg, rgba(255,255,255,.025) 0 2px, transparent 2px 11px); }
.entrada .lado-marca::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 6px; background: linear-gradient(90deg, var(--serra) 0 40%, #E8A66A 40% 70%, #F3E3CC 70%); }
.entrada h1 { font-size: 28px; margin: 26px 0 10px; font-weight: 800; letter-spacing: -.02em; }
.entrada .lado-marca p { color: #E3D3BF; margin: 0; max-width: 460px; }
.entrada .lado-form { padding: 22px 16px 40px; max-width: 520px; width: 100%; margin: 0 auto; }
.papel-btn { display: flex; align-items: center; gap: 12px; width: 100%; text-align: left; padding: 12px; background: var(--papel); border: 1px solid var(--linha); border-radius: 12px; cursor: pointer; margin-bottom: 8px; box-shadow: var(--sombra); }
.papel-btn:hover { border-color: var(--serra); }
.papel-btn .ic { width: 40px; height: 40px; border-radius: 10px; background: var(--serra-clara); color: var(--serra-escura); display: flex; align-items: center; justify-content: center; flex: none; }
.papel-btn .ic svg { width: 20px; height: 20px; }
.papel-btn b { display: block; font-size: 15px; }
.papel-btn small { color: var(--suave); font-size: 13px; }
.pontos { list-style: none; padding: 0; margin: 22px 0 0; display: grid; gap: 10px; }
.pontos li { display: flex; gap: 10px; color: #EADBC8; font-size: 14.5px; }
.pontos li::before { content: ""; width: 14px; height: 4px; background: var(--serra); border-radius: 2px; margin-top: 9px; flex: none; }
@media (min-width: 960px) {
  .entrada { grid-template-columns: 1.05fr 1fr; }
  .entrada .lado-marca { padding: 48px 56px; display: flex; flex-direction: column; justify-content: center; }
  .entrada h1 { font-size: 42px; }
  .entrada .lado-form { padding: 48px 40px; align-self: center; }
}

/* ---------- acompanhamento público ---------- */
.publico { max-width: 640px; margin: 0 auto; padding: 0 14px 40px; }
.publico .topo-pub { background: var(--madeira); color: #fff; padding: 18px 16px; margin: 0 -14px 18px; box-shadow: 0 3px 0 var(--serra); }
@media (min-width: 700px) { .publico .topo-pub { border-radius: 0 0 16px 16px; } }

.carregando { padding: 40px; text-align: center; color: var(--suave); }
.texto-pronto { white-space: pre-wrap; background: #FBF7F1; border: 1px solid var(--linha); border-radius: 10px; padding: 12px; font-size: 14.5px; }
.sep { height: 1px; background: var(--linha); margin: 14px 0; border: 0; }
.pequeno { font-size: 13px; color: var(--suave); }
.forte { font-weight: 700; }
.quebra { overflow-wrap: anywhere; }
@media (max-width: 699px) {
  .barra-fixa { padding: 8px 0; }
  .barra-fixa .acoes { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
  .barra-fixa .acoes::-webkit-scrollbar { display: none; }
  .barra-fixa .btn { flex: none; }
  .mini-calc { font-size: 12.5px; margin-bottom: 6px; }
}
.card-movel .etq { white-space: normal; max-width: 100%; }
@media (min-width: 960px) and (max-width: 1299px) { .card-movel { padding: 8px; } .card-movel .t { font-size: 13.5px; } .card-movel .btn { font-size: 13px; padding: 6px 6px; } }
.mat { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; padding: 10px 0; border-bottom: 1px solid var(--linha); }
.mat:last-child { border-bottom: 0; }
.mat-n { flex: 1 1 220px; min-width: 0; }
.mat-c { display: flex; align-items: center; gap: 6px; margin-left: auto; }
.mat-c input { width: 132px; min-height: 38px; padding: 6px 8px; text-align: right; font-variant-numeric: tabular-nums; }
.mat-r { color: var(--suave); font-size: 13px; }
@media (max-width: 1499px) { .duas-col.lado-primeiro > .lado { order: -1; } }
@media (max-width: 699px) {
  .g4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .kpi { padding: 12px; }
  .kpi .val { font-size: 28px; }
  .kpi .rot { font-size: 12.5px; }
  .kpi .det { font-size: 12px; line-height: 1.35; }
  .cabeca .acoes .btn { padding: 7px 11px; min-height: 38px; font-size: 14px; }
}
