/* Engorda • layout responsivo V1
   Carregado por último. CSS de apresentação apenas: nenhum cálculo ou evento é alterado.
   Tabelas largas rolam dentro de sua própria região, sem cortar o restante da página. */

/* Proteção contra min-content de grid/flex e elementos de formulário. */
html,body,#app,.shell,.main,.view,.panel,.panel-body,.col,
.db-section,.db-duo,.db-kpis,.db-controls,.db-filter-grid,.db-performance,
.fc-layout,.fc-editor,.fc-details,.fc-fields,.fc-cards,.fc-costos,
.di-page,.di-main,.di-tabbody,.di-info-grid,.di-kpis,
.ps-page,.ps-info-grid,.ps-cost-grid,
.grid,.cols,.field,fieldset,.actions{min-width:0;max-width:100%;}
.shell,.view,.db-section,.di-page{grid-template-columns:minmax(0,1fr);}
.main{min-width:0;width:100%;}
.main>section,.view>*{min-width:0;}
input,select,textarea{max-width:100%;}
button,.btn{max-width:100%;}
.panel-head>*{min-width:0;}
.panel-head h2,.panel-head h3{overflow-wrap:anywhere;}
.db-graph-row>*{min-width:0;}
.db-kpi>strong,.db-performance strong,.metric .v,.fc-cards strong,
.ps-cost-grid strong,.di-kpis strong{overflow-wrap:anywhere;word-break:normal;}

/* Tabelas: a página NÃO deve adquirir largura de uma tabela. */
.tbl-wrap,.di-table-wrap,.di-ingredientes-wrap,.ps-insumo-wrap,
.di-tabs{min-width:0;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;
  -webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;}
.panel-body:has(>table),.di-tabbody:has(>.di-historico){min-width:0;max-width:100%;overflow-x:auto;
  -webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain;}
.tbl-wrap>table{min-width:600px;width:100%;}
.di-table-wrap>table,.di-ingredientes-wrap>table,.ps-insumo-wrap>table{max-width:none;}
.tabbar{max-width:100%;min-width:0;overscroll-behavior-inline:contain;
  -webkit-overflow-scrolling:touch;scrollbar-width:thin;}
.tabbar button{flex:0 0 auto;}

@media(max-width:900px){
  .cols,.fc-layout,.db-duo{grid-template-columns:minmax(0,1fr);}
  .db-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .db-kpis{grid-template-columns:repeat(2,minmax(0,1fr));}
  .fc-cards{grid-template-columns:repeat(2,minmax(0,1fr));}
  .di-info-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .di-kpis,.ps-cost-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .di-vinculos-grid{grid-template-columns:minmax(0,1fr);}
}

