/* Fonte Montserrat alojada no próprio servidor */
@font-face{font-family:Montserrat;font-style:italic;font-weight:300;font-display:swap;src:url(/assets/fontes/montserrat-300-italic.woff2) format("woff2")}
@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;position:relative;z-index:40;background:#154289;color:#fff;padding:12px 22px;display:flex;align-items:center;gap:16px}
.topo .marca img{height:32px;width:auto;display:block}
.topo .titulo{font-size:16px;font-weight:600;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topo nav{margin-left:auto;display:flex;align-items:center;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:flex}
.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}

/* Menu: no computador fica alinhado à direita; no telemóvel passa para um botão "sanduíche" */
.menu-botao{display:none;margin-left:auto;width:44px;height:44px;border:0;border-radius:8px;background:transparent;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:0}
.menu-botao span{display:block;width:22px;height:2px;border-radius:2px;background:#fff;transition:transform .2s ease,opacity .2s ease}
.menu-botao:hover,.menu-botao:focus-visible{background:rgba(255,255,255,.14)}
.topo.aberto .menu-botao span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.topo.aberto .menu-botao span:nth-child(2){opacity:0}
.topo.aberto .menu-botao span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media (max-width:860px){
  .topo{padding:10px 14px;gap:12px}
  .topo .marca img{height:28px}
  .topo .titulo{font-size:15px;position:absolute;left:50%;transform:translateX(-50%);max-width:calc(100% - 180px);text-align:center;pointer-events:none}   /* título centrado no ecrã */
  .menu-botao{display:flex}
  .topo nav{display:none;position:absolute;top:100%;left:0;right:0;margin:0;flex-direction:column;gap:2px;background:#154289;padding:6px 14px 14px;box-shadow:0 14px 30px rgba(5,15,45,.35)}
  .topo.aberto nav{display:flex}
  .topo nav a,.form-sair button{display:block;width:100%;text-align:left;font-size:16px;padding:12px 10px;opacity:1;border-radius:8px}
  .form-sair{display:block}
}
@media (prefers-reduced-motion:reduce){ .menu-botao span{transition:none} }

/* Contactos dos consultores (painel) */
.contactos summary{cursor:pointer;font-size:12px;font-weight:600;color:var(--muted);padding:4px 0}
.form-contactos{display:flex;flex-direction:column;gap:2px}
.form-contactos label{margin:6px 0 0;font-size:11.5px}
.form-contactos input,.form-contactos textarea{padding:7px 8px!important;font-size:12.5px!important;width:100%;font-family:Montserrat,sans-serif;border:1px solid var(--line);border-radius:7px;background:var(--panel);color:var(--ink)}
.form-contactos .btn-sec{margin-top:8px}
.estado-contactos{font-size:11.5px;color:var(--muted)}

/* Agências */
.agencia{padding:12px 0;border-bottom:1px solid var(--line)}
.agencia textarea{width:100%;font:500 14px Montserrat,sans-serif;color:var(--ink);background:var(--field);border:1px solid var(--line);border-radius:8px;padding:9px 11px}
.acoes-agencia{display:flex;gap:8px;align-items:center}

.linha-folha{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:10px}
.linha-folha input{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}
@media (max-width:600px){ .linha-folha{grid-template-columns:1fr} }
