/* tokens.css — design tokens for the admin dashboard.
   Light is default; dark overrides under [data-theme="dark"].
   Brand accent (#67993d) is preserved from the previous UI. */

@import url('/admin-static/vendor/fonts/ibm-plex.css');

:root {
    color-scheme: light;

    /* Typography */
    --font-ui: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --font-mono: 'IBM Plex Mono', ui-monospace, 'Courier New', Consolas, monospace;

    --fs-xs: 0.75rem;
    --fs-sm: 0.8125rem;
    --fs-base: 0.875rem;
    --fs-md: 1rem;
    --fs-lg: 1.125rem;
    --fs-xl: 1.375rem;
    --fs-2xl: 1.75rem;

    --fw-normal: 400;
    --fw-medium: 500;
    --fw-semibold: 600;
    --fw-bold: 700;

    --lh-tight: 1.25;
    --lh-base: 1.5;

    /* Spacing scale (4px base) */
    --sp-1: 0.25rem;
    --sp-2: 0.5rem;
    --sp-3: 0.75rem;
    --sp-4: 1rem;
    --sp-5: 1.5rem;
    --sp-6: 2rem;
    --sp-7: 2.5rem;
    --sp-8: 3rem;

    /* Radii */
    --r-sm: 6px;
    --r-md: 10px;
    --r-lg: 14px;
    --r-xl: 20px;
    --r-full: 999px;

    /* Surfaces & text (light) */
    --surface-0: #f4f6f8;
    --surface-1: #ffffff;
    --surface-2: #f7f9fb;
    --surface-3: #eef1f5;
    --text: #1b2026;
    --text-muted: #5a6573;
    --text-subtle: #8a94a3;
    --text-inverse: #ffffff;
    --border: #e2e7ee;
    --border-strong: #cdd5e0;

    /* Brand accent */
    --accent: #67993d;
    --accent-hover: #5a8835;
    --accent-active: #4d752c;
    --accent-soft: #eaf2e1;
    --on-accent: #ffffff;

    /* Semantic */
    --success: #2e9e5b;
    --success-soft: #e4f4ea;
    --warning: #c98a14;
    --warning-soft: #fbf0d8;
    --danger: #d64545;
    --danger-soft: #fbe6e6;
    --info: #2f7fd1;
    --info-soft: #e3eefb;

    /* Effects */
    --focus-ring: 0 0 0 3px rgba(103, 153, 61, 0.30);
    --shadow-sm: 0 1px 2px rgba(16, 24, 40, 0.06), 0 1px 3px rgba(16, 24, 40, 0.08);
    --shadow-md: 0 4px 12px rgba(16, 24, 40, 0.10), 0 2px 6px rgba(16, 24, 40, 0.06);
    --shadow-lg: 0 12px 32px rgba(16, 24, 40, 0.16), 0 6px 14px rgba(16, 24, 40, 0.10);

    --t-fast: 130ms cubic-bezier(0.4, 0, 0.2, 1);
    --t-base: 220ms cubic-bezier(0.22, 0.61, 0.36, 1);

    /* Layout */
    --sidebar-w: 260px;
    --sidebar-rail-w: 68px;
    --topbar-h: 60px;
    --content-max: 1080px;

    /* z-index */
    --z-sidebar: 40;
    --z-topbar: 30;
    --z-modal: 100;
    --z-toast: 120;
}

[data-theme="dark"] {
    color-scheme: dark;

    --surface-0: #14171c;
    --surface-1: #1c2027;
    --surface-2: #232830;
    --surface-3: #2b313a;
    --text: #e7ebf0;
    --text-muted: #a3adba;
    --text-subtle: #76808d;
    --text-inverse: #14171c;
    --border: #2e353f;
    --border-strong: #3c4450;

    --accent: #7cb24c;
    --accent-hover: #8cbf5d;
    --accent-active: #6fa340;
    --accent-soft: #243019;
    --on-accent: #10140a;

    --success: #41b06d;
    --success-soft: #16271d;
    --warning: #d99a2b;
    --warning-soft: #2c2410;
    --danger: #e5615f;
    --danger-soft: #2c1818;
    --info: #4f9be0;
    --info-soft: #15212e;

    --focus-ring: 0 0 0 3px rgba(124, 178, 76, 0.32);
    --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4), 0 1px 3px rgba(0, 0, 0, 0.3);
    --shadow-md: 0 4px 14px rgba(0, 0, 0, 0.5), 0 2px 6px rgba(0, 0, 0, 0.35);
    --shadow-lg: 0 14px 36px rgba(0, 0, 0, 0.6), 0 6px 14px rgba(0, 0, 0, 0.45);
}
