.admin-shell { font-family: -apple-system, "Segoe UI", Roboto, sans-serif; color: #1f2937; }
.admin-top { display: flex; justify-content: space-between; align-items: center;
             padding: 12px 24px; border-bottom: 1px solid #e5e7eb; background: #fff; }
.admin-brand { font-weight: 700; text-decoration: none; color: #111827; }
.admin-top nav a { margin-left: 16px; text-decoration: none; color: #4b5563; }
.admin-user { margin-left: 16px; color: #9ca3af; }
.admin-main { max-width: 900px; margin: 0 auto; padding: 24px; }
.bloco { border: 1px solid #e5e7eb; border-radius: 8px; margin-bottom: 20px; overflow: hidden; }
.bloco h2 { font-size: 14px; text-transform: uppercase; letter-spacing: .04em;
            padding: 10px 16px; margin: 0; background: #f9fafb; border-bottom: 1px solid #e5e7eb; }
.bloco.falha { border-color: #fca5a5; }
.bloco.falha h2 { background: #fef2f2; color: #b91c1c; }
.linha { display: flex; justify-content: space-between; align-items: center;
         padding: 12px 16px; border-bottom: 1px solid #f3f4f6; }
.linha:last-child { border-bottom: none; }
.linha .meta { color: #6b7280; font-size: 13px; }
.vazio { padding: 32px 16px; text-align: center; color: #6b7280; }
.aviso { background: #fffbeb; border: 1px solid #fcd34d; padding: 12px 16px;
         border-radius: 6px; margin-bottom: 16px; }
/* A senha temporária é lida da tela e digitada à mão. Monoespaçada, grande e
   espaçada porque o gerador já evita 0/O e 1/l/I — a fonte precisa manter essa
   garantia de pé. */
.senha-valor { font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
               font-size: 18px; letter-spacing: .08em; background: #fff;
               border: 1px solid #fcd34d; border-radius: 4px; padding: 2px 8px;
               user-select: all; }
.aviso .meta { color: #92400e; font-size: 13px; margin: 8px 0; }

/* Etiqueta do que o lead pediu, na lista de contatos. Ganha cor própria porque
   é a única coisa que distingue um lead de consultoria do outro: sem ela, todos
   chegam com o mesmo texto de LGPD e a lista vira linhas idênticas. Índigo, e
   não o âmbar do .aviso nem o vermelho do .bloco.falha — isto é categoria, não
   alerta. */
.tag { display: inline-block; background: #eef2ff; color: #3730a3;
       border: 1px solid #c7d2fe; border-radius: 999px;
       padding: 1px 8px; font-size: 12px; font-weight: 600; margin-right: 6px; }
/* A frase de LGPD aceita é prova de consentimento: precisa continuar acessível
   sem ocupar a lista, onde seria sempre o mesmo parágrafo repetido. */
.linha details.aceite { margin-top: 4px; }
.linha details.aceite summary { color: #6b7280; font-size: 13px; cursor: pointer; }
.linha details.aceite > div { color: #6b7280; font-size: 13px; margin-top: 4px;
                              padding-left: 12px; border-left: 2px solid #e5e7eb; }
/* Data da linha. Classe própria, e não `.linha > .meta`, porque esse mesmo
   seletor pegaria o user agent no detalhe da solicitação — que é longo e
   precisa quebrar. Aqui é o contrário: com o texto do aceite aberto, a coluna
   da esquerda cresce e a data parte no meio se deixarem. */
.quando { white-space: nowrap; }
