/* Business blueprint builder (#/bbp) */
.bbp .bbp-cabecalho { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-bottom: 8px; }
.bbp .bbp-cabecalho h1 { margin: 0; }
.bbp .bbp-voltar { font-size: var(--fs-6); }
.bbp .bbp-meta { color: var(--color-muted); font-size: var(--fs-5); }
.bbp .bbp-vazio { color: var(--color-muted); font-style: italic; }
.bbp .bbp-barra { margin: 12px 0; }
.bbp .bbp-pesquisa { width: 100%; max-width: 420px; border: 1px solid var(--color-border); border-radius: 8px; padding: 6px 10px; font-size: var(--fs-6); background: var(--color-surface); color: var(--color-fg); }
.bbp .bbp-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; align-items: stretch; }
.bbp .bbp-cartao { display: flex; flex-direction: column; gap: 6px; border: 1px solid var(--color-border); border-radius: 10px; padding: 12px; background: var(--color-surface); text-decoration: none; color: var(--color-fg); min-height: 6.5rem; box-sizing: border-box; overflow: hidden; }
.bbp .bbp-nome { font-weight: 600; font-size: var(--fs-7); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bbp .bbp-etiquetas { display: flex; gap: 6px; flex-wrap: wrap; margin-top: auto; }
.bbp .bbp-etiqueta { display: inline-block; font-size: var(--fs-4); padding: 1px 7px; border: 1px solid var(--color-border); border-radius: 999px; color: var(--color-muted); }
.bbp .bbp-filtro { margin-top: 6px; }
.bbp .bbp-estado-vazio { grid-column: 1 / -1; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.bbp .bbp-cartao:hover, .bbp .bbp-cartao:focus-visible { border-color: var(--color-accent); }
.bbp .bbp-adicionar { display: flex; gap: 8px; margin: 12px 0; }
.bbp .bbp-aviso { border-left: 3px solid var(--color-accent); padding: 6px 10px; margin: 8px 0; font-size: var(--fs-6); }
.bbp .bbp-aviso-erro { border-left-color: var(--color-danger, #c0392b); }
.bbp .bbp-grelha { width: 100%; border-collapse: collapse; font-size: var(--fs-6); margin-top: 12px; }
.bbp .bbp-grelha th, .bbp .bbp-grelha td { text-align: left; padding: 6px 8px; border-bottom: 1px solid var(--color-border); vertical-align: middle; }
.bbp .bbp-grelha thead th { color: var(--color-muted); font-weight: 500; }
.bbp .bbp-grelha .bbp-num { text-align: right; font-variant-numeric: tabular-nums; }
.bbp .bbp-retirada { opacity: .55; }
.bbp .bbp-resumo { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 20px; }
.bbp .bbp-badge { display: inline-block; font-size: var(--fs-4); padding: 1px 7px; border: 1px solid var(--color-border); border-radius: 999px; }
.bbp .bbp-badge-confirmed, .bbp .bbp-badge-signed { border-color: var(--color-accent); color: var(--color-accent); }
.bbp .bbp-badge-to_confirm { border-style: dashed; }
.bbp .bbp-badge-rejected, .bbp .bbp-badge-not_applicable { color: var(--color-muted); }
.bbp .bbp-faixa { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; padding: 8px 0; border-bottom: 1px solid var(--color-border); }
.bbp .bbp-tres-colunas { display: grid; grid-template-columns: 200px minmax(0, 1fr) 260px; gap: 20px; align-items: start; margin-top: 12px; }
.bbp .bbp-indice, .bbp .bbp-registo { position: sticky; top: 8px; font-size: var(--fs-6); }
.bbp .bbp-indice ol { padding-left: 18px; margin: 4px 0; }
.bbp .bbp-seccao { margin-bottom: 20px; }
.bbp .bbp-itens { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.bbp .bbp-item { border: 1px solid var(--color-border); border-radius: 8px; padding: 8px 10px; }
.bbp .bbp-item-confirmed { border-left: 3px solid var(--color-accent); }
.bbp .bbp-item-rejected { opacity: .65; }
.bbp .bbp-item-topo { display: flex; gap: 8px; align-items: center; }
.bbp .bbp-tipo { font-size: var(--fs-5); color: var(--color-muted); }
.bbp .bbp-texto { margin: 6px 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.bbp .bbp-accoes { display: flex; gap: 6px; flex-wrap: wrap; }
.bbp .bbp-novo-item { display: flex; gap: 8px; flex-wrap: wrap; align-items: flex-start; margin-top: 12px; }
.bbp .bbp-novo-item textarea { flex: 1 1 280px; }
.bbp .bbp-conjunto { margin: 16px 0; }
.bbp .bbp-conjunto textarea { width: 100%; }
.bbp .bbp-rascunho { border-left: 3px dashed var(--color-accent); padding-left: 10px; }
@media (max-width: 900px) {
  .bbp .bbp-tres-colunas, .bbp .bbp-resumo { grid-template-columns: 1fr; }
  .bbp .bbp-indice, .bbp .bbp-registo { position: static; }
}
.bbp .bbp-dialogo { width: min(30rem, 94vw); max-height: 88vh; overflow: auto; box-sizing: border-box; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-surface); color: var(--color-fg); padding: var(--spacing-md); }
.bbp .bbp-dialogo::backdrop { background: color-mix(in srgb, var(--color-bg) 70%, transparent); }
.bbp .bbp-dialogo h2 { margin: 0 0 var(--spacing-sm); font-size: var(--fs-h3); }
.bbp .bbp-dialogo label { display: block; margin: 8px 0; }
.bbp .bbp-dialogo .form-group { margin: 0 0 var(--spacing-sm); padding: 0; border: 0; min-width: 0; }
.bbp .bbp-dialogo .form-group label { margin: 0 0 4px; }
.bbp .bbp-dialogo legend { padding: 0; margin-bottom: 4px; font-weight: 500; }
.bbp .bbp-dialogo select, .bbp .bbp-dialogo input[type="text"] { display: block; width: 100%; box-sizing: border-box; border: 1px solid var(--color-border); border-radius: 8px; padding: 6px 10px; font-size: var(--fs-6); background: var(--color-surface); color: var(--color-fg); }
.bbp .bbp-dialogo input:disabled { opacity: .5; }
.bbp .bbp-linha-check { display: flex; align-items: center; gap: 8px; margin: 0 0 var(--spacing-sm); }
.bbp .bbp-dialogo .bbp-linha-check label { margin: 0; }
.bbp .bbp-areas-lista { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 12px; max-height: 12rem; overflow: auto; }
.bbp .bbp-dialogo .bbp-area-opcao { display: flex; align-items: baseline; gap: 6px; margin: 0; font-size: var(--fs-6); }
.bbp .bbp-area-codigo { font-family: var(--font-mono); font-size: var(--fs-5); }
.bbp .bbp-area-nome { color: var(--color-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.bbp .bbp-dialogo-erro { color: var(--color-danger-fg); margin: 0 0 var(--spacing-sm); }
.bbp .bbp-dialogo-rodape { display: flex; gap: var(--spacing-sm); justify-content: flex-end; flex-wrap: wrap; margin-top: var(--spacing-sm); }
@media (max-width: 640px) { .bbp .bbp-areas-lista { grid-template-columns: 1fr; } .bbp .bbp-dialogo { width: 100vw; max-width: 100vw; max-height: 100vh; border-radius: 0; } }
.bbp .bbp-dialogo input[type="checkbox"] { width: auto; flex: none; margin: 0; }
