/* tema HCM Engenharia (08/09/2026): preto da marca na lateral, laranja das estruturas metálicas como destaque, cinzas neutros */
:root { --bg:#f3f4f6; --side:#121417; --side2:#1e2227; --side3:#2a2f36; --txt:#1b1f24; --mut:#6b7280; --bord:#e4e7ec; --acc:#f08a1d; --acc2:#d97706;
        --err:#b42318; --warn:#b54708; --ok:#1e7f3a; --sub-bg:#eceff3; --tot-bg:#dfe4ea; --edit-bg:#fff6e8; --sombra:0 1px 2px rgba(16,24,40,.05), 0 1px 3px rgba(16,24,40,.08); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; font-family: "Inter", "Segoe UI", system-ui, -apple-system, Roboto, sans-serif; font-size:14px; color:var(--txt); background:var(--bg); display:flex; min-height:100vh; -webkit-font-smoothing:antialiased; }
.sidebar { width:238px; background:var(--side); color:#e5e7eb; display:flex; flex-direction:column; flex-shrink:0; position:sticky; top:0; height:100vh; overflow-y:auto; scrollbar-width:thin; scrollbar-color:#3a3f47 transparent; }
.sidebar nav a { padding:7px 18px; font-size:13px; border-radius:6px; margin:1px 8px; }
.sidebar nav a.l2 { padding:5px 12px 5px 30px; font-size:12px; color:#9ca3af; } .sidebar nav a.l2.ativo { color:#fff; }
.sidebar nav a.topo { font-size:11px; letter-spacing:.08em; text-transform:uppercase; font-weight:700; color:#9ca3af; margin-top:6px; }
.sidebar nav .modulos { padding-bottom:6px; margin-bottom:6px; border-bottom:1px solid #22262c; }
.sidebar nav a.topo.modulo { display:block; color:#e5e7eb; background:var(--side2); border-left:3px solid #3a3f47; border-radius:0 6px 6px 0; margin:6px 8px 0 0; padding-left:15px; line-height:1.35; }
.sidebar nav a.topo.modulo.ativo { border-left-color:var(--acc); background:var(--side3); box-shadow:none; }
/* 21/09/2026 — menu em sanfona: o módulo clicado abre os sub-módulos logo abaixo dele (só um aberto por vez) */
.sidebar nav a.topo.modulo { display:flex; justify-content:space-between; align-items:center; gap:8px; }
.sidebar nav .mod-tg { font-size:10px; color:#6b7280; transform:rotate(-90deg); transition:transform .15s; }
.sidebar nav .mod.aberto .mod-tg { transform:none; color:var(--acc); }
.sidebar nav .mod-filhos { margin:0 8px 4px 0; padding:2px 0 6px 6px; border-left:3px solid var(--acc); background:rgba(255,255,255,.025); border-radius:0 0 6px 0; }
.sidebar nav .mod-filhos .grupo { padding:10px 16px 4px; }
.sidebar nav .mod-filhos a { display:block; margin:1px 4px 1px 2px; }
.sidebar nav .mod-filhos a.l1 { padding-left:14px; }
.sidebar nav .mod-filhos a.l2 { padding-left:26px; }
.sidebar nav .mod-filhos .sub1 { padding-left:14px; }
.sidebar nav a.l3 { padding-left:44px; font-size:12.5px; }
.sidebar nav .sub1 { padding:7px 18px 2px; font-size:12.5px; color:#9ca3af; text-transform:uppercase; letter-spacing:.04em; }
.sidebar nav .sub2 { padding:6px 18px 2px 32px; font-size:12px; color:#9ca3af; text-transform:uppercase; letter-spacing:.04em; }
.abas-links a { margin-right:14px; }
.brand { padding:22px 20px 12px; border-bottom:1px solid #22262c; margin-bottom:6px; }
.brand-logo { display:block; width:118px; height:auto; margin:0 0 10px; }
.brand-title { font-weight:600; font-size:13px; letter-spacing:.02em; color:#e5e7eb; }
.brand-sub { font-size:11px; color:#9ca3af; margin-top:3px; letter-spacing:.04em; }
nav { display:flex; flex-direction:column; }
nav a { color:#d1d5db; text-decoration:none; padding:10px 18px; transition:background .12s, color .12s; }
nav a:hover { background:var(--side2); color:#fff; }
nav a.ativo { background:var(--side3); color:#fff; box-shadow:inset 3px 0 0 var(--acc); }
nav a.dim { color:#6b7280; }
nav .grupo { font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:#8b919a; padding:16px 20px 6px; font-weight:600; }
.rodape { margin-top:auto; padding:14px 20px; font-size:11px; color:#6b7280; border-top:1px solid #22262c; }
.conteudo { flex:1; padding:28px 36px 48px; min-width:0; }
h1 { font-size:22px; margin:0 0 6px; font-weight:700; letter-spacing:-.01em; }
h1::after { content:""; display:block; width:36px; height:3px; background:var(--acc); border-radius:2px; margin-top:8px; }
.sub { color:var(--mut); margin-bottom:22px; line-height:1.5; max-width:1400px; }
.card { background:#fff; border:1px solid var(--bord); border-radius:12px; padding:18px 22px; margin-bottom:18px; box-shadow:var(--sombra); }
.card h2 { font-size:14.5px; margin:0 0 12px; font-weight:600; }
table { border-collapse:separate; border-spacing:0; width:100%; font-size:13px; }
th, td { text-align:left; padding:7px 8px; border-bottom:1px solid var(--bord); vertical-align:top; }
th { color:var(--mut); font-weight:600; font-size:11.5px; text-transform:uppercase; letter-spacing:.03em; background:#f8f9fb; position:sticky; top:0; z-index:1; }
td.num, th.num { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
tr:hover td { background:#f9fafb; }
.mono { font-family: "JetBrains Mono", Consolas, "Courier New", monospace; font-size:12.5px; }
.flash { background:#fff7ed; border:1px solid #fed7aa; color:#7c2d12; padding:10px 14px; border-radius:8px; margin-bottom:16px; }
.btn { display:inline-block; background:var(--txt); color:#fff; border:0; border-radius:8px; padding:8px 14px; font-size:13px; font-weight:500; cursor:pointer; text-decoration:none; transition:background .12s; }
.btn:hover { background:#000; }
.btn.sec { background:#fff; color:var(--txt); border:1px solid var(--bord); font-weight:500; } .btn.sec:hover { background:#f3f4f6; }
.btn:disabled { opacity:.5; cursor:default; }
input[type=text], input[type=date], input[type=search], input:not([type]), select, textarea { padding:7px 9px; border:1px solid var(--bord); border-radius:8px; font-size:13px; background:#fff; font-family:inherit; }
input:focus, select:focus, textarea:focus { outline:2px solid rgba(240,138,29,.35); border-color:var(--acc); }
a { color:#1d4ed8; }
input[type=file] { font-size:12px; }
.filtros { display:flex; flex-wrap:wrap; gap:8px 10px; align-items:end; }
.filtros label { display:flex; flex-direction:column; font-size:11px; color:var(--mut); gap:3px; }
.tag { display:inline-block; padding:2px 8px; border-radius:10px; font-size:11px; font-weight:600; }
.tag.ok { background:#e3f2e7; color:var(--ok); } .tag.err { background:#fde8e6; color:var(--err); } .tag.warn { background:#fdf0e0; color:var(--warn); } .tag.mut { background:#eceeea; color:var(--mut); }
.kpis { display:flex; gap:14px; flex-wrap:wrap; margin-bottom:16px; }
.kpi { background:#fff; border:1px solid var(--bord); border-radius:12px; padding:14px 18px; min-width:170px; box-shadow:var(--sombra); border-top:3px solid var(--acc); }
.kpi .v { font-size:22px; font-weight:700; letter-spacing:-.01em; } .kpi .l { font-size:12px; color:var(--mut); }
pre.log { background:#111813; color:#cfe6d5; padding:12px 14px; border-radius:6px; font-size:12px; max-height:320px; overflow:auto; white-space:pre-wrap; }
.pag { display:flex; gap:6px; align-items:center; margin-top:12px; font-size:13px; }
.pag a { padding:4px 8px; border:1px solid var(--bord); border-radius:5px; text-decoration:none; color:var(--txt); background:#fff; }
.linha-acao { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.aviso { color:var(--mut); font-size:12px; }
.wrap { overflow-x:auto; }
table.dados td, table.dados th { white-space:nowrap; padding:5px 7px; font-size:12.5px; }
table.dados td.trunc { max-width:220px; overflow:hidden; text-overflow:ellipsis; }
table.dados td.trunc.curto { max-width:150px; }
.linha-acao form { display:flex; gap:6px; align-items:center; }

/* fluxo de caixa: colunas PREVISTO esmaecidas, totais destacados, primeiras colunas fixas ao rolar */
table.fluxo td.prev, table.fluxo th.prev { opacity:.55; }
table.fluxo td.tot, table.fluxo th.tot { background:rgba(240,138,29,.08); font-weight:600; }
table.fluxo tr.cab th { border-bottom:0; padding-top:2px; padding-bottom:2px; }
table.fluxo tr.cab:nth-child(3) th { border-bottom:2px solid var(--bord); }
table.fluxo .fx1 { position:sticky; left:-22px; width:54px; min-width:54px; box-sizing:border-box; background:#fff; z-index:2; }
table.fluxo .fx2 { overflow:hidden; text-overflow:ellipsis; position:sticky; left:32px; width:300px; min-width:300px; max-width:300px; box-sizing:border-box; background:#fff; z-index:2; box-shadow:4px 0 6px -4px rgba(0,0,0,.25); }
table.fluxo tr.r-grupo, table.fluxo tr.r-grupo .fx1, table.fluxo tr.r-grupo .fx2 { font-weight:700; background:var(--sub-bg); }
table.fluxo tr.r-sub, table.fluxo tr.r-sub .fx1, table.fluxo tr.r-sub .fx2 { font-weight:600; background:#f3f5f8; }
table.fluxo tr.r-calc, table.fluxo tr.r-calc .fx1, table.fluxo tr.r-calc .fx2 { font-weight:700; background:var(--tot-bg); }
table.fluxo tr.r-acum, table.fluxo tr.r-acum .fx1, table.fluxo tr.r-acum .fx2 { font-weight:700; background:#fdebd3; }
table.fluxo tr.r-conf { font-style:italic; color:#555; }
table.fluxo tr.r-grupo td.tot, table.fluxo tr.r-calc td.tot, table.fluxo tr.r-acum td.tot { background:rgba(240,138,29,.16); }
table.fluxo th { position:static; }
table.fluxo tr.cab th.num { overflow:hidden; text-overflow:ellipsis; }   /* 10/10/2026: cabeçalho nunca vaza para debaixo das colunas fixas */

/* econômico-financeiro */
table.ef td.rot { white-space:nowrap; }
table.ef .cab { display:block; font-size:9.5px; letter-spacing:.06em; color:var(--mut); margin-top:6px; }
table.ef tr.r-tot td { font-weight:600; background:#f3f5f8; }
table.ef tr.r-res td { font-weight:700; background:var(--tot-bg); }
table.ef tr.r-pct td { font-style:italic; color:#555; }
table.ef tr.ind td.rot { color:#333; }
.barra { display:flex; gap:8px; align-items:center; margin:0 0 14px; }
.barra input { padding:6px 9px; border:1px solid var(--bord); border-radius:6px; font:inherit; }
details.obra { border-top:1px solid var(--bord); padding:6px 0; }
details.obra summary { cursor:pointer; padding:6px 4px; font-weight:600; list-style:none; display:flex; gap:10px; align-items:baseline; }
details.obra summary::before { content:"▸"; color:var(--mut); font-size:11px; }
details.obra[open] summary::before { content:"▾"; }
details.obra summary .resumo { font-weight:400; color:var(--mut); font-size:12px; margin-left:auto; white-space:nowrap; }
details.obra table { margin:4px 0 10px 18px; }
table.ef th.num { white-space:normal; font-size:10.5px; line-height:1.15; vertical-align:bottom; max-width:120px; }
table.ef { width:100%; }
table.val td { padding:7px 9px; font-size:13px; }
tr.r-total td { font-weight:700; background:var(--tot-bg); border-top:2px solid #9aa3b2; }
table.lista { width:100%; } table.lista td:first-child { white-space:normal; }
.abas { display:flex; gap:6px; flex-wrap:wrap; margin:0 0 14px; }
.abas a { padding:6px 12px; border:1px solid var(--bord); border-radius:999px; background:#fff; color:var(--txt); text-decoration:none; font-size:12.5px; }
.abas a.ativa { background:var(--txt); color:#fff; border-color:var(--txt); }
table.obras th.ano { border-bottom:1px solid var(--bord); background:#f3f5f8; text-align:center; }
table.obras td { font-size:12px; padding:3px 6px; }
.barra label { font-size:12.5px; display:flex; gap:5px; align-items:center; }
svg.graf { width:100%; height:auto; display:block; }

/* visualização somente leitura de abas da planilha */
table.grade { border-collapse:collapse; font-size:12px; }
table.grade th, table.grade td { border:1px solid #e3e6e3; padding:3px 6px; white-space:nowrap; max-width:320px; overflow:hidden; text-overflow:ellipsis; }
table.grade th { background:#f3f5f8; color:#556; font-weight:600; text-align:center; position:sticky; top:0; }
table.grade td.rn { background:#f3f5f8; color:#889; text-align:right; }
table.grade td.n { text-align:right; font-variant-numeric:tabular-nums; }
table.grade td.t { text-align:left; }
table.grade tr:hover td { background:#fbfcf9; }
.metod h2 { font-size:16px; margin:22px 0 8px; }
.metod p, .metod li { line-height:1.5; }
/* metodologia: fluxograma do resultado */
.fluxo { display:flex; align-items:center; gap:7px; min-width:max-content; padding:6px 4px; }
.fluxo .cx { width:100px; min-height:44px; display:flex; align-items:center; justify-content:center; text-align:center; padding:6px 8px; font-size:10px; font-weight:700; border:1px solid rgba(0,0,0,.25); box-shadow:2px 2px 3px rgba(0,0,0,.18); line-height:1.25; }
.fluxo .c1 { background:#9aa5b1; color:#111; } .fluxo .c2 { background:#ff0000; color:#fff; } .fluxo .ck { background:#000; color:#fff; }
.fluxo .cg { background:#00b050; color:#fff; } .fluxo .cb { background:#00b0f0; color:#fff; } .fluxo .co { background:#f4a03c; color:#111; } .fluxo .cl { background:#9dc3e6; color:#111; }
.fluxo .op { font-size:18px; font-weight:700; color:#333; width:14px; text-align:center; }
.fluxo .pilha { display:flex; flex-direction:column; gap:14px; }
.grupos-cc { display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:14px; }
.gcc { border:1px solid var(--bord); border-radius:6px; overflow:hidden; }
.gcc-t { padding:7px 10px; font-size:12px; font-weight:700; color:#fff; background:#ff0000; }
.gcc-t.g1 { background:#9aa5b1; color:#111; } .gcc-t.g8 { background:#f4a03c; color:#111; } .gcc-t.g9 { background:#9dc3e6; color:#111; }
.gcc table.dados td { border-bottom:1px solid #eef0ee; }

.form-cad { display:flex; flex-wrap:wrap; gap:14px; align-items:flex-start; font-size:13px; }
.form-cad label { display:inline-block; color:var(--mut); font-size:12px; }
.form-cad input, .form-cad select { padding:6px 8px; border:1px solid var(--bord); border-radius:6px; font-size:13px; }
/* cadastro de orçamentos */
.orc-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(190px, 1fr)); gap:12px; margin-top:12px; }
.orc-bloco { border:1px solid var(--bord); border-radius:6px; padding:8px 10px; display:flex; flex-direction:column; gap:6px; }
.orc-bloco-t { font-size:11px; letter-spacing:.05em; text-transform:uppercase; color:var(--mut); font-weight:700; }
table.orc td.calc, table.orc th.calc { background:#f3f5f8; font-weight:600; }
table.orc tr.r-tot td { border-top:2px solid #cfd8cf; font-weight:700; background:#fafbf9; }
/* backlog de fábrica: grade editável */
table.bk input.cel { width:62px; text-align:right; font-size:11.5px; padding:2px 4px; border:1px solid var(--bord); border-radius:4px; background:#fff; }
table.bk input.cel:focus { outline:2px solid rgba(240,138,29,.4); border-color:var(--acc); }
table.bk th { position:static; }
table.bk td, table.bk th { padding:3px 4px; font-size:12px; }
table.bk th:last-child, table.bk td:last-child { position:sticky; right:0; background:#fff; box-shadow:-6px 0 8px -6px rgba(0,0,0,.18); }
table.bk th:last-child { background:#f8f9fb; }
table.bk tr.r-tot td:last-child { background:inherit; }
table.bk th:first-child, table.bk td:first-child { position:sticky; left:0; background:#fff; z-index:1; box-shadow:6px 0 8px -6px rgba(0,0,0,.18); }
table.bk th:first-child { background:#f8f9fb; }
table.bk a.ed-col { font-size:10px; font-weight:400; color:var(--acc); text-decoration:none; border:1px solid var(--bord); border-radius:4px; padding:0 5px; }
table.bk a.ed-col:hover { background:var(--edit-bg); }

/* tema: elementos comuns */
.tag { letter-spacing:.01em; }
.chip { border-radius:999px !important; }
td.calc, th.calc { background:#f8f9fb; }
details.obra summary:hover { background:#f9fafb; border-radius:6px; }
.card.wrap table th { position:sticky; top:0; }
.sidebar .grp-tg, .sidebar .sec-tg { color:#8b919a; }

/* títulos dos gráficos: centralizados, fora do SVG (editáveis pelo ✎) */
.card > h2.g-tit{text-align:center;font-size:15px;margin:2px 0 8px}

/* números clicáveis dos relatórios → Lançamentos (09/09/2026) */
a.lk{color:inherit;text-decoration:none;border-bottom:1px dotted rgba(0,0,0,.25)} a.lk:hover{color:var(--acc2);border-bottom-color:var(--acc2)}

table.orc th.hl, table.orc td.hl{background:#fff3c4} table.orc th.hl{color:#5a4500}

.btn.alerta{background:#c62828;color:#fff;border:1px solid #c62828;animation:pulsa 1.6s ease-in-out infinite} .btn.alerta:hover{background:#a51f1f} @keyframes pulsa{0%,100%{box-shadow:0 0 0 0 rgba(198,40,40,.45)}50%{box-shadow:0 0 0 6px rgba(198,40,40,0)}}

/* ---------------------------------------------------------------- celular / tablet (12/09/2026, Paulo: "deixar o site responsivo") */
.topbar { display:none; }
.menu-fundo { display:none; }
@media (max-width: 900px) {
  body { display:block; }
  .topbar { display:flex; align-items:center; gap:10px; position:sticky; top:0; z-index:40; background:var(--side); color:#e5e7eb; padding:8px 12px; min-height:52px; box-shadow:0 1px 4px rgba(0,0,0,.35); }
  .topbar-marca img { height:26px; width:auto; display:block; }
  .topbar-tit { font-size:13px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; flex:1; min-width:0; }
  .topbar-sub { display:block; font-size:10.5px; font-weight:400; color:#9ca3af; letter-spacing:.04em; }
  .menu-btn { width:40px; height:40px; border:0; background:transparent; border-radius:8px; display:flex; flex-direction:column; justify-content:center; gap:5px; align-items:center; cursor:pointer; padding:0; flex-shrink:0; }
  .menu-btn span { display:block; width:22px; height:2px; background:#e5e7eb; border-radius:2px; }
  .menu-btn:active { background:var(--side3); }
  .sidebar { position:fixed; top:0; left:0; bottom:0; height:100%; width:min(300px, 86vw); transform:translateX(-105%); transition:transform .22s ease; z-index:60; box-shadow:0 0 30px rgba(0,0,0,.5); }
  .sidebar.aberta { transform:none; }
  .menu-fundo.on { display:block; position:fixed; inset:0; background:rgba(0,0,0,.45); z-index:50; }
  body.menu-aberto { overflow:hidden; }
  .sidebar nav a { padding:11px 18px; font-size:14px; }                /* alvo de toque maior */
  .sidebar nav a.l2 { padding:9px 12px 9px 30px; font-size:13px; }
  .conteudo { padding:14px 12px 40px; }
  h1 { font-size:18px; }
  .sub { margin-bottom:14px; font-size:13px; }
  .card { padding:12px 12px; border-radius:10px; margin-bottom:12px; overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .card.wrap { padding:0 0 4px; }
  table { font-size:12px; }
  th, td { padding:6px 6px; }
  .kpi { min-width:calc(50% - 7px); flex:1 1 calc(50% - 7px); padding:10px 12px; } .kpi .v { font-size:18px; }
  .btn { padding:9px 14px; font-size:13px; }
  main input, main select, main textarea { max-width:100%; }             /* larguras fixas em linha não estouram a tela */
  .form-cad label, .filtros label { max-width:100%; }
  .linha-acao { gap:8px; }
  table.fluxo .fx2 { width:170px; min-width:170px; max-width:170px; }
  table.fluxo .fx1 { left:-12px; }
  .flash { padding:8px 10px; font-size:13px; }
  pre.log { font-size:11px; }
  h1::after { margin-top:6px; }
}
@media (max-width: 480px) {
  .conteudo { padding:10px 8px 40px; }
  .card { padding:10px 8px; }
  .kpi { min-width:100%; }
  table.fluxo .fx2 { width:140px; min-width:140px; max-width:140px; }
}

/* 12/10/2026 (Giovanni) — explicação por aba: "?" ao lado do título abre a caixa; oculta por padrão (base.html: ajudaMontar) */
.ajuda-btn { all:unset; cursor:pointer; width:20px; height:20px; border-radius:50%; border:1.5px solid #20503f; color:#20503f; font-size:12px; font-weight:700; display:inline-flex; align-items:center; justify-content:center; vertical-align:middle; margin-left:4px; line-height:1; }
.ajuda-btn:hover, .ajuda-btn.on { background:#20503f; color:#fff; }
.ajuda-box { background:#fbfaf5; border:1px solid #dcd8cc; border-left:3px solid var(--acc); border-radius:3px; padding:12px 14px; margin:0 0 14px; font-size:12.5px; line-height:1.45; color:var(--txt); text-transform:none; letter-spacing:0; font-weight:400; }
.ajuda-box p { margin:0 0 6px; } .ajuda-box ul { margin:4px 0 0 16px; padding:0; } .ajuda-box li { margin:2px 0; }
.ajuda-box .ajuda-tit { font-weight:700; font-size:12.5px; margin:0 0 4px; } .ajuda-box .ajuda-tit + .ajuda-tit, .ajuda-box p + .ajuda-tit { margin-top:8px; }
.ajuda-box .ajuda-fechar { all:unset; cursor:pointer; float:right; font-size:11.5px; color:var(--mut); margin-left:10px; }
.ajuda-box .ajuda-fechar:hover { color:var(--txt); }
/* quadros recolhíveis (mostrar/ocultar), escolha guardada no navegador — cfr.html quadroRecolhivel() */
.q-barra { display:flex; align-items:center; justify-content:space-between; gap:10px; background:#fff; border:1px solid #dcd8cc; border-radius:3px; padding:9px 14px; margin-bottom:12px; font-size:13px; }
.q-barra b { font-weight:600; } .q-barra .q-sub { display:block; color:var(--mut); font-size:11.5px; margin-top:2px; }
.q-barra.err { background:#f6e4e1; border-color:#e8c4bf; color:#a3372c; } .q-barra.err .q-sub { color:#a3372c; }
.q-tg { all:unset; cursor:pointer; flex:0 0 auto; font-size:12px; font-weight:600; color:#20503f; border:1px solid #20503f; border-radius:14px; padding:3px 10px; white-space:nowrap; line-height:1.3; }
.q-tg.q-ocultar { color:var(--mut); border-color:#dcd8cc; font-weight:600; } .q-tg:hover { background:#e7efe9; }
.q-barra.err .q-tg { color:#a3372c; border-color:#a3372c; } .q-barra.err .q-tg:hover { background:#fff; }
.q-cab { display:flex; justify-content:space-between; align-items:flex-start; gap:8px; }
.q-cab > :first-child { flex:1 1 auto; min-width:0; }
.q-barra[hidden], .q-full[hidden], .ajuda-box[hidden] { display:none !important; }
.ajuda-box .ajuda-ed { margin-top:8px; font-size:11.5px; } .ajuda-box .ajuda-editar { all:unset; cursor:pointer; color:var(--mut); border:1px solid var(--bord); border-radius:999px; padding:1px 8px; font-size:11px; background:#fff; }
.ajuda-box .ajuda-editar:hover { color:var(--txt); } .ajuda-box .ajuda-corpo.editando { outline:2px solid var(--acc); outline-offset:4px; background:#fffdf8; border-radius:3px; }

/* ===== Modo celular (app, passo 2 — 12/10/2026, static/celular.js): tabelas largas viram cartões, filtros em gaveta ===== */
.mob-barra, .mob-tg-filtros { display:none; }
@media (max-width: 720px) {
  .mob-barra { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin:0 0 10px; }
  .mob-tg { all:unset; cursor:pointer; font-size:12.5px; font-weight:600; color:var(--txt); background:#fff; border:1px solid var(--bord); border-radius:999px; padding:6px 12px; line-height:1.2; }
  .mob-tg .n { display:inline-block; min-width:18px; text-align:center; background:var(--acc); color:#111; border-radius:9px; font-size:11px; padding:1px 5px; margin-left:2px; }
  .mob-tg-filtros { display:inline-block; margin:0 0 10px; }
  .mob-ord { font-size:12.5px; padding:6px 10px; border:1px solid var(--bord); border-radius:999px; background:#fff; max-width:60%; }
  .mob-filtros { display:none !important; }
  .mob-filtros.mob-aberto { display:flex !important; flex-direction:column; align-items:stretch !important; gap:8px !important; }
  .mob-filtros.mob-aberto > * { width:100% !important; max-width:100% !important; margin-left:0 !important; }
  .mob-filtros.mob-aberto > label { display:flex; flex-direction:column; gap:3px; }
  .mob-filtros.mob-aberto > label > select, .mob-filtros.mob-aberto > label > input { width:100%; }
  .mob-filtros.mob-aberto > label:has(> input[type=checkbox]) { flex-direction:row; align-items:center; gap:8px; }
  .mob-filtros.mob-aberto > label > input[type=checkbox] { width:18px; height:18px; }
  /* a tabela vira lista de cartões */
  table.mob-cartoes { display:block; width:100%; border-collapse:collapse; white-space:normal !important; font-size:13px; }
  table.mob-cartoes > thead, table.mob-cartoes > tbody, table.mob-cartoes > tfoot, table.mob-cartoes > tbody > tr, table.mob-cartoes > tfoot > tr { display:block; }
  table.mob-cartoes > thead > tr { position:absolute; left:-9999px; top:-9999px; }
  table.mob-cartoes > thead > tr.filter-row { position:static; display:none; }
  table.mob-cartoes.mob-aberto > thead > tr.filter-row { display:block; background:#faf9f5; border:1px solid var(--bord); border-radius:8px; padding:8px 10px; margin:0 0 10px; }
  table.mob-cartoes > thead > tr.filter-row > th { display:flex; align-items:center; gap:8px; padding:4px 0; border:0; background:transparent; font-weight:400; white-space:normal; }
  table.mob-cartoes > thead > tr.filter-row > th::before { content:attr(data-label); flex:0 0 36%; font-size:11px; color:var(--mut); text-transform:none; letter-spacing:0; }
  table.mob-cartoes > thead > tr.filter-row > th > input, table.mob-cartoes > thead > tr.filter-row > th > select { flex:1 1 auto; width:auto !important; min-width:0; }
  table.mob-cartoes > thead > tr.filter-row > th.mob-vazio { display:none; }
  table.mob-cartoes > tbody > tr, table.mob-cartoes > tfoot > tr { display:flex; flex-direction:column; position:relative; background:#fff; border:1px solid var(--bord); border-radius:10px; padding:10px 12px; margin:0 0 8px; box-shadow:var(--sombra); }
  table.mob-cartoes > tbody > tr:has(> td.mob-chk) { padding-right:40px; }
  table.mob-cartoes td::before { text-align:left !important; font-family:"Inter","Segoe UI",system-ui,sans-serif; }
  table.mob-cartoes td.mob-tit { order:-1; }
  table.mob-cartoes td.mob-acoes { order:99; }
  table.mob-cartoes > tbody > tr:hover > td { background:transparent !important; }
  table.mob-cartoes td, table.mob-cartoes > tbody > tr > th, table.mob-cartoes > tfoot > tr > td { display:flex; justify-content:space-between; align-items:baseline; gap:10px; padding:2px 0; border:0 !important; white-space:normal !important; text-align:left; width:auto !important; min-width:0 !important; max-width:none !important; position:static !important; background:transparent !important; font-size:12.5px; }
  table.mob-cartoes td::before { content:attr(data-label); flex:0 0 40%; font-size:11px; color:var(--mut); font-weight:500; }
  table.mob-cartoes td.num { text-align:right; } table.mob-cartoes td.num > * { margin-left:auto; }
  table.mob-cartoes td.mob-tit { display:block; font-weight:600; font-size:14px; line-height:1.3; margin:0 0 4px; font-family:inherit !important; }
  table.mob-cartoes td.mob-tit::before { content:none; }
  table.mob-cartoes td.mob-chk { position:absolute !important; right:10px; top:10px; padding:0; }
  table.mob-cartoes td.mob-chk::before { content:none; }
  table.mob-cartoes td.mob-vazio { display:none; }
  table.mob-cartoes td.mob-acoes { display:flex; justify-content:flex-end; gap:12px; margin-top:6px; padding-top:6px; border-top:1px dashed var(--bord) !important; }
  table.mob-cartoes td.mob-acoes::before { content:none; } table.mob-cartoes td.mob-acoes .rowactions { justify-content:flex-end; flex-wrap:wrap; }
  table.mob-cartoes td.mob-largo { display:block; } table.mob-cartoes td.mob-largo::before { display:none; }
  table.mob-cartoes > tbody > tr.r-tot, table.mob-cartoes > tbody > tr.r-total, table.mob-cartoes > tfoot > tr { background:#eceff3; }
  table.mob-cartoes td input:not([type=checkbox]), table.mob-cartoes td select { flex:1 1 auto; min-width:0; width:auto !important; }
  table.mob-cartoes td input[type=checkbox] { width:18px; height:18px; }
  /* célula escondida pelo desktop (colunas opcionais) continua escondida */
  table.mob-cartoes td[style*="display: none"], table.mob-cartoes td[hidden] { display:none !important; }
  .mob-cartoes-wrap, #cfr-app .panel { overflow:visible; }
}

/* ===== Barra de abas fixa no rodapé (celular) — 18/10/2026, base.html .bnav ===== */
.bnav { display:none; }
@media (max-width: 900px) {
  .bnav { display:flex; position:fixed; left:0; right:0; bottom:0; z-index:45; background:#121417; border-top:1px solid #23272e;
          padding:6px 2px calc(6px + env(safe-area-inset-bottom)); box-shadow:0 -2px 10px rgba(0,0,0,.25); }
  .bnav a { flex:1 1 0; min-width:0; display:flex; flex-direction:column; align-items:center; gap:3px; text-decoration:none; color:#aeb4bd; padding:2px 0; -webkit-tap-highlight-color:transparent; }
  .bnav .ic { display:flex; align-items:center; justify-content:center; width:46px; height:30px; border-radius:15px; transition:background .15s; }
  .bnav svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
  .bnav .rot { font-size:10px; letter-spacing:-.2px; line-height:1.1; max-width:100%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; padding:0 1px; }
  .bnav:has(a:nth-child(7)) .ic { width:38px; } .bnav:has(a:nth-child(7)) .rot { font-size:9.5px; }   /* 7 abas (Faturamentos, 19/10/2026) */
  .bnav a.ativo { color:#f5a54a; } .bnav a.ativo .ic { background:rgba(240,138,29,.18); } .bnav a.ativo .rot { font-weight:600; }
  body:has(.bnav) .conteudo { padding-bottom:calc(84px + env(safe-area-inset-bottom)); }
}

/* ===== Cartões compactos (18/10/2026, Giovanni): miolo em grade de 2 colunas, rótulo pequeno em cima do valor — ~metade da altura.
   Sobrepõe as regras de 12/10 acima (mesma especificidade, definidas depois). Vale para todas as listas em cartão (celular.js). ===== */
@media (max-width: 720px) {
  table.mob-cartoes > tbody > tr, table.mob-cartoes > tfoot > tr { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:14px; row-gap:7px; padding:10px 12px 8px; margin:0 0 8px; }
  table.mob-cartoes > tbody > tr:has(> td.mob-chk) { padding-right:12px; }
  table.mob-cartoes td, table.mob-cartoes > tfoot > tr > td { display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-start; gap:1px; padding:0 !important; font-size:12.5px; line-height:1.3; min-width:0 !important; overflow-wrap:anywhere; }
  table.mob-cartoes td::before { flex:none; font-size:10px; line-height:1.2; text-transform:uppercase; letter-spacing:.03em; color:var(--mut); font-weight:500; }
  table.mob-cartoes td.num { text-align:left; } table.mob-cartoes td.num > * { margin-left:0; }
  table.mob-cartoes td.mob-tit { grid-column:1 / -1; display:block; font-size:14px; margin:0; padding-right:30px !important; }
  table.mob-cartoes td.mob-chk { right:12px; top:10px; }
  table.mob-cartoes td.mob-largo { grid-column:1 / -1; }
  table.mob-cartoes td.mob-acoes { grid-column:1 / -1; flex-direction:row; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:8px; margin-top:2px; padding-top:7px !important; border-top:1px dashed var(--bord) !important; }
  table.mob-cartoes td.mob-acoes button.link, table.mob-cartoes td.mob-acoes a { font-family:"Inter","Segoe UI",system-ui,sans-serif !important; font-size:12px !important; font-weight:600 !important; padding:5px 12px !important; border:1px solid var(--bord) !important; border-radius:999px !important; background:#fff !important; line-height:1.2 !important; text-decoration:none; }
  table.mob-cartoes td.mob-acoes button.link.danger { border-color:#f0c9c3 !important; }
  table.mob-cartoes td input:not([type=checkbox]), table.mob-cartoes td select { width:100% !important; }
}
