.portal-section{padding:88px 0;border-block:1px solid var(--border)}.portal-intro{max-width:700px;margin-bottom:38px}.portal-intro>p{font-size:14px}.portal-kicker{font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--accent)}.portal-note{font-size:12px;line-height:1.6;color:var(--muted)}.portal-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border:1px solid var(--border);font-size:10px;letter-spacing:.04em;color:var(--muted)}.portal-dialog{width:min(940px,calc(100% - 32px));max-height:calc(100dvh - 32px);padding:0;border:1px solid var(--border);background:var(--bg);color:var(--ink);border-radius:var(--radius);overflow:auto}.portal-dialog::backdrop{background:#000b;backdrop-filter:blur(5px)}.portal-dialog-inner{padding:32px}.portal-dialog-header{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}.portal-dialog-close{min-width:44px;min-height:44px;border:1px solid var(--border);background:transparent;color:var(--ink);font-size:24px}.portal-dialog h2{font-size:clamp(28px,4vw,40px)}.portal-field{display:grid;gap:6px;margin-block:15px;font-size:13px}.portal-field input,.portal-field select{width:100%;min-height:48px;padding:10px 12px;border:1px solid var(--border);border-radius:3px;background:var(--surface);color:var(--ink)}.portal-field input[aria-invalid=true]{border-color:#e79e96}.portal-error{color:#f2aaa3;font-size:13px}.portal-actions{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:24px}.portal-actions .button:disabled{opacity:.5;cursor:not-allowed;transform:none}.portal-screenreader{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.portal-empty{padding:22px;border:1px dashed var(--border)}#nav-auth-root{display:flex;align-items:center}.portal-nav-access{font-size:12px;min-height:44px;padding:9px 14px;border:1px solid var(--accent);color:var(--ink);background:transparent;white-space:nowrap}.portal-nav-access:hover{background:var(--sage)}.portal-notice{padding:50px 0;border-top:1px solid var(--border)}.portal-notice h2{font:600 14px var(--font-body);letter-spacing:.05em}.portal-notice p{font-size:13px;line-height:1.8}.portal-notice .portal-note{font-size:12px}@media(max-width:700px){.portal-section{padding:58px 0}.portal-dialog-inner{padding:22px}.portal-actions .button{flex:1}.portal-dialog{max-height:calc(100dvh - 20px)}}
