/* Portable portal. Every rule is confined to this component. */
.bap-portal {
  --bap-accent: var(--wp--preset--color--primary, var(--e-global-color-primary, var(--ast-global-color-0, var(--sofverse-primary, #245ac1))));
  --bap-text: #17202a; --bap-surface: #ffffff; --bap-muted: #52606d; --bap-line: #dce1e6;
  --bap-tint: #f4f6f8; --bap-button-text: #ffffff; --bap-radius: .65rem;
  container: bap / inline-size; isolation: isolate; display: block;
  width: 100%; min-width: 0; max-width: 100%; margin: 1.25rem 0;
  padding: 0; font-family: inherit; font-size: inherit; line-height: 1.65;
  color: var(--bap-text); overflow-wrap: anywhere; text-align: start;
}
.bap-portal, .bap-portal *, .bap-portal *::before, .bap-portal *::after { box-sizing: border-box; }
.bap-portal :where(div,section,article,header,nav,form,label,fieldset) { min-width: 0; max-width: 100%; }
.bap-portal :is(h1,h2,h3,h4,h5,h6) { color: var(--bap-text) !important; font-family: var(--bap-heading-font, inherit); font-weight: var(--bap-heading-weight, 700); line-height: 1.25; overflow-wrap: anywhere; }
.bap-portal h2 { font-size: clamp(1.65rem, 5cqi, 2.75rem); margin: .5rem 0 1rem; }
.bap-portal h3 { font-size: 1.15em; margin: 0 0 .7rem; }
.bap-portal p { color: inherit; margin: 0 0 1rem; }
.bap-portal a:not(.button) { color: var(--bap-accent); text-decoration: underline; text-underline-offset: .15em; }
.bap-portal .bap-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.5rem; padding: clamp(1.2rem, 4cqi, 2.5rem); margin-bottom: 1.25rem; border: 1px solid var(--bap-line); border-radius: 1rem; background: var(--bap-tint); color: var(--bap-text); }
.bap-portal .bap-heading p { max-width: 42em; color: var(--bap-muted); }
.bap-portal .bap-eyebrow { display: block; color: var(--bap-accent); font: inherit; font-weight: 700; font-size: .72em; letter-spacing: .09em; text-transform: uppercase; margin-bottom: .65rem; }
.bap-portal .bap-badge, .bap-portal .bap-pill { display: inline-flex; align-items: center; flex: 0 1 auto; gap: .5rem; border: 1px solid var(--bap-line); border-radius: 99px; padding: .4rem .8rem; font-size: .8em; font-weight: 600; color: var(--bap-text); background: var(--bap-surface); white-space: normal; }
.bap-portal .bap-badge::before { content: ''; width: .45em; height: .45em; flex-shrink: 0; border-radius: 50%; background: var(--bap-accent); }
.bap-portal .bap-nav { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.5rem; }
.bap-portal .bap-nav a { padding: .6rem .85rem; min-height: 44px; border: 1px solid var(--bap-line); border-radius: var(--bap-radius); background: var(--bap-surface); text-decoration: none; font-size: .85em; }
.bap-portal .bap-card { min-width: 0; padding: clamp(1rem, 3cqi, 1.75rem); margin: 0 0 1.25rem; border: 1px solid var(--bap-line); border-radius: 1rem; background: var(--bap-surface); color: var(--bap-text); }
.bap-portal .bap-card p, .bap-portal .bap-section-heading p { color: var(--bap-muted); }
.bap-portal .bap-card p:last-child { margin-bottom: 0; }
.bap-portal .bap-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; }
.bap-portal .bap-personalize, .bap-portal .bap-highlight { background: var(--bap-tint); }
.bap-portal .bap-section-heading { margin: 2rem 0 1rem; }
.bap-portal .bap-section-heading h3 { font-size: clamp(1.25rem, 4cqi, 1.8rem); }
.bap-portal .bap-grid { display: grid; gap: 1rem; min-width: 0; }
.bap-portal .bap-two { grid-template-columns: repeat(auto-fit,minmax(min(100%,16rem),1fr)); }
.bap-portal .bap-three { grid-template-columns: repeat(auto-fit,minmax(min(100%,12rem),1fr)); }
.bap-portal .bap-four { grid-template-columns: repeat(auto-fit,minmax(min(100%,9rem),1fr)); }
.bap-portal .bap-grid > .bap-card { margin-bottom: 0; }
.bap-portal .bap-grid:has(> .bap-card) { margin-bottom: 1.25rem; }
.bap-portal .bap-stat span { display: block; color: var(--bap-muted); font-size: .72em; letter-spacing: .05em; text-transform: uppercase; margin-bottom: .75rem; }
.bap-portal .bap-stat strong { display: block; font-family: var(--bap-heading-font,inherit); font-size: clamp(1.35rem, 3cqi, 2rem); line-height: 1.3; color: var(--bap-text); }
.bap-portal .bap-resource, .bap-portal .bap-signin { display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; }
.bap-portal .bap-resource p, .bap-portal .bap-signin p { margin-bottom: 0; }
.bap-portal .bap-notice { padding: 1rem; margin-bottom: 1rem; background: var(--bap-tint); color: var(--bap-text); border: 1px solid var(--bap-line); border-inline-start: 4px solid var(--bap-accent); border-radius: var(--bap-radius); }
.bap-portal .bap-notice-error { border-inline-start-color: #b42318; }
.bap-portal form { float: none; width: 100%; margin: 0; padding: 0; }
.bap-portal label { display: block; font-family: inherit; font-size: .9em; font-weight: 600; color: var(--bap-text); }
.bap-portal input:not([type=hidden]):not([type=checkbox]), .bap-portal textarea { display: block; width: 100%; min-width: 0 !important; max-width: 100%; margin: .5rem 0 0; border: 1px solid var(--bap-input-line,var(--bap-line)); border-radius: var(--bap-input-radius,var(--bap-radius)); padding: var(--bap-input-padding,.8rem 1rem); font-family: var(--bap-input-font,inherit); font-size: 1em; line-height: 1.5; color: var(--bap-input-text,var(--bap-text)); background: var(--bap-input-bg,var(--bap-surface)); box-shadow: none; }
.bap-portal textarea { resize: vertical; min-height: 7rem; white-space: pre-wrap; }
.bap-portal input[type=checkbox] { appearance: auto; width: 1.1em; height: 1.1em; flex: 0 0 auto; accent-color: var(--bap-accent); margin-top: .3em; }
.bap-portal input[readonly] { text-overflow: ellipsis; }
.bap-portal small, .bap-portal .bap-help { display: block; margin: .5rem 0 0; font-size: .8em; font-weight: 400; color: var(--bap-muted); }
.bap-portal .bap-link-preview { color: var(--bap-accent); overflow-wrap: anywhere; }
.bap-portal .bap-copy { display: flex; align-items: stretch; gap: .6rem; min-width: 0; }
.bap-portal .bap-copy input { flex: 1 1 0; width: 0; margin: 0 !important; }
.bap-portal button, .bap-portal .button { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; max-width: 100%; min-width: 0; min-height: 44px; padding: var(--bap-button-padding,.75rem 1.1rem); font-family: var(--bap-button-font,inherit); font-size: var(--bap-button-size,.9em); font-weight: var(--bap-button-weight,600); line-height: 1.4; border: 1px solid var(--bap-button-border,transparent); border-radius: var(--bap-button-radius,var(--bap-radius)); color: var(--bap-button-text); background: var(--bap-button-bg,var(--bap-accent)); white-space: normal; overflow-wrap: anywhere; text-decoration: none; text-align: center; cursor: pointer; }
.bap-portal button:hover, .bap-portal .button:hover { filter: brightness(.95); }
.bap-portal button:disabled { opacity: .5; cursor: not-allowed; }
.bap-portal button[data-bap-copy] { padding-inline: .85rem; }
.bap-portal form > button { margin-top: 1rem; }
.bap-portal .bap-form-footer { display: flex; align-items: center; gap: 1rem; margin-top: 1.25rem; }
.bap-portal .bap-form-footer p { margin: 0; font-size: .8em; }
.bap-portal [id] { scroll-margin-top: 8rem; }
.bap-portal .bap-agreement { max-height: 32rem; overflow: auto; padding: clamp(1rem,4cqi,2rem); margin-bottom: 1.25rem; border: 1px solid var(--bap-line); border-radius: 1rem; background: var(--bap-surface); color: var(--bap-text); }
.bap-portal .bap-agreement h3, .bap-portal details h3 { margin-top: 1.5rem; }
.bap-portal :is(ol,ul) { padding-inline-start: 1.5rem; list-style: revert; }
.bap-portal li { margin-bottom: .5rem; color: var(--bap-text); }
.bap-portal .bap-consent { display: flex; align-items: flex-start; gap: .75rem; margin: 1rem 0; font-weight: 400; }
.bap-portal .bap-table { max-width: 100%; min-width: 0; overflow: auto; border: 1px solid var(--bap-line); border-radius: var(--bap-radius); }
.bap-portal table { width: 100%; border-collapse: collapse; font-size: .85em; margin: 0; }
.bap-portal :is(th,td) { padding: .75rem; border: 0; border-bottom: 1px solid var(--bap-line); text-align: start; vertical-align: top; color: var(--bap-text); background: transparent; white-space: normal; }
.bap-portal th { background: var(--bap-tint); font-weight: 600; }
.bap-portal details { border-top: 1px solid var(--bap-line); margin-top: 1.25rem; padding-top: 1rem; }
.bap-portal summary { cursor: pointer; font-weight: 600; color: var(--bap-accent); }
.bap-portal progress { accent-color: var(--bap-accent); max-width: 100%; }
.bap-portal .bap-welcome-perks { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.25rem; }
.bap-portal .bap-welcome-perks span { padding: .4rem .75rem; border: 1px solid var(--bap-line); border-radius: 99px; background: var(--bap-surface); font-size: .8em; }
.bap-portal .bap-message-list { max-height: 32rem; overflow: auto; display: flex; flex-direction: column; gap: .75rem; padding: .25rem; }
.bap-portal .bap-message { max-width: 90%; padding: .9rem 1rem; border: 1px solid var(--bap-line); border-radius: .8rem; background: var(--bap-tint); color: var(--bap-text); }
.bap-portal .bap-message-mine { align-self: flex-end; background: var(--bap-surface); }
.bap-portal .bap-message-meta { display: flex; flex-wrap: wrap; gap: .5rem; font-size: .75em; margin-bottom: .5rem; }
.bap-portal .bap-message p { margin: 0; white-space: pre-wrap; color: var(--bap-text); }
.bap-portal .bap-message-pages { display: flex; flex-wrap: wrap; gap: 1rem; margin: 1rem 0; font-size: .85em; }
.bap-portal :focus-visible { outline: 2px solid var(--bap-accent); outline-offset: 3px; }
@container bap (max-width: 38rem) {
  .bap-portal .bap-heading, .bap-portal .bap-resource, .bap-portal .bap-signin, .bap-portal .bap-form-footer, .bap-portal .bap-card-heading { flex-direction: column; align-items: stretch; }
  .bap-portal .bap-heading .bap-badge { align-self: flex-start; }
  .bap-portal .bap-pill { display: none; }
}
@media(max-width:600px) {
  .bap-portal .bap-heading, .bap-portal .bap-resource, .bap-portal .bap-signin, .bap-portal .bap-form-footer, .bap-portal .bap-card-heading { flex-direction: column; align-items: stretch; }
  .bap-portal .bap-pill { display: none; }
}
@media(prefers-reduced-motion:reduce) { .bap-portal * { transition: none !important; scroll-behavior: auto !important; } }