/* ================================================================
   licitacao-report.css — Estilo compartilhado dos dashboards da
   área de Licitação (Sales Report + Negociações).
   Prefixo: .lr-*  · reaproveita as variáveis do styles.css/dash-v2.css.
   ESQUELETO: layout provisório enquanto os campos do modelo de BI
   (dataset 6541bd87-… no workspace 8535f0a1-…) não são definidos.
   ================================================================ */

.lr-wrap{padding:20px 0 48px;display:flex;flex-direction:column;gap:16px;}

/* ── Banner de esqueleto (provisório) ── */
.lr-banner{display:flex;align-items:center;gap:10px;padding:11px 15px;border-radius:12px;
  background:#FEF6E7;border:1px solid #F5E1B8;color:#8A5A00;font-size:12.5px;font-weight:600;line-height:1.4;}
.lr-banner svg{flex-shrink:0;stroke:#C08401;}

/* ── Controles / filtros ── */
.lr-controls{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap;}
.lr-controls-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);
  padding:12px 14px;display:inline-flex;flex-direction:column;gap:9px;width:fit-content;max-width:100%;}
.lr-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.lr-label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-4);margin-right:4px;}
.lr-btn{padding:5px 11px;border-radius:6px;border:1px solid var(--border);background:#fff;font-size:12px;
  font-weight:500;color:var(--text-2);cursor:pointer;font-family:var(--font-body);transition:all .15s;}
