:root {
    /* Brand — Garanti Pa'w : Profond #1F2F4D / Doré #F2B037 / Crème #F7F6F2 */
    --primary: #1f2f4d;
    --primary-dark: #162237;
    --primary-light: #e4e6ea;
    --primary-soft: #c9cdd4;
    --accent: #f2b037;

    /* Surfaces */
    --background: #f7f6f2;
    --surface: #ffffff;
    --surface-hover: #f8f8f6;
    --surface-alt: #fbfaf8;

    /* Text — neutres teintés vers le bleu marine de la marque, pas un gris neutre */
    --text-primary: #1e242f;
    --text-secondary: #606876;
    --text-muted: #9fa4ad;
    --text-inverse: #ffffff;

    /* Borders */
    --border: #e5e7eb;
    --border-strong: #d4d7dd;

    /* Semantic */
    --success: #1a8f5a;
    --success-bg: #e8f6ee;
    --warning: #b9791b;
    --warning-bg: #fbf1e1;
    --danger: #c93a3a;
    --danger-bg: #fbeaea;
    --info: #2d6fb3;
    --info-bg: #e9f1fa;

    /* Radius */
    --radius-sm: 6px;
    --radius-md: 10px;
    --radius-lg: 16px;
    --radius-full: 999px;

    /* Shadows */
    --shadow-sm: 0 1px 2px rgba(30, 36, 47, 0.05);
    --shadow-md: 0 4px 14px rgba(30, 36, 47, 0.07);
    --shadow-lg: 0 12px 32px rgba(30, 36, 47, 0.10);

    /* Typography */
    --font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

    /* Sizes */
    --fs-h1: 28px;
    --fs-h2: 20px;
    --fs-h3: 16px;
    --fs-body: 14px;
    --fs-caption: 12.5px;
    --fs-label: 12px;

    /* Layout */
    --sidebar-width: 264px;
    --sidebar-collapsed: 76px;
    --topbar-height: 72px;

    /* Motion */
    --ease: cubic-bezier(.4, 0, .2, 1);
    --transition: 180ms var(--ease);

    /*
     * Tokens --gp-* (Phase 7, shell Agent POS) : alias des tokens réels
     * ci-dessus, jamais une redéfinition parallèle des couleurs — un seul
     * système de couleurs source (celui-ci), pas deux qui pourraient
     * diverger. Convention de nommage demandée par update-projet.md.
     */
    --gp-primary: var(--primary);
    --gp-primary-dark: var(--primary-dark);
    --gp-accent: var(--accent);
    --gp-background: var(--background);
    --gp-surface: var(--surface);
    --gp-border: var(--border);
    --gp-text: var(--text-primary);
    --gp-text-muted: var(--text-secondary);
    --gp-success: var(--success);
    --gp-danger: var(--danger);
    --gp-radius: var(--radius-md);
    --gp-shadow: var(--shadow-md);
}