/* Painel de gestão — o que é só do painel, por cima de mudai-ui/css/mudai.css (componentes mu-*).
   Regras: toda cor via var(--…) de tokens.css (funciona nos temas claro e escuro); classes novas com
   prefixo pn-. Antes de criar algo aqui, procure o componente em docs/handoff/mudai-ui/componentes. */
html, body { margin: 0; min-height: 100%; }
[hidden] { display: none !important; }
button, select, input, textarea { font: inherit; }

/* ---------- Moldura ---------- */
/* Sidebar da altura da tela: só a lista de itens rola; marca, viveiro e rodapé (pessoa + Sair) ficam
   sempre à vista. A margem negativa leva a área de rolagem até a borda (a barra do item ativo não é cortada). */
.mu-side { position: sticky; top: 0; height: 100vh; overflow: hidden; }
.mu-side .mu-nav { flex: 1; min-height: 0; overflow-y: auto; margin: 0 -12px; padding: 0 12px; scrollbar-width: thin; scrollbar-color: var(--forest-raised) transparent; }
.mu-side__brand a { display: block; width: 100%; border-radius: var(--radius-md); }
.mu-side__brand .mu-logo { width: 100%; height: auto; border-radius: var(--radius-md); }
.mu-brandpanel__logo.mu-only-light { mix-blend-mode: multiply; }
.mu-brandpanel__logo.mu-only-dark { width: min(440px, 84%); border-radius: var(--radius-lg); }
.pn-nav-secao { display: flex; flex-direction: column; gap: 2px; }
/* Troca de página sem piscar (Chrome/Edge): a página antiga fica na tela até a nova estar pronta e
   a sidebar troca sem animação, parada; o conteúdo só faz um fade curto. Outros navegadores ignoram. */
@view-transition { navigation: auto; }
.mu-side { view-transition-name: menu; }
::view-transition-group(menu), ::view-transition-old(menu), ::view-transition-new(menu) { animation: none; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: 120ms; }
/* Item ativo do menu: fundo dourado suave + barra dourada à esquerda (destaque maior que o do pacote) */
.mu-nav__item { position: relative; }
.mu-nav__item.is-active { background: color-mix(in srgb, var(--gold) 20%, var(--forest-raised)); color: var(--on-forest); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--gold) 45%, transparent); }
.mu-nav__item.is-active::before { content: ""; position: absolute; left: -12px; top: 6px; bottom: 6px; width: 4px; border-radius: 0 var(--radius-pill) var(--radius-pill) 0; background: var(--gold); }
.mu-nav__item.is-active .mu-nav__count { color: var(--on-forest); }
.mu-side__who { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mu-side__who span { overflow: hidden; text-overflow: ellipsis; }
/* Rodapé do menu: a pessoa é o atalho para Meu cadastro */
.pn-eu { flex: 1; min-width: 0; display: flex; align-items: center; gap: 10px; margin: -4px 0 -4px -4px; padding: 4px; border-radius: var(--radius-md); color: inherit; text-decoration: none; }
.pn-eu:hover, .pn-eu.is-active { background: var(--forest-raised); }
.pn-eu.is-active { box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--gold) 45%, transparent); }
.pn-eu__icone { margin-left: auto; flex: none; display: grid; place-items: center; color: var(--on-forest-muted); }
.pn-eu__icone svg.lucide { width: 16px; height: 16px; }
.pn-eu:hover .pn-eu__icone { color: var(--on-forest); }
.pn-sair { margin-left: auto; width: 36px; height: 36px; flex: none; display: grid; place-items: center; border: 0; border-radius: var(--radius-md); background: none; color: var(--on-forest-muted); cursor: pointer; }
.pn-sair:hover { background: var(--forest-raised); color: var(--on-forest); }

/* Seletor de viveiro: menu que abre sob o cartão do cliente */
.pn-tenant { position: relative; }
.mu-tenant[aria-disabled="true"] { cursor: default; }
.mu-tenant[aria-disabled="true"] svg.lucide { display: none; }
.pn-menu { position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 60; display: flex; flex-direction: column; gap: 2px; padding: 6px; background: var(--bg-000); color: var(--ink); border: 1px solid var(--line); border-radius: var(--radius-md); box-shadow: var(--shadow-pop); }
.pn-menu button { display: flex; align-items: center; gap: 10px; padding: 6px 8px; border: 0; border-radius: var(--radius-sm); background: none; color: inherit; text-align: left; cursor: pointer; font-weight: 600; font-size: 13px; }
.pn-menu button:hover, .pn-menu button.is-active { background: var(--leaf-soft); color: var(--leaf-ink); }
.pn-menu .mu-tenant__mark { width: 28px; height: 28px; font-size: 10px; }
/* Logo do viveiro no lugar da sigla: fundo claro nos dois temas (logos costumam ter fundo branco) */
.mu-tenant__mark.pn-marca-logo { background: var(--on-forest); box-shadow: none; padding: 2px; overflow: hidden; }
.mu-tenant__mark.pn-marca-logo img { width: 100%; height: 100%; object-fit: contain; display: block; }

