/* SoluCalc v311 — harmonização responsiva orientada pela largura real da ferramenta.
   Referência: layout correto em 100% de zoom, sem reduzir globalmente o conteúdo. */

html.solucalc-v311-responsive,
html.solucalc-v311-responsive body{max-width:100%;overflow-x:hidden;}

/* Nas páginas de ferramenta, aproveita melhor a largura física disponível.
   Header e home permanecem com suas regras próprias. */
body.solucalc-tool-page-v311 .page-shell{
  width:min(calc(100% - 10px),1480px);
}
body.solucalc-tool-page-v311 main > .wrap.numera-tool-page-header,
body.solucalc-tool-page-v311 main > .wrap.numera-tool-content,
body.solucalc-tool-page-v311 main > .wrap.lower-content{
  width:min(calc(100% - 28px),1380px);
}

html.solucalc-v311-responsive :where(
  .numera-tool-content,.v213-batch-page,.v221-family-shell-page,.ntt-v1-page,
  .numera-v93-tool-panel,.tool-workspace,.workspace-main,.workspace-aside,
  .v213-template-layout,.v213-template-main,.v213-template-aside,
  .ntt-v1-tool-grid,.ntt-v1-primary,.ntt-v1-side,
  .ms163-shell,.ms163-left,.ms163-right,
  .numera-v93-pmt-layout,.numera-v93-gestao-layout,.numera-v93-anova-layout,.numera-v93-chi-layout,
  .numera-v93-visual-grid,.numera-v93-grid,.calc-grid,
  [class*="-layout"],[class*="-shell"],[class*="-workspace"]
){min-width:0;max-width:100%;box-sizing:border-box;}

html.solucalc-v311-responsive :where(
  .numera-v93-tool-panel,.tool-workspace,.workspace-main,.workspace-aside,
  .v213-template-main,.v213-template-aside,.ntt-v1-primary,.ntt-v1-side,
  .ms163-left,.ms163-right,.numera-v93-grid,.calc-grid,
  [class*="-layout"],[class*="-shell"]
) > *{min-width:0;max-width:100%;box-sizing:border-box;}

html.solucalc-v311-responsive :where(.numera-tool-content,.numera-v93-tool-panel,.tool-workspace)
:where(input,select,textarea){min-width:0;max-width:100%;box-sizing:border-box;}

html.solucalc-v311-responsive :where(.numera-tool-content,.numera-v93-tool-panel,.tool-workspace)
:where(svg,canvas,img){max-width:100%;}

html.solucalc-v311-responsive :where(
  .numera-v93-visual-card,.calc-visual-card,.ntt-v1-rep-card,.ms163-visual,
  [class*="-visual"]
){min-width:0;max-width:100%;box-sizing:border-box;overflow:hidden;}

html.solucalc-v311-responsive :where(
  .numera-v93-visual-card,.calc-visual-card,.ntt-v1-rep-card,.ms163-visual,
  [class*="-visual"]
) svg{display:block;max-width:100%;height:auto;margin-left:auto;margin-right:auto;}

html.solucalc-v311-responsive :where(
  .numera-v93-table-wrap,.data-table-wrap,.ms163-table-scroll,
  [class*="table-wrap"],[class*="table-scroll"],[class*="matrix"]
){max-width:100%;box-sizing:border-box;overflow-x:auto;}

html.solucalc-v311-responsive :where(
  .numera-v93-metric,.metric,.ms163-metric,.result-card,.numera-v93-result,
  .numera-v93-note,.ms163-note,.numera-v94-solution-block
) :where(strong,p,span,small){max-width:100%;overflow-wrap:anywhere;word-break:normal;}

