/* ==========================================================================
   VyapaarPro Design Tokens
   The single source of truth for colour, type, spacing, radius, elevation
   and motion. No module may hard-code a colour or a pixel value.
   ========================================================================== */

:root {
    /* ---- Brand / sidebar ---- */
    --brand-900:#0B1B3A; --brand-800:#12264D; --brand-700:#1A3363;
    --brand-nav:#A8B7D2; --brand-nav-hover:#FFFFFF; --brand-accent:#F5A524;

    /* ---- Primary ---- */
    --primary:#2563EB; --primary-hover:#1D4ED8; --primary-active:#1E40AF;
    --primary-soft:#EFF6FF; --primary-border:#BFDBFE;

    /* ---- Semantic ---- */
    --success:#16A34A; --success-soft:#ECFDF5; --success-border:#A7F3D0;
    --warning:#D97706; --warning-soft:#FFFBEB; --warning-border:#FDE68A;
    --danger:#DC2626;  --danger-soft:#FEF2F2;  --danger-border:#FECACA;
    --info:#0EA5E9;    --info-soft:#F0F9FF;    --info-border:#BAE6FD;
    --purple:#8B5CF6;  --purple-soft:#F5F3FF;
    --whatsapp:#25D366;

    /* ---- Surfaces ---- */
    --bg:#F5F7FB; --surface:#FFFFFF; --surface-2:#FAFBFD; --surface-3:#F1F5F9;
    --border:#E5E9F0; --border-strong:#D3DAE6; --divider:#EEF1F6;

    /* ---- Text ---- */
    --text:#0F172A; --text-2:#475569; --text-3:#64748B;
    --muted:#94A3B8; --text-inverse:#FFFFFF; --link:#2563EB;

    /* ---- States ---- */
    --hover-row:#F8FAFC; --selected-row:#EFF6FF;
    --disabled-bg:#F1F5F9; --disabled-text:#B0B8C4;
    --focus-ring:0 0 0 3px rgba(37,99,235,.28);
    --overlay:rgba(15,23,42,.45);

    /* ---- Chart palette (ordered, colour-blind safe) ---- */
    --c1:#2563EB; --c2:#16A34A; --c3:#F59E0B; --c4:#8B5CF6;
    --c5:#EC4899; --c6:#0EA5E9; --c7:#64748B; --c8:#EF4444;

    /* ---- Typography ---- */
    --font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
            "Noto Sans", "Helvetica Neue", Arial, sans-serif;
    --fs-display:26px; --fs-h1:24px; --fs-h2:18px; --fs-h3:15px;
    --fs-body:14px; --fs-label:13px; --fs-table:13px; --fs-caption:12px;
    --fw-regular:400; --fw-medium:500; --fw-semibold:600; --fw-bold:700;
    --lh-tight:1.25; --lh-normal:1.5; --lh-relaxed:1.65;

    /* ---- Spacing (8px scale) ---- */
    --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:20px;
    --s6:24px; --s8:32px; --s10:40px; --s12:48px; --s16:64px;

    /* ---- Radius ---- */
    --r-sm:6px; --r-md:8px; --r-lg:12px; --r-xl:16px; --r-full:999px;

    /* ---- Elevation ---- */
    --sh-xs:0 1px 2px rgba(16,24,40,.05);
    --sh-sm:0 1px 3px rgba(16,24,40,.07), 0 1px 2px rgba(16,24,40,.04);
    --sh-md:0 4px 12px rgba(16,24,40,.08);
    --sh-lg:0 12px 32px rgba(16,24,40,.12);

    /* ---- Sizing ---- */
    --h-control-sm:32px; --h-control:38px; --h-control-lg:44px;
    --h-row:48px; --h-topbar:64px;
    --w-sidebar:256px; --w-sidebar-collapsed:72px; --w-rail:320px;
    --icon-sm:16px; --icon-md:20px; --icon-lg:24px;
    --card-pad:20px;

    /* ---- Motion ---- */
    --t-fast:120ms; --t-base:180ms; --t-slow:240ms;
    --ease-standard:cubic-bezier(.2,0,0,1);
    --ease-out:cubic-bezier(0,0,.2,1);
    --ease-in:cubic-bezier(.4,0,1,1);

    --z-dropdown:1000; --z-sticky:1010; --z-drawer:1040;
    --z-overlay:1050; --z-modal:1060; --z-toast:1080;
}

/* Motion is an enhancement, never a requirement. */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration:.01ms !important;
        animation-iteration-count:1 !important;
        transition-duration:.01ms !important;
        scroll-behavior:auto !important;
    }
}
