.dnet-global-loader { position: fixed; z-index: 2147483000; inset: 0; display: grid; place-items: center; padding: 20px; background: rgba(16, 39, 31, .34); backdrop-filter: blur(2px); }
.dnet-global-loader[hidden] { display: none; }
.dnet-global-loader__card { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; width: min(100%, 520px); padding: 20px 22px; border: 1px solid rgba(255,255,255,.7); border-radius: 12px; color: #17352b; background: rgba(255,255,255,.97); box-shadow: 0 14px 38px rgba(12, 47, 34, .24); font-size: 14px; font-weight: 700; }
.dnet-global-loader__actions { display: flex; justify-content: center; flex-basis: 100%; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.dnet-global-loader__actions[hidden] { display: none; }
.dnet-global-loader__actions button { padding: 7px 10px; border: 1px solid #a9c3b7; border-radius: 6px; color: #17352b; background: #fff; font: inherit; font-size: 12px; cursor: pointer; }
.dnet-global-loader__actions button:hover, .dnet-global-loader__actions button:focus-visible { border-color: #087248; outline: 2px solid #cbe8da; }
.dnet-global-loader__actions button:focus-visible { outline-offset: 2px; }
.dnet-global-loader[data-loader-state="error"] .dnet-global-loader__message { color: #8a2828; }
.dnet-global-loader[data-loader-state="error"] .dnet-global-loader__mark span { background: #a83c3c; animation: none; }
.dnet-global-loader__mark { display: inline-flex; align-items: center; gap: 3px; height: 24px; }
.dnet-global-loader__mark span { display: block; width: 5px; height: 10px; border-radius: 4px; background: #087248; animation: dnet-loader-pulse 1s ease-in-out infinite; }
.dnet-global-loader__mark span:nth-child(2) { height: 18px; animation-delay: .14s; background: #0b945c; }
.dnet-global-loader__mark span:nth-child(3) { animation-delay: .28s; background: #65bd92; }
@keyframes dnet-loader-pulse { 0%, 100% { transform: scaleY(.7); opacity: .55; } 50% { transform: scaleY(1.15); opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .dnet-global-loader__mark span { animation: none; } }
@media (max-width: 480px) { .dnet-global-loader__card { padding: 18px; } .dnet-global-loader__message { max-width: 75%; } .dnet-global-loader__actions button { flex: 1 1 140px; } }
