@font-face { font-family:Poppins; font-style:normal; font-weight:700; font-display:swap; src:url('fonts/Poppins-Bold.ttf') format('truetype'); }
@font-face { font-family:Poppins; font-style:normal; font-weight:600; font-display:swap; src:url('fonts/Poppins-SemiBold.ttf') format('truetype'); }
@font-face { font-family:Montserrat; font-style:normal; font-weight:100 900; font-display:swap; src:url('fonts/Montserrat.ttf') format('truetype'); }
:root {
    --bf-red: #d61f26;
    --bf-signal: #ef2b35;
    --bf-charcoal: #2f3136;
    --bf-steel: #6c7078;
    --bf-light: #e7e8eb;
    --bf-pale: #f7f7f8;
    --bf-white: #fff;
    --bf-shadow: 0 18px 45px rgba(47, 49, 54, .08);
    --bf-radius: 14px;
}

/* The portal is a focused website route. These hooks affect only the
 * auto-created BridgeFin Portal page; public Ikvti pages retain their theme
 * header, hero, sidebar and footer. */
body.bf-portal-page #masthead,
body.bf-portal-page .page-header,
body.bf-portal-page #secondary,
body.bf-portal-page #colophon { display: none !important; }
body.bf-portal-page #primary.site-content { width: 100% !important; max-width: none !important; flex: 0 0 100% !important; padding: 0 !important; }
body.bf-portal-page #content > .container,
body.bf-portal-page #content > .container > .row { width: 100%; max-width: none; margin-right: 0; margin-left: 0; }
body.bf-portal-page .entry-content { margin: 0 !important; }
body.bf-portal-page .bf-portal-shell { max-width: none; }
body.bf-portal-page .bf-portal-welcome h1 { color: var(--bf-white) !important; }
body.bf-portal-page .bf-portal-nav-link { color: var(--bf-red) !important; }
body.bf-portal-page .bf-portal-nav-link.is-active { color: var(--bf-white) !important; }
body.bf-portal-page .bf-button { color: var(--bf-white) !important; background: var(--bf-red) !important; }
body.bf-portal-page .bf-button:hover,
body.bf-portal-page .bf-button:focus { color: var(--bf-white) !important; background: var(--bf-signal) !important; }
body.bf-portal-page .bf-button-ghost { color: var(--bf-white) !important; background: transparent !important; }
body.bf-portal-page .bf-portal-login input[type="submit"] { color: var(--bf-white) !important; background: var(--bf-red) !important; }

