.laboratorio-app { width: min(100% - 2rem, 90rem); min-height: 100vh; margin-inline: auto; padding-block: .4rem 1rem; }
.topo-laboratorio { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .65rem; margin-bottom: .45rem; }
.topo-laboratorio h1 { margin: 0; font-size: clamp(1.55rem, 3vw, 2.35rem); }
.topo-laboratorio .identificador { margin-bottom: .05rem; line-height: 1.2; }
.acoes-topo { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .35rem; padding-inline-end: 7.5rem; }
.tela-selecao { max-width: 70rem; margin: 2rem auto; }
.cabecalho-tela { max-width: 48rem; margin-bottom: 1.5rem; }
.grade-escolhas { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: 1rem; }
.atividade { display: grid; gap: .5rem; }
.painel-instrucao { display: grid; grid-template-columns: minmax(16rem, .7fr) minmax(34rem, 1.35fr) auto; align-items: center; gap: .4rem; padding: .4rem .55rem; }
.painel-instrucao .identificador { margin-bottom: .1rem; }
.painel-instrucao h2 { margin-bottom: .15rem; font-size: clamp(1.35rem, 2.4vw, 1.75rem); }
.painel-instrucao p:last-child { margin-bottom: 0; }
.alternador-tipo { display: flex; flex: 0 0 auto; gap: .35rem; }
.mesa-trabalho { display: block; min-width: 0; }
.partes-fornecidas, .resposta-todo { width: 100%; padding: .65rem; }
.partes-concretas { display: flex; flex-wrap: wrap; gap: 1rem; }
.parte-concreta { display: grid; align-content: start; }
.legenda-pecas { flex: 1 1 100%; margin: .2rem 0 0; font-size: .82rem; line-height: 1.25; }
.painel-material, .painel-adicao { width: 100%; padding: .45rem .55rem; }
.painel-material h3, .painel-adicao h3 { margin-bottom: .15rem; }
.painel-material + .painel-adicao:not([hidden]) { margin-top: .5rem; }
.banco-pecas { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: center; gap: .25rem; margin-bottom: .2rem; }
.item-banco { display: flex; min-width: 0; align-items: center; justify-content: center; gap: .35rem; }
.item-banco span { min-width: 0; font-size: .82rem; line-height: 1.2; }
.areas-ordens { display: grid; grid-template-columns: repeat(var(--order-count, 4), minmax(0, 1fr)); gap: .3rem; }
.area-ordem { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; min-width: 0; width: 100%; height: 12.75rem; min-height: 0; padding: .35rem; }
.area-ordem h4 { margin: 0 0 .15rem; font-size: .95rem; }
.colecao-pecas { display: flex; flex-wrap: wrap; align-content: flex-start; gap: .25rem; }
.area-ordem .colecao-pecas { display: grid; min-height: 0; align-content: start; justify-content: start; gap: .2rem; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
.area-unit .colecao-pecas { grid-template-columns: repeat(auto-fill, 1.45rem); }
.area-ten .colecao-pecas { grid-template-columns: repeat(auto-fill, 1.25rem); }
.area-hundred .colecao-pecas, .area-thousand .colecao-pecas { grid-template-columns: repeat(auto-fill, 4rem); }
.area-ordem .peca-ten { width: 1.2rem; height: 4rem; }
.area-ordem .peca-hundred, .area-ordem .peca-thousand { width: 4rem; height: 4rem; }
.controle-contagem, .controle-valor > div { display: grid; grid-template-columns: 2.5rem 1fr 2.5rem; align-items: center; gap: .25rem; }
.controle-contagem output, .controle-valor output { text-align: center; font-weight: 800; }
.acoes-troca { display: grid; grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); gap: .25rem; margin-top: .25rem; }
.grupo-troca { display: flex; min-width: 0; align-items: center; flex-wrap: nowrap; gap: .2rem; padding: .2rem .3rem; }
.grupo-troca span { flex: 1 1 10rem; font-size: .85rem; }
.controles-valores { display: grid; grid-template-columns: repeat(2, minmax(12rem, 1fr)); gap: .6rem; }
.banco-parcelas { display: flex; flex-wrap: wrap; gap: .4rem; }
.parcelas-construidas { min-height: 4rem; margin-top: .75rem; padding: .65rem; }
.parcelas-construidas button { margin: .15rem; }
.resposta-todo { display: grid; grid-template-columns: auto minmax(8rem, 14rem); align-items: end; gap: .5rem 1rem; }
.resposta-todo h3 { grid-column: 1 / -1; }
.resposta-todo input { min-height: 3rem; padding: .5rem; border: 2px solid var(--azul-acao); border-radius: var(--raio-botao); font: inherit; font-size: 1.4rem; font-weight: 800; }
.controle-valor { padding: .65rem; }
.controle-valor > span { display: block; margin-bottom: .35rem; font-weight: 700; }
.painel-resultado { position: static; display: grid; grid-template-columns: auto auto minmax(13rem, 1fr); align-items: center; gap: .2rem .35rem; padding: .25rem .35rem; }
.painel-resultado h3 { margin: 0; font-size: 1.05rem; }
.painel-resultado .total-atual { grid-column: 2; grid-row: 1; }
.painel-resultado .acoes-desafio { grid-column: 3; grid-row: 1; }
.painel-resultado .revelacao, .painel-resultado .feedback { grid-column: 1 / -1; grid-row: 2; }
.acoes-desafio { display: flex; gap: .3rem; }
.revelacao { margin: 0; }
.revelacao p { margin: 0; }
.revelacao > div { min-width: 0; flex: 1 1 auto; }
.revelacao p, .revelacao strong { white-space: nowrap; }
.revelacao > button { flex: 0 0 auto; }

/* Compactação exclusiva da decomposição com Material Dourado. */
.atividade[data-kind="decomposition"][data-mode="material"] .painel-material { padding-block: .35rem; }
.atividade[data-kind="decomposition"][data-mode="material"] .banco-pecas { margin-bottom: .1rem; }
.atividade[data-kind="decomposition"][data-mode="material"] .area-ordem { height: 9.75rem; }
.atividade[data-kind="decomposition"][data-mode="material"] .acoes-troca {
  grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
  margin-top: .15rem;
  gap: .2rem;
}
.atividade[data-kind="decomposition"][data-mode="material"] .grupo-troca { padding-block: .1rem; }
.atividade[data-kind="decomposition"][data-mode="material"] .equivalencia-terminal { grid-column: auto; }
.somente-leitor-tela { position: absolute!important; width: 1px!important; height: 1px!important; padding: 0!important; margin: -1px!important; clip: rect(0,0,0,0)!important; white-space: nowrap!important; border: 0!important; overflow: hidden!important; }
