/* Public BidCentral surfaces share the admin's Nunito, blue and navy palette.
 * Scoped to public layouts so existing admin and embedded app pages stay intact. */
@font-face {
  font-family: "BC Portal Nunito";
  src: url("../bid_central/fonts/nunito/Nunito-Variable.ttf") format("truetype");
  font-style: normal;
  font-weight: 200 1000;
  font-display: swap;
}

body.bc-portal {
  --canvas: #f5f8fc;
  --canvas-tint: #f5f8fc;
  --surface: #fff;
  --ink: #101729;
  --ink-muted: #35465d;
  --ink-quiet: #637089;
  --line: #dce5ef;
  --line-faint: #e7edf4;
  --accent: #0ca8d3;
  --accent-hover: #087fa7;
  --accent-dark: #087fa7;
  --accent-wash: #edf8fc;
  --accent-ring: #c7eaf5;
  --wash: #f4f7fb;
  --btn: #087fa7;
  --btn-hover: #076582;
  --btn-rgb: 8 127 167;
  --mini-accent: #0ca8d3;
  --mini-accent-dark: #087fa7;
  --mini-accent-rgb: 12 168 211;
  --font: "BC Portal Nunito", ui-sans-serif, system-ui, sans-serif;
  --primary-color: var(--btn);
  --secondary-color: var(--btn-hover);
  --dark-bg: var(--canvas);
  --dark-secondary: var(--surface);
  --text-light: var(--ink);
  --text-gray: var(--ink-quiet);
  --input-bg: var(--surface);
  --border-color: var(--line);
  --border-subtle: var(--line-faint);
  --dropdown-hover: var(--wash);
  --dropdown-hover-strong: var(--surface);
  --surface-soft: var(--wash);
  --surface-strong: var(--surface);
  --gradient-dark: linear-gradient(120deg, #f0f9fc, #f5f8fc 50%, #f4f2fc);
  --shadow: 0 8px 32px rgba(24, 40, 72, .055);
  --shadow-color: rgba(24, 40, 72, .07);
  --success-color: #067455;
  --warning-color: #986016;
  --error-color: #bd3e58;
  --danger-color: #bd3e58;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  color-scheme: light;
  color: var(--ink);
  font-family: var(--font);
  line-height: 1.6;
  background: radial-gradient(ellipse at 0 10%, #e9f7fc 0, transparent 36rem), radial-gradient(ellipse at 100% 24%, #f0ecfc 0, transparent 34rem), var(--canvas);
  -webkit-font-smoothing: antialiased;
}
body.bc-portal *, body.bc-portal *::before, body.bc-portal *::after { box-sizing: border-box; }
body.bc-portal main { flex: 1; min-width: 0; }
body.bc-portal :is(button, input, select, textarea) { font: inherit; }
body.bc-portal :is(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid var(--accent-ring); outline-offset: 3px; }
body.bc-portal :is(button, input):disabled { cursor: not-allowed; opacity: .6; }
body.bc-portal [hidden] { display: none !important; }
body.bc-portal .portal-icon { width: 20px; height: 20px; flex: 0 0 auto; vertical-align: middle; }
body.bc-portal .portal-kicker { display: inline-flex; align-items: center; gap: 8px; color: var(--accent-dark); font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }

/* Shared navigation, with the original menu and account links. */
body.bc-portal #navbar { background: rgba(255, 255, 255, .94); border-bottom: 1px solid var(--line-faint); backdrop-filter: blur(16px); }
body.bc-portal .nav-container { max-width: 1200px; height: 76px; padding-inline: 24px; }
body.bc-portal .logo-img { height: 34px; }
body.bc-portal .nav-links { gap: 20px; }
body.bc-portal .nav-link { font-weight: 700; color: var(--ink-quiet); }
body.bc-portal .nav-link:hover { color: var(--accent-dark); }
body.bc-portal :is(.btn, .btn-submit, .portal-btn) { min-height: 46px; border-radius: 10px; gap: 8px; font-weight: 800; font-size: 15px; box-shadow: none; transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease; }
body.bc-portal .btn-nav { width: auto; height: 40px; min-height: 40px; margin: 0; padding: 8px 14px; font-size: 14px; line-height: 20px; }
body.bc-portal :is(.btn-primary, .btn-submit, .portal-btn-primary) { color: #fff; background: var(--btn); border: 1px solid var(--btn); }
body.bc-portal :is(.btn-primary, .btn-submit, .portal-btn-primary):hover { background: var(--btn-hover); border-color: var(--btn-hover); transform: none; box-shadow: 0 4px 14px rgba(8, 127, 167, .14); }
body.bc-portal :is(.btn-secondary, .portal-btn-secondary) { color: var(--ink); background: var(--surface); border: 1px solid var(--line); }
body.bc-portal :is(.btn-secondary, .portal-btn-secondary):hover { background: var(--accent-wash); border-color: var(--accent-ring); }
body.bc-portal .portal-btn-success { background: var(--success-color); color: #fff; }
body.bc-portal .portal-btn-danger { background: #fff1f4; border: 1px solid #f1ced8; color: var(--error-color); }
body.bc-portal .user-dropdown-toggle { font: inherit; color: var(--ink); background: transparent; border: 1px solid transparent; }
body.bc-portal .user-dropdown-toggle:hover { background: var(--wash); border-color: var(--line); }
body.bc-portal .user-dropdown-toggle .portal-icon { width: 16px; }
body.bc-portal .user-display-name { max-width: 150px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.bc-portal .user-avatar { color: var(--accent-dark); background: var(--accent-wash); border: 1px solid var(--accent-ring); border-radius: 10px; }
body.bc-portal .user-dropdown-menu { border-radius: 12px; padding: 6px; box-shadow: 0 12px 32px rgba(24, 40, 72, .12); }
body.bc-portal .dropdown-item { border-radius: 7px; font-size: 14px; }
body.bc-portal .site-footer { padding: 28px 0; background: rgba(255, 255, 255, .82); border-top: 1px solid var(--line-faint); }
body.bc-portal .footer-wrap { max-width: 1200px; padding-inline: 24px; }
body.bc-portal .footer-brand .logo-img { height: 28px; }
body.bc-portal .footer-brand .portal-muted { font-size: 12px; }
body.bc-portal .footer-link { font-size: 13px; font-weight: 700; }

/* Auth layouts: compact form plus a quiet product introduction. */
body.bc-portal .portal-auth-shell { width: min(1120px, calc(100% - 48px)); margin: 48px auto; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 490px); align-items: center; gap: 64px; }
body.bc-portal .portal-auth-intro { padding: 24px 12px; }
body.bc-portal .portal-auth-intro h2 { max-width: 14ch; margin: 20px 0 16px; font-size: clamp(36px, 4vw, 48px); font-weight: 850; line-height: 1.12; letter-spacing: -.035em; }
body.bc-portal .portal-auth-intro > p { max-width: 44ch; color: var(--ink-quiet); font-size: 17px; line-height: 1.75; }
body.bc-portal .portal-auth-features { list-style: none; display: grid; gap: 20px; padding: 0; margin: 32px 0; }
body.bc-portal .portal-auth-features li { display: flex; align-items: flex-start; gap: 14px; }
body.bc-portal .portal-auth-feature-icon { display: grid; place-items: center; flex-shrink: 0; width: 42px; height: 42px; border: 1px solid var(--accent-ring); border-radius: 12px; color: var(--accent-dark); background: rgba(255, 255, 255, .8); }
body.bc-portal .portal-auth-features strong { display: block; font-size: 16px; color: var(--ink); }
body.bc-portal .portal-auth-features small { display: block; margin-top: 2px; color: var(--ink-quiet); font-size: 14px; }
body.bc-portal .portal-auth-note { display: flex; align-items: flex-start; gap: 10px; max-width: 44ch; border-top: 1px solid var(--line); padding-top: 20px; color: var(--ink-quiet); font-size: 13px; }
body.bc-portal .portal-auth-shell :is(.login-container, .signup-container, .auth-container, .auth-container > .container) { width: 100%; min-height: 0; max-width: none; margin: 0; padding: 0; display: block; }
body.bc-portal .portal-auth-shell :is(.auth-card, .card) { padding: 32px; background: var(--surface); color: var(--ink); border: 1px solid var(--line); border-radius: 20px; box-shadow: 0 16px 48px rgba(24, 40, 72, .07); }
body.bc-portal .auth-header { text-align: start; margin: 0 0 24px; }
body.bc-portal .portal-auth-mark { display: grid; place-items: center; width: 44px; height: 44px; margin-bottom: 18px; border-radius: 12px; background: var(--accent-wash); color: var(--accent-dark); border: 1px solid var(--accent-ring); }
body.bc-portal :is(.auth-title, .portal-auth-shell .card > h1) { color: var(--ink); font-weight: 850; font-size: 30px; line-height: 1.2; letter-spacing: -.025em; margin: 0 0 10px; text-align: start; }
body.bc-portal :is(.auth-subtitle, .portal-auth-shell .subtitle) { margin: 0; color: var(--ink-quiet); font-size: 14px; line-height: 1.6; text-align: start; }
body.bc-portal .auth-form { margin-top: 24px; }
body.bc-portal .portal-auth-fields-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
body.bc-portal .portal-auth-shell .form-group { display: block; margin-bottom: 18px; font-weight: 600; }
body.bc-portal .portal-auth-shell :is(.form-label, .form-group > label) { display: block; margin: 0 0 7px; font-size: 13px; font-weight: 800; color: var(--ink-muted); }
body.bc-portal .portal-auth-shell :is(input[type="text"], input[type="email"], input[type="password"]) { display: block; width: 100%; min-width: 0; height: 48px; padding: 0 14px; border: 1px solid var(--line); border-radius: 10px; background: #f9fbfd; color: var(--ink); font-size: 16px; box-shadow: none; }
body.bc-portal .portal-auth-shell input:focus { background: var(--surface); border-color: var(--accent); outline: none; box-shadow: 0 0 0 3px var(--accent-wash); }
body.bc-portal .portal-auth-shell input::placeholder { color: #8390a3; }
body.bc-portal .portal-auth-shell input:is(.input-error, .error) { border-color: var(--error-color) !important; }
body.bc-portal :is(.password-input-wrap, .password-input-container) { position: relative; }
body.bc-portal .portal-auth-shell :is(.password-input-wrap, .password-input-container) input { padding-inline-end: 52px; }
body.bc-portal .password-toggle { position: absolute; top: 50%; right: auto; left: auto; inset-inline-end: 2px; transform: translateY(-50%); display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 8px; background: transparent; color: var(--ink-quiet); cursor: pointer; }
body.bc-portal .password-toggle:hover { background: var(--accent-wash); color: var(--accent-dark); }
body.bc-portal .password-toggle .portal-eye-closed { display: none; }
body.bc-portal .password-toggle[data-visible="true"] .portal-eye-open { display: none; }
body.bc-portal .password-toggle[data-visible="true"] .portal-eye-closed { display: block; }
body.bc-portal .password-requirements { padding: 14px; margin: 10px 0 0; background: var(--wash); border: 1px solid var(--line-faint); border-radius: 10px; }
body.bc-portal .password-requirements :is(h3, .password-requirements-title) { margin: 0 0 8px; font-size: 12px; font-weight: 800; color: var(--ink-muted); }
body.bc-portal .password-requirements :is(ul, .password-requirements-list) { padding: 0; margin: 0; display: grid; gap: 5px 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); list-style: none; }
body.bc-portal .password-requirements :is(li, .password-requirements-item) { font-size: 12px; line-height: 1.5; color: var(--ink-quiet); }
body.bc-portal .password-requirements :is(.is-valid, .valid) { color: var(--success-color); }
body.bc-portal .form-remember { flex-wrap: wrap; gap: 12px; margin-bottom: 20px; }
body.bc-portal :is(.form-checkbox, .checkbox-wrapper) input[type="checkbox"] { width: 17px; height: 17px; min-height: 0; flex-shrink: 0; accent-color: var(--btn); }
body.bc-portal .form-checkbox { margin: 18px 0; gap: 9px; }
body.bc-portal .form-checkbox label { font-size: 13px; line-height: 1.6; color: var(--ink-quiet); }
body.bc-portal :is(.form-checkbox a, .forgot-link, .auth-footer-link, .back-link a) { color: var(--accent-dark); font-weight: 800; }
body.bc-portal .btn-submit { display: inline-flex; align-items: center; justify-content: center; width: 100%; padding: 10px 16px; }
body.bc-portal .portal-auth-shell #submit-btn { display: flex; align-items: center; justify-content: center; width: 100%; margin-top: 22px; }
body.bc-portal .auth-footer { border-top: 1px solid var(--line-faint); margin-top: 24px; padding-top: 18px; }
body.bc-portal .auth-footer-text { font-size: 14px; margin: 0; color: var(--ink-quiet); }
body.bc-portal .auth-footnote { margin: 14px 0 0; color: var(--ink-quiet); font-size: 12px; line-height: 1.65; }
body.bc-portal .portal-auth-shell .info-box { display: flex; align-items: flex-start; gap: 10px; padding: 14px; margin: 22px 0; border: 1px solid var(--accent-ring); background: var(--accent-wash); border-radius: 10px; }
body.bc-portal .portal-auth-shell .info-box i { color: var(--accent-dark); }
body.bc-portal .portal-auth-shell .info-box > .portal-icon { color: var(--accent-dark); }
body.bc-portal .portal-auth-shell .error-box > .portal-icon { width: 44px; height: 44px; color: var(--error-color); }
body.bc-portal .portal-auth-shell .info-box p { margin: 0; font-size: 13px; color: var(--ink-quiet); }
body.bc-portal .portal-auth-shell .back-link { margin: 22px 0 0; font-size: 13px; text-align: center; }
body.bc-portal .alert { border-radius: 10px; padding: 12px 14px; margin: 14px 0; font-size: 14px; line-height: 1.6; }
body.bc-portal .alert-error { background: #fff1f4; color: #a62f49; border: 1px solid #f1ced7; }
body.bc-portal .alert-success { background: #ecf9f3; color: var(--success-color); border: 1px solid #bfe8d5; }
body.bc-portal .alert-warning { background: #fff8e9; color: var(--warning-color); border: 1px solid #f2dfb6; }

/* Marketing: retain every section, feature, configured link and booking control. */
body.bc-portal .landing .hero { padding-top: 60px; padding-bottom: 68px; background: linear-gradient(112deg, rgba(12, 168, 211, .06), transparent 55%, rgba(112, 103, 232, .055)); }
body.bc-portal .landing .hero-orb { opacity: .38; }
body.bc-portal .landing .display-title { font-size: clamp(38px, 4.8vw, 58px); font-weight: 850; line-height: 1.1; letter-spacing: -.035em; margin-top: 18px; background: none; color: var(--ink); }
body.bc-portal .landing .hero-sub { font-size: 18px; line-height: 1.75; margin-top: 20px; }
body.bc-portal .hero-highlights { display: flex; flex-wrap: wrap; gap: 12px 18px; list-style: none; padding: 0; margin: 22px 0 0; font-size: 13px; color: var(--ink-muted); }
body.bc-portal .hero-highlights li { display: inline-flex; align-items: center; gap: 6px; }
body.bc-portal .hero-highlights .portal-icon { width: 16px; color: var(--accent-dark); }
body.bc-portal .landing .hero-actions { margin-top: 28px; gap: 12px; }
body.bc-portal .landing .btn-cta { min-height: 48px; padding: 12px 20px; border-radius: 12px; }
body.bc-portal .landing .hero-disclaimer { font-size: 11px; line-height: 1.6; margin-top: 18px; max-width: 55ch; }
body.bc-portal .landing .section { padding-top: 72px; padding-bottom: 72px; }
body.bc-portal .landing .section-title { font-weight: 850; letter-spacing: -.025em; font-size: clamp(28px, 3.5vw, 40px); }
body.bc-portal .landing .eyebrow { font-weight: 800; letter-spacing: .1em; }
body.bc-portal :is(.feature-card, .pricing-card, .book-demo .demo-panel, .contact-form-box, .contact-info-box) { border-radius: 18px; border-color: var(--line); box-shadow: var(--shadow); }
body.bc-portal .feature-card { background: var(--surface); padding: 26px; }
body.bc-portal .portal-feature-icon { display: grid; place-items: center; width: 44px; height: 44px; color: var(--accent-dark); background: var(--accent-wash); border: 1px solid var(--accent-ring); border-radius: 12px; margin-bottom: 20px; }
body.bc-portal .landing .pricing-card.featured { border-color: var(--accent); background: linear-gradient(145deg, #f0fbfe, #fff 65%); }
body.bc-portal .landing .desktop-frame { border-radius: 16px; box-shadow: 0 14px 40px rgba(24, 40, 72, .12); }
body.bc-portal .landing .faq-item { border: 1px solid var(--line); background: var(--surface); border-radius: 12px; padding-inline: 18px; margin-bottom: 10px; }
body.bc-portal .landing .faq-question { color: var(--ink); font-weight: 800; }
body.bc-portal .landing :is(.demo-form input, .demo-form textarea, .form-group input, .form-group textarea, .time-slot-select) { border-radius: 10px; background: #f9fbfd; border-color: var(--line); min-height: 46px; }
body.bc-portal .landing :is(.contact-info-details, .feature-card, .pricing-card) { overflow-wrap: anywhere; }

/* Long-form resources: content and publication metadata remain untouched. */
body.bc-portal .portal-reader { padding: 36px 24px 64px; }
body.bc-portal .portal-reader > .portal-container { max-width: 1120px; }
body.bc-portal .portal-breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 24px; color: var(--ink-quiet); font-size: 13px; }
body.bc-portal .portal-breadcrumbs a { display: inline-flex; align-items: center; gap: 6px; color: var(--accent-dark); text-decoration: none; font-weight: 800; }
body.bc-portal .portal-reader-grid { display: grid; grid-template-columns: minmax(0, 1fr) 240px; gap: 28px; align-items: start; }
body.bc-portal .portal-reader .portal-card-body { padding: 36px; }
body.bc-portal .portal-reader .page-header { margin-bottom: 30px; padding-bottom: 24px; }
body.bc-portal .page-title { margin: 14px 0 10px; color: var(--ink); font-size: clamp(28px, 3vw, 38px); font-weight: 850; letter-spacing: -.025em; }
body.bc-portal .page-meta { font-size: 12px; color: var(--ink-quiet); }
body.bc-portal .page-content { font-size: 16px; line-height: 1.85; overflow-wrap: anywhere; }
body.bc-portal .page-content :is(h1, h2, h3, h4, h5, h6) { color: var(--ink); font-weight: 800; line-height: 1.4; scroll-margin-top: 100px; }
body.bc-portal .page-content h2 { font-size: 23px; }
body.bc-portal .page-content h3 { font-size: 19px; }
body.bc-portal .page-content a { color: var(--accent-dark); text-decoration: underline; text-underline-offset: 3px; }
body.bc-portal .page-content :is(img, iframe, video) { max-width: 100%; }
body.bc-portal .page-content table { display: block; max-width: 100%; overflow-x: auto; }
body.bc-portal .portal-reader-aside { position: sticky; top: 100px; padding: 20px; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; }
body.bc-portal .portal-reader-aside summary { cursor: pointer; font-size: 13px; font-weight: 850; color: var(--ink); }
body.bc-portal .portal-reader-aside nav { display: grid; gap: 4px; margin-top: 12px; max-height: 48vh; overflow-y: auto; }
body.bc-portal .portal-reader-aside a { display: block; padding: 7px 8px; border-radius: 6px; color: var(--ink-quiet); text-decoration: none; font-size: 13px; line-height: 1.5; }
body.bc-portal .portal-reader-aside a:hover { color: var(--accent-dark); background: var(--accent-wash); }
body.bc-portal .portal-reader-aside .portal-toc-subsection { padding-inline-start: 18px; font-size: 12px; }
body.bc-portal .portal-resource-links { padding-top: 12px; margin-top: 14px; border-top: 1px solid var(--line-faint); }

/* Billing, result screens, public invitations and shipping quotes. */
body.bc-portal .portal-shell { min-height: 0; padding: 40px 24px 64px; background: transparent; }
body.bc-portal .portal-card { border: 1px solid var(--line); border-radius: 16px; background: var(--surface); box-shadow: var(--shadow); }
body.bc-portal .portal-card-body { padding: 28px; }
body.bc-portal .portal-title { font-weight: 850; letter-spacing: -.025em; line-height: 1.3; }
body.bc-portal .portal-subtitle { font-size: 15px; line-height: 1.7; }
body.bc-portal .portal-page-heading { background: linear-gradient(112deg, #ecf9fd, #fff 55%, #f3f0fc); }
body.bc-portal .portal-page-heading .portal-kicker { margin-bottom: 12px; }
body.bc-portal .portal-stat { background: var(--wash); border: 1px solid var(--line-faint); border-radius: 12px; padding: 18px; }
body.bc-portal .portal-stat-label { font-weight: 800; font-size: 11px; letter-spacing: .07em; text-transform: uppercase; }
body.bc-portal .portal-stat-value { font-weight: 850; color: var(--ink); }
body.bc-portal .portal-table-wrap { border: 1px solid var(--line); border-radius: 12px; overflow-x: auto; }
body.bc-portal .portal-table { width: 100%; border-collapse: collapse; }
body.bc-portal .portal-table th { padding: 13px 16px; background: var(--wash); color: var(--ink-quiet); font-size: 11px; letter-spacing: .06em; font-weight: 850; text-transform: uppercase; }
body.bc-portal .portal-table td { padding: 16px; border-color: var(--line-faint); color: var(--ink-muted); font-size: 14px; }
body.bc-portal .portal-table tbody tr:hover { background: #f8fcfe; }
body.bc-portal .portal-badge { border-radius: 7px; font-size: 12px; font-weight: 800; }
body.bc-portal :is(.soft-block, .plan-option, .payment-method-item) { border-radius: 12px; border-color: var(--line); background: var(--wash); }
body.bc-portal .checkout-title { font-weight: 850; letter-spacing: -.025em; }
body.bc-portal .invitation-card { margin: 44px auto; padding: 30px; background: var(--surface); border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow); max-width: 540px; }
body.bc-portal .invitation-card h1 { font-size: 28px; line-height: 1.3; font-weight: 850; margin: 12px 0; }
body.bc-portal .invitation-card p { color: var(--ink-quiet); font-size: 14px; }
body.bc-portal .invitation-card label { display: block; margin-bottom: 7px; font-size: 13px; font-weight: 800; color: var(--ink-muted); }
body.bc-portal .invitation-card :is(input, select, textarea):not([type="hidden"]) { width: 100%; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: #f9fbfd; }
body.bc-portal .invitation-card :is(.button, button) { display: inline-flex; justify-content: center; align-items: center; border: 1px solid var(--btn); background: var(--btn); color: #fff; padding: 12px 18px; border-radius: 10px; font-weight: 800; font-size: 14px; text-decoration: none; cursor: pointer; }
body.bc-portal .invitation-card :is(.helptext, .invitation-footer) { font-size: 12px; line-height: 1.7; }
body.bc-portal .invitation-card .errorlist { color: var(--error-color); }
body.bc-portal.broker-public .simple-header { padding: 20px 24px; background: var(--surface); border-bottom: 1px solid var(--line); }
body.bc-portal.broker-public .broker-content { max-width: 1120px; margin-inline: auto; padding: 32px 24px; }
body.bc-portal.broker-public .workspace-card { border-radius: 16px; box-shadow: var(--shadow); }
body.bc-portal.bc-quote .wrap { padding-top: 48px; max-width: 780px; }
body.bc-portal.bc-quote .card { border-color: var(--line); border-radius: 18px; box-shadow: var(--shadow); }
body.bc-portal.bc-quote .head { padding: 28px; }
body.bc-portal.bc-quote .body { padding: 28px; }
body.bc-portal.bc-quote .route { font-size: 22px; line-height: 1.5; overflow-wrap: anywhere; }
body.bc-portal.bc-quote .row { border-color: var(--line-faint); flex-wrap: wrap; }
body.bc-portal.bc-quote .total { background: var(--accent-wash); color: var(--accent-dark); font-size: 20px; flex-wrap: wrap; }

@media (min-width: 900px) {
  body.bc-portal .landing .hero-copy, body.bc-portal .landing .hero-devices { grid-column: span 6; }
}
@media (max-width: 1023px) {
  body.bc-portal .nav-container { height: 66px; padding-inline: 20px; }
  body.bc-portal .portal-auth-shell { max-width: 510px; grid-template-columns: minmax(0, 1fr); gap: 0; margin: 32px auto; }
  body.bc-portal .portal-auth-intro { display: none; }
  body.bc-portal .portal-reader-grid { grid-template-columns: minmax(0, 1fr); }
  body.bc-portal .portal-reader-aside { position: static; grid-row: 1; }
  body.bc-portal .portal-reader-aside nav { max-height: 180px; }
  body.bc-portal .portal-resource-links { display: flex; flex-wrap: wrap; gap: 4px; }
}
@media (max-width: 640px) {
  body.bc-portal .logo-img { height: 30px; }
  body.bc-portal .portal-auth-shell { width: calc(100% - 32px); margin-block: 24px; }
  body.bc-portal .portal-auth-shell :is(.auth-card, .card) { padding: 24px; border-radius: 16px; }
  body.bc-portal .portal-auth-shell .password-requirements ul { grid-template-columns: minmax(0, 1fr); }
  body.bc-portal .portal-auth-fields-row { grid-template-columns: minmax(0, 1fr); gap: 0; }
  body.bc-portal :is(.portal-shell, .portal-reader) { padding: 24px 16px 40px; }
  body.bc-portal .portal-reader .portal-card-body { padding: 24px; }
  body.bc-portal .landing .hero { padding-block: 36px 44px; }
  body.bc-portal .landing .section { padding-block: 48px; }
  body.bc-portal .landing .hero-sub { font-size: 16px; }
  body.bc-portal .hero-highlights { justify-content: center; gap: 8px 14px; }
  body.bc-portal .landing .hero-actions { flex-wrap: wrap; }
  body.bc-portal .footer-wrap { padding-inline: 20px; }
  body.bc-portal .footer-inner { gap: 18px; }
  body.bc-portal .invitation-card { margin: 20px auto; padding: 24px; }
  body.bc-portal .portal-card-body { padding: 22px; }
  body.bc-portal .portal-actions { flex-wrap: wrap; }
  body.bc-portal .portal-btn { max-width: 100%; }
}
