/* CSS específico do Via3 Surface — usa só os tokens de via3-ui.css (carregado
   antes deste arquivo em todo template). Nenhuma cor escrita à mão aqui. */

.shell { display:flex; min-height:100vh; }

.sidebar { width:220px; flex-shrink:0; background:var(--superficie); border-right:1px solid var(--linha);
  padding:20px 16px; display:flex; flex-direction:column; gap:22px; }
.sidebar .marca-via3 { padding:0 4px; }
.sidebar nav { display:flex; flex-direction:column; gap:2px; }
.sidebar nav a { display:block; padding:9px 10px; border-radius:var(--raio-sm); color:var(--tinta-2);
  text-decoration:none; font-size:13.5px; font-weight:500; }
.sidebar nav a:hover { background:var(--superficie-2); color:var(--tinta); }
.sidebar nav a.ativo { background:var(--acao-suave); color:var(--acao); font-weight:700; }
.sidebar .rodape-sidebar { margin-top:auto; font-size:11px; color:var(--tinta-fraca); padding:0 4px; }

.content { flex:1; min-width:0; padding:26px 30px 60px; max-width:1080px; }
.content h1 { font-size:22px; margin-bottom:4px; }
.content .cap { color:var(--tinta-2); font-size:13.5px; margin:0 0 22px; }

.topbar-user { display:flex; align-items:center; justify-content:flex-end; gap:12px; margin-bottom:18px; font-size:12.5px; color:var(--tinta-fraca); }
.topbar-user a { color:var(--tinta-2); }

.flash { border-radius:var(--raio); padding:10px 14px; margin-bottom:16px; font-size:13.5px; border:1px solid var(--linha); }
.flash.ok { color:var(--ok); border-color:color-mix(in srgb,var(--ok) 45%,transparent); background:color-mix(in srgb,var(--ok) 10%,transparent); }
.flash.erro { color:var(--erro); border-color:color-mix(in srgb,var(--erro) 45%,transparent); background:color-mix(in srgb,var(--erro) 10%,transparent); }
.flash.chave { color:var(--tinta); border-color:var(--acao); background:var(--acao-suave); font-family:monospace; word-break:break-all; }

table.lista { width:100%; border-collapse:collapse; margin-top:6px; }
table.lista th { text-align:left; font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--tinta-fraca);
  font-weight:600; padding:9px 12px; border-bottom:1px solid var(--linha); background:var(--superficie-2); }
table.lista td { padding:10px 12px; border-bottom:1px solid var(--linha); font-size:13px; }
table.lista tr:hover td { background:var(--superficie-2); }

.pill-role { font-size:11px; border-radius:999px; padding:3px 10px; border:1px solid var(--linha); background:var(--superficie-2); color:var(--tinta-2); }
.pill-role.administrador { color:var(--acao); border-color:color-mix(in srgb,var(--acao) 45%,transparent); }
.pill-role.tecnico { color:var(--serie-1); border-color:color-mix(in srgb,var(--serie-1) 45%,transparent); }
.pill-role.cliente { color:var(--ok); border-color:color-mix(in srgb,var(--ok) 45%,transparent); }

.grade-pill { display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px;
  border-radius:50%; font-weight:700; font-size:14px; }
.grade-pill.good { color:var(--ok); background:color-mix(in srgb,var(--ok) 16%,transparent); }
.grade-pill.info { color:var(--serie-1); background:color-mix(in srgb,var(--serie-1) 16%,transparent); }
.grade-pill.warning { color:var(--atencao); background:color-mix(in srgb,var(--atencao) 16%,transparent); }
.grade-pill.critical { color:var(--erro); background:color-mix(in srgb,var(--erro) 16%,transparent); }

.form-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; margin-bottom:6px; }
.form-grid label { display:block; font-size:12.5px; color:var(--tinta-2); margin-bottom:6px; }
.form-grid input, .form-grid select { width:100%; }

.cartao.pad { padding:20px 22px; margin-bottom:20px; }

.host-review { border-bottom:1px solid var(--linha); padding:16px 0; }
.host-review:last-child { border-bottom:none; }
.host-review h4 { font-size:14px; margin-bottom:4px; }
.host-review .meta { font-size:12px; color:var(--tinta-fraca); margin-bottom:10px; }
.host-review label { display:block; font-size:11.5px; color:var(--tinta-2); margin:8px 0 4px; }
.host-review textarea { width:100%; min-height:56px; resize:vertical; font-family:inherit; }

/* ==========================================================================
   Tela de acesso em duas colunas — apresentação à esquerda, entrada à direita.
   Mesmo padrão dos demais sistemas Via3 (Skills, Ativos, DP): só tokens do
   via3-ui.css, nenhuma cor escrita à mão.
   ========================================================================== */
.acesso-duplo {
  min-height:100vh; display:grid; align-items:center;
  grid-template-columns:1.05fr .95fr; gap:60px;
  max-width:1180px; margin:0 auto; padding:40px 32px;
}

.apresentacao .marca-via3 { margin-bottom:54px; }
.sobrenome {
  display:block; font-size:11px; font-weight:700; letter-spacing:.16em;
  text-transform:uppercase; color:var(--acao); margin-bottom:14px;
}
.chamada {
  font-size:clamp(30px,3.5vw,46px); font-weight:700;
  letter-spacing:-.03em; line-height:1.08; margin:0 0 20px;
  max-width:16ch; text-wrap:balance;
}
.chamada em { font-style:normal; color:var(--acao); display:block; }
.subchamada {
  color:var(--tinta-2); font-size:15px; line-height:1.6;
  max-width:42ch; margin:0 0 46px;
}

