/* FRETE+PRO 4.3.3.176 | adaptação por espaço realmente disponível */
/* Carregado por último: corrige larguras rígidas de estilos legados. */
html{max-width:100%;-webkit-text-size-adjust:100%}
body{max-width:100%;margin:0}
img,video,canvas,svg{max-width:100%}
.app{width:100%;max-width:100%;min-width:0}
.main,#conteudoPrincipal{width:100%;min-width:0;max-width:100%}
.content{box-sizing:border-box;min-width:0}
.content>*{max-width:100%}
/* Grades e controles mantêm conteúdo interno sem empurrar todo o aplicativo */
.cards>* , .adm-master-grid>*, .t171-kpis>*, .t171-layout>*, .t171-atalhos>*,
.gestor-cards>*, .gestor-filtros>*, .intel-kpis>*, .intel-grid>*, .intel-fretes-filtros>*,
.transporte-etapas-grid>*, .transporte-filtros>*, .calc-frete-grid>*, .calc-frete-kpis>*,
.rastreamento-overview>*{min-width:0;max-width:100%}
input,select,textarea{max-width:100%;box-sizing:border-box}
.central-transporte-tabela-wrap,.gestor-tabela-wrap,.historico-table-wrap,
.tabela-container,.table-responsive,.nfe-tabela-wrap,.relatorio-tabela-wrap{
 max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;
}
/* Uma tabela com várias colunas continua legível, rolando SOMENTE dentro dela. */
.central-transporte-tabela,.gestor-tabela,.rota-dashboard-table{width:max-content;max-width:none}
/* Mesmo que a página tenha menos altura, todas as opções do menu continuam acessíveis. */
@media(min-width:981px){.sidebar{min-width:0;flex-shrink:0;max-height:100dvh;overflow-y:auto;overflow-x:hidden;position:sticky;top:0;scrollbar-width:thin}}
.sidebar .menu-item{min-width:0}
.sidebar .menu-item span{min-width:0;overflow-wrap:anywhere;text-align:left}
/* Telas comuns de notebooks, especialmente 1366 x 768 com barra de navegação. */
@media(min-width:981px) and (max-width:1500px){
 .sidebar{width:206px!important;flex-basis:206px!important;padding:13px 10px!important}
 .sidebar .logo{min-height:92px!important;margin-bottom:7px!important;padding-bottom:9px!important}
 .sidebar .logo .brand-fv-full{width:min(118px,100%)!important}
 .sidebar .logo .brand-powered img{width:min(98px,100%)!important}
 .sidebar nav{gap:2px!important;margin-top:0!important}
 .sidebar .menu-item{min-height:37px!important;padding:7px 9px!important;gap:9px!important;font-size:12px!important;line-height:1.2!important}
 .sidebar .menu-item svg{width:16px!important;height:16px!important;flex-shrink:0}
 .sidebar .menu-separador{margin:6px 4px!important}
 .content{padding:15px 18px 24px!important}
 .topbar,.page-header,.frete-header,.central-header{min-height:74px!important;padding:13px 18px!important;flex-wrap:wrap;gap:10px}
 .topbar h1,.page-header h1,.frete-header h1,.central-header h1{font-size:clamp(20px,2vw,26px)!important;line-height:1.2!important}
 .cards{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important}
 .adm-master-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px}
 .transporte-etapas-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
 .t171-kpis{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px}
 .t171-layout{grid-template-columns:minmax(0,1fr)!important;gap:12px}
 .gestor-filtros{grid-template-columns:repeat(3,minmax(0,1fr))!important}
 .gestor-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .intel-kpis,.intel-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .intel-fretes-filtros{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .rastreamento-overview{grid-template-columns:minmax(0,1fr)!important}
 .rastreamento-kpis{grid-template-columns:repeat(3,minmax(0,1fr))!important}
 .rastreamento-mapa-geral{height:320px!important;min-height:280px!important}
 .r172-linha{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:11px!important;padding:12px!important}
 .r172-acoes{white-space:normal!important;text-align:left}
 .calc-frete-page,.intel-fretes-page{max-width:100%;padding:16px!important}
 .calc-frete-grid.parametros{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
/* Notebook mais baixo: menu rolável e blocos menos altos sem reduzir a legibilidade. */
@media(min-width:981px) and (max-height:820px){
 .sidebar{max-height:100dvh}
 .sidebar .logo{min-height:72px!important;padding-top:2px!important}
 .sidebar .menu-item{min-height:35px!important}
 .adm-master-banner{padding:13px 16px!important;margin-bottom:12px!important}
 .t171-kpi{padding:12px!important}
}
/* Tablets e janela parcial do navegador. Não interfere na barra inferior móvel do representante. */
@media(min-width:651px) and (max-width:980px){
 body:not(.perfil-representante) .sidebar{width:76px!important;flex-basis:76px!important;padding:12px 8px!important;max-height:100dvh;overflow-y:auto;position:sticky;top:0}
 .sidebar .logo{min-height:auto!important;align-items:center!important;padding:4px 0 12px!important}
 body:not(.perfil-representante) .sidebar .brand-powered{display:none!important}
 .sidebar .logo .brand-fv-full{width:54px!important}
 body:not(.perfil-representante) .sidebar .menu-item{justify-content:center!important;padding:10px 5px!important;min-height:42px!important}
 body:not(.perfil-representante) .sidebar .menu-item span{display:none!important}
 .sidebar .menu-item svg{width:22px!important;height:22px!important;flex-shrink:0}
 .content{padding:14px!important}
 .cards{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}
 .adm-master-grid,.transporte-etapas-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .gestor-filtros,.intel-fretes-filtros,.calc-frete-grid.parametros{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .t171-layout,.rastreamento-overview{grid-template-columns:minmax(0,1fr)!important}
 .t171-kpis,.rastreamento-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .r172-linha{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .topbar,.page-header,.frete-header,.central-header{flex-wrap:wrap;gap:10px;padding:14px!important}
}
@media(max-width:650px){
 /* Preserve navegação mobile já existente nos perfis que usam barra inferior. */
 .main,#conteudoPrincipal{min-width:0!important}
 .content{padding:12px 10px 24px!important}
 .cards,.adm-master-grid,.gestor-cards,.intel-kpis,.intel-grid,
 .gestor-filtros,.intel-fretes-filtros,.transporte-etapas-grid,
 .t171-layout,.t171-kpis,.t171-atalhos,.rastreamento-overview,
 .rastreamento-kpis,.calc-frete-grid.parametros,.calc-frete-kpis{
  grid-template-columns:minmax(0,1fr)!important;
 }
 .r172-linha{grid-template-columns:minmax(0,1fr)!important;gap:8px!important}
 .topbar,.page-header,.frete-header,.central-header{flex-wrap:wrap;gap:9px;padding:12px!important}
 .topbar h1,.page-header h1,.frete-header h1,.central-header h1{font-size:clamp(19px,5vw,24px)!important}
 .calc-frete-page,.intel-fretes-page{padding:10px!important}
 .rastreamento-mapa-geral{height:280px!important;min-height:240px!important}
 .gestor-modal,.modal-conteudo,.modal-content{max-width:calc(100vw - 20px)!important}
}
/* Componentes criados dinamicamente precisam respeitar o contêiner. */
.rastreamento-mapa-card,.r172-linha,.transporte-171,.gestor-page,.intel-fretes-page,
.calc-frete-page,.gestor-bloco,.t171-acao,.t171-atalho,.t171-kpi{min-width:0;max-width:100%}