.lr-btn:hover{border-color:var(--bm-blue-500);color:var(--bm-blue-700);}
.lr-btn.active{background:var(--bm-blue-900);color:#fff;border-color:var(--bm-blue-900);}
.lr-btn.active-green{background:var(--bm-green-600);color:#fff;border-color:var(--bm-green-600);}
.lr-divider{width:1px;height:22px;background:var(--border-2);flex-shrink:0;}
.lr-dw{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;
  background:#EAF8F0;border:1px solid #CFEEDD;align-self:flex-start;}
.lr-dw .dot{width:7px;height:7px;border-radius:999px;background:#2FBF71;flex-shrink:0;}
.lr-dw span.t{font-size:11.5px;font-weight:700;color:#22794C;white-space:nowrap;}

/* ── Faixa de KPIs ── */
.lr-kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
.lr-kpi{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;position:relative;overflow:hidden;}
.lr-kpi::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;}
.lr-kpi.pos::before{background:var(--bm-green-600);}
.lr-kpi.neg::before{background:var(--danger);}
.lr-kpi.neu::before{background:var(--bm-blue-600);}
.lr-kpi.warn::before{background:var(--warning);}
.lr-kpi-label{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin-bottom:6px;}
.lr-kpi-val{font-family:var(--font-display);font-size:26px;font-weight:800;color:var(--bm-blue-900);line-height:1;margin-bottom:4px;}
.lr-kpi-sub{font-size:12px;color:var(--text-3);}

/* ── Painéis / gráficos ── */
.lr-grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.lr-grid-13{display:grid;grid-template-columns:1fr 1.6fr;gap:12px;}
.lr-panel{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;}
.lr-panel h4{font-size:14px;font-weight:700;color:var(--bm-blue-900);margin:0 0 4px;}
.lr-psub{font-size:11.5px;color:var(--text-3);margin:0 0 14px;}

/* placeholder de conteúdo (gráfico/tabela ainda sem dados) */
.lr-ph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  min-height:220px;border:1.5px dashed var(--border-2);border-radius:10px;background:var(--surface-2);
  color:var(--text-3);text-align:center;padding:24px;}
.lr-ph svg{stroke:var(--text-4);opacity:.7;}
.lr-ph .t{font-size:13px;font-weight:600;color:var(--text-2);}
.lr-ph .s{font-size:11.5px;color:var(--text-3);max-width:320px;line-height:1.5;}

/* ── Tabela ── */
.lr-tbl-wrap{background:#fff;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;}
.lr-tbl-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border);}
.lr-tbl-header h4{font-size:15px;font-weight:700;color:var(--bm-blue-900);margin:0;}
.lr-tbl-header .sub{font-size:11px;color:var(--text-3);}
.lr-tbl{width:100%;border-collapse:collapse;font-size:12.5px;}
.lr-tbl thead th{background:var(--bm-blue-900);color:rgba(255,255,255,.85);text-align:right;padding:10px 12px;
  font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;}
.lr-tbl thead th:first-child{text-align:left;}
.lr-tbl tbody td{padding:11px 12px;border-bottom:1px solid var(--border);text-align:right;
  font-variant-numeric:tabular-nums;color:var(--text-2);}
.lr-tbl tbody td:first-child{text-align:left;font-weight:600;color:var(--text);}
.lr-tbl tbody tr:hover td{background:var(--bm-blue-50);}
.lr-tbl .lr-empty td{text-align:center;color:var(--text-3);font-weight:500;padding:26px 12px;}

@media(max-width:1100px){
  .lr-kpi-row{grid-template-columns:repeat(2,1fr);}
  .lr-grid2,.lr-grid-13{grid-template-columns:1fr;}
}

/* ================================================================
   LISTA DE BARRAS (.lr-bl-*) — no molde do painel "Margem por filial /
   unidade de negócio" do Contábil: cada linha é rótulo + trilha com a
   barra + N números, e o rodapé diz de qual medida do modelo vem cada
   coluna. As colunas são declaradas pelo JS (renderBarList), que grava
   a grade em --lr-bl-cols (por isso cabeçalho e linha nunca desalinham).
   ================================================================ */
.lr-bl{display:flex;flex-direction:column;gap:11px;margin-top:16px;}
.lr-bl-head,.lr-bl-row{display:grid;grid-template-columns:var(--lr-bl-cols);gap:12px;align-items:center;}
.lr-bl-head{align-items:end;padding-bottom:9px;border-bottom:1px solid #F0F5FA;}
.lr-bl-head>div{font-size:9.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#93A7BA;
  line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.lr-bl-head>div.n{text-align:right;}
.lr-bl-head>div.bar{text-transform:none;letter-spacing:0;font-weight:600;font-size:10px;color:#7C93A8;}
.lr-bl-name{font-size:12px;font-weight:700;color:#0A2E5C;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.lr-bl-track{height:18px;border-radius:5px;background:#F0F4F9;overflow:hidden;position:relative;}
.lr-bl-fill{height:100%;border-radius:5px;}
/* no desktop os números entram direto na grade da linha; no celular viram
   uma faixa própria embaixo da barra (ver o @media) */
.lr-bl-nums{display:contents;}
.lr-bl-v{text-align:right;font-size:12px;font-weight:700;color:#0A2E5C;white-space:nowrap;font-variant-numeric:tabular-nums;}
.lr-bl-v.dim{font-weight:600;color:#93A7BA;}
.lr-bl-v.hi{font-weight:800;}
.lr-bl-empty{padding:26px 12px;text-align:center;color:#93A7BA;font-size:12.5px;font-weight:500;}
/* referência: de qual medida/coluna do modelo saiu cada número */
.lr-bl-ref{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;margin-top:5px;padding-top:12px;border-top:1px solid #F0F5FA;}
.lr-bl-ref-k{font-size:9.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#93A7BA;}
.lr-bl-ref-i{font-size:10.5px;color:#5B7189;background:#F7FAFD;border:1px solid #EDF3F9;border-radius:7px;padding:4px 8px;line-height:1.35;}
.lr-bl-ref-i b{color:#0A2E5C;font-weight:700;}
.lr-bl-ref-i code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10px;color:#1272C4;}

/* ── painel em destaque (gráfico principal, largura total) ── */
.lr-hero{border-color:#D8E6F5;box-shadow:0 8px 24px rgba(10,46,92,.06);}
.lr-hero h4{font-size:16px;}
.lr-chart-hero{position:relative;height:400px;margin-top:10px;}
@media(max-width:767.98px){.lr-chart-hero{height:340px;}}

/* ── KPI de crescimento (sinal no valor) ── */
.lr-kpi-val.up{color:#22794C;}
.lr-kpi-val.down{color:#B54545;}

/* ================================================================
   MULTI-SELEÇÃO nos filtros fx (Estratégia · Família · Produto).
   O painel é criado pelo JS depois que o modelo responde, por isso o
   estilo mora aqui e não inline na página.
   ================================================================ */
.fxdd-ms{width:290px;max-width:calc(100vw - 48px);padding:0;overflow:hidden;}
.fxdd-ms .ms-search{padding:8px;border-bottom:1px solid #E3EAF2;}
.fxdd-ms .ms-search input{width:100%;box-sizing:border-box;padding:7px 9px;border:1px solid #E3EAF2;
  border-radius:7px;font-size:12px;font-family:inherit;color:#33495E;}
.fxdd-ms .ms-search input:focus{outline:none;border-color:#1272C4;}
.fxdd-ms .ms-list{max-height:262px;overflow-y:auto;padding:4px;}
.fxdd-ms .ms-opt{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;font-size:12.5px;color:#33495E;cursor:pointer;}
.fxdd-ms .ms-opt:hover{background:#F0F6FC;}
.fxdd-ms .ms-opt input{flex-shrink:0;}
.fxdd-ms .ms-opt span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.fxdd-ms .ms-msg{padding:10px;font-size:12px;color:#93A7BA;}
.fxdd-ms .ms-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 10px;border-top:1px solid #E3EAF2;}
.fxdd-ms .ms-foot button{font-size:11.5px;font-weight:700;color:#1272C4;background:none;border:none;cursor:pointer;font-family:inherit;}
.fxdd-ms .ms-foot button:hover{text-decoration:underline;}
.fx-fbtn .fx-cnt{background:#1272C4;color:#fff;border-radius:999px;padding:1px 7px;font-size:11px;font-weight:700;}
.fx-fbtn.has{border-color:#1272C4;background:#F0F6FC;color:#0A2E5C;}

@media(max-width:1100px){
  .lr-bl-head,.lr-bl-row{gap:9px;}
  .lr-bl-v{font-size:11.5px;}
}
@media(max-width:767.98px){
  /* sem a grade o cabeçalho não alinha: cada número leva o próprio rótulo */
  .lr-bl-head{display:none;}
  .lr-bl-row{display:block;}
  .lr-bl-track{margin-top:6px;height:14px;}
  .lr-bl-nums{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-top:5px;}
  .lr-bl-v{text-align:left;font-size:11px;}
  .lr-bl-nums>div::before{content:attr(data-k);display:block;font-size:8.5px;font-weight:800;letter-spacing:.04em;
    text-transform:uppercase;color:#93A7BA;margin-bottom:1px;}
  /* no celular a referência vira texto corrido: os chips empilhados comiam 1/4 da tela */
  .lr-bl-ref{display:block;margin-top:3px;padding-top:11px;}
  .lr-bl-ref-k{display:block;margin-bottom:4px;}
  .lr-bl-ref-i{display:inline;background:none;border:none;padding:0;font-size:10px;}
  .lr-bl-ref-i:not(:last-child)::after{content:" · ";color:#C3D2E0;}
  .fx-filters .fxdd-ms{width:100%;}
}

/* ================================================================
   LAYOUT FX — cabeçalho com abas de submódulo + barra de filtros
   (Claude Design; espelha o Sales Report do Comercial). Reaproveita
   os botões .lr-* dentro dos dropdowns .fxdd-panel (o mesmo lrPick).
   ================================================================ */
.fx-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:22px 0 4px;}
.fx-bc{display:flex;align-items:center;gap:6px;font-size:12px;color:#7C93A8;}
.fx-title{margin:4px 0 0;font-size:23px;font-weight:800;letter-spacing:-0.5px;color:#0A2E5C;}
.fx-head-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.fx-dw{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;background:#EAF8F0;border:1px solid #CFEEDD;font-size:11.5px;font-weight:700;color:#22794C;white-space:nowrap;}
.fx-dw i{width:7px;height:7px;border-radius:999px;background:#2FBF71;display:inline-block;}
.fx-tabs{display:flex;align-items:center;background:#FFFFFF;border:1px solid #E3EAF2;border-radius:11px;padding:3px;flex-wrap:wrap;}
.fx-tabs a,.fx-tabs span{padding:8px 14px;border-radius:8px;font-size:12.5px;font-weight:600;color:#5B7189;text-decoration:none;white-space:nowrap;}
.fx-tabs a:hover{color:#0A2E5C;}
.fx-tabs .active{background:#0A2E5C;font-weight:700;color:#fff;}
/* barra de filtros · 1 linha */
.fx-filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;background:#fff;border:1px solid #E3EAF2;border-radius:12px;}
.fx-fdiv{width:1px;height:24px;background:#E3EAF2;}
.fx-fbtn{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:9px;border:1px solid #E3EAF2;background:#fff;font-size:12.5px;font-weight:600;color:#33495E;cursor:pointer;font-family:inherit;white-space:nowrap;}
.fx-fbtn:hover{border-color:#1272C4;}
.fx-fbtn .fx-fk{font-weight:700;color:#93A7BA;}
.fx-fbtn svg{flex-shrink:0;}
.fx-flimpar{margin-left:auto;display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:9px;border:none;background:transparent;font-size:12.5px;font-weight:600;color:#5B7189;cursor:pointer;font-family:inherit;white-space:nowrap;}
.fx-flimpar:hover{color:#B54545;}
.fxdd{position:relative;display:inline-block;}
.fxdd-panel{position:absolute;z-index:50;top:calc(100% + 6px);left:0;display:none;flex-direction:column;background:#fff;border:1px solid #E3EAF2;border-radius:12px;box-shadow:0 10px 30px rgba(10,46,92,0.14);padding:12px;min-width:210px;}
.fxdd.open .fxdd-panel{display:flex;}
.fxdd-hint{font-size:11px;color:#93A7BA;margin-top:10px;}
#fx-periodo .fxdd-panel{width:520px;max-width:calc(100vw - 48px);}
#fx-periodo .fxdd-panel .lr-row{max-width:none;gap:6px;row-gap:8px;}
@media(max-width:1100px){#fx-periodo .fxdd-panel{width:460px;}}
@media(max-width:767.98px){
  .fx-head{align-items:flex-start;padding-top:14px;}
  .fx-title{font-size:17px;}
  .fx-head-right{width:100%;}
  /* abas: barra rolável horizontal */
  .fx-tabs{width:100%;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;background:#F0F4F9;border:none;}
  .fx-tabs::-webkit-scrollbar{display:none;}
  .fx-tabs a,.fx-tabs span{flex:0 0 auto;}
  /* filtros: dropdowns empilhados em largura total; cada painel abre como
     accordion (sem recorte por overflow, sem rolagem horizontal) */
  .fx-filters{flex-direction:column;align-items:stretch;flex-wrap:nowrap;overflow:visible;gap:8px;}
  .fx-filters .fx-fdiv{display:none;}
  .fx-filters .fxdd{width:100%;position:static;display:block;}
  .fx-filters .fx-fbtn{width:100%;min-width:0;box-sizing:border-box;justify-content:space-between;padding:11px 14px;font-size:13.5px;}
  .fx-fbtn svg{transition:transform .18s;}
  .fxdd.open .fx-fbtn svg{transform:rotate(180deg);}
  .fx-filters .fxdd-panel{position:static;width:100%;min-width:0;max-width:none;box-shadow:none;margin-top:2px;box-sizing:border-box;}
  #fx-periodo .fxdd-panel{width:100%;}
  /* botões do painel quebram em grade (não rolam) */
  .fxdd-panel .lr-row{flex-wrap:wrap;overflow:visible;max-width:none;gap:6px;row-gap:8px;}
  .fxdd-panel .lr-label{flex:0 0 100%;margin:4px 0 0;}
  .fxdd-panel .lr-divider{display:none;}
  .fxdd-panel .lr-btn{flex:1 1 auto;min-width:52px;text-align:center;padding:8px 6px;}
  .fx-filters .fx-flimpar{width:100%;justify-content:center;margin:2px 0 0;padding:11px;border:1px solid #E3EAF2;border-radius:9px;}
}

/* ================================================================
   PAINÉIS LADO A LADO (.lr-row2) — dois visuais por linha em telas
   largas; abaixo de ~1240px de área útil cada um volta a ocupar a
   linha inteira (auto-fit), sem media query.
   ================================================================ */
.lr-row2{display:grid;grid-template-columns:repeat(auto-fit,minmax(520px,1fr));gap:12px;align-items:start;}
.lr-row2>*{min-width:0;}

/* Lista de barras em MEIA largura: sem compactar, as colunas fixas de
   número comiam o 1fr e a trilha da barra colapsava para 0px. */
.lr-panel.lr-compact{padding:16px 16px 14px;}
.lr-panel.lr-compact .lr-bl{gap:9px;margin-top:12px;}
.lr-panel.lr-compact .lr-bl-head,.lr-panel.lr-compact .lr-bl-row{gap:8px;}
.lr-panel.lr-compact .lr-bl-head>div{font-size:9px;}
/* rótulo de número quebra em 2 linhas em vez de sair reticente */
.lr-panel.lr-compact .lr-bl-head>div.n{white-space:normal;overflow:visible;line-height:1.2;}
.lr-panel.lr-compact .lr-bl-name{font-size:11.5px;}
.lr-panel.lr-compact .lr-bl-track{height:15px;}
.lr-panel.lr-compact .lr-bl-v{font-size:11px;}
.lr-panel.lr-compact .lr-bl-ref-i{font-size:10px;padding:3px 7px;}

/* ================================================================
   MATRIZ ANALÍTICA (.lr-mx-*) — tabela larga com cabeçalho fixo e
   rolagem dentro do próprio card. Os seletores levam o prefixo
   `body.dept .area-main` porque o dash-v2.css estiliza QUALQUER
   table dentro de .area-main e venceria um `table.lr-mx` puro.
   ================================================================ */
.lr-mx-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 16px;border-bottom:1px solid var(--border);background:#FBFCFE;}
.lr-mx-bar .lr-mx-k{font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#93A7BA;}
.lr-mx-bar .lr-mx-info{margin-left:auto;font-size:11.5px;color:var(--text-3);white-space:nowrap;}
.lr-mx-bar select{padding:7px 9px;border:1px solid #E3EAF2;border-radius:8px;font-size:12.5px;font-family:inherit;font-weight:600;color:#33495E;background:#fff;}
.lr-mx-aviso{margin:0;padding:9px 16px;font-size:11.5px;background:#FFFBEB;border-bottom:1px solid #FDE68A;color:#854D0E;}
.lr-mx-scroll{max-height:70vh;overflow:auto;-webkit-overflow-scrolling:touch;}
body.dept .area-main table.lr-mx{width:100%;border-collapse:separate;border-spacing:0;font-size:12px;white-space:nowrap;}
body.dept .area-main table.lr-mx thead th{position:sticky;top:0;z-index:2;background:var(--dv-headbg);color:var(--dv-muted2);
  text-align:left;padding:9px 12px;font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;
  border-top:none;border-bottom:1px solid var(--dv-border);}
body.dept .area-main table.lr-mx thead th.num{text-align:right;}
body.dept .area-main table.lr-mx tbody td{padding:7px 12px;border-bottom:1px solid var(--dv-zebra);color:var(--dv-body);
  max-width:260px;overflow:hidden;text-overflow:ellipsis;}
body.dept .area-main table.lr-mx tbody td.num{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;color:var(--dv-ink);}
body.dept .area-main table.lr-mx tbody td.num.dim2{font-weight:500;color:var(--dv-muted);}
/* célula repetida: na matriz o valor só aparece quando MUDA (o mesmo
   efeito do "não repetir rótulos de linha" do Power BI) */
body.dept .area-main table.lr-mx tbody td.rep{color:transparent;}
body.dept .area-main table.lr-mx tbody tr:hover td{background:var(--dv-headbg);}
body.dept .area-main table.lr-mx tbody tr.novo td{border-top:1px solid var(--dv-border-soft);}
body.dept .area-main table.lr-mx tfoot td{position:sticky;bottom:0;z-index:2;background:var(--dv-headbg);
  border-top:1px solid var(--dv-border);padding:9px 12px;font-weight:800;color:var(--dv-ink);}
body.dept .area-main table.lr-mx tfoot td.num{text-align:right;font-variant-numeric:tabular-nums;}
.lr-mx-msg{padding:22px 14px;text-align:center;color:#93A7BA;font-size:12.5px;font-weight:500;white-space:normal;}

@media(max-width:767.98px){
  .lr-row2{grid-template-columns:1fr;}
  /* o dropdown do prazo mora fora da .fx-filters: replica o modo acordeão */
  .lr-mx-bar{align-items:stretch;flex-direction:column;}
  .lr-mx-bar .fxdd{width:100%;position:static;display:block;}
  .lr-mx-bar .fx-fbtn{width:100%;box-sizing:border-box;justify-content:space-between;}
  .lr-mx-bar .fxdd-panel{position:static;width:100%;max-width:none;box-shadow:none;margin-top:2px;box-sizing:border-box;}
  .lr-mx-bar .lr-mx-info{margin-left:0;}
}

/* ================================================================
   ANÁLISE DE CONTRATOS (.ct-*) — filtros de intervalo de data,
   seletor de campos da tabela analítica e barra de exportação.
   Reaproveita .fxdd / .fxdd-ms / .lr-mx da própria folha.
   ================================================================ */

/* intervalo de datas (De / Até) dentro de um dropdown .fxdd */
.ct-dt{width:250px;max-width:calc(100vw - 48px);gap:9px;}
.ct-dt label{display:flex;align-items:center;justify-content:space-between;gap:10px;
  font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#93A7BA;}
.ct-dt input{padding:7px 9px;border:1px solid #E3EAF2;border-radius:8px;font-size:12.5px;
  font-family:inherit;font-weight:600;color:#33495E;background:#fff;width:145px;}
.ct-dt input:focus{outline:none;border-color:#1272C4;}
.ct-dt .ct-dt-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding-top:8px;margin-top:2px;border-top:1px solid #E3EAF2;}
.ct-dt .ct-dt-foot button{font-size:11.5px;font-weight:700;color:#1272C4;background:none;border:none;cursor:pointer;font-family:inherit;}
.ct-dt .ct-dt-foot button:hover{text-decoration:underline;}
.ct-dt .ct-dt-hint{font-size:10.5px;color:#93A7BA;line-height:1.4;}

/* seletor de campos da tabela analítica (lista com 2 grupos) */
.fxdd-ms.ct-campos{width:330px;}
.fxdd-ms.ct-campos .ms-list{max-height:330px;}
.fxdd-ms .ms-grp{padding:8px 8px 3px;font-size:9.5px;font-weight:800;letter-spacing:.06em;
  text-transform:uppercase;color:#93A7BA;}
.fxdd-ms .ms-opt.off span{color:#B9C6D3;text-decoration:line-through;}

/* barra da tabela analítica */
.ct-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 16px;
  border-bottom:1px solid var(--border);background:#FBFCFE;}
.ct-bar .ct-k{font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#93A7BA;}
.ct-busca{position:relative;display:inline-flex;align-items:center;flex:1 1 220px;min-width:180px;max-width:420px;}
.ct-busca svg{position:absolute;left:10px;stroke:#93A7BA;}
.ct-busca input{width:100%;box-sizing:border-box;padding:8px 10px 8px 30px;border:1px solid #E3EAF2;
  border-radius:9px;font-size:12.5px;font-family:inherit;color:#33495E;background:#fff;}
.ct-busca input:focus{outline:none;border-color:#1272C4;}
.ct-xls{display:inline-flex;align-items:center;gap:7px;padding:8px 12px;border-radius:9px;
  border:1px solid #CFEEDD;background:#EAF8F0;color:#22794C;font-size:12.5px;font-weight:700;
  cursor:pointer;font-family:inherit;white-space:nowrap;}
.ct-xls:hover{background:#DCF3E7;}
.ct-xls:disabled{opacity:.5;cursor:default;}
.ct-bar .ct-info{margin-left:auto;font-size:11.5px;color:var(--text-3);white-space:nowrap;}
.ct-mais{display:block;width:100%;padding:11px;border:none;border-top:1px solid var(--border);
  background:#F7FAFD;color:#1272C4;font-size:12.5px;font-weight:700;cursor:pointer;font-family:inherit;}
.ct-mais:hover{background:#EFF6FF;}

/* cabeçalho ordenável da tabela analítica */
body.dept .area-main table.lr-mx thead th.ord{cursor:pointer;user-select:none;}
body.dept .area-main table.lr-mx thead th.ord:hover{color:var(--dv-ink);}
body.dept .area-main table.lr-mx thead th .seta{opacity:.55;font-size:9px;margin-left:3px;}

/* KPI compacto (2ª faixa: quantidades) */
.lr-kpi.sm .lr-kpi-val{font-size:21px;}

@media(max-width:767.98px){
  .ct-bar{align-items:stretch;flex-direction:column;}
  .ct-bar .fxdd{width:100%;position:static;display:block;}
  .ct-bar .fx-fbtn{width:100%;box-sizing:border-box;justify-content:space-between;}
  .ct-bar .fxdd-panel{position:static;width:100%;max-width:none;box-shadow:none;margin-top:2px;box-sizing:border-box;}
  .ct-bar .ct-info{margin-left:0;}
  .ct-busca{max-width:none;}
  .fx-filters .ct-dt{width:100%;}
  .ct-dt input{width:100%;box-sizing:border-box;}
  .ct-dt label{flex-direction:column;align-items:stretch;gap:4px;}
}

/* ================================================================
   SIMETRIA DAS LINHAS DE VISUAIS (.lr-vis · .lr-visbox · .lr-row3)
   Antes cada gráfico media a PRÓPRIA altura (nº de barras × passo) e
   dois painéis lado a lado terminavam em alturas diferentes: o card
   mais curto deixava um bloco branco até o fim da linha (o "gap no
   vazio"). Agora a linha é `stretch` e quem estica é o CORPO do
   visual — gráfico (.lr-visbox) ou lista de barras (.lr-bl) —, nunca
   o vazio. Os dois cards acabam sempre na mesma altura.
   ================================================================ */
.lr-row2{align-items:stretch;}
/* linha de 3 visuais curtos (participação/composição) */
.lr-row3{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:12px;align-items:stretch;}
.lr-row3>*{min-width:0;}

.lr-vis{display:flex;flex-direction:column;--lr-vis-h:340px;}
.lr-vis.sm{--lr-vis-h:232px;}
.lr-vis>.lr-visbox{position:relative;flex:1 1 auto;min-height:var(--lr-vis-h);margin-top:8px;}
/* a lista de barras distribui a folga entre as faixas em vez de empilhar
   tudo no topo e deixar o rodapé do card vazio */
.lr-vis>.lr-bl{flex:1 1 auto;min-height:var(--lr-vis-h);justify-content:space-between;}
.lr-vis>.lr-bl.sparse{justify-content:space-evenly;}
.lr-vis>.lr-bl.sparse .lr-bl-track{height:20px;}
.lr-vis>.lr-ph{flex:1 1 auto;min-height:var(--lr-vis-h);margin-top:8px;}

@media(max-width:767.98px){
  /* no celular a linha já empilha; a altura vira a do próprio conteúdo
     (o tuneMobileCharts do nav-sidebar.js fixa a do canvas) */
  .lr-vis{--lr-vis-h:250px;}
  .lr-vis.sm{--lr-vis-h:210px;}
  .lr-row3{grid-template-columns:1fr;}
  .lr-vis>.lr-bl{justify-content:flex-start;}
}
