/* RX Billing Patch 08: shared loading, offline, focus and responsive states. */
.rx-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.rx-skip-link{position:fixed;z-index:10000;top:8px;left:8px;transform:translateY(-160%);padding:11px 16px;border-radius:10px;background:#082f5c;color:#fff;font-weight:900;text-decoration:none;box-shadow:0 10px 30px rgba(0,0,0,.24)}
.rx-skip-link:focus{transform:none}
.rx-network-banner{position:fixed;z-index:9999;inset:0 0 auto 0;min-height:44px;padding:11px 16px;background:#fff4df;border-bottom:1px solid #e7b867;color:#633800;font-size:13px;font-weight:900;text-align:center}
.rx-network-banner[data-state="offline"]{background:#fff0f1;border-color:#e2a2a8;color:#821d29}
body.rx-v36 [aria-busy="true"]{cursor:progress!important}
body.rx-v36 [aria-invalid="true"]{border-color:#b42318!important;box-shadow:0 0 0 3px rgba(180,35,24,.12)!important}
body.rx-v36 .rx-submit-busy{pointer-events:none!important;opacity:.72!important}
body.rx-v36 .rx-submit-busy::after{content:"";display:inline-block;width:15px;height:15px;margin-left:9px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-2px;animation:rx-ui-spin .7s linear infinite}
@keyframes rx-ui-spin{to{transform:rotate(360deg)}}
body.rx-v36 :where(.rx-alert button[data-alert-close]){min-width:44px;min-height:44px}
body.rx-v36 :where(.rx-table-wrap,.table-responsive){max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch}
body.rx-v36 :where(td,th,.rx-card,.rx-panel){overflow-wrap:anywhere}
@media(max-width:720px){.rx-network-banner{font-size:12px}.rx-skip-link{max-width:calc(100vw - 16px)}}
@media(prefers-reduced-motion:reduce){body.rx-v36 *,body.rx-v36 *::before,body.rx-v36 *::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* RX Billing surface cleanup: production-state helpers must never consume layout space. */
body.rx-billing-body .rx-skip-link:not(:focus):not(:focus-visible){position:fixed!important;top:0!important;left:0!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important;transform:none!important;box-shadow:none!important}
body.rx-billing-body .rx-network-banner[hidden],
body.rx-billing-body .rx-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
body.rx-billing-body :is(#rx-pwa-auto-install,.rx-pwa-install,[data-rx-pwa-install]){display:none!important}

/* Billing production-state hardening.
   Hidden/live helpers never occupy layout; the skip link becomes visible only on keyboard focus. */
body.rx-billing-body .rx-network-banner[hidden]{display:none!important}
body.rx-billing-body .rx-skip-link:focus,
body.rx-billing-body .rx-skip-link:focus-visible{
  left:8px!important;top:8px!important;width:auto!important;height:auto!important;
  margin:0!important;padding:11px 16px!important;overflow:visible!important;
  clip:auto!important;clip-path:none!important;white-space:nowrap!important;
  transform:none!important;box-shadow:0 10px 30px rgba(0,0,0,.24)!important;
}

