/* Início (/inicio). Banner, vídeos e ajuda humana vêm do portal.css; aqui ficam atalhos, datas, avisos e Aula Inaugural.
   Mesma identidade da Trilha e da Central: azul-marinho, azul, amarelo "estrela", Poppins nos títulos, Atkinson no texto. */
.painel{--p-navy:var(--portal-navy); --p-navy-2:var(--portal-navy-2); --p-blue:var(--portal-blue); --p-bright:var(--portal-bright); --p-blue-soft:var(--portal-blue-soft);
  --p-star:var(--portal-yellow); --p-star-2:#f59a00; --p-on-star:#2b1d00;
  --p-fg:var(--portal-text); --p-muted:var(--portal-muted); --p-line:var(--portal-border); --p-bg:var(--portal-surface); --p-bg-2:var(--portal-surface-2);
  --p-warn-bg:#fff5d6; --p-warn-fg:#5a4100; --p-warn-line:#f2d27a;
  --p-display:var(--portal-display); --p-body:var(--portal-body); --p-shadow:var(--portal-shadow);
  color:var(--p-fg); font:400 17px/1.55 var(--p-body); display:flex; flex-direction:column; gap:20px}
.painel *{box-sizing:border-box}
.painel button{font:inherit;color:inherit;cursor:pointer}
.painel :focus-visible{outline:3px solid var(--p-blue);outline-offset:3px}
.painel .portal-hero :focus-visible{outline-color:var(--p-star)}
.painel svg.lucide{width:20px;height:20px;flex:none}
.painel .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.p-alert{margin:0;padding:12px 16px;border-radius:14px;background:#fce8e6;border:1px solid #f3b8b2;color:#8c1d16;font-size:.95rem}
.p-alert--info{background:var(--p-blue-soft);border-color:#b9cff0;color:var(--p-navy-2)}
.p-alert .p-link{margin-left:8px}
.p-muted{margin:0;color:var(--p-muted)}
.p-link{display:inline-flex;align-items:center;gap:4px;border:0;background:none;padding:4px 0;color:var(--p-blue)!important;font:700 15px/1.2 var(--p-body);text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.painel .p-link svg.lucide{width:16px;height:16px}
@media (min-width:900px){.painel{gap:26px}}

/* Atalhos: compactos, ícone + texto + seta. 1 coluna no celular, 2 no tablet, 4 no desktop. */
.p-quick{display:grid;grid-template-columns:1fr;gap:10px}
@media (min-width:640px){.p-quick{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}}
@media (min-width:1100px){.p-quick{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}}
.p-tile{display:flex;align-items:center;gap:14px;min-width:0;padding:14px 16px;border-radius:var(--portal-radius);border:1px solid var(--p-line);background:var(--p-bg);box-shadow:var(--p-shadow);color:var(--p-fg)!important;text-decoration:none;transition:transform .15s,border-color .15s}
.p-tile:hover{transform:translateY(-2px);border-color:var(--p-blue)}
.p-tile-t{flex:1;min-width:0;display:flex;flex-direction:column}
.p-tile-t strong{font:600 1.04rem/1.3 var(--p-display)}
.p-tile-d{color:var(--p-muted);font-size:.9rem;line-height:1.4}
.p-ext{margin-top:2px;color:var(--p-blue);font:700 12px/1.3 var(--p-body);letter-spacing:.02em}
.painel .p-tile-go{color:var(--p-blue);width:18px;height:18px}
.p-ico{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:var(--p-blue-soft);color:var(--p-blue);flex:none}
.p-ico--star{background:var(--p-star);color:var(--p-on-star)}

/* Cartões */
.p-two{display:grid;gap:20px}
@media (min-width:900px){.p-two{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:26px;align-items:start}}
.p-card{background:var(--p-bg);border:1px solid var(--p-line);border-radius:22px;padding:20px 18px;box-shadow:var(--p-shadow);min-width:0}
@media (min-width:900px){.p-card{padding:24px 26px}}
.p-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px 16px;flex-wrap:wrap;margin-bottom:14px}
.p-h2{margin:0;font:600 clamp(1.15rem,2.2vw,1.3rem)/1.25 var(--p-display)}
.p-hint{margin:2px 0 0;color:var(--p-muted);font-size:.92rem}
.p-squiggle{display:block;width:90px;height:10px;margin-top:6px;background:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 110 10'%3E%3Cpath d='M3 6Q13 0 23 6T43 6T63 6T83 6T103 6' fill='none' stroke='%23f5a800' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E")}
.p-pill{display:inline-flex;align-items:center;vertical-align:2px;margin-left:4px;padding:3px 9px;border-radius:999px;font:700 12px/1.2 var(--p-body);background:var(--p-blue-soft);color:var(--p-blue);white-space:nowrap}
.p-pill--warn{background:var(--p-star);color:var(--p-on-star)}

/* Próximas datas */
.p-dates{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.p-date-item{display:flex;align-items:center;gap:14px;padding:12px 14px;border:1px solid var(--p-line);border-radius:14px;background:var(--p-bg)}
.p-date{flex:none;width:56px;text-align:center;border-radius:12px;background:var(--p-bg-2);border:1px solid var(--p-line);padding:6px 0;line-height:1}
.p-date b{display:block;font:700 1.25rem/1 var(--p-display);color:var(--p-navy)}
.p-date small{display:block;margin-top:3px;font:700 11px/1 var(--p-body);letter-spacing:.1em;color:var(--p-muted)}
.p-date-t{flex:1;min-width:0}
.p-date-t > strong{display:block;font:600 .98rem/1.35 var(--p-display);overflow-wrap:anywhere}
.p-date-t > span{display:block;color:var(--p-muted);font-size:.9rem;line-height:1.4}
.p-date-item.is-hot{border-color:var(--p-warn-line);background:var(--p-warn-bg)}
.p-date-item.is-hot .p-date{background:var(--p-star);border-color:var(--p-star)}
.p-date-item.is-hot .p-date b,.p-date-item.is-hot .p-date small{color:var(--p-on-star)}
.p-date-btn{flex:none;display:inline-flex;align-items:center;gap:4px;min-height:40px;padding:0 14px;border-radius:999px;background:var(--p-blue-soft);color:var(--p-navy-2)!important;font:700 14px/1.2 var(--p-body);text-decoration:none;white-space:nowrap}
.p-date-btn:hover{background:#d2e2fa}
.painel .p-date-btn svg.lucide{width:16px;height:16px}
@media (max-width:600px){.p-date-item{flex-wrap:wrap;row-gap:8px}.p-date-t{flex-basis:calc(100% - 70px)}.p-date-btn{margin-left:70px}}
.p-note{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 0 0;color:var(--p-muted);font-size:.92rem}

/* Avisos */
.p-news{list-style:none;margin:0;padding:0}
.p-news li + li{border-top:1px solid var(--p-line)}
.p-news-item{display:flex;gap:12px;width:100%;text-align:left;border:0;background:none;padding:12px 4px;border-radius:10px}
.p-news li:first-child .p-news-item{padding-top:2px}
.p-news-item:hover strong{color:var(--p-blue)}
.p-news-dot{flex:none;width:10px;height:10px;border-radius:50%;margin-top:8px;background:var(--p-line)}
.p-news-item.is-unread .p-news-dot{background:var(--p-star-2)}
.p-news-item strong{display:block;font:600 .98rem/1.35 var(--p-display)}
.p-news-item span span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--p-muted);font-size:.9rem}

/* Área secundária: Aula Inaugural + certificado e ajuda humana */
.p-more{display:grid;gap:20px}
@media (min-width:900px){.p-more{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:26px;align-items:stretch}}
.p-aula{display:flex;gap:16px;align-items:flex-start;border-color:var(--p-warn-line);background:linear-gradient(180deg,var(--p-warn-bg),#fff 75%)}
.p-aula-t{flex:1;min-width:0}
.p-aula .p-alert{margin-top:10px}
.p-tile-acts{margin-top:8px;display:flex;flex-wrap:wrap;gap:4px 20px}
.p-go{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0;border:0;background:none;color:var(--p-blue)!important;font:700 15px/1.2 var(--p-body);cursor:pointer}
.p-go:hover{text-decoration:underline;text-underline-offset:3px}
.p-go:disabled{cursor:wait;opacity:.7}
.painel .p-go svg.lucide{width:16px;height:16px}
/* Spinner do certificado (reaproveita .btn-spinner do styles.css) */
#dashboard-page #btn-gerar-certificado .btn-spinner,
#dashboard-page #btn-gerar-certificado:hover .btn-spinner{border-color:rgba(10,79,166,.25);border-top-color:var(--p-blue)}
#dashboard-page #btn-gerar-certificado.is-loading .btn-spinner{display:inline-block}
#dashboard-page #btn-gerar-certificado.is-loading .p-go-ico{display:none}

/* Entrada da tela */
#dashboard-page.is-entering .dash-anim{animation:bento-pop 620ms cubic-bezier(.34,1.4,.64,1) backwards}
#dashboard-page.is-entering.from-auth .dash-anim{animation-name:bento-collide}
#dashboard-page.is-entering .p-quick .dash-anim:nth-child(2){animation-delay:60ms}
#dashboard-page.is-entering .p-quick .dash-anim:nth-child(3){animation-delay:120ms}
#dashboard-page.is-entering .p-quick .dash-anim:nth-child(4){animation-delay:180ms}
#dashboard-page.is-entering .p-two .dash-anim{animation-delay:220ms}
#dashboard-page.is-entering .p-more .dash-anim{animation-delay:280ms}
@media (prefers-reduced-motion:reduce){.painel *,#dashboard-page.is-entering .dash-anim{animation:none!important;transition:none!important}}

/* Aula Inaugural logo abaixo do banner: faixa amarela suave, ação principal + certificado */
.p-aula-strip{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;padding:16px 20px;border-radius:var(--portal-radius);border:1px solid var(--p-warn-line);background:linear-gradient(90deg,var(--p-warn-bg),#fffaf0);box-shadow:var(--p-shadow)}
.p-aula-strip .p-aula-t{flex:1 1 260px;min-width:0}
.p-aula-strip h2{margin:0;font:700 clamp(1.1rem,2.2vw,1.3rem)/1.25 var(--p-display);color:var(--p-navy)}
.p-aula-strip p{margin:2px 0 0;color:var(--p-muted);font-size:.98rem}
.p-aula-acts{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px}
.p-aula-acts .portal-btn{min-height:48px}
.p-aula-strip .p-alert{flex-basis:100%}
@media (max-width:560px){.p-aula-acts{flex-basis:100%}.p-aula-acts .portal-btn{flex:1 1 100%}}

/* Card "Aula Inaugural · certificado de 4 horas" com foco no certificado (modelo de 20/10/2026):
   painel azul com a medalha à esquerda; título do módulo atual, o que falta, barra e números; botão à direita.
   Estados: padrão (começar / em andamento), is-ok (liberado), is-done (emitido). */
.ai-card{display:grid;grid-template-columns:minmax(220px,25%) minmax(0,1fr) auto;align-items:stretch;padding:0;border-radius:24px;border:0;background:#fff;box-shadow:0 18px 40px -22px rgba(10,42,94,.35),0 2px 6px rgba(10,42,94,.06);overflow:hidden}
.ai-selo{position:relative;display:flex;align-items:center;justify-content:center;gap:18px;padding:22px 20px;background:radial-gradient(circle at 85% 110%,rgba(255,255,255,.12) 0 34%,transparent 35%),linear-gradient(135deg,#0a4fc0,#0c5fd6);color:#fff;overflow:hidden}
.ai-medalha{width:96px;height:auto;flex:none;filter:drop-shadow(0 6px 10px rgba(0,0,40,.25))}
.ai-selo-t{padding-left:18px;border-left:2px solid rgba(255,255,255,.45);font:700 1.15rem/1.45 var(--p-display);letter-spacing:-.01em}
.ai-selo-t b{color:#ffd23f;font-weight:800}
.ai-txt{min-width:0;padding:22px 26px 22px 30px}
.ai-k{display:block;font:800 12px/1.3 var(--p-display);letter-spacing:.12em;text-transform:uppercase;color:#8a5a00}
.ai-card h2{margin:6px 0 0;font:800 clamp(1.25rem,2.6vw,1.75rem)/1.2 var(--p-display);color:#0a2a5e;overflow-wrap:anywhere}
.ai-txt > p{margin:6px 0 0;color:var(--p-muted);font-size:1rem}
.ai-prog{margin-top:16px;max-width:560px}
.ai-bar{display:block;height:14px;border-radius:99px;background:#ece6d6;overflow:hidden}
.ai-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#ffd84a,#ffa51f);transition:width .6s ease}
.ai-stats{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin-top:10px;font-size:1rem;color:var(--p-muted)}
.ai-stats b{color:#0a2a5e;font:700 1.05rem/1.2 var(--p-display)}
.ai-sep{width:1px;height:22px;background:#d6dbe5}
.ai-acts{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:12px;padding:22px 26px 22px 0}
.ai-acts .portal-btn{min-height:56px;padding:0 28px;border-radius:99px;font-size:1.05rem}
.ai-acts .portal-btn--primary{background:#0a56c8;border-color:#0a56c8;color:#fff!important;box-shadow:0 10px 22px -12px rgba(10,86,200,.8)}
.ai-acts .portal-btn--primary:hover{background:#0847a6;border-color:#0847a6}
.ai-acts .portal-btn--primary svg{color:#fff}
.ai-card .portal-link{font-size:15px}
.ai-card .p-alert{grid-column:1/-1;margin:0 22px 18px}
.ai-card.is-ok .ai-k{color:#16794a}
.ai-card.is-ok .ai-bar i,.ai-card.is-done .ai-bar i{background:linear-gradient(90deg,#ffd84a,#ffa51f)}
.ai-card.is-done .ai-k{color:var(--p-blue)}
@media (max-width:1020px){.ai-card{grid-template-columns:minmax(0,1fr) auto}.ai-selo{grid-column:1/-1;justify-content:flex-start;padding:16px 22px}.ai-medalha{width:64px}.ai-selo-t{font-size:1rem}.ai-txt{padding:18px 22px}}
@media (max-width:760px){.ai-card{grid-template-columns:minmax(0,1fr)}.ai-txt{padding:16px 18px 4px}.ai-acts{padding:12px 18px 18px;align-items:stretch}.ai-acts .portal-btn{justify-content:center}.ai-acts .portal-link{align-self:center}.ai-sep{height:16px}}
