/* Fonte Montserrat alojada no próprio servidor */
@font-face{font-family:Montserrat;font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fontes/montserrat-300.woff2) format("woff2")}
@font-face{font-family:Montserrat;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fontes/montserrat-500.woff2) format("woff2")}
@font-face{font-family:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fontes/montserrat-600.woff2) format("woff2")}
@font-face{font-family:Montserrat;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fontes/montserrat-700.woff2) format("woff2")}
@font-face{font-family:Montserrat;font-style:normal;font-weight:800;font-display:swap;src:url(/assets/fontes/montserrat-800.woff2) format("woff2")}

/* =====================================================================
   mAIvas — estilos comuns (entrada, conta, administração, cabeçalho)
   ===================================================================== */
:root{
  --bg:#eef1f7; --panel:#ffffff; --ink:#14213d; --muted:#5b6785; --line:#d7dcea;
  --brand:#154289; --brand-ink:#ffffff; --field:#f6f8fc; --chip:#e7ecf7;
  --ok:#1d7a46; --ok-bg:#e3f4ea; --erro:#a3261b; --erro-bg:#fbe7e5;
  color-scheme:light;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){
  :root{
    --bg:#0c1430; --panel:#131d44; --ink:#e8edf8; --muted:#9ba8c8; --line:#26356a;
    --brand:#2d5fc0; --field:#0e1838; --chip:#1b2858;
    --ok:#7fd7a3; --ok-bg:#12351f; --erro:#ff9b90; --erro-bg:#3a1512;
    color-scheme:dark;
  }
}
*{box-sizing:border-box}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Montserrat,"Helvetica Neue",Arial,sans-serif;font-size:15px;line-height:1.45}
a{color:inherit}