/* Desktop amplo. */
.solucalc-v311-wide .v213-template-layout{grid-template-columns:minmax(0,1.34fr) minmax(310px,.72fr)!important;gap:18px!important;}
.solucalc-v311-wide .ntt-v1-tool-grid{grid-template-columns:minmax(0,1.54fr) minmax(300px,.72fr)!important;gap:18px!important;}
.solucalc-v311-wide .ms163-shell,
body.v209-ms-page .solucalc-v311-wide .numera-v93-tool-panel.ms163-shell{grid-template-columns:minmax(0,1.18fr) minmax(330px,.82fr)!important;gap:18px!important;}
.solucalc-v311-wide :where(.numera-v93-pmt-layout,.numera-v93-gestao-layout,.numera-v93-anova-layout,.numera-v93-chi-layout){grid-template-columns:minmax(0,1.34fr) minmax(310px,.72fr)!important;gap:18px 22px!important;}
.solucalc-v311-wide .tool-workspace:has(> .workspace-main):has(> .workspace-aside){grid-template-columns:minmax(0,1.68fr) minmax(300px,.86fr)!important;gap:16px!important;}

/* Desktop compacto: mantém o formato principal em duas colunas mesmo quando
   media queries antigas, baseadas no viewport, tentariam empilhar a ferramenta. */
.solucalc-v311-compact .v213-template-layout{grid-template-columns:minmax(0,1fr) minmax(250px,.48fr)!important;gap:12px!important;}
.solucalc-v311-compact .ntt-v1-tool-grid{grid-template-columns:minmax(0,1fr) minmax(250px,.46fr)!important;gap:12px!important;}
.solucalc-v311-compact .ms163-shell,
body.v209-ms-page .solucalc-v311-compact .numera-v93-tool-panel.ms163-shell{grid-template-columns:minmax(0,1fr) minmax(270px,.52fr)!important;gap:12px!important;}
.solucalc-v311-compact :where(.numera-v93-pmt-layout,.numera-v93-gestao-layout,.numera-v93-anova-layout,.numera-v93-chi-layout){grid-template-columns:minmax(0,1fr) minmax(260px,.5fr)!important;gap:12px 14px!important;}
.solucalc-v311-compact .tool-workspace:has(> .workspace-main):has(> .workspace-aside){grid-template-columns:minmax(0,1fr) minmax(260px,.52fr)!important;gap:12px!important;}

.solucalc-v311-wide :where(.v213-template-main,.ntt-v1-primary,.ms163-left),
.solucalc-v311-compact :where(.v213-template-main,.ntt-v1-primary,.ms163-left){grid-column:1!important;min-width:0!important;}
.solucalc-v311-wide :where(.v213-template-aside,.ntt-v1-side,.ms163-right),
.solucalc-v311-compact :where(.v213-template-aside,.ntt-v1-side,.ms163-right){grid-column:2!important;min-width:0!important;}

.solucalc-v311-wide .v213-template-aside,
.solucalc-v311-wide .ntt-v1-side{position:sticky!important;top:104px!important;}
.solucalc-v311-compact .v213-template-aside,
.solucalc-v311-compact .ntt-v1-side{position:static!important;top:auto!important;}

.solucalc-v311-wide .v213-template-aside > .numera-v93-visual-grid,
.solucalc-v311-compact .v213-template-aside > .numera-v93-visual-grid,
.solucalc-v311-wide .ntt-v1-side,
.solucalc-v311-compact .ntt-v1-side{grid-template-columns:1fr!important;}
.solucalc-v311-wide .ntt-v1-rep-title,
.solucalc-v311-compact .ntt-v1-rep-title{grid-column:auto!important;}

.solucalc-v311-wide :where(.numera-v93-pmt-layout,.numera-v93-gestao-layout,.numera-v93-anova-layout,.numera-v93-chi-layout) > .numera-v93-visual-grid,
.solucalc-v311-compact :where(.numera-v93-pmt-layout,.numera-v93-gestao-layout,.numera-v93-anova-layout,.numera-v93-chi-layout) > .numera-v93-visual-grid{
  grid-column:2!important;grid-row:1 / span 24!important;grid-template-columns:1fr!important;
  margin-top:0!important;min-width:0!important;
}
.solucalc-v311-wide :where(.numera-v93-pmt-layout,.numera-v93-gestao-layout,.numera-v93-anova-layout,.numera-v93-chi-layout) > .numera-v93-visual-grid{position:sticky!important;top:104px!important;}
.solucalc-v311-compact :where(.numera-v93-pmt-layout,.numera-v93-gestao-layout,.numera-v93-anova-layout,.numera-v93-chi-layout) > .numera-v93-visual-grid{position:static!important;top:auto!important;}

