/* =============================================================================
   ExchangeDesk — charte graphique (design tokens)
   =============================================================================

   POUR REHABILLER L'APPLICATION ENTIERE :
     modifier UNIQUEMENT les valeurs du bloc `:root` ci-dessous. Aucune autre
     feuille de style (app.css, radzen-override.css, *.razor.css) ne doit
     contenir de couleur en dur : elles referencent toutes `var(--ed-…)`.

   POUR REHABILLER PAR LOCATAIRE (multi-tenant) :
     renseigner les champs de marque de l'Organisation (NomCommercial,
     CouleurPrimaire, CouleurSecondaire, CouleurAccent, LogoAttachmentId,
     FaviconAttachmentId). Au demarrage, ThemeService charge ce jeu de valeurs
     et l'ecrit sur `document.documentElement` via `exchangeDeskTheme.apply()`.
     Les jetons ci-dessous restent la valeur de repli quand un champ est vide.

   Les blocs `--rz-*` et `--mud-*` rebranchent Radzen et MudBlazor sur ces
   memes jetons : les composants tiers suivent la charte au lieu de la
   combattre. Ne pas dupliquer une couleur ici, deriver le jeton existant.
   ============================================================================= */

:root {
    /* ---- Marque ---------------------------------------------------------- */
    --ed-primary: #0F4C5C;
    --ed-primary-light: #17697E;
    --ed-primary-dark: #082F3A;
    --ed-primary-contrast: #FFFFFF;

    --ed-secondary: #3E7C76;
    --ed-secondary-contrast: #FFFFFF;

    --ed-accent: #E09F3E;
    --ed-accent-dark: #B87B22;
    --ed-accent-contrast: #2A1A00;

    /* ---- Surfaces et texte ----------------------------------------------- */
    --ed-surface: #FFFFFF;
    --ed-surface-alt: #F2F5F6;
    --ed-surface-sunken: #E6EDEF;
    --ed-overlay: rgba(8, 47, 58, 0.45);

    --ed-text: #12252B;
    --ed-text-strong: #08191E;
    --ed-text-muted: #5B7178;
    --ed-text-on-primary: var(--ed-primary-contrast);

    --ed-border: #D3DEE1;
    --ed-border-strong: #B4C5CA;

    /* ---- Etats ------------------------------------------------------------ */
    --ed-success: #2E8B57;
    --ed-success-bg: #E8F5EE;
    --ed-success-text: #1B5A38;

    --ed-warning: #E09F3E;
    --ed-warning-bg: #FBF1E0;
    --ed-warning-text: #7A5312;

    --ed-danger: #C1443B;
    --ed-danger-bg: #FBEAE8;
    --ed-danger-text: #8A2B24;

    --ed-info: #17697E;
    --ed-info-bg: #E4F0F3;
    --ed-info-text: #0F4C5C;

    /* ---- Visualisation de donnees ------------------------------------------
       Palette VALIDEE (skill dataviz, scripts/validate_palette.js) :
         clair  #0E7FA0 / #E09F3E  -> tous les controles passent
         sombre #2E9BBE / #BE8A3C  -> tous les controles passent

       Le teal de marque (#17697E) a ete ecarte pour les marques de donnees : il
       tombe sous le plancher de chroma (0,081 < 0,100) et lirait comme un gris.
       #0E7FA0 est le pas le plus proche qui passe, dans la meme famille.

       Paire divergente, pas palette categorielle : la cascade oppose un flux
       entrant a un flux sortant. Un froid contre un chaud — deux froids
       echoueraient a se lire comme opposes. Ce ne sont PAS des couleurs d'etat :
       payer un fournisseur n'est ni bon ni mauvais.

       ATTENTION : --ed-viz-sortie est a 2,28:1 sur surface claire, sous le seuil
       de 3:1. La regle de relief s'applique et n'est pas optionnelle — tout
       graphique qui l'emploie DOIT porter des etiquettes directes visibles ou
       une vue tableau. Les deux sont en place sur le tableau de bord.
       ------------------------------------------------------------------------ */
    --ed-viz-entree: #0E7FA0;
    --ed-viz-sortie: #E09F3E;
    --ed-viz-neutre: #5B7178;
    --ed-viz-grille: #E6EDEF;
    --ed-viz-surface: var(--ed-surface);

    /* ---- Formes et typographie -------------------------------------------- */
    --ed-radius: 10px;
    --ed-radius-sm: 6px;
    --ed-radius-lg: 16px;
    --ed-radius-pill: 999px;

    --ed-font-family: "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
    --ed-font-size-base: 0.95rem;

    --ed-shadow-sm: 0 1px 2px rgba(8, 47, 58, 0.08);
    --ed-shadow: 0 2px 8px rgba(8, 47, 58, 0.12);
    --ed-shadow-lg: 0 12px 28px -14px rgba(8, 47, 58, 0.35);

    /* ---- Barre laterale ---------------------------------------------------- */
    --ed-sidebar-bg: var(--ed-primary-dark);
    --ed-sidebar-text: #DCE9EC;
    --ed-sidebar-text-muted: #9FBAC1;
    --ed-sidebar-active-bg: var(--ed-surface);
    --ed-sidebar-active-text: var(--ed-primary);
    --ed-sidebar-hover-bg: rgba(255, 255, 255, 0.08);
    --ed-sidebar-border: rgba(255, 255, 255, 0.10);

    /* ---- En-tete ------------------------------------------------------------ */
    --ed-header-bg: var(--ed-surface);
    --ed-header-text: var(--ed-primary);
    --ed-header-border: var(--ed-border);

    /* ---- Ecran de connexion -------------------------------------------------- */
    --ed-login-bg: var(--ed-primary-dark);
    --ed-login-card-bg: var(--ed-surface);
    --ed-login-accent: var(--ed-accent);

    /* =========================================================================
       Ponts vers les bibliotheques tierces.
       Ne pas mettre de litteral ici : uniquement des references aux jetons.
       ========================================================================= */

    /* -- Radzen ------------------------------------------------------------- */
    --rz-border-width: 0px;
    --rz-primary: var(--ed-primary);
    --rz-primary-color: var(--ed-primary);
    --rz-primary-light: var(--ed-primary-light);
    --rz-primary-dark: var(--ed-primary-dark);
    --rz-on-primary: var(--ed-primary-contrast);
    --rz-secondary: var(--ed-secondary);
    --rz-on-secondary: var(--ed-secondary-contrast);
    --rz-info: var(--ed-info);
    --rz-info-light: var(--ed-info-bg);
    --rz-info-dark: var(--ed-info-text);
    --rz-success: var(--ed-success);
    --rz-success-light: var(--ed-success-bg);
    --rz-success-dark: var(--ed-success-text);
    --rz-warning: var(--ed-warning);
    --rz-warning-light: var(--ed-warning-bg);
    --rz-warning-dark: var(--ed-warning-text);
    --rz-danger: var(--ed-danger);
    --rz-danger-light: var(--ed-danger-bg);
    --rz-danger-dark: var(--ed-danger-text);
    --rz-base-background-color: var(--ed-surface-alt);
    --rz-base-100: var(--ed-surface);
    --rz-text-color: var(--ed-text);
    --rz-text-secondary-color: var(--ed-text-muted);
    --rz-text-title-color: var(--ed-text-strong);
    --rz-border-color: var(--ed-border);
    --rz-border-radius: var(--ed-radius);
    --rz-body-font-family: var(--ed-font-family);
    --rz-body-font-size: var(--ed-font-size-base);
    --rz-panel-border-radius: var(--ed-radius);
    --rz-card-border-radius: var(--ed-radius);
    --rz-input-border-radius: var(--ed-radius-sm);
    --rz-button-border-radius: var(--ed-radius-sm);

    /* -- MudBlazor ----------------------------------------------------------
       MudTheme (Theme/ExchangeDeskMudTheme.cs) porte les memes valeurs cote C# ;
       ces variables couvrent le CSS statique de MudBlazor.                     */
    --mud-palette-primary: var(--ed-primary);
    --mud-palette-primary-text: var(--ed-primary-contrast);
    --mud-palette-secondary: var(--ed-secondary);
    --mud-palette-secondary-text: var(--ed-secondary-contrast);
    --mud-palette-tertiary: var(--ed-accent);
    --mud-palette-info: var(--ed-info);
    --mud-palette-success: var(--ed-success);
    --mud-palette-warning: var(--ed-warning);
    --mud-palette-error: var(--ed-danger);
    --mud-palette-surface: var(--ed-surface);
    --mud-palette-background: var(--ed-surface-alt);
    --mud-palette-text-primary: var(--ed-text);
    --mud-palette-text-secondary: var(--ed-text-muted);
    --mud-palette-lines-default: var(--ed-border);
    --mud-default-borderradius: var(--ed-radius);
    --mud-typography-default-family: var(--ed-font-family);
}

/* =============================================================================
   Mode sombre des marques de donnees.

   Les pas sombres sont SELECTIONNES pour la surface sombre et valides comme un
   jeu, pas obtenus en inversant les pas clairs : la bande de clarte du mode
   sombre est plus etroite (L 0,48-0,67) et un simple retournement en sort.

   Declare sous les deux portees : la requete media couvre le reglage du systeme,
   la portee [data-theme] couvre un bascule explicite, qui doit l'emporter dans
   les deux sens.
   ============================================================================= */
@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
        --ed-viz-entree: #2E9BBE;
        --ed-viz-sortie: #BE8A3C;
        --ed-viz-grille: #2A3D44;
    }
}

:root[data-theme="dark"] {
    --ed-viz-entree: #2E9BBE;
    --ed-viz-sortie: #BE8A3C;
    --ed-viz-grille: #2A3D44;
}