.mu-top { position: sticky; top: 0; z-index: 40; }
.mu-crumbs svg.lucide { width: 14px; height: 14px; }
a.mu-iconbtn { text-decoration: none; }

/* ---------- Estados e avisos ---------- */
.pn-vazio { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 48px 20px; text-align: center; color: var(--ink-muted); }
.pn-vazio svg.lucide { width: 28px; height: 28px; color: var(--ink-faint); }
.mu-notice.is-danger { background: var(--danger-soft); color: var(--danger); }
.mu-notice svg.lucide { flex: none; }
.pn-toast { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 100; max-width: min(520px, calc(100vw - 32px)); padding: 12px 18px; border-radius: var(--radius-md); background: var(--forest); color: var(--on-forest); box-shadow: var(--shadow-pop); font-weight: 600; font-size: 13px; }

/* ---------- Listas e tabelas ---------- */
.pn-tabela { overflow-x: auto; }
.mu-table tbody tr[data-id] { cursor: pointer; }
.mu-table .mu-cell-lote a:hover { color: var(--leaf-ink); }
.pn-dias { font-family: var(--font-mono); font-size: 12px; color: var(--ink-muted); white-space: nowrap; }
.pn-mais { padding: 10px 20px 14px; font-size: 13px; color: var(--ink-muted); }
.mu-list > li.pn-linha-link { cursor: pointer; }
.mu-list > li.pn-linha-link:hover { background: var(--bg-100); }

/* Linhas rótulo → valor (aba Identificação) */
.pn-kv { display: grid; grid-template-columns: 240px 1fr; margin: 0; }
.pn-kv dt, .pn-kv dd { margin: 0; padding: 10px 0; border-bottom: 1px solid var(--line); }
.pn-kv dt { color: var(--ink-muted); }
.pn-kv em { font-family: var(--font-serif); font-size: 16px; color: var(--ink-muted); }
.pn-texto { margin: 0; line-height: 1.6; max-width: 72ch; }

/* ---------- D-02 · Mapa do viveiro ---------- */
.pn-mapa-controles { display: flex; gap: 24px; align-items: center; flex-wrap: wrap; padding: 14px 20px; }
.pn-controle { display: flex; align-items: center; gap: 10px; }
.pn-controle .mu-seg { width: auto; }
.pn-controle .mu-seg button { height: 32px; padding: 0 12px; cursor: pointer; font-size: 13px; }
.pn-select { height: 34px; padding: 0 10px; border-radius: var(--radius-md); border: 1px solid var(--line-strong); background: var(--bg-000); color: var(--ink); font-size: 13px; }
.pn-controle input[type="range"] { accent-color: var(--leaf); }
.pn-proj { min-width: 64px; font-family: var(--font-mono); font-size: 12px; font-weight: 600; }
.mapa-layout { display: flex; gap: 20px; align-items: flex-start; }
.mapa-layout .grade-wrap { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 24px; }
.mapa-layout .painel-setor { width: 340px; flex: none; position: sticky; top: 88px; }
.setor-titulo { display: flex; align-items: baseline; gap: 12px; margin-bottom: 10px; }
.setor-titulo h2 { margin: 0; font-size: 16px; line-height: 22px; font-weight: 700; }
.setor-titulo .metodo { font-size: 13px; color: var(--ink-muted); }
.setor-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(116px, 1fr)); gap: 10px; }
.setor-tile { background: var(--bg-000); border: 1px solid var(--line); border-radius: var(--radius-md); padding: 10px; cursor: pointer; display: flex; flex-direction: column; gap: 8px; min-height: 84px; color: var(--ink); }
.setor-tile:hover { border-color: var(--line-strong); }
.setor-tile.selecionado { outline: 2px solid var(--leaf); outline-offset: -2px; }
.setor-tile.cheio { border-color: var(--danger); }
.setor-tile.atencao-t { border-color: var(--warn); }
.setor-tile.apagado { opacity: .3; }
.setor-tile.apoio { background: var(--bg-200); align-items: center; justify-content: center; text-align: center; color: var(--ink-muted); cursor: default; font-size: 12px; }
.setor-tile .cod { font-family: var(--font-mono); font-size: 12px; font-weight: 600; }
.setor-tile .oc { font-size: 12px; color: var(--ink-muted); }
.setor-tile.cheio .oc { color: var(--danger); font-weight: 600; }
.setor-tile.atencao-t .oc { color: var(--warn); font-weight: 600; }
.mini-barra { height: 8px; border-radius: var(--radius-pill); overflow: hidden; display: flex; gap: 1px; background: var(--bg-200); }
.mini-barra .seg { height: 100%; }
.setor-tile.vazio .mini-barra { background: repeating-linear-gradient(45deg, var(--line) 0 5px, var(--bg-000) 5px 10px); }
.setor-tile.quarentena-t .mini-barra { background: repeating-linear-gradient(45deg, var(--danger) 0 5px, var(--danger-soft) 5px 10px) !important; }
.setor-tile.quarentena-t .mini-barra .seg { display: none; }
.pn-setor-titulo { margin: 0; font-size: 20px; line-height: 26px; font-weight: 700; }
.lote-no-setor { display: block; padding: 10px 12px; margin-bottom: 8px; border: 1px solid var(--line); border-radius: var(--radius-md); color: inherit; text-decoration: none; }
.lote-no-setor:hover { border-color: var(--leaf); }
.lote-no-setor .pn-linha1 { display: flex; justify-content: space-between; font-family: var(--font-mono); font-size: 12px; color: var(--ink-muted); }
.lote-no-setor .pn-linha2 { font-weight: 600; margin-top: 2px; }
.lote-no-setor .pn-linha3 { display: flex; align-items: center; gap: 6px; margin-top: 2px; font-size: 12px; color: var(--ink-muted); }
.pn-bolinha { width: 8px; height: 8px; border-radius: 50%; flex: none; box-shadow: 0 0 0 1px var(--line-strong); }
.pn-faixa { padding: 6px 0; border-bottom: 1px solid var(--line); font-family: var(--font-mono); font-size: 12px; }
.pn-hist { padding: 4px 0; font-size: 12px; color: var(--ink-muted); }

