:root { --font-latin: 'Inter', system-ui, sans-serif; --font-arabic: 'Cairo', system-ui, sans-serif; }

html[lang="fr"] body { font-family: var(--font-latin); }
html[lang="ar"] body { font-family: var(--font-arabic); }
html[lang="ar"] { letter-spacing: 0; }

* { -webkit-tap-highlight-color: transparent; }

body { transition: background-color .3s ease, color .3s ease; }

/* Smooth micro-interactions */
.fade-in { animation: fadeIn .35s ease both; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

.pop-in { animation: popIn .3s cubic-bezier(.22,1,.36,1) both; }
@keyframes popIn { from { opacity: 0; transform: scale(.96); } to { opacity: 1; transform: none; } }

/* Slide-over panel */
.slideover-panel { animation: slideOverIn .32s cubic-bezier(.22,1,.36,1) both; }
@keyframes slideOverIn { from { transform: translateX(var(--slide-from, 100%)); } to { transform: translateX(0); } }
html[dir="rtl"] .slideover-panel { --slide-from: -100%; }

.backdrop-in { animation: fadeIn .25s ease both; }

/* Nav active */
.nav-item.active { background: color-mix(in srgb, var(--color-gold-500) 16%, transparent); }

/* Progress bar */
.progress-track { background: rgba(148,163,184,.25); border-radius: 999px; overflow: hidden; }
.progress-fill { transition: width .6s cubic-bezier(.22,1,.36,1); }

/* Checklist check pop */
.check-pop { animation: checkPop .3s cubic-bezier(.34,1.56,.64,1) both; }
@keyframes checkPop { from { transform: scale(.4); opacity: 0; } to { transform: scale(1); opacity: 1; } }

/* Timeline connector */
.tl-dot::before { content:''; position:absolute; inset-inline-start: 11px; top: 24px; bottom: -18px; width: 2px; background: rgba(148,163,184,.35); }
.tl-item:last-child .tl-dot::before { display:none; }

/* Custom scrollbar */
::-webkit-scrollbar { width: 9px; height: 9px; }
::-webkit-scrollbar-thumb { background: rgba(148,163,184,.4); border-radius: 999px; }
::-webkit-scrollbar-thumb:hover { background: rgba(148,163,184,.6); }

/* Card hover */
.client-card { transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.client-card:hover { transform: translateY(-2px); }

/* Calendar cell */
.cal-cell { min-height: 92px; }

/* number ticker */
.stat-num { font-variant-numeric: tabular-nums; }

/* login gradient */
.login-hero { background: radial-gradient(120% 120% at 0% 0%, #1f3a6b 0%, #0a1529 55%, #060d1a 100%); }

/* pill */
.pill { display:inline-flex; align-items:center; gap:.35rem; border-radius:999px; font-weight:600; }

[hidden] { display: none !important; }
