/* ============================================
   PYBUDGET - MAIN CSS FILE
   ============================================

   Ce fichier importe structure.css et définit le mapping
   entre les CSS variables de notre système de thème et
   les variables Tabler existantes (pour compatibilité).

   Les couleurs sont définies dynamiquement par theme.css
   ============================================ */

/* Import du CSS structurel */
@import url('structure.css');

/* Import des composants mobile-first */
@import url('components/liquid-glass.css');

/* ============================================
   MAPPING VARIABLES TABLER ← THEME
   ============================================ */

:root {
    /* Mapping Body */
    --tblr-body-bg: var(--bg-page);
    --tblr-body-color: var(--text-primary);

    /* Mapping Surfaces (cards, sidebars, etc.) */
    --tblr-bg-surface: var(--bg-card);
    --tblr-bg-surface-secondary: var(--bg-hover);
    --tblr-hover-bg: var(--bg-hover);

    /* Mapping Borders */
    --tblr-border-color: var(--border-color);

    /* Mapping Primary Accent */
    --tblr-primary: var(--color-primary);
    --tblr-primary-fg: #FFFFFF;

    /* Mapping Links */
    --tblr-link-color: var(--color-primary);
    --tblr-link-hover-color: var(--color-secondary);

    /* Mapping Muted text */
    --tblr-muted: var(--text-muted);
}

/* Keep cards and tables with background from theme */
.card, .table {
    background-color: var(--bg-card);
}

/* ============================================
   BG-* TEXT COLORS - AUTO-CALCULATED
   ============================================

   Couleurs de texte calculées automatiquement par luminance
   (WCAG) pour chaque variante de fond — voir Theme.get_text_color_for().

   `.bg-*` couvre déjà tout élément (y compris `.badge.bg-*`) via la
   cascade. Seul `--tblr-badge-color` doit être surchargé en plus pour
   neutraliser le défaut Tabler des badges.
   ============================================ */

/* Couleur de texte selon le fond — s'applique à tout élément `.bg-*` */
.bg-primary   { color: var(--color-primary-text) !important; }
.bg-secondary { color: var(--color-secondary-text) !important; }
.bg-success   { color: var(--color-success-text) !important; }
.bg-warning   { color: var(--color-warning-text) !important; }
.bg-danger    { color: var(--color-danger-text) !important; }
.bg-info      { color: var(--color-info-text) !important; }

/* `.badge.bg-*` : neutraliser la variable --tblr-badge-color de Tabler.
   La couleur de texte vient de la règle `.bg-*` ci-dessus. */
.badge.bg-primary   { --tblr-badge-color: var(--color-primary-text) !important; }
.badge.bg-secondary { --tblr-badge-color: var(--color-secondary-text) !important; }
.badge.bg-success   { --tblr-badge-color: var(--color-success-text) !important; }
.badge.bg-warning   { --tblr-badge-color: var(--color-warning-text) !important; }
.badge.bg-danger    { --tblr-badge-color: var(--color-danger-text) !important; }
.badge.bg-info      { --tblr-badge-color: var(--color-info-text) !important; }

/* Variante accent : pas de classe Tabler `.bg-accent` native, on définit
   à la fois fond et texte. */
.bg-accent { background-color: var(--color-accent) !important; color: var(--color-accent-text) !important; }
.badge.bg-accent { --tblr-badge-color: var(--color-accent-text) !important; }