/* ---------- Modal central (detalhe e formulário das listas; painel.js › abrirLateral/abrirModal) ----------
   Largura pelo conteúdo (data-tamanho, calculado no JS); altura até 88% da tela, o corpo rola. */
.pn-modal-fundo { position: fixed; inset: 0; z-index: 80; display: flex; align-items: center; justify-content: center; padding: 24px; background: var(--scrim); opacity: 0; pointer-events: none; transition: opacity .16s; }
.pn-modal-fundo.aberto { opacity: 1; pointer-events: auto; }
.pn-modal { --pn-modal-w: 480px; width: min(var(--pn-modal-w), 100%); max-height: min(88vh, 980px); display: flex; flex-direction: column; background: var(--bg-000); color: var(--ink); border: 1px solid var(--line); border-radius: var(--radius-xl); box-shadow: var(--shadow-pop); transform: translateY(10px) scale(.985); transition: transform .18s ease, width .2s ease; outline: none; }
.pn-modal-fundo.aberto .pn-modal { transform: none; }
.pn-modal[data-tamanho="md"] { --pn-modal-w: 640px; }
.pn-modal[data-tamanho="lg"] { --pn-modal-w: 880px; }
.pn-modal[data-tamanho="xl"] { --pn-modal-w: 1120px; }
.pn-modal.is-tremer { animation: pn-tremer .32s ease; }
@keyframes pn-tremer { 0%, 100% { translate: 0; } 25% { translate: -6px; } 75% { translate: 6px; } }
html.pn-modal-aberto { overflow: hidden; }
.pl-cabecalho { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding: 20px 24px 16px; border-bottom: 1px solid var(--line); flex: none; }
.pl-corpo { padding: 20px 24px 24px; overflow-y: auto; flex: 1; min-height: 0; }
/* com espaço: ações lado a lado, alinhadas à direita; tabelas largas rolam dentro do modal */
.pn-modal:not([data-tamanho="sm"]) .pn-acoes-pl { flex-direction: row; flex-wrap: wrap; justify-content: flex-end; }
.pn-modal:not([data-tamanho="sm"]) .pn-acoes-pl .mu-btn--block { width: auto; }
.pl-corpo .mu-table { min-width: 100%; }
@media (max-width: 700px) {
  .pn-modal-fundo { padding: 0; align-items: flex-end; }
  .pn-modal { width: 100%; max-height: 92vh; border-radius: var(--radius-xl) var(--radius-xl) 0 0; }
}
@media (prefers-reduced-motion: reduce) {
  .pn-modal-fundo, .pn-modal { transition: none; }
  .pn-modal.is-tremer { animation: none; }
}

