#erp-network-activity { --erp-activity-color: var(--erp-enterprise-activity-color, #0875bd); pointer-events: none; position: fixed; inset: 0; z-index: 1000001; }
#erp-network-activity .erp-network-line { position: absolute; top: 0; left: 0; width: 100%; height: 3px; overflow: hidden; background: transparent; opacity: 0; }
#erp-network-activity .erp-network-line::after { content: ''; display: block; height: 100%; width: 35%; background: var(--erp-activity-color); box-shadow: 0 0 5px var(--erp-activity-color); animation: erpNetworkTravel 1.2s ease-in-out infinite; animation-play-state: paused; }
#erp-network-activity.is-active.is-foreground .erp-network-line { opacity: 1; }
#erp-network-activity.is-active.is-foreground .erp-network-line::after { animation-play-state: running; }
#erp-network-activity .erp-network-dot { position: absolute; top: calc(env(safe-area-inset-top, 0px) + 8px); right: 10px; width: 8px; height: 8px; border-radius: 50%; background: var(--erp-activity-color); box-shadow: 0 0 0 2px #fff; opacity: 0; }
#erp-network-activity.is-active .erp-network-dot { opacity: 1; }
#erp-network-activity .erp-network-message { position: absolute; top: calc(env(safe-area-inset-top, 0px) + 20px); right: 12px; max-width: min(360px, calc(100vw - 24px)); padding: 10px 14px; color: #fff; background: #243746; border-radius: 6px; font: 14px/1.5 sans-serif; box-shadow: 0 3px 12px #0003; }
#erp-network-activity .erp-network-message:empty { display: none; }
.erp-network-button-spinner { display: inline-block; width: 12px; height: 12px; margin-right: 6px; vertical-align: -1px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: erpNetworkSpin .8s linear infinite; }
@keyframes erpNetworkTravel { from { transform: translateX(-100%); } to { transform: translateX(390%); } }
@keyframes erpNetworkSpin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { #erp-network-activity .erp-network-line::after { animation: none; width: 100%; } .erp-network-button-spinner { animation: none; } }
@media print { #erp-network-activity { display: none !important; } .erp-network-button-spinner { display: none !important; } }
