/* Ativos Elegíveis · camada de sistema (v0.1) — login, usuário, permissões, Acessos e Histórico.
   Carregado depois de estilo.css e experiencia.css; usa os mesmos tokens. */

/* ---------------------------------------------------------------- login */

.pagina-login {min-height:100dvh;background:var(--bg);}
.login-leiaute {display:grid;grid-template-columns:minmax(280px,420px) minmax(0,1fr);min-height:100dvh;}
.login-marca {background:oklch(.245 .008 265);color:oklch(.96 0 0);padding:40px 34px 28px;display:flex;flex-direction:column;}
.login-marca .marca {padding:0;}
.login-produto {margin-top:auto;margin-bottom:auto;}
.login-produto strong {display:block;font-size:1.35rem;font-weight:650;letter-spacing:-.02em;}
.login-produto p {color:oklch(.78 .006 265);font-size:.84rem;line-height:1.65;margin-top:12px;max-width:34ch;}
.login-painel {display:flex;align-items:center;justify-content:center;padding:32px 20px;}
.login-form {width:100%;max-width:370px;display:flex;flex-direction:column;}
.login-form h1 {font-size:1.7rem;}
.login-sub {color:var(--ink-2);font-size:.82rem;margin:8px 0 26px;}
.login-campo {display:flex;flex-direction:column;margin-bottom:16px;}
.login-campo .tag {font-size:.74rem;font-weight:550;margin-bottom:7px;color:var(--ink);}
.login-campo .campo {width:100%;min-height:44px;font-size:16px;}
.login-botao {min-height:44px;justify-content:center;font-size:.85rem;margin-top:6px;}
.login-link {margin-top:18px;font-size:.76rem;color:var(--ink-2);text-align:center;}
.login-link:hover {color:var(--accent);}
.login-alerta {border:1px solid var(--off);background:var(--off-suave);color:var(--off-texto);border-radius:var(--raio-p);padding:10px 12px;font-size:.8rem;margin-bottom:18px;}
.login-alerta.ok {border-color:var(--ok);background:var(--ok-suave);color:var(--ok-texto);}
@media (max-width:760px) {
  .login-leiaute {grid-template-columns:1fr;grid-template-rows:auto 1fr;}
  .login-marca {padding:22px 18px;flex-direction:row;align-items:center;gap:16px;}
  .login-marca .marca .quad {font-size:1.7rem;}
  .login-marca .marca-wealth,.login-marca .nav-assinatura,.login-produto p {display:none;}
  .login-produto {margin:0 0 0 auto;}
  .login-produto strong {font-size:.9rem;}
  .login-painel {align-items:flex-start;padding:34px 18px;}
}

/* ---------------------------------------------------------------- navegação e usuário */

