/* Componentes compartilhados da Workbench. Fox · Codex · Lucius 04. */
:root{--wb-control-h-sm:32px;--wb-esp-1:4px;--wb-esp-2:8px;--wb-esp-3:12px;--wb-esp-4:16px;--wb-esp-5:24px;--wb-esp-6:32px;--wb-esp-7:40px;--wb-esp-8:48px;--wb-control-h:36px;--wb-control-pad:14px;--wb-control-gap:var(--wb-esp-2);--wb-control-radius:999px;--wb-card-radius:8px;--wb-field-radius:8px;--wb-value-radius:999px;--wb-swatch-radius:4px;--wb-panel-radius:var(--wb-card-radius);--wb-section-gap:var(--wb-esp-5);--wb-menu-hover:color-mix(in srgb,var(--wb-text) 4%,transparent);--wb-menu-shadow:0 12px 32px rgb(0 0 0 / .18)}
/* Alternâncias e opções compartilham medidas; a alternância continua segmentada. */
.vtSeg,.seg{min-height:var(--wb-control-h);padding:3px;gap:4px;border:1px solid var(--wb-line-2);border-radius:var(--wb-control-radius);align-items:center}
.vtOp,.seg button{min-height:28px;padding:4px var(--wb-control-pad);border-radius:var(--wb-control-radius);font:400 14px/20px var(--wb-sans);justify-content:center;white-space:nowrap}
.vtOp[aria-pressed=true]{background:var(--wb-panel-2);color:var(--wb-text);font-weight:500}
/* Rolagem por roda, gesto e teclado; o acabamento dos trilhos fica ao fim. */

