/* V29.1.8 — revisão estrutural da toolbar do Cronograma WBS.
   Corrige a compactação excessiva da V29.1.6 sem voltar a cortar ações.

   Desktop:
   - linha 1: Nível | Zoom | Colunas | Equipe/Setor | Responsável | × | ações
   - linha 2: Estrutura WBS | Equipes/Setores · Carregamento

   A grade evita que grupos flexíveis encolham/coloquem controles uns sobre os
   outros. Em telas menores volta ao fluxo responsivo com quebra controlada. */

@media (min-width:1280px){
  .v21-project .v28517-wbs-tools:has(> .v2122-filter){
    display:grid!important;
    grid-template-columns:max-content minmax(138px,148px) minmax(138px,148px) 32px minmax(8px,1fr) max-content!important;
    grid-template-rows:auto auto!important;
    align-items:center!important;
    column-gap:6px!important;
    row-gap:7px!important;
    padding:9px 12px!important;
    width:100%!important;
    min-width:0!important;
    overflow:visible!important;
  }

  /* Grupo de visualização: não pode encolher nem sobrepor filtros. */
  .v21-project .v28517-wbs-tools:has(> .v2122-filter) > .v28517-display-controls{
    grid-column:1!important;
    grid-row:1!important;
    display:flex!important;
    flex:0 0 auto!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    gap:7px!important;
    min-width:max-content!important;
  }
  .v21-project .v28517-wbs-tools:has(> .v2122-filter) > .v28517-display-controls > label{
    display:flex!important;
    align-items:center!important;
    flex:0 0 auto!important;
    gap:4px!important;
    font-size:8.5px!important;
    white-space:nowrap!important;
    min-width:max-content!important;
  }
  .v21-project .v28517-wbs-tools:has(> .v2122-filter) > .v28517-display-controls > label:nth-child(1) select{
    width:110px!important;min-width:110px!important;
  }
  .v21-project .v28517-wbs-tools:has(> .v2122-filter) > .v28517-display-controls > label:nth-child(2) select{
    width:106px!important;min-width:106px!important;
  }
  .v21-project .v28517-wbs-tools:has(> .v2122-filter) > .v28517-display-controls > label:nth-child(3) select{
    width:118px!important;min-width:118px!important;
  }
  .v21-project .v28517-wbs-tools:has(> .v2122-filter) select{
    min-height:34px!important;
    padding:6px 26px 6px 9px!important;
    font-size:10px!important;
  }

  /* Os dois filtros ocupam colunas fixas e nunca disputam largura entre si. */
  .v21-project .v28517-wbs-tools:has(> .v2122-filter) > .v2122-filter{
    position:relative!important;
    flex:none!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    align-self:center!important;
  }
  .v21-project .v28517-wbs-tools:has(> .v2122-filter) > .v2122-filter:nth-of-type(1){grid-column:2!important;grid-row:1!important}
  .v21-project .v28517-wbs-tools:has(> .v2122-filter) > .v2122-filter:nth-of-type(2){grid-column:3!important;grid-row:1!important}
  .v21-project .v28517-wbs-tools:has(> .v2122-filter) > .v2122-filter > summary{
    min-height:34px!important;
    padding:6px 8px!important;
    font-size:10px!important;
    min-width:0!important;
    overflow:hidden!important;
  }
  .v21-project .v28517-wbs-tools:has(> .v2122-filter) > .v2122-filter > summary span,
  .v21-project .v28517-wbs-tools:has(> .v2122-filter) > .v2122-filter > summary b{
    min-width:0!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }

  /* Limpar filtros mantém seu slot estável, como solicitado. */
  .v21-project .v28517-wbs-tools:has(> .v2122-filter) > .v2914-clear-filter-icon{
    grid-column:4!important;
    grid-row:1!important;
    flex:none!important;
    width:32px!important;
    min-width:32px!important;
    height:34px!important;
    padding:0!important;
  }

  /* Espaçador absorve somente sobra real; não comprime nenhum controle. */
  .v21-project .v28517-wbs-tools:has(> .v2122-filter) > .v28517-toolbar-spacer{
    display:block!important;
    grid-column:5!important;
    grid-row:1!important;
    min-width:0!important;
    width:auto!important;
  }

  /* Ações permanecem juntas e legíveis, sem fugir da viewport. */
  .v21-project .v28517-wbs-tools:has(> .v2122-filter) > .v28517-toolbar-actions{
    grid-column:6!important;
    grid-row:1!important;
    display:flex!important;
    flex:none!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:6px!important;
    margin-left:0!important;
    min-width:max-content!important;
  }
  .v21-project .v28517-wbs-tools:has(> .v2122-filter) > .v28517-toolbar-actions .btn{
    min-height:34px!important;
    padding-inline:9px!important;
    font-size:10px!important;
    letter-spacing:0!important;
    white-space:nowrap!important;
  }

  /* Legenda FILTRAR é redundante e a quebra antiga não deve disputar a linha. */
  .v21-project .v28517-wbs-tools:has(> .v2122-filter) > .v2122-filter-caption,
  .v21-project .v28517-wbs-tools:has(> .v2122-filter) > .v2122-filter-sep,
  .v21-project .v28517-wbs-tools:has(> .v2122-filter) > .v28517-toolbar-break{
    display:none!important;
  }

  /* Projeção é deliberadamente uma segunda linha, não uma ação à direita. */
  .v21-project .v28517-wbs-tools:has(> .v2122-filter) > .v213-projection{
    grid-column:1 / -1!important;
    grid-row:2!important;
    justify-self:start!important;
    align-self:center!important;
    display:inline-flex!important;
    width:max-content!important;
    margin:0!important;
  }
}

