/* Only the plugin-owned workspace shell; established table geometry stays shared. */
html:has(body.qv-billback-portal) { margin-top: 0 !important; }
body.qv-billback-portal { margin: 0; background: #f6f7f7; color: #1d2327; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 13px; line-height: 1.4; }
.qv-portal-header { min-height: 56px; padding: 12px 22px; display: flex; gap: 20px; align-items: center; justify-content: space-between; background: #fff; border-bottom: 1px solid #dcdcde; }
.qv-portal-brand { color: #1d2327; font-size: 20px; font-weight: 650; text-decoration: none; }
.qv-portal-account { display: flex; align-items: center; gap: 18px; }
.qv-portal-account a { font: inherit; color: #135e96; text-decoration: none; }
.qv-portal-account a:hover { text-decoration: underline; }
.qv-portal-nav { display: flex; gap: 4px; padding: 7px 14px; overflow-x: auto; background: #fff; border-bottom: 1px solid #dcdcde; }
.qv-portal-nav a { display: block; padding: 8px 10px; color: #50575e; white-space: nowrap; text-decoration: none; border-radius: 4px; }
.qv-portal-nav a[aria-current="page"] { background: #e8f0f7; color: #135e96; font-weight: 600; }
.qv-portal-nav a:hover { background: #f0f0f1; }
.qv-portal-content { padding: 0 20px 24px; min-width: 0; }
.qv-portal-content > .wrap { margin: 18px 0 0; }
.qv-portal-content .widefat { background: #fff; }
.qv-portal-content .wp-list-table .column-id > a, .qv-portal-content .wp-list-table th a { color: #2271b1; }
/* Share the pagination row without moving POST forms inside the GET form.
   Only layout boxes are flattened: form ownership and AJAX targets stay intact. */
.qv-portal-content > .qv-billbacks-compact { display: flex; flex-wrap: wrap; align-items: center; column-gap: 16px; }
.qv-billbacks-compact > .qv-billbacks-header,
.qv-billbacks-compact > #qv-billback-list-form,
.qv-billbacks-compact .tablenav.top { display: contents; }
.qv-billbacks-compact > .qv-billbacks-header > h1 { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.qv-billbacks-compact > :not(.qv-billbacks-header):not(#qv-billback-list-form),
.qv-billbacks-compact .qv-billbacks-filters { flex: 0 0 100%; box-sizing: border-box; }
.qv-billbacks-compact .qv-billbacks-filters { order: 1; }
.qv-billbacks-compact .qv-billbacks-page-actions { order: 2; flex: 1 1 auto; margin: 4px 0 12px; }
.qv-billbacks-compact .tablenav.top > .tablenav-pages { order: 2; flex: 0 0 auto; margin: 4px 0 12px auto; }
.qv-billbacks-compact .tablenav.top > br.clear { display: none; }
.qv-billbacks-compact table.billbacks { order: 3; flex: 0 0 100%; }
.qv-billbacks-compact .tablenav.bottom { order: 4; flex: 0 0 100%; }
.qv-product-launcher { max-width: 1000px; margin: 42px auto; }
.qv-product-launcher h1 { margin: 0 0 24px; font-size: 25px; font-weight: 600; }
.qv-product-card { display: block; max-width: 360px; padding: 24px; background: #fff; border: 1px solid #c3c4c7; border-radius: 6px; color: #1d2327; text-decoration: none; }
.qv-product-card:hover { border-color: #2271b1; box-shadow: 0 2px 8px rgb(0 0 0 / 6%); }
.qv-product-card h2 { margin: 0 0 10px; font-size: 20px; }
.qv-product-card p { margin: 0 0 24px; color: #50575e; }
.qv-product-card span { color: #135e96; font-weight: 600; }
/* The optional enrollment Page shares our shell; WP 2FA owns the wizard and states. */
body.qv-portal-enrollment .qv-portal-enrollment-content { width: min(100% - 32px, 560px); box-sizing: border-box; margin: 48px auto; padding: 24px; background: #fff; border: 1px solid #dcdcde; border-radius: 8px; }
body.qv-portal-enrollment .qv-portal-enrollment-content * { box-sizing: border-box; }
body.qv-portal-enrollment .wp2fa-profile { max-width: 100%; padding: 0; border: 0; }
body.qv-portal-enrollment .qv-portal-enrollment-panel > h1 { margin: 0 0 16px; font-size: 23px; line-height: 1.3; }
body.qv-portal-enrollment .wp2fa-setup-wizard-overlay { padding: 16px; box-sizing: border-box; background: #f6f7f7; }
body.qv-portal-enrollment .wp2fa-setup-wizard-modal { width: 100%; max-width: 560px; max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); margin: 0; border: 1px solid #dcdcde; border-radius: 12px; box-shadow: 0 16px 56px rgb(0 0 0 / 16%); color: #1d2327; font: inherit; }
body.qv-portal-enrollment .wp2fa-setup-wizard-header { padding: 24px 48px 12px 24px; }
body.qv-portal-enrollment .wp2fa-setup-wizard-title { color: #1d2327; font: inherit; font-size: 21px; font-weight: 650; line-height: 1.3; }
body.qv-portal-enrollment .wp2fa-setup-wizard-body { padding: 8px 24px 24px; }
body.qv-portal-enrollment .wp2fa-setup-wizard-body p { line-height: 1.5; }
body.qv-portal-enrollment .wp2fa-setup-wizard-footer { padding: 16px 24px; gap: 12px; }
body.qv-portal-enrollment .wp2fa-wizard-method-label { padding: 14px 16px; gap: 12px; border-width: 1px; border-color: #c3c4c7; border-radius: 8px; }
body.qv-portal-enrollment .wp2fa-wizard-method-name { color: #1d2327; font-size: 14px; font-weight: 600; }
body.qv-portal-enrollment .wp2fa-wizard-method-description { color: #50575e; font-size: 13px; line-height: 1.45; }
body.qv-portal-enrollment :is(.wp2fa-wizard-btn, .wp2fa-open-wizard-btn) { border-radius: 6px; padding: 8px 16px; font: inherit; font-weight: 600; line-height: 1.5; min-height: 38px; text-decoration: none; }
body.qv-portal-enrollment :is(.wp2fa-wizard-btn-primary, .wp2fa-open-wizard-btn):not(:disabled) { background: #135e96; border: 1px solid #135e96; color: #fff; }
body.qv-portal-enrollment :is(.wp2fa-wizard-btn-primary, .wp2fa-open-wizard-btn):not(:disabled):hover { background: #0a4b78; border-color: #0a4b78; }
body.qv-portal-enrollment .wp2fa-wizard-btn-secondary:not(:disabled) { background: #fff; border: 1px solid #8c8f94; color: #1d2327; }
body.qv-portal-enrollment .wp2fa-wizard-btn-secondary:not(:disabled):hover { background: #f0f0f1; }
body.qv-portal-enrollment :is(button, a, input, select):focus-visible { outline: 2px solid #2271b1; outline-offset: 3px; }
body.qv-portal-enrollment .wp2fa-totp-key-input { max-width: 100%; box-sizing: border-box; }
@media (max-width: 600px) {
  body.qv-portal-enrollment .qv-portal-enrollment-content { margin: 28px 16px; padding: 20px; }
  body.qv-portal-enrollment .wp2fa-setup-wizard-header { padding: 20px 44px 12px 20px; }
  body.qv-portal-enrollment .wp2fa-setup-wizard-body { padding: 8px 20px 20px; }
  body.qv-portal-enrollment .wp2fa-setup-wizard-footer { padding: 16px 20px; }
  body.qv-portal-enrollment .wp2fa-setup-wizard-title { font-size: 19px; }
  body.qv-portal-enrollment .wp2fa-wizard-method-label { flex-wrap: wrap; }
}
.qv-billback-portal a:focus-visible, .qv-billback-portal button:focus-visible { outline: 2px solid #2271b1; outline-offset: 2px; }
@media (max-width: 1100px) { .qv-portal-content { padding-right: 12px; padding-left: 12px; } .qv-portal-header { padding-right: 14px; padding-left: 14px; } }
@media (max-width: 600px) { .qv-portal-account { gap: 10px; } .qv-portal-account > span { display: none; } .qv-portal-content { overflow-x: auto; } }
/* Keep the shared table on narrow screens. Core's mobile rows need admin
   common.js and hide operational cells; this shell uses horizontal scrolling. */
@media (max-width: 782px) {
  .qv-portal-content { overflow-x: auto; }
  .qv-portal-content .wp-list-table { min-width: 1000px; }
  .qv-portal-content table.billbacks { min-width: 1340px; }
  .qv-portal-content .wp-list-table tr { display: table-row; }
  .qv-portal-content .wp-list-table th.column-primary ~ th,
  .qv-portal-content .wp-list-table tr:not(.inline-edit-row):not(.no-items) td.column-primary ~ td:not(.check-column),
  .qv-portal-content .wp-list-table tr:not(.inline-edit-row):not(.no-items) th.column-primary ~ td:not(.check-column) { display: table-cell; padding: 8px 10px; }
  .qv-portal-content .wp-list-table td.column-primary,
  .qv-portal-content .wp-list-table tbody th.column-primary { padding-right: 10px; }
  .qv-portal-content .wp-list-table tr:not(.inline-edit-row):not(.no-items) td.column-pdf { padding-right: 4px; padding-left: 4px; }
  .qv-portal-content .wp-list-table tr:not(.inline-edit-row):not(.no-items) td:not(.check-column)::before { display: none; content: none; }
  .qv-portal-content .wp-list-table .column-primary .toggle-row { display: none; }
  .qv-portal-content .wp-list-table .is-expanded th:not(.hidden),
  .qv-portal-content .wp-list-table .is-expanded td:not(.hidden) { display: table-cell !important; overflow: visible; }
  .qv-portal-content table.billbacks .qv-billback-match-select:not(.select2-hidden-accessible),
  .qv-portal-content table.billbacks .qv-billback-match-select-row .select2-container { min-width: 180px; }
  .qv-portal-content .tablenav.top .actions { display: flex; flex-wrap: wrap; }
}

/* Account cards share the shell while leaving Billback table geometry untouched. */
.qv-account-page { max-width: 700px; margin: 30px auto; }
.qv-account-page h1 { margin: 16px 0 24px; font-size: 26px; line-height: 1.3; }
.qv-account-card { margin: 0 0 20px; padding: 24px; border: 1px solid #dcdcde; border-radius: 8px; background: #fff; }
.qv-account-card h2 { margin: 0 0 16px; font-size: 20px; }
.qv-account-card h3 { font-size: 16px; }
.qv-account-card p { color: #50575e; line-height: 1.6; }
.qv-account-card dl { margin: 0; }
.qv-account-card dt { color: #50575e; margin-top: 12px; }
.qv-account-card dd { margin: 3px 0 0; overflow-wrap: anywhere; }
.qv-account-card label { display: block; font-weight: 600; margin: 16px 0 6px; }
.qv-account-card input:not([type="hidden"]):not([type="radio"]):not([type="checkbox"]) { display: block; width: 100%; max-width: 380px; box-sizing: border-box; padding: 9px 10px; border: 1px solid #8c8f94; border-radius: 5px; font: inherit; }
.qv-account-card form > button { margin-top: 18px; }
.qv-account-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 16px; }
.qv-account-card .button { display: inline-block; padding: 8px 14px; border: 1px solid #8c8f94; border-radius: 5px; background: #fff; color: #135e96; font: inherit; text-decoration: none; cursor: pointer; }
.qv-account-card .button-primary { border-color: #135e96; background: #135e96; color: #fff; }
.qv-account-card [aria-disabled="true"] { opacity: .6; cursor: default; }
.qv-account-two-factor { border-top: 1px solid #dcdcde; margin-top: 28px; padding-top: 12px; }
.qv-account-notice { padding: 12px 16px; margin-bottom: 20px; background: #fff; border-left: 4px solid #2271b1; }
.qv-account-notice.is-error { border-color: #b32d2e; }
.qv-account-notice.is-success { border-color: #008a20; }
@media (max-width: 600px) { .qv-account-card { padding: 20px; } .qv-portal-header { flex-wrap: wrap; gap: 12px; } .qv-portal-account { flex-wrap: wrap; } }