.pn-pl-titulo { margin: 2px 0 6px; font-size: 20px; line-height: 26px; font-weight: 700; }
.pn-pl-secao { display: flex; flex-direction: column; gap: 8px; margin-bottom: 18px; }
.pn-lista-simples { list-style: none; margin: 0; padding: 0; }
.pn-lista-simples li { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--line); font-size: 13px; }
.pn-lista-simples li > span:last-child { color: var(--ink-muted); text-align: right; }
.pn-lista-simples a { color: var(--leaf-ink); text-decoration: none; font-weight: 600; white-space: nowrap; }
.pn-lista-simples li > span:last-child { min-width: 0; }
.pn-etapas { margin: 0; padding-left: 20px; line-height: 1.6; }
.pn-etapas li + li { margin-top: 4px; }
.pn-nota { margin: 0; font-size: 13px; color: var(--ink-muted); line-height: 1.5; }
.pn-muted { color: var(--ink-muted); }
.pn-erro-pl { min-height: 18px; color: var(--danger); font-size: 13px; font-weight: 600; margin: 8px 0; }
.pn-acoes-pl { display: flex; flex-direction: column; gap: 8px; }
.pn-pergunta { margin: 12px 0 0; font-size: 16px; }
.pn-escolhas { display: grid; gap: 8px; }
.pn-opcao { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 12px 14px; border: 1px solid var(--line-strong); border-radius: var(--radius-md); background: var(--bg-000); color: var(--ink); text-align: left; cursor: pointer; }
.pn-opcao span { font-size: 13px; color: var(--ink-muted); }
.pn-opcao:hover { border-color: var(--leaf); }
.pn-opcao.is-selected { border-color: var(--leaf); box-shadow: 0 0 0 3px var(--leaf-soft); }
.pn-input-num { width: 120px; height: 40px; padding: 0 12px; border: 1px solid var(--line-strong); border-radius: var(--radius-md); background: var(--bg-000); color: var(--ink); }

/* ---------- D-05 · abas da ficha ---------- */
.pn-chip-sm { height: 30px; }
.pn-sub { font-size: 12px; color: var(--ink-muted); margin-top: 2px; }
.pn-acoes-linha { display: flex; gap: 8px; flex-wrap: wrap; }
.mu-list > li.pn-linha-doc { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; }
.pn-linha-doc div { display: flex; flex-direction: column; }
.pn-linha-doc span, .pn-linha-doc time { font-size: 13px; color: var(--ink-muted); }
.pn-kpi-destaque { background: var(--forest); border-color: var(--forest); }
.pn-kpi-destaque .mu-eyebrow, .pn-kpi-destaque .mu-kpi__sub { color: var(--on-forest-muted); }
.pn-kpi-destaque .mu-kpi__value { color: var(--on-forest); }
.pn-empilhada { display: flex; height: 28px; border-radius: var(--radius-sm); overflow: hidden; gap: 2px; background: var(--bg-200); }
.pn-empilhada > div { display: flex; align-items: center; justify-content: center; min-width: 0; overflow: hidden; }
.pn-empilhada span { font-size: 12px; font-weight: 600; color: var(--paper); white-space: nowrap; padding: 0 6px; }
.pn-legenda { display: flex; gap: 16px; flex-wrap: wrap; margin: 8px 0 16px; font-size: 13px; color: var(--ink-muted); }
.pn-legenda span { display: inline-flex; align-items: center; gap: 6px; }
.pn-legenda i { width: 10px; height: 10px; border-radius: 2px; }
.pn-origens { display: flex; flex-direction: column; }
.pn-grafico { width: 100%; height: 150px; display: block; }
.pn-grafico-eixo { display: flex; justify-content: space-between; gap: 8px; margin: 6px 0 12px; font-family: var(--font-mono); font-size: 12px; color: var(--ink-muted); }
.pn-grafico-eixo b { color: var(--ink); }

/* ---------- Tarefas ---------- */
.pn-tabela-tarefas tbody tr td:first-child { border-left: 3px solid var(--line-strong); }
.pn-tabela-tarefas tbody tr.pn-sit--info td:first-child { border-left-color: var(--info); }
.pn-tabela-tarefas tbody tr.pn-sit--ok td:first-child { border-left-color: var(--leaf); }
.pn-tabela-tarefas tbody tr.pn-sit--warn td:first-child { border-left-color: var(--warn); }
.pn-tabela-tarefas .mu-cell-lote span { font-size: 12px; color: var(--ink-muted); }
.pn-atrasada { color: var(--warn); font-weight: 600; }

/* ---------- Impressos (etiquetas e relatórios levam a cor do cliente) ----------
   #imprimivel tem data-theme="light": imprime sempre com as cores do tema claro. */
.imprimivel { display: none; }
@media print {
  @page { size: A4; margin: 12mm; }
  html, body { background: none !important; }
  body * { visibility: hidden; }
  .imprimivel, .imprimivel * { visibility: visible; }
  .imprimivel { display: block; position: absolute; top: 0; left: 0; width: 100%; background: var(--paper); color: var(--ink); }
  .impresso-pagina + .impresso-pagina { break-before: page; }
}
.imprimivel { font-family: var(--font-sans); font-size: 12pt; }
.impresso-cabecalho { display: flex; align-items: center; gap: 12px; border-bottom: 2px solid var(--tenant); padding-bottom: 14px; margin-bottom: 20px; }
.impresso-cabecalho img { width: 40px; height: 40px; border-radius: 8px; object-fit: contain; }
.impresso-cabecalho .marca { font-weight: 700; font-size: 18px; color: var(--tenant); }
.impresso-sub { margin: 0; font-size: 11px; color: var(--ink-muted); }
.impresso-titulo { margin: 0 0 2px; font-size: 20px; }
.impresso-secao { margin: 18px 0 6px; font-size: 13px; text-transform: uppercase; letter-spacing: .04em; }
.impresso-tabela { width: 100%; border-collapse: collapse; margin-top: 6px; }
.impresso-tabela th, .impresso-tabela td { border: 1px solid var(--line-strong); padding: 7px 9px; font-size: 12px; text-align: left; vertical-align: top; }
.impresso-tabela th { background: var(--bg-100); font-weight: 600; }
.impresso-tabela tbody th { width: 16%; }
.impresso-etapas { margin: 6px 0 0; padding-left: 20px; font-size: 12px; line-height: 1.6; }
.impresso-linhas { height: 72px; background: repeating-linear-gradient(to bottom, transparent 0 23px, var(--line-strong) 23px 24px); }
.impresso-assinatura { display: flex; gap: 48px; margin-top: 40px; }
.impresso-assinatura span { flex: 1; border-top: 1px solid var(--ink); padding-top: 4px; font-size: 11px; color: var(--ink-muted); }
.impresso-rodape { margin-top: 24px; font-size: 11px; color: var(--ink-muted); }

