.portal .nav .wrap { flex-wrap: wrap; gap: .65rem; }
.portal .nav .brand { margin-right: auto; }
.portal .nav form { margin: 0; }
.portal-nav-button { border: 0; background: none; color: var(--navy); cursor: pointer; padding: .7rem; font: inherit; }
.portal .skip-link { position: absolute; left: -10000px; top: 0; }
.portal .skip-link:focus { left: 1rem; z-index: 100; background: white; padding: 1rem; }
.portal-hero-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: 4rem; align-items: center; }
.portal-hero h1 { max-width: 850px; }
.portal-process { border-top: 5px solid var(--teal); }
.portal-process ol { padding-left: 1.3rem; }
.portal-process li { padding: .85rem 0 .85rem .35rem; }
.portal-process li::marker { color: var(--blue); font-weight: 700; }
.portal-process span { display: block; margin-top: .4rem; font-size: .9rem; }
.portal-section-heading { display: flex; gap: 1rem; justify-content: space-between; align-items: end; margin: 2.6rem 0 1.3rem; }
.portal-section-heading h1, .portal-section-heading h2 { margin: .35rem 0; }
.portal-section { margin: 2rem 0; }
.portal-entry { padding: 2rem; }
.portal-number { font: 600 .75rem var(--mono); color: var(--blue); letter-spacing: .09em; }
.persona-card { display: flex; flex-direction: column; align-items: flex-start; padding: 1.7rem; }
.persona-card h2, .persona-card h3 { margin-top: 1rem; }
.persona-card p { flex: 1; }
.persona-initial { display: grid; place-items: center; height: 56px; width: 56px; border-radius: 18px; background: var(--ice); color: var(--navy); font: 500 1.7rem var(--display); margin-bottom: 1rem; }
.portal-auth-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: start; padding: 2rem 0; }
.portal-form { display: flex; flex-direction: column; gap: .65rem; }
.portal-form > label:not(.portal-check) { margin: .55rem 0 0; }
.portal-form input, .portal-form select, .portal-form textarea { max-width: 100%; width: 100%; }
.portal-form input[type=email] { font: inherit; border: 1px solid var(--control); padding: .6rem .9rem; border-radius: 14px; min-height: 44px; }
.portal-form .btn { align-self: flex-start; margin-top: .7rem; }
.portal-form .portal-check { display: flex; gap: .7rem; align-items: flex-start; font-size: .87rem; line-height: 1.65; margin: .75rem 0; }
.portal-form .portal-check input { width: 18px; height: 18px; flex: 0 0 18px; margin-top: .3rem; accent-color: var(--blue); }
.portal-inline { flex-direction: row; align-items: end; flex-wrap: wrap; gap: 1rem; }
.portal-inline > div { flex: 1; min-width: 220px; }
.portal-inline .btn { align-self: flex-end; }
.calibration-scenario { margin: 2rem 0; min-width: 0; padding-top: 1rem; }
.calibration-scenario legend { color: var(--navy); padding: 0 .5rem; font: 600 1.15rem var(--display); max-width: 100%; }
.calibration-scenario .grid { margin-top: .75rem; }
.portal-questions { padding-left: 1.4rem; }
.portal-questions li { margin: .8rem 0; padding: 1rem 1.4rem; }
.portal-questions li::marker { color: var(--blue); font-weight: 700; }
.portal-reading { max-width: 820px; margin: 1rem auto; }
.portal-admin-login { max-width: 560px; margin: 2rem auto; }
.portal-table { overflow-x: auto; }
.portal-footer { display: grid; grid-template-columns: 1fr 2fr; gap: 3rem; }
.portal details { margin: 1rem 0; }
.portal textarea { resize: vertical; }
.portal .kv dd { overflow-wrap: anywhere; }
@media(max-width: 850px) {
 .portal-hero-grid, .portal-auth-grid, .portal-footer { grid-template-columns: 1fr; gap: 1.5rem; }
 .portal-section-heading { align-items: start; flex-direction: column; }
 .portal-hero { padding-top: 2rem; }
 .portal .grid.cols-3, .portal .grid.cols-2 { grid-template-columns: 1fr; }
 .portal .nav .spacer { display: none; }
 .portal .nav .brand { width: 100%; }
 .portal .kv { grid-template-columns: 1fr; }
}
