/* ADA - camada de interface sobre os tokens BCM (bcm-tokens.css) */
:root {
  --sidebar-w: 248px;
  --topo-h: 60px;
  --bs-body-font-family: var(--bcm-fonte-texto);
  --bs-body-color: var(--bcm-preto);
  --bs-primary: #006EA5;
  --bs-primary-rgb: 0, 110, 165;
  --bs-link-color: #006EA5;
  --bs-link-color-rgb: 0, 110, 165;
  --bs-border-radius: 4px;
}
body { background: var(--bcm-branco-gelo); font-size: 15px; line-height: 1.5; }
p { max-width: none; }
h1, h2 { margin: 0; }
h1 { font-size: 30px; }
h2 { font-size: 22px; color: var(--bcm-azul); }

.btn-primary { --bs-btn-bg: #006EA5; --bs-btn-border-color: #006EA5; --bs-btn-hover-bg: #005a87; --bs-btn-hover-border-color: #005a87; --bs-btn-active-bg: #004e75; }
.btn-outline-primary { --bs-btn-color: #006EA5; --bs-btn-border-color: #006EA5; --bs-btn-hover-bg: #006EA5; --bs-btn-hover-border-color: #006EA5; --bs-btn-active-bg: #006EA5; }
.form-control:focus, .form-select:focus { border-color: #80B6E3; box-shadow: 0 0 0 .2rem rgba(0,110,165,.2); }
.text-primary { color: #006EA5 !important; }

/* ---------- layout ---------- */
.ada-topo {
  position: fixed; inset: 0 0 auto 0; height: var(--topo-h); z-index: 1030;
  background: #fff; border-bottom: 1px solid var(--bcm-cinza-20);
  display: flex; align-items: center; gap: 16px; padding: 0 16px;
}
.ada-topo::before { content: ''; position: absolute; inset: 0 0 auto 0; height: 4px; background: var(--bcm-azul); }
.ada-topo .logo { height: 30px; }
.ada-topo .produto { font-family: var(--bcm-fonte-titulo); font-size: 24px; color: var(--bcm-azul); letter-spacing: .03em; line-height: 1; }
.ada-topo .produto small { display: block; font-family: var(--bcm-fonte-texto); font-size: 11px; color: var(--bcm-cinza); letter-spacing: 0; }
/* menu lateral: busca fixa no topo, itens com rolagem própria, usuário fixo embaixo */
.ada-sidebar {
  position: fixed; top: var(--topo-h); bottom: 0; left: 0; width: var(--sidebar-w);
  background: var(--bcm-preto); color: #fff; z-index: 1020; display: flex; flex-direction: column;
}
.ada-sidebar .menu-itens, .ada-sidebar .busca-resultados { flex: 1 1 auto; overflow-y: auto; padding: 0 0 16px; min-height: 0; }
.ada-sidebar .menu-itens { position: relative; } /* referência do offsetTop dos itens (manter a tela atual à vista) */
.ada-sidebar .grupo { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: #b9b9b8; padding: 16px 20px 6px; font-weight: 700; }
.ada-sidebar .menu-itens a, .ada-sidebar .busca-resultados a { display: flex; align-items: center; gap: 10px; color: #EBEBEA; text-decoration: none; padding: 7px 20px; font-size: 14px; border-left: 3px solid transparent; }
.ada-sidebar .menu-itens a:hover, .ada-sidebar .busca-resultados a:hover { background: rgba(255,255,255,.06); }
.ada-sidebar .menu-itens a.ativo { background: rgba(0,110,165,.35); border-left-color: #80B6E3; color: #fff; font-weight: 600; }
.ada-sidebar i { width: 18px; text-align: center; opacity: .85; flex: none; }
.ada-sidebar .menu-busca { padding: 12px 14px 10px; border-bottom: 1px solid rgba(255,255,255,.08); }
.ada-sidebar .caixa-busca { display: flex; align-items: center; gap: 6px; margin: 0; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.14); border-radius: 6px; padding: 6px 8px; cursor: text; }
.ada-sidebar .caixa-busca:focus-within { border-color: #80B6E3; background: rgba(255,255,255,.1); }
.ada-sidebar .caixa-busca input { flex: 1; min-width: 0; background: transparent; border: 0; outline: 0; color: #fff; font-size: 13.5px; }
.ada-sidebar .caixa-busca input::placeholder { color: #b9b9b8; }
.ada-sidebar .caixa-busca input::-webkit-search-cancel-button { filter: grayscale(1) brightness(1.8); cursor: pointer; }
.ada-sidebar .atalho { font: 600 10.5px var(--bcm-fonte-texto); color: #b9b9b8; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.18); border-radius: 4px; padding: 1px 5px; white-space: nowrap; }
.ada-sidebar .busca-resultados a { align-items: flex-start; }
.ada-sidebar .busca-resultados a .txt { display: flex; flex-direction: column; min-width: 0; }
.ada-sidebar .busca-resultados a .det { font-size: 11.5px; color: #b9b9b8; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ada-sidebar .busca-resultados a.foco { background: rgba(0,110,165,.45); border-left-color: #80B6E3; color: #fff; }
.ada-sidebar .busca-resultados mark { background: rgba(128,182,227,.35); color: inherit; padding: 0; border-radius: 2px; }
.ada-sidebar .busca-resultados .mais, .ada-sidebar .busca-resultados .nada { font-size: 12px; color: #b9b9b8; padding: 4px 20px 6px 48px; }
.ada-sidebar .busca-resultados .nada { padding: 16px 20px; }
.ada-sidebar .menu-usuario { border-top: 1px solid rgba(255,255,255,.12); padding: 10px 14px 12px; background: rgba(0,0,0,.18); }
.ada-sidebar .menu-usuario .quem { display: flex; gap: 8px; align-items: center; min-width: 0; }
.ada-sidebar .menu-usuario .quem > i { font-size: 22px; width: 24px; opacity: .8; }
.ada-sidebar .menu-usuario .quem > div { min-width: 0; flex: 1; }
.ada-sidebar .menu-usuario .sair button { display: inline-flex; align-items: center; gap: 4px; color: #EBEBEA; background: none; border: 1px solid rgba(255,255,255,.2); border-radius: 4px; font-size: 12px; padding: 2px 8px; cursor: pointer; white-space: nowrap; }
.ada-sidebar .menu-usuario .sair button:hover { color: #fff; border-color: #80B6E3; }
.ada-sidebar .menu-usuario .sair i { width: auto; }
.ada-sidebar .menu-usuario .nome { font-weight: 700; font-size: 13.5px; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ada-sidebar .menu-usuario .papel { font-size: 11.5px; color: #b9b9b8; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ada-sidebar .menu-usuario .acoes { display: flex; flex-wrap: wrap; gap: 2px 12px; margin-top: 8px; }
.ada-sidebar .menu-usuario .acoes a, .ada-sidebar .menu-usuario .acoes button { display: inline-flex; align-items: center; gap: 4px; color: #EBEBEA; text-decoration: none; font-size: 12.5px; background: none; border: 0; padding: 2px 0; cursor: pointer; }
.ada-sidebar .menu-usuario .acoes a:hover, .ada-sidebar .menu-usuario .acoes button:hover { color: #80B6E3; }
.ada-sidebar .menu-usuario .acoes i { width: auto; }
.ada-sidebar .menu-usuario form { margin: 0; }
.ada-main { margin-left: var(--sidebar-w); padding: calc(var(--topo-h) + 20px) 24px 48px; min-height: 100vh; }
@media (max-width: 991px) {
  .ada-topo .produto small { display: none; }
  .ada-sidebar { transform: translateX(-100%); transition: transform .2s; }
  .ada-sidebar.aberta { transform: none; }
  .ada-main { margin-left: 0; padding: calc(var(--topo-h) + 16px) 16px 40px; }
}

.cab-pagina { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.cab-pagina .sub { color: var(--bcm-cinza); font-size: 13px; }

/* ---------- painel ---------- */
.painel { background: #fff; border: 1px solid var(--bcm-cinza-20); border-radius: 4px; padding: 16px; margin-bottom: 16px; }
.painel-titulo { font-weight: 700; font-size: 13px; text-transform: uppercase; letter-spacing: .04em; color: var(--bcm-preto); margin-bottom: 10px; display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.painel-titulo .fonte { font-weight: 400; text-transform: none; letter-spacing: 0; color: var(--bcm-cinza); font-size: 12px; }

/* ---------- cards (indicadores) ---------- */
.cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; margin-bottom: 16px; }
.card-ind {
  background: #fff; border: 1px solid var(--bcm-cinza-20); border-radius: 4px; padding: 12px 14px;
  display: block; color: inherit; text-decoration: none; position: relative; transition: border-color .15s, box-shadow .15s;
}
a.card-ind:hover { border-color: var(--bcm-azul-claro); box-shadow: 0 2px 8px rgba(0,110,165,.12); }
.card-ind .valor { font-family: var(--bcm-fonte-titulo); font-size: 34px; line-height: 1.05; color: var(--bcm-azul); letter-spacing: .01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.card-ind .valor small { font-size: 18px; color: var(--bcm-cinza); }
.card-ind .rotulo { font-weight: 700; font-size: 11.5px; text-transform: uppercase; letter-spacing: .04em; margin-top: 2px; }
.card-ind .det { font-size: 12px; color: var(--bcm-cinza); margin-top: 2px; }
.card-ind.critico .valor { color: var(--bcm-critico); }
.card-ind.atencao .valor { color: var(--bcm-atencao); }
.card-ind.conforme .valor { color: var(--bcm-conforme); }
.card-ind.destaque { border-left: 3px solid var(--bcm-azul); }

/* ---------- tabelas ---------- */
.tabela-wrap { overflow-x: auto; }
table.bcm { width: 100%; border-collapse: collapse; background: #fff; font-size: 13.5px; }
table.bcm thead th { background: var(--bcm-azul); color: #fff; font-weight: 600; font-size: 11.5px; text-transform: uppercase; letter-spacing: .04em; padding: 8px 10px; white-space: nowrap; position: sticky; top: 0; z-index: 1; }
table.bcm thead th a { color: #fff; text-decoration: none; }
table.bcm thead th a:hover { text-decoration: underline; }
table.bcm tbody td { padding: 6px 10px; border-bottom: 1px solid var(--bcm-cinza-30); vertical-align: middle; }
table.bcm tbody tr:nth-child(even) { background: #f6f6f5; }
table.bcm tbody tr:hover { background: var(--bcm-azul-12); }
table.bcm .num, table.bcm th.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
table.bcm tfoot td { background: var(--bcm-branco-gelo); font-weight: 600; border-top: 2px solid var(--bcm-azul); padding: 6px 10px; white-space: nowrap; }
.tabela-alta { max-height: 560px; overflow: auto; }

.pos { color: var(--bcm-atencao); }
.neg { color: var(--bcm-azul); }
.status { display: inline-flex; align-items: center; gap: 5px; font-weight: 700; font-size: 11.5px; text-transform: uppercase; letter-spacing: .04em; }
.status::before { content: ''; width: 9px; height: 9px; border-radius: 2px; background: currentColor; }
.status.critico { color: var(--bcm-critico); } .status.atencao { color: var(--bcm-atencao); }
.status.conforme { color: var(--bcm-conforme); } .status.info { color: var(--bcm-cinza); }
.barra-prec { height: 6px; background: var(--bcm-cinza-20); border-radius: 3px; min-width: 60px; overflow: hidden; }
.barra-prec > span { display: block; height: 100%; background: var(--bcm-azul); }

/* ---------- filtros ---------- */
.filtros { background: #fff; border: 1px solid var(--bcm-cinza-20); border-radius: 4px; margin-bottom: 16px; }
.filtros > summary { list-style: none; cursor: pointer; padding: 10px 16px; display: flex; align-items: center; gap: 10px; font-weight: 700; font-size: 13px; text-transform: uppercase; letter-spacing: .04em; }
.filtros > summary::-webkit-details-marker { display: none; }
.filtros[open] > summary { border-bottom: 1px solid var(--bcm-cinza-20); }
.filtros .corpo { padding: 14px 16px; }
.filtros label { font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; color: var(--bcm-cinza); margin-bottom: 3px; }
.filtros .chips { display: flex; flex-wrap: wrap; gap: 6px; font-size: 12px; color: var(--bcm-cinza); font-weight: 400; text-transform: none; letter-spacing: 0; }
.chip { background: var(--bcm-azul-12); color: var(--bcm-azul); border-radius: 3px; padding: 1px 8px; font-size: 12px; font-weight: 600; }
select[multiple].form-select { min-height: 110px; font-size: 13px; }
.faixa-par { display: flex; gap: 6px; }
/* Visão BCM: escolha dos clientes comparados (nenhum = todos) */
.comparar-clientes { padding: 12px 16px; }
.comparar-clientes > label { display: block; font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; color: var(--bcm-cinza); margin-bottom: 4px; }
.comparar-clientes > label span { text-transform: none; letter-spacing: 0; }
.comparar-clientes .ts-wrapper { flex: 1 1 320px; max-width: 760px; }

/* ---------- insights ---------- */
.achado { background: #fff; border: 1px solid var(--bcm-cinza-20); border-left: 4px solid var(--bcm-cinza); border-radius: 4px; padding: 12px 16px; margin-bottom: 10px; }
.achado.critico { border-left-color: var(--bcm-critico); }
.achado.atencao { border-left-color: var(--bcm-atencao); }
.achado.conforme { border-left-color: var(--bcm-conforme); }
.achado h3 { margin: 4px 0; font-size: 15.5px; }
.achado .rec { background: var(--bcm-branco-gelo); border-radius: 3px; padding: 8px 10px; margin-top: 8px; font-size: 13.5px; }
.achado .cat { font-size: 11px; text-transform: uppercase; letter-spacing: .05em; color: var(--bcm-cinza); font-weight: 700; }

.graf { position: relative; height: 280px; }
.graf.alto { height: 360px; }
.vazio { text-align: center; color: var(--bcm-cinza); padding: 40px 16px; }

/* ---------- login ---------- */
.login-pagina { min-height: 100vh; display: grid; place-items: center; background: var(--bcm-branco-gelo); padding: 16px; }
.login-caixa { width: 100%; max-width: 400px; background: #fff; border: 1px solid var(--bcm-cinza-20); border-top: 6px solid var(--bcm-azul); border-radius: 4px; padding: 32px; }

.progress { height: 22px; }
.progress-bar { background: var(--bcm-azul); }

@media print {
  .ada-topo, .ada-sidebar, .filtros, .nao-imprimir { display: none !important; }
  .ada-main { margin: 0; padding: 0; }
  body { background: #fff; }
  .painel, .card-ind { break-inside: avoid; }
}

/* seletor múltiplo com caixas de marcação */
.ts-wrapper.multi .ts-dropdown .option { display: flex; align-items: center; gap: 8px; }
.ts-dropdown .option input[type=checkbox] { width: 15px; height: 15px; accent-color: #006EA5; flex: none; margin: 0; }
.ts-dropdown .option.selected { background: var(--bcm-azul-12); }
.ts-wrapper.multi .ts-control > .item { background: var(--bcm-azul-12); color: var(--bcm-azul); border: 0; border-radius: 3px; font-size: 12.5px; }
.ts-dropdown .create { padding: 6px 10px; }
.ts-wrapper.ts-ids .ts-dropdown { min-width: 360px; }
/* seleção única com busca (cliente no topo): caixa de busca dentro da lista */
.ada-topo .ts-wrapper { min-width: 220px; }
.ada-topo .ts-dropdown { min-width: 260px; }
.ts-dropdown .dropdown-input-wrap { padding: 6px; border-bottom: 1px solid var(--bcm-cinza-20); }
.ts-dropdown .dropdown-input { width: 100%; font-size: 13px; padding: 4px 8px; border: 1px solid var(--bcm-cinza-20); border-radius: 3px; }

/* ---------- receitas x balanças ---------- */
table.mapa td.cel { min-width: 120px; text-align: right; border-left: 1px solid #fff; }
table.mapa td.cel .kg { font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
table.mapa td.cel .oc { font-size: 11px; color: var(--bcm-cinza); white-space: nowrap; }
table.mapa td.cel .ic { font-size: 10px; margin-left: 2px; }
table.mapa td.cel.critico { background: rgba(179, 38, 30, .13) !important; } table.mapa td.cel.critico .ic { color: var(--bcm-critico); }
table.mapa td.cel.atencao { background: rgba(138, 90, 0, .12) !important; } table.mapa td.cel.atencao .ic { color: var(--bcm-atencao); }
table.mapa td.cel.conforme { background: rgba(31, 107, 74, .09) !important; }
table.mapa td.cel.info { background: var(--bcm-cinza-20) !important; }
table.mapa td.vazio-cel { color: var(--bcm-cinza-30); text-align: center; }
table.mapa td:first-child { position: sticky; left: 0; background: #fff; z-index: 1; min-width: 200px; }
.mini { position: relative; height: 5px; background: rgba(104,105,105,.2); border-radius: 3px; margin: 3px 0 1px auto; width: 100%; max-width: 140px; }
.mini > span { display: block; height: 100%; background: var(--bcm-azul); border-radius: 3px; }
td.critico .mini > span { background: var(--bcm-critico); }
.mini > i { position: absolute; top: -2px; width: 2px; height: 9px; background: var(--bcm-atencao); }
.legenda-mapa .status { margin-right: 10px; }

.regua { position: relative; display: flex; height: 34px; background: #f1f1f0; border: 1px solid var(--bcm-cinza-20); border-radius: 3px; margin-bottom: 22px; }
.regua .seg { height: 100%; overflow: hidden; color: #fff; font-size: 10.5px; display: flex; align-items: center; padding: 0 4px; white-space: nowrap; border-right: 1px solid #fff; }
.regua .seg.a { background: var(--bcm-azul); } .regua .seg.b { background: #3d8fbd; }
.regua .seg.abaixo { background: var(--bcm-critico); }
.regua .seg > span { overflow: hidden; text-overflow: ellipsis; }
.regua .marca { position: absolute; top: -4px; bottom: -4px; width: 0; border-left: 2px dashed var(--bcm-atencao); }
.regua .marca.cap { border-left-color: var(--bcm-critico); border-left-style: solid; }
.regua .marca.pico { border-left-color: var(--bcm-preto); }
.regua .marca b { position: absolute; top: 100%; left: -2px; font-size: 10.5px; font-style: normal; white-space: nowrap; color: var(--bcm-cinza); font-weight: 600; }
.regua .marca.cap b { left: auto; right: 2px; color: var(--bcm-critico); }
.regua .marca.pico b { top: auto; bottom: 100%; left: auto; right: 2px; color: var(--bcm-preto); }

/* cards inteligentes */
[data-card] { cursor: pointer; }
.card-ind[data-card]::after { content: '⤢'; position: absolute; top: 8px; right: 10px; font-size: 12px; color: var(--bcm-cinza); opacity: 0; transition: opacity .15s; }
.card-ind[data-card]:hover::after { opacity: 1; }
.modal-header h2 { margin: 0; }

/* autofiltro de colunas */
table.bcm thead th.af-th { cursor: pointer; user-select: none; }
table.bcm thead th.af-th:hover, table.bcm thead th.af-th:focus { background: #005a87; outline: none; }
table.bcm thead th.af-ativo { background: #004e75; }
table.bcm thead th .af-ind { margin-left: 4px; font-size: 10px; color: #80B6E3; }
.af-menu { position: absolute; z-index: 2000; background: #fff; border: 1px solid var(--bcm-cinza-30); border-radius: 4px; padding: 6px; min-width: 220px; max-width: 280px; font-size: 13px; }
.af-menu .af-tit { font-weight: 700; font-size: 12px; text-transform: uppercase; letter-spacing: .03em; color: var(--bcm-azul); padding: 2px 6px 6px; border-bottom: 1px solid var(--bcm-cinza-20); margin-bottom: 4px; }
.af-menu button { display: block; width: 100%; text-align: left; background: none; border: 0; padding: 5px 8px; border-radius: 3px; color: var(--bcm-preto); }
.af-menu button:hover { background: var(--bcm-azul-12); }
.af-menu hr { margin: 6px 0; }
.af-menu label { font-size: 11px; font-weight: 700; text-transform: uppercase; color: var(--bcm-cinza); margin: 0 2px 3px; display: block; }
.af-aviso { margin-top: 6px; color: var(--bcm-atencao); }
tr.af-oculta { display: none; }

/* calendário de dados (qualidade) — colunas = dias da semana (seg a dom) */
.calendario { display: grid; grid-template-rows: repeat(7, 12px); grid-auto-flow: column; grid-auto-columns: 12px; gap: 3px; overflow-x: auto; padding-bottom: 4px; }
.dia { width: 12px; height: 12px; border-radius: 2px; background: var(--bcm-cinza-20); }
.dia.fora { background: transparent; }
.dia.n0 { background: #F2D7D5; outline: 1px solid rgba(179,38,30,.35); }
.dia.n0.dom { background: #F4F4F3; outline: none; }
.dia.n1 { background: #CFE3F3; } .dia.n2 { background: #80B6E3; } .dia.n3 { background: #3D8FBD; } .dia.n4 { background: #006EA5; }

/* pendências do cliente */
.lista-pendencias { list-style: none; padding: 0; margin: 0; }
.lista-pendencias li { display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; padding: 6px 0; border-bottom: 1px solid var(--bcm-cinza-20); font-size: 13.5px; }
.lista-pendencias li:last-child { border-bottom: 0; }
.lista-pendencias .status { min-width: 92px; }

/* filtros salvos */
.filtros-salvos { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; border-top: 1px solid var(--bcm-cinza-20); padding-top: 10px !important; }
.filtro-salvo { display: inline-flex; align-items: center; gap: 2px; background: var(--bcm-branco-gelo); border-radius: 12px; padding: 1px 4px 1px 10px; font-size: 12.5px; }
.filtro-salvo form { display: inline; }
.filtro-salvo .btn-link { color: var(--bcm-cinza); line-height: 1; }

/* ajuda dos cards (ⓘ) */
.card-ind .ajuda-icone { position: absolute; top: 6px; right: 8px; font-size: 12px; color: var(--bcm-cinza); opacity: .55; }
.card-ind:hover .ajuda-icone, .card-ind:focus .ajuda-icone { opacity: 1; color: var(--bcm-azul); }
.tooltip { --bs-tooltip-max-width: 300px; --bs-tooltip-font-size: 12.5px; --bs-tooltip-bg: var(--bcm-preto); }
.tooltip-inner { text-align: left; }

/* mapa de precisão mês a mês (Visão BCM): um só tom, do claro (pior) ao escuro (melhor); contraste do texto ≥ 4,5:1 */
table.mapa-precisao td.num { min-width: 58px; font-variant-numeric: tabular-nums; border-left: 2px solid #fff; }
table.mapa-precisao tbody tr { cursor: pointer; }
table.mapa-precisao tbody tr.selecionado td:first-child { box-shadow: inset 4px 0 0 var(--bcm-azul); }
table.mapa-precisao tfoot td { border-top: 2px solid var(--bcm-cinza-30); }
.p1 { background: rgba(0, 110, 165, .08) !important; } .p2 { background: rgba(0, 110, 165, .22) !important; }
.p3 { background: rgba(0, 110, 165, .38) !important; } .p4 { background: rgba(0, 110, 165, .55) !important; } /* texto escuro: contraste ≥ 4,5 */
.p5 { background: var(--bcm-azul) !important; color: #fff; }
.chip-mapa { display: inline-block; padding: 1px 8px; margin-left: 6px; border-radius: 3px; }

/* relatório consolidado na tela: tabelas largas rolam dentro do próprio quadro no celular */
@media screen and (max-width: 768px) {
  .rel table.bcm { display: block; overflow-x: auto; }
  .rel .rel-cab, .rel header { flex-wrap: wrap; }
}

/* selo "dados até" no resumo dos filtros */
.dados-ate { font-size: 12px; font-weight: 700; white-space: nowrap; color: var(--bcm-cinza); border: 1px solid var(--bcm-cinza-20); border-radius: 10px; padding: 1px 8px; }
.dados-ate.atrasado { color: var(--bcm-atencao); border-color: currentColor; }

/* sino de avisos */
.aviso-n { position: absolute; top: -4px; right: -4px; min-width: 17px; height: 17px; border-radius: 9px; background: var(--bcm-critico); color: #fff; font-size: 10.5px; font-weight: 800; line-height: 17px; text-align: center; padding: 0 4px; }
.dropdown-menu.avisos { min-width: 300px; max-width: 360px; }
.dropdown-menu.avisos .dropdown-item { white-space: normal; }

/* coleta de preços por planilha */
.passos-planilha { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; }
.passo { display: flex; gap: 10px; font-size: 13.5px; }
.passo-n { flex: 0 0 26px; height: 26px; border-radius: 13px; background: var(--bcm-azul); color: #fff; font-weight: 800; display: grid; place-items: center; font-size: 13px; }

/* ---------- adequação das balanças ---------- */
.como-ler .faixa-exemplo { display: grid; grid-template-columns: 1.1fr 3fr 1.1fr; margin: 8px 0 10px; border-radius: 3px; overflow: hidden; font-size: 11.5px; line-height: 1.25; text-align: center; }
.como-ler .faixa-exemplo .z { padding: 6px 8px; }
.como-ler .faixa-exemplo .abaixo, .como-ler .faixa-exemplo .acima { background: #F6DCDA; color: var(--bcm-critico); }
.como-ler .faixa-exemplo .boa { background: #DCEEE4; color: var(--bcm-conforme); border-inline: 2px dashed #fff; }
.ficha-bal { border-left: 4px solid var(--bcm-cinza); }
.ficha-bal.critico { border-left-color: var(--bcm-critico); }
.ficha-bal.atencao { border-left-color: var(--bcm-atencao); }
.ficha-bal.conforme { border-left-color: var(--bcm-conforme); }
.ficha-bal .fatos { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 8px; margin: 10px 0; }
.ficha-bal .fatos > div { background: var(--bcm-branco-gelo); border-radius: 3px; padding: 6px 10px; display: flex; flex-direction: column; }
.ficha-bal .fatos span { font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: var(--bcm-cinza); font-weight: 700; }
.ficha-bal .fatos b { font-size: 20px; font-family: var(--bcm-fonte-titulo); letter-spacing: .02em; color: var(--bcm-preto); font-weight: 400; }
.ficha-bal .fatos small { font-size: 11.5px; color: var(--bcm-cinza); }
.ficha-bal .fatos .ruim b { color: var(--bcm-critico); } .ficha-bal .fatos .medio b { color: var(--bcm-atencao); }
.ficha-bal .fatos .rec { background: var(--bcm-azul-12); } .ficha-bal .fatos .rec b { color: var(--bcm-azul); }
table.bcm.compacta td, table.bcm.compacta th { padding: 4px 8px; }
table.bcm tr.linha-rec td { background: var(--bcm-azul-12); }
table.bcm tr.linha-atual td { background: var(--bcm-branco-gelo); }
.status.faixa { color: var(--bcm-azul); } .status.carga { color: #6E6E6D; }

/* acesso de usuário (senha provisória para copiar ou enviar) */
.dados-acesso { display: grid; grid-template-columns: max-content 1fr; gap: 6px 16px; margin-bottom: 14px; }
.dados-acesso dt { font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--bcm-cinza); font-weight: 700; align-self: center; }
.dados-acesso dd { margin: 0; overflow-wrap: anywhere; }
.dados-acesso .senha { font-size: 20px; letter-spacing: .06em; color: var(--bcm-azul); font-weight: 600; }
.acesso textarea { font-size: 13.5px; }

/* ---------- celular, toque, foco e contraste (revisão de usabilidade) ---------- */
/* depois das regras gerais de propósito: as de tela pequena precisam vencer */
:focus-visible { outline: 3px solid #006EA5; outline-offset: 2px; }
.ada-sidebar :focus-visible, .ada-topo :focus-visible { outline-color: #80B6E3; }
table.bcm thead th.af-th:focus-visible { outline: 3px solid #80B6E3; outline-offset: -3px; }
.pular-conteudo { position: fixed; top: 8px; left: 8px; z-index: 2000; background: #fff; color: var(--bcm-azul); padding: 8px 14px; border-radius: 4px; box-shadow: 0 2px 10px rgba(0,0,0,.25); font-weight: 700; }
#conteudo:focus { outline: none; }
.text-secondary { color: #5C6166 !important; }          /* 4,9:1 sobre o fundo cinza claro (antes 3,9:1) */
.menu-fundo { position: fixed; inset: var(--topo-h) 0 0 0; background: rgba(0, 0, 0, .4); z-index: 1015; }
.filtros > summary { flex-wrap: wrap; }
.filtros .opcoes-filtro .form-check { margin-bottom: 0; }
.filtros-salvos .nome-filtro { width: 220px; }
.regras-senha { list-style: none; padding-left: 0; display: grid; gap: 2px; }
.regras-senha li::before { content: '○'; display: inline-block; width: 1.3em; color: var(--bcm-cinza); }
.regras-senha li.ok { color: var(--bcm-conforme); }
.regras-senha li.ok::before { content: '✓'; color: var(--bcm-conforme); font-weight: 700; }
table.bcm tr.linha-nao-serve td { background: #FBEAE9; }
a.disabled[aria-busy="true"] { pointer-events: none; opacity: .75; }
@media (min-width: 992px) { .menu-fundo { display: none !important; } }
@media (hover: none) { .ada-sidebar .atalho { display: none; } }
@media (max-width: 991.98px) {
  .cards { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
  .card-ind .valor { font-size: 28px; }
  /* gaveta: fechada sai da tela e da ordem do Tab (visibility), aberta desliza por cima do conteúdo */
  .ada-sidebar { visibility: hidden; transition: transform .2s, visibility 0s linear .2s; }
  .ada-sidebar.aberta { visibility: visible; transition: transform .2s; box-shadow: 4px 0 18px rgba(0,0,0,.3); }
  .ada-topo .botao-menu { min-width: 44px; min-height: 44px; }
  .btn-sm, .form-control-sm, .form-select-sm, .page-link { min-height: 40px; }
  .btn-sm { display: inline-flex; align-items: center; justify-content: center; gap: 4px; }
  .form-check-input { width: 1.25em; height: 1.25em; }
  .form-check { min-height: 32px; display: flex; align-items: center; gap: 6px; }
  .ada-sidebar .menu-usuario .acoes a, .ada-sidebar .menu-usuario .sair button { min-height: 36px; }
  .ada-sidebar .menu-itens a { padding-top: 10px; padding-bottom: 10px; }
}
@media (max-width: 767.98px) {
  .filtros > summary .chips { display: none; }       /* no celular: só "N ativos" e "dados até" */
  .filtros-salvos form { width: 100%; margin-left: 0 !important; }
  .filtros-salvos .nome-filtro { width: auto; flex: 1; min-width: 0; }
  /* tabelas sem moldura de rolagem: rolam sozinhas, sem empurrar a página para o lado */
  table.bcm:not(.empilhar) { display: block; overflow-x: auto; max-width: 100%; }
  .tabela-wrap > table.bcm:not(.empilhar) { display: table; }
  /* tabelas de ação (adequação): cada linha vira um cartão com o nome de cada campo */
  table.empilhar thead { display: none; }
  table.empilhar, table.empilhar tbody, table.empilhar tr, table.empilhar td { display: block; width: 100%; }
  table.empilhar tr { border: 1px solid var(--bcm-cinza-20); border-radius: 4px; margin-bottom: 8px; padding: 6px 10px; background: #fff; }
  table.empilhar td { border: 0 !important; padding: 2px 0 !important; text-align: left !important; white-space: normal !important; }
  table.empilhar td[data-rotulo]::before { content: attr(data-rotulo); display: block; font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--bcm-cinza); margin-top: 4px; }
}
@media (max-width: 575.98px) {
  .ada-topo { gap: 8px; padding: 0 10px; }
  .ada-topo .menu-usuario-topo { display: none; }    /* as mesmas ações estão no fim do menu lateral */
  .ada-topo form { flex: 1 1 auto; min-width: 0; }
  .ada-topo .ts-wrapper { min-width: 0; width: 100%; }
  .ada-topo label[for="sel-cliente"] { display: none !important; }
}