/* Folha de etiquetas: 90 × 50 mm, 2 × 5 no A4 (PROVISÓRIO: impressora e papel não definidos) */
.imprimivel.is-etiquetas { --etq-largura: 90mm; --etq-altura: 50mm; }
@media print { .imprimivel.is-etiquetas { padding: 0; } }
.pn-etq-folha { display: grid; grid-template-columns: repeat(2, var(--etq-largura)); grid-auto-rows: var(--etq-altura); gap: 3mm 6mm; }
.pn-etq { box-sizing: border-box; display: flex; gap: 4mm; align-items: center; padding: 4mm; overflow: hidden; break-inside: avoid;
  border: 0.3mm dashed var(--line-strong); border-radius: 2mm; background: var(--paper); color: var(--ink); }
.pn-etq__qr { width: 32mm; height: 32mm; flex: none; }
.pn-etq__txt { display: flex; flex-direction: column; gap: 1mm; min-width: 0; }
.pn-etq__cod { font-family: var(--font-mono); font-weight: 600; font-size: 9.5pt; }
.pn-etq__nome { font-weight: 700; font-size: 13pt; line-height: 1.15; }
.pn-etq__cient { font-family: var(--font-serif); font-style: italic; font-size: 11pt; color: var(--ink-muted); }
.pn-etq__meta { font-size: 8.5pt; color: var(--ink-muted); line-height: 1.3; }
.pn-etq__meta b { color: var(--ink); }
.pn-etq__marca { display: flex; align-items: center; gap: 2mm; font-size: 8.5pt; font-weight: 700; color: var(--tenant); }
.pn-etq__logo { width: 7mm; height: 7mm; object-fit: contain; }
.pn-etq--comercial { border-color: var(--tenant); }

/* ---------- Formulários no painel lateral (NF, transferência, requisição) ---------- */
.pn-form { display: flex; flex-direction: column; gap: 14px; }
.pn-form-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pn-campo { display: flex; flex-direction: column; gap: 6px; font-size: 13px; }
.pn-campo > span { font-weight: 600; color: var(--ink); }
.pn-campo--curto { width: 120px; flex: none; }
.pn-input { height: 38px; padding: 0 10px; border: 1px solid var(--line-strong); border-radius: var(--radius-md); background: var(--bg-000); color: var(--ink); min-width: 0; }
.pn-input:focus, .pn-select:focus { outline: none; border-color: var(--leaf); box-shadow: 0 0 0 3px var(--leaf-soft); }
.pn-campo .pn-select { height: 38px; width: 100%; }
.pn-linha-item { display: grid; grid-template-columns: minmax(0, 1fr) 80px 90px 36px; gap: 6px; align-items: center; margin-bottom: 6px; }
.pn-linha-item--3 { grid-template-columns: minmax(0, 1fr) 90px 36px; }
.pn-linha-item .pn-select { width: 100%; height: 38px; }
.pn-item-nf { display: flex; gap: 12px; align-items: flex-end; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid var(--line); }
.pn-total { text-align: right; font-size: 14px; margin-top: 8px; }
.pn-opcao:disabled { cursor: default; opacity: 1; }
.pn-tabela-mini th, .pn-tabela-mini td { padding: 8px 6px; font-size: 12px; }

/* ---------- Custos · fechamento do mês ---------- */
.pn-fech { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 20px; align-items: start; }
.pn-fech > *, .pn-fech .mu-grid > * { min-width: 0; }
.pn-fech .mu-grid { grid-template-columns: minmax(0, 1fr); }
.pn-fech__meses .mu-list > li { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 16px; }
.pn-tabela-rateio .mu-cell-lote .mu-mono { white-space: nowrap; }
.pn-fech__meses .mu-list > li div { display: flex; flex-direction: column; }
.pn-fech__meses .mu-list > li span:not(.mu-badge) { font-size: 12px; color: var(--ink-muted); }
.pn-fech__meses .mu-list > li.is-sel { background: var(--leaf-soft); }
.pn-criterios { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; }
.pn-tabela-rateio td.pn-col-sel, .pn-tabela-rateio th.pn-col-sel { background: var(--leaf-soft); }
.pn-despesa-form { display: flex; gap: 8px; flex-wrap: wrap; padding: 14px 20px 6px; }
.pn-despesa-form .pn-select { height: 38px; }
.pn-despesa-form .pn-input { flex: 1; min-width: 140px; }
.pn-fechar { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }

