/* Concept 03 Structured Workspace: live account forms in the approved entry. */
.portal-auth main { max-width: none; margin: 0; padding: 0; min-height: 0; }
.portal-auth .portal-entry { min-height: max(780px, calc(100svh - 88px)); }
.portal-auth .entry-form { align-self: center; width: 100%; max-width: 660px; margin-inline: auto; }
.portal-auth .auth-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; background: #eadfd5; border-radius: 10px; padding: 5px; margin-bottom: 31px; }
.portal-auth .auth-tabs button { background: transparent; border-color: transparent; color: var(--navy); border-radius: 7px; min-height: 46px; padding: 14px 12px; font-size: 13px; }
.portal-auth .auth-tabs button[aria-selected="true"] { background: #fff; box-shadow: 0 1px 5px #3a383211; }
.portal-auth .auth-tabs button:hover:not(:disabled) { background: #fff; }
.portal-auth #auth-intro { font-size: 13px; line-height: 1.8; margin-bottom: 25px; }
.portal-auth input { min-width: 0; font-size: 16px; }
.portal-auth .auth-submit { width: 100%; min-height: 51px; border-radius: 7px; }
.portal-auth .auth-secondary-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 0; margin-top: 12px; }
.portal-auth .auth-inline-action { background: transparent; border: 0; border-radius: 0; padding: 10px 0; min-height: 44px; color: var(--navy); font-size: 12px; font-weight: 500; text-align: left; text-decoration: underline; text-underline-offset: 4px; }
.portal-auth .auth-inline-action:hover:not(:disabled) { background: transparent; color: var(--navy); text-decoration-thickness: 2px; }
.portal-auth #result { margin: 18px 0 0; font-size: 13px; line-height: 1.7; overflow-wrap: anywhere; }
.portal-auth #result:empty { margin: 0; }
.portal-auth #result[role="alert"] { color: var(--error); border-left: 3px solid currentColor; padding-left: 12px; }
.portal-auth .auth-help { display: flex; flex-wrap: wrap; gap: 20px; margin-top: 12px; }
.portal-auth .entry-auth-note { line-height: 1.8; margin-bottom: 0; }
.portal-auth .auth-footer { background: #fff; align-items: center; border-top: 1px solid var(--line); padding: 23px 4%; }
.portal-auth .auth-footer nav { display: flex; position: static; width: auto; padding: 0; border: 0; background: transparent; flex-wrap: wrap; gap: 10px 22px; font-size: 11px; min-width: 0; }
.portal-auth .auth-footer a { display: inline-flex; align-items: center; min-height: 44px; }
.portal-auth [hidden] { display: none !important; }
.portal-auth button:disabled { cursor: default; }
.portal-auth [aria-busy="true"] button:disabled, .portal-auth:has([aria-busy="true"]) .auth-tabs button:disabled { cursor: wait; }
@media (max-width: 1000px) {
  .portal-auth .auth-footer { flex-direction: column; align-items: flex-start; gap: 2px; }
}
@media (max-width: 760px) {
  .portal-auth .portal-entry { min-height: 0; }
  .portal-auth .entry-form { max-width: 570px; }
  .portal-auth .auth-footer { padding: 20px 28px; }
}
@media (max-width: 420px) {
  .portal-auth .auth-tabs button { font-size: 12px; padding-inline: 9px; }
  .portal-auth .auth-footer { padding: 20px 24px; }
}
.portal-auth select { min-width: 0; width: 100%; font-size: 16px; }
.portal-auth .checkbox { display: flex; align-items: flex-start; gap: 10px; line-height: 1.6; }
.portal-auth .checkbox input { flex: 0 0 auto; width: 18px; height: 18px; margin: 2px 0 0; padding: 0; }
.portal-auth #creator-fields small { display: block; font-size: 12px; line-height: 1.7; font-weight: 400; margin-top: 6px; }
.portal-auth #decline-age { margin: -4px 0 12px; }
/* Optional Content Agreement: native modal, bounded reading area and touch controls. */
.signup-agreement { margin-top:20px; }
.signup-agreement .checkbox span { min-width:0; }
.signup-agreement a { text-decoration:underline; text-underline-offset:3px; }
.signup-agreement-dialog { width:min(680px,calc(100vw - 24px)); max-height:calc(100dvh - 24px); margin:auto; border:0; border-radius:12px; padding:clamp(16px,4vw,28px); box-sizing:border-box; color:var(--ink,#302722); background:#fff; overflow:auto; }
.signup-agreement-dialog::backdrop { background:rgba(48,39,34,.65); }
.signup-agreement-dialog h2 { font-size:1.5rem; margin:0 0 12px; }
.signup-agreement-dialog p { margin:12px 0; line-height:1.5; }
.signup-agreement-reading { white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.7; max-height:45dvh; overflow:auto; padding:16px; background:var(--paper); border-radius:6px; }
.signup-agreement-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:20px; }
.signup-agreement-actions button { flex:1; min-height:44px; padding:12px 20px; border:1px solid currentColor; border-radius:6px; }
.signup-agreement-dialog :focus-visible { outline:3px solid var(--portal-focus, #5a2108); outline-offset:3px; }
/* Setup uses the same entry shell and quiet, keyboard-accessible help controls. */
.portal-setup .setup-stage { font-size:12px; font-weight:600; margin:0 0 16px; }
.portal-setup .setup-guidance { border-left:3px solid var(--portal-primary,#aa3907); padding:1px 0 1px 14px; margin-bottom:20px; }
.portal-setup .setup-guidance p { font-size:12px; line-height:1.7; margin:4px 0 10px; }
.portal-setup .setup-hint { font-size:11px; line-height:1.6; margin:-6px 0 18px; }
.portal-setup .setup-expiry { font-size:11px; line-height:1.8; margin:20px 0 8px; color:var(--muted); }
.portal-setup .setup-help { align-items:center; gap:0 18px; }
.portal-setup .setup-help a { display:inline-flex; align-items:center; min-height:44px; font-size:12px; }
.portal-setup .entry-form { padding-block:40px; }
.portal-setup :focus-visible { outline:3px solid var(--portal-focus, #5a2108); outline-offset:3px; }

/* Help, reviewed recovery and sign-out retain their controls in the entry shell. */
.portal-access #auth-panel > p:not(.entry-auth-note):not(#result) { font-size: 13px; line-height: 1.8; margin-bottom: 25px; }
.portal-access form { margin-top: 24px; }
.portal-access #setup-request { margin-top: 8px; }
