:root {
    --theme-primary: #5d68d1;
    --theme-primary-hover: #4a54b3;
    --theme-primary-trans: rgba(93, 104, 209, 0.2);
    --theme-sidebar: #111342;
    --text-main: #0f172a;
    --text-soft: #64748b;
    --page-bg: #f4f6fa;
    --card-bg: #ffffff;
    --border-soft: #e5e7eb;
    --shadow-soft: 0 18px 45px rgba(15, 23, 42, .08);
}
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }
body { font-family: 'Inter', sans-serif; color: var(--text-main); -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; border: 0; background: none; }
img { max-width: 100%; display: block; }
.dynamic-bg { background-color: var(--theme-primary); color: #ffffff; }
.dynamic-text { color: var(--theme-primary); }
.dynamic-border { border-color: var(--theme-primary) !important; }
.dynamic-bg-trans { background-color: var(--theme-primary-trans); }
.dynamic-sidebar { background-color: var(--theme-sidebar); }
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }
iconify-icon { display: inline-block; vertical-align: -0.125em; }
.hidden { display: none !important; }
.ec-dark {
    --text-main: #ffffff;
    --text-soft: #94a3b8;
    --page-bg: #0f172a;
    --card-bg: #1e293b;
    --border-soft: #334155;
    --shadow-soft: 0 22px 50px rgba(0,0,0,.28);
}
.ec-dark .dynamic-sidebar { background-color: #0a0d14 !important; }
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 999px; }
.ec-dark ::-webkit-scrollbar-thumb { background: #334155; }
