/* Usuários (02/10/2026): lista compacta, prévia lateral e confirmação de acesso.
   Branco e off-white, grafite, bordas discretas; laranja só na ação primária e
   no foco. ⚠️ Só tokens que existem em style.css: token inexistente em var() zera a
   propriedade inteira em silêncio. */
.us-pagina{min-width:0;font-size:14px}
.us-pagina .us-topo{margin-bottom:var(--s3);align-items:flex-start}
.us-pagina .us-topo h1{font-size:28px;margin:0 0 var(--s1);letter-spacing:-.02em;line-height:1.15}
.us-pagina .us-topo .eyebrow{margin-bottom:var(--s1)}
.us-pagina .us-topo p.muted{margin:0;font-size:13px}
.us-topo-acoes{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:var(--s2);max-width:540px}
.us-topo-acoes button{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:8px 14px;border-radius:8px;font-size:13px;margin:0}
.us-nota-cadastro{flex:1 0 100%;text-align:right;font-size:12px;color:var(--muted);margin:0;line-height:1.4}
.us-indicadores{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:var(--s3);margin-bottom:var(--s3)}
.us-indicador{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:var(--s3);align-items:center;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:8px 14px;color:var(--ink);min-width:0}
.us-indicador strong{grid-row:1/3;font-size:24px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1}
.us-indicador span{font-size:13px;font-weight:600;min-width:0;overflow-wrap:anywhere}
.us-indicador small{font-size:11px;color:var(--muted);min-width:0;overflow-wrap:anywhere}
.us-indicador[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}
.us-filtros{display:flex;align-items:end;gap:var(--s3);padding:10px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-wrap:wrap}
.us-filtros label{flex:1 1 150px;min-width:0;margin:0;font-size:12px;color:var(--muted);display:flex;flex-direction:column;gap:4px}
.us-filtros label.us-busca{flex:2 1 220px}.us-filtros label.us-tamanho{flex:0 1 110px}
.us-filtros input,.us-filtros select{min-height:34px;padding-block:4px;font-size:14px;color:var(--ink);width:100%}
.us-filtros>button{min-height:34px}
.us-mais-filtros{display:none}
.us-legenda-contagem{margin:6px 0 var(--s2);font-size:12px}
.us-tabela-caixa{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;min-width:0}
.us-tabela{width:100%;border-collapse:collapse;font-size:14px;table-layout:fixed}
.us-tabela th{font-size:11px;font-weight:600;color:var(--muted);background:var(--paper);padding:8px 12px;line-height:1.25;border-bottom:1px solid var(--line);text-align:left;letter-spacing:.02em}
.us-tabela th:nth-child(1){width:25%}.us-tabela th:nth-child(2){width:14%}.us-tabela th:nth-child(3){width:14%}.us-tabela th:nth-child(4){width:18.5%}.us-tabela th:nth-child(5){width:14%}.us-tabela th:nth-child(6){width:108px}
/* ⚠️ A coluna de ações guarda a faixa do lançador do chat (54px, fixo a 22px da
   borda): sem essa folga o botão das últimas linhas visíveis fica embaixo dele. */
.us-tabela td{padding:7px 12px;border-bottom:1px solid var(--line);vertical-align:middle;min-width:0;overflow-wrap:anywhere}
.us-tabela td.us-col-acoes,.us-tabela th:last-child{text-align:right}
.us-tabela tbody tr:last-child td{border-bottom:0}
.us-linha{cursor:pointer;transition:background .15s}
.us-linha:hover{background:var(--paper)}
.us-linha.us-selecionada{background:var(--accent-soft)}
.us-pessoa{display:flex;gap:var(--s3);align-items:center;min-width:0}
.us-pessoa>div{min-width:0}
.us-pessoa p{margin:2px 0 0;color:var(--muted);font-size:12px;overflow-wrap:anywhere;line-height:1.3}
.us-pessoa small{display:block;font-size:11px;color:var(--muted)}
.us-sem-email{font-style:italic}
.us-avatar{flex:0 0 32px;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--paper);border:1px solid var(--line);color:var(--green);font-size:12px;font-weight:600;letter-spacing:.02em}
.us-avatar-grande{flex-basis:44px;width:44px;height:44px;font-size:15px}
.us-nome{text-align:left;border:0;background:none;color:var(--ink);font-size:14px;font-weight:600;padding:0;overflow-wrap:anywhere;line-height:1.3}
.us-nome:hover{text-decoration:underline}
/* Uma linha por pessoa na tabela: nome e e-mail longos cortam com reticência
   (o nome inteiro fica no title), senão cada nome comprido custa uma linha. */
