/* ============================================================
   [ WASPEED // SWISS INDUSTRIAL PRINT ]
   ------------------------------------------------------------
   UNIT      / D-01 CORE TOKENS
   REV       / 2.7 BRUTALIST-PRINT
   SUBSTRATE / UNBLEACHED PAPER
   ============================================================ */

:root {
    /* ---------- SUBSTRATE (PAPER) ---------- */
    --sub-void: #F4F4F0;          /* primary substrate / page bg */
    --sub-rack: #EAE8E3;          /* secondary panel backdrop */
    --sub-panel: #FDFCF8;         /* panel surface (raised) */
    --sub-panel-hi: #FFFFFF;      /* hover / elevated panel */
    --sub-rule: #D8D5CE;          /* light dividing rule */
    --sub-rule-hi: #2B2A28;       /* strong dividing rule / carbon ink */
    --sub-rule-lo: #E8E6E0;       /* subtle grid gap */

    /* ---------- FOREGROUND (CARBON INK) ---------- */
    --fg-phosphor: #0A0A0A;       /* primary text / carbon ink */
    --fg-dim: #4A4640;            /* secondary / metadata */
    --fg-ghost: #8A857C;          /* muted */
    --fg-dead: #C0BDB4;           /* deactivated */

    /* ---------- ACCENT (PRIMARY GREEN) ---------- */
    --alert-red: #B3CE4F;          /* primary — strike, alert, vital (yes, the name stays) */
    --alert-red-hi: #A3BE3F;       /* hover — darker */
    --alert-red-lo: rgba(179, 206, 79, 0.18);

    /* ---------- ON-ACCENT (TEXT ON GREEN) ---------- */
    --on-accent: #0A0A0A;          /* carbon ink reads well on #B3CE4F */

    /* ---------- ON-INK (TEXT ON INK-FILLED BG) ---------- */
    --on-ink: #F4F4F0;             /* paper reads well on carbon ink */

    /* ---------- OPTIONAL TERMINAL GREEN (SINGLE-USE) ---------- */
    --term-green: #4AF626;

    /* ---------- SEMANTIC STATUS (UTILITARIAN) ---------- */
    --stat-ok: #0A0A0A;
    --stat-warn: #C79400;          /* caution amber (darkened for light bg) */
    --stat-err: #C21818;            /* hazard red (secondary alert) */
    --stat-info: #0A0A0A;

    /* ============================================================
       LEGACY TOKEN MAP — preserved names so consumer CSS keeps
       working. Values remapped to Swiss Industrial Print.
       ============================================================ */
    --primary-green: var(--alert-red);
    --primary-green-dark: var(--alert-red-hi);
    --primary-green-light: var(--alert-red-hi);
    --primary-green-alpha: var(--alert-red-lo);
    --accent-orange: var(--alert-red);
    --accent-orange-alpha: var(--alert-red-lo);
    --success: var(--alert-red);
    --warning: var(--stat-warn);
    --error: var(--alert-red);
    --info: var(--fg-phosphor);

    --bg: var(--sub-void);
    --bg-secondary: var(--sub-rack);
    --panel: var(--sub-panel);
    --panel-secondary: var(--sub-rack);
    --surface: var(--sub-panel-hi);
    --surface-hover: var(--sub-rule-lo);

    --text: var(--fg-phosphor);
    --text-secondary: var(--fg-dim);
    --text-muted: var(--fg-ghost);
    --text-disabled: var(--fg-dead);

    --border: var(--sub-rule);
    --border-light: var(--sub-rule-lo);
    --border-lighter: var(--sub-rule-lo);

    --shadow-color: transparent;
    --shadow-color-strong: transparent;

    /* ---------- GEOMETRY — CORNERS MUST BE 90° ---------- */
    --radius-sm: 0;
    --radius-md: 0;
    --radius-lg: 0;
    --radius-xl: 0;
    --radius-2xl: 0;
    --radius-3xl: 0;
    --radius-full: 0;

    /* ---------- SPACING (8PX BASE GRID) ---------- */
    --spacing-xs: 4px;
    --spacing-sm: 8px;
    --spacing-md: 12px;
    --spacing-lg: 16px;
    --spacing-xl: 20px;
    --spacing-2xl: 24px;
    --spacing-3xl: 32px;
    --spacing-4xl: 40px;
    --spacing-5xl: 48px;
    --spacing-6xl: 64px;

    /* ---------- RULES (DIVIDING LINES) ---------- */
    --rule-thin: 1px solid var(--sub-rule);
    --rule-std: 1px solid var(--sub-rule-hi);
    --rule-thick: 2px solid var(--fg-phosphor);
    --rule-alert: 2px solid var(--alert-red);

    /* ---------- SHADOWS — FLATTENED. NO SOFT DROPS. ---------- */
    --shadow-flat: none;
    --shadow-raised: none;
    --shadow-elevated: none;
    --shadow-floating: none;

    /* ---------- TRANSITIONS — MECHANICAL ---------- */
    --transition-fast: 0.08s linear;
    --transition-normal: 0.12s linear;
    --transition-slow: 0.2s linear;
    --transition-bounce: 0.12s linear;

    /* ---------- TYPOGRAPHY ---------- */
    /* MACRO: neo-grotesque / heavy sans for structural headers */
    --font-macro: "Archivo Black", "Inter", "Helvetica Neue", Arial, sans-serif;
    /* MICRO: monospace for telemetry / data / UI chrome */
    --font-mono: "JetBrains Mono", "IBM Plex Mono", "Space Mono", "Courier Prime", ui-monospace, monospace;
    /* TEXTURAL: serif, used sparingly + degraded */
    --font-serif: "Playfair Display", "EB Garamond", "Times New Roman", serif;

    /* default body is monospace */
    --font-family: var(--font-mono);

    --font-size-xs: 0.6875rem;     /* 11px */
    --font-size-sm: 0.75rem;       /* 12px */
    --font-size-base: 0.8125rem;   /* 13px */
    --font-size-md: 0.875rem;      /* 14px */
    --font-size-lg: 1rem;          /* 16px */
    --font-size-xl: 1.25rem;       /* 20px */
    --font-size-2xl: 1.75rem;      /* 28px */
    --font-size-3xl: 2.5rem;       /* 40px */
    --font-size-4xl: clamp(3rem, 8vw, 7rem);

    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --font-weight-black: 900;

    --line-height-tight: 0.9;
    --line-height-snug: 1.1;
    --line-height-normal: 1.35;
    --line-height-relaxed: 1.5;

    --track-macro: -0.04em;
    --track-micro: 0.08em;

    /* ---------- LAYOUT ---------- */
    --sidebar-width: 260px;
    --sidebar-width-collapsed: 56px;
    --topbar-height: 56px;
    --toolbar-width: 300px;
    --properties-width: 340px;

    /* page dimensions — cap 1440, gutter clamped */
    --page-max-width: 1440px;
    --page-gutter: clamp(20px, 5vw, 72px);
    --main-max-width: calc(var(--page-max-width) - var(--sidebar-width));

    /* ---------- Z-INDEX ---------- */
    --z-sidebar: 100;
    --z-topbar: 90;
    --z-modal: 1000;
    --z-toast: 1100;
    --z-tooltip: 1200;

    /* ---------- ANIMATION CURVES ---------- */
    --bounce-in: linear;
    --ease-out-back: linear;
    --ease-in-out-circ: linear;
}

/* ============================================================
   THEME OVERRIDES NEUTRALIZED — Swiss Industrial Print is the
   single substrate. Force print palette regardless of [data-theme].
   ============================================================ */
[data-theme="light"],
[data-theme="dark"] {
    --bg: var(--sub-void);
    --bg-secondary: var(--sub-rack);
    --panel: var(--sub-panel);
    --panel-secondary: var(--sub-rack);
    --surface: var(--sub-panel-hi);
    --surface-hover: var(--sub-rule-lo);
    --text: var(--fg-phosphor);
    --text-secondary: var(--fg-dim);
    --text-muted: var(--fg-ghost);
    --text-disabled: var(--fg-dead);
    --border: var(--sub-rule);
    --border-light: var(--sub-rule-lo);
    --border-lighter: var(--sub-rule-lo);
}

@media (max-width: 768px) {
    :root {
        --sidebar-width: 100vw;
        --toolbar-width: 100vw;
        --properties-width: 100vw;
        --topbar-height: 52px;
        --spacing-sm: 6px;
        --spacing-md: 10px;
        --spacing-lg: 14px;
        --spacing-xl: 18px;
        --spacing-2xl: 20px;
        --spacing-3xl: 28px;
        --spacing-4xl: 36px;
    }
}