@media(max-width:600px){
  .main{padding:12px 10px 22px;}
  .view,.col,.di-page{gap:12px;}
  .topbar{gap:7px 10px;padding:10px 12px;
    padding-top:calc(10px + env(safe-area-inset-top,0px));}
  .topbar .brand{font-size:16px;white-space:nowrap;}
  .topbar .who{display:none;}
  .topbar .spacer{flex:1 1 8px;min-width:0;}
  .topbar #btnSair{flex-shrink:0;}
  .tabbar{padding:0 8px;gap:0;}
  .tabbar button{padding:11px 12px;font-size:12.5px;min-height:43px;}
  .panel{border-radius:11px;}
  .panel-head{padding:12px;align-items:flex-start;gap:9px;}
  .panel-head .actions{width:100%;display:flex;flex-wrap:wrap;}
  .panel-head .actions button{flex:0 1 auto;}
  .panel-body{padding:12px;}
  .grid,.grid.two,.grid.four,.fc-fields,.fc-costos,.di-info-grid{
    grid-template-columns:minmax(0,1fr);gap:10px;}
  .di-info-grid .di-span-2,.ps-info-grid .ps-span2{grid-column:1/-1;}
  .di-info-grid{padding:12px;}
  .di-tabbody{padding:10px;}
  .di-section-head{padding:12px 12px 0;}
  .di-heading{align-items:flex-start;}
  .di-heading h2{font-size:21px;}
  .di-toolbar{width:100%;}
  .di-filterbar{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;padding:12px;}
  .di-filterbar>.field,.di-search{max-width:none;width:100%;min-width:0;}
  .di-filterbar button{justify-content:center;}
  .di-tabs button{white-space:nowrap;padding:12px 13px;flex-shrink:0;}
  .db-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;}
  .db-filter-grid>.field:first-child,.db-filter-grid>.field:last-child{grid-column:1/-1;}
  .db-filter-grid .field{min-width:0;}
  .db-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
  .db-kpi{padding:11px 10px;gap:5px;}
  .db-kpi>strong{font-size:clamp(15px,4.1vw,19px);line-height:1.2;}
  .db-section-title{align-items:flex-start;flex-wrap:wrap;gap:3px 8px;}
  .db-section-title h3{font-size:14px;}
  .db-section-title span{font-size:11px;}
  .db-performance,.db-performance-vertical{grid-template-columns:minmax(0,1fr);}
  .db-legend{flex-wrap:wrap;gap:8px 14px;}
  .db-graph-row{grid-template-columns:38px minmax(0,1fr) 80px;gap:6px;}
  .db-values{font-size:9.5px;}
  .db-actions{white-space:nowrap;}
  .fc-layout,.fc-fields,.fc-costos{grid-template-columns:minmax(0,1fr);}
  .fc-layout>div,.fc-layout>aside{min-width:0;}
  .fc-details{margin:10px 0;}
  .fc-details summary{padding:11px 12px;}
  .fc-details>.fc-fields,.fc-details>.fc-costos,.fc-details>.muted{
    margin-left:10px;margin-right:10px;}
  .fc-section-intro{margin:10px 10px 0;}
  .fc-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;}
  .fc-cards>div{padding:10px;}
  .fc-cards strong{font-size:15px;}
  .fc-field{min-width:0;}
  .fc-field input,.fc-field select{max-width:100%;}
  .di-kpis,.ps-cost-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
  .di-kpis>div,.ps-cost-grid>div{padding:10px;}
  .dieta-seletor,.ps-seletor{padding:11px;}
  .dieta-seletor select{min-width:0;flex:1 1 100%;}
  .suplemento-metricas{grid-template-columns:repeat(2,minmax(0,1fr));}
  .modalidade-primeiro{margin:0 0 12px;padding:12px;}
  .metric .v{font-size:17px;}
  .verdict .big{font-size:23px;overflow-wrap:anywhere;}
  .login-wrap{padding:16px 10px;}
  .login-head,.login-body{padding-left:18px;padding-right:18px;}
  /* iOS: campos >=16px evitam zoom automático que aparenta cortar a tela. */
  input,select,textarea,.fc-field input,.fc-field select,
  .di-ingredientes input,.di-ingredientes select,
  .ps-insumo-tabela input,.ps-insumo-tabela select{font-size:16px;}
}
@media(max-width:380px){
  .db-kpis{grid-template-columns:minmax(0,1fr);}
  .db-kpi>strong{font-size:20px;}
  .db-filter-grid{grid-template-columns:minmax(0,1fr);}
  .db-filter-grid>.field{grid-column:1/-1;}
  .fc-cards{grid-template-columns:minmax(0,1fr);}
  .ps-cost-grid{grid-template-columns:minmax(0,1fr);}
  .suplemento-metricas{grid-template-columns:minmax(0,1fr);}
  .db-graph-row{grid-template-columns:36px minmax(0,1fr) 66px;gap:4px;}
  .db-values{font-size:9px;}
}

/* Pista visual nas tabelas extensas; nenhuma coluna é descartada. */
@media(max-width:700px){
  .tbl-wrap:has(>table)::before,.di-table-wrap::before,
  .di-ingredientes-wrap::before,.ps-insumo-wrap::before{
    content:"Deslize para os lados para ver todas as colunas →";
    display:block;position:sticky;left:0;z-index:1;width:max-content;
    max-width:min(100%,310px);margin:0 0 6px;
    padding:6px 8px;border-radius:6px;
    color:var(--muted);background:var(--panel-2);
    font-family:var(--f-body);font-size:11px;line-height:1.35;
  }
}
