/* ==========================================================
   MOLDURA, ENTRADA, CADASTROS E CONFIGURAÇÕES (onda 2, 02/10/2026)
   Carregado depois de style.css e obras.css. Só tokens do :root; os componentes da base
   (botões, selos, abas, tabelas, campos, avisos, janelas) não mudam de aparência aqui.
   Como usar: PADRAO-VISUAL.md, seção 6.
   ========================================================== */

/* ---------- Moldura: carregamento inicial (body.iniciando) ----------
   Até o estado chegar, nada de menu, cabeçalho ou rodapé com dados de exemplo:
   só a marca e o indicador no centro. O mesmo vale para a primeira carga e o erro de carga. */
body.iniciando>.sidebar,body.iniciando>.workspace>header,body.iniciando>.workspace>footer,body.iniciando>.menu-backdrop{display:none}
body.iniciando>.workspace{margin-left:0}
body.iniciando #main{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;min-height:100vh;min-height:100svh;max-width:none;padding:32px 20px}
body.iniciando #main::before{content:'m';display:block;flex:none;width:43px;height:43px;border-radius:9px;background:var(--marca-simbolo);color:var(--surface);font-family:var(--font-display);font-size:34px;font-weight:800;line-height:39px;letter-spacing:-3px;text-align:center}
body.iniciando #main>.carregando{padding:0}
body.iniciando #main>.empty{max-width:560px}

/* ---------- Moldura: pular para o conteúdo ---------- */
.pular-conteudo{position:fixed;top:8px;left:8px;z-index:var(--z-toast);padding:10px 16px;border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface);color:var(--ink);font-size:var(--fs-14);font-weight:600;text-decoration:none;box-shadow:var(--sh-pop);transform:translateY(-200%)}
.pular-conteudo:focus,.pular-conteudo:focus-visible{transform:none}
body:is(.iniciando,.login-screen) .pular-conteudo{display:none}
#main[tabindex="-1"]:focus{outline:none}

/* ---------- Moldura: menu ----------
   As páginas de Configurações entram só no resultado do "Ir para…"; no menu elas ficam no menu da conta. */
.sidebar .nav-group--busca{display:none}
.sidebar .grouped-nav.buscando .nav-group--busca:not([hidden]){display:block}
/* "Agindo como" na gaveta (até 850 px), só nas telas de Suprimentos em que a alçada tem efeito. */
.sidebar .sidebar-agindo{flex-shrink:0;margin:0 0 12px}
.sidebar .sidebar-agindo label.pessoa-agindo{display:flex;flex-direction:column;align-items:stretch;gap:6px;font-size:var(--fs-12);color:var(--sb-muted)}
.sidebar .sidebar-agindo select{width:100%;max-width:none;min-height:var(--h-control);margin:0;border-color:var(--sb-line);background:var(--sb-campo);color:var(--sb-strong)}

/* Cabeçalho do app: sem "Configurações / Configurações". */
.workspace>header .breadcrumb.so-titulo>:is(em,span){display:none}

/* Selo ao lado do título (.titulo-com-selo) e cartão do detalhe (.doc-header): "Base comum" de style.css. */

/* ---------- Listas de cadastro (listaDeCadastro em app.js) ---------- */
/* Posição da tabela, identificador e .sr-only do th vêm da base (style.css, Tabelas). Nome de cadastro pode quebrar. */
.data-table.lista-cadastro td.cartao-titulo a{white-space:normal}
.data-table.lista-cadastro .coluna-descricao{min-width:240px}
.data-table .sem-quebra{white-space:nowrap}
.data-table.lista-cadastro tbody:first-child>tr:first-child>td{border-top:0}
.pessoa-linha{display:flex;align-items:center;gap:12px;min-width:0}
.pessoa-linha>a{min-width:0;overflow-wrap:anywhere}
@media(max-width:1180px){.data-table.lista-cadastro .coluna-descricao{min-width:200px}}
@media(max-width:850px){.data-table.lista-cadastro .coluna-descricao{min-width:0}}

/* Detalhe de cadastro: os números de resumo ficam no cartão do documento (.doc-resumo, "Base comum"). */

