/* PORTAL DO FORNECEDOR (F1, 22/10/2026) — só o que o style.css não tem.
   Cores só por variável do sistema de design (views/CLAUDE.md, regra 1). */

/* ---- Páginas sem login: cartão no centro ---- */
.portal-centro{min-height:100vh; display:flex; align-items:center; justify-content:center;
  padding:32px 16px; background:var(--bg); color:var(--text);}
.portal-cartao{width:100%; max-width:440px; display:flex; flex-direction:column; gap:14px;}
.portal-marca{display:flex; align-items:center; justify-content:space-between; gap:12px;}
.portal-marca-nome{font-family:var(--font-display); font-size:1rem; color:var(--text-muted);}
.portal-marca-nome b{color:var(--text);}
.portal-corpo{display:flex; flex-direction:column; gap:16px;}
.portal-titulo{display:flex; flex-direction:column; gap:6px;}
.portal-titulo h1{font-family:var(--font-display); font-size:1.35rem; font-weight:800; margin:0;}
.portal-titulo p{margin:0; color:var(--text-muted); font-size:.9rem; line-height:1.5; max-width:var(--texto-max);}
.portal-form{display:flex; flex-direction:column; gap:14px;}
.portal-form .btn{width:100%; justify-content:center;}
.portal-codigo{font-size:1.15rem; letter-spacing:.12em;}
.portal-link{font-size:.84rem; color:var(--accent);}
.portal-rodape{margin:0; font-size:.78rem; color:var(--text-faint); text-align:center; line-height:1.5;}
.portal-passos{display:flex; gap:8px; flex-wrap:wrap;}
.portal-lista{margin:0; padding-left:1.2rem; font-size:.9rem; color:var(--text-muted);}
.portal-nota{margin:0; font-size:.84rem; color:var(--text-muted); line-height:1.6;}
.portal-chave{font-size:.92rem; color:var(--text); word-spacing:.2em;}
/* O QR traz o próprio fundo claro (o leitor do celular precisa do contraste),
   então no tema escuro ele aparece como um cartão claro: é de propósito. */
.portal-qr{align-self:center; width:200px; max-width:100%; line-height:0;
  border:1px solid var(--border); border-radius:var(--r-md); overflow:hidden;}
.portal-qr svg{width:100%; height:auto; display:block;}
.portal-codigos{list-style:none; margin:0; padding:14px; display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr)); gap:8px 16px;
  background:var(--surface-2); border:1px solid var(--border); border-radius:var(--r-md);}
.portal-codigos li{font-size:.95rem; text-align:center;}
.portal-acoes{display:flex; gap:10px; flex-wrap:wrap;}
.portal-acoes .btn{flex:1 1 160px; justify-content:center;}
.portal-copiado{font-size:.84rem; color:var(--ok);}
.portal-copiado[hidden]{display:none;}