.btn,.idioma,.tema,.menuAbrir,.menuFechar{min-height:var(--wb-control-h)}
.btn,.topo .btn,.flowAcoes .btn,.canvasBarra .btn,.ferramentas .btn{height:var(--wb-control-h);display:inline-flex;align-items:center;justify-content:center;gap:var(--wb-control-gap);padding:0 var(--wb-control-pad);font:400 14px/20px var(--wb-sans);border-radius:var(--wb-control-radius);white-space:nowrap}
.btn.primario{font-weight:500}.btn.mini{height:28px;min-height:28px;font-size:12px;padding:0 10px}
.btn.grande{height:48px;min-height:48px;padding:0 24px;font-size:16px;font-weight:500}
.btn:disabled,.flowImport:has(input:disabled){opacity:.4;cursor:default}.btn:disabled:hover{border-color:var(--wb-line-2)}
/* O select guarda valor/eventos; o botão e a lista usam a mesma geometria em toda a UI. */
.wbSelect{position:relative;display:inline-grid;min-width:0;max-width:100%;vertical-align:middle}
.wbSelectSource{position:absolute!important;width:1px!important;height:1px!important;min-width:0!important;padding:0!important;border:0!important;clip-path:inset(50%);overflow:hidden;white-space:nowrap;pointer-events:none}
.wbSelectTrigger{width:100%;min-width:0;height:var(--wb-control-h);display:flex;align-items:center;justify-content:space-between;gap:var(--wb-control-gap);padding:0 12px 0 var(--wb-control-pad);background:transparent;border:1px solid var(--wb-line-2);border-radius:var(--wb-control-radius);color:var(--wb-text);font:400 14px/20px var(--wb-sans);text-align:left;transition:border-color .2s var(--wb-ease)}
.wbSelectTrigger:hover,.wbSelectTrigger[aria-expanded=true]{border-color:var(--wb-text)}.wbSelectTrigger:disabled{opacity:.4;cursor:default}
.wbSelectValue{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* o selo de uma opção (a fonte da entrada): o mesmo tratamento do "Soon" da coluna */
.wbSelo{flex:none;margin-left:auto;font:400 11px/20px var(--wb-sans);color:var(--wb-dim);white-space:nowrap}.wbSelo[hidden]{display:none}
.wbSelectMenu [role=option] .wbSelo{margin-left:auto}
.wbSelectTrigger svg,.wbSelectMenu svg{width:14px;height:14px;flex:none;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;color:var(--wb-soft)}
.wbSelectTrigger>svg{width:14px;height:14px;align-self:center}
.flowDetails>summary::after{background-color:var(--wb-soft)}
.wbSelectMenu{position:fixed;inset:auto;margin:0;padding:6px 0;border:1px solid var(--wb-line-2);border-radius:var(--wb-panel-radius);background:var(--wb-bg);color:var(--wb-text);overflow:auto;box-shadow:var(--wb-menu-shadow);z-index:100;outline:none}
.wbSelectMenu [role=option]{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:40px;padding:8px 14px;font:400 14px/20px var(--wb-sans);cursor:pointer}
.wbSelectMenu [role=option] span{min-width:0;overflow-wrap:anywhere}.wbSelectMenu [role=option] svg{visibility:hidden}.wbSelectMenu [aria-selected=true] svg{visibility:visible}.wbSelectMenu .ativo{background:var(--wb-menu-hover)}.wbSelectMenu [aria-disabled=true]{opacity:.4;cursor:default}
.wbSelectMenu [role=option] .wbSelectOptionIcon{display:flex;flex:none}.wbSelectMenu [role=option] .wbSelectOptionIcon svg{visibility:visible;fill:currentColor;stroke:none}.wbSelectMenu [role=option] .wbSelectOptionIcon+span{flex:1}
.prop .wbSelect,.linhaCtl .wbSelect{grid-column:2/4;width:100%}
/* Barra do Sistema: modo e filtros são grupos estáveis, sem quebra de um campo isolado. */
.canvasBarra{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:end;gap:24px;padding:20px 24px;min-height:100px}
.canvasFiltros{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;min-width:0}
.canvasBarra .grupoB{display:flex;flex-direction:column;align-items:stretch;gap:8px;min-width:0}
.canvasBarra .grupoB{flex-direction:row;align-items:center;gap:0;height:36px;max-width:100%;padding:0 5px 0 10px;border:1px solid var(--wb-line-2);border-radius:999px}
.canvasBarra .grupoB .rotulo{flex:none;font-size:11px;line-height:16px;color:var(--wb-soft)}.canvasBarra .grupoB .selB{height:32px;min-width:0;padding:0 8px;border:0;border-radius:999px;font-size:12px}
.canvasBarra .grupoB .wbSelect{width:auto;min-width:0;flex:1}.canvasBarra .grupoB .wbSelectTrigger{height:32px;padding:0 8px;border:0;font-size:12px}
.canvasFiltros .temaCompacto{max-width:170px}.canvasFiltros .temaCompacto .wbSelect{flex:none}
.canvasBarra .rotulo,.flowFilters label{font:400 12px/16px var(--wb-sans);color:var(--wb-dim);text-transform:none;letter-spacing:0;margin:0}
.canvasBarra .wbSelect,.flowFilters .wbSelect{width:100%}.canvasBarra input{height:var(--wb-control-h);width:100%;min-width:0}
.canvasBarra .seg{height:var(--wb-control-h);padding:3px;flex-wrap:nowrap;align-self:end}
.canvasBarra .seg button{font:400 14px/20px var(--wb-sans);padding:4px var(--wb-control-pad);white-space:nowrap}.canvasBarra .seg button[aria-pressed=true]{font-weight:500}

.flowFilters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;max-width:560px;margin:28px 0}.flowFilters label{display:grid;gap:8px;min-width:0}
/* Mesma superfície e mesma linha para blocos de leitura. */
.painel,.resumoCard,.flowCard{background:transparent;border:1px solid var(--wb-line);border-radius:var(--wb-panel-radius);padding:var(--wb-section-gap)}
.flowEntrada{background:none;border:0;padding:0;margin:28px 0 32px;max-width:var(--medida-texto)}.flowEntrada>div{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.flowEntrada>div .flowBadge:first-child{color:var(--wb-text);font-weight:500}
.flowEntrada p{margin:10px 0;max-width:var(--medida-texto)}.flowEntrada small{font:400 11px/18px var(--wb-mono);color:var(--wb-dim)}
.flowBadge{display:inline;border:0;border-radius:0;background:none;padding:0;color:var(--wb-dim);font:400 12px/20px var(--wb-sans)}
.flowAcoes{gap:12px;align-items:center}.flowAcoes>.flowBadge{margin-right:auto;max-width:var(--medida-texto)}.flowDecision .flowBadge{float:none;margin-left:12px}.flowDecision p{clear:none}
.flowImport{position:relative;display:inline-flex;max-width:100%;height:var(--wb-control-h)!important;min-height:var(--wb-control-h);padding:0 var(--wb-control-pad)!important;white-space:normal;text-align:left}
.flowImport input{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}.flowImport:focus-within{outline:2px solid var(--wb-soft);outline-offset:2px}
/* Entrada e proposta não disputam a largura da mesma linha no inspetor. */
.tok,.tokCab{grid-template-columns:minmax(70px,.9fr) repeat(var(--nt),minmax(0,1fr)) 18px;gap:10px}
.tok{padding:12px 0;align-items:start}.tok .tn{padding-top:5px}.tok .tv{display:grid;grid-template-columns:22px minmax(0,1fr);gap:6px;align-items:center}
.tok .tv:not(:has(input[type=color])){grid-template-columns:minmax(0,1fr)}.tok input[type=text]{height:28px;font-size:11px;padding:4px 5px;border-radius:var(--wb-panel-radius);background:transparent}.tok input[type=color]{border-radius:var(--wb-panel-radius)}
.flowTokenInput{grid-column:1/-1;display:block;min-width:0;max-width:100%;font:400 10px/16px var(--wb-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--wb-dim)}
@media(max-width:760px){.canvasBarra{grid-template-columns:minmax(0,1fr);padding:20px 16px;gap:16px}.canvasBarra .seg{justify-self:start}.canvasFiltros{gap:12px}.flowFilters{gap:12px}.painel,.resumoCard,.flowCard{padding:20px}.flowAcoes{align-items:flex-start}.flowAcoes>.flowBadge{flex-basis:100%}.wbSelectTrigger{padding-left:12px}.flowImport{height:auto!important;min-height:36px;padding:8px 14px!important}.ferramentas{gap:6px;right:12px;bottom:12px}.ferramentas .btn{padding:0 12px;font-size:13px}}
.canvasFiltros .temaCompacto{max-width:150px}
.quadros>.quadro:not(.temaAtivo){display:none}
@media(max-width:760px){.canvasFiltros{grid-template-columns:repeat(2,minmax(0,1fr))}.canvasFiltros .temaCompacto{max-width:none}}

.pop{background:var(--wb-bg);border-color:var(--wb-line-2);border-radius:var(--wb-panel-radius);box-shadow:var(--wb-menu-shadow)}.pop .popAcao:hover,.pop .ver button:hover{background:var(--wb-menu-hover)}

.wbSelectGroup{font:400 12px/18px var(--wb-mono);color:var(--wb-dim);padding:12px 14px 6px}.wbSelectGroup:not(:first-child){border-top:1px solid var(--wb-line);margin-top:6px}

/* Mesa 3: rolagem visível só nos contêineres da bancada. */
:is(.lateral,.pagina,.paginaCorpo,.inspCorpo,.sistema,.flowBefore,.flowAfter,.navFlyout,.wbSelectMenu,.abasArea,.faixa,.entrada){scrollbar-width:thin;scrollbar-color:var(--wb-line-2) transparent}
:is(.lateral,.pagina,.paginaCorpo,.inspCorpo,.sistema,.flowBefore,.flowAfter,.navFlyout,.wbSelectMenu,.abasArea,.faixa,.entrada)::-webkit-scrollbar{display:block;width:6px;height:6px}
:is(.lateral,.pagina,.paginaCorpo,.inspCorpo,.sistema,.flowBefore,.flowAfter,.navFlyout,.wbSelectMenu,.abasArea,.faixa,.entrada)::-webkit-scrollbar-track{background:transparent}
:is(.lateral,.pagina,.paginaCorpo,.inspCorpo,.sistema,.flowBefore,.flowAfter,.navFlyout,.wbSelectMenu,.abasArea,.faixa,.entrada)::-webkit-scrollbar-thumb{background:var(--wb-line-2);border-radius:6px}
:is(.lateral,.pagina,.paginaCorpo,.inspCorpo,.sistema,.flowBefore,.flowAfter,.navFlyout,.wbSelectMenu,.abasArea,.faixa,.entrada):is(:hover,:focus-within){scrollbar-color:var(--wb-soft) transparent}
:is(.lateral,.pagina,.paginaCorpo,.inspCorpo,.sistema,.flowBefore,.flowAfter,.navFlyout,.wbSelectMenu,.abasArea,.faixa,.entrada):is(:hover,:focus-within)::-webkit-scrollbar-thumb{background:var(--wb-soft)}

@supports selector(::-webkit-scrollbar){:is(.lateral,.pagina,.paginaCorpo,.inspCorpo,.sistema,.flowBefore,.flowAfter,.navFlyout,.wbSelectMenu,.abasArea,.faixa,.entrada),:is(.lateral,.pagina,.paginaCorpo,.inspCorpo,.sistema,.flowBefore,.flowAfter,.navFlyout,.wbSelectMenu,.abasArea,.faixa,.entrada):is(:hover,:focus-within){scrollbar-width:auto;scrollbar-color:auto}}

.previaResize{position:absolute;top:calc(50% - 24px);width:14px;height:48px;z-index:5;cursor:ew-resize;touch-action:none;border-radius:7px;background:var(--wb-bg);border:1px solid var(--wb-line-2);color:var(--wb-soft)}
.previaResize::after{content:'';position:absolute;left:5px;top:12px;width:2px;height:22px;background:currentColor;border-radius:2px}
.previaResize:hover,.previaResize:focus-visible{color:var(--wb-text);border-color:var(--wb-text)}
.previaResize:focus-visible{outline:2px solid var(--wb-text);outline-offset:2px}
