/* =========================================================
   Emissor de NFS-e · Entusiasta Tributário
   Classes com prefixo em-  ·  Variáveis com prefixo --em-
   Sem dependências externas. Fonte Inter local (fallback do sistema).
   ========================================================= */
@font-face{font-family:"Inter";src:local("Inter"),url("../fonts/Inter-Variable.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}

:root{
  --em-bg:#f5f4f1;--em-cartao:#ffffff;--em-superficie:#efeee8;--em-superficie-2:#faf9f7;
  --em-borda:#e3e1da;--em-borda-forte:#c9c6bb;
  --em-texto:#17181a;--em-texto-2:#5c5b56;
  --em-laranja:#e07b00;--em-laranja-hover:#c96a00;--em-laranja-claro:#fff3e0;--em-laranja-texto:#9a5100;
  --em-ok:#1d7a3d;--em-ok-bg:#e8f5ed;--em-ok-borda:#b9dec7;
  --em-erro:#b3261e;--em-erro-bg:#fdeceb;--em-erro-borda:#f3c1bd;
  --em-alerta:#8a5600;--em-alerta-bg:#fff5d9;--em-alerta-borda:#f0c661;--em-alerta-ponto:#d99a00;
  --em-neutro:#5c5b56;--em-neutro-bg:#efeee8;--em-neutro-borda:#dcd9d0;
  --em-fonte:"Inter","Segoe UI",system-ui,sans-serif;
  --em-raio:8px;--em-sombra:0 2px 12px rgba(0,0,0,.10);--em-trans:.2s ease;
  --em-topo:64px;--em-menu:240px;
}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
.em-body{margin:0;background:var(--em-bg);color:var(--em-texto);font:15px/1.5 var(--em-fonte);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.em-body a{color:var(--em-laranja-texto)}
.em-body a:hover{color:var(--em-laranja-hover)}
.em-body :focus-visible{outline:2px solid var(--em-laranja);outline-offset:2px}
.em-body h1,.em-body h2,.em-body h3,.em-body p{margin:0}
.em-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.em-texto-2{color:var(--em-texto-2)}
.em-pilha{display:flex;flex-direction:column;gap:16px}
.em-linha{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.em-sobre{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--em-texto-2)}
.em-titulo{font-size:24px;font-weight:800;line-height:1.2}

/* ---------- Barra do protótipo (remover na implementação) ---------- */
.em-proto{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:8px 16px;background:#17181a;color:#fff;font-size:12px}
.em-proto b{letter-spacing:.08em;text-transform:uppercase;font-size:11px;margin-right:6px}
.em-proto button{font:inherit;color:#fff;background:transparent;border:1px solid #6b6a64;border-radius:999px;padding:3px 10px;cursor:pointer}
.em-proto button[aria-pressed="true"]{background:var(--em-laranja);border-color:var(--em-laranja);color:#17181a;font-weight:700}
.em-proto__sep{margin-left:10px}
.em-proto a{color:#fff!important;margin-left:auto}

/* ---------- Topo ---------- */
.em-topo{position:sticky;top:0;z-index:30;display:flex;flex-wrap:wrap;align-items:center;gap:16px;min-height:var(--em-topo);padding:8px 20px;background:rgba(255,255,255,.96);border-bottom:2px solid var(--em-laranja);box-shadow:0 2px 20px rgba(0,0,0,.06)}
.em-logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--em-texto)!important}
.em-logo__marca{flex:none;width:36px;height:36px;border-radius:9px;background:var(--em-laranja);color:#fff;display:grid;place-items:center;font-weight:900;font-size:20px;box-shadow:0 2px 8px rgba(224,123,0,.35)}
.em-logo__nome{display:flex;flex-direction:column;font-weight:800;font-size:15px;line-height:1.05}
.em-logo__nome span:last-child{color:var(--em-laranja)}
.em-logo__produto{padding-left:10px;border-left:1px solid var(--em-borda);font-size:12px;font-weight:700;color:var(--em-texto-2);line-height:1.2}
.em-empresa{display:flex;flex-direction:column;gap:2px;min-width:0;max-width:380px}
.em-empresa label{font-size:11px;font-weight:700;color:var(--em-texto-2)}
.em-ambiente{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;background:var(--em-alerta-bg);border:1px solid var(--em-alerta-borda);color:var(--em-alerta);font-size:12px;font-weight:800;letter-spacing:.02em}
.em-ambiente::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--em-alerta-ponto)}
.em-topo__esp{flex:1}
.em-btn-menu{display:none!important}
.em-usuario{position:relative}
.em-usuario summary{list-style:none;display:flex;align-items:center;gap:8px;min-height:44px;padding:4px 8px;border-radius:var(--em-raio);cursor:pointer;font-weight:700;font-size:14px}
.em-usuario summary::-webkit-details-marker{display:none}
.em-usuario summary:hover{background:var(--em-laranja-claro)}
.em-avatar{width:34px;height:34px;border-radius:50%;background:var(--em-texto);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:800}
.em-usuario__menu{position:absolute;right:0;top:calc(100% + 6px);min-width:200px;padding:6px;background:#fff;border:1px solid var(--em-borda);border-radius:var(--em-raio);box-shadow:var(--em-sombra);display:flex;flex-direction:column;z-index:40}
.em-usuario__menu a{padding:10px 12px;border-radius:6px;color:var(--em-texto)!important;text-decoration:none;font-weight:600;font-size:14px}
.em-usuario__menu a:hover{background:var(--em-laranja-claro)}

/* ---------- Layout ---------- */
.em-app{display:grid;grid-template-columns:var(--em-menu) minmax(0,1fr);min-height:calc(100vh - var(--em-topo))}
.em-menu{position:sticky;top:var(--em-topo);height:calc(100vh - var(--em-topo));overflow:auto;padding:16px 0;background:#fff;border-right:1px solid var(--em-borda)}
.em-menu__rotulo{padding:6px 20px 8px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--em-texto-2)}
.em-menu a{display:flex;align-items:center;gap:10px;min-height:44px;padding:10px 20px;color:var(--em-texto)!important;text-decoration:none;font-weight:600;font-size:14px;transition:background var(--em-trans)}
.em-menu a::before{content:"";flex:none;width:8px;height:8px;border:2px solid var(--em-borda-forte);border-radius:2px}
.em-menu a:hover{background:var(--em-laranja-claro)}
.em-menu a[aria-current="page"]{background:var(--em-texto);color:#fff!important;font-weight:800}
.em-menu a[aria-current="page"]::before{background:var(--em-laranja);border-color:var(--em-laranja)}
.em-menu__grupo{display:flex;align-items:center;gap:10px;padding:14px 20px 4px;font-weight:800;font-size:14px;color:var(--em-texto)}
.em-menu__grupo::before{content:"";flex:none;width:8px;height:8px;background:var(--em-borda-forte);border-radius:2px}
.em-menu a.em-menu__sub{min-height:40px;padding:8px 20px 8px 38px;font-size:13.5px}
.em-menu a.em-menu__sub::before{width:6px;height:6px;border-width:1.5px;border-radius:50%}
.em-menu__sep{height:1px;background:var(--em-borda);margin:12px 0}
.em-menu__fechar{display:none!important}
.em-fundo-menu{display:none}
.em-conteudo{width:100%;max-width:1160px;padding:28px 32px 56px;display:flex;flex-direction:column;gap:24px}
.em-cabecalho{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px}
.em-cabecalho h1{font-size:28px;line-height:1.15;font-weight:800}
.em-cabecalho p{margin-top:4px;color:var(--em-texto-2);max-width:640px}

/* ---------- Cartões ---------- */
.em-cartao{background:var(--em-cartao);border:1px solid var(--em-borda);border-radius:var(--em-raio);box-shadow:var(--em-sombra);min-width:0}
.em-cartao__topo{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--em-borda)}
.em-cartao__topo h2{font-size:16px;font-weight:800}
.em-cartao__corpo{padding:18px;display:flex;flex-direction:column;gap:16px}
.em-cartao__rodape{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;padding:14px 18px;border-top:1px solid var(--em-borda);background:var(--em-superficie-2);border-radius:0 0 var(--em-raio) var(--em-raio)}
.em-grade{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.em-grade--2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.em-kpi{padding:18px;display:flex;flex-direction:column;gap:4px}
.em-kpi__rotulo{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--em-texto-2)}
.em-kpi__valor{font-size:30px;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}
.em-kpi__nota{font-size:13px;color:var(--em-texto-2)}
.em-atalho{display:flex;flex-direction:column;gap:6px;padding:22px;border-radius:var(--em-raio);border:1px solid var(--em-borda);background:#fff;box-shadow:var(--em-sombra);color:var(--em-texto)!important;text-decoration:none;transition:transform var(--em-trans),background var(--em-trans),border-color var(--em-trans)}
.em-atalho strong{font-size:19px;font-weight:800}
.em-atalho span{font-size:14px}
.em-atalho:hover{transform:translateY(-2px);border-color:var(--em-laranja)}
.em-atalho--primario{background:var(--em-laranja);border-color:var(--em-laranja)}
.em-atalho--primario:hover{background:var(--em-laranja-hover);border-color:var(--em-laranja-hover)}
.em-atalho[aria-disabled="true"]{opacity:.45;pointer-events:none}

/* ---------- Botões ---------- */
.em-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 18px;border-radius:var(--em-raio);border:1px solid transparent;font:700 14px/1.2 var(--em-fonte);text-decoration:none;cursor:pointer;white-space:nowrap;transition:background var(--em-trans),border-color var(--em-trans),color var(--em-trans)}
.em-btn--primario{background:var(--em-laranja);color:var(--em-texto)!important}
.em-btn--primario:hover{background:var(--em-laranja-hover)}
.em-btn--secundario{background:#fff;border-color:var(--em-borda-forte);color:var(--em-texto)!important}
.em-btn--secundario:hover{border-color:var(--em-texto);background:var(--em-superficie-2)}
.em-btn--perigo{background:var(--em-erro);color:#fff!important}
.em-btn--perigo:hover{background:#8f1d17}
.em-btn--link{background:none;border:0;padding:0;min-height:0;color:var(--em-laranja-texto)!important;text-decoration:underline;text-underline-offset:3px}
.em-btn--link:hover{color:var(--em-laranja-hover)!important}
.em-btn--pequeno{min-height:36px;padding:6px 12px;font-size:13px}
.em-btn--bloco{width:100%}
.em-btn:disabled,.em-btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed;pointer-events:none}
.em-acoes{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.em-acoes--fim{justify-content:flex-end}

/* ---------- Campos ---------- */
.em-form{display:grid;gap:16px}
.em-form--2{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.em-campo{display:flex;flex-direction:column;gap:6px;min-width:0}
.em-campo--largo{grid-column:1/-1}
.em-campo>label,.em-rotulo{font-weight:700;font-size:13px}
.em-opcional{font-weight:500;color:var(--em-texto-2)}
.em-input,.em-select,.em-textarea{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--em-borda-forte);border-radius:var(--em-raio);background:#fff;color:var(--em-texto);font:15px/1.4 var(--em-fonte);transition:border-color var(--em-trans),box-shadow var(--em-trans)}
.em-textarea{min-height:96px;resize:vertical}
.em-input:focus,.em-select:focus,.em-textarea:focus{outline:none;border-color:var(--em-laranja);box-shadow:0 0 0 3px rgba(224,123,0,.25)}
.em-input[readonly]{background:var(--em-superficie);color:var(--em-texto-2)}
.em-input[aria-invalid="true"],.em-textarea[aria-invalid="true"]{border-color:var(--em-erro);background:var(--em-erro-bg)}
.em-select--compacto{min-height:38px;padding:6px 10px;font-size:14px;font-weight:600}
.em-ajuda{font-size:12px;color:var(--em-texto-2)}
.em-erro-campo{font-size:13px;font-weight:600;color:var(--em-erro)}
.em-senha{display:flex;gap:8px}
.em-senha .em-input{flex:1;min-width:0}
.em-codigo{max-width:240px;font-size:24px;font-weight:800;letter-spacing:.4em;text-align:center;font-variant-numeric:tabular-nums}
.em-contador{font-size:12px;color:var(--em-texto-2);text-align:right}
.em-contador.is-erro{color:var(--em-erro);font-weight:600}
.em-opcoes{display:grid;gap:8px;border:0;margin:0;padding:0;min-width:0}
.em-opcoes legend{font-weight:700;font-size:13px;margin-bottom:6px;padding:0}
.em-opcao{display:flex;align-items:center;gap:10px;min-height:44px;padding:10px 12px;border:1px solid var(--em-borda);border-radius:var(--em-raio);cursor:pointer;font-weight:600;font-size:14px;transition:border-color var(--em-trans),background var(--em-trans)}
.em-opcao:hover{border-color:var(--em-borda-forte)}
.em-opcao:has(input:checked){border-color:var(--em-laranja);background:var(--em-laranja-claro)}
.em-opcao input{width:18px;height:18px;accent-color:var(--em-laranja);margin:0}
.em-filtros{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.em-filtros .em-campo{flex:1 1 180px}
.em-filtros .em-campo--busca{flex:2 1 260px}
.em-interruptor{display:inline-flex;align-items:center;gap:10px;min-height:44px;background:none;border:0;padding:0;font:600 14px var(--em-fonte);color:var(--em-texto);cursor:pointer}
.em-interruptor__trilho{position:relative;flex:none;width:42px;height:24px;border-radius:999px;background:var(--em-borda-forte);transition:background var(--em-trans)}
.em-interruptor__trilho::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform var(--em-trans)}
.em-interruptor[aria-checked="true"] .em-interruptor__trilho{background:var(--em-ok)}
.em-interruptor[aria-checked="true"] .em-interruptor__trilho::after{transform:translateX(18px)}
.em-interruptor:disabled{opacity:.45;cursor:not-allowed}

/* ---------- Mensagens ---------- */
.em-mensagens{display:flex;flex-direction:column;gap:10px}
.em-msg{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:1px solid;border-radius:var(--em-raio);font-size:14px}
.em-msg strong{display:block;font-size:15px}
.em-msg p{margin-top:2px}
.em-msg .em-acoes{margin-top:10px}
.em-msg__icone{flex:none;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:800;font-size:13px}
.em-msg--sucesso{background:var(--em-ok-bg);border-color:var(--em-ok-borda)}
.em-msg--sucesso .em-msg__icone{background:var(--em-ok)}
.em-msg--erro{background:var(--em-erro-bg);border-color:var(--em-erro-borda)}
.em-msg--erro .em-msg__icone{background:var(--em-erro)}
.em-msg--aviso{background:var(--em-alerta-bg);border-color:var(--em-alerta-borda)}
.em-msg--aviso .em-msg__icone{background:var(--em-alerta-ponto);color:var(--em-texto)}
.em-msg--info{background:#fff;border-color:var(--em-borda)}
.em-msg--info .em-msg__icone{background:var(--em-texto)}
.em-msg--grande{padding:20px}
.em-msg--grande strong{font-size:20px}
.em-detalhes{margin-top:8px;font-size:13px}
.em-detalhes summary{cursor:pointer;font-weight:700;color:var(--em-laranja-texto);min-height:32px;display:inline-flex;align-items:center}
.em-detalhes p{margin-top:6px;padding:10px 12px;background:rgba(255,255,255,.7);border-radius:6px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px}

/* ---------- Selos de situação ---------- */
.em-selo{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border:1px solid;border-radius:999px;font-size:12px;font-weight:700;line-height:1.5;white-space:nowrap}
.em-selo::before{content:"";flex:none;width:7px;height:7px;border-radius:50%;background:currentColor}
.em-selo--autorizada,.em-selo--ok{color:var(--em-ok);background:var(--em-ok-bg);border-color:var(--em-ok-borda)}
.em-selo--cancelada,.em-selo--neutro{color:var(--em-neutro);background:var(--em-neutro-bg);border-color:var(--em-neutro-borda)}
.em-selo--rejeitada,.em-selo--bloqueado{color:var(--em-erro);background:var(--em-erro-bg);border-color:var(--em-erro-borda)}
.em-selo--pendente{color:var(--em-alerta);background:var(--em-alerta-bg);border-color:var(--em-alerta-borda)}

/* ---------- Tabelas (viram cartões no celular) ---------- */
.em-tabela-wrap{overflow-x:auto}
.em-tabela{width:100%;border-collapse:collapse;font-size:14px}
.em-tabela th{padding:10px 16px;text-align:left;font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--em-texto-2);background:var(--em-superficie-2);border-bottom:1px solid var(--em-borda);white-space:nowrap}
.em-tabela td{padding:12px 16px;border-bottom:1px solid var(--em-borda);vertical-align:middle}
.em-tabela tbody tr:last-child td{border-bottom:0}
.em-tabela tbody tr:hover{background:var(--em-superficie-2)}
.em-tabela .em-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.em-tabela__principal{font-weight:700}
.em-tabela__acoes{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.em-tabela__rodape{padding:12px 16px;font-size:13px;color:var(--em-texto-2);border-top:1px solid var(--em-borda)}
.em-vazio{display:flex;flex-direction:column;align-items:center;gap:8px;padding:48px 24px;text-align:center;color:var(--em-texto-2)}
.em-vazio strong{font-size:17px;color:var(--em-texto)}
.em-vazio .em-acoes{margin-top:8px;justify-content:center}

/* ---------- Indicador de etapas ---------- */
.em-etapas{display:flex;list-style:none;margin:0;padding:0;counter-reset:em-etapa}
.em-etapas li{counter-increment:em-etapa;flex:1;display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:3px solid var(--em-borda);color:var(--em-texto-2);font-weight:600;font-size:14px}
.em-etapas li::before{content:counter(em-etapa);flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;border:2px solid var(--em-borda-forte);font-weight:800;font-size:13px;background:#fff}
.em-etapas li.is-feito{color:var(--em-texto)}
.em-etapas li.is-feito::before{content:"✓";background:var(--em-texto);border-color:var(--em-texto);color:#fff}
.em-etapas li[aria-current="step"]{color:var(--em-texto);font-weight:800;border-color:var(--em-laranja)}
.em-etapas li[aria-current="step"]::before{background:var(--em-laranja);border-color:var(--em-laranja);color:var(--em-texto)}

/* ---------- Envio de arquivo ---------- */
.em-upload{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:36px 20px;border:2px dashed var(--em-borda-forte);border-radius:var(--em-raio);background:var(--em-superficie-2);text-align:center;cursor:pointer;transition:border-color var(--em-trans),background var(--em-trans)}
.em-upload:hover,.em-upload.is-arrastando,.em-upload:focus-within{border-color:var(--em-laranja);background:var(--em-laranja-claro)}
.em-upload input[type="file"]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.em-upload__icone{width:44px;height:44px;border-radius:var(--em-raio);background:#fff;border:1px solid var(--em-borda);display:grid;place-items:center;font-size:20px;font-weight:800}
.em-upload strong{font-size:16px}
.em-upload__arquivo{font-weight:700;color:var(--em-ok)}
.em-dica{padding:14px 16px;background:var(--em-superficie);border-radius:var(--em-raio);font-size:14px}
.em-dica ul{margin:6px 0 0;padding-left:18px}

/* ---------- Modal (<dialog>) ---------- */
.em-modal{width:min(540px,calc(100vw - 24px));max-height:calc(100vh - 24px);padding:0;border:0;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.25);color:var(--em-texto);font:15px/1.5 var(--em-fonte)}
.em-modal::backdrop{background:rgba(23,24,26,.5)}
.em-modal__caixa{display:flex;flex-direction:column;min-height:100%;margin:0}
.em-modal__topo{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--em-borda)}
.em-modal__topo h2{font-size:18px;font-weight:800}
.em-modal__corpo{padding:20px;display:flex;flex-direction:column;gap:16px}
.em-modal__rodape{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--em-borda);background:var(--em-superficie-2)}
.em-modal--lateral{width:min(520px,100vw);height:100vh;max-height:100vh;margin:0 0 0 auto;border-radius:0}
.em-modal--lateral .em-modal__caixa{height:100%}
.em-modal--lateral .em-modal__corpo{flex:1;overflow:auto}

/* ---------- Dados / resumo ---------- */
.em-def{display:grid;grid-template-columns:minmax(130px,max-content) minmax(0,1fr);gap:10px 20px;margin:0;font-size:14px}
.em-def dt{color:var(--em-texto-2);font-weight:600}
.em-def dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.em-texto-nota{padding:12px 14px;background:var(--em-superficie);border-radius:var(--em-raio);font-size:13px;line-height:1.5}
.em-chave{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.em-chave code{padding:6px 10px;background:var(--em-superficie);border-radius:6px;font:600 13px ui-monospace,Menlo,Consolas,monospace;word-break:break-all}
.em-historico{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.em-historico li{display:grid;grid-template-columns:150px 1fr;gap:12px;padding:10px 0;border-top:1px solid var(--em-borda);font-size:14px}
.em-historico time{color:var(--em-texto-2);font-weight:600}
.em-secao-titulo{font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--em-texto-2)}

/* ---------- Senha: medidor e regras ---------- */
.em-medidor{height:8px;border-radius:999px;background:var(--em-superficie);overflow:hidden}
.em-medidor span{display:block;height:100%;width:0;background:var(--em-erro);transition:width var(--em-trans),background var(--em-trans)}
.em-medidor-texto{font-size:12px;font-weight:700;color:var(--em-texto-2);min-height:18px}
.em-regras{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:13px;color:var(--em-texto-2)}
.em-regras li::before{content:"○";display:inline-block;width:18px;font-weight:800}
.em-regras li.is-ok{color:var(--em-ok);font-weight:600}
.em-regras li.is-ok::before{content:"✓"}

/* ---------- Certificado ---------- */
.em-barra{height:10px;border-radius:999px;background:var(--em-superficie);overflow:hidden}
.em-barra span{display:block;height:100%;border-radius:999px}
.em-barra--ok span{background:var(--em-ok)}
.em-barra--pendente span{background:var(--em-alerta-ponto)}
.em-barra--erro span{background:var(--em-erro)}
.em-confianca{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:1px solid var(--em-borda);border-radius:var(--em-raio);background:var(--em-superficie-2);font-size:14px}
.em-confianca__icone{flex:none;width:28px;height:28px;border-radius:6px;background:var(--em-texto);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:800}

/* ---------- Lote: progresso ---------- */
.em-progresso{list-style:none;margin:0;padding:0}
.em-progresso li{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;padding:12px 18px;border-top:1px solid var(--em-borda);font-size:14px}
.em-progresso li:first-child{border-top:0}
.em-progresso li.is-fila{color:var(--em-texto-2)}
.em-progresso li.is-atual{background:var(--em-laranja-claro);font-weight:700}

/* ---------- Abas (admin) ---------- */
.em-abas{display:flex;gap:4px;border-bottom:1px solid var(--em-borda);overflow-x:auto}
.em-abas a{padding:12px 16px;margin-bottom:-1px;border-bottom:3px solid transparent;color:var(--em-texto-2)!important;text-decoration:none;font-weight:700;white-space:nowrap}
.em-abas a[aria-current="page"]{color:var(--em-texto)!important;border-color:var(--em-laranja)}

/* ---------- Entrar ---------- */
.em-login{min-height:calc(100vh - 40px);display:grid;place-items:center;padding:32px 16px}
.em-login__caixa{width:min(440px,100%);display:flex;flex-direction:column;gap:20px}
.em-login__marca{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.em-qr{width:180px;height:180px;border:2px dashed var(--em-borda-forte);border-radius:var(--em-raio);display:grid;place-items:center;background:var(--em-superficie-2);color:var(--em-texto-2);font-size:12px;font-weight:700;text-align:center}
.em-passos{margin:0;padding-left:20px;display:grid;gap:6px;font-size:14px}

/* ---------- Mapa de telas (protótipo) ---------- */
.em-mapa{max-width:960px;margin:0 auto;padding:40px 20px;display:flex;flex-direction:column;gap:20px}
.em-mapa a.em-cartao{display:flex;flex-direction:column;gap:4px;padding:16px 18px;text-decoration:none;color:var(--em-texto)!important;transition:border-color var(--em-trans)}
.em-mapa a.em-cartao:hover{border-color:var(--em-laranja)}

/* =========================================================
   Responsivo
   ========================================================= */
@media (max-width:900px){
  .em-app{grid-template-columns:minmax(0,1fr)}
  .em-menu{position:fixed;top:0;left:0;bottom:0;z-index:60;width:min(300px,86vw);height:100vh;transform:translateX(-100%);transition:transform var(--em-trans);box-shadow:var(--em-sombra)}
  .em-menu-aberto .em-menu{transform:none}
  .em-menu-aberto .em-fundo-menu{display:block;position:fixed;inset:0;z-index:50;background:rgba(23,24,26,.45)}
  .em-menu__fechar{display:inline-flex!important;margin:0 20px 8px}
  .em-btn-menu{display:inline-flex!important}
  .em-topo{gap:10px;padding:8px 12px}
  .em-logo__produto,.em-usuario__nome{display:none}
  .em-empresa{flex:1;max-width:none;order:5;flex-basis:100%}
  .em-empresa label{display:none}
  .em-ambiente{order:6;flex-basis:100%;justify-content:center;border-radius:6px}
  .em-topo__esp{display:none}
  .em-usuario{margin-left:auto}
  .em-conteudo{padding:20px 16px 48px;gap:20px}
  .em-cabecalho h1{font-size:24px}
}
@media (max-width:720px){
  .em-tabela--cartoes thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .em-tabela--cartoes,.em-tabela--cartoes tbody,.em-tabela--cartoes tr,.em-tabela--cartoes td{display:block;width:100%}
  .em-tabela--cartoes tr{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border-bottom:1px solid var(--em-borda)}
  .em-tabela--cartoes tbody tr:last-child{border-bottom:0}
  .em-tabela--cartoes td{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:2px 0;border:0;text-align:right}
  .em-tabela--cartoes td::before{content:attr(data-label);flex:none;font-size:12px;font-weight:700;color:var(--em-texto-2);text-align:left}
  .em-tabela--cartoes td.em-tabela__principal{order:-1;font-size:16px;text-align:left;padding-bottom:4px}
  .em-tabela--cartoes td.em-tabela__principal::before{display:none}
  .em-tabela--cartoes td.em-tabela__acoes{justify-content:flex-start;padding-top:8px}
  .em-tabela--cartoes td.em-tabela__acoes::before{display:none}
  .em-tabela--cartoes .em-num{text-align:right}
  .em-etapas li{font-size:12px;padding:8px 6px;gap:6px;flex-direction:column;text-align:center}
  .em-etapas li:not([aria-current="step"]) span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
}
@media (max-width:480px){
  .em-def{grid-template-columns:minmax(0,1fr);gap:2px}
  .em-def dd{margin-bottom:8px}
  .em-historico li{grid-template-columns:1fr;gap:2px}
  .em-kpi__valor{font-size:26px}
  .em-logo__nome{display:none}
  .em-acoes--fim .em-btn,.em-cartao__rodape .em-btn,.em-modal__rodape .em-btn{flex:1 1 100%}
  .em-modal{width:100vw;max-width:100vw;max-height:100vh;height:auto;margin:auto 0 0;border-radius:12px 12px 0 0}
  .em-senha{flex-wrap:wrap}
}

/* Utilitários (substituem style="" do protótipo: a CSP bloqueia estilo embutido) */
.em-alinhar-inicio{align-self:flex-start}
.em-opcao--fixa{flex:0 0 auto}
.em-linha--gap8{gap:8px}
.em-mudancas td,.em-mudancas th{vertical-align:top}
.em-mudancas del{color:var(--em-erro);text-decoration:line-through}
.em-mudancas ins{color:var(--em-ok);text-decoration:none;font-weight:600}

/* Barra de validade sem style="" (CSP): largura em passos de 10% */
.em-barra--p0 span{width:0%}
.em-barra--p1 span{width:10%}
.em-barra--p2 span{width:20%}
.em-barra--p3 span{width:30%}
.em-barra--p4 span{width:40%}
.em-barra--p5 span{width:50%}
.em-barra--p6 span{width:60%}
.em-barra--p7 span{width:70%}
.em-barra--p8 span{width:80%}
.em-barra--p9 span{width:90%}
.em-barra--p10 span{width:100%}

/* QR code real do 2FA (o .em-qr do protótipo era só um espaço reservado) */
.em-qr-real{width:max-content;height:max-content;max-width:none;padding:0;border:1px solid var(--em-borda);background:#fff;display:block;margin-inline:auto;overflow:visible}
.em-qr-real svg{display:block;max-width:none;shape-rendering:crispEdges}
