/* Partner workbench v2. Additive visual contract: docs/design/partner-workbench-v2.md.
   Existing domain surfaces inherit these primitives; their routes and evidence remain intact. */
:root {
  --tinta: #202e35;
  --tinta-2: #52616a;
  --papel: #f3f6f7;
  --filete: #dce3e6;
  --verde: #11694f;
  --verde-escuro: #0c4f3c;
  --selo: #eaf3ef;
  --sombra: none;
  --raio: 8px;
  --conteudo: 80rem;
  --tabela-larga: 90rem;
  --navegacao-fundo: #172d34;
  --navegacao-texto: #d2e0e4;
  --rascunho: #225db0;
}
body { font-size: 15px; }
::selection { background: #c6e7db; color: var(--tinta); }
input, textarea { caret-color: var(--verde); }
a { text-underline-offset: 3px; }
h1 { font-size: 28px; letter-spacing: -.025em; }
h2 { font-size: 20px; }
label { font-size: 13px; letter-spacing: 0; }
input, select, textarea { font-size: 15px; min-height: 42px; }
input[type="checkbox"], input[type="radio"] {
  width: 18px; height: 18px; min-height: 18px; flex: 0 0 18px;
  padding: 0; margin: 0; accent-color: var(--verde);
}
button, .botao { min-height: 40px; font-size: 14px; }
.pular-conteudo { position: fixed; left: 16px; top: -100px; z-index: 100; background: white; padding: 12px; }
.pular-conteudo:focus { top: 12px; }
.casca { grid-template-columns: 224px minmax(0, 1fr); }
.lateral { background: var(--navegacao-fundo); border: 0; padding: 28px 16px; overflow-y: auto; }
.marca { text-transform: none; font-size: 25px; margin: 0 12px 24px; letter-spacing: -.035em; }
.navegacao { gap: 2px; }
.navegacao-grupo { color: #a6bdc5; font-size: 12px; font-weight: 600; padding: 20px 12px 6px; }
.navegacao-grupo:first-child { padding-top: 0; }
.navegacao a { color: var(--navegacao-texto); font-size: 14px; min-height: 38px; padding: 9px 12px; }
.navegacao a[aria-current="page"] { background: #31505a; color: white; }
.navegacao a[href="/conta"] { margin-top: 0; padding-top: 9px; border: 0; }
.navegacao a[aria-current="page"] .contador { color: var(--verde-escuro); }
.navegacao a:focus-visible, .marca:focus-visible { outline-color: white; }
.topo { min-height: 72px; padding: 12px 28px; grid-template-columns: minmax(220px, 400px) 1fr auto; }
.busca-global input { background: var(--papel); height: 46px; padding: 20px 12px 5px; }
.busca-global label { font-size: 11px; color: var(--tinta-2); top: 3px; }
.quem strong { font-size: 14px; }
.quem span { font-size: 12px; }
.trilha { padding: 16px 28px; border: 0; font-size: 13px; }
.area-de-trabalho > main { padding: 4px 28px 32px; }
.prancha, .painel { padding: 22px; border-radius: 12px; box-shadow: none; }
.carimbo, .painel > h2:first-child { border-top: 0; padding: 0; margin: 0 0 18px; text-transform: none; letter-spacing: 0; }
.carimbo h1, .carimbo h2, .carimbo h3 { font: 600 18px/1.3 var(--display); color: var(--tinta); }
.carimbo > :last-child { font: 400 12px/1.5 var(--texto); }
.selo, .incidencia { font-size: 11px; letter-spacing: 0; text-transform: none; }
.tabela th { font: 500 12px/1.4 var(--texto); text-transform: none; letter-spacing: 0; border-color: var(--filete); padding: 12px; }
.tabela td { padding: 14px 12px; }
.tabela tbody tr:hover { background: var(--papel); }
.subdado { font-size: 12px; }
.procedencia { font: 400 12px/1.5 var(--texto); }
.vazio { background: none; background-image: none; min-height: 0; padding: 0; }
.vazio p { margin-bottom: 8px; }
.vazio .botao { padding: 0; min-height: 28px; border: 0; background: none; text-decoration: underline; color: var(--verde); }
.cabecalho-de-trabalho, .cabecalho-do-mapa { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 22px; }
.cabecalho-de-trabalho h1, .cabecalho-do-mapa h1 { margin: 0 0 6px; }
.cabecalho-de-trabalho p, .cabecalho-do-mapa p { color: var(--tinta-2); margin: 0; }
.resumo-de-trabalho { display: flex; flex-wrap: wrap; gap: 12px 24px; border-bottom: 1px solid var(--filete); padding: 0 0 20px; margin-bottom: 24px; }
.resumo-de-trabalho a { font-size: 14px; color: var(--tinta-2); }
.inicio { max-width: 1440px; }
.inicio .prancha { margin-bottom: 22px; }
.entradas-de-area { display: block; margin-top: 0; }
.entrada-de-area { border-top: 1px solid var(--filete); border-radius: 0; padding: 16px 0; }
.entrada-de-area:first-child { border-top: 0; }
.entrada-de-area summary { font-size: 16px; }
.entrada-de-area .formulario-de-area { border-top: 0; max-width: 660px; padding: 22px 0 4px; }
.entrada-de-area .formulario-de-area header { min-height: 0; margin-bottom: 16px; }
.mapa-interativo { max-width: none; }
.cabecalho-do-mapa { margin-bottom: 8px; }
.cabecalho-do-mapa h1 { font-size: 23px; }
.cabecalho-do-mapa .contexto { font-size: 12px; }
.estado-do-mapa { min-height: 24px; font-size: 13px; color: var(--tinta-2); margin: 0 0 12px; }
.mapa-grade { grid-template-columns: minmax(0, 1fr) 320px; gap: 0; border: 1px solid var(--filete); border-radius: 12px; overflow: hidden; background: white; }
.mapa-palco { border: 0; border-radius: 0; padding: 0; display: flex; flex-direction: column; }
.mapa-controles-de-camada { margin: 0; min-height: 52px; padding: 12px 16px; gap: 12px 18px; align-items: center; border-bottom: 1px solid var(--filete); }
.mapa-controles-de-camada label { margin: 0; font-size: 12px; line-height: 1.3; white-space: nowrap; }
.mapa-quadro { border: 0; min-height: 440px; height: calc(100dvh - 310px); background: #e9efee; }
.mapa-quadro > svg { width: 100%; height: 100%; min-height: 0; cursor: grab; }
.mapa-quadro > svg:active { cursor: grabbing; }
.mapa-quadro--desenhando > svg { cursor: crosshair; }
.mapa-quadro > svg:focus-visible { outline: 2px solid var(--verde); outline-offset: -3px; }
.mapa-ferramentas { flex-direction: column; top: 18px; left: 16px; gap: 6px; }
.mapa-ferramentas button { min-height: 38px; min-width: 38px; font-size: 14px; padding: 8px; box-shadow: 0 3px 10px rgba(23,45,52,.12); border: 0; border-radius: 6px; }
.mapa-sem-base { max-width: calc(100% - 24px); bottom: 12px; right: 12px; font: 400 11px/1.5 var(--texto); padding: 6px 9px; border-radius: 4px; }
.mapa-norte { top: 20px; right: 20px; font-size: 14px; }
.fonte-do-mapa { margin: 0; border: 0; padding: 10px 16px; font-size: 11px; }
.mapa-painel { border: 0; border-left: 1px solid var(--filete); border-radius: 0; padding: 0; height: calc(100dvh - 208px); min-height: 542px; overflow: auto; }
.inspector-secao { padding: 18px; border-radius: 0; border-bottom: 1px solid var(--filete); }
.inspector-secao > summary { color: var(--tinta); font-size: 14px; }
.inspector-secao > summary span { font-size: 12px; color: var(--tinta-2); font-weight: 400; }
.inspector-secao[open] > summary { margin-bottom: 16px; }
.inspector-secao p { font-size: 13px; }
.inspector-secao label { font-size: 12px; }
.mapa-desenho { border: 0; padding: 0; margin: 0; }
.mapa-desenho .carimbo h2 { font-size: 14px; }
.mapa-desenho .carimbo { margin: 0 0 8px; }
.mapa-desenho > .botao { width: 100%; }
.mapa-desenho [aria-pressed="true"] { background: var(--rascunho); border-color: var(--rascunho); }
.controles-espaciais { margin: 16px 0; }
.controles-espaciais .linha-de-campos { grid-template-columns: 1fr; gap: 4px; }
.controle-enlinha { display: flex; align-items: start; gap: 8px; }
.acoes-do-rascunho { gap: 8px; }
.processos-fixados small { font: 400 11px/1.5 var(--texto); }
.mapa-interativo > .prancha { margin-top: 22px; }
.mapa-interativo[aria-busy="true"] .mapa-grade { opacity: .7; }
.mapa-interativo[aria-busy="true"] .mapa-quadro svg { cursor: progress; }
.mapa-interativo .aviso { max-width: none; }
@media (max-width: 1100px) {
  .casca { grid-template-columns: 192px minmax(0, 1fr); }
  .lateral { padding-inline: 10px; }
  .area-de-trabalho > main { padding-inline: 20px; }
  .mapa-grade { grid-template-columns: minmax(0, 1fr) 280px; }
  .topo { padding-inline: 20px; }
}
@media (max-width: 900px) {
  .mapa-grade { grid-template-columns: minmax(0, 1fr); }
  .mapa-painel { height: auto; min-height: 0; overflow: visible; border-left: 0; border-top: 1px solid var(--filete); }
  .mapa-quadro { height: 52dvh; min-height: 360px; }
}
@media (max-width: 720px) {
  .casca { display: block; }
  .lateral { height: auto; padding: 12px 16px; position: relative; overflow: visible; }
  .marca { display: inline-block; margin: 0; font-size: 23px; }
  .menu { display: block; }
  .menu > summary { position: absolute; right: 20px; top: 17px; color: white; }
  .menu .navegacao { padding-top: 24px; }
  .navegacao--desktop { display: none; }
  .topo { min-height: 0; grid-template-columns: 1fr auto; gap: 8px; padding: 12px 16px; }
  .busca-global { grid-column: 1 / -1; }
  .quem { justify-self: start; text-align: left; }
  .quem span { font-size: 11px; }
  .trilha { padding: 12px 16px; }
  .area-de-trabalho > main { padding: 4px 16px 24px; }
  .cabecalho-de-trabalho, .cabecalho-do-mapa { align-items: start; flex-direction: column; gap: 12px; }
  h1 { font-size: 26px; }
  .resumo-de-trabalho { gap: 8px 16px; padding-bottom: 16px; margin-bottom: 16px; }
  .prancha, .painel { padding: 16px; }
  .carimbo { gap: 8px; }
  .carimbo h2 { font-size: 17px; }
  .mapa-palco, .mapa-painel { padding: 0; }
  .mapa-controles-de-camada { gap: 12px; }
  .mapa-quadro { min-height: 350px; }
  .mapa-sem-base { font-size: 10px; }
  .vertices-do-rascunho .tabela { min-width: 0; }
  .vertices-do-rascunho .tabela thead {
    position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%);
  }
  .vertices-do-rascunho .tabela tbody,
  .vertices-do-rascunho .tabela tr,
  .vertices-do-rascunho .tabela td,
  .vertices-do-rascunho .tabela tbody th { display: block; width: 100%; min-width: 0; }
  .vertices-do-rascunho .tabela tr { border-bottom: 1px solid var(--filete); padding-bottom: 12px; }
  .vertices-do-rascunho .tabela td { border: 0; padding: 8px 0; }
  .vertices-do-rascunho .tabela tbody th { padding: 14px 0 0; border: 0; }
  .vertices-do-rascunho .form-mover-vertice { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .vertices-do-rascunho .form-mover-vertice input { width: 100%; min-width: 0; }
  .vertices-do-rascunho .form-mover-vertice label { min-width: 0; }
}
@media (prefers-reduced-motion: no-preference) {
  .mapa-interativo .mapa-grade { transition: opacity 160ms ease-out; }
}
@media print {
  .pular-conteudo, .lateral, .topo, .mapa-painel { display: none; }
  .mapa-grade { display: block; }
  .mapa-quadro { height: 500px; }
}