/* ---- A tela de itens ---- */
.portal-app{min-height:100vh; background:var(--bg); color:var(--text);}
.portal-conteudo{margin:0 auto;}
.portal-topbar .topbar-esq{min-width:0; flex:1 1 auto;}
.portal-topbar h1{min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.portal-topbar .topbar-right{flex-shrink:0;}
.portal-sair{margin:0;}
.portal-atualizado{display:block; margin-top:4px; font-size:.82rem; color:var(--text-faint);}
.portal-indicadores{margin-bottom:16px;}
a.dash-card{color:inherit; text-decoration:none;}
a.dash-card:hover{border-color:var(--accent);}
a.dash-card:focus-visible{outline:2px solid var(--accent); outline-offset:2px;}
.portal-check{margin-top:26px;}
.portal-item .row-meta + .row-meta{margin-top:2px;}

/* Celular: o nome do usuário sai da barra (o avatar fica), e no cartão as
   quatro métricas ficam duas por linha (regra 3 de Celular). */
@media (max-width: 560px){
  .portal-usuario-nome{display:none;}
  .portal-check{margin-top:0;}
  .portal-item .stats{display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:8px 12px; width:100%;}
  .portal-item .stat{width:auto; text-align:left;}
  .portal-item .badges{width:100%;}
}
/* "Confiar neste dispositivo por N dias" (22/10/2026): caixa de marcar com o texto ao lado, sem cor literal. */
.portal-marcar{display:flex; align-items:center; gap:10px; font-weight:600; cursor:pointer;}
.portal-marcar input{width:18px; height:18px; flex:none; accent-color:var(--accent);}
/* O rótulo da caixa de marcar não é rótulo de campo: texto normal, não caixa alta. */
.field .portal-marcar{text-transform:none; letter-spacing:normal; font-size:.95rem; color:var(--text);}
/* O código do FORNECEDOR é o principal da linha: o dono do produto o conhece por ele. */
.row-title .code{font-size:1em; font-weight:700;}
.portal-esquecer{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:18px 0 6px; color:var(--text-muted); font-size:.88rem;}
/* Estoque por canal (23/10/2026): fileira de atalhos acima dos filtros; clicar filtra. */
.portal-canais{display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:14px 0 4px;}
.portal-canais-k{font-size:.72rem; letter-spacing:.05em; text-transform:uppercase; color:var(--text-muted); font-weight:600; margin-right:4px;}
.portal-canal{display:inline-flex; align-items:baseline; gap:6px; padding:6px 12px; border:1px solid var(--border); border-radius:999px; background:var(--bg); color:var(--text); text-decoration:none; font-size:.9rem;}
.portal-canal b{font-size:1rem;}
.portal-canal small{color:var(--text-muted); font-size:.75rem;}
.portal-canal:hover{border-color:var(--accent);}
.portal-canal.is-on{border-color:var(--accent); box-shadow:0 0 0 1px var(--accent);}
.portal-canal.is-zero{opacity:.65;}

/* ---- F2 (23/10/2026): sugestão de pedido, negociação e avisos ---- */
/* As seções e as abas são LINKS (cada aba é uma URL), com o mesmo desenho do .tabs button do sistema. */
.tabs a{display:inline-flex; align-items:center; text-decoration:none; font-family:var(--font-ui); font-size:.86rem;
  font-weight:600; color:var(--text-muted); padding:10px 16px; border-bottom:2px solid transparent; margin-bottom:-1px; white-space:nowrap;}
.tabs a:hover{color:var(--text);}
.tabs a.on{color:var(--accent); border-bottom-color:var(--accent);}
.tabs a.on .tab-n{background:var(--accent-soft); color:var(--accent);}
.tabs a:focus-visible{outline:2px solid var(--accent); outline-offset:-2px;}
.tabs.is-rolavel a{margin-bottom:0; flex-shrink:0;}
.portal-nav{margin-bottom:22px;}
.portal-abas{margin-bottom:16px;}
/* O contador de avisos não lidos é o "sino": cor de estado, não de ação. */
.portal-nav a.tem-aviso .tab-n, .portal-nav a.tem-aviso.on .tab-n{background:var(--warn-soft); color:var(--warn);}

/* Campo numérico dentro de uma métrica (.stat tem largura fixa: o campo a ocupa inteira). */
.portal-in{display:block; width:100%; box-sizing:border-box; padding:5px 8px; font-family:var(--font-ui); font-size:.9rem; font-weight:700;
  text-align:right; color:var(--text); background:var(--surface); border:1px solid var(--border-strong); border-radius:var(--r-sm);}
.portal-in:focus{outline:2px solid var(--accent); outline-offset:1px; border-color:var(--accent);}
.portal-in:disabled{opacity:.5;}
.stat label.k{cursor:pointer;}
.portal-linha .lote-check{width:32px;}
.row-actions form{margin:0;}
.portal-tirar{white-space:nowrap;}
.portal-sug-topo{justify-content:space-between; margin:0 0 10px;}

/* Total do pedido, pedido mínimo (só avisa) e os botões de envio. */
.portal-abrir{margin-top:16px; padding:18px 20px; display:flex; flex-direction:column; gap:14px;}
.portal-total{display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px 20px;
  border-top:1px solid var(--border); padding-top:14px;}
.portal-total-k{display:block; font-family:var(--font-display); font-size:.68rem; font-weight:700; letter-spacing:.07em;
  text-transform:uppercase; color:var(--text-faint);}
.portal-total-v{font-size:1.35rem; font-weight:800; margin-right:8px;}
.portal-total-sub{font-size:.82rem; color:var(--text-muted);}
.portal-minimo{font-size:.84rem; color:var(--text-muted); max-width:var(--texto-max);}
.portal-faltam{color:var(--warn); font-weight:600;}
.portal-passou{color:var(--ok); font-weight:600;}
/* Liga/desliga do "completar automaticamente" (28/10/2026): um checkbox de verdade, desenhado como chave. */
.portal-chave{display:inline-flex; align-items:center; gap:10px; cursor:pointer; max-width:260px;}
.portal-chave input{position:absolute; opacity:0; width:1px; height:1px;}
.portal-chave-trilho{flex:none; width:40px; height:22px; border-radius:999px; background:var(--border-strong); position:relative; transition:background .15s;}
.portal-chave-trilho::after{content:""; position:absolute; top:3px; left:3px; width:16px; height:16px; border-radius:50%; background:var(--surface); box-shadow:var(--shadow-sm); transition:transform .15s;}
.portal-chave input:checked + .portal-chave-trilho{background:var(--accent);}
.portal-chave input:checked + .portal-chave-trilho::after{transform:translateX(18px);}
.portal-chave input:focus-visible + .portal-chave-trilho{outline:2px solid var(--accent); outline-offset:2px;}
.portal-chave-txt{display:flex; flex-direction:column; font-size:.84rem; line-height:1.25; color:var(--text); text-align:left;}
.portal-chave-sub{font-size:.74rem; color:var(--text-muted);}
.portal-minimo-abaixo{display:none;}
.portal-minimo.is-abaixo{color:var(--warn); font-weight:600;}
.portal-minimo.is-abaixo .portal-minimo-abaixo{display:inline;}
.portal-botoes{display:flex; flex-wrap:wrap; gap:10px; margin-left:auto;}
.portal-pendente-js{flex-basis:100%; font-size:.82rem; color:var(--warn); text-align:right;}
.portal-pendente-js[hidden]{display:none;}
.portal-rotulo{display:block; font-family:var(--font-display); font-size:.72rem; font-weight:700; letter-spacing:.05em;
  text-transform:uppercase; color:var(--text-muted);}
.portal-valor{display:block; padding-top:8px; font-weight:600;}

/* O pedido: seções, histórico e diferenças. */
.portal-voltar{display:inline-block; margin-bottom:6px; font-size:.84rem; color:var(--accent); text-decoration:none;}
.portal-voltar:hover{text-decoration:underline;}
.portal-secao{display:flex; align-items:center; margin:28px 0 10px; font-size:1.02rem; font-weight:700;}
.portal-num-pedido{color:var(--accent); text-decoration:none;}
.portal-num-pedido:hover{text-decoration:underline;}
.portal-crit{color:var(--crit); font-weight:600;}
.portal-incluir-acoes{display:flex; justify-content:flex-end; margin-top:12px;}
.portal-form-incluir{margin:0;}
.portal-nota-rodada{margin:6px 0 0; font-size:.86rem; color:var(--text-muted); font-style:italic; max-width:var(--texto-max); overflow-wrap:anywhere;}
.portal-difs{margin:6px 0 0; padding-left:1.1rem; display:flex; flex-direction:column; gap:2px; font-size:.84rem; color:var(--text-muted);}
.portal-difs .code{color:var(--text);}
.portal-rodada.portal-autor-comercial{box-shadow:inset 3px 0 0 var(--accent), var(--shadow-sm);}
.portal-aviso.is-lido{opacity:.82;}
.portal-aviso-texto{margin-top:6px; overflow-wrap:anywhere;}

@media (max-width: 560px){
  .portal-botoes{width:100%; margin-left:0;}
  .portal-botoes .btn{flex:1 1 auto; justify-content:center;}
  .portal-pendente-js{text-align:left;}
  .portal-total-v{font-size:1.2rem;}
  .portal-linha .stat{width:calc(50% - 4px);}
}
/* "Outros itens sugeridos" recolhido: a faixa é o próprio título da seção. */
.portal-mais > summary{cursor:pointer; list-style:none; gap:8px;}
.portal-mais > summary::-webkit-details-marker{display:none;}
.portal-mais > summary:focus-visible{outline:2px solid var(--accent); outline-offset:2px;}
.portal-mais-abrir{margin-left:auto; font-size:.8rem; font-weight:600; color:var(--accent);}
.portal-mais:not([open]) .so-aberto, .portal-mais[open] .so-fechado{display:none;}
/* Celular: as quatro seções cabem na largura sem esconder o contador de avisos (captura de 23/10, 393 px). */
@media (max-width: 560px){
  .portal-nav a{padding:10px 9px;}
  .portal-nav .tab-n{margin-left:5px;}
}

/* A matriz de itens (23/10/2026): estoque de cada canal em coluna. Número à direita, primeira coluna presa ao rolar. */
.portal-matriz{margin-top:12px; border:1px solid var(--border); border-radius:var(--r-md); background:var(--surface);}
.portal-matriz .fisc-tabela{font-size:.86rem;}
.portal-matriz th.grupo{text-align:center; border-bottom:1px solid var(--border);}
.portal-matriz th.n, .portal-matriz td.n{text-align:right;}
.portal-matriz .col-item{min-width:340px; max-width:440px; white-space:normal; position:sticky; left:0; z-index:1; background:var(--surface);}
.portal-matriz thead .col-item{z-index:2;}
.portal-matriz tbody tr:hover .col-item{background:var(--surface-2);}
.portal-celula-item{display:flex; gap:10px; align-items:flex-start;}
.portal-celula-item .thumb{width:40px; height:40px; flex:none;}
.portal-item-texto{min-width:0;}
.portal-item-texto .row-title{font-size:.9rem; line-height:1.3;}
.portal-item-texto .row-meta{margin-top:2px; font-size:.78rem;}
.portal-matriz td.is-zero{color:var(--text-faint);}
.portal-matriz td.col-total{font-size:.95rem;}
.portal-matriz td.crit{color:var(--crit);}
.portal-matriz td.warn{color:var(--warn); font-weight:600;}
.portal-matriz tr.is-crit .col-item{box-shadow:inset 3px 0 0 var(--crit);}
.portal-matriz tr.is-warn .col-item{box-shadow:inset 3px 0 0 var(--warn);}
@media (max-width:700px){ .portal-matriz .col-item{min-width:230px; max-width:260px;} }
/* Ajuste fino da matriz (23/10/2026): tudo alinhado ao meio, colunas mais justas para caber em 1440 sem rolar. */
.portal-matriz td, .portal-matriz th{vertical-align:middle; padding:6px 8px;}
.portal-matriz thead th{font-size:.68rem;}
.portal-matriz .col-item{min-width:300px; max-width:360px;}
.portal-matriz td.col-total{font-weight:700; font-size:.95rem;}
.portal-matriz td.col-total b{font-weight:700; display:inline;}
/* O resumo fixo do pedido (volumetria, 23/10/2026): itens · total · cubagem · peso, preso ao pé da tela enquanto se
   rola a lista (também no celular), recalculado ao vivo. "Total parcial" usa a cor de atenção, não de erro. */
.portal-resumo{position:sticky; bottom:0; z-index:5; margin-top:14px; display:flex; flex-wrap:wrap; align-items:baseline;
  gap:4px 18px; padding:12px 18px; background:var(--surface); border:1px solid var(--border-strong);
  border-radius:var(--r-md); box-shadow:var(--shadow-md); font-size:.9rem; color:var(--text-muted);}
.portal-resumo b{color:var(--text); font-weight:700;}
.portal-parcial{flex-basis:100%; font-size:.82rem; color:var(--warn); overflow-wrap:anywhere;}
.portal-parcial b{color:var(--warn);}
.portal-parcial[hidden]{display:none;}
@media (max-width: 560px){
  .portal-resumo{padding:10px 14px; gap:2px 14px; font-size:.86rem; border-radius:var(--r-md) var(--r-md) 0 0;}
}

/* Os marketplaces pela MARCA, não pelo nome (23/10/2026). A marca é desenhada para fundo claro: um quadradinho claro a segura nos dois temas. */
:root{--canal-fundo:#ffffff;}
.ico-canal{display:inline-block; width:22px; height:22px; object-fit:contain; vertical-align:middle; padding:2px; border-radius:6px; background:var(--canal-fundo); border:1px solid var(--border); box-sizing:content-box;}
.portal-matriz th.th-canal{text-align:center;}
.portal-canal .ico-canal{margin-right:2px;}

/* Cabeçalho ordenável (23/10/2026): o título inteiro é o link; a seta mostra a coluna e o sentido. */
.portal-matriz th.ord{padding:0;}
.ord-link{display:flex; align-items:center; gap:6px; padding:8px 10px; color:inherit; text-decoration:none; white-space:nowrap;}
.portal-matriz th.n .ord-link, .portal-matriz th.th-canal .ord-link{justify-content:flex-end;}
.portal-matriz th.th-canal .ord-link{justify-content:center;}
.ord-link:hover{background:var(--surface-2);}
.ord-link:focus-visible{outline:2px solid var(--accent); outline-offset:-2px;}
.ord-seta{font-size:.7rem; color:var(--text-faint);}
.ord-link.on .ord-seta{color:var(--accent);}
.ord-link.on{font-weight:700;}

/* Montar pedido (23/10/2026): a busca no topo da lista e o texto só para leitor de tela. */
.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}
.portal-busca{flex:1 1 280px; max-width:460px; margin:0;}
.portal-busca .portal-in{width:100%; text-align:left;}

/* Montar pedido: a lista só mostra o que se procura e o que já foi adicionado. */
.portal-procura{padding:14px 16px; margin-bottom:16px;}
.portal-procura .portal-busca{max-width:none; flex:none;}
.portal-resultados{margin-top:10px;}
.portal-sub-h{margin:6px 0 10px; font-size:1.05rem; font-weight:700;}
.portal-sem-itens{margin-bottom:16px;}
.portal-oculto{display:none;}
form[data-pedido="avulso"] .portal-linha:not(.is-add) .stats{display:none;}
form[data-pedido="avulso"] .portal-linha:not(.is-add) .portal-btn-rem, form[data-pedido="avulso"] .portal-linha.is-add .portal-btn-add{display:none;}
.portal-acoes-linha{display:flex; align-items:center; gap:8px; flex:none;}
.portal-conteudo [hidden]{display:none !important;}

.portal-ou{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:12px; padding-top:12px; border-top:1px solid var(--border); color:var(--text-muted);}
.portal-ou .hint{flex:1 1 260px;}

/* ---- F3 (25/10/2026): produtos novos (pré-cadastro, fotos e planilha) ---- */
.portal-fs{border:0; padding:0; margin:0; min-width:0; display:flex; flex-direction:column; gap:16px;}
.portal-fs:disabled input, .portal-fs:disabled textarea, .portal-fs:disabled select{opacity:.75; cursor:not-allowed;}
.portal-form-pn{display:flex; flex-direction:column; gap:16px;}
.portal-pn-secao{padding:18px 20px; margin-bottom:16px;}
.portal-pn-secao .portal-secao-h{margin:0 0 14px; font-size:1.02rem; font-weight:700; display:flex; align-items:baseline; gap:10px;}
.portal-pn-secao .field-grid{margin-bottom:0;}
.portal-obrig{color:var(--crit);}
.portal-erro-campo{margin-top:6px; font-size:.8rem; font-weight:600; color:var(--crit); max-width:var(--texto-max);}
.field input[aria-invalid="true"], .field textarea[aria-invalid="true"]{border-color:var(--crit);}
.portal-pn-estado{display:flex; align-items:center; gap:10px; flex-wrap:wrap;}
.portal-botoes-pn{margin-left:0; margin-bottom:24px;}
.portal-busca-pn{display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:0 0 14px;}
.portal-busca-pn .portal-in{flex:1 1 260px; max-width:460px; text-align:left;}
.portal-linha-pn .thumb{width:56px; height:56px;}
.portal-linha-pn .thumb img{width:100%; height:100%; object-fit:cover;}
.portal-atualizado-inline{font-size:.82rem; color:var(--text-faint);}
.portal-pn-fotos-dica{margin:0 0 24px;}

/* Fotos: grade de miniaturas; a primeira é a principal. */
.portal-fotos-n{font-size:.82rem; font-weight:600; color:var(--text-muted);}
.portal-fotos{list-style:none; margin:0 0 14px; padding:0; display:grid; grid-template-columns:repeat(auto-fill, minmax(168px, 1fr)); gap:12px;}
.portal-foto{display:flex; flex-direction:column; gap:8px; padding:10px; border:1px solid var(--border); border-radius:var(--r-md); background:var(--surface);}
.portal-foto.is-principal{border-color:var(--ok); box-shadow:0 0 0 1px var(--ok);}
.portal-foto-img{aspect-ratio:1 / 1; border-radius:var(--r-sm); background:var(--surface-2); overflow:hidden; display:flex; align-items:center; justify-content:center;}
.portal-foto-img img{max-width:100%; max-height:100%; object-fit:contain; display:block;}
.portal-foto-info{display:flex; align-items:center; justify-content:space-between; gap:6px; flex-wrap:wrap; font-size:.8rem; color:var(--text-muted);}
.portal-foto-acoes{display:flex; flex-wrap:wrap; gap:6px;}
.portal-foto-acoes form{margin:0;}
.portal-foto-envio{display:flex; align-items:center; gap:12px; flex-wrap:wrap;}
.portal-foto-escolher{cursor:pointer;}
.portal-foto-envio:focus-within .portal-foto-escolher{outline:2px solid var(--accent); outline-offset:2px;}
.portal-arquivo{max-width:100%; font-family:var(--font-ui); font-size:.9rem; color:var(--text);}
.portal-arquivo:focus-visible{outline:2px solid var(--accent); outline-offset:2px;}
.portal-foto-status{margin-top:10px; font-size:.86rem; color:var(--text-muted); min-height:1.2em; overflow-wrap:anywhere;}
.portal-foto-status.is-erro{color:var(--crit); font-weight:600;}
.portal-descartar .portal-nota{margin-bottom:12px; max-width:var(--texto-max);}

/* Resultado da planilha. */
.portal-resultado-resumo{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:0 0 12px;}
.portal-resultado-lista{margin:0 0 14px; padding-left:1.1rem; display:flex; flex-direction:column; gap:8px; font-size:.9rem; overflow-wrap:anywhere;}
.portal-resultado-lista ul{margin:4px 0 0; padding-left:1.1rem; color:var(--crit); font-size:.86rem;}
.portal-resultado-erro > b{color:var(--text);}

/* F3-F (26/10/2026): fotos no cadastro novo (progresso) e fotos por link da planilha (fila com o estado de cada link). */
.portal-progresso{display:block; width:100%; max-width:420px; height:8px; margin-top:8px; accent-color:var(--accent);}
.portal-novo-resumo{margin:0 0 6px;}
.portal-foto-status .portal-resultado-lista{margin:0 0 10px; font-weight:400;}
.portal-links{margin:0 0 14px; padding-top:12px; border-top:1px solid var(--border);}
.portal-links .portal-sub-h{display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-size:.95rem; margin:0 0 10px;}
.portal-links-lista{list-style:none; margin:0 0 10px; padding:0; display:flex; flex-direction:column; gap:8px;}
.portal-link{display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-size:.86rem; min-width:0;}
.portal-link > .chip{flex:0 0 auto;}
.portal-link-txt{flex:1 1 260px; min-width:0; display:flex; flex-direction:column; gap:2px; overflow-wrap:anywhere;}
.portal-link-linha{display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; min-width:0;}
.portal-link-linha b{font-weight:600; color:var(--text);}
.portal-link-url{font-size:.8rem; color:var(--text-muted); overflow-wrap:anywhere; min-width:0;}
.portal-link-motivo{color:var(--crit); font-size:.82rem; font-weight:600;}
.portal-link-acoes{display:flex; gap:6px; flex-wrap:wrap;}
.portal-link-acoes form{margin:0;}
.portal-links .portal-nota{max-width:var(--texto-max);}
.portal-pn-secao > .portal-nota{max-width:var(--texto-max);}
.portal-pn-secao > .portal-nota + .portal-nota{margin-top:8px;}
.portal-pn-secao > .portal-nota + .portal-acoes{margin-top:12px;}
.stat .v.sub.portal-sub-crit{color:var(--crit); font-weight:600;}

@media (max-width: 560px){
  .portal-pn-secao{padding:14px;}
  .portal-fotos{grid-template-columns:repeat(2, minmax(0, 1fr)); gap:10px;}
  .portal-linha-pn .thumb{width:48px; height:48px;}
  .portal-busca-pn .portal-in{max-width:none;}
}

/* F3c (26/10/2026): pedido CRIADO, aguardando envio (rascunho). Faixa acima das abas em Negociações; o "Excluir" da linha
   é um formulário em linha; na tela do pedido o "Excluir pedido" fica fora do formulário de edição, por último. */
.portal-rascunhos{display:flex; flex-direction:column; gap:12px;}
.portal-form-inline{display:inline-flex; margin:0;}
.portal-excluir{display:flex; flex-wrap:wrap; align-items:center; gap:12px; justify-content:flex-end;}
.portal-excluir .hint{margin:0; color:var(--text-muted); font-size:.82rem; max-width:var(--texto-max);}

/* Quantidade/preço que a Mami mudou contra a última proposta do fornecedor: ▲ verde (subiu), ▼ vermelho (desceu). */
.seta-sobe{color:var(--ok);}
.seta-desce{color:var(--crit);}

/* Pedidos aceitos (26/10/2026): o aviso de aceite abre a aba com o pedido em destaque (:target, só variável de cor); os botões
   PDF e Excel do documento do pedido são secundários (btn-quiet). */
.portal-pedido:target{background:var(--accent-soft, var(--surface-2)); box-shadow:inset 3px 0 0 var(--accent), var(--shadow-sm);}
.portal-pedido{scroll-margin-top:84px;}
.portal-pedido:target .btn-quiet{background:var(--surface);}
/* Chip do pedido: texto de estado longo quebra linha dentro da coluna, em vez de cobrir os botoes ao lado */
.portal-pedido .badges .chip{white-space:normal; align-items:flex-start; border-radius:var(--radius-md, 12px); line-height:1.3; overflow-wrap:anywhere;}
.portal-pedido .badges .chip .dot{margin-top:5px;}
.portal-pedido .row-actions .btn{white-space:nowrap;}

/* F3e (27/10/2026): faixa da simulação "Ver como fornecedor". Fixa no topo, sempre à vista; o texto quebra, o botão não. */
.portal-simulacao{position:sticky;top:0;z-index:60;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3,12px);flex-wrap:wrap;padding:8px var(--space-4,16px);background:var(--warn-soft);color:var(--text);border-bottom:2px solid var(--warn);font-size:13px;line-height:1.35}
.portal-simulacao .portal-simulacao-txt{flex:1 1 280px;min-width:0;overflow-wrap:anywhere}
.portal-simulacao .btn{white-space:nowrap}
/* Seta da tendência (Vendas ↑ ↓ → ←): maior que o texto do chip para ler de relance. */
.portal-matriz .chip .seta{font-size:1.35em; line-height:1; font-weight:700;}
/* Itens que não mudaram na rodada (pedido, da 2ª rodada em diante): grupo fechado logo abaixo dos que mudaram. */
.portal-iguais{margin-top:var(--space-3,12px);}
/* F3j: "Completar automaticamente até o pedido mínimo" no rascunho (aviso com o botão ao lado; empilha no celular). */
.portal-completar-form{margin:0; flex-shrink:0;}
.portal-completar .btn{white-space:normal; text-align:center;}
.chip.chip-auto{max-width:100%; white-space:normal; align-items:flex-start; line-height:1.3;}
