/* Shared standalone pages: recovery and protected document entry points. */
.portal-page { min-height: 100vh; min-height: 100dvh; margin: 0; color: var(--ui-ink); background: radial-gradient(ellipse at top left, #eee9fb, transparent 55%), var(--ui-background); font-family: Poppins, system-ui, sans-serif; }
.portal-shell { min-height: 100vh; min-height: 100dvh; display: grid; place-items: center; padding: 32px 16px; }
.portal-card { width: min(100%, 480px); padding: clamp(22px, 5vw, 40px); border: 1px solid var(--ui-line); border-radius: 24px; background: var(--ui-surface); box-shadow: var(--ui-panel-shadow); }
.portal-brand { width: 160px; height: auto; margin: 0 auto 32px; }
.portal-card h1 { font-size: 1.75rem; font-weight: 600; letter-spacing: -.04em; line-height: 1.3; overflow-wrap: anywhere; }
.portal-card header p { margin-top: 12px; color: var(--ui-muted); font-size: .875rem; line-height: 1.8; }
.portal-card form { margin-top: 28px; }
.portal-card input { width: 100%; min-height: 48px; padding: 12px 14px; box-shadow: none; }
.portal-card button[type=submit] { width: 100%; min-height: 48px; padding: 12px 16px; border-radius: var(--control-radius); color: #fff; background: var(--ui-accent); line-height: 1.5; }
.portal-card button[type=submit]:hover { background: var(--ui-accent-hover); }
.portal-card a { color: var(--appearance-accent, var(--ui-accent)); text-underline-offset: 4px; }
.portal-card a:hover { text-decoration: underline; }
.portal-card :where(a,button):focus-visible { outline: 2px solid var(--ui-accent); outline-offset: 4px; }
.portal-card > p { margin: 20px 0; color: var(--ui-muted); font-size: .875rem; line-height: 1.8; }
.portal-card > :is(a,button) { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; margin: 0 8px 10px 0; padding: 10px 14px; border: 1px solid transparent; border-radius: var(--control-radius); font: inherit; font-size: .875rem; line-height: 1.5; color: #fff; background: var(--ui-accent); cursor: pointer; }
.portal-card > .secondary { border-color: var(--ui-line); background: var(--ui-soft); color: var(--appearance-accent); }