.pilares { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.pilar { border-left:2px solid var(--acao); padding-left:13px; }
.pilar .titulo { font-size:14px; font-weight:700; letter-spacing:-.01em; margin-bottom:3px; }
.pilar .detalhe { font-size:12.5px; color:var(--tinta-fraca); line-height:1.45; }

.acesso-caixa {
  padding:34px 34px 26px;
  border-top:3px solid var(--acao);
  border-radius:var(--raio-lg);
}
.acesso-caixa h1 { font-size:24px; margin:0 0 8px; }
.acesso-caixa .subtitulo { color:var(--tinta-2); font-size:13.5px; margin:0 0 26px; }
.acesso-caixa .campo { margin-bottom:15px; }
.acesso-caixa .campo label { display:block; font-size:12.5px; color:var(--tinta-2); margin-bottom:6px; }
.acesso-caixa .campo input { width:100%; }
.acesso-caixa button { width:100%; margin-top:6px; }
.acesso-caixa .flash-erro { color:var(--erro); font-size:12.5px; margin:-8px 0 16px; }
.acesso-caixa .nota {
  margin-top:22px; padding-top:16px; border-top:1px solid var(--linha);
  font-size:11.5px; color:var(--tinta-fraca); text-align:center;
}

@media (max-width:940px) {
  .acesso-duplo {
    grid-template-columns:1fr; gap:40px; padding:32px 22px 48px;
    align-items:start;
  }
  .apresentacao .marca-via3 { margin-bottom:32px; }
  .chamada { max-width:none; }
  .subchamada { margin-bottom:30px; }
  .pilares { grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:18px; }
}
@media (max-width:560px) {
  .pilares { display:none; }
  .subchamada { margin-bottom:8px; }
}

/* ==========================================================================
   Introdução (tour no estilo Unxpose) — app/templates/introducao.html.
   Uma aba por origem de análise (app/origens.py).
   ========================================================================== */
.intro-pagina { min-height:100vh; display:flex; align-items:center; justify-content:center;
  padding:28px 16px; background:var(--fundo); }
.intro-cartao { width:100%; max-width:1100px; padding:26px 34px 22px; display:flex; flex-direction:column;
  border-top:3px solid var(--acao); }
.intro-topo { display:flex; align-items:center; justify-content:space-between; }
.intro-fechar { background:transparent; border:none; font-size:18px; color:var(--tinta-2); cursor:pointer; padding:6px 10px; }
.intro-fechar:hover { color:var(--acao); background:transparent; }
.intro-passos { min-height:400px; padding:28px 0 12px; }
.intro-passo { display:none; max-width:820px; }
.intro-passo.ativo { display:block; }
.intro-passo h1 { display:flex; align-items:center; gap:12px; font-size:24px; font-weight:600; margin:0 0 22px; flex-wrap:wrap; }
.intro-passo p { font-size:16px; line-height:1.85; color:var(--tinta-2); margin:0 0 16px; }
.intro-passo em { font-style:normal; color:var(--acao); font-weight:500; }
.intro-icone { width:36px; height:36px; border-radius:50%; background:var(--acao); color:var(--acao-tinta);
  display:inline-flex; align-items:center; justify-content:center; flex:none; }
.intro-icone svg { width:19px; height:19px; }
.intro-status { font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:3px 10px; border-radius:999px; }
.intro-status.on { color:var(--ok); background:color-mix(in srgb,var(--ok) 14%,transparent); }
.intro-status.off { color:var(--tinta-fraca); background:var(--superficie-2); }
.intro-secoes { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:14px; margin:6px 0 18px; }
.intro-secao { background:var(--acao-suave); border:1px solid color-mix(in srgb,var(--acao) 22%,transparent);
  border-radius:var(--raio); padding:14px 16px; display:flex; flex-direction:column; gap:6px; }
.intro-secao b { color:var(--acao); font-size:15px; font-weight:600; }
.intro-secao span { color:var(--tinta-2); font-size:14px; line-height:1.55; }
.intro-nota { font-size:14px !important; color:var(--tinta-fraca) !important; border-left:3px solid var(--linha-forte); padding-left:12px; }
.intro-abas { display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:10px; margin-top:8px; }
.intro-abas button { background:transparent; border:none; border-bottom:2px solid var(--linha-forte); border-radius:0;
  color:var(--tinta-2); font-size:13px; padding:12px 6px; display:flex; align-items:center; justify-content:center; gap:7px; cursor:pointer; }
.intro-abas button svg { width:16px; height:16px; flex:none; }
.intro-abas button:hover { background:transparent; color:var(--tinta); }
.intro-abas button.ativo { color:var(--acao); border-bottom-color:var(--acao); font-weight:600; }
.intro-acoes { display:flex; justify-content:flex-end; gap:8px; margin-top:20px; }
.intro-acoes button { min-width:110px; text-transform:uppercase; letter-spacing:.06em; font-size:12.5px; }
@media (max-width:640px) {
  .intro-cartao { padding:20px 16px; }
  .intro-passo h1 { font-size:20px; }
  .intro-passo p { font-size:15px; line-height:1.7; }
  .intro-abas { grid-template-columns:repeat(3,1fr); }
  .intro-abas button { font-size:12px; flex-direction:column; gap:4px; }
}