/* Entre 1280 e 1439 px ganha-se espaço sem sacrificar a estrutura. */
@media (min-width:1280px) and (max-width:1439px){
  .v21-project .v28517-wbs-tools:has(> .v2122-filter){
    grid-template-columns:max-content minmax(126px,136px) minmax(126px,136px) 30px minmax(4px,1fr) max-content!important;
    column-gap:4px!important;
    padding-left:8px!important;
    padding-right:8px!important;
  }
  .v21-project .v28517-wbs-tools:has(> .v2122-filter) > .v28517-display-controls{gap:5px!important}
  .v21-project .v28517-wbs-tools:has(> .v2122-filter) > .v28517-display-controls > label:nth-child(1) select{width:102px!important;min-width:102px!important}
  .v21-project .v28517-wbs-tools:has(> .v2122-filter) > .v28517-display-controls > label:nth-child(2) select{width:100px!important;min-width:100px!important}
  .v21-project .v28517-wbs-tools:has(> .v2122-filter) > .v28517-display-controls > label:nth-child(3) select{width:108px!important;min-width:108px!important}
  .v21-project .v28517-wbs-tools:has(> .v2122-filter) > .v2914-clear-filter-icon{width:30px!important;min-width:30px!important}
  .v21-project .v28517-wbs-tools:has(> .v2122-filter) > .v28517-toolbar-actions{gap:4px!important}
  .v21-project .v28517-wbs-tools:has(> .v2122-filter) > .v28517-toolbar-actions .btn{padding-inline:7px!important;font-size:9.5px!important}
}

/* Em telas menores deixa de forçar uma única linha: melhor quebrar de forma
   organizada do que voltar a sobrepor controles. A projeção continua abaixo. */
@media (max-width:1279px){
  .v21-project .v28517-wbs-tools:has(> .v2122-filter){
    display:flex!important;
    flex-wrap:wrap!important;
    gap:7px!important;
    padding:9px 10px!important;
  }
  .v21-project .v28517-wbs-tools:has(> .v2122-filter) > .v28517-display-controls,
  .v21-project .v28517-wbs-tools:has(> .v2122-filter) > .v28517-toolbar-actions{
    flex:0 0 auto!important;
    flex-wrap:wrap!important;
    gap:6px!important;
    min-width:0!important;
  }
  .v21-project .v28517-wbs-tools:has(> .v2122-filter) > .v28517-toolbar-spacer{display:none!important}
  .v21-project .v28517-wbs-tools:has(> .v2122-filter) > .v28517-toolbar-break{display:block!important;flex-basis:100%!important;height:0!important}
  .v21-project .v28517-wbs-tools:has(> .v2122-filter) > .v213-projection{flex:0 0 auto!important;margin-top:0!important}
}
