.ffpProviderPaymentSetup {
  position: sticky;
  top: 0;
  z-index: 45;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: 0;
  padding: 14px 18px;
  border-bottom: 1px solid #dce4e7;
  background: #ffffff;
  color: #18212f;
  box-shadow: 0 10px 28px rgba(21,44,58,.08);
}
.ffpProviderPaymentSetupCopy { display:grid; gap:3px; min-width:0; }
.ffpProviderPaymentSetupCopy > span { color:#637686; font-size:.72rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.ffpProviderPaymentSetupCopy > strong { font-size:1rem; line-height:1.25; }
.ffpProviderPaymentSetupCopy > p { margin:0; max-width:760px; color:#637686; font-size:.86rem; line-height:1.4; }
.ffpProviderPaymentSetupButton { flex:0 0 auto; min-height:42px; padding:10px 15px; border:1px solid #111; border-radius:7px; background:#111; color:#fff; font:inherit; font-weight:800; cursor:pointer; }
.ffpProviderPaymentSetupButton:focus-visible { outline:3px solid rgba(17,17,17,.18); outline-offset:2px; }

.ffpBankingOpen { overflow:hidden; }
.ffpBankingPage { position:fixed; inset:0; z-index:120; overflow:auto; background:#f5f5f5; color:#1f1f1f; }
.ffpBankingShell { width:min(1100px, calc(100% - 32px)); margin:0 auto; padding:28px 0 56px; display:grid; gap:18px; }
.ffpBankingHeader { display:flex; gap:22px; align-items:flex-start; padding-bottom:8px; }
.ffpBankingHeader > div { display:grid; gap:4px; }
.ffpBankingHeader span, .ffpBankingPanelHead span { color:#666; font-size:.72rem; font-weight:850; letter-spacing:.09em; text-transform:uppercase; }
.ffpBankingHeader h1 { margin:0; color:#1f1f1f; font-size:2rem; }
.ffpBankingHeader p, .ffpBankingPanelHead p { margin:0; color:#666; line-height:1.5; }
.ffpBankingBack, .ffpBankingStripeButton, .ffpBankingPortal { min-height:42px; border-radius:7px; padding:10px 14px; font:inherit; font-weight:800; cursor:pointer; text-decoration:none; }
.ffpBankingBack { border:1px solid #d0d0d0; background:#fff; color:#222; white-space:nowrap; }
.ffpBankingBack:hover { background:#f2f2f2; }
.ffpBankingStripeButton, .ffpBankingPortal { border:1px solid #111; background:#111; color:#fff; justify-self:start; }
.ffpBankingStripeButton:hover, .ffpBankingPortal:hover { background:#2d2d2d; }
.ffpBankingStripeButton:disabled { opacity:.5; cursor:default; }
.ffpBankingPanel { display:grid; gap:16px; padding:18px; border:1px solid #d9d9d9; border-radius:8px; background:#fff; box-shadow:0 8px 24px rgba(0,0,0,.06); }
.ffpBankingPanelHead { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }
.ffpBankingPanelHead > div:first-child { display:grid; gap:5px; max-width:760px; }
.ffpBankingPanelHead h2 { margin:0; color:#222; font-size:1.18rem; }
.ffpBankingStatus { min-width:230px; display:grid; gap:4px; padding:12px; border:1px solid #dedede; border-radius:8px; background:#f7f7f7; }
.ffpBankingStatus strong { color:#222; }
.ffpBankingStatus span { color:#666; font-size:.82rem; line-height:1.35; }
.ffpBankingStripeMessage, .ffpBankingNote, .ffpBankingEmpty { margin:0; color:#666; line-height:1.45; }
.ffpBankingMetrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.ffpBankingMetrics > div { min-width:0; display:grid; gap:5px; padding:13px; border:1px solid #e1e1e1; border-radius:8px; background:#f8f8f8; }
.ffpBankingMetrics span { color:#666; font-size:.76rem; }
.ffpBankingMetrics strong { color:#222; overflow-wrap:anywhere; font-size:.95rem; }
.ffpBankingTableWrap { width:100%; overflow-x:auto; border:1px solid #d9d9d9; border-radius:8px; background:#fff; }
.ffpBankingTable { width:100%; border-collapse:collapse; min-width:650px; }
.ffpBankingTable th, .ffpBankingTable td { padding:11px 10px; border-bottom:1px solid #e6e6e6; text-align:left; vertical-align:top; }
.ffpBankingTable tr:last-child td { border-bottom:0; }
.ffpBankingTable th { background:#f4f4f4; color:#666; font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; }
.ffpBankingTable a { color:#222; font-weight:800; text-decoration:underline; }
.ffpBankingLoading { padding:24px; border:1px solid #d9d9d9; border-radius:8px; background:#fff; box-shadow:0 8px 24px rgba(0,0,0,.06); }
#ffp-banking-stripe-onboarding { min-height:0; overflow:hidden; border-radius:8px; }
#ffp-provider-banking-card { cursor:pointer; }

@media (max-width: 760px) {
  .ffpProviderPaymentSetup { position:relative; align-items:stretch; flex-direction:column; gap:10px; padding:12px; }
  .ffpProviderPaymentSetupButton { width:100%; }
  .ffpBankingShell { width:calc(100% - 20px); padding:14px 0 40px; }
  .ffpBankingHeader { display:grid; gap:12px; }
  .ffpBankingBack { justify-self:start; }
  .ffpBankingPanel { padding:15px; border-radius:8px; }
  .ffpBankingPanelHead { display:grid; }
  .ffpBankingStatus { min-width:0; }
  .ffpBankingMetrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 430px) {
  .ffpBankingMetrics { grid-template-columns:1fr; }
  .ffpBankingHeader h1 { font-size:1.65rem; }
}
