/* Portal — o que é só deste app. O comum vem de /assets/erp.css (wwwroot/assets/erp.css), carregado antes. */

.dash-header a.brand { text-decoration: none; }
main { max-width: 960px; margin: 0 auto; }
.card h1 { margin: 0 0 8px; font-family: var(--fonte-titulo); font-size: 18px; font-weight: 700; color: var(--carvao); }
.card p { line-height: 1.5; }
.login-card { max-width: 380px; margin: 48px auto; padding: 24px; }
.login-card .btn { align-self: flex-start; }
table.grid.left th, table.grid.left td { text-align: left; }

/* Perfis: lista de logins à esquerda, perfis do login escolhido à direita (uma chave por perfil, por sistema) */
.perfis { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 24px; align-items: start; }
.perfis-lista { display: flex; flex-direction: column; gap: 8px; }
.perfis-lista > .input { width: 100%; box-sizing: border-box; }
.perfis-lista ul { list-style: none; margin: 0; padding: 0; }
.perfis-lista li[hidden] { display: none; }
.perfis-lista li.vazio { padding: 6px 10px; font-size: 13px; }
.perfis-lista a { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 7px 10px; border-left: 3px solid transparent; color: var(--text); text-decoration: none; font-size: 13.5px; }
.perfis-lista a:hover { background: var(--info-bg); }
.perfis-lista a.on { background: var(--info-bg); border-left-color: var(--laranja); }
.perfis-lista .nome { display: flex; flex-direction: column; min-width: 0; overflow-wrap: anywhere; }
.perfis-lista .nome small { font-size: 12px; }
.perfis-lista .conta { font-family: var(--fonte-titulo); font-size: 12px; color: var(--ink-3); }
.perfis-novo { gap: 6px; padding-top: 10px; border-top: 1px solid var(--line); }
.perfis-novo .btn { align-self: flex-start; }
.perfis-detalhe h2 { margin: 0; font-family: var(--fonte-titulo); font-size: 16.5px; font-weight: 700; color: var(--carvao); }
.perfis-detalhe .login { margin: 2px 0 0; }
.perfis-detalhe .section:first-of-type { margin-top: 14px; }
.perfil { font-family: var(--fonte-codigo); font-size: 12.5px; }
.perfis-chaves { list-style: none; margin: 0; padding: 0; }
.perfis-chaves li { display: flex; align-items: center; gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--hairline); font-size: 13.5px; }
.perfis-chaves li:last-child { border-bottom: 0; }
.perfis-chaves form { margin: 0; }
/* Chave à esquerda; nome do perfil em destaque e, ao lado, o que ele libera, menor e apagado */
.perfis-chaves .perfil { font-size: 13.5px; font-weight: 500; color: var(--carvao); }
.perfil-desc { font-size: 12.5px; color: var(--ink-3); }
.chave { position: relative; flex: none; width: 34px; height: 20px; padding: 0; border: 1px solid var(--line-strong); border-radius: 10px; background: var(--argila); cursor: pointer; }
.chave::after { content: ""; position: absolute; top: 2px; left: 2px; width: 14px; height: 14px; border-radius: 50%; background: var(--algodao); box-shadow: 0 0 0 1px var(--line-strong); }
.chave[aria-checked=true] { background: var(--carvao); border-color: var(--carvao); }
.chave[aria-checked=true]::after { left: 16px; box-shadow: none; }
.chave:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.perfis-outro { margin: 14px 0 0; }
.perfis-historico { list-style: none; margin: 0; padding: 0; font-size: 13px; line-height: 1.7; }
@media (max-width: 700px) { .perfis { grid-template-columns: minmax(0, 1fr); } }
table.grid td form { margin: 0; }

/* Ícones da biblioteca (wwwroot/assets/icones, classe Icones): .ico e .com-ico vêm do erp.css */

/* Página inicial: um cartão por sistema liberado ao usuário */
.modules { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; margin-bottom: 14px; }
.modules .card.module { display: block; margin: 0; color: inherit; text-decoration: none; }
.modules .card.module:hover { box-shadow: inset 0 0 0 1px var(--carvao); }
.card.module h2 { margin: 0 0 8px; font-family: var(--fonte-titulo); font-size: 16.5px; font-weight: 700; color: var(--carvao); }
.card.module p { margin: 0; }
/* O BI: um cartão com os painéis liberados, em duas colunas e duas casas da grade quando há mais de um */
.modules .card.grupo-bi { padding-bottom: 8px; }
.modules .card.grupo-bi.largo { grid-column: span 2; }
.grupo-bi ul { list-style: none; margin: 4px 0 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); column-gap: 18px; }
.grupo-bi.largo ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grupo-bi li a { display: flex; align-items: center; gap: 9px; margin: 0 -6px; padding: 7px 6px; border-radius: 6px; color: var(--carvao); text-decoration: none; font-family: var(--fonte-titulo); font-size: 14px; font-weight: 600; }
.grupo-bi li a:hover { background: var(--info-bg); }
.grupo-bi li small { display: block; font-family: var(--fonte-texto); font-size: 12px; font-weight: 400; color: var(--ink-3); }
@media (max-width: 640px) { .modules .card.grupo-bi.largo { grid-column: auto; } .grupo-bi.largo ul { grid-template-columns: minmax(0, 1fr); } }

/* Página inicial: a saudação, o "Continue de onde parou" (último sinal de atividade fora do portal) e os sistemas */
.inicio-titulo { margin: 0 0 4px; font-family: var(--fonte-titulo); font-size: 22px; font-weight: 700; color: var(--carvao); }
.card.continuar { display: flex; align-items: center; gap: 14px; margin: 0 0 4px; color: inherit; text-decoration: none; box-shadow: inset 3px 0 0 var(--laranja); }
.card.continuar:hover { box-shadow: inset 3px 0 0 var(--laranja), inset 0 0 0 1px var(--carvao); }
.card.continuar strong { display: block; font-family: var(--fonte-titulo); font-size: 16.5px; color: var(--carvao); }
