/* ===== v5.55.2 — تجربة الاستخدام: انتقال، إرسال، انقطاع، رسائل ===== */
.ws-navbar-progress{position:fixed;top:0;inset-inline-start:0;height:3px;width:0;background:linear-gradient(90deg,#14966f,#12395b);z-index:3000;opacity:0;transition:width .4s ease,opacity .3s}
.ws-navbar-progress.on{width:70%;opacity:1;animation:wsBarCrawl 6s ease-out forwards}
@keyframes wsBarCrawl{0%{width:15%}60%{width:70%}100%{width:92%}}
.btn.is-busy,.is-submitting .btn[type=submit]{pointer-events:none;opacity:.75;position:relative}
.btn.is-busy::after{content:"";position:absolute;inset-inline-end:8px;top:50%;width:14px;height:14px;margin-top:-7px;border:2px solid currentColor;border-inline-end-color:transparent;border-radius:50%;animation:wsSpin .7s linear infinite}
@keyframes wsSpin{to{transform:rotate(360deg)}}
.ws-offline{position:fixed;left:0;right:0;bottom:0;z-index:3100;background:#a83a3a;color:#fff;text-align:center;font-weight:800;font-size:.85rem;padding:9px 14px;transform:translateY(110%);transition:transform .3s}
.ws-offline.on{transform:none}
.ws-fade-out{opacity:0;transition:opacity .4s}
.ws-req{color:#a83a3a;font-weight:900}
.alert{border-radius:12px}
.alert-dismissible .btn-close{inset-inline-end:0;inset-inline-start:auto}
.modal-content{border-radius:16px;border:1px solid var(--ws-border)}
.modal-header{border-bottom:1px solid var(--ws-border)}.modal-footer{border-top:1px solid var(--ws-border);gap:8px}
.form-control,.form-select{min-height:40px;border-radius:10px}
.form-control-sm,.form-select-sm{min-height:32px;border-radius:8px}
.btn{border-radius:10px}.btn-sm{border-radius:8px}.btn-lg{min-height:46px}
.table>:not(caption)>*>*{vertical-align:middle}
@media(prefers-reduced-motion:reduce){.ws-navbar-progress.on{animation:none;width:60%}}
