body.portal { background: var(--bg, #f6f7f9); min-height: 100vh; }
.portal-top { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; padding: .8rem 1.25rem; background: var(--surface); border-bottom: 1px solid var(--border); }
.portal-brand { font-weight: 700; font-size: 1.1rem; color: var(--text); text-decoration: none; }
.portal-brand span { color: var(--accent); font-weight: 500; }
.portal-who { display: flex; align-items: center; gap: .8rem; color: var(--text-2); font-size: .9rem; }
.portal-main { max-width: 1160px; margin: 0 auto; padding: 1.25rem 1rem 3rem; }
.portal-narrow { max-width: 400px; margin: 3rem auto; }
.portal-form { display: flex; flex-direction: column; gap: .45rem; }
.portal-form label { font-weight: 500; margin-top: .4rem; }
.portal-form input:not([type=file]), .portal-form textarea, .portal-form select { width: 100%; }
.portal-form .btn { align-self: flex-start; margin-top: .6rem; }
.portal-scroll { overflow-x: auto; }