/* ---------- Formulários de cadastro (.standard-form.form-cadastro) ---------- */
.standard-form .field>:is(.with-button,.busca){margin-top:0}
.standard-form .subhead{border-bottom:0;padding-bottom:0}
.standard-form .form-grid+.form-grid{margin-top:20px}
.standard-form .aba>.form-grid+.subhead{margin-top:32px}
.standard-form .check-row input,.permissions-functions input,.lista-permissoes input{accent-color:var(--orange)}
.check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:4px 24px;margin:0 0 8px}
.check-grid .check-row{margin:0;align-items:center;min-height:var(--h-control)}
.check-grid .check-row input{margin-top:0}
.form-cadastro .anexo-slot+.anexo-slot,.form-cadastro .anexo-slot+.dropzone{margin-top:12px}
/* Cor da mensagem de erro e campo desativado vêm da base. O resumo fica dentro do recuo do cartão, logo acima das ações. */
.standard-form:is(.form-cadastro,[data-account],[data-profile])>.form-erros{margin:0 24px}
@media(max-width:850px){.standard-form:is(.form-cadastro,[data-account],[data-profile])>.form-erros{margin:0 20px}}

/* ---------- Configurações ---------- */
.historico-filtros{display:grid;grid-template-columns:minmax(180px,2fr) repeat(3,minmax(110px,1fr)) repeat(2,minmax(150px,1fr)) auto;gap:12px;align-items:end;margin:0 0 20px}
.historico-filtros :is(input,select){min-width:0}
.historico-filtros .field{margin:0}
.historico-filtros-acoes{display:flex;align-items:center;gap:16px;min-height:var(--h-control)}
.audit-page .audit-coverage{padding:16px 24px;margin:0;border-bottom:1px solid var(--line)}
.audit-page>[data-status]:empty{display:none}
.audit-page .carregando{padding:32px 24px}
.audit-event[open] .audit-expand .icone{transform:rotate(180deg)}
.audit-expand{gap:6px}
.audit-page [data-pages] .paginacao{border-top:1px solid var(--line)}
@media(max-width:1180px){.historico-filtros{grid-template-columns:repeat(3,minmax(0,1fr))}.historico-busca{grid-column:1/-1}}
@media(max-width:600px){.historico-filtros{grid-template-columns:1fr}.historico-filtros-acoes>button{flex:1}}
.lista-permissoes td:not(.cartao-titulo),.lista-permissoes th:not(:first-child){width:160px;text-align:center}
.lista-permissoes input[type=checkbox]{width:18px;height:18px}
@media(max-width:850px){.lista-permissoes td:not(.cartao-titulo){width:auto;text-align:left}}

/* ---------- Bases de preço ---------- */
dialog.modal-importacao.importacao-inicio{width:min(720px,calc(100vw - 32px))}
#consulta-base .back-link{margin-bottom:12px}

/* ---------- Entrada ---------- */
/* A marca aparece uma vez: com o painel institucional à vista, sai a de cima do formulário. */
@media(min-width:851px){.login-content>.login-brand{display:none}}
.login-card .login-empresas{display:grid;gap:12px}
.login-empresas .login-empresa{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:64px;padding:12px 16px;text-align:left;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-md);color:var(--ink)}
.login-empresas .login-empresa:hover{border-color:var(--orange);background:var(--orange-soft)}
.login-empresa>span{display:flex;flex-direction:column;gap:2px;min-width:0}
.login-empresa strong{font-size:var(--fs-14);font-weight:600;overflow-wrap:anywhere}
.login-empresa small{font-size:var(--fs-12);font-weight:500;color:var(--muted);opacity:1}
.login-empresa .icone{color:var(--muted)}
.login-card .form-erros{margin:0 0 16px}
/* Primeira carga: opções do mesmo peso, cada uma diz o que acontece. */
.primeira-carga{width:min(920px,100%)}
.primeira-carga>.page-heading{margin-bottom:24px}
.escolhas-carga{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.escolha-carga{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:8px;min-height:128px;padding:20px;text-align:left;white-space:normal;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);color:var(--ink)}
.escolha-carga:hover{border-color:var(--orange);background:var(--orange-soft)}
.escolha-carga strong{font-family:var(--font-display);font-size:var(--fs-16);font-weight:700}
.escolha-carga span{font-size:var(--fs-14);font-weight:400;line-height:1.5;color:var(--muted)}
.primeira-carga>.muted-note{margin-top:16px}