/* ---------- Login ---------- */
.mu-login { min-height: 100vh; }
.pn-erro { min-height: 18px; }
.mu-input .pn-olho { border: 0; width: 32px; height: 32px; background: none; color: var(--ink-faint); display: grid; place-items: center; border-radius: var(--radius-sm); cursor: pointer; }

/* ---------- Telas menores ---------- */
@media (max-width: 1180px) {
  .mu-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mu-grid--main { grid-template-columns: minmax(0, 1fr); }
  .mu-pipeline__legend { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .mu-top .mu-search { width: 260px; }
}
@media (max-width: 900px) {
  .mu-app { grid-template-columns: 1fr; }
  .mu-side { position: static; height: auto; overflow: visible; }
  .mu-side .mu-nav { overflow: visible; }
  .mu-top { padding: 0 16px; }
  .mu-top .mu-search { display: none; }
  .mu-page { padding: 20px 16px 40px; }
  .mu-page__head { flex-wrap: wrap; }
  .mu-hero { grid-template-columns: 1fr; }
  .mu-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mapa-layout { flex-direction: column; }
  .mapa-layout .painel-setor { width: 100%; position: static; }
  .mu-login { grid-template-columns: 1fr; }
  .mu-brandpanel { padding: 32px 24px 40px; }
  .pn-kv { grid-template-columns: 1fr; }
  .pn-kv dt { border-bottom: 0; padding-bottom: 0; }
  .pn-fech { grid-template-columns: 1fr; }
}

/* ---------- Cadastros · manejos ---------- */
.pn-linha-item--etapa { grid-template-columns: 24px minmax(0, 1fr) 36px; }
.pn-etapa-n { font-family: var(--font-mono); font-size: 12px; font-weight: 600; color: var(--ink-muted); text-align: center; }
.pn-textarea { width: 100%; box-sizing: border-box; height: auto; min-height: 84px; padding: 8px 10px; resize: vertical; font: inherit; line-height: 1.5; }
.pn-marcas { display: flex; flex-wrap: wrap; gap: 8px 16px; font-size: 13px; }
.pn-marcas label { display: inline-flex; align-items: center; gap: 6px; }

/* ---------- Configurações ---------- */
.pn-form--largo { max-width: 640px; }
.pn-marca-linha { display: flex; align-items: center; gap: 8px; font-size: 13px; }
.pn-inativo td { color: var(--ink-muted); }
.pn-input--num { width: 90px; text-align: right; }
.pn-linha-item--bancada { grid-template-columns: 90px 90px 80px auto; margin-top: 10px; }
.mu-tabs { flex-wrap: wrap; }

/* ---------- Vendas · C-03 novo pedido ---------- */
.mu-notice.is-ok { background: var(--leaf-soft); color: var(--leaf-ink); }
.pn-c03-item { padding: 14px 20px; border-top: 1px solid var(--line); display: flex; flex-direction: column; gap: 10px; }
.pn-c03-item:first-child { border-top: 0; }
.pn-c03-item__campos { display: grid; grid-template-columns: minmax(0, 1fr) 120px 120px 36px; gap: 10px; }
.pn-c03-item__campos .pn-select { height: 38px; width: 100%; }
.pn-c03-item__campos .pn-campo--curto { width: auto; }
.pn-c03-item__situacao { display: flex; flex-direction: column; gap: 8px; }
.pn-c03-escolha { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 6px; font-weight: 600; }
.pn-c03-escolha label { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.pn-c03__resumo { position: sticky; top: 88px; align-self: start; }
.pn-kv--resumo { grid-template-columns: 1fr auto; }
.pn-kv--resumo dd { text-align: right; }

/* ---------- Fase 8 · Planejamento ---------- */
/* Plano de produção: linha do tempo dos estágios (barra na cor do estágio sobre o eixo de meses) */
.pn-plano-hero { display: flex; flex-wrap: wrap; gap: 8px 28px; align-items: baseline; }
.pn-plano-hero b { font-family: var(--font-serif); font-size: 36px; line-height: 40px; font-weight: 400; color: var(--ink); }
.pn-plano-hero span { color: var(--ink-muted); font-size: 13px; }
.pn-gantt-col { width: 26%; min-width: 200px; }
.pn-gantt { position: relative; height: 22px; border-radius: var(--radius-sm); background: var(--bg-100); }
.pn-gantt__mes { position: absolute; top: 0; bottom: 0; border-left: 1px solid var(--line); }
.pn-gantt__barra { position: absolute; top: 4px; bottom: 4px; min-width: 4px; border-radius: 4px; box-shadow: 0 0 0 2px var(--bg-000); }
.pn-gantt-eixo { position: relative; height: 16px; font-family: var(--font-mono); font-size: 11px; color: var(--ink-muted); }
.pn-gantt-eixo span { position: absolute; transform: translateX(2px); white-space: nowrap; }
.pn-sugestoes { display: flex; flex-direction: column; gap: 8px; }
.pn-sugestoes .pn-opcao { width: 100%; }

/* Calendário da espécie: meses × etapas. A preferência vai escrita na célula (não só pela cor) */
.pn-cal { display: grid; grid-template-columns: minmax(150px, 200px) repeat(12, minmax(34px, 1fr)); gap: 2px; font-size: 12px; }
.pn-cal__cab { padding: 6px 0; text-align: center; font-family: var(--font-mono); color: var(--ink-muted); }
.pn-cal__rot { padding: 6px 8px 6px 0; font-weight: 600; display: flex; flex-direction: column; justify-content: center; }
.pn-cal__rot small { font-weight: 400; color: var(--ink-muted); }
.pn-cal__cel { min-height: 30px; border-radius: 4px; background: var(--bg-100); display: grid; place-items: center; font-weight: 700; font-size: 11px; }
.pn-cal__cel.is-ideal { background: var(--leaf-soft); color: var(--leaf-ink); box-shadow: inset 0 0 0 1px var(--leaf); }
.pn-cal__cel.is-possivel { background: var(--info-soft); color: var(--info); }
.pn-cal__cel.is-evitar { background: repeating-linear-gradient(45deg, var(--danger-soft) 0 5px, var(--bg-000) 5px 9px); color: var(--danger); box-shadow: inset 0 0 0 1px var(--danger); }
.pn-cal__cel.is-hoje { outline: 2px solid var(--ink); outline-offset: 1px; }
.pn-cal-legenda { display: flex; gap: 16px; flex-wrap: wrap; font-size: 13px; color: var(--ink-muted); }
.pn-cal-legenda span { display: inline-flex; align-items: center; gap: 6px; }
.pn-cal-legenda .pn-cal__cel { width: 34px; min-height: 22px; }
.pn-cal-wrap { overflow-x: auto; }

/* Projeção de ocupação: um gráfico por tipo de setor, mesma escala (% da área útil). Lote = sólido,
   plano = hachura da mesma cor (textura como 2ª codificação); linha da capacidade em 100% */
.pn-pj { --pn-pj-h: 150px; position: relative; display: flex; gap: 3px; align-items: flex-end; padding-bottom: 22px; }
.pn-pj-col { flex: 1; min-width: 14px; position: relative; display: flex; flex-direction: column; align-items: stretch; cursor: default; outline: none; }
.pn-pj-col:hover .pn-pj-pilha, .pn-pj-col:focus-visible .pn-pj-pilha { background: var(--bg-100); }
.pn-pj-pilha { height: var(--pn-pj-h); display: flex; flex-direction: column; justify-content: flex-end; gap: 2px; border-radius: 4px 4px 0 0; }
.pn-pj-seg { display: block; background: var(--leaf); border-radius: 4px 4px 0 0; }
.pn-pj-seg + .pn-pj-seg { border-radius: 0; }
.pn-pj-seg.is-plano, .pn-pj-hachura { background: repeating-linear-gradient(135deg, var(--leaf) 0 2px, var(--leaf-soft) 2px 6px); }
.pn-pj-mes { position: absolute; left: 0; right: 0; bottom: -20px; text-align: center; font-family: var(--font-mono); font-size: 11px; color: var(--ink-muted); white-space: nowrap; }
.pn-pj-cap { position: absolute; left: 0; right: 0; height: 0; border-top: 2px solid var(--ink); pointer-events: none; z-index: 1; }
.pn-pj-cap span { position: absolute; right: 0; top: -18px; font-family: var(--font-mono); font-size: 11px; color: var(--ink-muted); background: var(--bg-000); padding: 0 4px; }
.pn-pj-hachura { display: inline-block; width: 10px; height: 10px; border-radius: 2px; }
.pn-pj-cel.is-atencao { color: var(--warn); font-weight: 700; }
.pn-pj-cel.is-falta { color: var(--danger); font-weight: 700; background: var(--danger-soft); }
.pn-pj-cel svg.lucide { width: 12px; height: 12px; vertical-align: -1px; margin-right: 2px; }
.pn-dica { position: absolute; z-index: 90; max-width: 300px; padding: 10px 12px; border-radius: var(--radius-md); background: var(--bg-000); color: var(--ink); border: 1px solid var(--line); box-shadow: var(--shadow-pop); font-size: 13px; pointer-events: none; display: flex; flex-direction: column; gap: 4px; }
.pn-dica .pn-lista-simples li { padding: 4px 0; font-size: 12px; }

/* fase 9: contagem de atenção nos chips de filtro (atrasados, sem reserva…) */
.mu-chips .mu-chip__n.is-warn { color: var(--warn); font-weight: 700; }

/* Configurações › Viveiro: logo */
.pn-logo-linha { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.pn-logo-previa { width: 72px; height: 72px; flex: none; display: grid; place-items: center; padding: 6px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--paper); }
.pn-logo-previa img { width: 100%; height: 100%; object-fit: contain; }
.pn-logo-acoes { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; flex: 1; min-width: 220px; }
.pn-logo-acoes .pn-nota { flex-basis: 100%; }

/* Meu cadastro */
.pn-eu-cab { display: flex; align-items: center; gap: 14px; }
.pn-eu-cab .mu-avatar { width: 48px; height: 48px; font-size: 16px; }

/* Plano de crescimento: faixa dos estágios proporcional aos dias (como no Tracking) */
.pn-pc-faixa { display: flex; min-height: 54px; border-radius: var(--radius-md); overflow: hidden; border: 1px solid var(--line); }
.pn-pc-seg { position: relative; min-width: 0; padding: 7px 8px; display: flex; flex-direction: column; justify-content: center; gap: 2px;
  background: color-mix(in srgb, var(--seg) 30%, var(--bg-000)); border-left: 3px solid var(--seg); overflow: hidden; }
.pn-pc-seg strong { font-size: 13px; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pn-pc-seg span { font-family: var(--font-mono); font-size: 11px; color: var(--ink-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pn-pc-resumo { display: flex; flex-wrap: wrap; gap: 6px 18px; justify-content: flex-end; margin-top: 10px; font-family: var(--font-mono); font-size: 12px; color: var(--ink-muted); }
.pn-pc-resumo b { color: var(--ink); font-weight: 600; }
.pn-pc-ord { display: inline-flex; gap: 2px; }
.pn-pc-ord .mu-iconbtn { width: 32px; height: 32px; }
.pn-pc-sobe svg { transform: rotate(180deg); }
.pn-pc-hist { display: flex; flex-direction: column; gap: 2px; }
.pn-pc-hist small { color: var(--ink-muted); font-size: 12px; }
.pn-pc-crit { list-style: none; margin: 0; padding: 0; font-size: 13px; color: var(--ink-muted); }
.pn-pc-crit li + li { margin-top: 2px; }
.pn-pc-linha-crit { display: grid; grid-template-columns: 130px 1fr 150px 90px auto 36px; gap: 8px; align-items: center; }
.pn-pc-linha-crit + .pn-pc-linha-crit { margin-top: 8px; }
@media (max-width: 720px) { .pn-pc-linha-crit { grid-template-columns: 1fr 1fr; } }

/* Ritmo do lote: previsto × realizado */
.pn-ritmo { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }

/* Cronograma do lote: plano × real/projetado na mesma régua de datas */
.pn-crono { position: relative; display: grid; grid-template-columns: 130px 1fr; gap: 6px 12px; align-items: center; }
.pn-crono__rot { font-size: 13px; color: var(--ink-muted); }
.pn-crono__trilha { position: relative; height: 26px; border-radius: var(--radius-sm); background: var(--bg-100); }
.pn-crono__seg { position: absolute; top: 3px; bottom: 3px; min-width: 3px; border-radius: 4px; background: var(--seg);
  box-shadow: 0 0 0 1px var(--bg-000); }
.pn-crono__seg.is-projetado { background: repeating-linear-gradient(135deg, color-mix(in srgb, var(--seg) 55%, transparent) 0 5px, transparent 5px 9px);
  border: 1px solid var(--seg); }
.pn-crono__hoje { position: absolute; top: -4px; bottom: -4px; width: 2px; background: var(--ink); border-radius: 1px; }
.pn-crono__hoje::after { content: "hoje"; position: absolute; top: -16px; left: 50%; transform: translateX(-50%); font-family: var(--font-mono); font-size: 11px; color: var(--ink); }
.pn-crono-eixo { grid-column: 2; position: relative; height: 16px; font-family: var(--font-mono); font-size: 11px; color: var(--ink-muted); }
.pn-crono-eixo span { position: absolute; transform: translateX(-50%); white-space: nowrap; }
.pn-crono-legenda { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 12px; color: var(--ink-muted); margin-top: 12px; }
.pn-crono-legenda i { display: inline-block; width: 18px; height: 10px; border-radius: 3px; margin-right: 6px; vertical-align: -1px; background: var(--ink-faint); }
.pn-crono-legenda i.is-projetado { background: repeating-linear-gradient(135deg, var(--ink-faint) 0 4px, transparent 4px 7px); border: 1px solid var(--ink-faint); }
.pn-de-para { display: flex; flex-direction: column; gap: 1px; font-family: var(--font-mono); font-size: 13px; }
.pn-de-para small { color: var(--ink-muted); font-size: 12px; }