.solucalc-v311-wide .tool-workspace:has(> .workspace-main):has(> .workspace-aside) > .workspace-main,
.solucalc-v311-compact .tool-workspace:has(> .workspace-main):has(> .workspace-aside) > .workspace-main{grid-column:1!important;min-width:0!important;}
.solucalc-v311-wide .tool-workspace:has(> .workspace-main):has(> .workspace-aside) > .workspace-aside,
.solucalc-v311-compact .tool-workspace:has(> .workspace-main):has(> .workspace-aside) > .workspace-aside{grid-column:2!important;min-width:0!important;}

/* Compactação apenas espacial, sem reduzir tipografia. */
.solucalc-v311-compact :where(.numera-v93-tool-panel,.ms163-shell,.v213-template-layout,.ntt-v1-tool-grid,.tool-workspace){column-gap:12px!important;}
.solucalc-v311-compact :where(.ms163-card,.numera-v93-visual-card,.calc-visual-card,.ntt-v1-rep-card){min-width:0!important;}
.solucalc-v311-compact :where(.ms163-grid-4,.numera-v93-grid,.calc-grid){min-width:0!important;}
.solucalc-v311-compact :where(.numera-v93-result,.ms163-metrics){gap:8px!important;}

/* Abaixo de 840 px reais do contêiner, empilha de forma controlada. */
.solucalc-v311-stacked :where(
  .v213-template-layout,.ntt-v1-tool-grid,.ms163-shell,
  .numera-v93-pmt-layout,.numera-v93-gestao-layout,.numera-v93-anova-layout,.numera-v93-chi-layout,
  .tool-workspace:has(> .workspace-main):has(> .workspace-aside)
){grid-template-columns:1fr!important;}
.solucalc-v311-stacked :where(.v213-template-main,.v213-template-aside,.ntt-v1-primary,.ntt-v1-side,.ms163-left,.ms163-right,.workspace-main,.workspace-aside){grid-column:1!important;position:static!important;top:auto!important;}
.solucalc-v311-stacked :where(.v213-template-aside > .numera-v93-visual-grid,.ntt-v1-side,.numera-v93-visual-grid){grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-column:1!important;grid-row:auto!important;position:static!important;top:auto!important;}
.solucalc-v311-stacked .ntt-v1-rep-title{grid-column:1/-1!important;}

/* Mobile real. */
.solucalc-v311-mobile :where(
  .v213-template-layout,.ntt-v1-tool-grid,.ms163-shell,
  .numera-v93-pmt-layout,.numera-v93-gestao-layout,.numera-v93-anova-layout,.numera-v93-chi-layout,
  .tool-workspace:has(> .workspace-main):has(> .workspace-aside),
  .v213-template-aside > .numera-v93-visual-grid,.ntt-v1-side,.numera-v93-visual-grid,
  .ms163-grid,.ms163-grid-3,.ms163-grid-4,.ms163-metrics,.calc-grid,.numera-v93-grid
){grid-template-columns:1fr!important;}
.solucalc-v311-mobile :where(.numera-v93-tool-panel,.v213-template-panel,.ntt-v1-tool-panel,.ms163-shell){padding-left:12px!important;padding-right:12px!important;}

@media(max-width:760px){
  body.solucalc-tool-page-v311 main > .wrap.numera-tool-page-header,
  body.solucalc-tool-page-v311 main > .wrap.numera-tool-content,
  body.solucalc-tool-page-v311 main > .wrap.lower-content{width:min(calc(100% - 18px),1380px);}
}

@media(prefers-reduced-motion:reduce){html.solucalc-v311-responsive *{scroll-behavior:auto!important;}}