.bf-skip-link { position: absolute; left: -9999px; top: 10px; z-index: 999; padding: 10px 14px; background: var(--bf-charcoal); color: var(--bf-white); }
.bf-skip-link:focus { left: 10px; }
.bf-portal-shell, .bf-portal-gate { box-sizing: border-box; max-width: 1280px; margin: 0 auto; color: var(--bf-charcoal); font-family: Montserrat, Arial, sans-serif; }
.bf-portal-shell *, .bf-portal-gate * { box-sizing: border-box; }
.bf-portal-header { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 20px 20px; border-bottom: 1px solid var(--bf-light); background: var(--bf-white); }
.bf-portal-brand { display: inline-flex; align-items: center; width: min(250px, 48vw); max-width: 250px; }
.bf-portal-brand img { display: block; width: 100%; height: auto; max-height: 54px; }
.bf-portal-header-actions { display: flex; align-items: center; gap: 14px; font-size: 12px; }
.bf-portal-role { color: var(--bf-steel); text-align: right; }
.bf-portal-user-name { color: var(--bf-charcoal); font-weight: 800; }
.bf-text-link { color: var(--bf-red); text-decoration: none; font-weight: 700; }
.bf-text-link:focus, .bf-text-link:hover { text-decoration: underline; }
.bf-portal-nav { display: flex; gap: 4px; padding: 10px 16px; border-bottom: 1px solid var(--bf-light); background: var(--bf-white); overflow-x: auto; }
.bf-portal-nav-link { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 7px; padding: 9px 11px; border-radius: 5px; color: var(--bf-steel); text-decoration: none; font-size: 11px; font-weight: 800; }
.bf-portal-nav-link svg { width: 17px; height: 17px; }
.bf-portal-nav-link:hover, .bf-portal-nav-link:focus { background: #fff0f1; color: var(--bf-red); }
.bf-portal-nav-link.is-active { background: var(--bf-charcoal); color: var(--bf-white); }
.bf-portal-main { padding: 22px 16px 46px; background: var(--bf-pale); }
.bf-portal-notice { margin: 0 0 18px; padding: 13px 16px; border-left: 4px solid #1f9d61; background: #effaf4; color: #176c41; font-size: 12px; line-height: 1.5; }
.bf-portal-notice-error { border-left-color: var(--bf-red); background: #fff3f4; color: #9e1a22; }
.bf-portal-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.bf-portal-section-heading h1 { margin: 0; color: var(--bf-charcoal); font-family: Poppins, Montserrat, Arial, sans-serif; font-size: clamp(28px, 5vw, 42px); line-height: 1.08; }
.bf-portal-section-heading p:not(.bf-eyebrow) { max-width: 700px; margin: 10px 0 0; color: var(--bf-steel); font-size: 14px; line-height: 1.6; }
.bf-portal-section-heading > .bf-button { flex: 0 0 auto; }
.bf-portal-welcome { display: flex; flex-direction: column; gap: 20px; margin-bottom: 22px; padding: 24px 20px; border-radius: var(--bf-radius); background: linear-gradient(120deg, var(--bf-charcoal), #464951); color: var(--bf-white); overflow: hidden; position: relative; }
.bf-portal-welcome::after { content: ''; position: absolute; width: 240px; height: 240px; right: -80px; bottom: -120px; border: 18px solid rgba(239, 43, 53, .75); border-radius: 50%; transform: rotate(-24deg); }
.bf-eyebrow { margin: 0 0 8px; color: var(--bf-red); text-transform: uppercase; letter-spacing: .16em; font-size: 10px; font-weight: 800; }
.bf-portal-welcome .bf-eyebrow { color: #ff6c72; }
.bf-portal-welcome h1 { position: relative; z-index: 1; margin: 0; max-width: 800px; font-family: Poppins, Montserrat, Arial, sans-serif; font-size: clamp(28px, 5vw, 48px); line-height: 1.08; letter-spacing: -.02em; color: var(--bf-white); }
.bf-lede { position: relative; z-index: 1; max-width: 690px; margin: 12px 0 0; color: #eef0f3; font-size: 15px; line-height: 1.65; }
.bf-status-pill { position: relative; z-index: 1; align-self: flex-start; display: inline-flex; align-items: center; gap: 8px; padding: 8px 11px; border: 1px solid rgba(255,255,255,.22); border-radius: 999px; color: #f3f4f6; font-size: 11px; }
.bf-status-dot, .bf-check-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--bf-signal); }
.bf-stat-grid, .bf-admin-stat-grid { display: grid; grid-template-columns: 1fr; gap: 12px; margin-bottom: 22px; }
.bf-stat-card, .bf-admin-stat { display: flex; align-items: flex-start; gap: 13px; min-height: 110px; padding: 18px; border: 1px solid var(--bf-light); border-radius: var(--bf-radius); background: var(--bf-white); box-shadow: var(--bf-shadow); }
.bf-stat-icon { display: grid; flex: 0 0 36px; width: 36px; height: 36px; place-items: center; border-radius: 10px; background: #fff0f1; color: var(--bf-red); }
.bf-stat-icon svg, .bf-panel-heading > svg { width: 22px; height: 22px; }
.bf-stat-label, .bf-admin-stat p { margin: 0 0 5px; color: var(--bf-steel); font-size: 12px; font-weight: 700; }
.bf-stat-card strong, .bf-admin-stat strong { display: block; font-family: Poppins, Montserrat, Arial, sans-serif; font-size: 28px; line-height: 1; color: var(--bf-charcoal); }
.bf-stat-card span:not(.bf-stat-icon), .bf-admin-stat span:not(.bf-stat-icon) { display: block; margin-top: 7px; color: var(--bf-steel); font-size: 11px; line-height: 1.45; }
.bf-portal-columns, .bf-admin-grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
.bf-panel, .bf-admin-card { padding: 22px 20px; border: 1px solid var(--bf-light); border-radius: var(--bf-radius); background: var(--bf-white); box-shadow: var(--bf-shadow); }
.bf-panel-dark, .bf-admin-card-dark { border-color: var(--bf-charcoal); background: var(--bf-charcoal); color: var(--bf-white); }
.bf-panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.bf-panel-heading h2, .bf-admin-card h2 { margin: 0; font-family: Poppins, Montserrat, Arial, sans-serif; font-size: 22px; line-height: 1.16; letter-spacing: -.01em; color: var(--bf-charcoal); }
.bf-panel-dark .bf-panel-heading h2, .bf-admin-card-dark .bf-panel-heading h2 { color: var(--bf-white); }
.bf-panel-heading > svg { color: var(--bf-red); }
.bf-panel-mark { color: var(--bf-red); font-family: Poppins, Montserrat, Arial, sans-serif; font-size: 15px; font-weight: 800; letter-spacing: .05em; }
.bf-panel p, .bf-admin-card > p, .bf-admin-card-dark p { color: var(--bf-steel); font-size: 13px; line-height: 1.65; }
.bf-panel-dark p, .bf-admin-card-dark p { color: #d8dbe0; }
.bf-progress { height: 7px; margin-top: 20px; border-radius: 99px; background: #555960; overflow: hidden; }
.bf-progress span { display: block; height: 100%; background: linear-gradient(90deg, var(--bf-red), var(--bf-signal)); border-radius: inherit; }
.bf-progress-meta { display: flex; justify-content: space-between; gap: 10px; margin-top: 8px; color: #d8dbe0; font-size: 11px; }
.bf-progress-meta strong { color: var(--bf-white); }
.bf-empty-state { display: grid; place-items: center; min-height: 160px; padding: 22px 10px; text-align: center; }
.bf-empty-icon { display: grid; width: 44px; height: 44px; margin-bottom: 11px; place-items: center; border-radius: 50%; background: #fff0f1; color: var(--bf-red); }
.bf-empty-icon svg { width: 22px; height: 22px; }
.bf-empty-state p { margin: 0 0 4px; color: var(--bf-charcoal); font-weight: 800; }
.bf-empty-state span { color: var(--bf-steel); font-size: 12px; line-height: 1.5; }
.bf-help-strip { display: grid; grid-template-columns: 1fr; gap: 12px; margin-top: 16px; padding: 20px; border-left: 4px solid var(--bf-red); background: var(--bf-white); }
.bf-help-strip h2 { margin: 0; font-family: Poppins, Montserrat, Arial, sans-serif; font-size: 18px; }
.bf-help-strip p { margin: 0; color: var(--bf-steel); font-size: 12px; line-height: 1.6; }
.bf-portal-footer { display: flex; justify-content: space-between; gap: 12px; padding: 18px 20px; background: var(--bf-charcoal); color: #d8dbe0; font-size: 11px; }
.bf-portal-footer span:first-child { color: var(--bf-white); font-weight: 800; }
.bf-portal-gate { margin: 25px auto; padding: 30px 22px; border: 1px solid var(--bf-light); border-top: 5px solid var(--bf-red); background: var(--bf-white); box-shadow: var(--bf-shadow); }
.bf-portal-gate h2 { margin: 0 0 10px; font-family: Poppins, Montserrat, Arial, sans-serif; }
.bf-portal-gate p { color: var(--bf-steel); line-height: 1.6; }
.bf-button { display: inline-block; padding: 12px 18px; border-radius: 4px; background: var(--bf-red); color: var(--bf-white); text-decoration: none; font-weight: 800; }
.bf-button:hover, .bf-button:focus { background: var(--bf-signal); color: var(--bf-white); }
.bf-button:disabled, .bf-button[disabled] { cursor: not-allowed; opacity: .55; }
.bf-button-ghost { border: 1px solid rgba(255,255,255,.35); background: transparent; }
.bf-button-danger { background: #9e1a22; }
.bf-button-small { padding: 9px 12px; font-size: 11px; }
.bf-quick-links { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.bf-activity-list { display: grid; gap: 11px; margin: 18px 0 0; padding: 0; list-style: none; }
.bf-activity-list li { display: flex; gap: 10px; align-items: flex-start; padding-bottom: 11px; border-bottom: 1px solid var(--bf-light); }
.bf-activity-list li:last-child { border-bottom: 0; }
.bf-activity-dot { flex: 0 0 8px; width: 8px; height: 8px; margin-top: 5px; border-radius: 50%; background: var(--bf-signal); }
.bf-activity-list strong { display: block; color: var(--bf-charcoal); font-size: 12px; line-height: 1.4; }
.bf-activity-list small { display: block; margin-top: 3px; color: var(--bf-steel); font-size: 10px; }
.bf-help-text { color: var(--bf-steel); font-size: 12px; line-height: 1.6; }
.bf-application-sections { display: grid; gap: 16px; }
.bf-application-review { margin-top: 16px; }
.bf-review-form { display: grid; gap: 10px; margin-top: 16px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.18); }
.bf-review-form .bf-field { color: var(--bf-white); }
.bf-review-form .bf-field small { color: #d8dbe0; }
.bf-readonly-grid { display: grid; grid-template-columns: 1fr; gap: 12px; }
.bf-readonly-grid p { margin: 7px 0 0; color: var(--bf-steel); font-size: 12px; line-height: 1.5; }
.bf-portal-login { max-width: 520px; margin: 28px auto; }
.bf-portal-login-mark { display: inline-flex; width: min(260px, 78vw); margin-bottom: 25px; }
.bf-portal-login-mark img { display: block; width: 100%; height: auto; }
.bf-portal-login h2 { margin: 0 0 10px; font-family: Poppins, Montserrat, Arial, sans-serif; font-size: 30px; }
.bf-portal-login p { color: var(--bf-steel); font-size: 13px; line-height: 1.6; }
.bf-portal-login form { margin-top: 22px; }
.bf-portal-login label { display: block; margin: 0 0 12px; color: var(--bf-charcoal); font-size: 12px; font-weight: 800; }
.bf-portal-login input[type="text"], .bf-portal-login input[type="password"] { display: block; width: 100%; min-height: 44px; margin-top: 6px; border: 1px solid #cfd2d7; border-radius: 5px; }
.bf-portal-login input[type="submit"] { min-height: 44px; padding: 0 18px; border: 0; border-radius: 4px; background: var(--bf-red); color: var(--bf-white); font-weight: 800; cursor: pointer; }
.bf-portal-login .login-remember { display: none; }
.bf-login-help { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--bf-light); font-size: 11px !important; }

/* WordPress admin view */
.bf-admin-wrap { max-width: 1320px; margin-right: 24px; }
.bf-admin-masthead { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin: 20px 0 18px; padding: 24px; border-radius: var(--bf-radius); background: var(--bf-charcoal); color: var(--bf-white); overflow: hidden; position: relative; }
.bf-admin-masthead::after { content: ''; position: absolute; width: 360px; height: 360px; right: -110px; bottom: -220px; border: 22px solid var(--bf-red); border-radius: 50%; transform: rotate(-25deg); opacity: .9; }
.bf-admin-title { position: relative; z-index: 1; margin: 0; color: var(--bf-white); font-family: Poppins, Montserrat, Arial, sans-serif; font-size: clamp(26px, 4vw, 40px); line-height: 1.1; }
.bf-admin-intro { position: relative; z-index: 1; max-width: 680px; margin: 10px 0 0; color: #d8dbe0; font-size: 13px; }
.bf-admin-masthead .bf-eyebrow { position: relative; z-index: 1; color: #ff6c72; }
.bf-admin-masthead-mark { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-end; color: #fff; font-family: Poppins, Montserrat, Arial, sans-serif; font-size: 28px; font-weight: 800; line-height: 1; }
.bf-admin-masthead-mark span { margin-top: 4px; color: #ff6c72; font-size: 12px; letter-spacing: .2em; }
.bf-admin-tabs { display: flex; gap: 5px; margin-bottom: 18px; padding: 0 0 5px; border-bottom: 1px solid var(--bf-light); overflow-x: auto; }
.bf-admin-tabs a { flex: 0 0 auto; padding: 10px 13px; color: var(--bf-steel); text-decoration: none; font-size: 12px; font-weight: 700; }
.bf-admin-tabs a.is-active { border-bottom: 3px solid var(--bf-red); color: var(--bf-charcoal); }
.bf-admin-stat { display: block; min-height: 130px; }
.bf-admin-stat .bf-stat-icon { float: right; }
.bf-admin-stat strong { margin-top: 7px; }
.bf-admin-grid { margin-bottom: 18px; }
.bf-check-row { display: grid; grid-template-columns: 10px 1fr; gap: 8px; align-items: center; padding: 9px 0; border-bottom: 1px solid var(--bf-light); color: var(--bf-charcoal); font-size: 12px; }
.bf-check-row:last-child { border-bottom: 0; }
.bf-check-row strong { grid-column: 2; color: var(--bf-steel); font-size: 11px; font-weight: 600; }
.bf-check-dot.is-ok { background: #1f9d61; }
.bf-check-dot.is-warning { background: #d99400; }
.bf-module-map { margin-bottom: 18px; }
.bf-module-grid { display: grid; grid-template-columns: 1fr; gap: 10px; margin-top: 15px; }
.bf-module { display: grid; grid-template-columns: 36px 1fr; gap: 7px 12px; padding: 14px; border: 1px solid var(--bf-light); border-radius: 10px; background: var(--bf-pale); }
.bf-module.is-live { border-color: #a4dbbf; background: #f4fbf7; }
.bf-module.is-held { border-color: #ffd6d8; background: #fff8f8; }
.bf-module-number { grid-row: span 2; color: var(--bf-red); font-family: Poppins, Montserrat, Arial, sans-serif; font-size: 18px; font-weight: 800; }
.bf-module h3 { margin: 0; font-size: 14px; }
.bf-module-status { display: inline-block; margin-top: 3px; color: var(--bf-steel); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.bf-module p { grid-column: 1 / -1; margin: 3px 0 0; color: var(--bf-steel); font-size: 11px; line-height: 1.5; }
.bf-settings-card { margin-bottom: 18px; }
.bf-form-grid { display: grid; grid-template-columns: 1fr; gap: 14px; margin-top: 18px; }
.bf-field { display: flex; flex-direction: column; gap: 6px; color: var(--bf-charcoal); font-size: 12px; font-weight: 800; }
.bf-field input, .bf-field select, .bf-field textarea { width: 100%; min-height: 40px; border: 1px solid #cfd2d7; border-radius: 5px; background: var(--bf-white); color: var(--bf-charcoal); font: inherit; }
.bf-field textarea { min-height: 84px; padding: 8px 10px; resize: vertical; }
.bf-field small { color: var(--bf-steel); font-size: 11px; font-weight: 400; line-height: 1.45; }
.bf-notice-card { border-left: 4px solid var(--bf-red); }
.bf-notice-card h2 { font-size: 18px; }
.bf-table-wrap { width: 100%; overflow-x: auto; }
.bf-table { min-width: 680px; margin-top: 16px; }
.bf-table th { color: var(--bf-charcoal); font-size: 11px; text-transform: uppercase; letter-spacing: .06em; }
.bf-table td { color: var(--bf-steel); font-size: 12px; vertical-align: top; }
.bf-badge { display: inline-block; padding: 3px 7px; border-radius: 999px; background: var(--bf-light); color: var(--bf-charcoal); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.bf-badge-held { background: #fff1d8; color: #875900; }
.bf-badge-sent { background: #ddf5e9; color: #176c41; }
.bf-badge-failed { background: #ffe0e2; color: #9e1a22; }
.bf-badge-active { background: #ddf5e9; color: #176c41; }
.bf-badge-pending, .bf-badge-pending_review { background: #fff1d8; color: #875900; }
.bf-badge-approved { background: #ddf5e9; color: #176c41; }
.bf-badge-draft { background: #eef0f3; color: var(--bf-charcoal); }
.bf-badge-suspended { background: #fff1d8; color: #875900; }
.bf-badge-revoked, .bf-badge-archived, .bf-badge-expired { background: #ffe0e2; color: #9e1a22; }
.bf-firm-code { color: var(--bf-charcoal); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 11px; font-weight: 800; letter-spacing: .06em; }
.bf-table-subtext { color: var(--bf-steel); font-size: 11px; }
.bf-form-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 2px; }
.bf-inline-form { display: inline-block; margin: 0 4px 4px 0; }
.bf-filter-bar { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; margin-top: 16px; }
.bf-filter-bar label { display: flex; flex-direction: column; gap: 5px; min-width: 170px; color: var(--bf-charcoal); font-size: 11px; font-weight: 800; }
.bf-filter-bar input, .bf-filter-bar select { min-height: 38px; border: 1px solid #cfd2d7; border-radius: 5px; background: var(--bf-white); color: var(--bf-charcoal); }
.bf-filter-bar button { min-height: 38px; }
.bf-firm-detail { margin-top: 18px; }
.bf-firm-summary { margin: 8px 0 0; color: var(--bf-steel); font-size: 12px; }
.bf-firm-summary span { margin: 0 5px; color: var(--bf-light); }
.bf-subcard { padding: 18px; border: 1px solid var(--bf-light); border-radius: 10px; background: var(--bf-pale); }
.bf-subcard h3 { margin: 0; color: var(--bf-charcoal); font-family: Poppins, Montserrat, Arial, sans-serif; font-size: 18px; }
.bf-subcard > p { color: var(--bf-steel); font-size: 12px; line-height: 1.6; }
.bf-application-history { display: grid; gap: 16px; }
.bf-application-history > .bf-panel-heading { margin-bottom: 0; }
.bf-request-list { display: grid; gap: 12px; }
.bf-request-card { padding: 16px 18px; border: 1px solid var(--bf-light); border-left: 3px solid var(--bf-red); border-radius: 10px; background: var(--bf-pale); }
.bf-request-card > div { display: flex; flex-wrap: wrap; align-items: center; gap: 9px 12px; }
.bf-request-card strong { color: var(--bf-charcoal); font-family: Poppins, Montserrat, Arial, sans-serif; font-size: 14px; }
.bf-request-card p { margin: 10px 0 6px; color: var(--bf-charcoal); font-size: 14px; line-height: 1.55; white-space: pre-line; }
.bf-request-card small { color: var(--bf-steel); font-size: 11px; line-height: 1.5; }
.bf-review-queue { margin-bottom: 24px; }
.bf-review-queue .bf-help-text { max-width: 760px; }
.bf-review-queue .bf-table-wrap { margin-top: 18px; }
.bf-review-queue .bf-table td, .bf-review-queue .bf-table th { white-space: nowrap; }
@media (max-width: 760px) {
    .bf-review-queue .bf-table td, .bf-review-queue .bf-table th { white-space: normal; }
    .bf-review-queue .bf-table td:last-child { min-width: 92px; }
}
.bf-reviewer-tools{display:grid;gap:14px;margin-top:18px;padding-top:18px;border-top:1px solid var(--bf-light)}
.bf-reviewer-tools>.bf-panel-heading{margin-bottom:0}
.bf-review-note-list{display:grid;gap:10px}
.bf-review-note{padding:14px 16px;border:1px solid var(--bf-light);border-left:3px solid var(--bf-charcoal);border-radius:10px;background:#fff;overflow-wrap:anywhere}
.bf-review-note>div{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 12px}
.bf-review-note span{font-size:11px;color:var(--bf-steel)}
.bf-review-note p{margin:9px 0 0;white-space:pre-line;line-height:1.55;color:var(--bf-charcoal)}
.bf-review-diff{display:grid;gap:10px}
.bf-review-diff h3{margin:0;font-size:15px}
.bf-review-diff .bf-table td,.bf-review-diff .bf-table th{white-space:normal;overflow-wrap:anywhere;vertical-align:top}
.bf-review-note-form{display:grid;gap:12px;padding-top:14px;border-top:1px solid var(--bf-light)}
.bf-guardrail-list { display: grid; gap: 8px; margin: 20px 0 0; padding: 0; list-style: none; color: #eef0f3; font-size: 12px; }
.bf-guardrail-list li { position: relative; padding-left: 17px; line-height: 1.45; }
.bf-guardrail-list li::before { content: ''; position: absolute; top: .45em; left: 0; width: 7px; height: 7px; border-radius: 50%; background: var(--bf-signal); }

@media (min-width: 640px) {
    .bf-portal-header { padding: 24px 28px; }
    .bf-portal-nav { padding: 10px 28px; }
    .bf-portal-main { padding: 30px 28px 60px; }
    .bf-portal-welcome { padding: 32px; }
    .bf-stat-grid, .bf-admin-stat-grid { grid-template-columns: repeat(2, 1fr); gap: 15px; }
    .bf-help-strip { grid-template-columns: 1fr 1fr; align-items: center; padding: 24px; }
    .bf-module-grid { grid-template-columns: repeat(2, 1fr); }
    .bf-form-grid { grid-template-columns: repeat(2, 1fr); }
    .bf-readonly-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 960px) {
    .bf-portal-welcome { flex-direction: row; align-items: flex-end; justify-content: space-between; min-height: 230px; }
    .bf-status-pill { align-self: flex-end; }
    .bf-stat-grid, .bf-admin-stat-grid { grid-template-columns: repeat(4, 1fr); }
    .bf-portal-columns, .bf-admin-grid { grid-template-columns: 1.04fr .96fr; gap: 20px; }
    .bf-panel, .bf-admin-card { padding: 28px; }
    .bf-module-grid { grid-template-columns: repeat(3, 1fr); }
    .bf-application-sections { grid-template-columns: repeat(2, 1fr); }
    .bf-application-sections > section:first-child, .bf-application-sections > section:nth-child(3), .bf-application-sections > section:nth-child(4), .bf-application-sections > section:nth-child(5) { grid-column: 1 / -1; }
}

/* Website-facing dashboard shell. This block is intentionally page-scoped;
 * the portal stylesheet is loaded after the active theme so the app owns its
 * typography, spacing and viewport without changing public Elementor pages. */
body.bf-portal-page {
    overflow-x: hidden;
    background: #f1f3f5;
}
body.bf-portal-page #page,
body.bf-portal-page .page-content,
body.bf-portal-page .page-content > .container,
body.bf-portal-page .page-content > .container > .row,
body.bf-portal-page #primary,
body.bf-portal-page #content,
body.bf-portal-page .entry-content,
body.bf-portal-page article.hentry {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}
body.bf-portal-page .page-content { padding-top: 0 !important; padding-bottom: 0 !important; }
body.bf-portal-page .page-content > .container > .row { display: block !important; }
body.bf-portal-page article > .entry-content { min-height: 100vh; }
body.bf-portal-page .bf-portal-shell {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    min-height: 100vh;
    max-width: none;
    margin: 0;
}
body.bf-portal-page .bf-portal-sidebar {
    position: fixed;
    z-index: 10001;
    inset: 0 auto 0 0;
    display: flex;
    width: min(286px, 88vw);
    flex-direction: column;
    justify-content: space-between;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: #858b94 #23262b;
    background: #25282e;
    color: var(--bf-white);
    box-shadow: 18px 0 46px rgba(20, 22, 26, .2);
    transform: translateX(-105%);
    transition: transform .22s ease;
}
body.bf-portal-page .bf-portal-sidebar.is-open { transform: translateX(0); }
body.bf-portal-page .bf-portal-sidebar-top { padding: 22px 16px; }
body.bf-portal-page .bf-portal-sidebar-brand {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 56px;
    padding: 4px 5px;
    border-radius: 8px;
    background: transparent;
}
body.bf-portal-page .bf-portal-sidebar-brand img { display: block; width: 100%; height: auto; }
body.bf-portal-page .bf-portal-sidebar-label {
    margin: 30px 10px 10px;
    color: #9da2ab;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
}
body.bf-portal-page .bf-portal-nav {
    display: grid;
    gap: 5px;
    padding: 0 5px;
    border: 0;
    background: transparent;
    overflow: visible;
}
body.bf-portal-page .bf-portal-nav-link {
    display: flex;
    align-items: center;
    gap: 11px;
    min-height: 44px;
    padding: 11px 12px;
    border-radius: 8px;
    color: #d7d9de !important;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.25;
    text-decoration: none;
}
body.bf-portal-page .bf-portal-nav-link svg { width: 18px; height: 18px; color: #aeb3bb; }
body.bf-portal-page .bf-portal-nav-link:hover,
body.bf-portal-page .bf-portal-nav-link:focus { background: rgba(255,255,255,.08); color: var(--bf-white) !important; }
body.bf-portal-page .bf-portal-nav-link.is-active { background: var(--bf-red); color: var(--bf-white) !important; box-shadow: 0 9px 20px rgba(214,31,38,.23); }
body.bf-portal-page .bf-portal-nav-link.is-active svg { color: var(--bf-white); }
body.bf-portal-page .bf-portal-sidebar-footer { display: grid; gap: 7px; padding: 18px 22px 22px; border-top: 1px solid rgba(255,255,255,.1); }
body.bf-portal-page .bf-sidebar-status { display: inline-flex; align-items: center; gap: 8px; color: var(--bf-white); font-size: 11px; font-weight: 800; }
body.bf-portal-page .bf-sidebar-caption { color: #9da2ab; font-size: 10px; line-height: 1.45; }
body.bf-portal-page .bf-portal-scrim {
    position: fixed;
    z-index: 10000;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    background: rgba(26, 28, 33, .54);
}
body.bf-portal-page .bf-portal-app { display: flex; min-width: 0; min-height: 100vh; flex-direction: column; }
body.bf-portal-page .bf-portal-header {
    position: sticky;
    z-index: 100;
    top: 0;
    display: flex;
    align-items: center;
    min-height: 72px;
    padding: 13px 20px;
    border-bottom: 1px solid #e1e3e7;
    background: rgba(255,255,255,.96);
    box-shadow: 0 4px 18px rgba(47,49,54,.05);
}
body.bf-portal-page .bf-portal-menu-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 38px;
    padding: 7px 10px;
    border: 1px solid #d7d9de;
    border-radius: 6px;
    background: var(--bf-white);
    color: var(--bf-charcoal);
    font: inherit;
    font-size: 11px;
    font-weight: 800;
}
body.bf-portal-page .bf-menu-icon { display: grid; gap: 3px; }
body.bf-portal-page .bf-menu-icon i { display: block; width: 14px; height: 2px; background: var(--bf-red); }
body.bf-portal-page .bf-portal-mobile-brand { display: inline-flex; width: min(170px, 42vw); margin-left: 10px; }
body.bf-portal-page .bf-portal-mobile-brand img { display: block; width: 100%; height: auto; }
body.bf-portal-page .bf-mobile-brand-icon { display: none !important; }
body.bf-portal-page .bf-portal-breadcrumb { display: none; min-width: 0; margin-left: 24px; }
body.bf-portal-page .bf-portal-breadcrumb span { display: block; color: var(--bf-steel); font-size: 10px; font-weight: 700; }
body.bf-portal-page .bf-portal-breadcrumb strong { display: block; margin-top: 2px; color: var(--bf-charcoal); font-family: Poppins, Montserrat, Arial, sans-serif; font-size: 14px; line-height: 1.15; }
body.bf-portal-page .bf-portal-header-actions { margin-left: auto; gap: 9px; font-size: 11px; }
body.bf-portal-page .bf-portal-avatar { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 50%; background: #fff0f1; color: var(--bf-red); font-size: 12px; font-weight: 800; }
body.bf-portal-page .bf-portal-role { color: var(--bf-steel); font-size: 10px; line-height: 1.25; text-align: right; }
body.bf-portal-page .bf-portal-user-name { color: var(--bf-charcoal); font-size: 11px; }
body.bf-portal-page .bf-text-link { font-size: 11px; }
body.bf-portal-page .bf-portal-main {
    flex: 1 1 auto;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 24px 20px 48px;
    background: #f4f5f7;
}
body.bf-portal-page .bf-portal-main > * { width: 100%; max-width: 1580px; margin-right: auto; margin-left: auto; }
body.bf-portal-page .bf-portal-main h1,
body.bf-portal-page .bf-portal-main h2,
body.bf-portal-page .bf-portal-main h3,
body.bf-portal-page .bf-portal-gate h2 {
    font-family: Poppins, Montserrat, Arial, sans-serif !important;
    letter-spacing: -.015em !important;
}
body.bf-portal-page .bf-portal-main h1 { margin: 0 0 8px !important; color: var(--bf-charcoal) !important; font-size: clamp(26px, 3vw, 38px) !important; line-height: 1.14 !important; }
body.bf-portal-page .bf-portal-main h2 { margin: 0 !important; color: var(--bf-charcoal) !important; font-size: 21px !important; line-height: 1.22 !important; }
body.bf-portal-page .bf-portal-main h3 { margin: 0 !important; color: var(--bf-charcoal) !important; font-size: 16px !important; line-height: 1.25 !important; }
body.bf-portal-page .bf-portal-main .bf-panel-dark h1,
body.bf-portal-page .bf-portal-main .bf-panel-dark h2,
body.bf-portal-page .bf-portal-main .bf-panel-dark h3,
body.bf-portal-page .bf-portal-main .bf-admin-card-dark h1,
body.bf-portal-page .bf-portal-main .bf-admin-card-dark h2,
body.bf-portal-page .bf-portal-main .bf-admin-card-dark h3 { color: var(--bf-white) !important; }
body.bf-portal-page .bf-portal-welcome { min-height: 206px; margin-bottom: 20px; padding: 30px 32px; border-radius: 16px; }
body.bf-portal-page .bf-portal-welcome h1 { margin: 0 !important; color: var(--bf-white) !important; font-size: clamp(30px, 3.3vw, 43px) !important; line-height: 1.12 !important; }
body.bf-portal-page .bf-portal-welcome .bf-lede { max-width: 620px; margin-top: 12px; font-size: 14px; }
body.bf-portal-page .bf-status-pill { font-size: 10px; }
body.bf-portal-page .bf-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-bottom: 20px; }
body.bf-portal-page .bf-stat-card { min-height: 116px; padding: 18px 19px; border-radius: 12px; box-shadow: 0 9px 28px rgba(47,49,54,.06); }
body.bf-portal-page .bf-stat-card strong { font-size: 25px !important; }
body.bf-portal-page .bf-portal-columns { gap: 18px; }
body.bf-portal-page .bf-panel { padding: 23px 22px; border-radius: 13px; box-shadow: 0 9px 28px rgba(47,49,54,.055); }
body.bf-portal-page .bf-panel-heading { margin-bottom: 13px; }
body.bf-portal-page .bf-panel-heading h2 { font-size: 20px !important; }
body.bf-portal-page .bf-panel p { font-size: 13px; }
body.bf-portal-page .bf-help-strip { max-width: 1580px; margin-top: 18px; padding: 19px 22px; border-radius: 0 10px 10px 0; }
body.bf-portal-page .bf-help-strip h2 { font-size: 18px !important; }
body.bf-portal-page .bf-portal-footer { min-height: 54px; align-items: center; padding: 15px 22px; }
body.bf-portal-page .bf-portal-section-heading { align-items: flex-start; margin-bottom: 20px; }
body.bf-portal-page .bf-portal-section-heading h1 { font-size: clamp(26px, 3vw, 36px) !important; }
body.bf-portal-page .bf-portal-section-heading p:not(.bf-eyebrow) { max-width: 700px; margin: 7px 0 0; font-size: 13px; }
body.bf-portal-page .bf-form-grid { column-gap: 18px; row-gap: 15px; margin-top: 16px; }
body.bf-portal-page .bf-field { min-width: 0; gap: 5px; font-size: 11px; line-height: 1.25; }
body.bf-portal-page .bf-field input,
body.bf-portal-page .bf-field select,
body.bf-portal-page .bf-field textarea,
body.bf-portal-page .bf-filter-bar input,
body.bf-portal-page .bf-filter-bar select {
    width: 100% !important;
    min-height: 42px;
    margin: 0 !important;
    padding: 9px 11px !important;
    border: 1px solid #cbd0d6 !important;
    border-radius: 6px !important;
    background: var(--bf-white) !important;
    color: var(--bf-charcoal) !important;
    font: inherit;
    line-height: 1.35;
}
body.bf-portal-page .bf-field textarea { min-height: 94px; resize: vertical; }
body.bf-portal-page .bf-field input:focus,
body.bf-portal-page .bf-field select:focus,
body.bf-portal-page .bf-field textarea:focus,
body.bf-portal-page .bf-filter-bar input:focus,
body.bf-portal-page .bf-filter-bar select:focus { outline: 2px solid rgba(214,31,38,.22); outline-offset: 1px; border-color: var(--bf-red) !important; }
body.bf-portal-page .bf-field small { margin: 0; font-size: 10px; line-height: 1.4; }
body.bf-portal-page .bf-form-actions { gap: 9px; margin-top: 6px; }
body.bf-portal-page .bf-button { min-height: 40px; padding: 10px 15px; border-radius: 6px; font-size: 11px; line-height: 1.2; }
body.bf-portal-page .bf-button,
body.bf-portal-page .bf-filter-bar button,
body.bf-portal-page .bf-form-actions button,
body.bf-portal-page .bf-portal-login input[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    vertical-align: middle;
    white-space: normal;
}
body.bf-portal-page .bf-portal-login input[type="submit"] { line-height: 1.2; }
body.bf-portal-page .bf-filter-bar { display: grid; grid-template-columns: minmax(0, 1fr); align-items: end; gap: 11px; margin-top: 14px; }
body.bf-portal-page .bf-filter-bar label { min-width: 0; gap: 5px; font-size: 10px; }
body.bf-portal-page .bf-filter-bar button { min-height: 42px; }
body.bf-portal-page .bf-table-wrap { margin-top: 8px; }
body.bf-portal-page .bf-table { min-width: 620px; margin-top: 8px; }
body.bf-portal-page .bf-empty-state { min-height: 180px; padding: 28px 12px; }
body.bf-portal-page .bf-portal-gate { width: min(560px, calc(100% - 32px)); margin: 42px auto; padding: 30px 24px; border-radius: 13px; }
body.bf-portal-page .bf-portal-login h2 { font-size: 28px !important; line-height: 1.18 !important; }
body.bf-portal-page .bf-portal-login-mark { width: min(250px, 78vw); }
body.bf-portal-page > div[style*="position: fixed"][style*="z-index: 99999"] { display: none !important; }

@media (min-width: 640px) {
    body.bf-portal-page .bf-portal-main { padding: 30px 30px 56px; }
    body.bf-portal-page .bf-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body.bf-portal-page .bf-filter-bar { grid-template-columns: minmax(0, 1fr) 210px auto; }
}

@media (min-width: 1024px) {
    body.bf-portal-page .bf-portal-shell { grid-template-columns: 252px minmax(0, 1fr); }
    body.bf-portal-page .bf-portal-sidebar { position: sticky; z-index: 1; top: 0; width: 252px; height: 100vh; transform: none; box-shadow: none; }
    body.bf-portal-page .bf-portal-menu-toggle,
    body.bf-portal-page .bf-portal-mobile-brand,
    body.bf-portal-page .bf-portal-scrim { display: none; }
    body.bf-portal-page .bf-portal-breadcrumb { display: block; }
    body.bf-portal-page .bf-portal-header { min-height: 76px; padding: 14px 38px; }
    body.bf-portal-page .bf-portal-main { padding: 36px 42px 68px; }
    body.bf-portal-page .bf-stat-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    body.bf-portal-page .bf-portal-welcome { display: flex; flex-direction: row; align-items: flex-end; justify-content: space-between; }
}

@media (min-width: 1440px) {
    body.bf-portal-page .bf-portal-shell { grid-template-columns: 272px minmax(0, 1fr); }
    body.bf-portal-page .bf-portal-sidebar { width: 272px; }
    body.bf-portal-page .bf-portal-main { padding-right: 56px; padding-left: 56px; }
}

@media (max-width: 639px) {
    body.bf-portal-page .bf-portal-role { display: none; }
    body.bf-portal-page .bf-portal-header-actions { gap: 8px; }
    body.bf-portal-page .bf-portal-main { padding-top: 21px; }
    body.bf-portal-page .bf-portal-welcome { min-height: 205px; padding: 24px 21px; }
    body.bf-portal-page .bf-portal-welcome h1 { font-size: 30px !important; }
    body.bf-portal-page .bf-status-pill { align-self: flex-start; }
    body.bf-portal-page .bf-panel { padding: 20px 17px; }
    body.bf-portal-page .bf-portal-section-heading { display: block; }
    body.bf-portal-page .bf-portal-section-heading > .bf-button { margin-top: 14px; }
    body.bf-portal-page .bf-form-actions .bf-button { flex: 0 1 auto; }
}

@media (max-width: 420px) {
    body.bf-portal-page .bf-portal-mobile-brand { width: 34px; height: 34px; margin-left: 9px; }
    body.bf-portal-page .bf-portal-mobile-brand .bf-mobile-brand-full { display: none; }
    body.bf-portal-page .bf-portal-mobile-brand .bf-mobile-brand-icon { display: block !important; width: 34px; height: 34px; }
}

/* Keep every action control consistent, including buttons rendered inside
 * native forms.  Secondary actions use a dark-panel treatment only when the
 * parent panel is dark; on a light panel they need a visible neutral border
 * and charcoal label to preserve contrast. */
body.bf-portal-page .bf-button,
body.bf-portal-page .bf-filter-bar button,
body.bf-portal-page .bf-form-actions button,
body.bf-portal-page .bf-portal-login input[type="submit"] {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    vertical-align: middle;
    font-family: inherit;
    font-weight: 800;
    line-height: 1.2;
    white-space: normal;
    cursor: pointer;
}
body.bf-portal-page .bf-button-small { min-height: 38px; padding: 9px 12px; }
body.bf-portal-page .bf-panel:not(.bf-panel-dark) .bf-button-ghost {
    color: var(--bf-charcoal) !important;
    background: var(--bf-white) !important;
    border: 1px solid #cbd0d6 !important;
}
body.bf-portal-page .bf-panel:not(.bf-panel-dark) .bf-button-ghost:hover,
body.bf-portal-page .bf-panel:not(.bf-panel-dark) .bf-button-ghost:focus {
    color: var(--bf-red) !important;
    background: #fff0f1 !important;
    border-color: var(--bf-red) !important;
}

/* Documents workspace: compact checklist and private-file controls. */
body.bf-portal-page .bf-document-heading-meta {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 10px 14px;
}
body.bf-portal-page .bf-document-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}
body.bf-portal-page .bf-document-summary > div {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 4px;
    padding: 16px 17px;
    border: 1px solid var(--bf-light);
    border-radius: 12px;
    background: var(--bf-white);
    box-shadow: 0 9px 28px rgba(47,49,54,.045);
}
body.bf-portal-page .bf-document-summary strong {
    color: var(--bf-charcoal);
    font-family: Poppins, Montserrat, Arial, sans-serif;
    font-size: 24px;
    line-height: 1.05;
}
body.bf-portal-page .bf-document-summary span:last-child {
    color: var(--bf-steel);
    font-size: 11px;
    line-height: 1.45;
}
body.bf-portal-page .bf-document-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 18px;
    margin-bottom: 18px;
}
body.bf-portal-page .bf-requirement-list {
    display: grid;
    gap: 10px;
    margin-top: 15px;
}
body.bf-portal-page .bf-requirement-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px 16px;
    padding: 14px;
    border: 1px solid var(--bf-light);
    border-radius: 10px;
    background: var(--bf-pale);
}
body.bf-portal-page .bf-requirement-item > div:first-child { min-width: 0; }
/* Keep document cards inset despite the theme-wrapper article reset above. */
body.bf-portal-page #bf-main .bf-requirement-item { padding-left: 14px !important; padding-right: 14px !important; overflow-wrap: anywhere; }
body.bf-portal-page .bf-upload-pending { margin-bottom: 18px; }
body.bf-portal-page .bf-document-controls { margin: 0 0 18px; }
body.bf-portal-page .bf-document-controls .bf-button-ghost { color:var(--bf-charcoal)!important;background:#fff!important;border:1px solid #cbd0d6!important; }
body.bf-portal-page .bf-document-controls .bf-button-ghost:hover { color:var(--bf-red)!important;border-color:var(--bf-red)!important; }
body.bf-portal-page .bf-file-checks, body.bf-portal-page .bf-file-actions { margin-bottom: 18px; scroll-margin-top: 80px; }
body.bf-portal-page .bf-file-check-summary { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 12px; }
body.bf-portal-page .bf-file-check-summary > div { min-width: 0; flex: 1 1 220px; overflow-wrap: anywhere; }
body.bf-portal-page .bf-file-check-form { max-width: 620px; }
body.bf-portal-page .bf-file-check-history { list-style: none; margin: 18px 0 0; padding: 0; }
body.bf-portal-page .bf-file-check-history li { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 10px 16px; padding: 14px 0; border-top: 1px solid var(--bf-light); }
body.bf-portal-page .bf-file-check-history li > div { flex: 1 1 230px; min-width: 0; overflow-wrap: anywhere; }
body.bf-portal-page .bf-file-check-history .bf-table-subtext { display: block; margin-top: 4px; }
body.bf-portal-page .bf-file-check-history p { margin: 7px 0 0; font-size: 12px; }
body.bf-portal-page .bf-document-table td:last-child .bf-button { margin: 0; }
body.bf-portal-page .bf-requirement-item strong { color: var(--bf-charcoal); font-size: 12px; line-height: 1.35; }
body.bf-portal-page .bf-requirement-item p { margin: 7px 0 0; color: var(--bf-steel); font-size: 11px; line-height: 1.5; }
body.bf-portal-page .bf-requirement-meta { display: flex; align-items: flex-end; flex-direction: column; gap: 6px; text-align: right; }
body.bf-portal-page .bf-requirement-meta small { color: var(--bf-steel); font-size: 10px; }
body.bf-portal-page .bf-requirement-action {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr) auto;
    gap: 8px;
    align-items: end;
    padding-top: 10px;
    border-top: 1px solid var(--bf-light);
}
body.bf-portal-page .bf-requirement-action select,
body.bf-portal-page .bf-requirement-action input { min-width: 0; min-height: 38px; padding: 8px 10px; border: 1px solid #cbd0d6; border-radius: 6px; background: var(--bf-white); color: var(--bf-charcoal); font: inherit; font-size: 11px; }
body.bf-portal-page .bf-document-add-requirement { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--bf-light); }
body.bf-portal-page .bf-document-add-requirement h3 { margin-bottom: 2px !important; }
body.bf-portal-page .bf-document-upload-form { display: grid; gap: 12px; margin-top: 15px; }
body.bf-portal-page .bf-panel-dark .bf-field { color: var(--bf-white); }
body.bf-portal-page .bf-panel-dark .bf-field small { color: #d8dbe0; }
body.bf-portal-page .bf-panel-dark .bf-empty-state p { color: var(--bf-white) !important; }
body.bf-portal-page .bf-panel-dark .bf-empty-state span { color: #d8dbe0 !important; }
body.bf-portal-page .bf-document-table td:last-child { white-space: nowrap; }
body.bf-portal-page .bf-checkbox-field input { width: auto !important; min-height: auto; margin: 0 6px 0 0 !important; padding: 0 !important; }
body.bf-portal-page .bf-application-documents { margin-top: 16px; }
body.bf-portal-page .bf-application-documents .bf-button { margin-top: 5px; }

@media (min-width: 1024px) {
    body.bf-portal-page .bf-document-grid { grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr); }
    body.bf-portal-page .bf-stat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1280px) {
    body.bf-portal-page .bf-stat-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
    body.bf-portal-page .bf-admin-stat-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
@media (max-width: 639px) {
    body.bf-portal-page .bf-document-heading-meta { align-items: flex-start; justify-content: flex-start; flex-direction: column; margin-top: 12px; }
    body.bf-portal-page .bf-document-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body.bf-portal-page .bf-document-summary > div:last-child { grid-column: 1 / -1; }
    body.bf-portal-page .bf-requirement-item { grid-template-columns: 1fr; }
    body.bf-portal-page .bf-requirement-meta { align-items: flex-start; text-align: left; }
    body.bf-portal-page .bf-requirement-action { grid-template-columns: 1fr; align-items: stretch; }
}

/* Contracts workspace: template metadata and explicit e-sign hand-off gates. */
body.bf-portal-page .bf-contract-gate { margin-bottom: 18px; }
body.bf-portal-page .bf-contract-gate .bf-empty-state { margin-top: 12px; padding-right: 8px; padding-left: 8px; }
body.bf-portal-page .bf-contract-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 7px; }
body.bf-portal-page .bf-contract-actions .bf-inline-form { margin: 0; }
body.bf-portal-page .bf-contract-table td:last-child { min-width: 170px; }
body.bf-portal-page .bf-contract-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px 18px;
    padding: 15px;
    border: 1px solid var(--bf-light);
    border-radius: 10px;
    background: var(--bf-pale);
}
body.bf-portal-page .bf-contract-card + .bf-contract-card { margin-top: 10px; }
body.bf-portal-page .bf-contract-card strong { display: block; color: var(--bf-charcoal); font-size: 12px; line-height: 1.35; }
body.bf-portal-page .bf-contract-card .bf-table-subtext { display: block; margin-top: 5px; }
body.bf-portal-page .bf-contract-action { grid-column: 1 / -1; display: grid; grid-template-columns: 180px minmax(0, 1fr) minmax(0, 1fr) auto; gap: 8px; align-items: end; padding-top: 11px; border-top: 1px solid var(--bf-light); }
body.bf-portal-page .bf-contract-action select,
body.bf-portal-page .bf-contract-action input { min-width: 0; min-height: 38px; padding: 8px 10px; border: 1px solid #cbd0d6; border-radius: 6px; background: var(--bf-white); color: var(--bf-charcoal); font: inherit; font-size: 11px; }
body.bf-portal-page .bf-contract-editor,
body.bf-portal-page .bf-contract-template-form { margin-top: 18px; }
body.bf-portal-page .bf-document-add-requirement + .bf-panel { margin-top: 18px; }
@media (max-width: 639px) {
    body.bf-portal-page .bf-contract-card { grid-template-columns: 1fr; }
    body.bf-portal-page .bf-contract-card > div:nth-child(2) { justify-self: start; }
    body.bf-portal-page .bf-contract-action { grid-template-columns: 1fr; }
}
@media (min-width: 1280px) {
    .bf-admin-stat-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}

/* Settlements workspace: evidence-led release and reconciliation controls. */
.bf-settlement-gate { margin-bottom: 18px; }
.bf-settlement-hold { margin-top: 16px; padding: 14px 16px; border: 1px solid rgba(255,255,255,.18); border-left: 3px solid var(--bf-signal); color: #eef0f3; font-size: 12px; line-height: 1.5; }
.bf-settlement-hold strong { color: var(--bf-white); }
.bf-settlement-hold ul { margin: 8px 0 0 17px; padding: 0; }
.bf-settlement-hold li + li { margin-top: 4px; }
.bf-settlement-ready { display: flex; align-items: center; gap: 9px; margin-top: 16px; padding: 13px 15px; border: 1px solid rgba(164,219,191,.55); border-radius: 8px; background: rgba(31,157,97,.12); color: #eaf8f0; font-size: 12px; }
.bf-settlement-ready .bf-check-dot { flex: 0 0 8px; }
.bf-settlement-stat-grid { margin-bottom: 20px; }
.bf-settlement-case-card { margin-bottom: 18px; }
.bf-settlement-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 17px; }
.bf-settlement-meta > div { display: flex; min-width: 0; flex-direction: column; gap: 4px; padding: 12px 13px; border: 1px solid var(--bf-light); border-radius: 8px; background: var(--bf-pale); }
.bf-settlement-meta span { color: var(--bf-steel); font-size: 10px; text-transform: uppercase; letter-spacing: .06em; }
.bf-settlement-meta strong { color: var(--bf-charcoal); font-size: 12px; line-height: 1.35; overflow-wrap: anywhere; }
.bf-settlement-transition-form { grid-template-columns: minmax(180px, .4fr) minmax(220px, 1fr) auto; align-items: end; }
.bf-settlement-transition-form .bf-button { align-self: end; }
.bf-settlement-entry-form { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--bf-light); }
.bf-settlement-entry-form h3 { margin: 0; color: var(--bf-charcoal); font-family: Poppins, Montserrat, Arial, sans-serif; font-size: 18px; }
.bf-settlement-entry-action { display: grid; grid-template-columns: 150px minmax(150px, 1fr) auto; gap: 7px; align-items: center; min-width: 330px; }
.bf-settlement-entry-action select,
.bf-settlement-entry-action input { min-width: 0; min-height: 36px; padding: 7px 9px; border: 1px solid #cbd0d6; border-radius: 6px; background: var(--bf-white); color: var(--bf-charcoal); font: inherit; font-size: 11px; }
.bf-badge-ready_for_release { background: #e9f3ff; color: #195b9b; }
.bf-badge-capital_paid, .bf-badge-settlement_requested { background: #fff1d8; color: #875900; }
.bf-badge-settled, .bf-badge-reconciled { background: #ddf5e9; color: #176c41; }
.bf-badge-on_hold { background: #fff1d8; color: #875900; }
.bf-badge-void { background: #ffe0e2; color: #9e1a22; }

@media (min-width: 640px) {
    .bf-settlement-meta { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (min-width: 960px) {
    .bf-settlement-transition-form { display: grid; }
}
@media (min-width: 1440px) {
    .bf-portal-page .bf-stat-grid,
    .bf-portal-page .bf-admin-stat-grid,
    .bf-admin-wrap .bf-admin-stat-grid { grid-template-columns: repeat(7, minmax(0, 1fr)); }
}
@media (max-width: 639px) {
    .bf-settlement-transition-form { grid-template-columns: 1fr; }
    .bf-settlement-meta { gap: 8px; }
    .bf-settlement-entry-action { min-width: 0; grid-template-columns: 1fr; align-items: stretch; }
}

/* Contracts 0.8 workspace: compact, touch-friendly controls and clear
 * document/routing divisions. */
body.bf-portal-page .bf-contract-instance { margin-top: 18px; }
body.bf-portal-page .bf-contract-instance > .bf-panel-heading { margin-bottom: 12px; }
body.bf-portal-page .bf-contract-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 12px 0 4px; }
body.bf-portal-page .bf-contract-summary > div { min-width: 0; padding: 11px 12px; border: 1px solid var(--bf-light); border-radius: 8px; background: var(--bf-pale); }
body.bf-portal-page .bf-contract-summary span { display: block; color: var(--bf-steel); font-size: 10px; letter-spacing: .05em; text-transform: uppercase; }
body.bf-portal-page .bf-contract-summary strong { display: block; margin-top: 4px; color: var(--bf-charcoal); font-size: 13px; line-height: 1.3; overflow-wrap: anywhere; }
body.bf-portal-page .bf-contract-subsection { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--bf-light); }
body.bf-portal-page .bf-contract-subsection .bf-panel-heading { margin-bottom: 8px; }
body.bf-portal-page .bf-contract-subsection h3 { margin: 0; font-size: 20px; line-height: 1.2; }
body.bf-portal-page .bf-contract-fields { display: grid; gap: 8px; }
body.bf-portal-page .bf-contract-field-row { display: grid; grid-template-columns: minmax(130px, .8fr) minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--bf-light); }
body.bf-portal-page .bf-contract-field-label { min-width: 0; }
body.bf-portal-page .bf-contract-field-label strong { display: block; color: var(--bf-charcoal); font-size: 12px; line-height: 1.3; }
body.bf-portal-page .bf-contract-field-label span { display: block; margin-top: 3px; color: var(--bf-steel); font-size: 10px; overflow-wrap: anywhere; }
body.bf-portal-page .bf-contract-field-row input,
body.bf-portal-page .bf-contract-field-row select,
body.bf-portal-page .bf-contract-field-row textarea { width: 100%; min-width: 0; min-height: 38px; padding: 8px 10px; border: 1px solid #cbd0d6; border-radius: 6px; background: var(--bf-white); color: var(--bf-charcoal); font: inherit; font-size: 12px; }
body.bf-portal-page .bf-contract-field-row textarea { min-height: 66px; resize: vertical; }
body.bf-portal-page .bf-contract-field-row input[readonly],
body.bf-portal-page .bf-contract-field-row textarea[readonly],
body.bf-portal-page .bf-contract-field-row select:disabled { background: #f0f1f3; color: var(--bf-steel); }
body.bf-portal-page .bf-contract-field-meta { color: var(--bf-steel); font-size: 10px; white-space: nowrap; }
body.bf-portal-page .bf-contract-document-form,
body.bf-portal-page .bf-contract-signer-form { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--bf-light); }
body.bf-portal-page .bf-contract-delivery { padding: 16px; border: 1px solid var(--bf-light); border-left: 3px solid var(--bf-signal); border-radius: 8px; background: var(--bf-pale); }
body.bf-portal-page .bf-readiness-list { margin: 12px 0; padding: 11px 13px; border: 1px solid #f0c2c5; border-radius: 7px; background: #fff6f6; color: var(--bf-charcoal); font-size: 12px; line-height: 1.45; }
body.bf-portal-page .bf-readiness-list ul { margin: 7px 0 0 16px; padding: 0; }
body.bf-portal-page .bf-readiness-list li + li { margin-top: 3px; }
body.bf-portal-page .bf-ready-callout { margin: 12px 0; padding: 11px 13px; border: 1px solid #a4dbbf; border-radius: 7px; background: #effaf4; color: #176c41; font-size: 12px; }
body.bf-portal-page .bf-ready-callout span { display: block; margin-top: 3px; color: #2d664a; }
body.bf-portal-page .bf-contract-delivery form { margin-top: 12px; }
body.bf-portal-page .bf-contract-status-controls { padding: 14px 16px; border: 1px solid #d9dde2; border-radius: 8px; background: #fbfbfc; }
body.bf-portal-page .bf-contract-status-controls .bf-help-text { margin-bottom: 11px; }
body.bf-portal-page .bf-document-prepare-form,
body.bf-portal-page .bf-signer-status-form { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 7px; }
body.bf-portal-page .bf-document-prepare-form .bf-button,
body.bf-portal-page .bf-signer-status-form .bf-button { flex: 0 0 auto; }
body.bf-portal-page .bf-signer-status-form select,
body.bf-portal-page .bf-signer-status-form input { min-width: 0; min-height: 32px; padding: 6px 8px; border: 1px solid #cbd0d6; border-radius: 5px; background: var(--bf-white); color: var(--bf-charcoal); font: inherit; font-size: 11px; }
body.bf-portal-page .bf-contract-preview { margin-top: 7px; padding: 8px 10px; border: 1px solid var(--bf-light); border-radius: 6px; background: var(--bf-white); }
body.bf-portal-page .bf-contract-preview summary { cursor: pointer; color: var(--bf-signal); font-size: 11px; font-weight: 700; }
body.bf-portal-page .bf-contract-preview pre { max-height: 260px; margin: 8px 0 0; overflow: auto; white-space: pre-wrap; color: var(--bf-charcoal); font: 11px/1.55 Montserrat, Arial, sans-serif; }
body.bf-portal-page .bf-contract-version-list { display: grid; gap: 8px; margin: 10px 0 0; padding: 0; list-style: none; }
body.bf-portal-page .bf-contract-version-list li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; min-width: 0; padding: 8px 0; border-top: 1px solid var(--bf-light); color: var(--bf-charcoal); overflow-wrap: anywhere; }
body.bf-portal-page .bf-contract-version-list form { margin: 0; }
body.bf-portal-page .bf-contract-edit { margin-top: 8px; }
body.bf-portal-page .bf-contract-edit summary { cursor: pointer; color: var(--bf-signal); font-size: 11px; font-weight: 700; }
body.bf-portal-page .bf-contract-edit .bf-form-grid { margin-top: 10px; }
body.bf-portal-page .bf-contract-edit .bf-field-wide { grid-column: 1 / -1; }
@media (min-width: 720px) {
    body.bf-portal-page .bf-contract-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    body.bf-portal-page .bf-contract-subsection .bf-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body.bf-portal-page .bf-contract-subsection .bf-form-grid .bf-button { align-self: end; justify-self: start; }
}
@media (max-width: 639px) {
    body.bf-portal-page .bf-contract-field-row { grid-template-columns: 1fr; align-items: stretch; }
    body.bf-portal-page .bf-contract-field-meta { white-space: normal; }
    body.bf-portal-page .bf-contract-field-row .bf-button { justify-self: start; }
    body.bf-portal-page .bf-document-prepare-form,
    body.bf-portal-page .bf-signer-status-form { align-items: stretch; }
    body.bf-portal-page .bf-signer-status-form select,
    body.bf-portal-page .bf-signer-status-form input,
    body.bf-portal-page .bf-signer-status-form .bf-button { width: 100%; }
}

/* Responsible-team fields follow the existing portal grid. */
/* Account security uses the same brand tokens, compact headings and touch targets. */
[data-bf-portal][hidden] { display:none!important; }
body.bf-portal-page .wp-site-blocks { padding:0; }
body.bf-portal-page .wp-site-blocks>header.wp-block-template-part,
body.bf-portal-page .wp-site-blocks>footer.wp-block-template-part,
body.bf-portal-page .wp-block-post-title { display:none; }
body.bf-portal-page .wp-site-blocks>main,
body.bf-portal-page .wp-site-blocks>main>.wp-block-group,
body.bf-portal-page .wp-block-post-content { max-width:none; padding:0!important; margin:0!important; }
body.bf-portal-page .wp-block-post-content>.bf-account-gate,
body.bf-portal-page .wp-block-post-content>.bf-portal-shell { max-width:none; margin:0; }
.bf-account-gate { display:grid; min-height:100dvh; background:#f5f6f8; color:var(--bf-charcoal); }
.bf-account-gate, .bf-account-gate * { box-sizing:border-box; }
.bf-account-welcome { background:var(--bf-charcoal); color:#fff; padding:28px 24px; display:flex; flex-direction:column; gap:28px; }
.bf-account-welcome>img { width:220px; max-width:100%; height:auto; }
body.bf-portal-page .bf-account-welcome h1 { font-size:28px; line-height:1.25; color:#fff; margin:12px 0; max-width:420px; }
.bf-account-welcome .bf-eyebrow,.bf-account-welcome a { color:#fff; }
.bf-account-welcome a { align-self:flex-start; min-height:44px; display:inline-flex; align-items:center; }
.bf-account-welcome svg { width:36px; height:36px; color:#ff6066; }
.bf-account-gate-content { padding:28px 20px; width:100%; min-width:0; align-self:center; }
.bf-account-gate-content>h2, .bf-account-card h2 { color:var(--bf-charcoal); font-family:Poppins,Arial,sans-serif; font-size:20px; line-height:1.35; margin:0 0 12px; }
.bf-account-gate-content p,.bf-account-page p { line-height:1.65; font-size:14px; }
.bf-account-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:20px; margin-top:20px; align-items:start; }
.bf-account-page,.bf-account-gate { font-family:Montserrat,Arial,sans-serif; font-weight:400; }
.bf-account-page label,.bf-account-page summary,.bf-account-page button,.bf-account-gate label { font-family:Montserrat,Arial,sans-serif; }
.bf-account-page h1,.bf-account-page h2,.bf-account-gate h1,.bf-account-gate h2 { font-family:Poppins,Arial,sans-serif; font-weight:700; }
.bf-account-page h1 { font-size:28px; line-height:1.3; margin:4px 0 8px; }
.bf-account-identity { display:flex; flex-wrap:wrap; align-items:center; gap:14px; background:var(--bf-charcoal); padding:20px; border-radius:10px; color:#fff; }
.bf-account-identity svg { width:28px; height:28px; flex-shrink:0; color:#ff6066; }
.bf-account-identity>div { min-width:0; flex:1; }
@media(max-width:500px) {
    .bf-account-identity { display:grid; grid-template-columns:28px minmax(0,1fr); gap:12px; }
    .bf-account-identity>.bf-account-status { grid-column:2; margin:0; width:fit-content; max-width:100%; }
}
.bf-account-identity strong,.bf-account-identity span { display:block; overflow-wrap:anywhere; }
.bf-account-identity strong { font-size:16px; }.bf-account-identity span { font-size:12px; margin-top:4px; }
.bf-account-status { background:#e8f5ed; color:#205638; padding:7px 10px; border-radius:6px; font-size:12px; line-height:1.4; }
.bf-account-card { min-width:0; padding:22px; margin:0; }
.bf-account-form { display:flex; flex-direction:column; gap:8px; margin:16px 0 0; min-width:0; }
.bf-account-form label { color:var(--bf-charcoal); font-size:13px; font-weight:600; margin:8px 0 0; }
.bf-account-form input:not([type=hidden]):not([type=checkbox]) { box-sizing:border-box; width:100%; min-width:0; min-height:46px; padding:10px 12px; background:#fff; color:var(--bf-charcoal); border:1px solid #aeb5bf; border-radius:6px; font:16px/1.4 Montserrat,Arial,sans-serif; }
body.bf-portal-page .bf-account-form .bf-button { display:inline-flex; align-items:center; justify-content:center; min-height:44px; white-space:normal; text-align:center; line-height:1.4; padding:11px 16px; margin-top:10px; width:auto; align-self:stretch; }
body.bf-portal-page .bf-account-form .bf-button { border:1px solid var(--bf-red); font-size:13px; font-weight:600; }
body.bf-portal-page .bf-account-form .bf-button-secondary { color:var(--bf-charcoal)!important; background:#fff!important; border-color:#aeb5bf; }
body.bf-portal-page .bf-account-form .bf-button-secondary:hover { color:var(--bf-red)!important; border-color:var(--bf-red); }
.bf-account-form .bf-account-check { display:flex; gap:10px; align-items:center; min-height:44px; font-weight:400; }
.bf-account-check input { flex:0 0 20px; width:20px; height:20px; margin:0; accent-color:var(--bf-red); }
.bf-account-hint { display:flex; align-items:flex-start; flex-wrap:wrap; gap:8px; padding:13px 14px; background:#f1f3f6; color:#434a55; border-radius:6px; font-size:13px; line-height:1.6; margin:16px 0 0; }
.bf-account-hint-warning { background:#fff1f2; border:1px solid #efb4b9; color:#69242a; }
.bf-account-hint-warning strong { flex-basis:100%; color:#5b171e; }
.bf-account-hint svg { flex:0 0 20px; width:20px; height:20px; }
.bf-account-replace { margin-top:18px; }.bf-account-replace summary,.bf-account-key summary { cursor:pointer; min-height:44px; padding:10px 0; font-weight:600; font-size:13px; }
.bf-account-qr { display:block; width:240px; max-width:100%; height:auto; background:white; margin:18px auto; border-radius:8px; }
.bf-account-steps { padding-left:22px; font-size:14px; line-height:1.6; }.bf-account-steps li+li { margin-top:8px; }
.bf-account-key code { display:block; word-break:break-all; white-space:normal; font-size:15px; padding:12px; background:#fff; border:1px solid #d4d8df; }
.bf-account-sessions { list-style:none; padding:0; margin:16px 0; }
.bf-account-sessions li { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; border-bottom:1px solid #e0e3e8; padding:14px 0; }
.bf-account-sessions li>div { min-width:0; }.bf-account-sessions strong,.bf-account-sessions span { display:block; }.bf-account-sessions span { font-size:12px; margin-top:4px; }
.bf-account-sessions form { margin:0; }.bf-account-sessions .bf-button { margin:0!important; }
.bf-recovery-codes { list-style:none; display:grid; grid-template-columns:minmax(0,1fr); gap:8px; padding:0; margin:16px 0; }
.bf-recovery-codes code { display:block; padding:10px; border:1px solid #d4d8df; background:#fff; color:#252930; font:14px/1.4 monospace; overflow-wrap:anywhere; }
.bf-account-page :focus-visible,.bf-account-gate :focus-visible { outline:3px solid #d61f26; outline-offset:3px; }
@media(min-width:700px) { .bf-account-gate { grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr); }.bf-account-welcome { padding:40px 32px; justify-content:space-between; }.bf-account-gate-content { max-width:660px; padding:40px; }.bf-account-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.bf-recovery-codes { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(min-width:1100px) { .bf-account-welcome { padding:48px; }.bf-account-gate-content { padding:48px; } }
@media(min-width:700px) {
    .bf-account-grid>.bf-account-card:nth-child(1) { grid-column:1; grid-row:1; }
    .bf-account-grid>.bf-account-card:nth-child(2) { grid-column:2; grid-row:1 / span 2; }
    .bf-account-grid>.bf-account-card:nth-child(3) { grid-column:1; grid-row:2; }
    .bf-account-grid>.bf-account-card:nth-child(4) { grid-column:1 / -1; grid-row:3; }
}
@media(prefers-reduced-motion:reduce) { .bf-account-page *,.bf-account-gate * { scroll-behavior:auto!important; transition:none!important; } }
.bf-team-form .bf-field-wide { grid-column: 1 / -1; }
body.bf-portal-page .bf-team-form button.bf-button { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }

/* Staff access reuses the shared portal cards, fields and button scale. */
.bf-staff-records .bf-staff-permission-grid,.bf-staff-records .bf-staff-comparison{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin:16px 0}
.bf-staff-records .bf-staff-permission{display:flex;align-items:center;gap:12px;min-height:44px;padding:10px 12px;border:1px solid #e7e8eb;border-radius:10px;background:#fff;color:#2f3136;line-height:1.45;cursor:pointer}
.bf-staff-records .bf-staff-permission input{width:18px;height:18px;flex:0 0 18px;accent-color:#d61f26;margin:0}
.bf-staff-records .bf-staff-permission-list{display:grid;grid-template-columns:minmax(0,1fr);gap:8px 24px;padding-left:20px;margin:12px 0 20px}
.bf-staff-records .bf-staff-permission-list li{padding-left:2px;line-height:1.55}
.bf-staff-records .bf-staff-history{padding:16px 0;border-bottom:1px solid #e7e8eb;overflow-wrap:anywhere}
.bf-staff-records .bf-staff-history:last-child{border-bottom:0}
.bf-staff-records .bf-staff-history>div{display:flex;align-items:flex-start;justify-content:space-between;gap:8px 16px;flex-wrap:wrap}
.bf-staff-records .bf-staff-history span,.bf-staff-records .bf-staff-history small{font-size:12px;color:#626771}
.bf-staff-records .bf-staff-history p{margin:10px 0 4px}
.bf-staff-records .bf-staff-suspend{border-left:3px solid #d61f26}
.bf-staff-records .bf-staff-comparison>div{padding:16px;border:1px solid #e7e8eb;border-radius:12px;min-width:0}
.bf-staff-records .bf-invite-filter input{min-height:44px;min-width:0;width:100%;padding:10px 12px;border:1px solid #d8dbe1;border-radius:10px;background:#fff;color:#2f3136;font:inherit;box-sizing:border-box}
@media(min-width:700px){.bf-staff-records .bf-staff-permission-grid,.bf-staff-records .bf-staff-comparison,.bf-staff-records .bf-staff-permission-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
.bf-staff-records .bf-staff-permission-group{padding-top:16px;margin-top:16px;border-top:1px solid #e7e8eb}
.bf-staff-records .bf-staff-permission-group h3{margin:0;font-size:15px;line-height:1.5}
.bf-staff-records details.bf-staff-history summary{cursor:pointer;min-height:44px;display:flex;align-items:center;gap:10px;font-weight:600}
.bf-staff-records details.bf-staff-history summary::before{content:'+';color:#d61f26;font-size:20px}
.bf-staff-records details.bf-staff-history[open] summary::before{content:'−'}
/* Staff invitations retain the shared cards, with compact overview facts and aligned filters. */
.bf-staff-invite-summary .bf-firm-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}
.bf-staff-invite-summary .bf-firm-facts>div{min-width:0;align-content:start;padding:8px 0;border-bottom:0}
.bf-staff-invite-summary .bf-firm-facts dt{font-size:11px;line-height:1.5;min-height:33px}
.bf-staff-invite-summary .bf-firm-facts dd{font-family:Poppins,Arial,sans-serif;font-size:22px;font-weight:700;line-height:1.35}
.bf-staff-invitations .bf-invite-filter>.bf-button{width:100%;min-width:0}
@media(min-width:760px){.bf-staff-invitations .bf-firm-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.bf-staff-invitations .bf-invite-filter{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
@media(min-width:1100px){.bf-staff-invitations .bf-invite-filter{grid-template-columns:minmax(180px,1fr) minmax(150px,240px) auto auto}}

/* Reviewed matter responsibility changes: shared dashboard spacing. */
.bf-reassignment{display:grid;gap:18px}.bf-reassignment .bf-page-heading h1{font-size:24px;margin:0 0 6px}.bf-reassignment .bf-panel{margin:0;min-width:0}.bf-reassignment h2{font-size:16px}.bf-reassignment h3{font-size:14px;margin:0 0 18px}.bf-reassignment-comparison{display:grid;grid-template-columns:1fr;gap:16px}.bf-reassignment-team{padding:18px;border:1px solid #e7e8eb;border-radius:10px;min-width:0}.bf-reassignment-person{display:flex;align-items:flex-start;gap:12px;margin:16px 0}.bf-reassignment-person>div{display:flex;flex-direction:column;gap:5px;min-width:0;overflow-wrap:anywhere}.bf-reassignment-person small{color:#626872}.bf-reassignment-person strong{font-weight:600}.bf-reassignment-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.bf-reassignment-counts dt{font-size:12px;color:#626872}.bf-reassignment-counts dd{margin:6px 0;font-size:24px;font-weight:600}.bf-reassignment-ack{display:flex;align-items:flex-start;gap:12px;padding:12px 0;cursor:pointer;min-height:44px}.bf-reassignment-ack input{width:20px;height:20px;flex:none;margin:2px 0}.bf-reassignment-confirm .bf-button{min-height:44px;display:flex;align-items:center;justify-content:center}.bf-reassignment-reason{overflow-wrap:anywhere}.bf-reassignment-history{margin-top:22px;border-top:1px solid #e7e8eb;padding-top:14px}.bf-reassignment-history summary{min-height:44px;cursor:pointer;padding:12px 0;font-weight:600}.bf-reassignment-history article{border-top:1px solid #e7e8eb;padding:16px 0;display:grid;gap:8px}.bf-reassignment-history .bf-button{justify-self:start}@media(min-width:760px){.bf-reassignment-comparison{grid-template-columns:repeat(2,minmax(0,1fr))}.bf-reassignment-counts{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* Client records */
.bf-client-workspace{display:grid;gap:20px;min-width:0}
.bf-client-workspace .bf-panel{margin:0;min-width:0}
.bf-client-type-grid,.bf-client-people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.bf-client-type{display:flex;align-items:flex-start;flex-direction:column;gap:10px;border:1px solid #e7e8eb;border-radius:12px;padding:20px;color:#2f3136;text-decoration:none;background:#fff}
.bf-client-type:hover{border-color:#d61f26;background:#fff8f8}
.bf-client-type svg{width:26px;height:26px;color:#d61f26}
.bf-client-type span{font-size:12px;color:#626772}
.bf-client-workspace .bf-client-form{max-width:1000px;width:100%;box-sizing:border-box}
.bf-client-form fieldset{border:0;padding:0;margin:24px 0;min-width:0}
.bf-client-form legend{font-family:Poppins,sans-serif;font-size:15px;font-weight:600;margin-bottom:14px}
.bf-client-workspace .bf-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.bf-client-wide{grid-column:1/-1}
.bf-client-workspace .bf-field{min-width:0}
.bf-client-workspace input:not([type=checkbox]):not([type=hidden]),.bf-client-workspace select{min-height:46px;width:100%;box-sizing:border-box}
.bf-client-workspace textarea{width:100%;box-sizing:border-box;min-height:88px}
.bf-client-workspace .bf-button{display:inline-flex;align-items:center;justify-content:center;text-align:center;min-height:44px;white-space:normal;box-sizing:border-box;line-height:1.4}
.bf-client-workspace h2{font-size:19px;line-height:1.4;margin:0 0 10px;overflow-wrap:anywhere}
.bf-client-workspace h3{font-size:16px;line-height:1.4;overflow-wrap:anywhere}
.bf-client-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}
.bf-client-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:18px 0}
.bf-client-details div{min-width:0}
.bf-client-details dt{font-size:12px;color:#636872;margin-bottom:5px}
.bf-client-details dd{font-size:13px;margin:0;overflow-wrap:anywhere}
.bf-client-unverified{display:block;width:fit-content;font-size:11px;color:#7c4d10;background:#fff6e7;border-radius:5px;padding:3px 7px;margin-top:6px}
.bf-client-history{border-top:1px solid #e7e8eb;padding:14px 0;margin-top:14px}
.bf-client-history summary{cursor:pointer;min-height:44px;line-height:1.5;overflow-wrap:anywhere}
.bf-client-history summary span{display:block;font-size:12px;color:#626772;margin:5px 0}
.bf-client-history form{padding-top:14px}
.bf-client-wrap,.bf-client-history p{overflow-wrap:anywhere}
.bf-client-reason{margin:20px 0 16px}
@media(max-width:640px){.bf-client-type-grid,.bf-client-people,.bf-client-details,.bf-client-workspace .bf-form-grid{grid-template-columns:1fr}.bf-client-workspace{gap:16px}.bf-client-workspace .bf-panel-heading{align-items:flex-start;gap:12px;flex-wrap:wrap}.bf-client-workspace .bf-panel-heading .bf-button{width:100%}.bf-client-type{padding:16px}.bf-client-actions>.bf-button{flex:1 1 120px}}

.bf-client-kind{font-size:12px;font-weight:600;color:#656a73;margin:0 0 8px}

.bf-client-workspace>.bf-portal-section-heading,.bf-client-workspace>.bf-firm-message{margin:0}
.bf-client-people>.bf-subcard{padding:18px;box-sizing:border-box;min-width:0}
.bf-client-workspace .bf-client-people>.bf-subcard>h3{margin-top:0}
body.bf-portal-page .bf-client-workspace .bf-client-people>.bf-subcard{padding-left:18px!important;padding-right:18px!important}
.bf-client-confirm-link{display:inline-flex;width:auto;min-height:36px;margin-top:8px;padding:7px 12px;font-size:12px;align-items:center;justify-content:center}
.bf-client-contact-panel{scroll-margin-top:24px}
.bf-client-contact-address{font-weight:600;overflow-wrap:anywhere;margin:0 0 8px}
.bf-client-contact-status{display:inline-flex;align-items:center;gap:8px;border:1px solid #e2e4e7;border-radius:999px;padding:7px 12px;font-size:13px;margin:0 0 14px}
.bf-client-contact-form{display:grid;gap:14px;margin-top:20px;padding-top:18px;border-top:1px solid #e2e4e7}
.bf-client-contact-cancel{margin-top:24px}
.bf-client-contact-panel .bf-client-history article{display:grid;gap:4px;padding:14px 0;border-top:1px solid #e2e4e7}
.bf-client-contact-panel .bf-client-history article span{color:#6c7078;font-size:13px}
.bf-client-match-panel{border-top:3px solid #d61f26}
.bf-client-match-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:end;margin-top:18px;padding-top:18px;border-top:1px solid #e2e4e7}
.bf-client-match-form .bf-field{min-width:0}
.bf-client-match-form .bf-client-actions{grid-column:1/-1;margin-top:0}
.bf-client-match-results{display:grid;gap:12px;margin-top:22px;padding-top:18px;border-top:1px solid #e2e4e7}
.bf-client-match-results>.bf-panel-heading{margin:0}
.bf-client-match-result{display:grid;gap:6px}
.bf-client-match-result p{margin:0}
.bf-client-match-result .bf-button{justify-self:start}
.bf-client-match-review-links{margin-top:14px}
.bf-client-reuse-review{border-top:3px solid #2f3136}
.bf-client-reuse-form{display:grid;gap:16px;margin-top:18px;padding-top:18px;border-top:1px solid #e2e4e7}
.bf-client-reuse-form fieldset{display:grid;gap:12px;border:0;padding:0;margin:0}
.bf-client-reuse-form legend{font-size:13px;font-weight:700;margin-bottom:2px}
.bf-choice{display:flex;align-items:flex-start;gap:10px;padding:13px 14px;border:1px solid #e2e4e7;border-radius:8px;cursor:pointer}
.bf-choice input{margin-top:4px;flex:0 0 auto}
.bf-choice span{display:grid;gap:4px;min-width:0}
.bf-choice strong{font-size:13px}
.bf-choice small{font-size:12px;color:#636872;line-height:1.45}
@media(max-width:640px){.bf-client-match-form{grid-template-columns:1fr}.bf-client-match-form .bf-client-actions{grid-column:auto}.bf-client-match-result .bf-button{width:100%}}

/* Contract drafting stays inside the portal's card and spacing system. */
.bf-contract-designer{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,260px);gap:18px;align-items:start;min-width:0}
.bf-contract-wording{min-width:0}
.bf-contract-wording-label{display:block;margin:0 0 6px;color:#2f3136;font:700 15px/1.4 Poppins,Montserrat,Arial,sans-serif}
.bf-contract-wording .bf-help-text{margin:0 0 12px}
.bf-contract-wording .wp-editor-wrap{max-width:100%;min-width:0;border:1px solid #d9dde2;border-radius:9px;overflow:hidden;background:#fff}
.bf-contract-wording .wp-editor-container,.bf-contract-wording iframe{max-width:100%}
.bf-contract-wording textarea.wp-editor-area{box-sizing:border-box;width:100%;min-height:300px;padding:14px;color:#2f3136;background:#fff;font:14px/1.65 Montserrat,Arial,sans-serif}
.bf-contract-token-panel{display:grid;gap:8px;min-width:0;padding:16px;border:1px solid #e3e5e9;border-radius:10px;background:#f7f8f9}
.bf-contract-token-panel>strong{color:#2f3136;font:700 15px/1.3 Poppins,Montserrat,Arial,sans-serif}
.bf-contract-token-panel>p{margin:0 0 3px;color:#626873;font:12px/1.55 Montserrat,Arial,sans-serif}
.bf-contract-token{display:flex;align-items:center;justify-content:space-between;gap:9px;width:100%;min-height:44px;padding:9px 11px;border:1px solid #d6d9de;border-radius:8px;background:#fff;color:#2f3136;text-align:left;cursor:pointer;font:600 12px/1.4 Montserrat,Arial,sans-serif}
.bf-contract-token:hover,.bf-contract-token:focus-visible{border-color:#d61f26;outline:2px solid transparent;box-shadow:0 0 0 2px rgba(214,31,38,.16)}
.bf-contract-token span{min-width:0;overflow-wrap:anywhere}
.bf-contract-token code{color:#a3171e;font:11px/1.3 monospace;overflow-wrap:anywhere;text-align:right}
.bf-contract-template-form>.bf-form-actions{grid-column:1/-1}
.bf-contract-draft-preview{margin-top:18px;padding:18px;border:1px solid #e3e5e9;border-radius:10px;background:#f7f8f9}
.bf-contract-draft-preview .bf-panel-heading{margin-bottom:12px}
.bf-contract-draft-preview h3{margin:0;font:700 17px/1.3 Poppins,Montserrat,Arial,sans-serif}
.bf-contract-preview-paper{max-height:420px;overflow:auto;padding:20px;border:1px solid #e3e5e9;border-radius:7px;background:#fff;color:#2f3136;font:13px/1.7 Montserrat,Arial,sans-serif;overflow-wrap:anywhere}
.bf-contract-preview-paper :first-child{margin-top:0}
.bf-contract-preview-paper :last-child{margin-bottom:0}
.bf-contract-preview-paper table{display:block;max-width:100%;overflow:auto;border-collapse:collapse}
.bf-contract-preview-paper td,.bf-contract-preview-paper th{padding:7px;border:1px solid #cbd0d6}
.bf-contract-preview-paper p{white-space:pre-wrap}
.bf-contract-copy{width:100%;margin-top:7px}
.bf-contract-copy summary{width:max-content;max-width:100%;color:#a3171e;font:700 12px/1.4 Montserrat,Arial,sans-serif;cursor:pointer}
.bf-contract-copy form{display:grid;gap:9px;min-width:0;max-width:340px;margin-top:11px;padding:13px;border:1px solid #e3e5e9;border-radius:8px;background:#f7f8f9}
.bf-contract-copy .bf-field{min-width:0}
.bf-contract-copy textarea{width:100%;min-height:70px;resize:vertical}
@media(max-width:760px){.bf-contract-designer{grid-template-columns:1fr}.bf-contract-token-panel{padding:14px}.bf-contract-preview-paper{padding:14px}}

/* Exact-PDF signer placement keeps the reviewed page and controls together. */
body.bf-portal-page .bf-signature-map{min-width:0}
body.bf-portal-page .bf-signature-map>.bf-help-text{max-width:76ch;line-height:1.55}
body.bf-portal-page .bf-map-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start;margin-top:16px;min-width:0}
body.bf-portal-page .bf-map-document,body.bf-portal-page .bf-map-controls{min-width:0;padding:14px;border:1px solid #e2e5e9;border-radius:10px;background:#f8f9fa}
body.bf-portal-page .bf-map-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:12px;color:#59616c;font-size:11px;line-height:1.4}
body.bf-portal-page .bf-map-toolbar label{color:#252930;font-weight:700}
body.bf-portal-page .bf-map-toolbar select{min-height:44px;max-width:100%;padding:8px 10px;border:1px solid #bfc6ce;border-radius:6px;background:#fff;color:#252930;font:inherit}
body.bf-portal-page .bf-map-toolbar .bf-map-pan{min-height:44px;padding:8px 11px;border:1px solid #bfc6ce;border-radius:6px;background:#fff;color:#252930;font:600 11px/1.3 Montserrat,Arial,sans-serif;cursor:pointer}
body.bf-portal-page .bf-map-toolbar .bf-map-pan[aria-pressed=true]{border-color:#d61f26;background:#fff3f3;color:#9e1720}
body.bf-portal-page .bf-map-toolbar>span{overflow-wrap:anywhere}
body.bf-portal-page .bf-map-scroll{max-width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;padding:2px 0 10px}
body.bf-portal-page .bf-map-page{position:relative;width:min(100%,760px);min-height:140px;margin:0 auto;border:1px solid #c5cbd3;box-shadow:0 8px 26px #2f313619;background:#fff;touch-action:none;user-select:none}
body.bf-portal-page .bf-map-scroll.is-panning .bf-map-page{touch-action:pan-x}
body.bf-portal-page .bf-map-scroll.is-panning .bf-map-marker{pointer-events:none}
body.bf-portal-page .bf-map-page img,body.bf-portal-page .bf-map-page canvas{display:block;width:100%;height:auto}
body.bf-portal-page .bf-map-page img[hidden],body.bf-portal-page .bf-map-page canvas[hidden]{display:none}
body.bf-portal-page .bf-map-controls form>.bf-map-signer{grid-column:1/-1}
body.bf-portal-page .bf-map-markers{position:absolute;inset:0;pointer-events:none}
body.bf-portal-page .bf-map-marker{position:absolute;display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;overflow:hidden;padding:2px 4px;border:2px solid #bd0c19;border-radius:4px;background:#d61f2650;color:#111820;font:700 10px/1.2 Montserrat,Arial,sans-serif;text-align:center;word-break:break-word;pointer-events:auto;cursor:pointer}
body.bf-portal-page .bf-map-marker-draft{border-style:dashed;background:#ffe3e5;pointer-events:none}
body.bf-portal-page .bf-map-marker:focus-visible{outline:3px solid #111820;outline-offset:2px}
body.bf-portal-page .bf-map-status{margin:10px 0 0;color:#434a55;font-size:11px;line-height:1.5}
body.bf-portal-page .bf-map-controls form[data-bf-map-form]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0}
body.bf-portal-page .bf-map-controls .bf-field{min-width:0}
body.bf-portal-page .bf-map-controls .bf-checkbox{grid-column:1/-1;display:flex;align-items:center;gap:9px;min-height:40px;font-size:12px;color:#252930}
body.bf-portal-page .bf-map-controls .bf-checkbox input{width:18px;height:18px;margin:0;accent-color:#d61f26}
body.bf-portal-page .bf-map-controls .bf-help-text{grid-column:1/-1;margin:0;line-height:1.5}
body.bf-portal-page .bf-map-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px}
body.bf-portal-page .bf-map-actions .bf-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin:0;text-align:center}
body.bf-portal-page .bf-map-actions .bf-button[disabled]{opacity:.55;cursor:not-allowed}
body.bf-portal-page .bf-map-field-list{margin-top:18px;padding-top:15px;border-top:1px solid #dce0e4}
body.bf-portal-page .bf-map-field-list h4{margin:0 0 8px;font-size:13px;color:#252930}
body.bf-portal-page .bf-map-field-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;padding:9px 0;border-top:1px solid #e2e5e9}
body.bf-portal-page .bf-map-field-row>button{flex:1;min-width:0;padding:5px 0;border:0;background:transparent;text-align:left;color:#252930;cursor:pointer}
body.bf-portal-page .bf-map-field-row>button strong,body.bf-portal-page .bf-map-field-row>button span{display:block;overflow-wrap:anywhere}
body.bf-portal-page .bf-map-field-row>button span{margin-top:3px;color:#59616c;font-size:10px}
body.bf-portal-page .bf-map-field-row form{flex:none;margin:0}
body.bf-portal-page .bf-map-field-row .bf-button{margin:0;min-height:38px}
@media(min-width:1180px){body.bf-portal-page .bf-map-layout{grid-template-columns:minmax(0,1.3fr) minmax(310px,.7fr)}}
@media(max-width:480px){body.bf-portal-page .bf-map-document,body.bf-portal-page .bf-map-controls{padding:12px}body.bf-portal-page .bf-map-controls form[data-bf-map-form]{grid-template-columns:1fr}body.bf-portal-page .bf-map-actions .bf-button{flex:1 1 100%}}

/* Focused template authoring and review: shared BridgeFin card rhythm. */
.bf-template-workspace { min-width:0; }
.bf-template-header { display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px; }
.bf-template-header>div { flex:1 1 280px;min-width:0; }
.bf-template-header .bf-text-link { display:inline-flex;align-items:center;min-height:36px;margin-bottom:8px; }
.bf-template-header h1 { margin:0;font:600 clamp(22px,2.4vw,30px)/1.3 Poppins,Montserrat,Arial,sans-serif;letter-spacing:-.025em;overflow-wrap:anywhere; }
.bf-template-header p:not(.bf-eyebrow) { max-width:720px;margin:8px 0 0;color:var(--bf-steel);font-size:13px;line-height:1.7; }
.bf-template-header>.bf-badge { margin-top:10px; }
.bf-template-tabs { display:flex;flex-wrap:wrap;gap:6px;padding:6px;margin:0 0 20px;border:1px solid var(--bf-light);border-radius:10px;background:var(--bf-pale); }
.bf-template-tabs a { display:inline-flex;justify-content:center;align-items:center;min-height:44px;flex:1 1 auto;padding:10px 14px;border:1px solid transparent;border-radius:7px;color:var(--bf-charcoal);font-size:12px;font-weight:600;text-decoration:none; }
.bf-template-tabs a[aria-selected="true"] { background:#fff;border-color:#d9dce1;box-shadow:0 2px 5px rgba(47,49,54,.04);color:#b2171d; }
.bf-template-tabs a:hover { color:#b2171d; }
.bf-template-tabs a:focus-visible,.bf-template-pane:focus-visible { outline:2px solid var(--bf-red);outline-offset:3px; }
.bf-template-pane { min-width:0;scroll-margin-top:90px; }
.bf-template-pane[hidden] { display:none!important; }
.bf-template-pane-title { margin:0 0 16px!important;font:600 18px/1.4 Poppins,Montserrat,Arial,sans-serif!important; }
.bf-template-summary { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px; }
.bf-template-summary>div { display:flex;flex-direction:column;gap:7px;padding:16px;border:1px solid var(--bf-light);border-radius:10px;background:var(--bf-pale);min-width:0; }
.bf-template-summary span { font-size:11px;color:var(--bf-steel); }
.bf-template-summary strong { font:600 19px/1.3 Poppins,Montserrat,Arial,sans-serif;overflow-wrap:anywhere; }
.bf-template-summary small { font-size:11px;line-height:1.6;color:var(--bf-steel); }
.bf-template-overview-grid,.bf-template-review-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px; }
.bf-template-card { padding:18px;border:1px solid var(--bf-light);border-radius:10px;background:#fff;min-width:0; }
.bf-template-card h3,.bf-template-field-card h3,.bf-template-library-card h3 { margin:0 0 10px!important;font:600 15px/1.5 Poppins,Montserrat,Arial,sans-serif!important;overflow-wrap:anywhere; }
.bf-template-card p { margin:0 0 14px;line-height:1.75;font-size:12px; }
.bf-template-details { margin:0;display:grid;gap:12px; }
.bf-template-details>div { display:grid;grid-template-columns:minmax(100px,.75fr) minmax(0,1fr);gap:12px; }
.bf-template-details dt,.bf-template-field-meta dt,.bf-template-library-card dt { color:var(--bf-steel);font-size:11px; }
.bf-template-details dd,.bf-template-field-meta dd,.bf-template-library-card dd { margin:0;font-size:12px;font-weight:500;overflow-wrap:anywhere; }
.bf-template-readiness { background:#fff8f8;border-color:#f1d9db; }
.bf-template-readiness ul { margin:0 0 14px;padding-left:20px;font-size:12px;line-height:1.8; }
.bf-template-review { margin-top:16px; }
.bf-template-action-form { display:grid;gap:14px;margin-top:12px;align-content:start; }
.bf-template-action-form .bf-field textarea { resize:vertical; }
.bf-template-action-form .bf-button { justify-self:start; }
.bf-template-alert,.bf-template-unsaved { padding:12px!important;border-left:3px solid var(--bf-red);background:#fff0f1;color:#96232a!important; }
body.bf-portal-page .bf-template-workspace .bf-button-secondary,body.bf-portal-page .bf-template-library .bf-button-secondary { color:var(--bf-charcoal)!important;background:#fff!important;border:1px solid #cbd0d6!important; }
body.bf-portal-page .bf-template-workspace .bf-button-secondary:hover,body.bf-portal-page .bf-template-library .bf-button-secondary:hover { color:#b2171d!important;border-color:var(--bf-red)!important; }
.bf-template-workspace .bf-button { min-height:44px;display:inline-flex;align-items:center;justify-content:center;line-height:1.4;text-align:center;white-space:normal; }
.bf-template-workspace .bf-button:disabled { opacity:.5;cursor:not-allowed; }
.bf-template-revision-form { margin-top:16px; }
.bf-template-retire { margin-top:18px;padding-top:16px;border-top:1px solid var(--bf-light); }
.bf-template-retire summary,.bf-template-field-edit summary,.bf-template-add-field summary,.bf-template-new summary { min-height:44px;display:list-item;align-content:center;font-size:12px;font-weight:600;cursor:pointer; }
.bf-template-version-list { list-style:none!important;margin:0;padding:0!important; }
.bf-template-version-list li { display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:14px 0;border-top:1px solid var(--bf-light); }
.bf-template-version-list li>div { flex:1 1 180px;min-width:0; }
.bf-template-version-list strong,.bf-template-version-list span:not(.bf-badge) { display:block; }
.bf-template-version-list strong { font-size:13px; }
.bf-template-version-list div>span { font-size:11px;color:var(--bf-steel);margin-top:5px; }
.bf-template-history { margin-top:16px; }
.bf-template-history ol { list-style:none!important;margin:0;padding:0!important; }
.bf-template-history li { padding:14px 0;border-top:1px solid var(--bf-light);font-size:12px; }
.bf-template-history li>div { display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 14px; }
.bf-template-history time { color:var(--bf-steel);font-size:11px; }
.bf-template-history li p { margin:8px 0 0;overflow-wrap:anywhere;white-space:normal; }
.bf-template-workspace .bf-contract-draft-preview { margin:16px 0;padding:18px;background:var(--bf-pale); }
.bf-template-workspace .bf-contract-preview-paper { max-height:none;padding:24px;background:#fff;border:1px solid var(--bf-light);min-width:0;overflow-wrap:anywhere; }
.bf-template-paper-caption { display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-bottom:12px;font-size:10px;color:var(--bf-steel); }
.bf-template-field-list { display:grid;gap:12px; }
body.bf-portal-page #bf-main .bf-template-field-card { padding:16px!important;border:1px solid var(--bf-light);border-radius:10px;background:#fff;min-width:0; }
.bf-template-field-heading { display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;align-items:flex-start; }
.bf-template-field-heading>div { min-width:0; }
.bf-template-field-heading h3 { margin-bottom:5px!important; }
.bf-template-field-heading code { display:inline-block;max-width:100%;font-size:11px;overflow-wrap:anywhere; }
.bf-template-field-meta { display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:12px;margin:16px 0; }
.bf-template-field-meta dt { margin-bottom:5px; }
.bf-template-field-edit { border-top:1px solid var(--bf-light);padding-top:6px; }
.bf-template-field-remove { display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:18px;padding-top:16px;border-top:1px solid var(--bf-light); }
.bf-template-field-remove p { flex:1 1 240px;margin:0; }
.bf-template-add-field { margin-top:16px;padding:16px;border:1px dashed #b9bfc8;border-radius:10px;background:var(--bf-pale); }
.bf-template-workspace .bf-form-grid { gap:16px; }
.bf-template-workspace .bf-field>span { font-size:12px; }
.bf-template-workspace .bf-field small { line-height:1.6; }
.bf-template-workspace .bf-field input,.bf-template-workspace .bf-field select { min-height:44px; }
.bf-template-workspace .bf-checkbox { min-height:44px;align-items:center;gap:10px; }
.bf-template-workspace .bf-form-actions { margin-top:4px; }
.bf-template-library-filter { display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,.35fr) auto;gap:12px;align-items:end;margin-bottom:18px; }
.bf-template-library-filter .bf-button { min-height:44px;margin:0; }
.bf-template-library { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px; }
body.bf-portal-page #bf-main .bf-template-library-card { display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:14px;padding:18px!important;border:1px solid var(--bf-light);border-radius:10px;background:#fff; }
.bf-template-library-card h3 { margin-bottom:4px!important; }
.bf-template-library-card p { color:var(--bf-steel);margin:0;font-size:11px;line-height:1.6; }
.bf-template-library-card dl { grid-column:1/-1;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:12px; }
.bf-template-library-card dt { margin-bottom:4px; }
.bf-template-library-card .bf-button { justify-self:start;grid-column:1/-1;min-height:44px; }
.bf-template-new { margin:18px 0; }
.bf-template-new summary { font:600 17px/1.5 Poppins,Montserrat,Arial,sans-serif; }
@media(max-width:900px) { .bf-template-overview-grid,.bf-template-review-grid,.bf-template-library { grid-template-columns:minmax(0,1fr); } }
@media(max-width:639px) {
    .bf-template-summary { grid-template-columns:minmax(0,1fr);gap:10px; }
    .bf-template-summary>div { display:grid;grid-template-columns:1fr auto;gap:5px 12px;padding:14px; }
    .bf-template-summary strong { font-size:16px;text-align:right; }
    .bf-template-summary small { grid-column:1/-1; }
    .bf-template-tabs { gap:4px;padding:4px; }
    .bf-template-tabs a { flex:1 1 38%;padding:10px 8px;font-size:11px; }
    .bf-template-card { padding:14px; }
    .bf-template-details>div { grid-template-columns:minmax(0,1fr);gap:4px; }
    .bf-template-field-meta { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .bf-template-field-meta>div:first-child { grid-column:1/-1; }
    .bf-template-workspace .bf-contract-draft-preview { padding:10px; }
    .bf-template-workspace .bf-contract-preview-paper { padding:14px; }
    .bf-template-library-filter { grid-template-columns:minmax(0,1fr); }
    .bf-template-action-form .bf-button,.bf-template-field-remove .bf-button,.bf-template-workspace .bf-form-actions .bf-button { width:100%;justify-self:stretch; }
    body.bf-portal-page #bf-main .bf-template-library-card { grid-template-columns:minmax(0,1fr);padding:14px!important; }
    .bf-template-library-card>.bf-badge { justify-self:start; }
}

body.bf-portal-page #bf-main .bf-template-header h1 { font-size:clamp(22px,2.4vw,30px)!important;line-height:1.3!important;margin:0!important; }
body.bf-portal-page #bf-main .bf-template-pane-title { font-size:18px!important;line-height:1.4!important;margin:0 0 16px!important; }
body.bf-portal-page #bf-main .bf-template-card h3,body.bf-portal-page #bf-main .bf-template-field-card h3,body.bf-portal-page #bf-main .bf-template-library-card h3 { font-size:15px!important;line-height:1.5!important;margin:0 0 10px!important; }
/* TinyMCE's default nowrap group clips the last controls on a phone. */
body.bf-portal-page .bf-contract-wording .mce-toolbar-grp .mce-btn-group { max-width:100%;white-space:normal; }
body.bf-portal-page .bf-contract-wording .mce-toolbar-grp .mce-btn-group>div { display:flex;flex-wrap:wrap;gap:2px;align-items:center; }
body.bf-portal-page .bf-contract-wording .mce-toolbar-grp .mce-btn { flex:0 0 auto;margin:0; }
@media(max-width:639px) {
    body.bf-portal-page .bf-contract-wording .mce-toolbar-grp .mce-btn button { min-height:44px;min-width:36px;box-sizing:border-box; }
}

/* Document review uses the same card and control rhythm as the contract workspace. */
.bf-document-review-workspace .bf-portal-section-heading{align-items:center;gap:16px}
body.bf-portal-page .bf-document-review-workspace>.bf-portal-section-heading>.bf-button-ghost{color:var(--bf-charcoal)!important;background:#fff!important;border:1px solid #cbd0d6!important}
body.bf-portal-page .bf-document-review-workspace>.bf-portal-section-heading>.bf-button-ghost:hover{color:var(--bf-red)!important;border-color:var(--bf-red)!important}
.bf-review-file-summary{display:flex;justify-content:space-between;align-items:center;gap:16px}
body.bf-portal-page .bf-document-review-workspace>.bf-review-file-summary{margin-bottom:20px}
.bf-review-file-summary>div{display:flex;align-items:center;gap:14px;min-width:0}
.bf-review-file-summary h2{margin:0 0 6px;overflow-wrap:anywhere;font-size:18px}
.bf-review-file-summary p{margin:0;color:var(--bf-steel);font-size:13px}
.bf-review-file-icon{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border-radius:12px;background:#fff0f1;color:var(--bf-red)}
.bf-review-file-icon>svg{display:block;width:20px;height:20px;max-width:20px;max-height:20px}
.bf-document-review-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}
.bf-document-review-grid .bf-panel{margin:0;min-width:0;height:auto}
body.bf-portal-page .bf-document-review-grid .bf-empty-state{min-height:150px;padding:22px 12px}
.bf-document-review-form{display:grid;gap:18px;margin-top:18px}
.bf-document-review-form .bf-field{margin:0;min-width:0}
.bf-document-review-form textarea{min-height:112px;resize:vertical}
.bf-document-review-form select,.bf-document-review-form input{min-height:44px}
.bf-document-review-form .bf-form-actions{margin:0;padding-top:2px}
.bf-document-review-history{list-style:none;padding:0;margin:16px 0 0;display:grid;gap:16px}
.bf-document-review-history li{border:1px solid var(--bf-light);border-radius:12px;padding:16px;min-width:0;overflow-wrap:anywhere}
.bf-review-history-title{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.bf-review-history-title span{font-size:12px;color:var(--bf-steel)}
.bf-review-message,.bf-review-private-note{margin-top:14px;padding:12px 14px;border-radius:10px;background:#f6f7f9}
.bf-review-private-note{border-left:3px solid #c7cbd1}
.bf-review-message p,.bf-review-private-note p{margin:7px 0 0;white-space:normal;overflow-wrap:anywhere}
.bf-review-next-step{border-top:1px solid var(--bf-light);margin-top:20px;padding-top:18px}
.bf-document-service-note{display:flex;gap:12px;align-items:flex-start;padding:16px;margin:16px 0;border-radius:12px;background:#f6f7f9}
.bf-document-service-note>svg{display:block;flex:0 0 20px;width:20px;height:20px;max-width:20px;max-height:20px;margin-top:2px;color:var(--bf-red)}
.bf-document-service-note>div{min-width:0;overflow-wrap:anywhere}
.bf-document-service-note p{font-size:13px;margin:6px 0 0;line-height:1.5}
.bf-document-service{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 18px}
.bf-document-service-card{min-width:0;padding:18px;border:1px solid #e5e7eb;border-radius:14px;background:#fff;overflow-wrap:anywhere}
body.bf-portal-page #bf-main .bf-document-service-card{padding-left:18px!important;padding-right:18px!important}
.bf-document-service-card-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:13px;flex-wrap:wrap}
.bf-document-service-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 36px;width:36px;height:36px;background:#fff0f1;border-radius:10px;color:var(--bf-red)}
.bf-document-service-icon svg{display:block;width:20px;height:20px;max-width:20px;max-height:20px}
.bf-document-service-badge{display:inline-flex;align-items:center;justify-content:center;min-height:26px;padding:4px 8px;border-radius:6px;font-size:11px;font-weight:600;line-height:1.35;color:#5b626d;background:#f0f1f4}
.bf-document-service-badge.is-ready{background:#e8f5ef;color:#226247}
body.bf-portal-page .bf-document-service-card h2{font-family:Poppins,Montserrat,Arial,sans-serif;font-size:15px!important;line-height:1.4;margin:0 0 6px;color:var(--bf-charcoal)}
.bf-document-service-card p{font-size:12px;line-height:1.6;margin:0;color:#626a76}
@media(max-width:1100px){.bf-document-service{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:460px){.bf-document-service{grid-template-columns:1fr;gap:10px}.bf-document-service-card{padding:15px}.bf-document-service-card-top{margin-bottom:10px}.bf-document-service-card p{font-size:13px}}
@media(max-width:460px){body.bf-portal-page #bf-main .bf-document-service-card{padding-left:15px!important;padding-right:15px!important}}
.bf-document-tabs{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}
body.bf-portal-page .bf-document-tabs .bf-button-ghost{background:#fff!important;color:var(--bf-charcoal)!important;border-color:#d8dde5!important}
body.bf-portal-page .bf-document-tabs .bf-button-ghost:hover,body.bf-portal-page .bf-document-tabs .bf-button-ghost:focus-visible{color:var(--bf-red)!important;border-color:var(--bf-red)!important}
.bf-file-library-list{list-style:none!important;padding:0!important;margin:18px 0 0!important}
.bf-file-library-item{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;border-top:1px solid #e7e9ed;min-width:0}
.bf-file-library-content{display:flex;gap:12px;align-items:flex-start;min-width:0;flex:1}
.bf-file-library-icon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;flex:0 0 38px;border-radius:10px;background:#fff0f1;color:var(--bf-red)}
.bf-file-library-icon svg{display:block;width:20px;height:20px;max-width:20px;max-height:20px}
.bf-file-library-details{min-width:0;overflow-wrap:anywhere}
body.bf-portal-page .bf-file-library-details h3{font-size:14px!important;line-height:1.55;margin:0 0 4px;color:var(--bf-charcoal)}
.bf-file-library-matter,.bf-file-library-meta{font-size:12px!important;line-height:1.6;margin:3px 0!important;color:#626a76;overflow-wrap:anywhere}
.bf-file-library-actions{display:flex;flex-direction:column;align-items:flex-end;gap:10px;flex:0 0 auto;max-width:100%}
.bf-file-library-links{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.bf-file-library-pagination{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-top:20px}
@media(max-width:900px){.bf-file-library-item{align-items:flex-start;flex-direction:column;gap:12px}.bf-file-library-actions{align-items:flex-start;width:100%;padding-left:50px}.bf-file-library-links{justify-content:flex-start}}
@media(max-width:460px){.bf-file-library-actions{padding-left:0}.bf-file-library-links{width:100%}.bf-file-library-links .bf-button{flex:1}.bf-file-library-item{padding:15px 0}.bf-file-library-pagination .bf-button{max-width:100%}}
.bf-requirement-action{display:grid!important;grid-template-columns:minmax(0,180px) minmax(0,1fr) auto;gap:12px;align-items:center}
.bf-requirement-action select,.bf-requirement-action input,.bf-requirement-action button{min-height:44px;margin:0!important}
.bf-requirement-action input{min-width:0;width:100%}
@media(max-width:900px){.bf-document-review-grid{grid-template-columns:minmax(0,1fr)}.bf-requirement-action{grid-template-columns:minmax(0,1fr)!important}.bf-requirement-action button{justify-self:start}}
@media(max-width:600px){.bf-review-file-summary{align-items:flex-start;flex-direction:column}.bf-document-review-workspace .bf-portal-section-heading{align-items:flex-start}.bf-review-file-summary>div{align-items:flex-start}.bf-document-review-grid{gap:16px}.bf-document-review-history li{padding:14px}.bf-review-file-summary h2{font-size:16px}.bf-document-review-workspace .bf-portal-section-heading>.bf-button{width:100%}.bf-document-review-form .bf-button{width:100%}}
/* Signing packets follow the same compact document-review card system. */
.bf-signing-review-list{display:grid;gap:16px;margin-top:20px;min-width:0}
.bf-signing-review-card{border:1px solid var(--bf-line,#e4e6eb);border-radius:12px;padding:18px;background:#fff;min-width:0;color:var(--bf-ink,#2f3136)}
.bf-signing-review-card>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;min-height:44px;list-style:none}
.bf-signing-review-card>summary::-webkit-details-marker{display:none}
.bf-signing-review-card>summary>span:first-child{display:grid;gap:4px;min-width:0}
.bf-signing-review-card>summary:focus-visible,.bf-signing-fingerprint>summary:focus-visible{outline:2px solid #d61f26;outline-offset:4px;border-radius:4px}
.bf-signing-review-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:18px 0;margin:12px 0 18px;border-top:1px solid #e7e8eb;border-bottom:1px solid #e7e8eb;font-size:13px}
.bf-signing-review-meta>span{display:grid;gap:5px;overflow-wrap:anywhere}
.bf-signing-review-card h4{font-size:14px;line-height:1.4;margin:18px 0 12px}
.bf-signing-review-documents{display:grid;gap:12px}
.bf-signing-review-documents>section{padding:14px 16px;border:1px solid #e7e8eb;border-radius:10px;background:#f8f9fb;min-width:0}
.bf-signing-review-document-title{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:13px}
.bf-signing-field-list,.bf-signing-recipient-list{list-style:none;padding:0!important;margin:12px 0 0!important;display:grid;gap:10px}
.bf-signing-field-list li{display:flex;justify-content:space-between;gap:14px;font-size:12px;line-height:1.6;border-top:1px solid #e7e8eb;padding-top:8px;overflow-wrap:anywhere}
.bf-signing-field-list li>span:last-child{color:#5b616c;text-align:right}
.bf-signing-routing-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:16px 0 20px}
.bf-signing-recipient-list li{display:flex;align-items:flex-start;gap:12px;padding:10px 0;border-top:1px solid #e7e8eb;font-size:13px;min-width:0}
.bf-signing-recipient-list li>span:last-child{display:grid;gap:3px;overflow-wrap:anywhere;min-width:0}
.bf-signing-order{display:flex;align-items:center;justify-content:center;flex:0 0 28px;width:28px;height:28px;border-radius:8px;color:#d61f26;background:#fff0f1;font-weight:600}
.bf-signing-review-form{display:grid;gap:14px;margin-top:18px;padding-top:18px;border-top:1px solid #e7e8eb}
.bf-signing-review-form .bf-field{width:100%;min-width:0;margin:0}
.bf-signing-review-form textarea{width:100%;min-height:100px;box-sizing:border-box;resize:vertical;background:#fff;color:#2f3136;border:1px solid #c8cbd1;border-radius:8px;padding:12px 14px;line-height:1.6}
.bf-signing-review-form small{font-size:12px;line-height:1.6;color:#5b616c}
.bf-signing-review-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.bf-signing-review-actions .bf-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;text-align:center;line-height:1.35}
.bf-signing-fingerprint{margin-top:14px;font-size:12px;min-width:0}
.bf-signing-fingerprint>summary{cursor:pointer;min-height:32px;display:flex;align-items:center;color:#5b616c}
.bf-signing-fingerprint p{margin:6px 0!important;font-size:11px!important}
.bf-signing-fingerprint code{display:block;white-space:normal;overflow-wrap:anywhere;padding:8px;border-radius:6px;background:#f1f2f5;font-size:11px}
@media(max-width:767px){.bf-signing-review-card{padding:14px}.bf-signing-review-card>summary{align-items:flex-start;flex-direction:column;gap:10px}.bf-signing-review-card .bf-badge{max-width:100%;white-space:normal;line-height:1.5}.bf-signing-review-meta,.bf-signing-routing-grid{grid-template-columns:1fr;gap:14px}.bf-signing-field-list li{flex-direction:column;gap:3px}.bf-signing-field-list li>span:last-child{text-align:left}.bf-signing-review-actions{display:grid;grid-template-columns:1fr;width:100%}.bf-signing-review-actions .bf-button{width:100%;box-sizing:border-box}.bf-signing-review-documents>section{padding:12px}}

/* One file catalogue, with separate matter-scoped repositories. */
body.bf-portal-page .bf-file-library .bf-library-filter{grid-template-columns:minmax(0,1fr);gap:12px}
body.bf-portal-page .bf-library-filter input,body.bf-portal-page .bf-library-filter select,body.bf-portal-page .bf-library-filter button{min-height:44px}
.bf-library-context{margin:14px 0 0!important;max-width:80ch;line-height:1.7}
.bf-file-library-actions .bf-badge{max-width:100%;white-space:normal;overflow-wrap:anywhere;line-height:1.5}
@media(min-width:700px){body.bf-portal-page .bf-file-library .bf-library-filter{grid-template-columns:repeat(2,minmax(0,1fr))}body.bf-portal-page .bf-library-filter button{align-self:end}}
@media(min-width:1100px){body.bf-portal-page .bf-file-library .bf-library-filter{grid-template-columns:minmax(0,1fr) minmax(0,180px) minmax(0,180px) auto}}
@media(max-width:699px){body.bf-portal-page .bf-library-filter button{width:100%}}

/* Retention workspace: existing brand, cards and controls; single-column first. */
.bf-retention-notice{display:flex;gap:12px;align-items:flex-start;padding:15px 18px;border:1px solid #e2e5e9;border-radius:12px;background:#f6f7f9;color:#343a43;margin:0 0 18px}
.bf-retention-notice>svg{flex:0 0 20px;width:20px;height:20px;margin-top:2px;color:#b91825}
.bf-retention-notice p{margin:0;font-size:13px;line-height:1.65}
.bf-retention-wide{grid-column:1/-1;min-width:0}
.bf-retention-form{margin-top:16px;gap:18px}
.bf-retention-form .bf-field{min-width:0}
.bf-retention-form input,.bf-retention-form select,.bf-retention-form textarea{width:100%;max-width:100%;box-sizing:border-box}
.bf-retention-form .bf-form-actions{margin-top:0;justify-content:flex-start}
.bf-retention-list{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.bf-retention-card{display:flex;flex-direction:column;gap:12px;padding:16px;border:1px solid #e1e4e8;border-radius:12px;min-width:0}
.bf-retention-card h3{margin:0;font-size:15px;line-height:1.5;overflow-wrap:anywhere}
.bf-retention-card p{margin:5px 0 0;overflow-wrap:anywhere}
.bf-retention-card-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.bf-retention-card-actions .bf-badge{max-width:100%;white-space:normal}
.bf-retention-explanation{border-top:1px solid #eceef1;padding-top:14px;margin-top:14px;overflow-wrap:anywhere}
.bf-retention-explanation h3{font-size:14px;margin:0 0 6px}
.bf-retention-explanation p{font-size:13px;line-height:1.75;margin:0;white-space:normal}
.bf-retention-calculation{border:1px solid #e1e4e8;border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;justify-content:center;gap:7px;min-width:0;background:#f7f8fa}
.bf-retention-calculation span{font-size:12px;color:#424953;font-weight:600}
.bf-retention-calculation strong{font-family:Poppins,sans-serif;font-size:15px;line-height:1.5;color:#20252c;overflow-wrap:anywhere}
.bf-retention-calculation small{font-size:11px;line-height:1.6;color:#565e68}
.bf-retention-hold{background:#fff5e5;border:1px solid #eed7a6;color:#614310;padding:12px 14px;border-radius:10px;font-size:13px;line-height:1.65}
.bf-retention-history{display:grid;gap:10px;margin-top:12px}
.bf-retention-history details{border:1px solid #e1e4e8;border-radius:10px;padding:12px 14px;min-width:0}
.bf-retention-history summary{display:flex;flex-direction:column;gap:5px;cursor:pointer;font-size:13px;line-height:1.6;overflow-wrap:anywhere}
.bf-retention-history small{font-size:11px;color:#59616b}
.bf-retention-history p{font-size:13px;line-height:1.75;overflow-wrap:anywhere}
.bf-document-tabs .bf-text-link[aria-current=page]{color:#a71d28;text-decoration:underline;text-underline-offset:5px}
@media(min-width:768px){.bf-retention-card{flex-direction:row;justify-content:space-between;align-items:center}.bf-retention-card>div:first-child{min-width:0;flex:1}.bf-retention-card-actions{justify-content:flex-end;flex:0 0 auto;max-width:48%}}
@media(max-width:480px){.bf-retention-form .bf-form-actions .bf-button{width:100%}.bf-retention-notice{padding:14px;gap:10px}.bf-retention-card{padding:14px}.bf-retention-card-actions{gap:8px}}

.bf-retention-form-heading{font-family:Poppins,sans-serif;font-size:14px;line-height:1.6;margin:2px 0 0;padding:0 0 10px;border-bottom:1px solid #e5e8ec;color:#292f37}

/* Signing management retains the common compact forms and centred controls. */
body.bf-portal-page .bf-signing-progress-document:has(.bf-signing-management){display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:16px}
body.bf-portal-page .bf-signing-progress-document:has(.bf-signing-management) .bf-signing-progress-actions{width:100%;min-width:0;max-width:none;justify-content:flex-start}
body.bf-portal-page .bf-signing-management{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px;width:100%;min-width:0;border-top:1px solid #e7e8eb;margin-top:12px;padding-top:16px;overflow-wrap:anywhere}
body.bf-portal-page .bf-signing-management>:not(form){grid-column:1/-1}
body.bf-portal-page .bf-signing-management>form{min-width:0;align-self:start}
body.bf-portal-page .bf-signing-management>form:only-of-type{grid-column:1/-1;max-width:640px;width:100%}
@media(max-width:767px){body.bf-portal-page .bf-signing-management{grid-template-columns:minmax(0,1fr);gap:16px}}
body.bf-portal-page .bf-signing-management summary{cursor:pointer;font-weight:600;min-height:32px;line-height:1.5}
body.bf-portal-page .bf-signing-management p{font-size:12px;line-height:1.65;margin:8px 0}
body.bf-portal-page .bf-signing-control .bf-signing-note{width:100%;min-height:88px;box-sizing:border-box;font:inherit;font-size:12px;line-height:1.5;padding:10px 12px;border:1px solid #c7cbd1;border-radius:6px;color:#2f3136;background:#fff;resize:vertical}
body.bf-portal-page .bf-signing-note-label{font-size:12px;font-weight:600;margin:0;line-height:1.5}
body.bf-portal-page .bf-signing-control small{font-size:11px;line-height:1.5;color:#626873}

body.bf-portal-page .bf-signing-provider-id{box-sizing:border-box;width:100%;height:44px;min-width:0;font:inherit;font-size:12px;padding:10px 12px;border:1px solid #c7cbd1;border-radius:6px;color:#2f3136;background:#fff}

/* Completed document packages retain the common card, control and spacing system. */
.bf-signed-library,.bf-signed-library-files{list-style:none!important;padding:0!important;margin:18px 0 0!important}
.bf-signed-library-package{border:1px solid #e7e9ed;border-radius:14px;padding:20px;margin:0 0 16px;background:#fff;min-width:0}
.bf-signed-library-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;min-width:0}
.bf-signed-library-heading>div,.bf-signed-library-label>div{min-width:0;overflow-wrap:anywhere}
body.bf-portal-page .bf-signed-library h3,body.bf-portal-page .bf-signed-library h4{font-size:14px!important;line-height:1.5;margin:0 0 4px!important;color:var(--bf-charcoal)}
.bf-signed-library p{font-size:12px!important;line-height:1.6;margin:3px 0!important;overflow-wrap:anywhere}
.bf-signed-library-files>li{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #e7e9ed;padding:16px 0;min-width:0}
.bf-signed-library-files>li:last-child{padding-bottom:0}
.bf-signed-library-label{display:flex;align-items:flex-start;gap:12px;min-width:0;flex:1}
.bf-signed-library .bf-button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;text-align:center;white-space:normal;line-height:1.4}
@media(max-width:900px){.bf-signed-library-files>li{align-items:stretch;flex-direction:column;gap:12px}.bf-signed-library .bf-signed-copy-actions{justify-content:flex-start}}
@media(max-width:520px){.bf-signed-library-package{padding:16px}.bf-signed-library-heading{align-items:stretch;flex-direction:column;gap:12px}.bf-signed-library .bf-signed-copy-actions{display:grid;grid-template-columns:minmax(0,1fr);width:100%}.bf-signed-library .bf-signed-copy-actions form,.bf-signed-library .bf-signed-copy-actions .bf-button{width:100%;min-width:0}}
@media(min-width:1100px){body.bf-portal-page .bf-file-library .bf-library-filter-signed{grid-template-columns:minmax(0,1fr) 280px auto}}

/* Draft library shares the contract workspace spacing and controls. */
.bf-legal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}
.bf-legal-card{min-width:0;padding:22px;border:1px solid #dfe2e7;border-radius:14px;background:#fff;color:#2f3136;display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.bf-legal-card h3,.bf-legal-card p,.bf-legal-card form{margin:0!important}
.bf-legal-card h3{font-size:16px!important;line-height:1.45!important}
.bf-legal-card p,.bf-legal-card li,.bf-legal-intro p,.bf-legal-review li{font-size:13px;line-height:1.65}
.bf-legal-card summary,.bf-legal-annexures>summary{font-size:13px;font-weight:600;cursor:pointer;padding:8px 0}
.bf-legal-card ul,.bf-legal-review ul{padding-left:20px;margin:10px 0}
.bf-legal-card li,.bf-legal-review li{margin-bottom:8px}
.bf-legal-card .bf-form-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:8px;width:100%}
.bf-legal-card .bf-button{white-space:normal;text-align:center;min-height:44px;line-height:1.35}
.bf-legal-annexures{margin-top:22px;padding:18px;border:1px solid #dfe2e7;border-radius:12px;background:#f7f8fa}
.bf-legal-review{margin-top:20px}
@media(max-width:767px){.bf-legal-grid{grid-template-columns:minmax(0,1fr);gap:14px}.bf-legal-card{padding:18px;gap:10px}.bf-legal-card .bf-form-actions{flex-direction:column;align-items:stretch}.bf-legal-card .bf-form-actions form,.bf-legal-card .bf-button{width:100%;box-sizing:border-box}.bf-legal-annexures{padding:14px}}

/* Matter servicing forms share the portal spacing and readable widths. */
.bf-matter-document-form>.bf-field-wide,.bf-matter-document-form>.bf-form-actions{grid-column:1/-1;min-width:0}
.bf-matter-document-detail{margin-top:18px;min-width:0}
.bf-matter-document-detail>form+form,.bf-matter-document-detail>.bf-form-actions+form{margin-top:16px}
.bf-matter-document-detail>.bf-matter-details{margin-top:16px}
.bf-document-history{display:grid;gap:10px;margin:14px 0 0;padding-left:20px}
.bf-document-history li{padding-left:3px;overflow-wrap:anywhere}
.bf-matter-document-form .bf-field>label{display:block;margin-bottom:6px}
@media(max-width:700px){.bf-matter-document-form{grid-template-columns:minmax(0,1fr)}.bf-matter-document-detail{padding:14px}.bf-matter-document-form .bf-form-actions>.bf-button{width:100%}}

/* Keep field controls independent of the public theme button typography. */
body.bf-portal-page .bf-portal-shell button.bf-contract-token{font:600 13px/1.45 Montserrat,Arial,sans-serif!important;color:#2f3136!important;background:#fff!important;text-transform:none!important;letter-spacing:normal!important;justify-content:flex-start;min-height:44px;padding:10px 12px}
body.bf-portal-page .bf-portal-shell button.bf-contract-token span{font:inherit!important;color:inherit!important}
body.bf-portal-page .bf-portal-shell button.bf-contract-token code{display:none}

/* Keep hidden-tab rich editors usable when TinyMCE initially measures 100px. */
body.bf-portal-page .bf-contract-wording .mce-edit-area iframe{min-height:420px}
body.bf-portal-page .bf-contract-token-panel{max-height:640px;overflow-y:auto;overscroll-behavior:contain;align-content:start;grid-auto-rows:max-content;scrollbar-gutter:stable}
@media(max-width:760px){body.bf-portal-page .bf-contract-wording .mce-edit-area iframe{min-height:300px}body.bf-portal-page .bf-contract-token-panel{max-height:420px}}

/* Session recovery sits outside the hidden portal shell: style it independently
 * of theme headings, portal cards and standalone registration wrappers. */
html body dialog.bf-session-cover {
    box-sizing:border-box; width:calc(100% - 32px); max-width:440px;
    height:fit-content; min-height:0; max-height:calc(100vh - 32px); max-height:calc(100dvh - 32px);
    position:fixed; inset:0; margin:auto; padding:0; overflow:auto;
    border:1px solid #dfe2e7; border-radius:14px; background:#fff; color:#2f3136;
    box-shadow:0 14px 42px #23262b14; font:400 13px/1.65 Montserrat,Arial,sans-serif;
    text-align:left; letter-spacing:normal;
}
html body dialog.bf-session-cover:not([open]){display:none!important}
html body dialog.bf-session-cover::backdrop{background:#f7f8fa}
html body .bf-session-cover *{box-sizing:border-box}
html body .bf-session-cover .bf-session-brand{display:flex;align-items:center;justify-content:center;min-height:88px;padding:22px 24px;background:#23262b}
html body .bf-session-cover .bf-session-logo{display:block;width:182px;height:44px;background:url('BridgeFin_Solutions_Horizontal_Reverse_Cropped.png') center/contain no-repeat}
html body .bf-session-cover .bf-session-body{padding:28px}
html body .bf-session-cover .bf-session-icon{display:flex;align-items:center;justify-content:center;width:42px;height:42px;margin:0 0 18px;border-radius:11px;background:#fff0f1;color:#bb1821}
html body .bf-session-cover .bf-session-icon svg{display:block;width:24px;height:24px;margin:0}
html body .bf-session-cover h2{margin:0 0 10px!important;padding:0!important;font:600 20px/1.4 Poppins,Montserrat,Arial,sans-serif!important;letter-spacing:-.02em!important;color:#2f3136!important;text-transform:none!important;overflow-wrap:anywhere}
html body .bf-session-cover p{margin:0!important;padding:0!important;font:400 13px/1.7 Montserrat,Arial,sans-serif!important;letter-spacing:normal!important;color:#525964!important;overflow-wrap:anywhere}
html body .bf-session-cover .bf-session-action{display:flex;align-items:center;justify-content:center;width:100%;min-height:44px;max-width:100%;margin:22px 0 14px;padding:12px 16px;border:1px solid #d61f26;border-radius:7px;background:#d61f26;color:#fff;font:600 12px/1.5 Montserrat,Arial,sans-serif;letter-spacing:normal;text-transform:none;text-align:center;text-decoration:none;box-shadow:none;white-space:normal;cursor:pointer}
html body .bf-session-cover .bf-session-action:hover{background:#bd1720;border-color:#bd1720;color:#fff}
html body .bf-session-cover .bf-session-action:focus-visible{outline:2px solid #b71920;outline-offset:3px}
html body .bf-session-cover .bf-session-action:disabled{background:#8b3036;border-color:#8b3036;color:#fff;opacity:1;cursor:wait}
html body .bf-session-cover p.bf-session-help{font-size:11px!important;line-height:1.65!important;color:#626873!important}
@media(max-width:479px){html body .bf-session-cover .bf-session-body{padding:22px}html body .bf-session-cover .bf-session-brand{min-height:80px;padding:18px 22px}html body .bf-session-cover h2{font-size:18px!important}}
