/* ═══════════════════════════════════════ */
/* ECMS — Base Styles & Resets            */
/* ═══════════════════════════════════════ */
/* Official Saudi Riyal symbol (U+20C1). Minimal webfont built from SAMA's
   official glyph SVG; unicode-range restricts it to that one codepoint so it
   only ever renders ⃁ and never affects any other character. */
@font-face{font-family:'RiyalSymbol';src:url('../fonts/riyal.woff2') format('woff2'),url('../fonts/riyal.ttf') format('truetype');font-weight:normal;font-style:normal;font-display:swap;unicode-range:U+20C1;size-adjust:66%}
*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:'RiyalSymbol','IBM Plex Sans Arabic',-apple-system,'Segoe UI',Tahoma,sans-serif;min-height:100vh;transition:background-color .3s ease,color .3s ease}
.num{font-family:'RiyalSymbol','IBM Plex Mono','IBM Plex Sans Arabic',ui-monospace,monospace;font-variant-numeric:tabular-nums}
.ic{display:inline-block}
[dir="rtl"] .icon-dir{transform:scaleX(-1)}
::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border-l);border-radius:3px}
button,select,input{font-family:inherit}
a{color:var(--accent-t);text-decoration:none}
@keyframes spin{to{transform:rotate(360deg)}}
.spinner{width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite;display:inline-block;vertical-align:middle;margin-right:6px}
.ecms-loader{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:40px}
.ecms-loader-icon{width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,var(--accent),var(--accent-t));display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;color:#fff;animation:ecms-pulse 1.5s ease-in-out infinite}
@keyframes ecms-pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}
.ecms-loader-dots{display:flex;gap:6px}
.ecms-loader-dots span{width:8px;height:8px;border-radius:50%;background:var(--accent);animation:ecms-bounce 1.4s ease-in-out infinite}
.ecms-loader-dots span:nth-child(2){animation-delay:.2s}
.ecms-loader-dots span:nth-child(3){animation-delay:.4s}
@keyframes ecms-bounce{0%,80%,100%{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}
.ecms-loader-text{font-size:13px;color:var(--text-m);font-weight:500}
.ecms-loader-inline{display:inline-flex;align-items:center;gap:6px}
.ecms-loader-inline .ecms-loader-dots span{width:6px;height:6px}
.ecms-progress{position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,var(--accent),var(--accent-t),var(--accent));background-size:200% 100%;animation:ecms-progress-move 1.5s ease-in-out infinite;z-index:9999;width:100%;opacity:0;transition:opacity .3s;pointer-events:none}
.ecms-progress.active{opacity:1}
@keyframes ecms-progress-move{0%{background-position:200% 0}100%{background-position:-200% 0}}
.delete-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.6);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9999;gap:16px;backdrop-filter:blur(4px)}
