.portal { padding: 9rem 0 5rem; min-height: 70vh; }
.portal h1 { font-size: clamp(2.5rem, 6vw, 4.5rem); }
.portal-card { max-width: 460px; margin: 0 auto; padding: 2.5rem; background: var(--jr-smoke); border: 1px solid var(--jr-line); }
.portal-field { margin-bottom: 1.2rem; }
.portal-field label { display: block; margin-bottom: .4rem; font-family: var(--jr-font-impact); font-size: .8rem; letter-spacing: .15em; text-transform: uppercase; color: var(--jr-text-dim); }
.portal-field input[type="email"], .portal-field input[type="password"] {
  width: 100%; padding: .9rem 1rem; background: var(--jr-bg); color: var(--jr-text);
  border: 1px solid var(--jr-line); font: inherit;
}
.portal-field input:focus { outline: none; border-color: var(--jr-red); }
.portal-check { display: flex; align-items: center; gap: .5rem; margin-bottom: 1.5rem; color: var(--jr-text-dim); font-size: .9rem; }
.portal-error { display: block; margin-top: .3rem; color: var(--jr-red-glow); font-size: .85rem; }
.portal-alert { padding: .9rem 1rem; margin-bottom: 1.5rem; border-left: 3px solid var(--jr-red); background: rgba(206, 17, 38, .12); color: #fff; }
.portal-card .btn { width: 100%; justify-content: center; }
.portal-success { padding: .9rem 1rem; margin-bottom: 1.5rem; border-left: 3px solid #2dbe6c; background: rgba(45, 190, 108, .12); color: #fff; }
.portal-help { margin-top: .5rem; color: var(--jr-text-dim); font-size: .85rem; }
.portal-help ul { margin: .25rem 0 .25rem 1.1rem; padding: 0; }
.portal-links { margin-top: 1.25rem; text-align: center; font-size: .9rem; }
.portal-links a { color: var(--jr-text-dim); text-decoration: underline; }
.portal-links a:hover { color: #fff; }
.portal-table { width: 100%; border-collapse: collapse; }
.portal-table th, .portal-table td { padding: 1rem .75rem; border-bottom: 1px solid var(--jr-line); text-align: left; vertical-align: middle; }
.portal-table th { font-family: var(--jr-font-impact); font-size: .75rem; letter-spacing: .15em; text-transform: uppercase; color: var(--jr-text-muted); }
.portal-table td { color: var(--jr-text-dim); }
.portal-table tr.past td { opacity: .6; }
.portal-table .btn { padding: .6rem 1.1rem; font-size: .8rem; }
.portal-badge { display: inline-block; padding: .2rem .6rem; border: 1px solid var(--jr-line); font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; }
.portal-empty { padding: 3rem; text-align: center; border: 1px dashed var(--jr-line); color: var(--jr-text-dim); }
.nav-cta form { margin: 0; }
.nav-cta .btn-link { background: none; border: 0; padding: 0; color: var(--jr-text-dim); font-family: var(--jr-font-impact); font-size: .8rem; letter-spacing: .15em; text-transform: uppercase; }
.nav-cta .btn-link:hover, .nav-cta .nav-account:hover { color: #fff; }
.nav-cta .nav-account { color: var(--jr-text-dim); font-family: var(--jr-font-impact); font-size: .8rem; letter-spacing: .15em; text-transform: uppercase; }