.us-tabela .us-nome,.us-tabela .us-pessoa p{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.us-perfil{display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center}
.us-marca{background:var(--paper);border:1px solid var(--line);padding:1px 5px;border-radius:5px;font-size:10px;color:var(--green)}
.us-estado{display:inline-block;border-radius:5px;padding:4px 8px;background:var(--paper);font-size:12px;line-height:1.2}
.us-active{background:#eaf4ed;color:#246440}
.us-awaiting_first_access{background:#fff1d9;color:#775013}
.us-inactive,.us-removed{background:#f5eae8;color:#8a4036}
.us-vinculos{font-size:12px;color:var(--ink)}
.us-sem-registro{font-size:12px;color:var(--muted);white-space:nowrap}
.us-tabela time{font-size:13px}
.us-ver-ficha{min-height:32px;padding:6px 12px;font-size:13px;border-radius:4px;white-space:nowrap}
.us-rotulo{display:none}
.us-oculto{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.us-paginacao{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s3);align-items:center;margin:var(--s3) 0;font-size:12px}
.us-paginas{display:flex;flex-wrap:wrap;gap:6px}
.us-paginas button{min-height:32px;min-width:32px;padding:4px 10px;font-size:12px}
.us-vazio{text-align:center;padding:32px 20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.us-vazio img{max-width:200px}
/* ⚠️ O lançador do chat é fixo no canto inferior direito (54px a 22px da borda).
   Com ele na conta, a página guarda uma faixa à direita: nenhuma ação da lista,
   da prévia acoplada ou da ficha passa por baixo dele em nenhuma rolagem. */
@media(min-width:761px){body:has(.minichat-botao) .us-pagina,body:has(.minichat-botao) .pf-pagina{padding-right:40px}}
@media(max-width:760px){body:has(.minichat-botao) .us-pagina{padding-bottom:76px}}
/* Prévia lateral: acoplada quando ainda sobra tabela; sobreposta quando não. */
.us-pagina.us-com-gaveta{display:grid;grid-template-columns:minmax(0,1fr) 380px;column-gap:var(--s4);align-items:start}
.us-pagina.us-com-gaveta>*{grid-column:1}
.us-pagina.us-com-gaveta>.us-gaveta{grid-column:2;grid-row:1/span 7;position:sticky;top:16px;max-height:calc(100dvh - 32px);inline-size:auto;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--sombra-1);z-index:1}
.us-gaveta{padding:20px;gap:var(--s3);font-size:14px}
.us-gaveta-sobreposta{position:fixed;inset:0 0 0 auto;inline-size:min(420px,100vw);z-index:70;box-shadow:-18px 0 44px #1c1d1b1f}
/* ⚠️ `header` global tem altura fixa de 76px e padding lateral: aqui ele é só o topo da gaveta. */
.us-gaveta-topo{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s3);height:auto;padding:0;border:0;background:none}
.us-gaveta-topo .us-pessoa>div{min-width:0}
.us-gaveta-topo h2{font-size:20px;margin:0;overflow-wrap:anywhere}
.us-gaveta-topo .eyebrow{margin-bottom:2px}
.us-gaveta h3{font-size:13px;margin:var(--s2) 0 0}
.us-fechar{display:grid;place-items:center;width:36px;height:36px;padding:0;border-radius:4px;flex:0 0 36px}
.us-perfil-selo{font-size:12px;border:1px solid var(--line);border-radius:5px;padding:3px 8px}
.us-dados{display:flex;flex-direction:column;gap:10px;margin:0;border-block:1px solid var(--line);padding-block:var(--s3)}
.us-dados div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:var(--s3);align-items:baseline}
.us-dados dt{font-size:12px;color:var(--muted)}.us-dados dd{margin:0;font-size:14px;overflow-wrap:anywhere}
.us-gaveta-rodape{margin-top:auto;padding-top:var(--s3)}
.us-gaveta-rodape .primary{width:100%;display:inline-flex;justify-content:center;align-items:center;gap:6px;min-height:42px;margin:0;border-radius:6px}
.us-acao-risco{color:#8a4036}
/* Confirmação de acesso, entrega do link e páginas públicas (fluxo de 30/09). */
.us-dialogo p{font-size:13px}
.us-dialogo{width:min(700px,calc(100vw - 48px));max-height:calc(100dvh - 48px);padding:0;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--sombra-3);color:var(--ink);background:var(--surface);overflow:auto}
.us-dialogo::backdrop{background:#1c1d1b66}
.us-dialogo-topo{display:flex;justify-content:space-between;align-items:center;gap:var(--s3)}
.us-dialogo-topo .eyebrow{margin:0}
.us-ficha-corpo{padding:24px;overflow-wrap:anywhere}
.us-resumo,.us-botoes,.ac-botoes{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.us-aviso{background:var(--accent-soft);border-radius:7px;padding:12px;color:var(--accent-ink);font-size:13px;margin:0}
.us-acoes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:start}
.us-acoes button{min-height:40px}
.us-indisponivel{background:var(--paper);padding:10px 12px;border-radius:7px;font-size:12px}
.us-indisponivel strong{font-weight:600}
.us-indisponivel p{color:var(--muted);margin:4px 0 0;font-size:12px}
.us-alcance{border:1px solid var(--line);border-radius:8px;padding:12px 14px;margin:12px 0;background:var(--paper)}
.us-alcance ul{margin:6px 0;padding-left:18px;font-size:13px}
.us-alcance p{margin:0;color:var(--muted);font-size:12px}
.us-historico{list-style:none;margin:0 0 20px;padding:0}
.us-historico li{border-top:1px solid var(--line);padding:14px 0}
.us-historico p{margin:5px 0;font-size:12px}
.us-historico small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.us-dialogo fieldset{border:0;padding:0;margin:0}
.us-confirmacao{display:flex;gap:10px;align-items:start}
.us-confirmacao input{width:18px;flex:0 0 18px;margin:2px 0}
.us-dialogo textarea,.ac-entrega textarea{width:100%;font:inherit;font-size:13px;line-height:1.6;resize:vertical;border:1px solid var(--line);border-radius:6px;padding:12px;background:var(--surface);color:var(--ink);overflow-wrap:anywhere}
.us-dialogo textarea:focus-visible,.ac-entrega textarea:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.us-linha:focus-visible,.us-indicador:focus-visible,.us-nome:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.ac-entrega{margin-top:18px;padding:20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-width:0;overflow-wrap:anywhere}
.ac-entrega a{text-decoration:none}
.ac-entrega [role=status]{font-size:13px;min-height:20px;margin:12px 0 0}
.ac-botoes{margin:18px 0}
.ac-publico{min-height:100dvh;display:grid;place-items:center;padding:32px 20px;background:var(--paper)}
.ac-publico-caixa{width:min(100%,520px);padding:32px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--sombra-1);overflow-wrap:anywhere}
.ac-publico-caixa h1{font-size:27px}
.ac-publico-caixa fieldset{border:0;padding:0;margin:0}
.ac-publico-caixa a{color:var(--accent-ink)}
.ac-publico-caixa [role=alert]{color:#8a4036}
.us-dialogo [role=alert]{color:#8a4036}
.ac-publico-marca{--marca-altura:27px;color:var(--ink);margin-bottom:28px}
@media(max-width:1150px){.us-indicadores{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:761px) and (max-width:1150px){.us-tabela th:nth-child(1){width:28%}.us-tabela th:nth-child(4){width:18%}}
@media(max-width:760px){
 .us-pagina .us-topo{flex-direction:column;align-items:stretch;gap:var(--s3)}
 .us-topo-acoes{justify-content:stretch;max-width:none}.us-topo-acoes button{flex:1}
 .us-nota-cadastro{text-align:left}
 .us-indicadores{gap:var(--s2)}
 .us-indicador{padding:10px;column-gap:var(--s2)}.us-indicador strong{font-size:20px}.us-indicador small{display:none}
 .us-filtros{padding:12px;gap:10px}
 .us-filtros label,.us-filtros label.us-busca{flex:1 1 100%}
 /* Filtros recolhíveis no celular: a busca fica à vista; o resto abre no botão. */
 .us-mais-filtros{display:inline-flex;align-items:center;justify-content:center;flex:1 1 40%;min-height:44px}
 .us-filtros:not(.us-filtros-abertos) label:not(.us-busca){display:none}
 .us-filtros label.us-tamanho{flex:1 1 40%}.us-filtros>button{flex:1 1 40%;min-height:44px}
 /* Celular: cada pessoa vira um cartão. */
 .us-tabela-caixa{background:none;border:0;overflow:visible}
 .us-tabela,.us-tabela tbody{display:block;table-layout:auto}
 .us-tabela thead{display:none}
 .us-tabela tr.us-linha{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px 12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin-bottom:10px}
 .us-tabela td{display:block;padding:0;border:0}
 .us-tabela td.us-col-pessoa{grid-column:1/-1}
 .us-tabela td.us-col-acoes{grid-column:1/-1;text-align:left;padding:0}
 .us-tabela td:nth-child(4),.us-tabela td:nth-child(5){grid-column:1/-1}
 .us-ver-ficha{min-height:44px;width:60%}
 .us-tabela .us-nome,.us-tabela .us-pessoa p{white-space:normal;overflow:visible}
 .us-rotulo{display:block;font-size:11px;color:var(--muted);margin-bottom:3px}
 .us-paginacao{justify-content:flex-start;padding-right:0}.us-paginacao>span{flex:1 0 100%}
 .us-paginas button{min-height:44px;min-width:44px}
 .us-gaveta-sobreposta{inline-size:100vw;border-left:0}
 .us-dados div{grid-template-columns:minmax(0,1fr)}
 .us-acoes{grid-template-columns:1fr}.us-acoes button{min-height:44px}
 .us-gaveta-rodape{padding-bottom:76px}
 .us-dialogo{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0}
 .us-ficha-corpo{padding:20px}
 .us-botoes>*{flex:1}
 .us-dialogo form .us-botoes{position:sticky;bottom:0;background:var(--surface);padding:12px 0}
 .us-dialogo form{padding-bottom:env(safe-area-inset-bottom)}
 .ac-entrega{padding:16px}.ac-botoes>*{flex:1 0 100%}
 .ac-publico{padding:20px 14px;align-items:start}.ac-publico-caixa{padding:24px 20px}
}
@media(max-height:820px) and (min-width:761px){.us-indicador small{display:none}.us-legenda-contagem{display:none}}
/* 02/10 (revisão do Codex): no celular o lançador flutuante do chat cobria
   controles da ficha (o campo "Até" da Atividade) durante a rolagem. Nas telas
   de Usuários ele recolhe; o chat continua no menu. */
@media(max-width:760px){body:has(.us-pagina,.pf-pagina) .minichat-botao{display:none}}
