/* Portal do aluno: resumo no topo e atalhos */
.portal-page{padding:0;background:radial-gradient(circle at 14% 0%,#e8f2ff 0,transparent 28rem),#f5f7fa}
.portal-page #portal-dashboard{display:block;width:calc(100% - 28px);max-width:1080px;margin:24px auto 48px;padding:clamp(18px,3vw,36px);border-radius:24px;box-shadow:0 22px 65px #07152612}
.portal-page .portal-header{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #e5ebf3;padding-bottom:16px}
.portal-page .portal-header .brand{margin:0;min-width:0}
.portal-header-label{color:#47617e;font-size:11px;font-weight:800;letter-spacing:.12em;white-space:nowrap}
.portal-welcome{padding:clamp(22px,4vw,38px);margin:20px 0 0;border-radius:20px;background:radial-gradient(circle at 90% 20%,#235293 0,transparent 30%),linear-gradient(120deg,#071526,#10294a);color:#fff}
.portal-page .portal-welcome small{display:block;color:#a8c9f4;letter-spacing:.13em;font-size:11px}
.portal-page .portal-welcome h1{color:#fff;font-size:clamp(25px,4vw,38px);line-height:1.15;margin:10px 0 4px;overflow-wrap:anywhere}
.portal-page .portal-welcome .muted{color:#c4d8f2;font-size:14px;margin:0}
.portal-welcome-copy{color:#edf5ff;margin:20px 0 0;line-height:1.5}
.portal-jump-shell{position:sticky;top:0;z-index:5;margin:20px 0 18px}
.portal-jump{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:10px;background:#fff;border:1px solid #e2e9f2;border-radius:15px;box-shadow:0 8px 24px #0715260d}
.portal-jump-hint{display:none}
.portal-jump a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:9px 16px;border-radius:10px;color:#315376;font-weight:700;text-decoration:none;font-size:14px;white-space:nowrap}
.portal-jump a:hover{background:#f0f6ff;color:#0c58bf}
.portal-jump a[aria-current="location"]{background:#1874e8;color:#fff;box-shadow:0 4px 12px #1874e833}
.portal-jump a:focus-visible{outline:3px solid #1d4ed8;outline-offset:2px}
.portal-page .portal-block{scroll-margin-top:90px;min-width:0;margin:16px 0 0;padding:clamp(18px,2.8vw,28px);border:1px solid #e2e9f2;border-radius:18px;background:#fff;box-shadow:0 4px 20px #07152608;overflow-wrap:anywhere}
.portal-section-heading{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:16px}
.portal-section-heading small{color:#2675d6;font-size:11px;letter-spacing:.1em;font-weight:800}
.portal-page .portal-section-heading h2{color:#0b1c35;font-size:clamp(18px,2.4vw,23px);font-weight:750;margin:5px 0 0}
.portal-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px;margin:0}
.portal-summary-card{display:grid;gap:7px;align-content:start;min-width:0;padding:18px;border-radius:14px;border:1px solid #dbe4f0;background:#f8fbff;border-top:3px solid #94a3b8}
.portal-summary-card.good{border-top-color:#16a34a}.portal-summary-card.warn{border-top-color:#d97706}.portal-summary-card.bad{border-top-color:#dc2626}
.portal-summary-label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#546981}
.portal-summary-card strong{font-size:17px;color:#0f172a}
.portal-summary-card p{margin:0;font-size:14px;color:#334155;line-height:1.5}
.portal-summary-link{font-weight:700;color:#125cca;min-height:44px;display:inline-flex;align-items:center}
.portal-page .portal-training-section{margin:16px 0 0}
.portal-page .portal-training{margin:0;border-color:#dce7f6;background:#f8fbff}
.portal-page .training-exercise{border-color:#e0e9f4;box-shadow:0 2px 9px #07152608}
.portal-page .training-exercise h4{color:#0b1c35}
.portal-page .portal-block button{min-height:44px}
.portal-page #portal-finance,.portal-page #portal-contracts,.portal-page #portal-training{min-width:0;overflow-wrap:anywhere}
.portal-page .portal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:20px 2px 0}
.portal-page .portal-footer .muted{margin:0}
.portal-page .portal-footer>div{display:flex;flex-wrap:wrap;gap:8px}
.portal-page #portal-dashboard #portal-logout{margin-left:0}
.portal-page .portal-footer [role=alert]{flex-basis:100%;margin:0}
@media(max-width:600px){
 .portal-page #portal-dashboard{width:calc(100% - 20px);margin:10px auto 28px;padding:14px;border-radius:18px}
 .portal-page .portal-header{padding:2px 2px 12px}
 .portal-page .portal-header .brand{gap:8px}
 .portal-page .portal-header .brand .brand-mark{width:32px;height:32px}
 .portal-page .portal-header .brand strong{font-size:15px}
 .portal-page .portal-header .brand span{font-size:10px}
 .portal-header-label{font-size:9px}
 .portal-welcome{margin-top:14px;border-radius:16px;padding:22px}
 .portal-jump-shell{margin:12px 0 14px;padding-bottom:2px;background:#f5f7fa}
 .portal-jump{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;gap:4px;padding:6px;border-radius:12px}
 .portal-jump a{flex:0 0 auto;padding:9px 13px;font-size:13px}
 .portal-jump-hint{display:flex;justify-content:flex-end;gap:5px;margin:0;padding:0 8px 3px;color:#47617e;font-size:12px;font-weight:650;line-height:1.4}
 .portal-page .portal-block{padding:18px 16px;border-radius:15px}
 .portal-page .portal-footer{align-items:stretch}
 .portal-page .portal-footer>div{width:100%}
 .portal-page .portal-footer button{flex:1 1 120px}
}