/* Cabeçalho */
.topo{flex:none;background:#154289;color:#fff;padding:12px 22px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.topo .marca img{height:32px;width:auto;display:block}
.topo .titulo{font-size:16px;font-weight:600}
.topo nav{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}
.topo nav a{color:#fff;text-decoration:none;font-size:13.5px;font-weight:600;padding:7px 10px;border-radius:7px;opacity:.88}
.topo nav a:hover,.topo nav a:focus-visible{background:rgba(255,255,255,.14);opacity:1}

/* Botões e campos */
.btn{display:block;width:100%;border:0;background:#154289;color:#fff;font:700 15px Montserrat,sans-serif;padding:13px;border-radius:10px;cursor:pointer}
.btn:hover{filter:brightness(1.08)}
.btn:disabled{opacity:.55;cursor:wait}
.btn-sec{background:var(--chip);color:var(--ink);font:600 13px Montserrat,sans-serif;padding:8px 12px;border-radius:8px;border:0;cursor:pointer}
label{display:block;font-size:12.5px;font-weight:600;color:var(--muted);margin:12px 0 5px}
input:not([type=checkbox]):not([type=range]):not([type=file]),select{width:100%;font:500 14px Montserrat,sans-serif;color:var(--ink);background:var(--field);border:1px solid var(--line);border-radius:8px;padding:10px 11px}
button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #f2b705;outline-offset:2px}
.nota{font-size:13px;color:var(--muted)}
.erro{background:var(--erro-bg);color:var(--erro);padding:10px 12px;border-radius:8px;font-weight:600;font-size:13.5px}
.sucesso{background:var(--ok-bg);color:var(--ok);padding:10px 12px;border-radius:8px;font-weight:600;font-size:13.5px}

/* Páginas simples (entrada, conta, instalação) */
.cartao-central{max-width:420px;margin:48px auto;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:0 28px 26px;overflow:hidden}
.cartao-central.largo{max-width:640px;padding-top:6px}
.cartao-central .faixa{background:#154289;margin:0 -28px 18px;padding:26px 0 22px;text-align:center}
.logo-entrada{height:86px;width:auto}
.cartao-central h1{font-size:20px;margin:18px 0 6px}
.cartao-central h2{font-size:15px;margin:22px 0 8px}
.formulario .btn{margin-top:18px}
.verificacoes{list-style:none;padding:0;margin:0}
.verificacoes li{padding:7px 0;border-bottom:1px solid var(--line);font-size:14px}
.verificacoes .ok{color:var(--ok)} .verificacoes .falha{color:var(--erro);font-weight:600}

/* Administração */
.admin{max-width:1200px;margin:0 auto;padding:22px}
.painel-bloco{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px 20px;margin-bottom:18px}
.painel-bloco h2{font-size:16px;margin:0 0 6px}
.grelha-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:4px 14px;align-items:end}
.grelha-form label{margin-top:8px}
.grelha-form .fim .btn{margin-top:8px}
.tabela-envolvente{overflow-x:auto}
.tabela{width:100%;border-collapse:collapse;font-size:13.5px}
.tabela th{text-align:left;color:var(--muted);font-size:12px;font-weight:600;padding:8px;border-bottom:1px solid var(--line)}
.tabela td{padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:middle}
.tabela tr.inativo td{opacity:.55}
.acoes-linha{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.acoes-linha form{display:flex;gap:6px;margin:0}
.acoes-linha .repor input{width:170px;padding:7px 9px;font-size:13px}
.etiqueta{display:inline-block;font-size:11px;font-weight:600;color:var(--muted);background:var(--chip);border-radius:20px;padding:2px 8px}
.acoes{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:10px}
.opcao{display:flex;align-items:center;gap:6px;margin:0;font-size:13px}
.estado-sync{font-size:13.5px;font-weight:600;min-height:1.3em;margin:12px 0 6px}
progress{width:100%;height:10px;accent-color:#154289}

/* Grelha de consultores */
.grelha-consultores{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:12px}
.ficha{border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--field);display:flex;flex-direction:column;gap:6px}
.ficha.inativo{opacity:.5}
.ficha .miniatura{height:150px;display:flex;align-items:flex-end;justify-content:center;background:linear-gradient(#213c83,#154289);border-radius:7px;overflow:hidden}
.ficha .miniatura img{max-height:100%;max-width:100%}
.ficha .miniatura span{color:#fff;font-size:12px;margin:auto}
.ficha .nome{font-weight:600;font-size:13.5px}
.ficha .origem{font-size:11.5px;color:var(--muted)}
.aviso-ficha{font-size:11.5px;color:var(--erro);font-weight:600}
.olhar{display:flex;gap:4px}
.olhar button{flex:1;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:6px;padding:5px 4px;font:600 12px Montserrat,sans-serif;cursor:pointer}
.olhar button[aria-pressed="true"]{background:#154289;color:#fff;border-color:#154289}

/* Sair (botão dentro de formulário, com aspeto de ligação) */
.form-sair{margin:0;display:inline}
.form-sair button{background:none;border:0;color:#fff;font:600 13.5px Montserrat,sans-serif;padding:7px 10px;border-radius:7px;cursor:pointer;opacity:.88}
.form-sair button:hover,.form-sair button:focus-visible{background:rgba(255,255,255,.14);opacity:1}
.form-sair-cartao{margin-top:14px;text-align:center}

/* Utilitários */
.btn-auto{width:auto;display:inline-block;padding:12px 18px}
.btn-link{text-align:center;text-decoration:none;margin-top:16px}
.sem-margem{margin-top:0!important}
.btn-sec{text-decoration:none;display:inline-block}
.btn-sec.ativo{background:#154289;color:#fff}
.aviso-caixa{background:var(--chip);border-left:4px solid #154289;padding:10px 12px;border-radius:6px;font-weight:600;font-size:13.5px}

/* Autenticação em dois passos */
.passos{padding-left:20px;font-size:14px}
.passos li{margin-bottom:6px}
.qr{width:220px;height:220px;margin:16px auto;background:#fff;border-radius:10px;padding:6px}
.qr svg{width:100%;height:100%;display:block}
.chave{font-size:14px;letter-spacing:.05em;word-break:break-all;background:var(--chip);padding:2px 6px;border-radius:4px}
input.codigo{font-size:22px!important;letter-spacing:.25em;text-align:center}
.codigos{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0}
.codigos li{font-family:ui-monospace,Consolas,monospace;font-size:16px;background:var(--chip);border-radius:6px;padding:8px;text-align:center}

/* Registo */
.tabela tr.alerta td{color:var(--erro);font-weight:600}
