:root{
  --ui-primary:#0077c8;--ui-primary-dark:#00549a;--ui-cyan:#26b9e8;--ui-dark:#061a40;
  --ui-success:#15803d;--ui-danger:#c62828;--ui-warning:#b7791f;--ui-info:#0369a1;
  --ui-bg:#f5f9ff;--ui-surface:#fff;--ui-border:#dbe8f4;--ui-muted:#64748b;
  --ui-radius:14px;--ui-radius-lg:22px;--ui-shadow:0 18px 48px rgba(6,26,64,.16);
}
.ui-global-loader{position:fixed;inset:0;z-index:100000;background:rgba(6,26,64,.72);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;visibility:hidden;transition:.2s ease}
.ui-global-loader.is-active{opacity:1;visibility:visible}
.ui-loader-card{min-width:270px;max-width:90vw;background:#fff;border-radius:22px;padding:28px;text-align:center;box-shadow:var(--ui-shadow)}
.ui-spinner{width:42px;height:42px;margin:0 auto;border:4px solid #dceefa;border-top-color:var(--ui-primary);border-radius:50%;animation:ui-spin .75s linear infinite}
.ui-loader-text{margin:14px 0 0;font-weight:800;color:var(--ui-dark)}
@keyframes ui-spin{to{transform:rotate(360deg)}}
button.is-loading{position:relative;pointer-events:none;opacity:.88}
button.is-loading .ui-btn-spinner{display:inline-block}
.ui-btn-spinner{display:inline-block;width:1em;height:1em;margin-right:.55rem;vertical-align:-.12em;border:.16em solid currentColor;border-right-color:transparent;border-radius:50%;animation:ui-spin .65s linear infinite}
.ui-field-error{display:block;margin-top:6px;color:var(--ui-danger);font-size:.8rem;font-weight:800}
.is-invalid{border-color:var(--ui-danger)!important;box-shadow:0 0 0 3px rgba(198,40,40,.1)!important}
.ui-skeleton{position:relative;overflow:hidden;background:#e9f1f8;border-radius:12px}
.ui-skeleton:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.72),transparent);animation:ui-shimmer 1.3s infinite}
@keyframes ui-shimmer{100%{transform:translateX(100%)}}
.ui-skeleton-row{height:52px;margin-bottom:10px}
.swal2-popup{border-radius:22px!important;font-family:"Nunito Sans",sans-serif!important}
.swal2-title{font-family:Montserrat,sans-serif!important;color:var(--ui-dark)!important}
.swal2-confirm{background:var(--ui-primary)!important;border-radius:10px!important;font-weight:800!important}
.swal2-cancel{border-radius:10px!important;font-weight:800!important}
.dataTables_wrapper .dataTables_processing{border:0!important;border-radius:16px!important;box-shadow:var(--ui-shadow)!important}
