.bn-partner-portal{--bp-ink:#183444;--bp-accent:#226886;--bp-line:#d9e1e8;color:var(--bp-ink);background:#f5f8fa;border:1px solid var(--bp-line);border-radius:16px;max-width:1100px;margin:24px auto;padding:clamp(16px,3vw,30px);font:16px/1.55 system-ui,sans-serif;box-sizing:border-box}.bn-partner-portal *{box-sizing:border-box}.bn-partner-portal h2,.bn-partner-portal h3{color:var(--bp-ink);margin:0 0 10px;line-height:1.3}.bn-partner-portal h2{font-size:clamp(24px,3vw,32px)}.bn-partner-portal h3{font-size:20px}.bn-eyebrow{font-size:12px;letter-spacing:.12em;font-weight:700;margin:0 0 6px}.bn-portal-head,.bn-portal-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.bn-portal-head p{margin-bottom:10px}.bn-partner-portal button,.bn-partner-portal a.bn-portal-primary{appearance:none;background:#fff;color:var(--bp-accent);border:1px solid var(--bp-accent);padding:10px 14px;border-radius:8px;cursor:pointer;font:600 14px/1.4 system-ui,sans-serif;text-decoration:none;display:inline-block;white-space:normal}.bn-partner-portal .bn-portal-primary{background:var(--bp-accent)!important;color:#fff!important}.bn-partner-portal button:disabled{opacity:.55;cursor:not-allowed}.bn-partner-portal :focus-visible{outline:3px solid #e0a02b;outline-offset:3px}.bn-portal-status{padding:12px 0;min-height:1.5em}.bn-portal-calendars{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:12px;margin:15px 0 28px}.bn-portal-calendars>h3{grid-column:1/-1}.bn-portal-calendar{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:18px;background:#fff;border:1px solid var(--bp-line);border-radius:10px}.bn-portal-history>h3{margin-bottom:15px}.bn-portal-card{background:#fff;border:1px solid var(--bp-line);border-left:5px solid #7a8596;border-radius:10px;padding:20px;margin-bottom:15px}.bn-portal-state-confirmed{border-left-color:#269467}.bn-portal-state-option{border-left-color:#d5af18}.bn-portal-state-refused,.bn-portal-state-cancelled{border-left-color:#cc4455}.bn-portal-card p{margin:8px 0;overflow-wrap:anywhere;white-space:pre-line}.bn-portal-badge{background:#edf1f4;border-radius:30px;font-size:13px;padding:5px 10px;white-space:nowrap}.bn-portal-schedule{font-weight:600}.bn-portal-help,.bn-portal-calendar small{font-size:13px;color:#536270}.bn-portal-reply{background:#f0f6f8;border-radius:8px;padding:12px;margin:12px 0}.bn-portal-alert{padding:12px;background:#fff2db;border-radius:8px}.bn-partner-portal details{padding:12px 0;border-top:1px solid #edf1f4}.bn-partner-portal summary{cursor:pointer;font-weight:600}.bn-partner-portal form label{display:flex;flex-direction:column;gap:5px;margin:12px 0;font-size:14px;font-weight:600}.bn-partner-portal input,.bn-partner-portal textarea,.bn-partner-portal select{font:inherit;padding:9px 12px;border:1px solid #a9b8c4;border-radius:6px;color:#183444;background:#fff;max-width:100%;width:100%}.bn-partner-portal .bn-portal-check{flex-direction:row;align-items:center}.bn-portal-check input{width:18px;height:18px;flex:0 0 18px}.bn-partner-portal blockquote{border-left:3px solid #d9e1e8;margin:10px 0;padding:8px 14px}.bn-portal-pagination{display:flex;align-items:center;justify-content:center;gap:15px}.bn-portal-withdraw summary{color:#933243}@media(max-width:640px){.bn-portal-head,.bn-portal-card-head{flex-direction:column;gap:8px}.bn-portal-card{padding:14px}.bn-partner-portal{font-size:15px}.bn-portal-calendars{grid-template-columns:1fr}}

/* Generic mobile clearance: the host theme may override this variable. No contact widget is hidden. */
.bn-partner-portal form[aria-busy="true"]{cursor:progress}
.bn-partner-portal form[aria-busy="true"] [role="status"]{font-weight:600}
@media(max-width:640px){
  .bn-partner-portal{padding-bottom:calc(24px + var(--bn-portal-mobile-clearance,96px) + env(safe-area-inset-bottom,0px))}
  .bn-partner-portal button,.bn-partner-portal summary,.bn-partner-portal textarea{scroll-margin-block-end:calc(var(--bn-portal-mobile-clearance,96px) + 24px)}
}

/* Account controls do not disappear when a status is refreshed or a membership is suspended. */
.bn-partner-portal .bn-portal-session{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;margin:12px 0;background:#fff;border:1px solid var(--bp-line);border-radius:10px}
.bn-partner-portal .bn-portal-session[hidden]{display:none!important}
.bn-partner-portal .bn-portal-account{margin:0;overflow-wrap:anywhere;min-width:0;font-weight:600}
.bn-partner-portal .bn-portal-logout{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-height:44px;padding:10px 14px;border:1px solid var(--bp-accent);border-radius:8px;background:#fff;color:var(--bp-accent);text-decoration:underline;font:600 14px/1.4 system-ui,sans-serif}
@media(max-width:640px){.bn-partner-portal .bn-portal-session{flex-wrap:wrap}.bn-partner-portal .bn-portal-logout{scroll-margin-block-end:calc(var(--bn-portal-mobile-clearance,96px) + 24px)}}
