/*
 * Utilitaires issus de l'externalisation des styles inline (durcissement CSP :
 * suppression de style-src 'unsafe-inline'). Chaque classe reproduit à l'identique
 * une valeur de style="" auparavant en ligne. !important pour conserver la priorité
 * qu'avait le style inline (même comportement de cascade qu'avant).
 */

/* --- Marges --- */
.is-m0 { margin: 0 !important; }
.is-mt0 { margin-top: 0 !important; }
.is-mt6 { margin-top: 6px !important; }
.is-mt8 { margin-top: 8px !important; }
.is-mt10 { margin-top: 10px !important; }
.is-mt14 { margin-top: 14px !important; }
.is-mt16 { margin-top: 16px !important; }
.is-mt18 { margin-top: 18px !important; }
.is-mt22 { margin-top: 22px !important; }
.is-mt24 { margin-top: 24px !important; }
.is-mb2 { margin-bottom: 2px !important; }
.is-mb12 { margin-bottom: 12px !important; }
.is-mb14 { margin-bottom: 14px !important; }
.is-mb4b { margin: 0 0 4px !important; }
.is-my4 { margin: 4px 0 !important; }
.is-my6 { margin: 6px 0 !important; }
.is-my8 { margin: 8px 0 !important; }
.is-my12 { margin: 12px 0 !important; }
.is-m-2-0-0 { margin: 2px 0 0 !important; }
.is-m-4-0-0 { margin: 4px 0 0 !important; }
.is-m-10-0-0 { margin: 10px 0 0 !important; }
.is-m-0-0-12-0 { margin: 0 0 12px 0 !important; }

/* --- Marges combinées --- */
.is-m0-bold { margin: 0 !important; font-weight: 600 !important; }
.is-m0-flex1 { margin: 0 !important; flex: 1 !important; }
.is-m-12-0-4-bold { margin: 12px 0 4px !important; font-weight: 600 !important; }

/* --- Espacements internes --- */
.is-pt12 { padding-top: 12px !important; }
.is-pt16 { padding-top: 16px !important; }

/* --- Alignement / typographie --- */
.is-tal { text-align: left !important; }
.is-tac { text-align: center !important; }
.is-fs85 { font-size: .85em !important; }
.is-nowrap { white-space: nowrap !important; }
.is-break-word { word-break: break-word !important; }
.is-mt6-c-sm { margin-top: 6px !important; text-align: center !important; font-size: 0.9em !important; }
.is-mt12-c { margin-top: 12px !important; text-align: center !important; }
.is-mt12-c-sm { margin-top: 12px !important; text-align: center !important; font-size: 0.9em !important; }
.is-mt20-c-sm { margin-top: 20px !important; text-align: center !important; font-size: 0.9em !important; }

/* --- Disposition (flex / inline-block / colonnes) --- */
.is-ai-end { align-items: flex-end !important; }
.is-ib-ml6 { display: inline-block !important; margin-left: 6px !important; }
.is-ib-ml8 { display: inline-block !important; margin-left: 8px !important; }
.is-flex-row { display: flex !important; gap: 10px !important; align-items: center !important; margin: 0 !important; }
.is-titlerow { margin: 0 0 14px !important; display: flex !important; align-items: center !important; gap: 10px !important; flex-wrap: wrap !important; }
.is-cols2 { columns: 2 !important; font-size: 13px !important; margin-top: 18px !important; }
.is-break-avoid { break-inside: avoid !important; margin-bottom: 8px !important; }

/* --- Largeurs / tableaux --- */
.is-w42pct { width: 42% !important; }
.is-w48 { width: 48px !important; }
.is-w100 { width: 100% !important; }
.is-w100-mt4 { width: 100% !important; margin-top: 4px !important; }
.is-table-fixed { width: 100% !important; table-layout: fixed !important; border-collapse: collapse !important; }

/* --- Couleurs (statuts) --- */
.is-c-green { color: #16a34a !important; }
.is-c-amber { color: #d97706 !important; }
.is-c-red { color: #dc2626 !important; }
.is-c-green2 { color: #0a8f0a !important; }
.is-c-green2-bold { color: #0a8f0a !important; font-weight: 700 !important; }
.is-c-red2-bold { color: #d81f1f !important; font-weight: 700 !important; }
.is-bg-green { background: #16a34a !important; }
.is-bg-amber { background: #d97706 !important; }
.is-bg-red { background: #dc2626 !important; }
.is-bg-slate { background: var(--c-ghost-hover-bg) !important; }
.is-bg-greenlt { background: #e7f8ee !important; }
.is-mb12-bg { margin-bottom: 12px !important; background: #f8fafc !important; }

/* --- Encadrés / séparateurs --- */
.is-note { border-style: solid !important; border-color: var(--c-primary) !important; background: #eef2ff !important; }
.is-note-mt12 { border-style: solid !important; border-color: var(--c-primary) !important; background: #eef2ff !important; margin-top: 12px !important; }
.is-hr { margin: 20px 0 !important; border: none !important; border-top: 1px solid #e2e8f0 !important; }

/* --- Cartes centrées (pages publiques / auth) --- */
.is-card-460 { max-width: 460px !important; margin: 60px auto !important; }
.is-card-560c { max-width: 560px !important; margin: 60px auto !important; text-align: center !important; }
.is-card-720-32 { max-width: 720px !important; margin: 32px auto !important; }
.is-card-720-40 { max-width: 720px !important; margin: 40px auto !important; }
.is-card-820 { max-width: 820px !important; margin: 32px auto !important; }
.is-card-860 { max-width: 860px !important; margin: 24px auto !important; }

/* --- Accessibilité : masquage visuel (hors-écran, lisible lecteurs d'écran) --- */
.is-visually-hidden { position: absolute !important; left: -9999px !important; }
