/* IODOO — UX (auditoria 30/09/2026, Builds 562+): componentes comuns usados na correção de todas as telas.
 * Regras: 1 primário por bloco (.btn) · secundários .btn-claro · excedentes em <details class="mais"> · destrutivo .btn-perigo + confirm ·
 * subtítulo de 1 linha + <details class="como-funciona"> · vazio = .vazio · KPI = <a class="kpi"> · formulário raro = <details class="ux-rec">.
 * Cada área tem o seu arquivo (ux-inicio.css, ux-vendas.css, ux-tarefas.css, ux-financeiro.css, ux-rh.css); este é só o comum. */

/* botão verde (no lugar de style="background:var(--ok)") */
.btn-ok{background:var(--ok);color:#fff !important;border-color:var(--ok)}
.btn-ok:hover{filter:brightness(1.08)}
/* KPI com valor em R$ (no lugar de <b style="font-size:1.1rem">) */
.kpi-moeda b{font-size:1.15rem}
/* menu "⋯ Mais" — <details class="mais"><summary>⋯ Mais</summary><div class="mais-menu">links/forms</div></details> */
details.mais{position:relative;display:inline-block;margin:0}
/* Build 663: table.lista tem overflow:clip (cantos arredondados) e cortava o menu ⋯ da última linha (ficha do cliente → licenças) */
table.lista:has(details.mais[open]),.od-lista:has(details.mais[open]),.cartao:has(table.lista details.mais[open]){overflow:visible}
details.mais>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:5px 14px;border-radius:var(--radius);border:1px solid var(--borda);background:#fff;color:var(--navy);font-weight:600;font-size:.85rem}
details.mais>summary::-webkit-details-marker{display:none}
details.mais[open]>summary{background:var(--gelo)}
.mais-menu{position:absolute;right:0;top:calc(100% + 4px);z-index:30;min-width:240px;background:#fff;border:1px solid var(--borda);border-radius:10px;box-shadow:0 12px 32px rgba(21,29,53,.18);padding:6px;display:flex;flex-direction:column;gap:2px}
.mais-menu a,.mais-menu button,.mais-menu form{display:block;width:100%;text-align:left;margin:0}
.mais-menu>a,.mais-menu>button,.mais-menu form>button{padding:8px 10px;border-radius:6px;background:none;border:0;color:var(--texto);font:inherit;font-size:.88rem;cursor:pointer;text-decoration:none;box-shadow:none}
.mais-menu>a:hover,.mais-menu>button:hover,.mais-menu form>button:hover{background:var(--gelo)}
.mais-menu .perigo{color:var(--erro)}
.mais-menu hr{border:0;border-top:1px solid var(--borda);margin:4px 0}
/* Build 623 (Alfredo 06/10/2026, webmail → "Marcar ▾" abria uma caixa branca sem os itens legíveis — "contraste"): regras explícitas e com
   especificidade alta para os itens que são <form><button> (Importante, Urgente, Não lida, Estrela): texto escuro sempre, largura mínima,
   fundo branco e nada herdado de botões/temas de outras barras. Tema escuro com as próprias cores. */
/* CAUSA REAL: o menu abre alinhado à DIREITA do botão (right:0). Na barra do webmail o "Marcar ▾" fica perto da borda esquerda do painel de
   leitura, que rola (overflow:auto) — o menu de 240 px saía pela esquerda do painel e era cortado: só a tira branca da ponta ficava visível,
   sem o texto. Nessa barra o menu abre para a DIREITA (left:0). */
.tb-acoes details.mais>.mais-menu{left:0;right:auto}
details.mais>.mais-menu{min-width:240px!important;width:max-content;max-width:min(92vw,360px);background:#fff!important;color:#1D1D1F!important}
details.mais>.mais-menu form{display:block!important;width:100%;margin:0}
details.mais>.mais-menu form>button,details.mais>.mais-menu>button,details.mais>.mais-menu>a{display:block!important;width:100%;text-align:left;padding:8px 10px;border:0!important;border-radius:6px;background:transparent!important;color:#1D1D1F!important;font:inherit;font-size:.88rem!important;line-height:1.4;white-space:nowrap;cursor:pointer;box-shadow:none!important;opacity:1!important;visibility:visible!important;text-indent:0;min-height:0}
details.mais>.mais-menu form>button:hover,details.mais>.mais-menu>button:hover,details.mais>.mais-menu>a:hover{background:#EEF1F6!important;color:#1E2A4A!important}
details.mais>.mais-menu .perigo,details.mais>.mais-menu .perigo:hover{color:var(--erro,#b42318)!important}
body[data-tema=escuro] details.mais>.mais-menu{background:#242C40!important;color:#E8EAEE!important}
body[data-tema=escuro] details.mais>.mais-menu form>button,body[data-tema=escuro] details.mais>.mais-menu>button,body[data-tema=escuro] details.mais>.mais-menu>a{color:#E8EAEE!important}
body[data-tema=escuro] details.mais>.mais-menu form>button:hover,body[data-tema=escuro] details.mais>.mais-menu>button:hover,body[data-tema=escuro] details.mais>.mais-menu>a:hover{background:#2E3750!important;color:#fff!important}
/* "Como funciona" — <details class="como-funciona"><summary>Como funciona</summary><div>…</div></details> */
details.como-funciona{margin:6px 0 0;font-size:.84rem;color:var(--cinza)}
details.como-funciona>summary{cursor:pointer;color:var(--navy);font-weight:600;list-style:none;display:inline-flex;gap:6px;align-items:center}
details.como-funciona>summary::-webkit-details-marker{display:none}
details.como-funciona>summary::before{content:"?";display:inline-flex;width:18px;height:18px;border-radius:50%;align-items:center;justify-content:center;background:var(--gelo);font-size:.72rem}
details.como-funciona>div,details.como-funciona>p,details.como-funciona>ul{margin:6px 0 0;padding:10px 14px;background:var(--gelo);border-radius:10px;line-height:1.5}
/* formulário raro recolhido — <details class="ux-rec"><summary class="btn btn-claro btn-pequeno">+ Enviar atestado</summary>…form…</details> */
details.ux-rec>summary{list-style:none;cursor:pointer;display:inline-flex;margin:0}
details.ux-rec>summary::-webkit-details-marker{display:none}
details.ux-rec>.cartao,details.ux-rec>div{margin-top:10px}
/* faixa de situação única (no lugar de várias faixas empilhadas) */
.faixa-sit{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;padding:8px 12px;border-radius:10px;background:var(--gelo);font-size:.86rem;margin:0 0 12px}
.faixa-sit>span{display:inline-flex;align-items:center;gap:6px}
.faixa-sit .btn{margin:0}
/* passos ①②③ (mesmo visual das contas bancárias) */
.ux-passos{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 12px}
.ux-passo{flex:1 1 200px;display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:center;padding:8px 12px;border-radius:12px;background:var(--gelo);min-width:0}
.ux-passo>i{grid-row:span 2;font-style:normal;font-weight:800;font-size:.8rem;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--navy);color:#fff}
.ux-passo.ok>i{background:var(--ok)}.ux-passo.pend>i{background:#E0A526;color:#2B2000}
.ux-passo>b{font-size:.88rem;color:var(--navy)}
.ux-passo>small{font-size:.74rem;color:var(--cinza);line-height:1.3}
/* linha só-leitura + edição expandida — <tr class="ux-edit"> aberta pelo botão */
tr.ux-edit>td{background:var(--gelo);padding:12px 14px}
tr.ux-edit .lista-3,tr.ux-edit .linha-campos{margin:0}
/* resumo em texto normal (no lugar de formulário desabilitado) */
.resumo-dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px 16px;margin:0}
.resumo-dl>div{min-width:0}.resumo-dl dt{font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--cinza)}.resumo-dl dd{margin:2px 0 0;font-weight:600;color:var(--navy);overflow-wrap:anywhere}
/* índice de âncoras no topo de páginas longas */
.ux-indice{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.ux-indice a{display:inline-block;padding:4px 11px;border-radius:999px;background:var(--gelo);color:var(--navy);font-size:.82rem;font-weight:600;text-decoration:none}
.ux-indice a:hover{background:#E3E7F0}
/* segmentado de status — 3 botões no lugar de select */
.segmentado{display:inline-flex;border:1px solid var(--borda);border-radius:999px;overflow:hidden}
.segmentado button,.segmentado a{margin:0;border:0;border-radius:0;background:#fff;padding:6px 14px;font:inherit;font-size:.84rem;font-weight:600;color:var(--navy);cursor:pointer;text-decoration:none}
.segmentado .ativo{background:var(--navy);color:#fff}
@media print{.faixa-sit,details.como-funciona,details.mais,.ux-indice{display:none !important}}
body[data-tema=escuro] details.mais>summary,body[data-tema=escuro] .mais-menu,body[data-tema=escuro] .segmentado button,body[data-tema=escuro] .segmentado a{background:#242C40;border-color:#3D4660;color:#E8EAEE}
body[data-tema=escuro] .mais-menu>a,body[data-tema=escuro] .mais-menu>button,body[data-tema=escuro] .mais-menu form>button{color:#E8EAEE}
body[data-tema=escuro] .mais-menu>a:hover,body[data-tema=escuro] .mais-menu>button:hover,body[data-tema=escuro] .mais-menu form>button:hover{background:#2E3750}
body[data-tema=escuro] .faixa-sit,body[data-tema=escuro] .ux-passo,body[data-tema=escuro] .ux-indice a,body[data-tema=escuro] details.como-funciona>div,body[data-tema=escuro] tr.ux-edit>td{background:#1B2130}
body[data-tema=escuro] .ux-passo>i{background:#D5DDF0;color:#151D35}

/* Alfredo 30/09/2026: "essa barra deve ser clara e os textos em azul navy" — sub-barra da seção (menu do módulo) clara, textos navy; tema escuro continua escuro */
.submenu{background:#F5F6F9;border-top:1px solid #E3E6EA;border-bottom:1px solid #E3E6EA}
.submenu-in a{color:#1E2A4A}
.submenu-in a:hover{background:#E8ECF5;color:#1E2A4A}
.submenu-in a.ativo{color:#1E2A4A;background:#E2E7F3;box-shadow:inset 0 -2px 0 var(--ouro)}
.submenu .mod-marca{border-right-color:#D5DAE3}
.submenu .mm-nome{color:#1E2A4A}
.submenu .mm-pb{color:#7A6230}
.submenu .mod-marca.mm-email .mm-pb{color:#1D4F8F}
.submenu-mais summary{color:#1E2A4A}
.submenu-mais summary:hover{background:#E8ECF5}
.submenu-mais-lista{background:#fff;border:1px solid #E3E6EA;box-shadow:0 10px 30px rgba(21,29,53,.16)}
.submenu-mais-lista a{color:#1E2A4A}
.submenu-mais-lista a:hover{background:#E8ECF5}
.fin-ent{padding:6px 0 8px}
body[data-tema=escuro] .submenu{background:#1B2130;border-color:#2F3748}
body[data-tema=escuro] .submenu-in a,body[data-tema=escuro] .submenu .mm-nome,body[data-tema=escuro] .submenu-mais summary{color:#E8EAEE}
body[data-tema=escuro] .submenu-in a:hover,body[data-tema=escuro] .submenu-in a.ativo{background:#2E3750;color:#fff}
body[data-tema=escuro] .submenu-mais-lista{background:#1E2A4A;border-color:#3D4660}
body[data-tema=escuro] .submenu-mais-lista a{color:#E8EAEE}
/* UX 30/09/2026 (U-17): "Mais ▾" definido no catálogo de módulos (4º elemento 'mais') */
.submenu-mais-fixo{position:relative;display:inline-block}
.submenu-mais-fixo>summary{list-style:none;cursor:pointer;color:#1E2A4A;font-weight:600;font-size:.87rem;padding:7px 13px;border-radius:7px;min-height:32px;display:inline-flex;align-items:center;white-space:nowrap}
.submenu-mais-fixo>summary::-webkit-details-marker{display:none}
.submenu-mais-fixo>summary:hover,.submenu-mais-fixo[open]>summary{background:#E8ECF5}
.submenu-mais-fixo>summary.ativo{background:#E2E7F3;box-shadow:inset 0 -2px 0 var(--ouro)}
.submenu-mais-fixo .submenu-mais-lista{left:auto;right:0}
.submenu-mais-lista a.ativo{background:#E2E7F3}
body[data-tema=escuro] .submenu-mais-fixo>summary{color:#E8EAEE}
/* Build 596 (Alfredo 01/10/2026, "o hover do botão Mais está com contraste ruim"): o app.css pintava o texto de branco no hover/aberto (era da barra escura antiga) — texto branco sobre fundo claro */
.submenu-mais summary:hover,.submenu-mais[open] summary,.submenu-mais-fixo>summary:hover,.submenu-mais-fixo[open]>summary{background:#E8ECF5;color:#1E2A4A}
body[data-tema=escuro] .submenu-mais summary:hover,body[data-tema=escuro] .submenu-mais[open] summary,body[data-tema=escuro] .submenu-mais-fixo>summary:hover,body[data-tema=escuro] .submenu-mais-fixo[open]>summary{background:#2E3750;color:#fff}
body[data-tema=escuro] .submenu-mais-fixo>summary.ativo{background:#2E3750}
body[data-tema=escuro] .submenu-mais-lista a:hover,body[data-tema=escuro] .submenu-mais-lista a.ativo{background:#2E3750;color:#fff}
/* Build 568 (Alfredo 01/10/2026, "corrigir o contraste"): busca global no TEMA ESCURO — itens saíam em texto escuro sobre fundo escuro e o rodapé ficava branco */
body[data-tema=escuro] .bg-caixa{background:#1C2230;border:1px solid #333B4D}
body[data-tema=escuro] .bg-topo{border-bottom-color:#333B4D}
body[data-tema=escuro] .bg-topo input{color:#F2F4F8;background:transparent}
body[data-tema=escuro] .bg-topo input::placeholder{color:#9AA2AE}
body[data-tema=escuro] .bg-lupa{opacity:.9}
body[data-tema=escuro] .bg-grupo{color:#A3ABB8}
body[data-tema=escuro] .bg-item{color:#E8EAEE}
body[data-tema=escuro] .bg-item .bg-t{color:#E8EAEE}
body[data-tema=escuro] .bg-item small{color:#A3ABB8}
body[data-tema=escuro] .bg-item:hover{background:rgba(255,255,255,.06)}
body[data-tema=escuro] .bg-item.ativo{background:rgba(127,180,255,.20)}
body[data-tema=escuro] .bg-item.ativo .bg-t{color:#fff}
body[data-tema=escuro] .bg-nada,body[data-tema=escuro] .bg-carregando{color:#A3ABB8}
body[data-tema=escuro] .bg-rodape{background:#151A26;border-top-color:#333B4D;color:#A3ABB8}
body[data-tema=escuro] .bg-rodape kbd,body[data-tema=escuro] .bg-topo kbd,body[data-tema=escuro] .bg-atalhos kbd{background:#2A3246;color:#E8EAEE;border-color:#3D4660}
body[data-tema=escuro] .bg-atalhos dl>div{border-top-color:#333B4D}
body[data-tema=escuro] .bg-atalhos dd,body[data-tema=escuro] .bg-atalhos h2{color:#E8EAEE}
/* Build 570: caixa de sugestão (ex.: "Roteiro sugerido" na tarefa) — legível nos dois temas */
.ux-sug{margin:10px 0;padding:10px 12px;border:1px solid #F5D78E;background:#FFF8E6;border-radius:8px;color:#3A2E12}
.ux-sug .mini{color:#6B5A2A}
body[data-tema=escuro] .ux-sug{background:#3A3222;border-color:#6B5A2A;color:#F5E7BD}
body[data-tema=escuro] .ux-sug .mini{color:#D9C68F}
/* Build 570 (contraste no tema escuro): caixas com fundo claro escrito no style="" ficavam com o texto claro do tema por cima.
   Vale para a área de trabalho (main); prévias de papel (orçamento, e-mail, documento) continuam claras. */
body[data-tema=escuro] main [style*="background:#f4f5f7" i]:not(.previa-box *):not(.em-corpo *):not(.pv *),
body[data-tema=escuro] main [style*="background:#f8f9fa" i]:not(.previa-box *):not(.em-corpo *):not(.pv *),
body[data-tema=escuro] main [style*="background:#fafafb" i]:not(.previa-box *):not(.em-corpo *):not(.pv *),
body[data-tema=escuro] main [style*="background:#eef0f4" i]:not(.previa-box *):not(.em-corpo *):not(.pv *),
body[data-tema=escuro] main [style*="background:#e9ebef" i]:not(.previa-box *):not(.em-corpo *):not(.pv *),
body[data-tema=escuro] main [style*="background:#f3f6fb" i]:not(.previa-box *):not(.em-corpo *):not(.pv *),
body[data-tema=escuro] main [style*="background:#f6f3ff" i]:not(.previa-box *):not(.em-corpo *):not(.pv *){background:#1B2130 !important;color:#E8EAEE !important;border-color:#333B4D !important}
body[data-tema=escuro] main [style*="background:#fdf3e3" i]:not(.previa-box *):not(.em-corpo *):not(.pv *),
body[data-tema=escuro] main [style*="background:#fff8e6" i]:not(.previa-box *):not(.em-corpo *):not(.pv *),
body[data-tema=escuro] main [style*="background:#fff7df" i]:not(.previa-box *):not(.em-corpo *):not(.pv *),
body[data-tema=escuro] main [style*="background:#fffdf6" i]:not(.previa-box *):not(.em-corpo *):not(.pv *),
body[data-tema=escuro] main [style*="background:#fdf9f1" i]:not(.previa-box *):not(.em-corpo *):not(.pv *),
body[data-tema=escuro] main [style*="background:#fffdf7" i]:not(.previa-box *):not(.em-corpo *):not(.pv *),
body[data-tema=escuro] main [style*="background:#fffbea" i]:not(.previa-box *):not(.em-corpo *):not(.pv *),
body[data-tema=escuro] main [style*="background:#fff7ed" i]:not(.previa-box *):not(.em-corpo *):not(.pv *),
body[data-tema=escuro] main [style*="background:#fff3b0" i]:not(.previa-box *):not(.em-corpo *):not(.pv *){background:#3A3222 !important;color:#F5E7BD !important;border-color:#6B5A2A !important}
body[data-tema=escuro] main [style*="background:#f3faf5" i]:not(.previa-box *):not(.em-corpo *):not(.pv *),
body[data-tema=escuro] main [style*="background:#f0fff4" i]:not(.previa-box *):not(.em-corpo *):not(.pv *),
body[data-tema=escuro] main [style*="background:#f0f7f1" i]:not(.previa-box *):not(.em-corpo *):not(.pv *){background:#1C3325 !important;color:#CDEBD6 !important;border-color:#2F5A3D !important}
body[data-tema=escuro] main [style*="background:#fdf3f3" i]:not(.previa-box *):not(.em-corpo *):not(.pv *),
body[data-tema=escuro] main [style*="background:#fdecec" i]:not(.previa-box *):not(.em-corpo *):not(.pv *),
body[data-tema=escuro] main [style*="background:#fff6f6" i]:not(.previa-box *):not(.em-corpo *):not(.pv *),
body[data-tema=escuro] main [style*="background:#fff5f5" i]:not(.previa-box *):not(.em-corpo *):not(.pv *),
body[data-tema=escuro] main [style*="background:#fdf2f2" i]:not(.previa-box *):not(.em-corpo *):not(.pv *),
body[data-tema=escuro] main [style*="background:#fbeaea" i]:not(.previa-box *):not(.em-corpo *):not(.pv *){background:#3E2224 !important;color:#FFD0D0 !important;border-color:#6B3A3D !important}
body[data-tema=escuro] main [style*="background:#f" i] .mini:not(.previa-box *):not(.em-corpo *):not(.pv *){color:inherit;opacity:.85}

/* card "Licenças do cliente" em destaque quando há licença pendente — não pode passar despercebido */
.cartao.le-pendente{background:#FDF1F1;border:1px solid #E8B4B4;border-left:6px solid #B02A2A;box-shadow:0 0 0 3px rgba(176,42,42,.08)}
.cartao.le-atencao{background:#FFF8EA;border:1px solid #EBD3A0;border-left:6px solid #B7791F}
.cartao.le-pendente h2,.cartao.le-pendente>summary h2{color:#8F1F1F}
.cartao.le-atencao h2,.cartao.le-atencao>summary h2{color:#8A5A12}
.cartao.le-pendente table.lista,.cartao.le-atencao table.lista{background:#fff}
body[data-tema=escuro] .cartao.le-pendente{background:#3A1F22;border-color:#7A3A3A;border-left-color:#E06666;box-shadow:0 0 0 3px rgba(224,102,102,.12)}
body[data-tema=escuro] .cartao.le-atencao{background:#3A3020;border-color:#7A6233;border-left-color:#E0A84A}
body[data-tema=escuro] .cartao.le-pendente h2,body[data-tema=escuro] .cartao.le-pendente>summary h2{color:#FFB3B3}
body[data-tema=escuro] .cartao.le-atencao h2,body[data-tema=escuro] .cartao.le-atencao>summary h2{color:#FFD591}
body[data-tema=escuro] .cartao.le-pendente table.lista,body[data-tema=escuro] .cartao.le-atencao table.lista{background:#1B2130}

/* tarefa sem nenhum guia (sem roteiro/dicas): uma coluna só, sem deixar a direita vazia */
.tarefa-grid.tarefa-grid-1{grid-template-columns:1fr}
.tarefa-grid.tarefa-grid-1>.tarefa-col:last-child{display:none}