.abas-grupo {display:block;margin:18px 13px 4px;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:oklch(.66 .006 265);}
.usuario-card .usuario-linha {display:flex;align-items:center;gap:10px;}
.usuario-avatar {flex:none;width:32px;height:32px;border-radius:50%;background:oklch(.38 .012 265);color:white;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:650;}
.usuario-ident {min-width:0;}
.usuario-ident b {display:block;font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.usuario-ident span {display:block;color:oklch(.76 .006 265);font-size:.68rem;margin-top:2px;line-height:1.4;}
.form-sair .botao {margin-top:8px!important;}
.form-sair-topo {display:none;}
.save-status.salvando:before {background:var(--demand);}
.save-status.falha:before {background:var(--off);}

@media (max-width:800px) {
  .abas {overflow-x:auto;scrollbar-width:none;}
  .abas::-webkit-scrollbar {display:none;}
  .aba {flex:1 0 auto;}
  .abas-grupo {display:none;}
  .form-sair-topo {display:block;}
  .form-sair-topo .botao {font-size:.69rem;padding:5px 8px;min-height:34px;}
}

/* ---------------------------------------------------------------- permissões: esconder o que não pode */

body.sem-criar #b-novo-ativo,
body.sem-criar #b-novo-porto,
body.sem-criar #inicio-novo-porto,
body.sem-criar #b-duplicar-porto,
body.sem-criar #nova-classe,
body.sem-criar #b-nova-classe,
body.sem-criar .add-sub {display:none!important;}

body.sem-editar .botao-mais[data-add],
body.sem-editar #b-add-porto,
body.sem-editar .c-selecao,
body.sem-editar #barra-lote,
body.sem-editar [data-mover],
body.sem-editar #b-comprar,
body.sem-editar #b-vender,
body.sem-editar #b-aplicar-modelo,
body.sem-editar [data-desvincular],
body.sem-editar [data-remover],
body.sem-editar [data-editar-mov],
body.sem-editar [data-remover-mov],
body.sem-editar [data-remover-snap],
body.sem-editar .nota-pct,
body.sem-editar .dica-edicao {display:none!important;}

body.sem-excluir #b-excluir-ativo,
body.sem-excluir #b-excluir-porto,
body.sem-excluir .excluir-classe,
body.sem-excluir .excluir-sub {display:none!important;}

body.sem-editar .classe-nome,
body.sem-editar .sub-nome {border-bottom-color:transparent;}
body.sem-editar .aloc .campo:disabled,
body.sem-editar .bloco-capital .campo:disabled {background:transparent;border-color:transparent;color:var(--ink);opacity:1;appearance:none;}
.formulario .campo:disabled {background:var(--surface-2);color:var(--ink);opacity:1;cursor:default;}

/* ---------------------------------------------------------------- Acessos */

.legenda-permissoes {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:9px;overflow:hidden;margin-bottom:20px;}
.legenda-permissoes>div {background:var(--surface);padding:14px 16px;}
.legenda-permissoes b {display:block;font-size:.78rem;font-weight:600;}
.legenda-permissoes span {display:block;font-size:.72rem;color:var(--ink-2);margin-top:5px;line-height:1.55;}
@media (max-width:1050px) {.legenda-permissoes {grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:480px) {.legenda-permissoes {grid-template-columns:1fr;}}

.tabela-acessos {min-width:760px;}
.tabela-acessos td {vertical-align:middle;padding-top:13px;padding-bottom:13px;}
.tabela-acessos .ident {display:block;margin-top:3px;font-size:.66rem;}
.chip-admin {background:var(--accent-suave);color:var(--accent);border-color:transparent;}
.acesso-fixo {display:inline-flex;align-items:center;gap:5px;font-size:.72rem;color:var(--ok-texto);}

.interruptor {position:relative;display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:.74rem;user-select:none;}
.interruptor input {position:absolute;opacity:0;width:1px;height:1px;}
.interruptor-trilho {position:relative;width:34px;height:20px;border-radius:10px;background:var(--surface-3);border:1px solid var(--line-forte);transition:background var(--dur) var(--curva);}
.interruptor-trilho:after {content:'';position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--surface);box-shadow:0 1px 2px oklch(.2 0 0 / .25);transition:transform var(--dur) var(--curva);}
.interruptor input:checked+.interruptor-trilho {background:var(--accent);border-color:var(--accent);}
.interruptor input:checked+.interruptor-trilho:after {transform:translateX(14px);}
.interruptor input:focus-visible+.interruptor-trilho {outline:2px solid var(--accent);outline-offset:2px;}
.interruptor input:disabled+.interruptor-trilho {opacity:.5;}
.interruptor-rotulo {color:var(--ink-2);}
.interruptor input:checked~.interruptor-rotulo {color:var(--ink);font-weight:550;}

/* ---------------------------------------------------------------- Histórico */

.tabela-historico {min-width:760px;}
.tabela-historico td {vertical-align:top;}
.tabela-historico td:nth-child(4) {overflow-wrap:anywhere;max-width:520px;}
.tabela-historico .chip {font-size:.66rem;}
.acao-delete,.acao-denied,.acao-rejected,.acao-login_failed,.acao-login_blocked,.acao-access_revoked {color:var(--off-texto);}
.acao-create,.acao-restore {color:var(--ok-texto);}
.acao-permission_change {color:var(--demand-texto);}
.hist-detalhe td {background:var(--surface-2);}
.hist-detalhe pre {max-height:360px;overflow:auto;font-size:.7rem;line-height:1.5;white-space:pre-wrap;word-break:break-word;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;}
