:root{
  /* Paleta do site: #89C2EB principal, #0B1A2E, #1A6FA8, #F47B20, #EEF5FC.
     O azul claro não tem contraste para texto, por isso serve de acento e de
     superfície; o azul médio é que assume os elementos interativos. */
  --tinta:#102033; --tinta-suave:#526b85; --linha:#d9e3ed; --fundo:#f5f7fa;
  --papel:#fff; --marca:#176fa7; --marca-clara:#edf6fc; --acento:#78bce7;
  --destaque:#F47B20; --destaque-claro:#fdf0e6;
  --bom:#0f7a4d; --bom-claro:#e6f5ee; --alerta:#a8600a; --alerta-claro:#fdf3e3;
  --mau:#b3261e; --mau-claro:#fdeceb; --raio:11px;
  --lateral:#0d2742; --lateral-fundo:#102f4f; --lateral-texto:#d9e7f3;
  --intensidade:0;
  --sombra-suave:0 1px 2px rgba(15,35,55,.04),0 8px 24px rgba(15,35,55,.055);
  --letra:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}

/* Ações de formação: uma leitura por programa/curso, mantendo cada edição
   acessível e sem esconder os títulos longos. */
.acoes-comando{display:grid;gap:14px}
.acoes-separadores,.acoes-filtros-atencao,.acoes-controlos{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.acoes-separadores{padding-bottom:12px;border-bottom:1px solid var(--linha,#dfe7ef)}
.acoes-filtros-atencao .ligacao{margin-left:auto}
.acoes-controlos{justify-content:flex-end}
.acoes-controlos>span{margin-right:auto;color:var(--texto-suave,#66788a)}
.acoes-grupos{display:grid;gap:12px}
.acoes-grupo{padding:0;overflow:hidden}
.acoes-grupo.com-aviso{border-left:4px solid var(--laranja,#f59e42)}
.acoes-acordeao{width:100%;min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;border:0;border-radius:0;background:transparent;color:inherit;text-align:left}
.acoes-acordeao:hover{background:#f7fafc}
.acoes-acordeao:focus-visible{outline:3px solid #89c2eb;outline-offset:-3px}
.acoes-acordeao strong{display:block;font-size:1rem;line-height:1.35;overflow-wrap:anywhere}
.acoes-acordeao .sub{display:block;margin-top:3px}
.acoes-resumo-alertas{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap;flex:0 0 auto}
.acoes-grupo>div{padding:0 16px 16px;overflow-x:auto}
.acoes-grupo table{margin:0;min-width:880px}
.acoes-grupo td:first-child,.acoes-grupo th:first-child{width:32%;white-space:normal}
.acoes-grupo .etiqueta{margin:2px 4px 2px 0}
.acoes-editar{min-width:64px;min-height:44px}
.acoes-dossier-fases{display:flex;gap:4px;flex-wrap:wrap;margin-top:5px}
.acoes-dossier-fases span{padding:2px 5px;border-radius:5px;background:#eef3f7;color:#627284;font-size:.72rem;white-space:nowrap}
.acoes-dossier-fases span.agora{background:#dcedf8;color:#174f75;font-weight:700}
@media (max-width:760px){
  .acoes-filtros-atencao .ligacao{margin-left:0}
  .acoes-acordeao{align-items:flex-start;flex-direction:column}
  .acoes-resumo-alertas{justify-content:flex-start}
  .acoes-controlos>button{flex:1 1 auto;min-height:44px}
}

/* O botão geral dos painéis dá fundo azul aos acordeões. Mantém-se essa
   hierarquia, mas todo o resumo precisa de contraste explícito sobre o azul. */
.painel>button.acoes-acordeao{background:var(--marca);color:#fff}
.painel>button.acoes-acordeao:hover{background:var(--tinta);color:#fff}
.painel>button.acoes-acordeao .sub{color:#e2eff8}
.paginacao{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;
  gap:12px;margin-top:16px;padding-top:14px;border-top:1px solid var(--linha)}
.paginacao [role=status]{text-align:center;color:var(--tinta-suave);font-size:12.5px;
  font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.paginacao button{min-height:44px;padding:8px 16px;border:1px solid var(--linha);
  border-radius:var(--raio);background:var(--papel);color:var(--marca);font:inherit;
  font-weight:600;cursor:pointer}
.paginacao button:hover:not(:disabled){background:var(--marca-clara);border-color:var(--marca)}
.paginacao button:disabled{opacity:.45;cursor:default;color:var(--tinta-suave)}
*{box-sizing:border-box}
/* o atributo `hidden` vale display:none, mas qualquer regra que defina display
   — .entrada usa grid, #app usa grid — passa-lhe à frente. Sem isto, o ecrã de
   entrada continua a ocupar um ecrã inteiro por cima do painel já autenticado. */
[hidden]{display:none!important}
.so-leitor{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0}
body{margin:0;font:14px/1.55 var(--letra);color:var(--tinta);background:var(--fundo)}
.saltar-conteudo{position:fixed;z-index:1000;top:8px;left:8px;transform:translateY(-160%);
  padding:10px 14px;border-radius:var(--raio);background:var(--tinta);color:#fff;font-weight:700}
.saltar-conteudo:focus{transform:none}
h1{font-size:20px;margin:0;letter-spacing:-.01em}
h2{font-size:15px;margin:0 0 12px}
/* Um rótulo de grupo dentro de um painel, não um título mais pequeno: sem
   isto o h3 sai a 18px por omissão do browser, maior do que o h2 a 15px que
   está por cima dele. Segue o vocabulário do `th`, que é o que já marca o
   princípio de uma tabela. */
h3{font-size:11px;text-transform:uppercase;letter-spacing:.05em;
  color:var(--tinta-suave);font-weight:600;margin:14px 0 6px}
code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}
.sub{color:var(--tinta-suave);margin:2px 0 0;font-size:13px}
/* Hierarquia no cabeçalho da página: o nome manda, o resto acompanha. */
#titulo{font-size:23px;line-height:1.22;letter-spacing:-.015em;margin:0}
#subtitulo{font-size:13px;color:var(--tinta-suave);font-weight:600;letter-spacing:.02em}
#subtitulo:empty{display:none}
.painel > h2{font-size:15px;color:var(--tinta);margin:0 0 4px;letter-spacing:-.01em}
.painel > h2 + .sub{margin-bottom:12px}
button{font:inherit;cursor:pointer}
button,.cartao-filtro,.kpi[data-grupo]{transition:background-color .14s ease,border-color .14s ease,
  color .14s ease,box-shadow .14s ease,transform .08s ease}
button:active:not(:disabled){transform:translateY(1px)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,
[tabindex="0"]:focus-visible{outline:3px solid var(--marca);outline-offset:2px}
button:disabled,[role=button][aria-disabled="true"]{cursor:not-allowed;border-style:dashed!important;
  box-shadow:none!important;transform:none!important}
[aria-current="page"],[aria-pressed="true"]{font-weight:700}
input::placeholder,textarea::placeholder{color:#7189a3;opacity:1}
input[type=checkbox],input[type=radio]{accent-color:var(--marca)}
:is(.formulario,.filtros,.meus-dados,dialog,.painel) :is(input,select,textarea):hover:not(:disabled){border-color:#abc5dc}
:is(.formulario,.filtros,.meus-dados,dialog,.painel) :is(input,select,textarea):disabled{
  background:var(--fundo);color:var(--tinta-suave);cursor:not-allowed;border-style:dashed}
:is(.formulario,.meus-dados,dialog) :is(input,select,textarea):user-invalid:not(:focus){
  border-color:var(--mau);box-shadow:inset 3px 0 0 var(--mau)}
:is(.formulario,.meus-dados,dialog) :is(input,select,textarea)[aria-invalid="true"]:not(:focus){
  border-color:var(--mau);box-shadow:inset 3px 0 0 var(--mau)}
.campo-obrigatorio{color:var(--mau);font-size:.9em;font-weight:600}
.ligacao{background:none;border:0;color:var(--marca);padding:0;text-align:left}
.ligacao:hover{text-decoration:underline}

/* entrada */
.entrada{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr);place-content:center;padding:24px;
  background:radial-gradient(circle at 50% 22%,#fff 0,#f3f7fb 48%,#e9f0f7 100%)}
.cartao-entrada{background:rgba(255,255,255,.96);border:1px solid rgba(180,199,216,.7);border-radius:18px;
  padding:36px;width:100%;max-width:440px;min-width:0;justify-self:center;box-shadow:0 22px 60px rgba(15,40,65,.12)}
.cartao-entrada h1{margin:0;text-align:center;font-size:26px;color:#0d2742}
.entrada-perfis{display:grid;gap:12px;margin-top:22px}
.entrada-perfil{position:relative;display:grid;grid-template-columns:8px minmax(0,1fr) 42px;align-items:stretch;
  min-height:76px;border:1px solid #c9d5df;border-radius:12px;background:#fff;color:#0d2742;
  overflow:hidden;text-decoration:none;box-shadow:0 2px 8px rgba(13,39,66,.04)}
.entrada-perfil>i{display:block;background:var(--cor-perfil)}
.entrada-perfil>span{display:flex;min-width:0;flex-direction:column;justify-content:center;padding:13px 15px}
.entrada-perfil strong{font-size:18px;line-height:1.3}.entrada-perfil small{margin-top:3px;color:#3b4b5c;font-size:14px}
.entrada-perfil>b{display:grid;place-items:center;color:#0f4c81;font-size:22px}
.entrada-perfil:hover{border-color:#0f4c81;background:#f4f9fd;box-shadow:0 7px 18px rgba(13,39,66,.1)}
.entrada-perfil:focus-visible{outline:3px solid #0f4c81;outline-offset:3px}
.perfil-formando{--cor-perfil:#89c2eb}.perfil-formador{--cor-perfil:#0f4c81}.perfil-empresa{--cor-perfil:#0d2742}
.entrada-ultima-vez{display:inline-flex;align-items:center;width:max-content;margin:4px 0 0;padding:2px 6px;
  border-radius:999px;background:#eaf4fb;color:#0f4c81;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.entrada-ajuda-perfil{text-align:center;margin:22px 0 0;color:#5b6b7c;font-size:13px}
.entrada-ajuda-perfil .ligacao{font-size:inherit;font-weight:700}
.entrada-equipa-ligacao{display:block;margin:15px auto 0;padding:6px 10px;border:0;background:transparent;
  color:#5b6b7c;font-family:inherit;font-size:13px;font-weight:700;cursor:pointer}
.entrada-equipa-ligacao:hover{text-decoration:underline;color:#0f4c81}
.entrada-voltar{display:inline-flex;min-height:36px;align-items:center;margin:0 0 13px;font-weight:700}
.entrada-etiqueta{display:block;width:max-content;margin:0 auto 9px;padding:4px 8px;border-radius:999px;
  background:#eaf4fb;color:#0f4c81;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.cartao-entrada label{display:block;font-size:12px;font-weight:600;margin:16px 0 6px;color:var(--tinta-suave)}
.cartao-entrada input{width:100%;padding:10px 12px;border:1px solid var(--linha);
  border-radius:var(--raio);font:inherit;background:#fcfdff}
.cartao-entrada input:focus{outline:2px solid var(--marca);border-color:var(--marca)}
.campo-palavra-passe{position:relative}
.campo-palavra-passe input{padding-right:76px}
.campo-palavra-passe button{position:absolute;right:5px;top:50%;transform:translateY(-50%);
  min-height:34px;padding:5px 9px;border:0;border-radius:7px;background:transparent;
  color:var(--marca);font-size:12px;font-weight:700}
.campo-palavra-passe button:hover{background:var(--marca-clara)}
.campo-palavra-passe button:focus-visible{outline:2px solid var(--marca);outline-offset:0}
#btn-entrar{width:100%;margin-top:20px;padding:11px;background:var(--marca);color:#fff;
  border:0;border-radius:var(--raio);font-weight:600}
#btn-entrar:hover:not(:disabled){background:#115f92;box-shadow:0 6px 16px rgba(23,111,167,.2)}
#btn-entrar:active:not(:disabled){transform:translateY(1px);box-shadow:none}
#btn-entrar:disabled{opacity:.6;cursor:progress}
#alternar{display:block;width:100%;min-height:44px;padding:9px 12px;border:1px solid var(--linha);
  border-radius:var(--raio);font-size:13px;text-align:center;font-weight:600}
#alternar:hover{background:var(--marca-clara);border-color:var(--marca);text-decoration:none}
#alternar:disabled{opacity:.55;cursor:progress}
.entrada-ou{display:flex;align-items:center;gap:10px;margin:14px 0;color:var(--tinta-suave);
  font-size:11px;text-transform:uppercase;letter-spacing:.08em}
.entrada-ou::before,.entrada-ou::after{content:"";height:1px;background:var(--linha);flex:1}
.aviso{margin:14px 0 0;font-size:13px;min-height:0}
.aviso:empty{display:none}
p.aviso:not(:empty),dialog .aviso:not(:empty){display:block;padding:9px 11px;
  border-left:3px solid var(--acento);border-radius:0 8px 8px 0;
  background:var(--marca-clara);color:var(--tinta-suave);line-height:1.45}
p.aviso.ok:not(:empty),dialog .aviso.ok:not(:empty){border-left-color:var(--bom);
  background:var(--bom-claro);color:var(--bom)}
p.aviso.erro:not(:empty),dialog .aviso.erro:not(:empty),
p.aviso[role=alert]:not(:empty),dialog .aviso[role=alert]:not(:empty){border-left-color:var(--mau);
  background:var(--mau-claro);color:var(--mau)}
.cartao-entrada .aviso:not(:empty){padding:10px 12px;border:1px solid;border-radius:var(--raio);line-height:1.45}
.cartao-entrada .aviso.erro{color:var(--mau);background:var(--mau-claro);border-color:#efc7c7}
.cartao-entrada .aviso.ok{color:var(--bom);background:var(--bom-claro);border-color:#b9dec8}
.aviso.erro{color:var(--mau)} .aviso.ok{color:var(--bom)}
.aviso.erro + button.mini{margin:8px 0 0 10px;vertical-align:middle}
.notificacao-global{position:fixed;right:20px;bottom:20px;z-index:1200;display:flex;
  align-items:flex-start;gap:16px;max-width:min(520px,calc(100vw - 40px));padding:14px 16px;
  max-height:calc(100dvh - 40px);overflow:auto;overflow-wrap:anywhere;
  border:1px solid;border-left-width:4px;border-radius:var(--raio);
  box-shadow:0 12px 36px rgba(25,35,45,.18);background:#fff;line-height:1.45}
.notificacao-global::before{display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;
  border-radius:50%;color:#fff;font-size:14px;font-weight:800;line-height:1}
.notificacao-global.ok{color:var(--bom);background:var(--bom-claro);border-color:#b9dec8;border-left-color:var(--bom)}
.notificacao-global.ok::before{content:"✓";background:var(--bom)}
.notificacao-global.erro{color:var(--mau);background:var(--mau-claro);border-color:#efc7c7;border-left-color:var(--mau)}
.notificacao-global.erro::before{content:"!";background:var(--mau)}
.notificacao-global span{flex:1;min-width:0;white-space:pre-line;padding-top:2px}
.notificacao-global .ligacao{flex:0 0 auto;color:inherit;min-height:32px;padding:4px 7px;
  border-radius:7px;font-weight:700}
.notificacao-global .ligacao:hover{background:rgba(255,255,255,.65);text-decoration:none}
@media(max-width:600px){
  .notificacao-global{left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));max-width:none}
  .notificacao-global .ligacao{min-height:44px}
}
.marca{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--tinta-suave)}
.ponto{width:9px;height:9px;border-radius:50%;background:var(--acento);
  box-shadow:0 0 0 3px var(--marca-clara);flex:none}

/* estrutura */
#app{display:grid;grid-template-columns:236px 1fr;min-height:100vh}
.lateral{background:var(--lateral);border-right:0;padding:18px 14px;
  display:flex;flex-direction:column;gap:16px;position:sticky;top:0;height:100vh;min-height:0}
/* No mockup o painel é uma aplicação enquadrada, não uma folha colada às
   quatro extremidades do navegador. A margem também separa visualmente a
   navegação escura do fundo da página. */
@media (min-width:861px){
  body:not(.sou-formando) #app{width:calc(100% - 28px);max-width:1920px;min-height:calc(100vh - 28px);
    margin:14px auto;background:var(--papel);border-radius:18px;box-shadow:0 12px 38px rgba(15,35,55,.11)}
  body:not(.sou-formando) .lateral{top:18px;height:calc(100vh - 36px);border-radius:18px 0 0 18px}
  body:not(.sou-formando) main{background:var(--papel);border-radius:0 18px 18px 0}
  body:not(.sou-formando) .topo{position:static;padding:22px 26px 8px;border-bottom:0;
    border-radius:0 18px 0 0;box-shadow:none;backdrop-filter:none}
  body:not(.sou-formando) .vista{padding:14px 26px 32px}
  body:not(.sou-formando) #acoes-topo{padding:0;border:0;background:transparent}
}
/* A identidade não é um evento: .marca também é usada pelo calendário. */
.lateral .marca,.lateral .marca:hover{line-height:1.25;align-items:flex-start;
  background:transparent;color:#a9bed1;cursor:default;
  font-size:14px;padding:0;margin:0;overflow:visible}
.lateral .marca-identidade{align-items:center;padding:1px 8px 14px;
  border-bottom:1px solid rgba(255,255,255,.14)}
.marca-identidade .ponto{display:none}
.marca-nome{display:flex;min-width:0;flex-direction:column;gap:2px}
.marca-nome strong{color:#fff;font-size:15px;line-height:1.2;letter-spacing:-.01em}
.marca-nome small{color:#9fb6cb;font-size:10px;font-weight:700;text-transform:uppercase;
  letter-spacing:.08em;line-height:1.3}
#alternar-menu{display:none;background:var(--papel);border:1px solid var(--linha);
  border-radius:var(--raio);padding:8px 10px;color:var(--marca);font-weight:600;text-align:left}
#menu{display:flex;flex-direction:column;gap:1px;flex:1;overflow-y:auto;
  margin:-4px -4px 0;padding:4px;min-height:0;scroll-padding-block:40px;
  overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#b9cde0 transparent}
#menu::-webkit-scrollbar{width:8px}
#menu::-webkit-scrollbar-thumb{background:#52708d;border:2px solid var(--lateral);border-radius:8px}
.pesquisa-menu{display:block;margin:0 6px 8px;padding-bottom:12px;
  border-bottom:1px solid rgba(255,255,255,.13);flex-shrink:0}
.pesquisa-menu input{width:100%;min-width:0;min-height:38px;padding:8px 10px;border:1px solid rgba(190,211,230,.4);
  border-radius:9px;background:rgba(255,255,255,.08);color:#fff;font:13px var(--letra);
  text-transform:none;letter-spacing:normal}
.pesquisa-menu input::placeholder{color:#a9bed1}
.pesquisa-menu input:focus-visible{outline:3px solid var(--acento);outline-offset:1px;border-color:var(--acento)}
.menu-vazio{margin:8px 10px;color:#b8cadd;font-size:12.5px;line-height:1.45}
.menu-atalhos{margin:0 6px 8px;padding:0 0 10px;border-bottom:1px solid rgba(255,255,255,.13);flex-shrink:0}
.menu-atalhos h2{margin:0 10px 5px;font-size:9.5px;text-transform:uppercase;letter-spacing:.1em;
  color:#9fb6cb}
.menu-atalhos div{display:flex;flex-direction:column;gap:1px}
.menu-atalhos button{width:100%}
.menu-grupo{display:flex;flex-direction:column;gap:1px;flex-shrink:0;margin:0 6px;padding-top:8px;
  border-top:1px solid rgba(255,255,255,.13)}
.menu-itens{display:flex;flex-direction:column;gap:1px;flex-shrink:0}
.menu-grupo.recolhido .menu-itens{display:none}
#menu .grupo{font-size:11px;text-transform:uppercase;letter-spacing:.08em;
  color:#9fb6cb;font-weight:700;margin:0 0 3px;
  flex-shrink:0;padding:7px 8px;border:0;
  position:sticky;top:-4px;z-index:1;background:var(--lateral)}
#menu .menu-grupo:first-of-type .grupo{margin-top:0}
#menu button{background:none;border:0;text-align:left;padding:8px 10px;border-radius:8px;
  color:var(--lateral-texto);font-size:13.5px;flex-shrink:0;line-height:1.4;min-height:38px}
#menu button.grupo{display:flex;align-items:center;justify-content:space-between;width:100%;
  padding:7px 8px;border:0;border-radius:6px;background:transparent;min-height:34px}
#menu button.grupo::before{content:attr(data-icone);display:grid;place-items:center;flex:0 0 16px;width:16px;height:16px;
  margin-right:6px;border-radius:0;background:transparent;color:#9fb6cb;font-size:12px;line-height:1}
#menu button.grupo{justify-content:flex-start}
#menu button.grupo::after{content:"⌄";font-size:15px;line-height:1;transition:transform .15s ease}
#menu button.grupo::after{margin-left:auto}
#menu .menu-grupo.recolhido button.grupo::after{transform:rotate(-90deg)}
#menu button.grupo:hover{background:rgba(255,255,255,.07);color:#fff}
#menu .menu-grupo:first-of-type button.grupo{margin-top:0}
#menu button:hover{background:rgba(255,255,255,.08);color:#fff}
#menu button.ativo{background:#fff;color:var(--lateral);font-weight:700;
  box-shadow:inset 3px 0 0 var(--marca)}
#menu button[data-contagem]::after{content:attr(data-contagem);float:right;margin-left:7px;padding:1px 7px;
  border-radius:999px;background:var(--destaque);color:#fff;font-size:10.5px;font-weight:800;font-variant-numeric:tabular-nums}
#menu button[data-tom-contagem="perigo"]::after{background:var(--mau)}
#menu button:focus-visible,#alternar-menu:focus-visible,
.rodape-lateral button:focus-visible{outline:3px solid var(--acento);outline-offset:1px}
.rodape-lateral{border:0;border-top:1px solid rgba(255,255,255,.13);padding:11px 6px 0;border-radius:0;
  background:transparent;font-size:12px;color:#a9bed1;flex-shrink:0}
.rodape-lateral .ligacao{color:#d9e7f3;min-height:32px;display:block;width:100%;padding:5px 6px;
  border-radius:7px;text-decoration:none}
.rodape-lateral .ligacao:hover{background:rgba(255,255,255,.08);color:#fff;text-decoration:none}
#quem{padding:0 6px 9px;margin-bottom:3px;border-bottom:1px solid rgba(255,255,255,.1);
  overflow-wrap:anywhere;line-height:1.45}
#quem b{display:block;color:#fff;font-size:13px;margin-bottom:1px}
#instalar-app{display:flex;align-items:center;gap:7px;color:#fff;font-weight:700}
#instalar-app::before{content:"↓";display:grid;place-items:center;width:20px;height:20px;
  border:1px solid rgba(255,255,255,.3);border-radius:6px;color:var(--acento)}
#instalar-app:hover{color:#fff;text-decoration:none}
#instalar-app[hidden]{display:none}
.dialogo-instalar-app{max-width:440px}
.dialogo-instalar-app p{line-height:1.55}
main{min-width:0}
#vista:focus{outline:none}
#vista:focus-visible{outline:3px solid var(--marca);outline-offset:-3px}
.topo{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;
  padding:22px 30px;border-bottom:1px solid rgba(208,220,232,.85);background:rgba(255,255,255,.94);
  box-shadow:0 1px 10px rgba(15,35,55,.035);position:sticky;top:0;z-index:5;backdrop-filter:blur(12px)}
.topo > *{min-width:0;max-width:100%}
.topo > div:first-child{flex:1 1 260px;padding-left:12px;border-left:3px solid var(--acento)}
#titulo{overflow-wrap:anywhere}
.estado-atualizacao{margin:3px 0 0;color:var(--tinta-suave);font-size:11px}
#acoes-topo{display:flex;align-items:flex-end;justify-content:flex-end;flex:0 1 auto;flex-wrap:wrap;
  gap:6px;padding:4px;border:1px solid #e4ebf2;border-radius:12px;background:#f7fafc}
#acoes-topo:empty{display:none}
#acoes-topo > button{min-height:40px;padding:8px 12px;border-radius:var(--raio);font-weight:600}
#acoes-topo > button.ligacao{border:1px solid var(--linha);background:var(--papel);text-align:center}
#acoes-topo > button.ligacao:hover{background:var(--marca-clara);border-color:var(--marca);text-decoration:none}
#acoes-topo > button.ligacao.ativo{background:var(--marca-clara);border-color:var(--marca);
  color:var(--marca);box-shadow:inset 0 -2px 0 var(--marca)}
.vista{padding:26px 30px 40px}
.a-carregar{display:flex;align-items:center;justify-content:center;gap:10px;
  color:var(--tinta-suave);padding:48px 0;font-weight:600}
.a-carregar::before{content:"";width:18px;height:18px;border:2px solid var(--linha);
  border-top-color:var(--marca);border-radius:50%;animation:girar-carregamento .75s linear infinite}
@keyframes girar-carregamento{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.a-carregar::before{animation:none;border-color:var(--marca)}}
@media (prefers-reduced-motion:reduce){
  button,.cartao-filtro,.kpi[data-grupo],#menu button.grupo::after{transition:none}
  button:active:not(:disabled),.kpi[data-grupo]:hover{transform:none}
}
.topo-acoes{display:flex;align-items:flex-end;justify-content:flex-end;gap:9px;flex-wrap:wrap}
.seletor-espaco{display:grid;gap:3px;margin:0;min-width:180px;color:var(--texto);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.seletor-espaco[hidden]{display:none}
.seletor-espaco select{min-height:44px;padding:8px 34px 8px 11px;border:1px solid #b9d9ef;border-radius:8px;background:#fff;color:#0d2742;font-size:14px;font-weight:700;text-transform:none;letter-spacing:0}
.escolha-espaco{max-width:680px;margin:8vh auto 0}.escolha-espaco h2{font-size:28px;color:#0d2742}.espacos-disponiveis{display:grid;gap:12px;margin:24px 0}.espaco-opcao{display:grid;grid-template-columns:6px 1fr auto;align-items:center;gap:16px;min-height:78px;padding:0 16px 0 0;border:1px solid #dbe4ec;border-radius:10px;background:#fff;color:#0d2742;text-align:left}.espaco-opcao:hover{border-color:#89c2eb}.espaco-opcao i{align-self:stretch;border-radius:10px 0 0 10px}.espaco-opcao strong{display:block;font-size:18px}.espaco-opcao small{display:block;margin-top:4px;color:#3b4b5c}.espaco-opcao b{padding:11px 17px;border-radius:8px;background:#0d2742;color:#fff}.espaco-opcao[data-espaco="formando"] i{background:#89c2eb}.espaco-opcao[data-espaco="formador"] i{background:#0f4c81}.espaco-opcao[data-espaco="equipa"] i{background:#e8833a}.lembrar-espaco{display:flex;align-items:center;gap:9px;margin:18px 0;font-size:14px}.lembrar-espaco input{width:auto}.ultimo-espaco{display:inline-block;margin-left:7px;padding:3px 8px;border-radius:99px;background:#eaf4fb;color:#0f4c81;font-size:11px}
body.escolher-espaco .lateral{display:none}body.escolher-espaco #app{display:block}body.escolher-espaco main{min-height:100vh}body.escolher-espaco .topo{display:none}body.escolher-espaco .vista{padding:24px}
.pesquisa-global-atalho{min-height:40px;border:1px solid var(--linha);border-radius:var(--raio);background:var(--papel);
  color:var(--tinta);padding:8px 11px;font:inherit;font-size:13px;font-weight:650;cursor:pointer;white-space:nowrap}
.pesquisa-global-atalho:hover{border-color:var(--marca);background:var(--marca-clara)}
.pesquisa-global-atalho kbd{margin-left:6px;padding:1px 5px;border:1px solid var(--linha);border-radius:5px;
  background:var(--fundo);color:var(--tinta-suave);font:inherit;font-size:11px}
dialog.pesquisa-global{max-width:720px;width:calc(100% - 32px);max-height:calc(100dvh - 40px);overflow:auto;padding:18px}
.pesquisa-global-cabeca{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.pesquisa-global-cabeca h2{margin:0}.pesquisa-global-cabeca .ligacao{padding:6px 8px}
#pesquisa-global-campo{font-size:17px;padding:13px 14px}
#pesquisa-global-resultados{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.pesquisa-global-grupo{min-width:0}.pesquisa-global-grupo h3{margin:5px 6px 6px;color:var(--tinta-suave);
  font-size:11px;text-transform:uppercase;letter-spacing:.08em}
.pesquisa-global-resultado{display:flex;width:100%;align-items:center;justify-content:space-between;gap:10px;
  border:0;border-radius:9px;background:transparent;padding:9px 10px;text-align:left;color:var(--tinta);font:inherit;cursor:pointer}
.pesquisa-global-resultado:hover,.pesquisa-global-resultado:focus-visible{background:var(--marca-clara);outline:2px solid transparent}
.pesquisa-global-resultado span{min-width:0}.pesquisa-global-resultado b,.pesquisa-global-resultado small{display:block;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pesquisa-global-resultado b{font-size:13px}
.pesquisa-global-resultado small{margin-top:2px;color:var(--tinta-suave);font-size:11.5px;font-weight:400}
.pesquisa-global-resultado i{color:var(--marca);font-style:normal}
.historico-unico ol{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:0}
.historico-unico li{display:grid;grid-template-columns:92px 90px minmax(0,1fr);gap:10px;position:relative;padding:9px 0 9px 18px;
  border-left:2px solid var(--linha);align-items:start}
.historico-unico li::before{content:"";position:absolute;left:-5px;top:15px;width:8px;height:8px;border-radius:50%;background:var(--marca)}
.historico-unico time{font-size:12px;color:var(--tinta-suave);font-variant-numeric:tabular-nums}
.historico-tipo{font-size:11px;color:var(--marca);font-weight:700;text-transform:uppercase;letter-spacing:.035em}
.historico-unico li b{font-size:13px}.historico-unico li p{margin:2px 0 0;color:var(--tinta-suave);font-size:12px}
.historico-unico details{margin-top:8px}.historico-unico details>summary{cursor:pointer;color:var(--marca);font-size:12px;font-weight:650}
@media(max-width:680px){.topo-acoes{width:100%;justify-content:stretch}.pesquisa-global-atalho{width:100%}
  #pesquisa-global-resultados{grid-template-columns:1fr}.pesquisa-global-atalho kbd{display:none}
  .historico-unico li{grid-template-columns:78px minmax(0,1fr)}.historico-tipo{grid-column:2}.historico-unico li>div{grid-column:2}}
@media (prefers-contrast:more){
  :root{--tinta-suave:#334b67;--linha:#8ca3b9}
  .painel,.cartao,dialog,.etiqueta{border-color:currentColor}
  button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,
  [tabindex="0"]:focus-visible{outline-width:4px}
  button:disabled,[aria-disabled="true"],input:disabled,select:disabled,textarea:disabled{opacity:1}
}
@media (forced-colors:active){
  .ponto,.barra i,.a-carregar::before{forced-color-adjust:auto}
  .etiqueta,.painel[role=alert],.chamada{border:1px solid CanvasText}
  :is(button,a,input,select,textarea,summary,[tabindex="0"]):focus-visible{outline:3px solid Highlight}
  button:disabled,[aria-disabled="true"],input:disabled,select:disabled,textarea:disabled{
    opacity:1;color:GrayText;border-color:GrayText}
  [aria-current="page"],[aria-pressed="true"]{outline:2px solid CanvasText;outline-offset:-2px}
}

/* peças */
.grelha{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
/* Webinars: a navegação já contém as contagens; a agenda mantém-se por data e
   as entregas agrupam-se por webinar para permitir trabalho em lote. */
.webinars-filtros{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.webinars-filtros .btn,.webinars-acoes .btn,.webinars-entregas .btn{min-height:40px;padding:9px 14px;font:600 14px inherit;font-family:inherit;font-size:14px;font-weight:600;white-space:nowrap;border:1px solid #c8ddec;border-radius:10px;background:#fff;color:var(--marca);cursor:pointer}
.webinars-filtros .btn:hover,.webinars-acoes .btn:hover,.webinars-entregas .btn:hover{background:var(--marca-clara);border-color:var(--marca)}
.webinars-filtros .btn:focus-visible,.webinars-acoes .btn:focus-visible,.webinars-entregas .btn:focus-visible{outline:3px solid var(--marca);outline-offset:3px}
.webinars-filtros .btn[aria-pressed="true"],.webinars-filtros .btn[aria-pressed="true"]:hover{background:var(--marca);color:white;border-color:var(--marca)}
.webinars-filtros .btn span{display:inline-grid;place-items:center;min-width:22px;height:22px;margin-left:5px;padding:0 6px;border-radius:999px;background:#e7eff6;color:var(--tinta);font-size:12px}
.webinars-filtros .btn[aria-pressed="true"] span{background:rgba(255,255,255,.22);color:white}
.webinars-por-associar{display:flex;align-items:baseline;gap:10px;margin:-6px 0 16px;padding:11px 14px;border:1px solid #efd3a5;border-radius:10px;background:#fff7e8}.webinars-por-associar strong{color:#7b4a09}.webinars-por-associar span{color:var(--tinta-suave);font-size:12.5px}
.webinars-nota-contagem{margin:-8px 0 14px;color:var(--tinta-suave);font-size:13px}
.webinars-como-funciona{margin:-4px 0 18px}.webinars-como-funciona summary{width:max-content;color:var(--marca);font-weight:650;cursor:pointer}
.webinars-como-funciona p{max-width:760px;margin:8px 0 0}
.webinars-agenda,.webinars-entregas{padding:22px}
.webinars-tabela{overflow-x:auto;margin-top:16px}
.webinars-tabela table{width:100%}
.webinars-entregas .webinars-tabela thead th{position:static!important;top:auto!important;box-shadow:none!important}
.webinars-tabela td{padding:16px 12px;vertical-align:middle}
.webinars-tabela th{padding:10px 12px}
.webinars-quando{white-space:nowrap;width:140px}
.webinars-quando strong,.webinars-quando span{display:block}
.webinars-quando span{color:var(--tinta-suave);font-size:13px;margin-top:4px}
.webinars-tema{min-width:220px}
.webinars-tema strong{font-weight:600;line-height:1.5}
.webinars-tabela .numero{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.webinars-compras{min-width:140px}.webinars-compras strong,.webinars-compras span,.webinars-compras small{display:block}
.webinars-compras span,.webinars-compras small{margin-top:3px;color:var(--tinta-suave);font-size:12px}.webinars-compras .aviso-inline{color:var(--destaque)}
.webinars-por-entregar{padding:0;border:0;background:none;font:inherit;color:var(--marca);white-space:nowrap;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.webinars-acoes{display:flex;flex-wrap:nowrap;gap:6px}
.webinars-acoes .btn{min-height:32px;padding:5px 10px;font-size:12.5px;border-radius:8px}
.webinars-entregas td .sub{max-width:420px;overflow-wrap:anywhere}
.webinars-entregas-quadro{padding:18px;border:1px solid #dbe4ec;border-radius:10px;background:#fff}
.webinars-entregas-filtros{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.webinars-entregas-filtros .btn{min-height:34px;padding:6px 12px;border-color:#b9c7d4;border-radius:999px;color:#3b4b5c;font-size:12.5px}
.webinars-entregas-filtros .btn[aria-pressed="true"]{border-color:#0d2742;background:#0d2742;color:#fff}
.webinars-entregas-filtros .btn span{display:inline-grid;min-width:20px;height:20px;margin-left:5px;place-items:center;border-radius:999px;background:#eef3f8;color:#3b4b5c;font-size:11px}
.webinars-entregas-filtros .btn[aria-pressed="true"] span{background:rgba(255,255,255,.2);color:#fff}
.webinars-entrega-grupo{padding:14px 18px;border-top:1px solid #e1e8ef;background:#fff}.webinars-entrega-grupo:first-of-type{margin-top:14px}.webinars-entrega-grupo.aberto{background:#f9fbfd}
.webinars-entrega-cabecalho{display:grid;grid-template-columns:minmax(280px,1fr) auto auto;align-items:center;gap:12px}
.webinar-grupo-abrir{display:grid;grid-template-columns:22px minmax(0,1fr) 82px;align-items:center;gap:8px;min-width:0;padding:4px 0;border:0;background:transparent;color:#0d2742;text-align:left;cursor:pointer}
.webinar-grupo-seta{color:#0f4c81;font-size:16px}.webinar-grupo-abrir[aria-expanded="true"] .webinar-grupo-seta{transform:rotate(90deg)}
.webinar-grupo-identidade strong,.webinar-grupo-identidade small,.webinar-grupo-total strong,.webinar-grupo-total small{display:block}.webinar-grupo-identidade strong{font-size:14px}.webinar-grupo-identidade small{margin-top:3px;color:#5b6b7c;font-size:12px}.webinar-grupo-total{text-align:center}.webinar-grupo-total strong{font-size:18px}.webinar-grupo-total small{color:#5b6b7c;font-size:12px}
.webinar-grupo-faltas{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.webinar-falta{padding:4px 8px;border:1px solid #d3dfe9;border-radius:999px;background:#eef3f8;color:#3b4b5c;font-size:12px;font-weight:700;white-space:nowrap}.webinar-falta.gravacao{border-color:#f3d3b4;background:#fff6ee;color:#b45f1c}.webinar-falta.idade.atrasada{border-color:#f1a9a9;background:#fde8e8;color:#b42318}.webinar-falta.idade.recente{border-color:#f3d3b4;background:#fff6ee;color:#8a4b15}.webinar-falta.idade.hoje{border-color:#bfe3cf;background:#e7f6ee;color:#1d6f45}
.webinar-grupo-acoes{display:flex;flex-direction:column;gap:6px;align-items:stretch}
.webinars-grupo-compras{margin:14px 0 0 50px;padding:2px 14px 14px;border-left:5px solid #89c2eb;background:#f2f6fa}.webinars-grupo-compras[hidden]{display:none!important}
.webinars-selecao{width:42px;text-align:center}.webinars-selecao input{width:18px;height:18px;accent-color:var(--marca)}
.webinar-envio-automatico{display:flex;gap:10px;margin:14px 0;padding:14px;border-left:5px solid #89c2eb;border-radius:8px;background:#f2f6fa;cursor:pointer}.webinar-envio-automatico input{width:18px;height:18px;accent-color:#0d2742}.webinar-envio-automatico strong,.webinar-envio-automatico small{display:block}.webinar-envio-automatico small{margin-top:4px;color:#5b6b7c;font-size:12px;line-height:1.4}
.webinars-agenda[hidden],.webinars-entregas[hidden],.webinars-agenda [hidden]{display:none!important}
.novo-webinar{width:min(920px,calc(100% - 32px))}.novo-webinar-passos{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:16px 0 22px}.novo-webinar-passos span{padding:10px;border:1px solid #dbe4ec;border-top:4px solid #89c2eb;border-radius:8px;background:#fff;color:#3b4b5c;font-size:13px}.novo-webinar-passos b{display:block;margin-bottom:4px;color:#0f4c81;font-size:11px}.codigo-webinar,.produtos-webinar{box-sizing:border-box;margin:8px 0;padding:14px;border:1px solid #dbe4ec;border-radius:8px;background:#f2f6fa}.codigo-webinar span,.codigo-webinar small{display:block}.codigo-webinar strong{display:block;margin:5px 0;color:#0d2742;font-size:20px}.produtos-webinar{display:flex;flex-wrap:wrap;gap:12px 22px}.produtos-webinar legend{font-weight:700}.produtos-webinar .sub{width:100%;margin:0}
@media(max-width:760px){.novo-webinar-passos{grid-template-columns:1fr}.novo-webinar-passos span{display:none}.novo-webinar-passos span:first-child{display:block}}
@media(max-width:900px){.webinars-acoes{flex-direction:column}.webinars-entrega-cabecalho{grid-template-columns:1fr}.webinar-grupo-faltas{justify-content:flex-start}.webinars-grupo-compras{margin-left:0}}
@media(max-width:540px){.webinars-agenda,.webinars-entregas{padding:14px}.webinars-tabela table{min-width:760px}}
.cartao{background:var(--papel);border:1px solid var(--linha);border-radius:11px;padding:17px 19px;box-shadow:none}
/* Os cartões neutros levavam branco sobre branco e desapareciam. Ganham o azul
   claro da casa e um traço da marca à esquerda; os de alerta continuam laranja,
   que é o contraste que faz olhar para o que precisa de decisão. */
.kpi{background:var(--marca-clara);border-color:#d4e6f7;border-left:3px solid var(--acento)}
.kpi.atencao{border-color:#f2d2b7;border-left-color:var(--destaque);
  background:linear-gradient(135deg,var(--destaque-claro),var(--papel) 82%)}
.kpi.neutro{border-color:var(--linha);border-left-color:#9eacba;background:#f3f6f8}
.kpi.neutro .rotulo{color:var(--tinta-suave)}
.kpi.perigo{border-color:#efc7c7;border-left-color:var(--mau);background:linear-gradient(135deg,var(--mau-claro),var(--papel) 82%)}
.kpi.perigo .rotulo{color:var(--mau)}
.kpi.sucesso{border-color:#b9dec8;border-left-color:var(--bom);background:linear-gradient(135deg,var(--bom-claro),var(--papel) 82%)}
.kpi.sucesso .rotulo{color:var(--bom)}
.resumo-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
.resumo-kpis .kpi{min-height:118px;padding:16px 17px}
.metricas-secundarias{display:flex;flex-wrap:wrap;gap:5px 18px;margin:10px 2px 0;color:var(--tinta-suave);font-size:12.5px}
.metricas-secundarias span+span::before{content:"·";margin-right:18px;color:#a9b6c3}
.metricas-secundarias b{color:var(--tinta);font-variant-numeric:tabular-nums}
.resumo-volume{margin-bottom:2px}
.faixa-validacao-resumo{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;
  width:100%;margin:12px 0 0;padding:11px 14px;border:1px solid #efd3a5;border-radius:10px;
  background:#fff7e8;color:var(--tinta);text-align:left}
.faixa-validacao-resumo:hover{border-color:var(--destaque);box-shadow:0 3px 12px rgba(190,112,27,.1)}
.faixa-validacao-resumo span{display:flex;align-items:baseline;gap:10px;min-width:0}
.faixa-validacao-resumo small,.faixa-validacao-resumo em{color:var(--tinta-suave);font-size:11px;font-style:normal}
.faixa-validacao-resumo i{color:var(--marca);font-style:normal}
.painel>h2 small{display:block;margin-top:2px;color:var(--tinta-suave);font-size:11px;font-weight:500}
.resumo-operacional{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.resumo-operacional > .painel{height:100%}
.resumo-operacional .painel>h2,.proximas-acoes>h2{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.resumo-operacional .painel>h2 small,.proximas-acoes>h2 small{display:inline;margin:0;text-align:right}
.lista-prioridades{display:grid;gap:6px;margin-top:12px}
.prioridade{display:grid;grid-template-columns:9px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;
  min-height:50px;padding:8px 11px;border:1px solid transparent;border-radius:7px;
  background:#f5f7fa;color:var(--tinta);text-align:left}
.prioridade::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--destaque)}
.prioridade.perigo{background:var(--mau-claro)}
.prioridade.perigo::before{background:var(--mau)}
.prioridade strong{grid-column:3;grid-row:1;font-size:14px;color:var(--tinta-suave);font-variant-numeric:tabular-nums}
.prioridade span{grid-column:2;grid-row:1;font-size:12.5px;font-weight:650}
.prioridade span small{display:block;margin-top:1px;color:var(--tinta-suave);font-size:10.5px;font-weight:400}
.prioridade i{display:none}
.prioridade:hover{border-color:#c9d9e8;background:#f0f5f9;box-shadow:none}
/* «acao» é também um tom operacional. Dentro desta lista não deve herdar o
   desenho azul dos botões de ação primária do painel. */
.painel button.prioridade.acao{background:#f5f7fa;color:var(--tinta);border:1px solid transparent}
.painel button.prioridade.acao:hover{background:#f0f5f9;color:var(--tinta);border-color:#c9d9e8}
.prioridade-wrap{border-radius:7px;background:#f5f7fa;border:1px solid transparent;overflow:hidden}
.prioridade-wrap>.prioridade,.painel .prioridade-wrap>button.prioridade.acao{border:0;border-radius:0;background:transparent}
.prioridade-wrap.perigo{background:var(--mau-claro)}
.prioridade-acoes{display:flex;justify-content:flex-end;gap:10px;max-height:0;opacity:0;overflow:hidden;
  padding:0 10px;border-top:0 solid var(--linha);transition:max-height .16s ease,opacity .16s ease,padding .16s ease}
.prioridade-wrap:hover .prioridade-acoes,.prioridade-wrap:focus-within .prioridade-acoes{
  max-height:38px;opacity:1;padding:3px 10px 6px;border-top-width:1px}
.prioridade-acoes .ligacao{padding:3px 5px;font-size:11px}
@media(hover:none){.prioridade-acoes{max-height:38px;opacity:1;padding:3px 10px 6px;border-top-width:1px}}
.acoes-em-lote{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px;padding:10px 12px;
  border:1px solid var(--linha);border-radius:var(--raio);background:var(--fundo)}
.acoes-em-lote label{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:650;color:var(--tinta-suave)}
.acoes-em-lote select{padding:6px 8px;border:1px solid var(--linha);border-radius:7px;background:var(--papel)}
.pendente-selecao{display:flex;align-items:center}.pendente-selecao input{width:18px;height:18px}
@media(max-width:900px){
  .resumo-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .resumo-operacional{grid-template-columns:1fr}
}
/* Um cartão que é também um filtro tem de parecer carregável, e o que está a
   filtrar tem de se distinguir dos outros — senão o número em cima e a lista
   em baixo ficam a dizer coisas diferentes sem se perceber porquê. */
.kpi[data-grupo]{cursor:pointer;user-select:none}
.kpi[data-grupo]:hover{border-color:var(--marca);transform:translateY(-1px);
  box-shadow:0 4px 14px rgba(23,111,167,.12)}
.kpi[data-grupo]:focus-visible{outline:2px solid var(--marca);outline-offset:2px}
.kpi.escolhido{background:var(--papel);border-color:var(--marca);
  box-shadow:inset 3px 0 0 var(--marca),0 4px 14px rgba(23,111,167,.1)}
.kpi.escolhido.atencao{box-shadow:inset 3px 0 0 var(--destaque)}
.filtros input[type=search]{padding:7px 9px;border:1px solid var(--linha);
  border-radius:var(--raio);font:inherit;font-size:13px;min-width:230px}
/* «Inscrições que entram» (Loja e faturação): o período escolhe-se com um toque,
   a pesquisa e os filtros ficam ao lado, e cada dia tem o seu título. */
.chips{display:inline-flex;gap:6px;flex-wrap:wrap;align-items:center}
.chip{background:var(--papel);border:1px solid var(--linha);border-radius:999px;
  padding:7px 14px;min-height:36px;font:inherit;font-size:13px;color:var(--tinta);cursor:pointer}
.chip:hover{border-color:var(--marca);background:var(--marca-clara)}
.chip[aria-pressed=true]{background:var(--marca);border-color:var(--marca);color:#fff;font-weight:600}
.chip:focus-visible{outline:2px solid var(--marca);outline-offset:2px}
#hon-mes,#hon-ano{min-height:36px;padding:7px 12px;border:1px solid var(--linha);border-radius:999px;
  background:var(--papel);color:var(--marca);font:600 13px var(--letra)}
.calendario-legenda-topo{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 4px;color:var(--tinta-suave);font-size:11px}
.calendario-legenda-topo span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.calendario-legenda-topo .p{width:8px;height:8px;border-radius:50%;display:inline-block}
.lembrete-por-avisar{color:#9aa6b2;font-weight:500}
.lembrete-avisado{color:var(--tinta);font-weight:750}
.kpi-detalhe-colapsado{cursor:pointer}
.kpi-detalhe-colapsado .nota{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden}
.kpi-detalhe-colapsado.aberto .nota{-webkit-line-clamp:unset;overflow:visible}
.kpi-detalhe-colapsado:focus-visible{outline:3px solid var(--acento);outline-offset:2px}
.painel:has([data-resolver]) .meus-dados{max-width:50%}
.painel:has([data-resolver]) > .acoes-linha{justify-content:flex-end}
@media(max-width:700px){.painel:has([data-resolver]) .meus-dados{max-width:none}}
.entradas-filtros{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end;margin:12px 0 4px}
.entradas-filtros label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--tinta-suave)}
.entradas-filtros select{padding:7px 9px;border:1px solid var(--linha);border-radius:var(--raio);
  font:inherit;font-size:13px;background:var(--papel);color:var(--tinta)}
.entradas-resumo{margin:14px 0 4px}
h3.entradas-dia{margin:20px 0 6px;padding-top:4px}
#ag-ical-url{width:100%;max-width:640px;padding:8px 10px;border:1px solid var(--linha);
  border-radius:var(--raio);font:inherit;font-size:12px;background:var(--fundo);color:var(--tinta)}

/* Um formulário em duas colunas dentro de um dialog — data e hora lado a
   lado, em vez de cada campo ocupar a largura toda por hábito. */
.duas-colunas{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.duas-colunas > label,.duas-colunas > div > label{margin-top:16px}
.duas-colunas > input,.duas-colunas > div > input{width:100%}

/* O título de um painel com uma ação à direita — «+ Novo evento» ao lado do
   «Todos os eventos», sem os empurrar um sobre o outro em ecrãs estreitos. */
.cabecalho-painel{display:flex;align-items:center;justify-content:space-between;
  gap:12px;flex-wrap:wrap;margin-bottom:4px}
.cabecalho-painel h2{margin:0}

/* Os cartões de tipo, na lista de eventos: mais pequenos que os KPI porque
   são um filtro secundário, não o resumo do ecrã. */
.cartao-filtro{background:var(--papel);border:1px solid var(--linha);border-radius:var(--raio);
  padding:8px 14px;font:inherit;font-size:13px;cursor:pointer;display:flex;
  align-items:center;gap:8px}
.cartao-filtro:hover{border-color:var(--marca)}
.cartao-filtro.escolhido{border-color:var(--marca);background:var(--marca-clara)}
.cartao-filtro .sub{font-weight:600;color:var(--tinta-suave)}

/* Uma caixa de confirmação com o seu rótulo ao lado, dentro de uma célula de
   tabela — presença e declaração marcam-se assim, sem abrir um dialog para
   uma alteração de um bit. */
.marca-linha{display:flex;align-items:center;gap:6px;font-size:12px;
  color:var(--tinta-suave);cursor:pointer;font-weight:400}
.kpi .rotulo{font-size:12px;color:var(--marca);text-transform:uppercase;letter-spacing:.04em;
  font-weight:600;display:flex;align-items:center;gap:6px}
.kpi .icone{font-size:14px;line-height:1;opacity:.85}
.kpi .valor{font-size:28px;font-weight:650;letter-spacing:-.02em;margin:6px 0 0;color:var(--tinta)}
/* Uma explicação de KPI não é uma caixa de alerta .nota. */
.kpi .nota{font-size:12.5px;color:var(--tinta-suave);margin-top:6px;
  border:0;background:transparent;padding:0;border-radius:0}
.painel{background:var(--papel);border:1px solid var(--linha);border-radius:11px;padding:16px;margin-top:14px;box-shadow:none}
/* As nove colunas das leads deslocam-se dentro do painel, em qualquer largura. */
#leads-tabela{margin-top:12px;max-width:100%;overflow-x:auto}
#leads-tabela table{min-width:1050px}
#leads-tabela td:nth-child(2){overflow-wrap:anywhere;max-width:240px}
.dialogo-automacao-marketing{width:min(760px,calc(100vw - 32px));max-height:90vh;overflow:auto}
.dialogo-automacao-marketing fieldset{margin:14px 0;padding:14px;border:1px solid var(--linha,#dbe4ec);border-radius:8px}
.dialogo-automacao-marketing legend{font-weight:700;padding:0 6px}
.dialogo-automacao-marketing .lista-escolhas{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px;margin-top:7px}
.dialogo-automacao-marketing .lista-escolhas label{display:flex;gap:8px;align-items:center;margin:0}
#automacoes-marketing table{margin-top:14px}
.lead-estado-filtro{font:inherit;background:transparent;border:1px solid transparent;
  border-radius:8px;padding:6px;cursor:pointer;text-align:left}
.lead-estado-filtro:hover,.lead-estado-filtro[aria-pressed="true"]{border-color:var(--marca);background:var(--marca-clara)}
.lead-estado-filtro:focus-visible,#leads-tabela:focus-visible{outline:2px solid var(--marca);outline-offset:2px}
.painel[role=alert]{border-color:#efb9b5;border-left:4px solid var(--mau);
  background:linear-gradient(90deg,var(--mau-claro),var(--papel) 48%)}
.painel[role=alert] h2{color:var(--mau)}
.painel[role=alert] > :last-child{margin-bottom:0}

/* Notas dos testes: separado da avaliação por sessão e sempre revisto antes
   de entrar na classificação. */
.notas-testes{padding:18px}
.notas-testes-cabecalho{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.notas-testes-cabecalho h2{margin:0 0 4px;font-size:19px;color:var(--tinta)}
.notas-testes-cabecalho p{margin:0}
.notas-testes-cabecalho>div:last-child{text-align:right;flex:none}
.notas-testes-ultima{margin-top:6px}
.notas-testes-filtros{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.notas-testes-tabela thead{background:#eef3f8;border-bottom:2px solid #89c2eb}
.notas-testes-tabela th{font-size:11px;letter-spacing:.045em;text-transform:uppercase;color:#0f4c81}
.notas-testes-tabela td{padding-top:14px;padding-bottom:14px}
.notas-testes .primario{background:#0d2742;color:#fff;border:1px solid #0d2742}
.notas-testes .primario:hover{background:#183f61;border-color:#183f61}
.notas-teste-estado{display:inline-flex;border:1px solid;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700;white-space:nowrap}
.notas-teste-estado.completo{color:#1d6f45;background:#e7f6ee;border-color:#bfe3cf}
.notas-teste-estado.falta{color:#a04b11;background:#fff6ee;border-color:#f3d3b4}
.notas-teste-estado.neutro{color:#3b4b5c;background:#eef3f8;border-color:#d3dee9}
.notas-testes-dialogo{width:min(680px,calc(100vw - 32px));max-width:680px}
.notas-testes-dialogo table{margin-top:14px}
.notas-testes-dialogo .nota{width:72px;text-align:center}
@media(max-width:700px){
  .notas-testes-cabecalho{display:block}.notas-testes-cabecalho>div:last-child{text-align:left;margin-top:12px}
}
.painel details{margin-top:12px;border-top:1px solid var(--linha);padding-top:10px}
.painel details summary{display:inline-block;color:var(--marca);cursor:pointer;
  min-height:32px;padding:5px 0;font-weight:600}
.painel details[open] summary{margin-bottom:6px}
.painel details .sub{overflow-wrap:anywhere}
details.painel.explicacao.validacao{border-color:#efd7ad;background:#fffaf0;box-shadow:none}
details.painel.explicacao.validacao summary{display:flex!important;align-items:center;gap:8px;flex-wrap:wrap}
details.painel.explicacao.validacao summary h2{margin:0;color:#7d3c04}
.codigo-validacao{color:var(--tinta-suave);font-size:11px}
.nota-moodle{display:flex;align-items:flex-start;gap:10px;margin:12px 0 16px;padding:11px 13px;
  border-left:3px solid var(--destaque);border-radius:0 9px 9px 0;background:var(--destaque-claro);color:var(--tinta-suave)}
.passo-diagnostico > h2{display:flex;align-items:center;gap:9px}.passo-diagnostico > h2 span{display:grid;place-items:center;
  width:26px;height:26px;border-radius:50%;background:var(--marca);color:#fff;font-size:13px}
.pricing-custos :is(th,td):nth-child(2),.pricing-custos :is(th,td):nth-child(3),
.pricing-custos :is(th,td):nth-child(4),.pricing-custos :is(th,td):nth-child(5){display:none}
.pricing-custos th:last-child::after{content:"Valor";font-size:11px}.pricing-custos th:last-child{font-size:0}

/* Pendentes de validação: o resumo cabe num cartão curto; o trabalho e o
   histórico só ocupam espaço quando alguém decide abri-los. */
.lista-pendentes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(380px,100%),1fr));
  align-items:start;gap:14px;margin-top:18px}
.pendente-card{margin-top:0;padding:16px 18px;overflow:visible}
.pendente-card.pendente-bloqueante{border-left:4px solid var(--destaque)}
.pendente-faixa{display:flex;align-items:center;justify-content:space-between;gap:10px}
.pendente-etiquetas{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.pendente-card > button.pendente-abrir{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 16px;
  align-items:center;width:100%;min-height:44px;margin:8px 0 6px;padding:3px 0;
  border:0;background:transparent;color:var(--tinta);text-align:left;cursor:pointer;font:inherit}
.pendente-card > button.pendente-abrir:hover{background:transparent;color:var(--marca)}
.pendente-abrir:hover .pendente-titulo{color:var(--marca)}
.pendente-abrir:focus-visible{outline:3px solid var(--acento);outline-offset:4px;border-radius:4px}
.pendente-titulo{font-size:17px;font-weight:700;line-height:1.3;letter-spacing:-.01em}
.pendente-origem{grid-column:1;color:var(--tinta-suave);font-size:12.5px;line-height:1.35}
.pendente-indicacao{grid-column:2;grid-row:1/3;color:var(--marca);font-size:12px;font-weight:700;
  white-space:nowrap}
.pendente-indicacao span{display:inline-block;font-size:16px;transition:transform .18s ease}
.pendente-abrir[aria-expanded=true] .pendente-indicacao span{transform:rotate(180deg)}
.pendente-resumo{display:flex;flex-wrap:wrap;gap:7px 18px;margin:10px 0 0;padding-top:10px;
  border-top:1px solid var(--linha)}
.pendente-resumo div{min-width:0;flex:1 1 120px}
.pendente-resumo dt{font-size:10.5px;text-transform:uppercase;letter-spacing:.045em;
  font-weight:700;color:var(--marca)}
.pendente-resumo dd{margin:2px 0 0;font-size:13px;line-height:1.35;overflow-wrap:anywhere}
.pendente-resumo .pendente-contagem{flex-basis:100%}
.pendente-corpo{margin-top:14px;padding-top:14px;border-top:1px solid var(--linha)}
.pendente-corpo[hidden]{display:none}
.pendente-criterio{display:grid;gap:3px;margin:0 0 14px;padding:10px 12px;
  border-left:3px solid var(--acento);background:var(--marca-clara);line-height:1.45}
.pendente-criterio strong{font-size:11px;text-transform:uppercase;letter-spacing:.045em;color:var(--marca)}
.pendente-texto{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,2fr) minmax(90px,1fr);
  align-items:start;gap:10px 20px}
.pendente-texto h3{margin:0 0 3px;font-size:11px;text-transform:uppercase;
  letter-spacing:.045em;color:var(--marca)}
.pendente-texto p{margin:0;line-height:1.5;overflow-wrap:anywhere}
.pendente-ligacao{margin:12px 0 0}
.pendente-ligacao a{color:var(--marca);font-weight:650}
.pendente-acoes{display:flex;align-items:end;flex-wrap:wrap;gap:8px;margin-top:14px}
.pendente-acoes label{display:grid;gap:4px;font-size:11px;font-weight:650;color:var(--tinta-suave)}
.pendente-acoes select,.pendente-acoes input{min-height:36px;max-width:190px;padding:6px 8px;
  border:1px solid var(--linha);border-radius:var(--raio);font:inherit;background:var(--papel)}
.pendente-acoes button{min-height:36px}
.pendente-card .aviso:empty{display:none}
/* Um cartão por inscrição, dentro do painel «Por validar» — a lista de
   condições de cada uma é uma tabela própria, e sem esta borda ficavam todas
   coladas, como se fossem uma tabela só. */
.cartao-condicoes{border:1px solid var(--linha);border-radius:10px;padding:12px 14px;margin-bottom:12px}
.cartao-condicoes:last-child{margin-bottom:0}
.cartao-condicoes > p{margin:0 0 8px;font-size:14px}
.cartao-condicoes table{margin-top:0}
table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.055em;white-space:nowrap;
  color:var(--marca);font-weight:750;padding:10px;border-bottom:2px solid var(--acento);background:#f8fafc}
.tabela-longa thead th{position:sticky;top:82px;z-index:2;box-shadow:0 1px 0 var(--linha)}
.cabecalho-acoes{width:1%}
.avisos-equipa{position:relative}.avisos-equipa-botao{position:relative;display:grid;place-items:center;width:40px;height:40px;padding:0;
  border:2px solid #89c2eb;border-radius:50%;background:#fff;color:#0d2742;font:800 20px/1 Nunito,Arial,sans-serif;cursor:pointer}
.avisos-equipa-botao:hover,.avisos-equipa-botao[aria-expanded=true]{background:#eaf4fb}.avisos-equipa-botao:focus-visible{outline:3px solid #89c2eb;outline-offset:2px}
.avisos-equipa-botao b{position:absolute;right:-7px;top:-7px;display:grid;place-items:center;min-width:22px;height:22px;padding:0 5px;
  box-sizing:border-box;border:2px solid #0d2742;border-radius:999px;background:#e8833a;color:#fff;font-size:12px;line-height:1}
.avisos-equipa-lista{position:absolute;z-index:1100;right:0;top:48px;width:min(420px,calc(100vw - 32px));max-height:min(560px,calc(100vh - 100px));
  overflow:auto;padding:0;border:1px solid #bfd1e2;border-radius:12px;background:#fff;box-shadow:0 18px 48px rgba(13,39,66,.22)}
.avisos-equipa-lista>header{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;padding:14px 16px;
  border-bottom:1px solid #dbe7f3;background:#fff}.avisos-equipa-lista h2{margin:0;font-size:17px}.avisos-equipa-lista header button{border:0;background:transparent;
  color:#0f4c81;font:700 13px Nunito,Arial,sans-serif;cursor:pointer}.aviso-equipa-item{padding:13px 16px;border-bottom:1px solid #edf1f5;background:#fff}
.aviso-equipa-item.nao-lido{border-left:5px solid #e8833a}.aviso-equipa-item.urgente{background:#fff6ee}.aviso-equipa-item h3{margin:0 0 5px;font-size:14px;color:#0d2742}
.aviso-equipa-item p{margin:0 0 9px;color:#3b4b5c;font-size:13px}.aviso-equipa-item-acoes{display:flex;gap:8px;flex-wrap:wrap}.aviso-equipa-item button{min-height:34px;
  padding:6px 10px;border:1px solid #0d2742;border-radius:7px;background:#fff;color:#0d2742;font:700 13px Nunito,Arial,sans-serif;cursor:pointer}
.aviso-equipa-item button:first-child{background:#0f4c81;color:#fff;border-color:#0f4c81}.avisos-equipa-vazio{padding:28px 18px;color:#5b6b7c;text-align:center}
td{padding:10px;border-bottom:1px solid #edf1f5;vertical-align:top}
/* Linhas alternadas: numa tabela de cem sessões, o olho perde-se sem elas. */
tbody tr:nth-child(even){background:#fafcfe}
tbody tr:last-child td{border-bottom:0}
tbody tr:focus-within{background:var(--marca-clara);box-shadow:inset 3px 0 0 var(--acento)}
.clicavel:focus-visible{outline:2px solid var(--marca);outline-offset:-2px;
  background:var(--marca-clara);box-shadow:inset 3px 0 0 var(--marca)}
.num{text-align:right;font-variant-numeric:tabular-nums}
th.num{text-align:right}
.etiqueta{display:inline-block;max-width:100%;padding:2px 8px;border:1px solid transparent;border-radius:20px;
  font-size:11.5px;font-weight:600;line-height:1.4;white-space:normal;overflow-wrap:break-word;
  vertical-align:middle}
.et-bom{background:var(--bom-claro);color:var(--bom);border-color:#b9dec8}
.et-info{background:var(--marca-clara);color:var(--marca);border-color:#bcd9ed}
.et-alerta{background:var(--destaque-claro);color:#9c4a06;border-color:#efcfaa}
.tarefa-destino-validacao{outline:3px solid var(--destaque);outline-offset:-3px;background:#fff8e8}
.et-mau{background:var(--mau-claro);color:var(--mau);border-color:#efc7c7}
.et-neutro{background:var(--fundo);color:var(--tinta-suave);border-color:var(--linha)}
.et-administrador{background:#e9e3fa;color:#5a3f91;border-color:#c9bce9}
.barra{height:8px;border:1px solid #e0e8f0;border-radius:5px;background:var(--fundo);overflow:hidden;min-width:80px}
.barra i{display:block;height:100%;background:var(--acento)}
.barra i.cheia{background:var(--marca)}
.pesquisa-topo{display:flex;flex-direction:column;gap:4px;font-size:12px;
  color:var(--tinta-suave);max-width:100%;margin:0}
.pesquisa-topo .procura{min-height:44px;max-width:100%;box-sizing:border-box}
.procura{padding:8px 12px;border:1px solid var(--linha);border-radius:var(--raio);
  font:inherit;width:280px;background:var(--papel)}
.vazio{color:var(--tinta-suave);padding:28px 0;text-align:center}
p.vazio{margin:12px 0;padding:24px 18px;border:1px dashed #bfd1e2;border-radius:var(--raio);
  background:#fbfdff;line-height:1.55}
td.vazio{padding:28px 12px;background:#fbfdff}
.vazio[role=alert]{color:var(--mau);background:var(--mau-claro);
  border-left:3px solid var(--mau);border-radius:var(--raio);padding:14px 16px;text-align:left}
.aviso-limite{margin:12px 0 0;padding:9px 11px;border-left:3px solid var(--acento);
  background:var(--marca-clara);color:var(--tinta-suave)}
#menu button[data-novas]::after{content:attr(data-novas);display:inline-block;margin-left:6px;
  padding:1px 7px;border-radius:20px;background:var(--destaque);color:#fff;font-size:11px;
  font-weight:700;line-height:1.5;vertical-align:middle}
.lista-novidades{display:flex;flex-direction:column;margin:0 0 18px}
.evento-novidade{display:flex;align-items:flex-start;gap:12px;padding:10px 4px;
  border-bottom:1px solid var(--linha)}
.evento-novidade:last-child{border-bottom:0}
.evento-corpo{flex:1;min-width:0}
.evento-titulo{margin:0;font-weight:600;font-size:13.5px}
.evento-valor{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.evento-hora{color:var(--tinta-suave);font-size:12px;white-space:nowrap;min-width:60px;text-align:right}
.novidades-painel{display:flex;flex-direction:column;gap:20px}
.novidades-kpis .grelha{grid-template-columns:repeat(4,minmax(0,1fr));margin:0}
.novidades-precisa{border:1px solid #f0c58b;background:#fff9ef;border-radius:var(--raio);padding:16px}
.novidades-seccao-titulo,.novidades-feed-cabecalho{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.novidades-seccao-titulo h2,.novidades-feed-cabecalho h2,.novidades-proximas h2{margin:0;font-size:17px}
.novidades-seccao-titulo>span{font-size:12px;color:#8a4e0d;font-weight:700}
.novidades-prioridades{display:flex;flex-direction:column;margin-top:10px}
.novidade-prioridade{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:10px 0;border-top:1px solid #efdcbf}
.novidade-prioridade:first-child{border-top:0}.novidade-prioridade strong{font-size:13.5px}.novidade-prioridade p{margin:2px 0 0}
.novidades-conteudo{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(250px,.65fr);gap:22px;align-items:start}
.novidades-feed{min-width:0}.novidades-feed-cabecalho{margin-bottom:10px}.novidades-comandos{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.novidades-filtros{margin-bottom:12px}.novidades-filtros .chip[aria-pressed="true"]{background:var(--marca);color:#fff;border-color:var(--marca)}
.novidades-proximas{position:sticky;top:18px}.novidades-proximas-lista{display:flex;flex-direction:column;gap:9px;margin-top:10px}
.novidade-proxima{border:1px solid var(--linha);border-left:4px solid #d783c7;border-radius:var(--raio);padding:12px;background:var(--papel)}
.novidade-proxima-data{margin:0 0 8px;text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:750;color:var(--marca)}
.novidade-proxima h3{margin:7px 0 4px;font-size:14px;line-height:1.35}.novidade-proxima .sub{margin:0}
.site-hoje-recolhido{border-top:1px solid var(--linha);padding-top:14px}.site-hoje-recolhido>summary{cursor:pointer;list-style:none;font-weight:750;color:var(--marca)}
.site-hoje-recolhido>summary::-webkit-details-marker{display:none}.site-hoje-recolhido>summary::after{content:"mostrar";float:right;font-size:12px;font-weight:600}
.site-hoje-recolhido[open]>summary::after{content:"recolher"}.site-hoje-recolhido>summary small{display:block;color:var(--tinta-suave);font-weight:400;margin-top:2px}
.site-hoje-recolhido .grelha{grid-template-columns:repeat(2,minmax(0,1fr));margin:12px 0 0}
@media (max-width:860px){
  #app{grid-template-columns:1fr}
  .lateral{position:static;height:auto;gap:12px}
  #alternar-menu{display:block}
  .lateral.menu-recolhido #menu,.lateral.menu-recolhido .rodape-lateral{display:none}
  #menu .grupo{position:static}
  .topo{padding:18px 20px}
  .vista{padding:18px 20px}
  .painel{overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;
    scrollbar-color:#b9cde0 transparent;-webkit-overflow-scrolling:touch}
  .painel table:has(th:nth-child(4)){min-width:640px}
  .painel table:has(th:nth-child(7)){min-width:880px}
  .painel:has(table th:nth-child(4))::after{content:"Deslize horizontalmente para ver mais →";
    position:sticky;left:0;display:block;width:max-content;margin:10px 0 0;padding:4px 8px;
    border-radius:6px;background:var(--marca-clara);color:var(--marca);font-size:11.5px;font-weight:600}
  .painel::-webkit-scrollbar{height:8px}
  .painel::-webkit-scrollbar-thumb{background:#b9cde0;border-radius:8px}
  .novidades-kpis .grelha{grid-template-columns:repeat(2,minmax(0,1fr))}
  .novidades-conteudo{grid-template-columns:1fr}.novidades-proximas{position:static}
  .novidade-prioridade{grid-template-columns:auto minmax(0,1fr) auto}.novidade-prioridade>b{grid-column:2}.novidade-prioridade>button{grid-column:3;grid-row:1/3}
}
@media (max-width:560px){.novidades-kpis .grelha,.site-hoje-recolhido .grelha{grid-template-columns:1fr}.evento-novidade{flex-wrap:wrap}.evento-corpo{flex-basis:calc(100% - 90px)}.evento-hora{margin-left:auto}}

/* laranja da marca para o que exige atenção */
.cartao.atencao{border-color:var(--destaque);box-shadow:inset 3px 0 0 var(--destaque)}
.lateral .marca b{color:var(--marca)}

/* definir palavra-passe */
dialog{--dialog-padding:26px;border:1px solid var(--linha);border-radius:14px;padding:var(--dialog-padding);max-width:380px;width:92%;
  max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain;
  background:var(--papel);color:var(--tinta);box-shadow:0 24px 70px rgba(11,26,46,.24)}
dialog::backdrop{background:rgba(11,26,46,.48);backdrop-filter:blur(3px)}
/* Só a consulta de inscritos: cabeçalho e fecho fora da zona de deslocação. */
dialog.inscritos-webinar{width:calc(100% - 32px);max-width:960px;max-height:calc(100dvh - 32px);padding:0;overflow:hidden}
dialog.inscritos-webinar[open]{display:flex;flex-direction:column}
.inscritos-webinar .inscritos-cabecalho{flex:none;padding:24px 26px 14px;border-bottom:1px solid var(--linha)}
.inscritos-webinar .inscritos-cabecalho h2{font-size:21px;overflow-wrap:anywhere}
.inscritos-webinar .inscritos-cabecalho .sub{margin:8px 0 0}
.inscritos-webinar .inscritos-lista{min-height:0;overflow:auto;overscroll-behavior:contain;padding:0 26px}
.inscritos-webinar table{width:100%;min-width:0;table-layout:fixed}
.inscritos-webinar th:nth-child(1){width:32%}.inscritos-webinar th:nth-child(2){width:20%}.inscritos-webinar th:nth-child(3){width:48%}
.inscritos-compras{list-style:none;margin:0;padding:0}.inscritos-compras li+li{margin-top:12px;padding-top:10px;border-top:1px solid var(--linha)}
.inscritos-webinar td{white-space:normal;overflow-wrap:anywhere;word-break:normal;line-height:1.5}
.inscritos-webinar .botoes{flex:none;position:static;margin:0;padding:14px 26px;background:var(--papel);border-top:1px solid var(--linha);justify-content:flex-end}
@media(max-width:600px){
 dialog.inscritos-webinar{width:calc(100% - 24px);max-height:calc(100dvh - 24px)}
 .inscritos-webinar .inscritos-cabecalho{padding:18px 18px 12px}
 .inscritos-webinar .inscritos-cabecalho h2{font-size:18px}
 .inscritos-webinar .inscritos-lista{padding:0 18px}
 .inscritos-webinar thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .inscritos-webinar table,.inscritos-webinar tbody,.inscritos-webinar tr,.inscritos-webinar td{display:block;width:100%;box-sizing:border-box}
 .inscritos-webinar tr{padding:12px 0;border-bottom:1px solid var(--linha)}
 .inscritos-webinar td{padding:4px 0;border:0}
 .inscritos-webinar td::before{content:attr(data-label);display:block;font-size:11px;font-weight:600;color:var(--tinta-suave)}
 .inscritos-webinar .botoes{padding:12px 18px}
}
dialog h2{margin:0 0 5px;font-size:18px;line-height:1.3;letter-spacing:-.01em}
dialog h2 + .sub{line-height:1.55;margin-top:0}
dialog label{display:block;font-size:12px;font-weight:600;margin:16px 0 6px;color:var(--tinta-suave)}
dialog input{width:100%;padding:10px 12px;border:1px solid var(--linha);border-radius:var(--raio);
  font:inherit;background:#fcfdff}
dialog input:focus,dialog select:focus,dialog textarea:focus{outline:2px solid var(--marca);
  outline-offset:1px;border-color:var(--marca);box-shadow:0 0 0 3px rgba(23,111,167,.1)}
/* As escolhas não são caixas de texto de largura total. */
dialog input[type=checkbox],dialog input[type=radio]{width:18px;height:18px;
  min-width:18px;padding:0;margin:0 6px 0 0;vertical-align:middle;accent-color:var(--marca)}
dialog .botoes{display:flex;justify-content:space-between;align-items:center;
  gap:12px;flex-wrap:wrap;margin:20px 0 calc(-1 * var(--dialog-padding));
  padding:14px 0 var(--dialog-padding);position:sticky;bottom:calc(-1 * var(--dialog-padding));z-index:2;
  border-top:1px solid var(--linha);background:var(--papel);box-shadow:0 -8px 14px rgba(11,26,46,.04)}
dialog .botoes button{min-height:44px;max-width:100%;white-space:normal;padding:10px 14px}
dialog .botoes button:where(:not(.ligacao):not(.secundario):not(.botao-perigo)){
  border:1px solid var(--marca);border-radius:var(--raio);background:var(--marca);
  color:var(--papel);font-weight:600}
dialog .botoes button:disabled{opacity:.55;cursor:default}
.dialogo-decisao{max-width:520px;max-height:calc(100dvh - 32px);overflow-y:auto}
.dialogo-decisao .sub{white-space:pre-line;line-height:1.55;margin-top:8px}
.dialogo-decisao .botoes{gap:12px;flex-wrap:wrap}
.dialogo-decisao .botoes button{min-height:44px;white-space:normal;padding:10px 16px;
  border:1px solid var(--linha);border-radius:var(--raio);font:inherit;font-weight:600;cursor:pointer}
.dialogo-decisao .botoes .secundario{background:var(--papel);color:var(--tinta)}
.dialogo-decisao textarea{min-height:150px}
@media(max-width:480px){
  .dialogo-decisao{width:calc(100% - 24px);padding:20px}
  .dialogo-decisao input,.dialogo-decisao select,.dialogo-decisao textarea{font-size:16px}
  .dialogo-decisao .botoes{flex-direction:column-reverse;align-items:stretch}
  .dialogo-decisao .botoes button{width:100%}
}
.dialogo-decisao .botao-perigo{background:#a12828;color:#fff;border-color:#a12828}
.dialogo-decisao .botao-perigo:hover{background:#811f1f;border-color:#811f1f}
.botoes-rapidos{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.botoes-rapidos .whatsapp{border-color:#15803d;color:#166534;background:#f0fdf4}
.botoes-rapidos .whatsapp:hover:not(:disabled){background:#dcfce7}
#guardar-pass{background:var(--marca);color:#fff;border:0;border-radius:var(--raio);
  padding:10px 20px;font-weight:600}
#guardar-pass:disabled{opacity:.6;cursor:progress}

/* chamada de atenção no topo do resumo */
.chamada{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;
  background:var(--destaque-claro);border:1px solid var(--destaque);
  border-radius:12px;padding:14px 18px;margin-bottom:18px}
.chamada b{display:block;color:#7d3c04}
.chamada span{color:#9c4a06;font-size:13px}
.chamada > div{flex:1 1 260px;min-width:0;overflow-wrap:anywhere}
.chamada button{background:var(--destaque);color:var(--tinta);border:0;border-radius:var(--raio);
  padding:10px 18px;font-weight:600;white-space:normal;max-width:100%;min-height:44px}

/* linhas que abrem ficha */
tr.clicavel{cursor:pointer}
tr.clicavel:hover{background:var(--marca-clara);box-shadow:inset 3px 0 0 var(--acento)}
tr.clicavel td:first-child{font-weight:500}
.painel table a{color:var(--marca);text-decoration:underline;text-decoration-thickness:1px;
  text-underline-offset:2px}
.painel table a:hover{text-decoration-thickness:2px}

/* ações dentro de uma linha de tabela */
.acoes-linha{white-space:nowrap;display:flex;gap:8px;align-items:center}
/* Uma célula flex cria caixas anónimas na tabela e desalinha as linhas. */
td.acoes-linha{display:table-cell;vertical-align:middle}
td.acoes-linha > :is(button,a,label){display:inline-block;margin:4px 8px 4px 0}
.acoes-linha > :is(button,a,label){max-width:100%;white-space:nowrap}
button.mini{background:var(--papel);border:1px solid var(--linha);border-radius:7px;
  padding:4px 10px;font-size:12px;color:var(--marca)}
button.discreto{background:var(--papel);border:1px solid var(--linha);border-radius:7px;
  padding:7px 11px;color:var(--marca);font:inherit;font-size:13px;font-weight:600}
button.discreto:hover{background:var(--marca-clara);border-color:var(--marca)}
button.discreto:disabled{opacity:.55;cursor:not-allowed}
.painel button.discreto{background:var(--papel);color:var(--marca);border:1px solid var(--linha);
  padding:7px 11px;margin:0;box-shadow:none}
.painel button.discreto:hover{background:var(--marca-clara);border-color:var(--marca)}
.painel button.discreto:disabled{background:var(--fundo);color:var(--tinta-suave)}
.painel[role=alert] button:not(.ligacao):not(.discreto){background:var(--marca);color:var(--papel);
  border:1px solid var(--marca);border-radius:var(--raio);padding:9px 14px;
  min-height:40px;font-weight:600}
/* O envio de um ficheiro pela área do formador. O `input` vai escondido e o
   `label` faz de botão: um seletor de ficheiros nativo não se deixa vestir. */
label.mini-envio{display:inline-block;cursor:pointer;background:var(--papel);
  border:1px solid var(--linha);border-radius:7px;padding:4px 10px;font-size:12px;
  color:var(--marca)}
label.mini-envio:hover{background:var(--marca-clara);border-color:var(--marca)}

button.mini:hover{background:var(--marca-clara);border-color:var(--marca);box-shadow:0 2px 7px rgba(23,111,167,.1)}
button.mini:disabled{opacity:.5;cursor:progress}
.pendencias-formando{min-width:260px;max-width:430px}
.pendencias-formando > div:not(.acoes-linha){margin:0 0 6px}
.pendencias-formando .etiqueta{margin:0 5px 3px 0}
.pendencias-formando .acoes-linha{white-space:normal;flex-wrap:wrap;gap:4px;margin-top:7px}
.pendencias-formando .acoes-linha .mini{margin:0 4px 4px 0;white-space:normal}

/* A lista de formandos de uma edição é uma mesa de triagem. A linha mostra só
   o necessário para encontrar quem precisa de atenção; a explicação e as
   decisões ficam no painel lateral. */
.formandos-edicao{padding:18px}
.formandos-edicao-cabeca{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}
.formandos-edicao-cabeca h2{margin:0}
.formandos-edicao-resumo{margin:5px 0 0;color:#3b4b5c;font-size:13px}
.formandos-edicao-cabeca #exportar-formandos-excel{flex:0 0 auto;min-height:38px;margin:0;background:#fff;color:#0d2742;border:2px solid #89c2eb;border-radius:8px;padding:7px 14px;font-size:13px;font-weight:700}
.formandos-edicao-ferramentas{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}
.formandos-edicao-filtros{display:flex;flex-wrap:wrap;gap:7px}
.formandos-edicao-filtros button{min-height:34px;margin:0;padding:6px 11px;border:1px solid #b9c7d4;border-radius:999px;background:#fff;color:#3b4b5c;font:inherit;font-size:12.5px;box-shadow:none}
.formandos-edicao-filtros button[aria-pressed=true]{background:#0d2742;border-color:#0d2742;color:#fff}
.formandos-edicao-filtros b{font-variant-numeric:tabular-nums}
.formandos-edicao-pesquisa{flex:0 1 250px;margin:0}
.formandos-edicao-pesquisa input{width:100%;min-height:38px;border:1px solid #b9c7d4;border-radius:8px;padding:8px 11px;font:inherit}
.formandos-edicao-corpo{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:16px;align-items:start}
.formandos-edicao-corpo:has(.formando-painel[hidden]){grid-template-columns:minmax(0,1fr)}
.formandos-edicao-tabela{min-width:0;overflow-x:auto}
.formandos-edicao table{width:100%;border-collapse:collapse}
.formandos-edicao thead{background:#eef3f8}
.formandos-edicao thead th{border-bottom:2px solid #89c2eb;color:#0f4c81;font-size:11px;letter-spacing:.05em;text-transform:uppercase}
.formandos-edicao th,.formandos-edicao td{padding:12px 14px;text-align:left;vertical-align:middle}
.formandos-edicao tbody tr{border-bottom:1px solid #e1e8ef}
.formandos-edicao tbody tr.clicavel:hover{background:#f7fbfe}
.formandos-edicao tbody tr.selecionada{background:#f4f1ea;box-shadow:inset 4px 0 #89c2eb}
.formandos-edicao tbody tr:focus-visible{outline:2px solid #89c2eb;outline-offset:-2px}
.pendencias-etiquetas{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:220px}
.pendencia-etiqueta{display:inline-flex;align-items:center;border:1px solid;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700;line-height:1.35}
.pendencia-vermelha{background:#fde8e8;color:#b42318;border-color:#f1a9a9}
.pendencia-laranja{background:#fff6ee;color:#b45f1c;border-color:#f3d3b4}
.pendencia-cinzenta,.pendencia-mais{background:#eef3f8;color:#3b4b5c;border-color:#d3dde9}
.pendencia-verde{background:#e7f6ee;color:#1d6f45;border-color:#bfe3cf}
.formando-acoes{position:relative}
.formando-acoes summary{list-style:none;cursor:pointer;border:1px solid #b9c7d4;border-radius:8px;padding:7px 11px;color:#0d2742;font-size:13px;font-weight:700;white-space:nowrap}
.formando-acoes summary::-webkit-details-marker{display:none}
.formando-acoes summary::after{content:" ▾"}
.formando-acoes-menu{position:absolute;right:0;z-index:8;display:grid;min-width:210px;margin-top:5px;padding:6px;background:#fff;border:1px solid #dbe4ec;border-radius:9px;box-shadow:0 12px 30px rgba(13,39,66,.17)}
.formando-acoes-menu button{margin:0;padding:9px 10px;border:0;border-bottom:1px solid #e1e8ef;border-radius:0;background:#fff;color:#0d2742;text-align:left;font:inherit;font-size:13px;box-shadow:none}
.formando-acoes-menu button:last-child{border-bottom:0;border-top:2px solid #e1e8ef}
.formando-acoes-menu button:hover{background:#f4f8fb}
.formando-acoes-menu button.perigo{color:#b42318;font-weight:700}
.formando-painel{position:relative;border:1px solid #c3d0dc;border-radius:12px;padding:22px;background:#fff;max-height:min(760px,calc(100vh - 160px));overflow:auto}
.formando-painel-fechar{position:absolute;right:14px;top:12px;margin:0;border:0;background:transparent;color:#3b4b5c;font-size:24px;line-height:1;box-shadow:none}
.formando-painel-identidade{padding-right:32px;margin-bottom:18px}
.formando-painel-identidade h3{margin:0;font-size:22px}
.formando-painel-identidade p{margin:5px 0 0;color:#3b4b5c;font-size:13px}
.formando-pendencia-caixa{margin-bottom:10px;padding:14px 15px;border-radius:0 8px 8px 0;border-left:5px solid;background:#f2f6fa}
.formando-pendencia-vermelha{border-color:#b42318}
.formando-pendencia-laranja{border-color:#e8833a}
.formando-pendencia-cinzenta{border-color:#89c2eb}
.formando-pendencia-caixa h4{margin:0 0 5px;font-size:14px}
.formando-pendencia-caixa p{margin:0 0 11px;color:#3b4b5c;font-size:13px;line-height:1.45}
.formando-pendencia-caixa .formando-pendencia-codigo{margin-top:-5px;color:#6b7885;font-size:11px}
.formando-pendencia-acoes{display:flex;flex-wrap:wrap;gap:8px}
.formando-documento-acoes{display:flex;flex:1 1 100%;flex-wrap:wrap;gap:8px;padding-top:2px}
.formando-pendencia-acoes button{min-height:36px;margin:0;padding:7px 11px;border-radius:7px;font-size:12.5px;font-weight:700}
.formando-pendencia-acoes .primario{background:#0d2742;color:#fff;border:1px solid #0d2742}
.formando-pendencia-acoes .secundario{background:#fff;color:#0d2742;border:2px solid #89c2eb}
.formando-pendencia-acoes .secundario.perigo{color:#b42318;border-color:#f1a9a9}
.formando-pedido-enviado{margin:14px 0 0;color:#3b4b5c;font-size:12px}
.formando-sem-pendencias{padding:16px;border:1px solid #bfe3cf;border-radius:8px;background:#e7f6ee;color:#1d6f45}
.formando-sem-pendencias p{margin:4px 0 0}
.documentos-validacao-edicao{margin-top:22px;padding-top:18px;border-top:1px solid #dbe4ec}
.documentos-validacao-edicao h3{margin:0 0 4px;font-size:17px}
.documentos-validacao-edicao table{margin-top:12px}
@media(max-width:1050px){
  .formandos-edicao-corpo{grid-template-columns:1fr}
  .formando-painel{max-height:none}
}
@media(max-width:720px){
  .formandos-edicao{padding:14px}
  .formandos-edicao-cabeca,.formandos-edicao-ferramentas{align-items:stretch;flex-direction:column}
  .formandos-edicao-pesquisa{flex-basis:auto}
  .formandos-edicao-cabeca #exportar-formandos-excel{width:100%}
}

/* A criação de uma lead é a ação principal deste ecrã, não uma ação pequena
   de linha. Mantém-se no topo, mas com dimensão e contraste próprios. */
button.acao-principal{background:var(--marca);color:#fff;border:1px solid var(--marca);
  border-radius:var(--raio);padding:10px 18px;font-size:14px;font-weight:700;
  box-shadow:0 3px 10px rgba(23,111,167,.16)}
button.acao-principal:hover{filter:brightness(.92)}
button.acao-principal:focus-visible{outline:3px solid var(--marca);outline-offset:2px}
button.acao-principal:disabled{opacity:.55;cursor:progress}

/* secções por construir */
.porfazer{background:var(--papel);border:1px dashed var(--linha);border-radius:12px;
  padding:26px;max-width:680px}
.porfazer h2{margin-top:0}
.porfazer ul{margin:12px 0 0;padding-left:20px;color:var(--tinta-suave)}
.porfazer li{margin:6px 0}
.porfazer .falta{display:inline-block;margin-top:14px}

dialog select,dialog textarea{width:100%;padding:10px 12px;border:1px solid var(--linha);
  border-radius:var(--raio);font:inherit;background:#fcfdff}
dialog textarea{resize:vertical}
#oco-guardar{background:var(--marca);color:#fff;border:0;border-radius:var(--raio);
  padding:10px 20px;font-weight:600}
#oco-guardar:disabled{opacity:.6;cursor:progress}

/* agenda dos próximos dias */
.agenda .dia{display:flex;gap:16px;padding:10px 0;border-bottom:1px solid var(--fundo)}
.agenda .dia:last-child{border-bottom:0}
.agenda .quando{width:46px;flex:none;text-align:center;line-height:1.1;padding-top:2px}
.agenda .quando b{display:block;font-size:19px}
.agenda .quando span{font-size:11px;color:var(--tinta-suave);text-transform:uppercase}
.agenda .quando.hoje b{display:grid;place-items:center;width:32px;height:32px;margin:-5px auto 2px;
  border-radius:50%;background:var(--marca);color:#fff}
.agenda .quando.hoje span{color:var(--marca);font-weight:600}
.agenda .eventos{flex:1;min-width:0}
.agenda .evento{padding:5px 10px;border-left:3px solid var(--acento);background:var(--marca-clara);
  border-radius:0 6px 6px 0;margin-bottom:5px;cursor:pointer}
.agenda .evento:hover{background:#e2eefb}
.agenda button.evento{display:block;width:100%;text-align:left;font-family:inherit;
  font-weight:400;color:var(--tinta);border-width:0 0 0 3px;min-height:44px}
.agenda div.evento{cursor:default}
.agenda .horario{display:block;font-size:12px;color:var(--tinta);margin:3px 0}
.agenda .nome{display:block;font-size:13.5px}
.agenda .det{font-size:11.5px;color:var(--tinta-suave)}

/* calendário mensal */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.cal-vistas{display:inline-flex;gap:3px;padding:3px;border:1px solid var(--linha);border-radius:999px;background:var(--papel)}
.cal-vistas .ligacao{border-radius:999px;padding:7px 14px;min-height:34px}
.cal-vistas .ligacao.ativo{background:var(--marca);color:#fff;border-color:var(--marca)}
.cal-resumo{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px;padding:13px 17px;border:1px solid var(--linha);border-left:4px solid var(--marca);border-radius:10px;background:var(--marca-clara)}
.cal-resumo span{color:var(--tinta-suave);font-size:12px}
.cal-filtros{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;padding:14px 16px}
.cal-filtros label:not(.concordo){display:flex;flex-direction:column;gap:4px;color:var(--tinta-suave);font-size:11px;font-weight:600}
.cal-filtros select{min-width:190px;max-width:340px;padding:8px 10px;border:1px solid var(--linha);border-radius:8px;background:var(--papel);color:var(--tinta);font:inherit;font-size:13px}
.cal-filtros .concordo{margin:0 4px 5px 0;white-space:nowrap}
.cal-filtros .calendario-legenda{margin:0 0 0 auto}
.calendario-agenda{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(270px,.75fr);gap:14px;align-items:start}
.cal-lista{padding:0;overflow:hidden}
.cal-dia+ .cal-dia{border-top:1px solid var(--linha)}
.cal-dia>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;background:#f7fafc}
.cal-dia>header b{text-transform:capitalize}.cal-dia>header span{color:var(--marca);font-size:12px;font-weight:650}
.cal-dia>.vazio{margin:0;padding:22px 16px}
.cal-evento{display:grid;grid-template-columns:80px auto minmax(0,1fr) auto;align-items:start;gap:10px;width:100%;padding:13px 16px;text-align:left;border:0;border-left:4px solid #1A6FA8;border-top:1px solid #edf1f4;background:var(--papel);color:var(--tinta);font:inherit;cursor:pointer}
.cal-evento:hover{background:#f7fbfe}.cal-evento:focus-visible{outline:3px solid var(--marca);outline-offset:-3px}
.cal-evento.momento{border-left-color:#F47B20}.cal-evento.webinar{border-left-color:#E3B341}.cal-evento.inicio{border-left-color:#8B6BC7}
.cal-evento.duvida{border-left-style:dashed;background:#fffdf7}
.cal-hora{font-size:13px;font-weight:700;white-space:nowrap;padding-top:4px}
.cal-evento-corpo{display:flex;min-width:0;flex-direction:column;gap:5px;line-height:1.4}
.cal-evento-corpo b{font-size:14px;white-space:normal;overflow-wrap:anywhere}
.cal-evento-meta{font-size:11.5px;color:var(--tinta-suave)}
.cal-tipo{margin-top:1px}.cal-tipo.formacao{background:#e5f3fb;color:#145d8b}.cal-tipo.momento{background:#fff0e3;color:#9b4d0d}.cal-tipo.webinar{background:#fdf7e3;color:#6b4e05}.cal-tipo.inicio{background:#f1ebfb;color:#6746a0}
.cal-mapa{min-width:0}.cal-mapa.expandido{max-width:900px;margin:auto}
.cal-mapa-cabeca{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:14px}.cal-mapa-cabeca h2{text-transform:capitalize;margin:0}
.cal-mapa-semana,.cal-mapa-grelha{display:grid;grid-template-columns:repeat(7,minmax(28px,1fr));gap:5px}
.cal-mapa-semana{margin-bottom:5px;text-align:center;color:var(--tinta-suave);font-size:10px;font-weight:700;text-transform:uppercase}
.cal-mapa-dia{aspect-ratio:1;min-height:38px;display:grid;place-content:center;gap:1px;border:1px solid transparent;border-radius:8px;background:rgba(26,111,168,var(--intensidade));color:var(--tinta);font:inherit;font-size:11px;cursor:pointer}
.cal-mapa-dia b{font-size:12px}.cal-mapa-dia:hover{border-color:var(--marca)}.cal-mapa-dia.hoje{box-shadow:inset 0 0 0 2px var(--destaque)}.cal-mapa-dia.escolhido{border-color:var(--marca)}
.cal-mapa-vazio{aspect-ratio:1}
.legenda i.inicio{background:#8B6BC7}
.semana{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:6px}
.cabdia{font-size:11px;text-transform:uppercase;letter-spacing:.05em;
  color:var(--tinta-suave);font-weight:600;text-align:center;padding:4px 0}
.mes{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.cel{min-height:92px;border:1px solid var(--linha);border-radius:8px;padding:6px;background:var(--papel)}
.cel.vazia{border:0;background:none}
.cel.hoje{border-color:var(--marca);box-shadow:inset 0 0 0 1px var(--marca)}
.cel .num{font-size:12px;color:var(--tinta-suave);margin-bottom:4px}
.cel.hoje .num{display:grid;place-items:center;width:26px;height:26px;margin:-2px 0 4px;
  border-radius:50%;background:var(--marca);color:#fff;font-weight:700}
.marca{font-size:11px;line-height:1.25;padding:3px 5px;border-radius:4px;margin-bottom:3px;
  background:var(--marca-clara);color:var(--tinta);cursor:pointer;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.marca.sessao{background:var(--destaque-claro);color:#7d3c04}
.marca:hover{filter:brightness(.96);box-shadow:0 2px 7px rgba(15,35,55,.12)}
.mais{font-size:11px;color:var(--tinta-suave);padding-left:5px}
.mes button.marca{display:block;width:100%;text-align:left;font-family:inherit;
  font-weight:400;border-width:0 0 0 3px;
  min-height:32px;white-space:normal}
.mes button.marca:focus-visible,.eventos-extra summary:focus-visible{
  outline:2px solid var(--marca);outline-offset:2px}
.eventos-extra summary{cursor:pointer;font-size:11px;color:var(--tinta-suave);
  padding:8px 5px;min-height:32px}
@media (max-width:760px){.cel{min-height:64px}.marca{font-size:10px}}
@media (max-width:860px){
  .calendario-agenda{grid-template-columns:1fr}.cal-filtros .calendario-legenda{margin-left:0;width:100%}
}
@media (max-width:600px){
  .cal-vistas{width:100%}.cal-vistas .ligacao{flex:1}.cal-resumo{align-items:flex-start;flex-direction:column}
  .cal-filtros label:not(.concordo),.cal-filtros select{width:100%;max-width:none}
  .cal-evento{grid-template-columns:68px minmax(0,1fr);gap:7px 9px}.cal-evento .cal-tipo{grid-column:2}.cal-evento-corpo{grid-column:2}.cal-evento>.conf{grid-column:2}
}

/* espécies de evento, cores pedidas pela Catarina */
.evento.formacao{border-left-color:#1A6FA8;background:var(--marca-clara)}
.evento.momento{border-left-color:#F47B20;background:var(--destaque-claro)}
.evento.webinar{border-left-color:#E3B341;background:#fdf7e3}
.evento .sigla{color:var(--marca);font-weight:700;font-size:12px}
.conf{font-weight:600}
.conf.sim{color:var(--bom)} .conf.meio{color:var(--alerta)} .conf.nao{color:var(--mau)}
.marca.formacao{background:var(--marca-clara);border-left:3px solid #1A6FA8}
.marca.momento{background:var(--destaque-claro);border-left:3px solid #F47B20;color:#7d3c04}
.marca.webinar{background:#fdf7e3;border-left:3px solid #E3B341;color:#6b4e05}
.marca.duvida{border-style:dashed}
.marca b{color:inherit;font-weight:700}
.marca .quem{display:block;font-size:10px;opacity:.75;overflow:hidden;text-overflow:ellipsis}
.marca .hora{font-size:10px;font-weight:400;opacity:.7}
.marca{white-space:normal}
.legenda{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px;font-size:12px;color:var(--tinta-suave)}
.legenda span{display:inline-flex;align-items:center;min-height:30px;padding:5px 9px;
  border:1px solid var(--linha);border-radius:20px;background:#fbfdff}
.legenda i.p{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.legenda i.formacao{background:#1A6FA8} .legenda i.momento{background:#F47B20}
.legenda i.webinar{background:#E3B341}
.legenda i.duvida{background:transparent;border:1px dashed var(--tinta-suave)}

#pl-guardar{background:var(--marca);color:#fff;border:0;border-radius:var(--raio);
  padding:10px 20px;font-weight:600}
#pl-guardar:disabled{opacity:.6;cursor:progress}
dialog input[type=number]{width:100%;padding:10px 12px;border:1px solid var(--linha);
  border-radius:var(--raio);font:inherit;background:#fcfdff}

/* Formulários curtos, como o de calendarizar por modelo. */
.formulario { display: flex; flex-wrap: wrap; gap: 14px; align-items: flex-end; }
.formulario label {
  display: flex; flex-direction: column; gap: 6px;
  font-size: 13px; color: var(--tinta-suave); font-weight: 600;
}
.formulario label .sub{font-weight:400;line-height:1.45}
.formulario input {
  min-width: 200px; min-height: 42px; padding: 9px 11px; font: inherit;
  border: 1px solid var(--linha); border-radius: 8px; background: var(--papel); color: var(--tinta);
}
.formulario :is(input,select,textarea):focus-visible{outline:2px solid var(--marca);outline-offset:1px;
  border-color:var(--marca);box-shadow:0 0 0 3px rgba(23,111,167,.1)}
.formulario button, .painel > button {
  padding: 10px 18px; font: inherit; font-weight: 600; cursor: pointer;
  border: 0; border-radius: 8px; background: var(--marca); color: #fff;
}
.formulario button:hover, .painel > button:hover { background: var(--tinta); }
.painel > button[disabled] { opacity: .6; cursor: default; }

/* Tabelas onde se escreve: campos discretos, para a tabela continuar legível. */
.editavel input, .editavel select {
  width: 100%; padding: 6px 8px; font: inherit; font-size: 13px;
  border: 1px solid var(--linha); border-radius: 6px;
  background: var(--papel); color: var(--tinta);
}
.editavel input.mini, .editavel select { min-width: 0; }
.editavel input:focus, .editavel select:focus { outline: 2px solid var(--marca); outline-offset: 1px; }
.editavel td { padding: 5px 6px; vertical-align: middle; }
.acoes-linha { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.ligacao.perigo { color: var(--mau); }
.formulario select {
  min-width: 200px; max-width: 420px; min-height: 42px; padding: 9px 11px; font: inherit;
  border: 1px solid var(--linha); border-radius: 8px; background: var(--papel); color: var(--tinta);
}

/* ── Área do formando ──────────────────────────────────────────────────────
   Quem entra aqui tem uma formação ou duas, não dezasseis secções: o menu da
   equipa sai da frente e a página fica com a largura toda. */
/* `#menu` é um seletor de ID e ganha a qualquer combinação de classes: para o
   esconder é preciso um ID também. É a mesma armadilha do atributo `hidden`. */
body.sou-formando #menu,
body.sou-formando #definir-pass{display:none}
body.sou-formando #app{grid-template-columns:220px 1fr}
body.sou-formando .lateral{justify-content:space-between}

.destaque-sessao{border-left:3px solid var(--destaque)}
.botao-sala{display:inline-block;padding:10px 20px;background:var(--marca);color:#fff;
  text-decoration:none;border-radius:var(--raio);font-weight:600;font-size:15px}
.botao-sala:hover{background:var(--tinta)}

.meus-dados{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px 18px;margin-top:4px}
.meus-dados label{display:flex;flex-direction:column;gap:5px;font-size:13px;
  color:var(--tinta-suave);font-weight:600}
/* O `display:flex` de cima ganha ao `[hidden]` do navegador, e os campos que
   se escondem — o concelho de quem nasceu fora, o dígito de quem não tem
   cartão de cidadão — apareciam à mesma. */
.meus-dados label[hidden]{display:none}
.meus-dados .larga{grid-column:1/-1}
/* A entrada é a única página que alguém de fora vê antes de saber o que isto
   é. Leva o logótipo, e não uma marca escrita — foi o que a Catarina pediu, e
   é o que distingue um portal de formação de um formulário qualquer. */
.logotipo{width:180px;height:auto;display:block;margin:0 auto 20px;
  filter:contrast(1.08) saturate(1.12)}
.entrada-intro{text-align:center;margin:10px 0 20px;color:#3b4b5c}
/* Uma barra de filtros por cima de uma tabela. */
.filtros{display:flex;flex-wrap:wrap;gap:14px 18px;align-items:flex-end;margin:0 0 14px}
.filtros label{display:flex;flex-direction:column;gap:5px;font-size:12px;
  color:var(--tinta-suave);font-weight:600}
.filtros select,.filtros input:not([type=checkbox]):not([type=radio]){
  padding:9px 11px;border:1px solid var(--linha);border-radius:var(--raio);
  font:inherit;font-size:13px;background:var(--papel);color:var(--tinta);min-height:40px;font-weight:400}
.filtros .so-incompletas{flex-direction:row;align-items:center;gap:7px;font-size:13px}
.linha-check{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:10px;
  padding:10px 0;border-bottom:1px solid var(--linha);cursor:pointer}
.linha-check:last-child{border-bottom:0}
.linha-check input{margin-top:3px}
.linha-check .sub{display:block;margin-top:3px}
.acoes-filtros{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:40px}
.acoes-filtros .acao,.acoes-filtros .ligacao{margin:0}
.contagem-filtros{display:flex;align-items:center;min-height:40px;margin-left:auto}
/* Uma linha que precisa de ação leva a barra laranja à esquerda, como a
   Catarina pediu: vê-se antes de se ler. */
tr.urgente td:first-child{box-shadow:inset 3px 0 0 var(--destaque)}
/* Um botão de ação dentro de um painel. O `button` da folha só herda a letra;
   sem isto, o convite sairia com o desenho por omissão do browser ao lado de
   tudo o resto desenhado. */
.painel > button, .painel button.acao{background:var(--marca);color:#fff;border:0;
  border-radius:var(--raio);padding:10px 20px;font:inherit;font-weight:600;margin-top:6px}
.painel > button:hover, .painel button.acao:hover{background:var(--tinta)}
.painel > button:disabled{opacity:.55;cursor:default}
/* Uma nota que o formando tem de ler antes de assumir que o nome está certo:
   é o que vai sair no certificado, e corrigi-lo depois pode custar-lhe 5 €. */
.nota{border-left:3px solid var(--destaque);background:var(--fundo);padding:11px 13px;
  border-radius:var(--raio);font-size:13px;line-height:1.5;color:var(--tinta);margin:0}
.nota.perigo{border-left-color:var(--mau);background:var(--mau-claro)}
.meus-dados input,.meus-dados select{padding:9px 11px;border:1px solid var(--linha);
  border-radius:var(--raio);font:inherit;font-size:14px;color:var(--tinta);
  background:var(--papel);width:100%;min-height:42px;box-sizing:border-box;font-weight:400}
.meus-dados input:disabled{background:var(--fundo);color:var(--tinta-suave)}
/* A explicação de um campo vive debaixo dele e não ao lado: «os caracteres a
   seguir ao número, no verso do cartão» é o que evita o telefonema. */
.meus-dados label .sub{font-size:12px;line-height:1.45;margin:0;font-weight:400}
.meus-dados button{background:var(--marca);color:#fff;border:0;border-radius:var(--raio);
  padding:10px 22px;font:inherit;font-weight:600;cursor:pointer;margin-right:12px}
.meus-dados button:hover{background:var(--tinta)}

/* NGA Business: quatro áreas curtas em vez de uma página empilhada. */
.business-kpis>.neutro .kpi{background:#f8fafc;border-color:#e6ebf0}
.business-kpis>.neutro .kpi .valor,.business-kpis>.neutro .kpi .rotulo{color:var(--tinta-suave)}
.business-kpis>.aceites .kpi{border-color:#bcd9ed;background:var(--marca-clara)}
.business-abas{display:flex;gap:4px;margin-top:18px;border-bottom:1px solid var(--linha);overflow-x:auto}
.business-abas button{min-height:44px;padding:10px 16px;border:0;border-bottom:3px solid transparent;
  background:transparent;color:var(--tinta-suave);font-weight:700;white-space:nowrap}
.business-abas button:hover{color:var(--marca);background:var(--marca-clara)}
.business-abas button[aria-selected=true]{color:var(--marca);border-bottom-color:var(--marca)}
.business-abas .contagem{display:inline-block;margin-left:5px;padding:1px 7px;border-radius:999px;
  background:var(--fundo);font-size:11px;font-variant-numeric:tabular-nums}
.business-abas .tem-trabalho .contagem{background:var(--destaque-claro);color:#9c4a06}
.business-pane{margin-top:0;border-top:0;border-radius:0 0 11px 11px}
.business-filtros{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-bottom:12px}
.business-filtros button{min-height:34px;padding:6px 11px;border:1px solid var(--linha);border-radius:999px;
  background:var(--papel);color:var(--tinta-suave);font-weight:650}
.business-filtros button:hover,.business-filtros button[aria-pressed=true]{border-color:var(--marca);background:var(--marca-clara);color:var(--marca)}
.business-info{display:flex;gap:8px;align-items:flex-start;margin:10px 0 14px;color:var(--tinta-suave);font-size:12.5px}
.business-info::before{content:"i";display:grid;place-items:center;flex:0 0 18px;height:18px;border-radius:50%;
  background:var(--marca-clara);color:var(--marca);font-size:11px;font-weight:800}
.business-tabela-wrap{overflow-x:auto;overscroll-behavior-inline:contain}
.business-tabela{min-width:940px}
/* Um cabeçalho verticalmente fixo não é compatível com este contentor de
   deslocamento horizontal: em Chromium podia ficar depois da primeira linha. */
.business-tabela thead th{position:static!important;top:auto!important;box-shadow:none!important;transform:none!important}
.business-acoes{display:flex;flex-wrap:wrap;gap:6px;white-space:nowrap}
.business-acoes button{margin:0!important}
.business-ligar{border:1px solid #efcfaa;border-radius:999px;background:var(--destaque-claro);color:#9c4a06;
  padding:2px 8px;font:inherit;font-size:11.5px;font-weight:700}
.business-estado{border:1px solid transparent;border-radius:999px;padding:3px 9px;font:inherit;font-size:11.5px;font-weight:700}
.business-estado.novo{background:var(--marca-clara);color:var(--marca);border-color:#bcd9ed}
.business-estado.em_analise,.business-estado.orcamento_enviado{background:var(--destaque-claro);color:#9c4a06;border-color:#efcfaa}
.business-estado.aceite{background:var(--bom-claro);color:var(--bom);border-color:#b9dec8}
.business-estado.recusado,.business-estado.cancelado{background:var(--mau-claro);color:var(--mau);border-color:#efc7c7}
.business-estado.sem_resposta{background:var(--fundo);color:var(--tinta-suave);border-color:var(--linha)}
.business-passos{display:flex;gap:3px;margin-top:6px}.business-passo{width:7px;height:7px;border-radius:50%;background:#d9e3ed}
.business-passo.feito{background:var(--marca)}.business-passo.final{background:var(--bom)}
.business-detalhe>td{padding:0 14px 16px;background:#fbfdff}.business-detalhe-corpo{padding:14px;border:1px solid var(--linha);border-radius:9px}
.business-detalhe-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px 20px}
.business-detalhe-grid dt{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--marca);font-weight:750}
.business-detalhe-grid dd{margin:2px 0 0;white-space:pre-wrap}
.business-formulario-topo{margin:0 0 14px;padding:14px;border:1px solid var(--acento);border-radius:10px;background:var(--marca-clara)}
.business-formulario-topo h3{margin-top:0;color:var(--marca)}
.business-formulario-acoes{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.business-perfil small,.business-acesso small{display:block;margin-top:3px;color:var(--tinta-suave);font-size:11.5px}
.business-empresa-ensaio{color:var(--tinta-suave)}
.business-acesso{border:0;background:transparent;padding:0;text-align:left;font:inherit}
.business-acesso .etiqueta{pointer-events:none}
@media(max-width:700px){.business-abas button{padding-inline:11px}.business-pane{padding:12px}.business-kpis{grid-template-columns:1fr 1fr}}

/* O regulamento à entrada: uma porta, não um painel entre outros. */
.porta{max-width:620px}
.porta p{line-height:1.6;color:var(--tinta)}
.concordo{display:flex;gap:10px;align-items:flex-start;margin-top:20px;padding:14px 16px;
  background:var(--marca-clara);border-radius:var(--raio);line-height:1.5;cursor:pointer}
.concordo input{margin-top:3px;flex:none;width:17px;height:17px;cursor:pointer}
.porta button{background:var(--marca);color:#fff;border:0;border-radius:var(--raio);
  padding:11px 24px;font:inherit;font-weight:600;cursor:pointer;margin-right:12px}
.porta button:disabled{background:var(--linha);color:var(--tinta-suave);cursor:not-allowed}
.porta button:not(:disabled):hover{background:var(--tinta)}

/* Testemunhos: cada um é um bloco de leitura, não uma linha de tabela — o texto
   é o que importa e uma célula esmaga-o. */
.testemunho{border:1px solid var(--linha);border-radius:var(--raio);padding:16px 18px;margin-bottom:12px}
.testemunho.pendente{border-left:3px solid var(--destaque)}
.testemunho.aprovado{border-left:3px solid var(--bom)}
.testemunho.rejeitado{border-left:3px solid var(--linha);opacity:.72}
.testemunho .cabeca{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.testemunho blockquote{margin:12px 0;padding-left:14px;border-left:2px solid var(--acento);
  line-height:1.6;white-space:pre-wrap}
.testemunho .motivo{margin-top:8px}
.testemunho .acoes-linha{margin-top:12px}
.dialogo-largo{max-width:560px;width:calc(100% - 32px)}
.dialogo-largo textarea{width:100%;min-height:150px;padding:10px;border:1px solid var(--linha);
  border-radius:var(--raio);font:inherit;resize:vertical}
.dialogo-largo select,.dialogo-largo input[type=url],.dialogo-largo input[type=file]{
  width:100%;padding:9px 11px;border:1px solid var(--linha);border-radius:var(--raio);font:inherit}
.dialogo-email-lead{max-width:680px}
.editor-email-barra{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0;padding:8px;border:1px solid var(--linha);
  border-bottom:0;border-radius:10px 10px 0 0;background:var(--fundo)}
.editor-email-barra button{min-width:38px;min-height:36px;padding:6px 9px;border:1px solid var(--linha);
  border-radius:7px;background:#fff;color:var(--tinta);font:inherit}
.editor-email-barra button:hover,.editor-email-barra button:focus-visible{border-color:var(--marca);background:var(--marca-clara)}
.editor-email{min-height:190px;margin-top:-6px;padding:14px;border:1px solid var(--linha);border-radius:0 0 10px 10px;
  background:#fff;line-height:1.55;overflow:auto;outline:none}
.editor-email:empty::before{content:attr(data-placeholder);color:var(--tinta-suave);pointer-events:none}
.editor-email:focus{border-color:var(--marca);box-shadow:0 0 0 3px rgba(15,76,129,.15)}
.editor-email p{margin:0 0 10px}.editor-email ul,.editor-email ol{margin:8px 0;padding-left:24px}
.editor-email-ligacao{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:end;margin-top:12px}
.editor-email-ligacao label{grid-column:1/-1;margin:0}.editor-email-ligacao input{margin:0}
.editor-email-assinatura{display:flex;flex-direction:column;margin:16px 0 4px;padding:13px 15px;border-left:3px solid var(--marca);
  background:var(--fundo);color:var(--tinta)}
.editor-email-assinatura span{margin-bottom:6px;color:var(--tinta-suave);font-size:11px;font-weight:700;text-transform:uppercase}
.editor-email-assinatura small{color:var(--tinta-suave)}
.email-enviado-rasto{margin:0 0 10px;border-color:var(--bom)!important;background:var(--bom-claro)!important;color:var(--tinta)!important}
@media(max-width:600px){.editor-email-ligacao{grid-template-columns:1fr}.editor-email-ligacao label{grid-column:auto}
  .editor-email-ligacao button{width:100%}}
/* A ficha de lead é usada durante a chamada. Precisa de espaço horizontal para
   o contexto e de uma área de escrita que não obrigue a trabalhar numa tira. */
.dialogo-ficha-lead{max-width:980px;width:calc(100% - 48px);min-height:min(720px,calc(100dvh - 48px))}
.dialogo-ficha-lead h2{font-size:22px}
.lead-resumo-ficha{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(260px,1.2fr) minmax(230px,1fr);
  gap:12px;margin:16px 0 20px}
.lead-resumo-ficha > div{min-width:0;padding:13px 14px;border:1px solid var(--linha);
  border-radius:var(--raio);background:var(--fundo)}
.lead-resumo-ficha > div > span{display:block;margin-bottom:6px;color:var(--tinta-suave);
  font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.lead-resumo-ficha p{margin:0;overflow-wrap:anywhere;line-height:1.5}
.lead-resumo-ficha .sub{margin-top:6px}
.lead-interesses{display:flex;align-items:flex-start;flex-wrap:wrap;gap:5px}
.lead-lembrete-pendente{margin:0 0 20px;padding:14px 16px;border:1px solid var(--alerta);
  border-left:4px solid var(--alerta);border-radius:var(--raio);background:var(--alerta-claro)}
.lead-lembrete-pendente > div:first-child{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.lead-lembrete-pendente p{margin:8px 0 4px}
.dialogo-ficha-lead #int-texto{min-height:220px;line-height:1.55}
.lead-origem-detalhe{max-width:320px;margin-top:4px;display:-webkit-box;-webkit-line-clamp:3;
  -webkit-box-orient:vertical;overflow:hidden;line-height:1.35}
@media(max-width:760px){
  .dialogo-ficha-lead{width:calc(100% - 24px);min-height:0}
  .lead-resumo-ficha{grid-template-columns:minmax(0,1fr)}
}
tr.atrasado td{background:var(--mau-claro)}

/* Os avisos são uma linha do tempo, não uma tabela: o que importa é a ordem e
   a data, e uma célula de tabela esconde as duas. */
.avisos{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.avisos li{display:grid;grid-template-columns:88px 1fr;gap:16px;padding:12px 0;
  border-bottom:1px solid var(--linha)}
.avisos li:last-child{border-bottom:0}
.avisos li.novo{background:var(--marca-clara);margin:0 -12px;padding:12px;border-radius:var(--raio)}
.avisos .quando{font-size:13px;color:var(--tinta-suave);font-variant-numeric:tabular-nums}

/* Secções do dossier: um cabeçalho pequeno com o semáforo à frente. */
.seccao-dtp{display:flex;align-items:center;gap:10px;margin:22px 0 8px;
            font-size:14px;font-weight:600;letter-spacing:.2px}
.seccao-dtp .sub{margin-left:auto;font-weight:400}

/* Um alerta fora de prazo lê-se antes de se ler a linha toda. */
.linha-atrasada td:first-child{box-shadow:inset 3px 0 0 #c0392b}

/* Uma nota são dois dígitos: o campo não precisa de mais. */
input.nota{width:64px;text-align:right;padding:6px 8px;border:1px solid var(--linha);
           border-radius:7px;font:inherit}

/* Os campos do relatório são para escrever a sério, não para uma linha. */
.painel textarea{width:100%;font:inherit;padding:10px 12px;border:1px solid var(--linha);
                 border-radius:9px;margin:0 0 6px;resize:vertical}
.painel textarea:disabled{background:var(--fundo);color:var(--tinta-suave)}

/* A folha de presenças: quatro estados por formando, numa linha só. */
label.radio-presenca{display:inline-flex;align-items:center;gap:4px;margin-right:10px;
  font-size:12.5px;color:var(--tinta-suave);white-space:nowrap;cursor:pointer}
label.radio-presenca input{margin:0}

/* ── Impressão ────────────────────────────────────────────────────────────────
   O ponto 23 pede a exportação dos indicadores «em PDF ou Excel para integração
   no BAF ou para apresentação à Gerência». O CSV serve o Excel; o PDF faz-se
   pela impressão do browser, que é o caminho mais fiável — não precisa de
   biblioteca nenhuma e dá o mesmo resultado em qualquer computador da casa.

   O que se imprime é o conteúdo, não a aplicação: sai o menu, saem os filtros e
   os botões, e entra um cabeçalho com a entidade, o período e o recorte — sem
   isso, uma folha impressa não diz a que se refere.                          */
.so-impressao{display:none}

/* A regra de perfil é mais específica do que o #app móvel anterior. */
@media (max-width:860px){
  body.sou-formando #app{grid-template-columns:minmax(0,1fr)}
  body.sou-formando #alternar-menu{display:none}
  body.sou-formando .lateral.menu-recolhido .rodape-lateral{display:block}
}

@media (max-width:600px){
  dialog{--dialog-padding:20px}
  .topo{position:static;flex-wrap:wrap;align-items:flex-start;padding:16px 18px;gap:12px}
  .vista{padding:18px 18px 32px}
  .painel{padding:16px}
  .lista-pendentes{grid-template-columns:minmax(0,1fr);gap:12px;margin-top:14px}
  .pendente-card{padding:14px;overflow:visible}
  .pendente-abrir{grid-template-columns:minmax(0,1fr);gap:3px;margin-top:9px}
  .pendente-indicacao{grid-column:1;grid-row:auto;margin-top:5px;white-space:normal}
  .pendente-resumo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px 14px}
  .pendente-resumo div:first-child,.pendente-resumo .pendente-contagem{grid-column:1/-1}
  .pendente-texto{grid-template-columns:minmax(0,1fr);gap:14px}
  .pendente-acoes{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end}
  .pendente-acoes label{grid-column:1/-1}
  .pendente-acoes select,.pendente-acoes input{width:100%;max-width:none;min-height:44px;font-size:16px}
  .pendente-acoes button{min-height:44px;width:100%;white-space:normal}
  .topo > *{min-width:0;max-width:100%}
  .topo > div:first-child{flex-basis:100%}
  #acoes-topo{width:100%;justify-content:stretch;padding:5px}
  #acoes-topo > button{flex:1 1 auto;min-height:44px}
  #acoes-topo .pesquisa-topo,#acoes-topo .procura{width:100%}
  .duas-colunas{grid-template-columns:minmax(0,1fr);gap:12px}
  .duas-colunas > *,.filtros label,.formulario label{min-width:0;max-width:100%}
  .formulario{display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch;width:100%}
  .formulario label,.formulario button{width:100%}
  .formulario button{min-height:44px}
  .filtros{gap:12px;margin-bottom:16px}
  .filtros > label{flex:1 1 100%;width:100%}
  .filtros input,.filtros select,.formulario input,.formulario select{min-width:0;max-width:100%}
  .filtros input:not([type=checkbox]):not([type=radio]),.filtros select{width:100%}
  .filtros input:not([type=checkbox]):not([type=radio]),.filtros select{font-size:16px;min-height:44px}
  .acoes-filtros{width:100%;min-height:44px}
  .acoes-filtros > button{flex:1 1 auto;min-height:44px}
  .contagem-filtros{width:100%;min-height:0;margin-left:0}
  .chamada{padding:14px}
  .chamada button{width:100%}
  .grelha{grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr))}
  .resumo-kpis{grid-template-columns:minmax(0,1fr)}
  .meus-dados{grid-template-columns:minmax(0,1fr)}
  button.mini,button.discreto,label.mini-envio{min-height:44px;padding:10px}
  .paginacao{grid-template-columns:1fr 1fr}
  .paginacao [role=status]{grid-column:1/-1;grid-row:1}
  .paginacao button{width:100%}
  .cartao-entrada input,.procura,.meus-dados input,.meus-dados select,
  .meus-dados textarea,.filtros input,.filtros select,.formulario input,.formulario select,
  dialog input,dialog select,dialog textarea{font-size:16px}
  #menu button,#alternar-menu{min-height:44px}
  .rodape-lateral .ligacao{min-height:44px}
  /* Sete colunas deixam de ser comprimidas até ficarem ilegíveis. O calendário
     conserva uma largura útil e usa a deslocação horizontal do painel. */
  .semana,.mes{min-width:560px}
  .mes button.marca,.eventos-extra summary{min-height:44px}
  .painel:has(.mes)::after{content:"Deslize horizontalmente para ver o resto do mês →";
    position:sticky;left:0;display:block;width:max-content;margin:10px 0 0;padding:4px 8px;
    border-radius:6px;background:var(--marca-clara);color:var(--marca);font-size:11.5px;font-weight:600}
  .painel[data-tabela-deslocavel]:focus-visible{outline:3px solid var(--marca);outline-offset:2px}
}

@media (max-width:480px){
  dialog{width:calc(100% - 24px);border-radius:12px}
  dialog .botoes{flex-direction:column-reverse;align-items:stretch}
  dialog .botoes button{width:100%}
}

@media (max-width:420px){
  .entrada{padding:12px;place-content:start center}
  .cartao-entrada{padding:24px 20px;margin-top:12px;border-radius:12px}
  .topo{padding:14px}
  .vista{padding:14px 14px 28px}
  .painel{padding:14px;border-radius:12px}
  p.vazio{padding:20px 14px}
  .logotipo{width:160px;margin-bottom:16px}
}

@media print {
  @page { size: A4; margin: 16mm 14mm; }
  body{background:#fff}
  #app,body.sou-formando #app{display:block;min-height:0}
  .lateral, .topo, .filtros, button, .a-carregar{display:none !important}
  main{display:block}
  .vista{padding:0}
  .so-impressao{display:block;margin:0 0 18px;padding:0 0 12px;
    border-bottom:2px solid var(--marca)}
  .so-impressao .marca{font-size:15px;font-weight:700;color:var(--marca)}
  .so-impressao h1{font-size:19px;margin:6px 0 4px}
  .so-impressao .sub{font-size:12px;color:var(--tinta-suave)}
  /* Os cartões passam a caber quatro por linha e perdem a sombra, que em papel
     só faz cinzento. */
  .grelha{grid-template-columns:repeat(4,1fr);gap:8px}
  .cartao, .painel{box-shadow:none;border:1px solid #ccc;break-inside:avoid}
  .painel{margin-top:12px;overflow:visible}
  .painel table{min-width:0!important}
  table{font-size:11px}
  a[href]:after{content:""}
}

/* As escolhas de uma dúvida do import: uma decisão por linha, para não se
   carregar no botão sem ter lido o que se está a decidir. */
.escolhas{display:flex;flex-direction:column;gap:6px;margin:12px 0 4px}
.escolhas label{display:flex;gap:8px;align-items:flex-start;font-size:14px;
  padding:9px 11px;border:1px solid var(--linha);border-radius:9px;cursor:pointer}
.escolhas label:has(input:checked){border-color:var(--marca);background:var(--fundo)}

/* Formadores de uma sessão, no editor de sessões: um chip por pessoa, com o
   × a tirar, e a lista a juntar. Pedido da Catarina, 24-09-2026. */
.formadores-sessao{min-width:240px}
.formador-chip{display:inline-flex;align-items:center;gap:4px;margin:2px 4px 2px 0;white-space:nowrap}
.formador-chip button{border:0;background:none;cursor:pointer;color:inherit;padding:0 2px;font-size:14px;line-height:1}
.formador-chip button:hover{color:var(--destaque,#f47b20)}
.formador-chip small{font-size:11px;font-weight:400;opacity:.8}
.formador-chip-equipa{border:1px dashed #b9cfe2}
.formadores-sessao select{margin-top:4px;max-width:180px;font-size:12px}
/* O módulo e o tema de cada sessão, no editor de sessões: o tema quebra em vez de
   ficar cortado, o módulo lê-se sem abrir nada, e uma linha mais carregada marca
   onde um módulo acaba. Pedido da Catarina, 24-09-2026. */
.modulo-sessao{min-width:150px;max-width:240px;font-size:12.5px;line-height:1.35;color:var(--tinta-suave)}
.tema-sessao{min-width:260px;width:36%}
.tema-sessao textarea{width:100%;box-sizing:border-box;font:inherit;line-height:1.35;padding:6px 8px;
  border:1px solid var(--linha);border-radius:6px;resize:vertical;background:#fff;color:var(--tinta)}
tr.muda-modulo > td{border-top:2px solid #b9cfe2}

/* A escolha entre «edição» e «curso sempre disponível» dentro de um formulário
   `.meus-dados`: as regras dos campos (coluna, largura total, altura mínima)
   esticavam o círculo do botão de opção. */
.meus-dados .escolhas label{flex-direction:row;align-items:flex-start;font-weight:400;color:var(--tinta)}
.meus-dados .escolhas input[type=radio]{width:auto;min-height:0;padding:0;margin-top:3px;flex:none}

/* O número dos pedidos de formandos por responder, no menu. Vem de `data-por-responder`
   e não do texto do botão: o texto serve à pesquisa e aos atalhos do menu, e não deve
   levar dígitos. O ponto no grupo diz que há algo lá dentro mesmo com o grupo fechado.
   Catarina, 25-09-2026: «não estou a encontrar o separador». */
#menu button[data-por-responder]::after{content:attr(data-por-responder);margin-left:8px;padding:1px 7px;
  border-radius:999px;background:var(--destaque,#f47b20);color:#fff;font-size:11px;font-weight:700}
#menu .menu-grupo:has(button[data-por-responder]) > .grupo::after{content:"";display:inline-block;width:8px;height:8px;
  margin-left:8px;border-radius:50%;background:var(--destaque,#f47b20);vertical-align:middle}


.notificacao-global .detalhe-tecnico{font-size:12px;color:inherit;opacity:.85;margin:0 12px}.notificacao-global .detalhe-tecnico summary{cursor:pointer}.notificacao-global .detalhe-tecnico code{display:block;margin-top:4px;white-space:pre-wrap;word-break:break-word;font-size:11.5px}

/* ── Arrumação do painel (auditoria de 26-09-2026) ─────────────────────── */
/* Explicações e questões da coordenação nascem recolhidas: o trabalho do dia
   vem primeiro, o contexto abre-se quando faz falta. */
details.painel.explicacao>summary{list-style:none;cursor:pointer;display:flex;align-items:center;
  flex-wrap:wrap;gap:10px;margin:-4px 0}
details.painel.explicacao>summary::-webkit-details-marker{display:none}
details.painel.explicacao>summary>h2{font-size:15px;color:var(--tinta);margin:0;letter-spacing:-.01em}
details.painel.explicacao>summary::after{content:"mostrar";margin-left:auto;font-size:12px;font-weight:600;color:var(--marca)}
details.painel.explicacao[open]>summary::after{content:"esconder"}
details.painel.explicacao[open]>summary{margin-bottom:12px}
details.painel.explicacao>summary:hover>h2{color:var(--marca)}

/* Honorários: uma fila única, da conta ao pagamento. A cor só orienta; a fase
   fica sempre escrita e numerada para não depender da perceção cromática. */
.honorarios-vista{display:grid;gap:12px}
.honorarios-vista>.painel{margin-top:0}
.honorarios-comandos{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.honorarios-periodo{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.honorarios-periodo select,.honorarios-periodo button{min-height:44px}
.honorarios-filtros{display:flex;gap:7px;overflow-x:auto;padding:2px 0 5px;scrollbar-width:thin}
.honorarios-filtros button{min-height:44px;padding:8px 13px;border:1px solid var(--linha);border-radius:999px;
  background:var(--papel);color:var(--tinta);font:inherit;font-size:13px;white-space:nowrap;cursor:pointer}
.honorarios-filtros button b{margin-left:5px;color:var(--marca);font-variant-numeric:tabular-nums}
.honorarios-filtros button.ativo{background:var(--marca);border-color:var(--marca);color:#fff}
.honorarios-filtros button.ativo b{color:#fff}
.honorarios-alerta{padding:11px 14px;border:1px solid #efcfaa;border-left:4px solid var(--destaque);
  border-radius:var(--raio);background:var(--destaque-claro);color:#7d3c04}
.honorarios-grupo>h2{display:flex;align-items:center;gap:8px}
.honorarios-grupo>h2 span{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 7px;
  border-radius:999px;background:var(--marca-clara);color:var(--marca);font-size:12px}
.honorarios-grupo table{table-layout:fixed}
.honorarios-grupo th:nth-child(1){width:18%}.honorarios-grupo th:nth-child(2){width:31%}
.honorarios-grupo th:nth-child(3){width:11%}.honorarios-grupo th:nth-child(4){width:18%}
.honorario-fase{min-width:142px}.honorario-fase strong{display:block;margin-top:5px;font-size:12.5px}
.honorario-fase>.sub{display:block}
.honorario-passos{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;width:128px}
.honorario-passos i{display:block;height:5px;border-radius:4px;background:#dfe7ee}
.honorario-passos i.feito{background:var(--acento)}
.honorario-passos i.atual{background:var(--marca)}
.honorario-acoes{display:flex;align-items:flex-start;gap:7px;flex-wrap:wrap}
.honorario-acoes button{min-height:44px}
.honorario-acoes .sub{flex-basis:100%;overflow-wrap:anywhere}
.honorario-documento{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;
  border:1px solid var(--linha);border-radius:var(--raio);background:var(--fundo)}
.honorario-documento .sub{display:block}.honorario-documento button{min-height:44px;flex:none}
.honorario-confirmacao{display:flex!important;align-items:flex-start;gap:9px;margin:14px 0;font-weight:650!important}
.honorario-confirmacao input{width:auto!important;min-height:0!important;margin-top:3px}
.honorario-dados-fiscais{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.honorario-pagamento-dialogo input[readonly]{background:var(--fundo);color:var(--tinta-suave)}
@media(max-width:760px){.honorarios-comandos,.honorarios-periodo{align-items:stretch}.honorarios-periodo{width:100%}
  .honorarios-periodo select{flex:1}.honorarios-grupo table{min-width:820px}.honorario-dados-fiscais{grid-template-columns:1fr}}
/* Filtro «por responder / todos» com procura, nas listas que os misturavam. */
.filtro-linhas{margin:0 0 12px}
.filtro-linhas .ligacao{padding:6px 10px;border-radius:7px;border:1px solid transparent}
.filtro-linhas .ligacao.ativo{background:var(--marca-clara);border-color:var(--marca);text-decoration:none}
.filtro-linhas input[type=search]{padding:8px 11px;border:1px solid var(--linha);border-radius:var(--raio);
  font:inherit;font-size:13px;min-width:min(280px,100%);flex:1 1 200px;background:var(--papel)}
/* Classes de botão que eram usadas sem regra: saíam com o desenho do browser. */
button.secundario:not(.mini),a.btn.secundario{background:var(--papel);color:var(--marca);border:1px solid var(--linha);
  border-radius:var(--raio);padding:9px 14px;font:inherit;font-weight:600;text-decoration:none;display:inline-block}
button.secundario:not(.mini):hover,a.btn.secundario:hover{background:var(--marca-clara);border-color:var(--marca)}
button.mini.secundario{color:var(--tinta-suave)}
a.botao{display:inline-block;background:var(--marca);color:#fff;border:1px solid var(--marca);border-radius:var(--raio);
  padding:9px 16px;font:inherit;font-weight:600;text-decoration:none}
#acoes-topo button.acao,#vista>button.acao{background:var(--marca);color:#fff;border:1px solid var(--marca);
  border-radius:var(--raio);padding:10px 18px;font:inherit;font-size:14px;font-weight:700}
button.perigo:not(.ligacao):not(.prioridade){background:#a12828;color:#fff;border:1px solid #a12828;border-radius:var(--raio);
  padding:9px 14px;font:inherit;font-weight:600}

/* Quadro de Tarefas: colunas por categoria, lado a lado, com scroll
   horizontal quando não cabem — cada coluna rola por si na vertical. */
.quadro-tarefas{display:flex;gap:14px;align-items:flex-start;overflow-x:auto;
  padding-bottom:8px;margin-top:18px}
.tarefa-coluna{background:var(--fundo);border:1px solid var(--linha);border-radius:14px;
  padding:12px;min-width:270px;max-width:270px;flex:0 0 auto;display:flex;
  flex-direction:column;gap:10px}
.tarefa-coluna:nth-child(4n+1){background:#f5f8fb}.tarefa-coluna:nth-child(4n+2){background:#f1f7fb}
.tarefa-coluna:nth-child(4n+3){background:#fff8ed}.tarefa-coluna:nth-child(4n){background:#eef8f2}
.tarefa-coluna-cabecalho{display:flex;align-items:center;gap:8px}
.tarefa-coluna-cabecalho h2{margin:0;flex:1 1 auto;min-width:0;font-size:14px}
.tarefa-renomear{font:inherit;font-weight:700;font-size:14px;background:transparent;
  border:0;padding:2px 0;text-align:left;color:var(--tinta);cursor:pointer;
  width:100%;overflow-wrap:anywhere}
.tarefa-renomear:hover{color:var(--marca)}
.tarefa-contagem{background:var(--papel);border:1px solid var(--linha);border-radius:999px;
  font-size:11.5px;font-weight:700;color:var(--tinta-suave);padding:1px 8px;flex:0 0 auto}
.tarefa-x{background:transparent;border:0;color:var(--tinta-suave);font-size:16px;
  line-height:1;cursor:pointer;padding:2px 4px;flex:0 0 auto;border-radius:6px}
.tarefa-x:hover{color:var(--mau);background:var(--mau-claro)}
.tarefa-lista{display:flex;flex-direction:column;gap:8px;min-height:40px}
.tarefa-lista:empty{border:1px dashed var(--linha);border-radius:10px}
.tarefa-cartao{background:var(--papel);border:1px solid var(--linha);border-radius:10px;
  padding:10px 12px;box-shadow:var(--sombra-suave);cursor:grab}
.tarefa-cartao.a-arrastar{opacity:.4}
.tarefa-cartao.tarefa-feita{background:var(--fundo)}
.tarefa-cartao.tarefa-feita .tarefa-abrir{color:var(--tinta-suave);text-decoration:line-through}
.tarefa-linha{display:flex;align-items:flex-start;gap:6px}
.tarefa-concluir{display:flex;align-items:flex-start;gap:8px;flex:1 1 auto;min-width:0;
  font-size:13.5px;line-height:1.4}
.tarefa-concluir input{margin-top:3px;flex:0 0 auto}
.tarefa-conteudo{min-width:0;flex:1 1 auto}
.tarefa-abrir{border:0;background:transparent;color:var(--tinta);font:inherit;font-weight:inherit;
  line-height:inherit;padding:0;text-align:left;cursor:pointer;overflow-wrap:anywhere;max-width:100%}
.tarefa-abrir:hover,.tarefa-abrir:focus-visible{color:var(--marca);text-decoration:underline}
.tarefa-certificado-contexto{margin-top:3px;max-width:100%;overflow-wrap:anywhere;word-break:normal}
.tarefa-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:8px}
.tarefa-meta .ligacao{font-size:12px;margin-left:auto}
.tarefa-responsavel{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:8px;
  background:var(--marca-clara);color:var(--tinta);line-height:1.15}
.tarefa-responsavel small{font-size:10px;text-transform:uppercase;letter-spacing:.035em;color:var(--tinta-suave)}
.tarefa-responsavel strong{font-size:12px;color:var(--marca)}
.tarefa-responsavel-cabecalho{display:block;padding:3px 0;font-size:15px;color:var(--marca)}
.tarefa-coluna-responsavel{min-width:310px;max-width:310px}
.tarefa-nova{align-self:flex-start;font-size:13px}
.tarefas-categorias{margin:0 0 14px}.tarefas-categorias .chip b{margin-left:4px;color:var(--tinta-suave)}
.tarefas-mais,.tarefa-menu{position:relative}.tarefas-mais>summary,.tarefa-menu>summary{cursor:pointer;list-style:none;color:var(--marca);font-weight:650}
.tarefas-mais>summary{border:1px solid var(--linha);border-radius:var(--raio);padding:8px 11px;background:var(--papel)}
.tarefas-mais>summary::-webkit-details-marker,.tarefa-menu>summary::-webkit-details-marker{display:none}
.tarefas-mais[open]{display:flex;gap:8px;align-items:center}.tarefas-mais[open]>summary{display:none}
.tarefa-menu{display:inline-block}.tarefa-menu>summary{padding:4px 6px;border-radius:6px;letter-spacing:.08em}
.tarefa-menu[open]>button{position:absolute;right:0;top:100%;z-index:10;width:max-content;background:var(--papel);border:1px solid var(--linha);border-radius:8px;padding:8px 10px;box-shadow:var(--sombra-suave)}
.tarefas-por-prazo{display:flex;flex-direction:column;gap:18px}.tarefas-grupo{border:1px solid var(--linha);border-radius:12px;background:var(--papel);overflow:visible}
.tarefas-grupo.atrasadas{border-color:#e9b6b2}.tarefas-grupo>h2,.tarefas-grupo>summary{display:flex;align-items:center;gap:8px;margin:0;padding:11px 14px;border-bottom:1px solid var(--linha);font-size:14px;background:var(--fundo)}
.tarefas-grupo.atrasadas>h2{color:var(--mau);background:var(--mau-claro)}.tarefas-grupo>h2 b,.tarefas-grupo>summary b{font-size:11.5px;background:var(--papel);border:1px solid var(--linha);border-radius:999px;padding:1px 7px;color:var(--tinta-suave)}
.tarefas-grupo>summary{cursor:pointer;list-style:none;font-weight:700}.tarefas-grupo>summary::-webkit-details-marker{display:none}
.tarefa-prazo-linha{display:grid;grid-template-columns:minmax(145px,.45fr) minmax(250px,1.5fr) auto;align-items:center;gap:14px;padding:12px 14px;border-bottom:1px solid var(--linha)}
.tarefa-prazo-linha:last-child{border-bottom:0}.tarefa-prazo-linha.tarefa-feita{opacity:.62}.tarefa-prazo-linha.tarefa-feita .tarefa-abrir{text-decoration:line-through}
.tarefa-prazo-tipo{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:12px;color:var(--tinta-suave);font-weight:650}.tarefa-prazo-corpo>.tarefa-abrir{font-size:13.5px;font-weight:700}
.tarefa-prazo-acoes{display:flex;align-items:center;justify-content:flex-end;gap:6px}.tarefa-prazo-acoes .acao{background:var(--marca);color:#fff;border-color:var(--marca)}
@media(max-width:640px){.tarefa-coluna{min-width:82vw;max-width:82vw}}
@media(max-width:760px){.tarefa-prazo-linha{grid-template-columns:1fr}.tarefa-prazo-acoes{justify-content:flex-start}.tarefas-categorias{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}.tarefas-categorias .chip{white-space:nowrap}}

/* Vista em lista: a mesma tarefa, agora em linha, ordenável por prazo ou
   prioridade em vez de arrumada por categoria. */
.tarefas-ordenar-rotulo{display:flex;align-items:center;gap:6px;font-size:12.5px;
  color:var(--tinta-suave)}
.tarefas-ordenar-rotulo select{padding:7px 9px;border:1px solid var(--linha);border-radius:var(--raio);
  font:inherit;font-size:13px;background:var(--papel);color:var(--tinta)}
.tarefas-tabela{width:100%;border-collapse:collapse;font-size:13.5px}
.tarefas-tabela th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;
  color:var(--tinta-suave);padding:8px 10px;border-bottom:1px solid var(--linha)}
.tarefas-tabela td{padding:9px 10px;border-bottom:1px solid var(--linha);vertical-align:middle}
.tarefas-tabela tr.tarefa-linha-feita td{color:var(--tinta-suave)}
.tarefas-tabela tr.tarefa-linha-feita td:nth-child(2){text-decoration:line-through}
.tarefa-tabela-acoes{white-space:nowrap;text-align:right}
.tarefa-tabela-acoes button{margin-left:6px}

/* Organização transversal pedida na revisão de 30-09-2026. */
/* Compatibilidade com versões anteriores do menu: a lista automática de
   últimos destinos deixou de existir. A pesquisa abre diretamente os grupos. */
#menu-recentes-bloco,#menu-recentes{display:none!important}
.novidades-blocos{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.novidades-blocos>section{min-width:0}.novidades-blocos>section>h2{margin:0 0 9px;font-size:15px}
.novidades-blocos .grelha{grid-template-columns:repeat(2,minmax(0,1fr));margin:0}
.novidades-blocos .painel{margin:0;padding:0;border:0;box-shadow:none}
.nota-com-icone{display:flex;gap:9px;align-items:flex-start}.nota-com-icone>span{color:var(--marca);font-weight:700}
.separadores-vista{display:flex;gap:4px;margin:10px 0 14px;border-bottom:1px solid var(--linha)}
.separadores-vista button{border:0;border-bottom:2px solid transparent;background:transparent;color:var(--tinta-suave);
  padding:8px 11px;font:inherit;font-size:13px;font-weight:650;cursor:pointer}
.separadores-vista button:hover,.separadores-vista button:focus-visible{color:var(--marca);border-bottom-color:var(--marca)}
.separadores-vista button[aria-selected=true]{color:var(--marca);border-bottom-color:var(--marca);font-weight:750}

/* Área do formador: seis destinos curtos em vez de uma página contínua. */
.cabecalho-formador{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 14px}
.cabecalho-formador h1{margin:0;color:var(--tinta);font-size:24px}
.espaco-formador{display:grid;grid-template-columns:190px minmax(0,1fr);gap:24px;align-items:start}
.navegacao-formador{position:sticky;top:0;min-height:calc(100vh - 104px);padding:22px 14px;background:#0d1b2a;color:#fff;display:flex;flex-direction:column;overflow:hidden}
.navegacao-formador>b{display:block;font-size:16px;line-height:1.25;white-space:nowrap}.navegacao-formador>small{display:block;margin:5px 0 22px;color:#89c2eb;font-size:10px;letter-spacing:.1em;white-space:nowrap}
.navegacao-formador nav{display:grid;gap:5px}.navegacao-formador nav button,.menu-formador-perfil button{width:100%;border:0;border-radius:7px;background:transparent;color:#c9d5df;text-align:left;padding:10px 11px;font:inherit;font-size:14px;cursor:pointer}
.navegacao-formador nav button:hover,.navegacao-formador nav button:focus-visible{background:#183047;color:#fff}
.navegacao-formador nav button[aria-current=page]{background:#0f4c81;color:#fff;font-weight:750}
.menu-formador-perfil{margin-top:auto;padding-top:18px;border-top:1px solid #294257;font-size:12px}.menu-formador-perfil span{display:block;padding:0 11px 6px;font-weight:700}
.conteudo-formador{min-width:0;max-width:100%;overflow:hidden;padding-top:24px;border-top:1px solid #dbe4ec}.conteudo-formador>[hidden]{display:none!important}
.titulo-seccao-formador{margin-bottom:8px}.titulo-seccao-formador h2{margin:0;color:var(--tinta);font-size:20px}.titulo-seccao-formador p{margin:3px 0;color:var(--tinta-suave);font-size:13px}
.formador-resumo{grid-template-columns:repeat(3,minmax(0,1fr))}
.titulo-atencao-formador{margin-top:16px}.tarefas-formador{padding:0;overflow:hidden}
.tarefa-formador{display:flex;align-items:center;gap:12px;padding:13px 15px;border-bottom:1px solid #eef2f6}
.tarefa-formador:last-child{border-bottom:0}.tarefa-formador>div{display:flex;min-width:0;flex:1;flex-direction:column}
.tarefa-formador>div span{color:var(--tinta-suave);font-size:12px}.tarefa-formador>button,.botao-tarefa-formador{flex:0 0 auto;min-width:92px;padding:8px 12px;border:0;border-radius:6px;background:#0f4c81;color:#fff;font-weight:700;text-align:center;cursor:pointer}
.alternativas-disponibilidade{margin-top:12px;padding:14px;background:#f2f6fa;border-radius:8px;display:grid;gap:8px}
.alternativas-disponibilidade>strong,.alternativas-disponibilidade>span{display:block}
.data-alternativa{display:flex;align-items:center;gap:8px;margin:6px 0}.data-alternativa input{max-width:230px}
.data-alternativa-caixa{display:grid;gap:5px}.aviso-data-pausa{display:flex;align-items:flex-start;gap:10px;margin:8px 0;padding:11px 12px;border-left:5px solid #e8833a;border-radius:8px;background:#fff6ee;color:#0d2742;font-size:13px;line-height:1.45}
.aviso-data-pausa>b{display:grid;place-items:center;flex:0 0 23px;width:23px;height:23px;border-radius:50%;background:#e8833a;color:#fff;font-size:16px}.aviso-data-pausa strong{display:block;color:#b45309}
.confirmacao-disponibilidade{margin:10px 0;padding:11px 13px;border-left:5px solid #2f9e62;border-radius:8px;background:#e8f5ee;color:#17643f;font-size:13px}
.acoes-resposta-disponibilidade{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.acoes-resposta-disponibilidade .secundario{background:#fff;color:#0f4c81;border:2px solid #0f4c81}
.conteudo-formador button:not(.ligacao):not([role=tab]),.conteudo-formador .botao-tarefa-formador,
.conteudo-formador .mini-envio{display:inline-flex;align-items:center;justify-content:center;min-height:40px;height:40px;padding:0 16px;border:2px solid #0f4c81;border-radius:6px;background:#0f4c81;color:#fff;font:700 14px/1 Arial,Calibri,sans-serif;cursor:pointer}
.conteudo-formador button.secundario,.conteudo-formador .botao-formador.secundario,
.conteudo-formador button[data-retirar-data],.conteudo-formador button[data-juntar-data],
.conteudo-formador button[data-editar-indisponibilidade],.conteudo-formador button[data-apagar-indisponibilidade]{border:2px solid #0f4c81;background:#fff;color:#0f4c81}
.acoes-sessao-formador{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.motivo-confirmacao{margin-top:6px;color:#5b6b7c;font-size:13px}.resposta-proxima-sessao{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:12px}
.nome-formacao-completo{white-space:normal;min-width:210px;overflow-wrap:anywhere}
.formacoes-do-formador{display:grid;gap:18px}.grupo-formacoes{border:1px solid #dbe4ec;border-left:5px solid #0f4c81;border-radius:8px;overflow:hidden}.grupo-formacoes.grupo-confirmadas{border-left-color:#2f9e62}.grupo-formacoes.grupo-planeadas{border-left-color:#e8833a}.grupo-formacoes>h3,.grupo-formacoes>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:13px 15px;font-size:18px;font-weight:750;cursor:pointer}.grupo-formacoes>h3 span,.grupo-formacoes>summary span{padding:3px 9px;border-radius:999px;background:#eef2f6;color:#5b6b7c;font-size:12px}.grupo-formacoes table{margin:0}.grupo-formacoes .vazio{padding:0 15px 14px}.grupo-concluidas{border-left-color:#5b6b7c}
.acoes-documentos-em-falta{display:flex;flex-wrap:wrap;align-items:center;gap:9px}
.form-dados-formador{display:block}.bloco-dados-formador{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0 18px;padding:16px;border:1px solid var(--linha);border-radius:8px}
.bloco-dados-formador legend{padding:0 7px;color:var(--marca);font-size:13px;font-weight:750;text-transform:uppercase;letter-spacing:.06em}
.pedido-disponibilidade fieldset label{display:inline-flex;align-items:center;gap:6px;padding:9px 12px;border:1px solid var(--linha);border-radius:6px;cursor:pointer}
.pedido-disponibilidade fieldset input[type=radio]{width:auto;margin:0;accent-color:#0f4c81}
body.sou-formador #app{grid-template-columns:minmax(0,1fr);width:100%;max-width:none;margin:0;min-height:100vh;border-radius:0;box-shadow:none}
body.sou-formador #app>.lateral{display:none}
body.sou-formador #app>main{min-width:0;width:100%;border-radius:0}
body.sou-formador .topo{padding:18px 24px 12px}
body.sou-formador .vista{min-width:0;padding:0 24px 28px}
@media(max-width:820px){body.sou-formador .topo{padding:14px 14px 10px}body.sou-formador .vista{padding:0 14px 22px}.espaco-formador{grid-template-columns:1fr}.navegacao-formador{position:static;min-height:0;padding:12px}.navegacao-formador>b,.navegacao-formador>small{display:none}.navegacao-formador nav{display:flex;overflow-x:auto}.navegacao-formador nav button{white-space:nowrap}.menu-formador-perfil{display:none}.conteudo-formador{padding-top:20px}.formador-resumo,.bloco-dados-formador{grid-template-columns:1fr}.cabecalho-formador h1{font-size:21px}.tarefa-formador{align-items:stretch;flex-direction:column}.tarefa-formador>button,.botao-tarefa-formador{width:100%}.acoes-resposta-disponibilidade>*,.acoes-sessao-formador>*,.resposta-proxima-sessao>*{width:100%;text-align:center}.grupo-formacoes{overflow-x:auto}.grupo-formacoes table{min-width:720px}}

/* Inscrições e vagas: uma decisão de cada vez — primeiro a fase, depois o
   tipo de formação. Os cinco números antigos passam a uma leitura conjunta. */
.vagas-resumo{margin:0 0 14px;color:var(--tinta-suave);font-size:14px;line-height:1.55}
.vagas-resumo b{color:var(--tinta)}
.vagas-fila{grid-template-columns:repeat(2,minmax(0,1fr))}
.vagas-atencao{padding:14px 16px;margin-bottom:10px;border-left:3px solid var(--destaque)}
.vagas-atencao h2{margin:0 0 10px;font-size:14px}
.vagas-filtros-atencao{display:flex;flex-wrap:wrap;gap:7px}
.vagas-filtros-atencao .mini{margin:0;background:var(--papel);color:var(--tinta-suave);border:1px solid var(--linha)}
.vagas-filtros-atencao .mini[aria-pressed=true]{background:var(--destaque-claro);color:#8a4308;border-color:#e5ad72}
.vagas-filtros-atencao .mini b{font-variant-numeric:tabular-nums}
.vagas-separadores{overflow-x:auto;margin-top:4px}
.vagas-separadores button{white-space:nowrap}
.vagas-cabecalho{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin:4px 0 12px}
.vagas-cabecalho h2{margin:6px 0 0;font-size:18px}
.vagas-cabecalho details{max-width:620px;border:1px solid var(--linha);border-radius:var(--raio);padding:7px 10px;background:var(--papel)}
.vagas-cabecalho summary{cursor:pointer;color:var(--marca);font-size:13px;font-weight:700}
.vagas-cabecalho details p{margin:9px 2px 3px;font-size:12px;line-height:1.55;color:var(--tinta-suave)}
.vagas-duas-seccoes{display:grid;gap:14px}
.vagas-seccao{margin:0;padding:16px}
.vagas-seccao>h2{margin:0 0 10px;font-size:15px}
.vagas-seccao>h2 .sub{font-weight:500;margin-left:4px}
.tabela-responsiva{overflow-x:auto}
.tabela-vagas{min-width:820px}
.tabela-vagas th:nth-child(1){width:31%}
.tabela-vagas th:nth-child(2){width:13%}
.tabela-vagas th:nth-child(3){width:34%}
.tabela-vagas th:nth-child(4){width:10%}
.vagas-acao{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}
.vagas-acao b{line-height:1.35}
.vagas-etiquetas{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
.vagas-progresso{position:relative;height:9px;margin:1px 0 6px;border:1px solid #dce6ee;border-radius:9px;background:var(--fundo)}
.vagas-progresso span{display:block;height:100%;border-radius:9px;background:var(--acento)}
.vagas-progresso i{position:absolute;top:-4px;width:2px;height:15px;background:var(--tinta);transform:translateX(-1px)}
.vagas-contagem{font-size:12px;line-height:1.45;color:var(--tinta-suave);font-variant-numeric:tabular-nums}
.vagas-contagem b{color:var(--tinta)}
@media(max-width:760px){
  .vagas-cabecalho{display:block}.vagas-cabecalho details{margin-top:10px}
  .vagas-fila{grid-template-columns:1fr}
}

/* Formandos: primeiro separar universos, depois mostrar os problemas. A lista
   deixa de transformar todas as pessoas sem NIF num alarme do SIGO. */
.formandos-resumo{margin:0 0 14px;color:var(--tinta-suave);font-size:14px}
.formandos-resumo b{color:var(--tinta);font-variant-numeric:tabular-nums}
.formandos-aviso-sigo{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:14px}
.formandos-aviso-sigo .mini{flex:0 0 auto}
.formandos-separadores{margin-top:0;overflow-x:auto}
.formandos-separadores button{white-space:nowrap}
.formandos-separadores button b,.formandos-qualidade button b{font-variant-numeric:tabular-nums}
.formandos-qualidade{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 12px}
.formandos-qualidade .chip{min-height:34px}
.formandos-qualidade .chip[aria-pressed=true]{background:var(--marca);border-color:var(--marca);color:#fff}
.formandos-letras{display:flex;gap:5px;overflow-x:auto;padding:2px 0 12px;scrollbar-width:thin}
.formandos-letras button{min-width:38px;min-height:32px;padding:5px 9px;border:1px solid var(--linha);border-radius:8px;background:var(--papel);color:var(--tinta-suave);font:inherit;cursor:pointer;white-space:nowrap}
.formandos-letras button:hover,.formandos-letras button[aria-pressed=true]{border-color:var(--marca);background:var(--marca-clara);color:var(--marca)}
.formandos-letras small{font-variant-numeric:tabular-nums}
.formandos-qualidade+.formandos-letras{border-top:1px solid var(--linha);padding-top:12px}
.pessoa-separadores{position:sticky;top:0;z-index:4;background:var(--fundo,#f5f8fb);padding-top:4px}
.pessoa-separadores button{white-space:nowrap}
.grupo-ficha{margin:12px 0 0;padding:12px 0 5px;border-top:1px solid var(--linha);color:var(--marca);font-size:14px}
.grupo-ficha:first-child{margin-top:0;border-top:0;padding-top:0}
@media(max-width:700px){
  .formandos-aviso-sigo{align-items:flex-start;flex-direction:column}
  .formandos-aviso-sigo .mini{width:100%}
}
.curso-alerta{display:flex;align-items:center;justify-content:space-between;gap:16px;border-left:4px solid var(--alerta)}
.curso-alerta .sub{margin-top:3px}.curso-alerta button{flex:0 0 auto}
.curso-resumo{display:flex;align-items:center;gap:9px 18px;flex-wrap:wrap;margin:0 0 14px;padding:12px 16px;border:1px solid var(--linha);border-radius:10px;background:var(--marca-clara)}
.curso-resumo>span:not(.sub){font-weight:650}.curso-resumo .sub{flex:1 1 360px;text-align:right}
.cursos-separadores{overflow-x:auto;scrollbar-width:thin}.cursos-separadores button{white-space:nowrap}
.cursos-loja-filtros{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 18px}
.cursos-loja-filtros>.sub{margin-right:3px;font-weight:700}
.curso-letra th{padding:15px 10px 6px;color:var(--marca);background:var(--marca-clara);font-size:13px;letter-spacing:.08em;text-align:left}
.curso-nome-completo{min-width:260px;white-space:normal;overflow-wrap:anywhere}
.curso-sinais{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}
.classificacoes-metodo{margin-bottom:1rem}
.classificacoes-separadores{margin-bottom:1rem}
.classificacoes-resumo{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;padding:.8rem 1rem;margin-bottom:.75rem;border:1px solid var(--linha);border-radius:12px;background:var(--fundo)}
.classificacoes-resumo span{padding-left:.75rem;border-left:1px solid var(--linha);color:var(--tinta-suave)}
.classificacoes-controlos{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;margin:0 0 .9rem}
.classificacoes-controlos .sub{margin-left:.35rem}.classificacoes-controlos .chip[aria-pressed=true]{background:var(--marca);border-color:var(--marca);color:#fff}
.classificacoes-ano{display:flex;align-items:center;gap:.4rem;margin-left:auto;font-size:.9rem;color:var(--tinta-suave)}
.classificacoes-ano select{min-width:7rem}
.classificacao-compacta{display:inline-flex;align-items:center;gap:.45rem;white-space:nowrap}
.classificacao-compacta>span{font-size:1.05rem;letter-spacing:.04rem}
@media(max-width:700px){
  .curso-alerta{align-items:flex-start;flex-direction:column}.curso-alerta button{width:100%}
  .curso-resumo .sub{flex-basis:100%;text-align:left}.cursos-loja-filtros .chip{flex:1 1 auto}
  .classificacoes-ano{margin-left:0}.classificacoes-resumo{align-items:flex-start;flex-direction:column}.classificacoes-resumo span{padding-left:0;border-left:0}
}
.filtros-testemunhos{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.filtros-testemunhos input[type=search]{min-width:min(260px,100%);flex:1 1 260px}
.substituicao-item>summary{display:flex;justify-content:space-between;gap:14px;align-items:center;cursor:pointer;list-style:none}
.substituicao-item>summary::-webkit-details-marker{display:none}
.substituicao-item>summary::after{content:"abrir";font-size:12px;color:var(--marca);font-weight:700}
.substituicao-item[open]>summary{border-bottom:1px solid var(--linha);padding-bottom:12px;margin-bottom:12px}
.substituicao-item[open]>summary::after{content:"fechar"}
.substituicoes-intro{display:flex;align-items:center;justify-content:space-between;gap:20px}
.substituicoes-intro h2,.substituicao-cabecalho h3{margin:0}
.separadores-substituicoes{display:flex;gap:8px;overflow:auto;margin:18px 0;padding-bottom:2px}
.separadores-substituicoes button{min-height:44px;border:1px solid var(--linha);border-radius:999px;background:var(--branco);color:var(--texto);padding:9px 16px;white-space:nowrap}
.separadores-substituicoes button.ativo{background:var(--azul-escuro,#123454);color:#fff;border-color:var(--azul-escuro,#123454)}
.separadores-substituicoes button b{display:inline-flex;min-width:24px;height:24px;align-items:center;justify-content:center;margin-left:5px;border-radius:99px;background:rgba(137,194,235,.25)}
.substituicao-cartao{margin-bottom:12px;border-left:4px solid #89c2eb}
.substituicao-cabecalho{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:8px}
.substituicao-cabecalho h3{font-size:1.05rem;margin-top:3px}
.substituicao-contexto{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.45fr);gap:12px;margin:16px 0}
.substituicao-contexto section{padding:14px 16px;border:1px solid var(--linha);border-radius:12px;background:var(--branco)}
.substituicao-contexto h4,.substituicao-contexto p,.substituicao-lista-titulo{margin:0}
.substituicao-contexto h4{margin-bottom:8px;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--texto-secundario,#5b6b7c)}
.substituicao-contexto .sub{margin-top:4px}
.substituicao-lista-titulo{margin:18px 0 10px;font-size:.95rem}
.substituicao-acoes{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.tabela-responsiva{overflow-x:auto;margin-top:14px}
@media(max-width:700px){.substituicoes-intro,.substituicao-cabecalho{align-items:flex-start;flex-direction:column}.substituicao-contexto{grid-template-columns:1fr}.substituicao-acoes button{width:100%;min-height:44px}}
.mais-filtros{align-self:end}.mais-filtros>summary{cursor:pointer;list-style:none;border:1px solid var(--linha);
  border-radius:var(--raio);padding:8px 11px;color:var(--marca);font-weight:650;background:var(--papel)}
.mais-filtros>summary::-webkit-details-marker{display:none}
.mais-filtros-campos{display:flex;gap:8px;flex-wrap:wrap;position:absolute;z-index:20;background:var(--papel);
  border:1px solid var(--linha);border-radius:var(--raio);padding:12px;box-shadow:var(--sombra-suave);margin-top:5px;right:20px;left:20px}
.nota-expansivel>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer}
.nota-expansivel>summary h2{margin:0;font-size:15px}
.pagamento-detalhe{min-width:180px}.pagamento-detalhe>summary{cursor:pointer;list-style:none;color:var(--marca);
  white-space:nowrap}.pagamento-detalhe>summary::-webkit-details-marker{display:none}
.pagamento-detalhe>summary::after{content:"▾";margin-left:5px;font-size:11px}
.pagamento-detalhe[open]>summary::after{content:"▴"}
.pagamento-detalhe dl{display:grid;grid-template-columns:max-content 1fr;gap:4px 9px;margin:9px 0;
  padding:9px;background:var(--fundo);border-radius:var(--raio);font-size:12px;line-height:1.35}
.pagamento-detalhe dt{color:var(--tinta-suave)}.pagamento-detalhe dd{margin:0;overflow-wrap:anywhere}

/* Formadores: a lista acompanha o processo, da ficha ao contrato, sem repetir
   a mesma pessoa em vários cartões. */
.faixa-atencao-formadores{display:flex;align-items:center;gap:12px 18px;flex-wrap:wrap}
.faixa-atencao-formadores>.chips{margin:0;flex:1 1 520px}
.faixa-atencao-formadores .chip strong{margin-left:5px;font-variant-numeric:tabular-nums}
.faixa-atencao-formadores .chip[aria-pressed=true]{background:var(--marca);border-color:var(--marca);color:#fff}
.grupo-formadores{border-top:1px solid var(--linha)}
.grupo-formadores:last-child{border-bottom:1px solid var(--linha)}
.grupo-formadores>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:14px 4px;cursor:pointer;list-style:none;color:var(--marca)}
.grupo-formadores>summary::-webkit-details-marker{display:none}
.grupo-formadores>summary::before{content:"›";font-size:20px;line-height:1;transition:transform .15s ease}
.grupo-formadores[open]>summary::before{transform:rotate(90deg)}
.grupo-formadores>summary strong{margin-right:auto}
.grupo-formadores .tabela-responsiva{overflow-x:auto;padding-bottom:10px}
.grupo-formadores table{min-width:980px;margin-top:0}
.grupo-formadores thead{display:table-header-group}
.grupo-formadores thead th{position:static;top:auto;transform:none;box-shadow:none}
.grupo-formadores td{vertical-align:top}
.dialogo-honorarios{width:min(760px,calc(100vw - 28px))}
.formulario-honorarios{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}
.campo-honorario{display:flex;flex-direction:column;gap:5px;padding:12px;border:1px solid var(--linha);
  border-radius:10px;background:var(--fundo)}
.campo-honorario>label{font-weight:750;line-height:1.35}.campo-honorario>.sub{min-height:2.8em}
.campo-honorario-valor{display:flex;align-items:center;gap:8px;margin-top:auto}
.campo-honorario-valor input{min-width:0;flex:1}.campo-honorario-valor span{color:var(--tinta-suave);white-space:nowrap}
.menu-formador{position:relative;display:inline-block}
.menu-formador-opcoes{position:absolute;right:0;top:calc(100% + 4px);z-index:30;display:flex;
  flex-direction:column;align-items:stretch;min-width:210px;padding:6px;background:var(--papel);
  border:1px solid var(--linha);border-radius:8px;box-shadow:var(--sombra-suave)}
.menu-formador-opcoes button{width:100%;padding:8px 10px;text-align:left;white-space:normal}
@media(max-width:700px){.faixa-atencao-formadores{align-items:flex-start;flex-direction:column}
  .faixa-atencao-formadores>.chips{flex-basis:auto;width:100%}.formulario-honorarios{grid-template-columns:1fr}}
@media(max-width:760px){.novidades-blocos{grid-template-columns:1fr}.novidades-blocos .grelha{grid-template-columns:1fr 1fr}
  .substituicao-item>summary{align-items:flex-start;flex-direction:column}.mais-filtros-campos{position:static}}

/* Assiduidade: um percurso único, com o próximo passo sempre visível. */
.percurso-assiduidade{margin:0 0 18px;padding:20px;border:1px solid #cfe0ef;border-radius:14px;
  background:linear-gradient(135deg,#f7fbff,#eef6fc);box-shadow:var(--sombra-suave)}
.percurso-assiduidade-cabecalho{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}
.percurso-assiduidade-cabecalho h2{margin:2px 0 5px}.sobrelinha{text-transform:uppercase;letter-spacing:.08em;
  font-size:11px;font-weight:800;color:var(--marca)}
.passos-assiduidade{display:grid;grid-template-columns:repeat(6,minmax(135px,1fr));gap:8px;overflow:auto;padding-bottom:2px}
.passo-assiduidade{min-height:92px;display:flex;align-items:flex-start;gap:9px;text-align:left;padding:12px;
  border:1px solid var(--linha);border-radius:11px;background:var(--papel);color:var(--tinta);box-shadow:none}
.passo-assiduidade:hover{border-color:var(--marca);transform:none}.passo-assiduidade.atual{border:2px solid var(--marca);
  background:#fff;box-shadow:0 6px 18px rgba(20,70,110,.1)}
.passo-numero,.numero-etapa{display:inline-flex;align-items:center;justify-content:center;flex:none;width:25px;height:25px;
  border-radius:999px;background:var(--marca);color:#fff;font-size:12px;font-weight:800}
.passo-corpo{display:flex;min-width:0;flex-direction:column;gap:7px}.passo-corpo b{font-size:12.5px;line-height:1.25}
.passo-corpo>span{font-size:11.5px;line-height:1.25;color:var(--tinta-suave)}.passo-corpo strong{color:var(--tinta)}
.etapa-assiduidade{scroll-margin-top:18px}.etapa-assiduidade h2{display:flex;align-items:center;gap:9px}
.lista-sumarios{display:grid;gap:12px;margin-top:14px}.sumario-sessao{padding:16px;border:1px solid var(--linha);
  border-radius:11px;background:var(--fundo)}.sumario-sessao-cabecalho{display:flex;justify-content:space-between;
  align-items:flex-start;gap:14px;margin-bottom:12px}.sumario-sessao textarea{width:100%;margin-top:5px;background:var(--papel)}
.sumario-sessao p{margin:10px 0 0}
@media(max-width:900px){.passos-assiduidade{grid-template-columns:repeat(3,minmax(170px,1fr))}}
@media(max-width:600px){.percurso-assiduidade-cabecalho,.sumario-sessao-cabecalho{flex-direction:column}
  .passos-assiduidade{grid-template-columns:1fr 1fr}.percurso-assiduidade{padding:14px}}

/* Ficha da ação: o trabalho diário deixa de ficar perdido numa página única.
   Os painéis mantêm os seus formulários e ids; os separadores só reorganizam. */
.ficha-acao-separadores{position:sticky;top:0;z-index:12;overflow-x:auto;margin:18px 0;
  padding-top:4px;background:var(--fundo);scrollbar-width:thin}
.ficha-acao-separadores button{min-height:44px;white-space:nowrap;padding-inline:14px}
[data-ficha-acao-painel]{display:grid;gap:14px}
[data-ficha-acao-painel][hidden]{display:none}
.dossier-resumo{margin:16px 0 8px}
.dossier-filtros{overflow-x:auto;margin:14px 0 18px}
.dossier-filtros button{min-height:44px;white-space:nowrap}
.dossier-filtros button b,.ficha-acao-separadores button b{font-variant-numeric:tabular-nums}
.bloco-dtp[hidden],tr[data-dtp-linha][hidden]{display:none}
@media(max-width:700px){
  .ficha-acao-separadores{margin-inline:-12px;padding-inline:12px}
  .ficha-acao-separadores button{padding-inline:11px}
  .dossier-resumo{grid-template-columns:1fr 1fr}
}

/* Pedidos: a tabela conserva uma leitura curta, mas nunca esconde o texto que
   o formando escreveu. O detalhe abre na própria linha e volta a aparecer nos
   diálogos de responder/tratar, para a decisão ser tomada com o pedido à vista. */
.pedido-detalhe{margin-top:6px;max-width:520px}
.pedido-detalhe>summary{cursor:pointer;color:var(--marca);font-size:12px;font-weight:700}
.pedido-detalhe>div{margin-top:7px;padding:9px 11px;border-left:3px solid var(--acento);
  border-radius:0 7px 7px 0;background:var(--fundo);font-size:13px;line-height:1.5;
  white-space:pre-wrap;overflow-wrap:anywhere}
.pedido-texto-completo p{margin:7px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}

/* Responder ao pedido: cabeçalho, conteúdo e ações permanecem em zonas
   distintas. Assim a resposta longa pode deslocar-se sem esconder o botão que
   guarda e comunica ao formando. */
dialog.responder-pedido-dialogo{width:min(620px,calc(100vw - 32px));max-width:none;
  height:min(820px,calc(100dvh - 32px));padding:0;overflow:hidden}
.responder-pedido-dialogo[open]{display:block}
.responder-pedido-formulario{height:100%;display:flex;flex-direction:column;min-height:0}
.responder-pedido-cabecalho{flex:none;padding:22px 24px 16px;border-bottom:1px solid var(--linha);background:var(--papel)}
.responder-pedido-cabecalho h2{font-size:24px;color:var(--tinta);margin:0 0 11px}
.responder-pedido-etiquetas{display:flex;flex-wrap:wrap;gap:7px}
.responder-pedido-etiquetas span{display:inline-flex;align-items:center;min-height:28px;padding:4px 9px;
  border-radius:999px;background:var(--fundo);color:var(--tinta);font-size:13px;font-weight:600}
.responder-pedido-etiquetas .pedido-tipo{background:#e8f2fb;color:var(--marca)}
.responder-pedido-conteudo{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:20px 24px 24px}
.responder-pedido-conteudo>label{margin:0 0 18px}
.responder-pedido-conteudo label{font-size:12px;font-weight:700;color:#3b4b5c}
.responder-pedido-conteudo :is(select,textarea,input[type=number]){margin-top:7px;border:1px solid #c9d5df;
  border-radius:8px;padding:11px 14px;background:#fff;color:var(--tinta);font:inherit}
.responder-pedido-conteudo select{width:100%;max-width:none;min-width:0;white-space:normal}
.responder-pedido-escolhas{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:16px;margin-bottom:18px}
.responder-pedido-escolhas label{margin:0;min-width:0}
.responder-pedido-escolhas .sub{display:block;margin-top:7px;font-weight:400;line-height:1.45}
.responder-pedido-largura-total{display:block;width:100%}
.responder-pedido-largura-total textarea{display:block;width:100%;min-height:190px;resize:vertical;
  font-size:15px;font-weight:400;line-height:1.6}
.responder-pedido-dialogo .pedido-texto-completo{margin:0 0 20px;padding:15px 17px;
  border-left:5px solid #e8833a;border-radius:0 8px 8px 0;background:#f2f6fa}
.responder-pedido-dialogo .pedido-texto-completo strong{font-size:11px;letter-spacing:.7px;text-transform:uppercase;color:#3b4b5c}
.responder-pedido-dialogo .pedido-texto-completo p{font-size:14px;line-height:1.55;color:var(--tinta)}
.responder-pedido-pagamento-confirmado{border-left:5px solid #2f9e62;background:#e7f6ee}
.responder-pedido-documento{margin:2px 0 18px}
.responder-pedido-rotulo{margin-bottom:7px;font-size:12px;font-weight:700;color:#3b4b5c}
.responder-pedido-ficheiro{display:flex;align-items:center;justify-content:space-between;gap:14px;
  min-height:54px;padding:9px 11px 9px 14px;border:2px dashed #89c2eb;border-radius:8px;background:#f2f6fa}
.responder-pedido-ficheiro>[data-nome-ficheiro]{min-width:0;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap;font-size:14px;font-weight:500;color:var(--tinta)}
.responder-pedido-dialogo .botao-ficheiro{flex:none;margin:0;padding:9px 13px;border:1px solid var(--tinta);
  border-radius:7px;background:#fff;color:var(--tinta);font-size:13px;font-weight:700;cursor:pointer}
.responder-pedido-dialogo .botao-ficheiro input{display:none}
.responder-pedido-documento>.sub{display:block;margin-top:7px;font-size:13px;line-height:1.45;color:#3b4b5c}
.responder-pedido-dialogo .responder-pedido-mod29{display:flex;align-items:flex-start;gap:9px;margin:0 0 18px;
  padding:14px 15px;border-radius:8px;background:#f2f6fa;color:var(--tinta)}
.responder-pedido-mod29 input{flex:none;margin-top:2px}
.responder-pedido-mod29 span{display:block;min-width:0}.responder-pedido-mod29 strong{font-size:14px}
.responder-pedido-mod29 small{display:block;margin-top:5px;font-size:13px;font-weight:400;line-height:1.45;color:#3b4b5c}
.responder-pedido-rodape{flex:none;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:14px 24px;border-top:1px solid #dbe4ec;background:#f4f7fa}
.responder-pedido-rodape p{margin:0;font-size:13px;line-height:1.4;color:#3b4b5c}
.responder-pedido-rodape p.erro{color:var(--mau);font-weight:600}
.responder-pedido-rodape>div{display:flex;gap:10px;flex:none}
.responder-pedido-rodape button{min-height:42px;padding:10px 16px;border:1px solid var(--tinta);
  border-radius:8px;background:var(--tinta);color:#fff;font:inherit;font-weight:700;cursor:pointer}
.responder-pedido-rodape button.secundario{background:#fff;color:var(--tinta)}
.responder-pedido-rodape button:disabled{opacity:.55;cursor:progress}
@media(max-width:640px){
  dialog.responder-pedido-dialogo{width:calc(100vw - 20px);height:calc(100dvh - 20px)}
  .responder-pedido-cabecalho{padding:18px}.responder-pedido-cabecalho h2{font-size:21px}
  .responder-pedido-conteudo{padding:18px}.responder-pedido-escolhas{grid-template-columns:1fr}
  .responder-pedido-ficheiro{align-items:stretch;flex-direction:column}
  .responder-pedido-dialogo .botao-ficheiro{text-align:center}
  .responder-pedido-rodape{align-items:stretch;flex-direction:column;padding:12px 18px}
  .responder-pedido-rodape>div{width:100%}.responder-pedido-rodape button{flex:1}
}

/* Formação em preparação: as ideias e os convites usam a mesma linguagem
   visual do painel e mantêm o seguimento visível ao lado da ficha. */
.preparacao-topo,.cabecalho-ficha-preparacao{display:flex;align-items:center;justify-content:space-between;gap:16px}
.preparacao-separadores{display:flex;gap:4px;overflow:auto}.preparacao-separadores button{border:0;border-radius:0;
  padding:11px 14px;background:transparent;color:var(--tinta-suave);box-shadow:none;white-space:nowrap}
.preparacao-separadores button[aria-selected=true]{color:var(--marca);border-bottom:3px solid var(--marca);font-weight:800}
.preparacao-dialogo{width:min(1180px,calc(100vw - 24px));max-width:none;height:min(900px,calc(100vh - 24px));padding:0}
.preparacao-dialogo form{padding:18px}.cabecalho-ficha-preparacao{position:sticky;top:-18px;z-index:5;margin:-18px -18px 12px;
  padding:16px 18px;border-bottom:1px solid var(--linha);background:var(--papel)}
.cabecalho-ficha-preparacao h2,.cabecalho-ficha-preparacao p{margin:0}.cabecalho-ficha-preparacao>div:last-child{display:flex;gap:8px;flex-wrap:wrap}
.etapas-preparacao{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;margin:14px 0 18px}.etapas-preparacao span{padding:9px;
  border-radius:7px;background:#eef1f4;color:var(--tinta-suave);font-size:12px;text-align:center}.etapas-preparacao span.feito{background:#e6f5ec;color:#23673d}
.etapas-preparacao span.atual{background:#e6f2fb;color:var(--marca);font-weight:800;outline:2px solid var(--marca)}
.ficha-preparacao{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(260px,.8fr);gap:16px;align-items:start}
.ficha-preparacao>aside{position:sticky;top:78px}.bloco-preparacao{margin:0 0 14px;padding:16px;border:1px solid #d5e3f0;border-radius:8px;background:var(--papel)}
.bloco-preparacao h3{margin:0 0 4px}.bloco-preparacao>.sub{margin:0 0 12px}.grelha-preparacao{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.grelha-preparacao label,.convites-preparacao{display:flex;flex-direction:column;gap:5px}.grelha-preparacao textarea{min-height:82px}
.grelha-preparacao .check,.convites-preparacao .check{display:flex;flex-direction:row;align-items:center;gap:7px;font-weight:500}
.campo-vazio{color:var(--tinta-suave);font-weight:400}.linha-adicionar{display:flex;gap:7px}.linha-adicionar input{min-width:0;flex:1}
.registo-preparacao{padding:9px;border-left:3px solid var(--marca);background:var(--fundo)}.registo-preparacao span{display:block;margin-top:4px;color:var(--tinta-suave);font-size:11px}
.modulos-preparacao input{min-width:110px;width:100%}.convites-preparacao{gap:8px;margin:10px 0 14px}
.preparacao-dialogo button[disabled]{opacity:.45;cursor:not-allowed}.et-info{background:#e6f2fb;color:#145d8f}
@media(max-width:850px){.ficha-preparacao{grid-template-columns:1fr}.ficha-preparacao>aside{position:static}.grelha-preparacao{grid-template-columns:1fr}
  .cabecalho-ficha-preparacao{align-items:flex-start;flex-direction:column}.etapas-preparacao{grid-template-columns:1fr 1fr}.preparacao-topo{align-items:flex-start;flex-direction:column}}

/* Modelos: o programa é a fonte; datas e horas ficam recolhidas porque só
   pertencem à edição que vier a ser calendarizada. */
.por-definir{color:#5b6b7c;font-weight:400}
.modelos-formacao table{min-width:760px}.modelos-formacao .acoes-linha{white-space:nowrap}
.modelos-formacao{border:1px solid #dbe4ec;border-radius:8px}.modelos-formacao thead th,.modelo-sessoes thead th{background:#eaf4fb;color:#0f4c81;text-transform:uppercase;font-size:11px;font-weight:700;letter-spacing:1px;border-bottom:2px solid #0f4c81}.modelos-formacao tbody tr:nth-child(even),.modelo-sessoes tbody tr:nth-child(even){background:#f4f7fa}.modelo-indicadores{display:grid;grid-template-columns:repeat(5,minmax(110px,1fr));gap:10px;margin-bottom:16px}.modelo-indicadores>div{background:#f2f6fa;border:1px solid #dbe4ec;border-radius:8px;padding:14px}.modelo-indicadores span{display:block;color:#5b6b7c;font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase}.modelo-indicadores b{display:block;color:#0d2742;font-size:26px;margin-top:4px}.modelo-carga{background:#fff6ee;border-left:5px solid #e8833a;border-radius:4px;padding:14px 18px;margin-bottom:16px}.modelo-carga h2{margin:0 0 8px}.modelo-carga p{display:flex;justify-content:space-between;gap:18px;margin:5px 0}.modelo-carga-total{border-top:1px solid #f0d9c2;padding-top:8px;font-size:16px}.modelo-carga .aviso{display:block}.modelo-editor{border:1px solid #dbe4ec;border-radius:8px}.modelo-sessoes{min-width:1080px}.modelo-sessoes input,.modelo-sessoes select{min-width:120px}.modelo-sessoes [data-c="tema"]{min-width:280px}.modelo-sessoes [data-c="duracao_h"]{min-width:76px;width:76px}.modelo-sessoes .num{width:44px}.por-definir{color:#5b6b7c}
.resumo-programa{margin:12px 0 16px;padding:13px 15px;border-left:5px solid #899c2e;
  border-radius:4px;background:#eaf4fb;color:#3b4b5c;line-height:1.55}
.programa-em-vigor h2{margin-bottom:10px}.programa-em-vigor table{margin:14px 0}
.planeamento-sessao{margin-top:8px;font-size:12px}.planeamento-sessao>summary{cursor:pointer;color:#0f4c81;font-weight:700}
.planeamento-sessao[open]{padding:8px;border:1px solid #dbe4ec;border-radius:7px;background:#f4f7fa}
.planeamento-sessao label{display:inline-flex;align-items:center;gap:5px;margin:6px 8px 0 0;font-weight:600}
.editavel td{vertical-align:top}.editavel td>input,.editavel td>select{min-width:120px;max-width:230px}
@media(max-width:800px){.modelos-formacao,.programa-em-vigor{overflow-x:auto}.editavel{min-width:1000px}.modelo-indicadores{grid-template-columns:repeat(2,minmax(110px,1fr))}}

/* Percurso e prova do checkout: uma linha leve; o detalhe só abre quando é preciso. */
.percurso-formativo{border:1px solid #dbe4ec;border-radius:10px;font-family:Calibri,Arial,sans-serif}
.percurso-formativo h2{font-size:19px;font-weight:700}
.percurso-formativo>.tabela-responsiva>table{margin:0;min-width:940px}
.percurso-formativo>.tabela-responsiva>table>thead th{padding:10px 12px;background:#eef3f8;border-bottom:2px solid #89c2eb;color:#0f4c81;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.percurso-formativo>.tabela-responsiva>table>tbody>.percurso-linha>td{padding:14px 12px;border-bottom:1px solid #e1e8ef;font-size:14px}
.percurso-linha td:nth-child(2){font-size:14px}.percurso-linha td:nth-child(2) .sub{color:#5b6b7c;font-size:12px}
.percurso-aceitacoes-col{text-align:right;white-space:nowrap}
.aceitacoes-toggle{appearance:none;padding:4px 0;border:0;background:transparent;color:#0f4c81;font:inherit;font-weight:700;cursor:pointer}
.aceitacoes-toggle span{display:inline-block;margin-left:5px}.percurso-sem-registo-col{color:#718092;font-weight:400}
.percurso-pagamento{display:inline-block;padding:3px 9px;border:1px solid #dbe4ec;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}
.percurso-pagamento.pago{border-color:#bfe3cf;background:#e7f6ee;color:#1d6f45}
.percurso-pagamento.por-pagar{border-color:#f3d3b4;background:#fff6ee;color:#b45f1c}
.percurso-pagamento.sem-pagamento{background:#eef3f8;color:#5b6b7c}
.linha-aceitacoes>td{padding:0 12px 14px!important;background:#fff;border-top:0!important}
.linha-aceitacoes[hidden]{display:none}
.linha-aceitacoes.sem-registo>td{padding-top:0!important}
.percurso-sem-registo{margin:0;padding:0 0 8px 108px;color:#718092;font-size:12.5px}
.aceitacoes{margin:0;padding:14px 16px 12px;border:0;border-left:5px solid #89c2eb;border-radius:4px;background:#f2f6fa}
.aceitacoes table{margin:0}.aceitacoes thead th{padding:7px 9px;background:transparent;color:#0f4c81;font-size:11px;letter-spacing:.05em;text-transform:uppercase}
.aceitacoes tbody td{padding:9px;border-top:1px solid #e1e8ef;color:#0b1a2e;font-size:14px}
.aceitacoes a{color:#1a6fa8;text-decoration:underline}
.aceitacoes-rodape{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:10px}
.aceitacoes-rodape p{margin:0;color:#526b85;font-size:13px}.aceitacoes-acoes{display:flex;justify-content:flex-end;gap:8px}
.aceitacoes-acoes .mini{border:2px solid #89c2eb;background:#fff;color:#0d2742;font-weight:700}
.percurso-transferir{white-space:nowrap;border:2px solid #89c2eb;background:#fff;color:#0d2742;font-weight:700}
.transferencia-previa{max-height:310px;overflow:auto;margin:14px 0;border:1px solid #c9d8e6;border-radius:8px}
.transferencia-previa table{margin:0;min-width:560px}.transferencia-previa th{position:sticky;top:0;background:#f2f6fa;color:#0f4c81;font-size:11px;text-transform:uppercase}
.transferencia-previa td,.transferencia-previa th{padding:9px 10px;border-bottom:1px solid #dbe4ec}
.transferencia-previa .data-antiga{color:#718092;text-decoration:line-through}.transferencia-previa .data-nova{color:#0d2742;font-weight:800}
.transferencia-efeitos{margin:14px 0;padding:14px 16px;border:1px solid #f3d3b4;border-radius:8px;background:#fff6ee}
.transferencia-efeitos ul{margin:8px 0 0;padding-left:20px}.aviso-transferencia{padding:10px 12px;border-left:5px solid #e8833a;background:#fff6ee}
.contrato-leitura{width:min(820px,calc(100vw - 32px))}.contrato-leitura .dialogo-topo{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.contrato-leitura h2{margin:0}.contrato-leitura pre{max-height:65vh;overflow:auto;padding:18px;border:1px solid #dbe4ec;border-radius:8px;background:#f8fafc;color:#0b1a2e;font:14px/1.55 Calibri,Arial,sans-serif;white-space:pre-wrap}
@media(max-width:720px){.aceitacoes-rodape{align-items:stretch;flex-direction:column}.aceitacoes-acoes{justify-content:stretch;flex-direction:column}.aceitacoes-acoes button{width:100%}.percurso-sem-registo{padding-left:12px}}
/* Participantes de webinars com percursos */
.percurso-resumo{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}
.percurso-cartao{min-width:190px;padding:12px 16px;border:1px solid #dbe4ec;border-radius:8px;background:#f2f6fa;display:flex;align-items:end;justify-content:space-between}
.percurso-cartao span{font-size:11px;font-weight:700;text-transform:uppercase;color:#0f4c81}
.percurso-cartao b{font-size:26px;color:#0d2742}
.percurso-cor-1{background:#fff1e0}.percurso-cor-1 span{color:#7a3d00}
.percurso-ferramentas{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:12px 0}
.percurso-ferramentas .filtros{margin:0}.percurso-ferramentas .mini.escolhido{background:#0d2742;color:#fff;border-color:#0d2742}
.percurso-pesquisa{margin:0;min-width:260px}.percurso-pesquisa input{width:100%}
.percurso-selecao{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#e8f2fb;border-radius:8px;padding:10px 14px;margin:12px 0}
.percurso-etiqueta{background:#e8f2fb;color:#0f4c81;font-size:13px;font-weight:700}.percurso-mudar{display:block;margin-top:4px}
@media(max-width:720px){.percurso-cartao,.percurso-pesquisa{min-width:100%}.percurso-selecao{align-items:stretch;flex-direction:column}.percurso-selecao .acao{width:100%}}

/* Honorários manuais: a mesma ficha abre no mapa geral e na ficha do formador. */
.dialogo-honorario-manual{width:min(520px,calc(100vw - 32px));max-width:520px;border:1px solid #c3d0dc;border-radius:12px}
.dialogo-honorario-manual form{display:flex;flex-direction:column;gap:7px}
.dialogo-honorario-manual label{margin-top:5px;font-size:13px;font-weight:700}
.dialogo-honorario-manual input,.dialogo-honorario-manual select{min-height:44px;border:1px solid #b9c7d4;border-radius:8px}
.dialogo-honorario-manual textarea{border:1px solid #b9c7d4;border-radius:8px}
.dialogo-honorario-manual .ajuda-campo{display:block;margin-top:4px;font-size:12px;line-height:1.35}
.honorario-acao-escolha{position:relative}.honorario-acao-escolha>input[type="search"]{width:100%;padding-right:38px;background:#fff}
.honorario-acao-escolha>input[type="search"]:focus{border:2px solid #89c2eb;outline:0}
.honorario-acoes-lista{overflow:hidden;margin-top:-1px;border:1px solid #b9c7d4;border-radius:0 0 8px 8px;background:#fff}
.honorario-acoes-filtros{display:flex;gap:6px;padding:8px;background:#f2f6fa}
.honorario-acoes-filtros button{min-height:32px;padding:5px 9px;border:1px solid #b9c7d4;border-radius:999px;background:#fff;color:#3b4b5c;font-size:12px;font-weight:700}
.honorario-acoes-filtros button[aria-pressed="true"]{border-color:#0d2742;background:#0d2742;color:#fff}
.honorario-acoes-resultados{max-height:270px;overflow:auto}.honorario-acoes-resultados section h3{margin:0;padding:8px 12px 5px;color:#3b4b5c;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase}
.honorario-acao-linha{display:flex;width:100%;min-height:52px;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;border:0;border-bottom:1px solid #e1e8ef;background:#fff;color:#0d2742;text-align:left}
.honorario-acao-linha:hover,.honorario-acao-linha:focus{background:#e4f1fa;outline:0}.honorario-acao-linha.selecionada{box-shadow:inset 4px 0 #0f4c81;background:#eaf4fb}
.honorario-acao-linha strong,.honorario-acao-linha small{display:block}.honorario-acao-linha strong{font-size:13.5px}.honorario-acao-linha small{margin-top:3px;color:#5b6b7c;font-size:12px}.honorario-acao-linha .etiqueta{flex:none}
.honorario-acao-linha.sem-acao span{color:#5b6b7c;font-size:12px}.honorario-acoes-alargar{width:100%;padding:9px 12px;border:0;background:#f9fbfd;color:#0f4c81;font-size:12px;font-weight:700;text-align:left}
.honorario-total{display:grid;min-height:68px;grid-template-columns:1fr auto;align-items:center;padding:8px 12px;border:1px solid #dbe4ec;border-radius:8px;background:#f2f6fa}
.honorario-total span{color:#5b6b7c;font-size:12px;font-weight:700;text-transform:uppercase}.honorario-total output{color:#0d2742;font-size:20px;font-weight:800}.honorario-total small{grid-column:1/-1;color:#5b6b7c;font-size:12px}
.etiqueta-manual{border:1px solid #f3d3b4;background:#fff6ee;color:#b45f1c}.etiqueta-automatica{background:#eef3f8;color:#3b4b5c}.painel-titulo-acoes{display:flex;align-items:center;justify-content:space-between;gap:16px}.painel-titulo-acoes h2{margin:0}
@media(max-width:650px){.painel-titulo-acoes{align-items:stretch;flex-direction:column}.painel-titulo-acoes .acao{width:100%}}
