@import url("https://fonts.googleapis.com/css2?family=Inter:opsz,wght@14..32,400;14..32,500;14..32,600&display=swap");
/* Glint App Kit v5, plateforme données d'entreprise.
   Structure, gabarits, règles et mouvement : le design system publié par Wellapp (wellapp.ai/design,
   relevé le 23/10/2026). Couleurs : palette de Cursor (cursor.com) posée sur leur échelle de surfaces.
   Code réécrit chez Glint. Classes préfixées gl-. Racine d'un écran : <div class="gl">. */

:root, .gl {
  /* Échelle de surfaces (rôles Wellapp, valeurs Cursor sombre) */
  --surface-page: #14120b;     /* gray-900 : page du site */
  --surface-0: #1b1913;        /* level-0 : surface produit */
  --surface-1: #201e18;        /* level-1 : carte */
  --surface-2: #26241e;        /* level-2 : onglet actif, panneau imbriqué */
  --surface-3: #3b3a33;        /* level-3 : menus, dialogues, le plus haut */
  --surface-inset: #14120b;    /* creux : champs, blocs de code */
  /* Texte, six niveaux */
  --text-primary: #edecec;
  --text-neutral: #d7d6d5;
  --text-secondary: #969492;
  --text-tertiary: #8b8a87;
  --text-quaternary: #85837f;
  --text-disabled: #3b3a33;
  --text-invert: #14120b;
  /* Aplats : repos, survol, pression (un cran d'alpha à chaque fois) */
  --bg-primary: #edecec;
  --hover-bg-primary: rgba(237, 236, 236, 0.88);
  --pressed-bg-primary: rgba(237, 236, 236, 0.84);
  --bg-secondary: rgba(237, 236, 236, 0.027);
  --hover-bg-secondary: rgba(237, 236, 236, 0.08);
  --pressed-bg-secondary: rgba(237, 236, 236, 0.1);
  --hover-bg-tertiary: rgba(237, 236, 236, 0.027);
  --bg-subtle: rgba(237, 236, 236, 0.027);
  --bg-highlight: rgba(237, 236, 236, 0.055);
  --bg-active: rgba(237, 236, 236, 0.08);
  --bg-neutral: rgba(163, 163, 163, 0.24);
  /* Bordures translucides */
  --border-solid: #2b2923;
  --border-faint: rgba(237, 236, 236, 0.04);
  --border-low: rgba(237, 236, 236, 0.08);
  --border-mid: rgba(237, 236, 236, 0.1);
  --border-strong: rgba(237, 236, 236, 0.25);
  --border-active: rgba(237, 236, 236, 0.92);
  --track-subtle: rgba(237, 236, 236, 0.06);
  --divider-groove: rgba(0, 0, 0, 0.25);
  --divider-highlight: rgba(237, 236, 236, 0.04);
  /* États : triade texte, fond, bordure. Vert et rouge de Cursor (éclaircis pour le sombre),
     orange de Cursor pour l'avertissement, bleu ciel de cursor.com pour l'info. */
  --success: #52a387;
  --success-bg: rgba(31, 138, 101, 0.14);
  --success-border: rgba(82, 163, 135, 0.62);
  --danger: #d75d7c;
  --danger-bg: rgba(207, 45, 86, 0.16);
  --danger-border: rgba(215, 93, 124, 0.88);
  --warning: #f54e00;
  --warning-bg: rgba(245, 78, 0, 0.12);
  --warning-border: rgba(245, 78, 0, 0.9);
  --info: #65afe0;
  --info-bg: rgba(101, 175, 224, 0.13);
  --info-border: rgba(101, 175, 224, 0.9);
  /* Graphiques et tuiles de domaine produit */
  --chart-1: #65afe0;
  --chart-2: #f54e00;
  --chart-muted: #4a4842;
  --overlay: rgba(10, 9, 5, 0.8);
  /* Rayons, tous dérivés de la racine de 8 px */
  --radius: 8px;
  --radius-xs: 2px;
  --radius-sm: 4px;
  --radius-md: 6px;
  --radius-lg: 8px;
  --radius-xl: 12px;
  --radius-2xl: 16px;
  --radius-3xl: 24px;
  --radius-4xl: 32px;
  --radius-full: 9999px;
  /* Élévation : des arêtes qui captent la lumière, une ombre portée seulement quand ça flotte */
  --shadow-glass-card: inset 0 1px 0 0 rgba(255, 255, 255, 0.02), inset 0 0 0 1px rgba(255, 255, 255, 0.02), 0 0 0 1px rgba(0, 0, 0, 0.25);
  --shadow-glass-card-inset: inset 0 1px 0 0 rgba(255, 255, 255, 0.02), inset 0 0 0 1px rgba(255, 255, 255, 0.02);
  --shadow-glass-card-elevated: inset 0 1px 0 0 rgba(255, 255, 255, 0.02), inset 0 0 0 1px rgba(255, 255, 255, 0.02), 0 0 0 1px rgba(0, 0, 0, 0.25), 0 4px 16px -2px rgba(0, 0, 0, 0.25);
  --shadow-glass-card-dark: inset 0 1px 0 0 rgba(255, 255, 255, 0.04), inset 0 0 0 1px rgba(255, 255, 255, 0.04), 0 0 0 1px rgba(0, 0, 0, 0.35);
  --shadow-window: inset 0 1px 0 0 rgba(255, 255, 255, 0.06), 0 0 0 1px rgba(0, 0, 0, 0.3), 0 2px 4px rgba(0, 0, 0, 0.4), 0 4px 12px rgba(0, 0, 0, 0.15), 0 24px 48px -16px rgba(0, 0, 0, 0.4);
  /* Mouvement */
  --default-transition-duration: 150ms;
  --dialog-duration: 320ms;
  --fade-duration: 400ms;
  --reveal-duration: 500ms;
  --shimmer-duration: 1250ms;
  --ease-in: cubic-bezier(0.4, 0, 1, 1);
  --ease-out: cubic-bezier(0, 0, 0.2, 1);
  --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
  --dialog-easing: cubic-bezier(0.32, 0.72, 0, 1);
  --reveal-easing: cubic-bezier(0.16, 1, 0.3, 1);
  /* Typo */
  --font-sans: "Inter", "Inter Fallback", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;

  /* Raccourcis */
  --ink: var(--text-primary);
  --ink-soft: var(--text-secondary);
  --ink-mute: var(--text-quaternary);
  --ink-invert: var(--text-invert);
  --line: var(--border-low);
  --line-strong: var(--border-strong);
  --line-soft: var(--track-subtle);
  /* Alias v3 et v4 (écrans existants), à ne pas utiliser dans du nouveau code */
  --bg: var(--surface-page);
  --bg-elevated: var(--surface-1);
  --ink-on-dark: var(--text-primary);
  --blue: var(--info);
  --blue-deep: var(--text-primary);
  --blue-hover: var(--text-neutral);
  --dark: var(--surface-2);
  --dark-deep: var(--text-primary);
  --periwinkle: var(--surface-2);
  --cyan-soft: var(--info-bg);
  --yellow-hi: var(--warning-bg);
  --accent: var(--text-primary);
  --accent-soft: var(--bg-active);
  --success-strong: var(--success);
  --success-soft: var(--success-bg);
  --warning-strong: var(--warning);
  --warning-soft: var(--warning-bg);
  --error: var(--danger);
  --error-strong: var(--danger);
  --error-soft: var(--danger-bg);
  --info-strong: var(--info);
  --info-soft: var(--info-bg);
  --sidebar-active-bg: var(--surface-2);
  --sidebar-hover-bg: var(--bg-highlight);
}

/* Thème clair (palette Cursor claire sur la même échelle) */
.gl[data-theme="light"], [data-theme="light"] .gl {
  --surface-page: #f7f7f4;
  --surface-0: #f7f7f4;
  --surface-1: #f2f1ed;
  --surface-2: #ebeae5;
  --surface-3: #ffffff;
  --surface-inset: #f2f1ed;
  --text-primary: #26251e;
  --text-neutral: #3b3a33;
  --text-secondary: #6b6a63;
  --text-tertiary: #75746d;
  --text-quaternary: #7d7c75;
  --text-disabled: #c9c8c2;
  --text-invert: #f7f7f4;
  --bg-primary: #26251e;
  --hover-bg-primary: #3b3a33;
  --pressed-bg-primary: #3b3a33;
  --bg-secondary: rgba(38, 37, 30, 0.025);
  --hover-bg-secondary: rgba(38, 37, 30, 0.06);
  --pressed-bg-secondary: rgba(38, 37, 30, 0.08);
  --hover-bg-tertiary: rgba(38, 37, 30, 0.025);
  --bg-subtle: rgba(38, 37, 30, 0.025);
  --bg-highlight: rgba(38, 37, 30, 0.05);
  --bg-active: rgba(38, 37, 30, 0.075);
  --border-solid: #e1e0db;
  --border-faint: rgba(38, 37, 30, 0.05);
  --border-low: rgba(38, 37, 30, 0.1);
  --border-mid: rgba(38, 37, 30, 0.15);
  --border-strong: rgba(38, 37, 30, 0.25);
  --border-active: rgba(38, 37, 30, 0.9);
  --track-subtle: rgba(38, 37, 30, 0.08);
  --success: #1f8a65;
  --danger: #cf2d56;
  --warning: #b23a00;
  --info: #2f6f9a;
  --overlay: rgba(38, 37, 30, 0.4);
  --shadow-glass-card: 0 0 0 1px rgba(38, 37, 30, 0.08);
  --shadow-glass-card-elevated: 0 0 0 1px rgba(38, 37, 30, 0.08), 0 4px 16px -2px rgba(38, 37, 30, 0.12);
}

/* ---------- Base ---------- */
.gl, .gl *, .gl *::before, .gl *::after { box-sizing: border-box; }
.gl {
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 24px;
  color: var(--text-primary);
  background: var(--surface-page);
  font-optical-sizing: auto;
  -webkit-font-smoothing: antialiased;
}
:where(.gl) :where(h1, h2, h3, h4, p, ul, ol, dl, dd, figure) { margin: 0; padding: 0; }
:where(.gl) :where(ul, ol) { list-style: none; }
:where(.gl) a { color: inherit; text-decoration: none; }
:where(.gl) :where(button, input, select, textarea) { font: inherit; color: inherit; }
:where(.gl) button { cursor: pointer; }
:where(.gl) :where(h1, h2, h3, h4) { text-wrap: balance; }
:where(.gl) :where(table, .gl-num, .gl-stat-value, .gl-price, .gl-col-num) { font-variant-numeric: tabular-nums lining-nums; }
/* Focus toujours visible, en gris (jamais en couleur) */
.gl :where(a, button, input, select, textarea, [tabindex]):focus-visible { outline: 2px solid var(--text-primary); outline-offset: 2px; }
.gl ::selection { background: rgba(237, 236, 236, 0.2); }
.gl--bg { background: var(--surface-page); }

/* ---------- Typographie : échelle Wellapp, Inter 400 et 500 ---------- */
.gl-display { font-size: 72px; line-height: 0.9615; font-weight: 500; letter-spacing: -0.045em; }
.gl-display--md, .gl-display--sm { font-size: 48px; line-height: 48px; letter-spacing: -0.035em; }
.gl-h1--lg { font-size: 48px; line-height: 48px; font-weight: 500; letter-spacing: -0.035em; }
.gl-h1, .gl-text-4xl { font-size: 36px; line-height: 40px; font-weight: 500; letter-spacing: -0.033em; }
.gl-text-3xl { font-size: 30px; line-height: 36px; font-weight: 500; letter-spacing: -0.033em; }
.gl-h2, .gl-text-2xl { font-size: 24px; line-height: 32px; font-weight: 500; letter-spacing: -0.025em; }
.gl-text-xl { font-size: 20px; line-height: 28px; font-weight: 500; letter-spacing: -0.02em; }
.gl-row-head { font-size: 24px; line-height: 32px; font-weight: 400; letter-spacing: -0.025em; }
.gl-h3 { font-size: 16px; line-height: 24px; font-weight: 500; }
.gl-lede { font-size: 18px; line-height: 28px; color: var(--text-secondary); }
.gl-text-md { font-size: 16px; line-height: 24px; }
.gl-text-sm { font-size: 14px; line-height: 20px; }
.gl-small { font-size: 12px; line-height: 16px; }
.gl-text-2xs { font-size: 11px; line-height: 14px; }
.gl-eyebrow { font-size: 12px; line-height: 16px; font-weight: 500; color: var(--text-tertiary); }
.gl-label-up { font-size: 12px; line-height: 16px; font-weight: 500; color: var(--text-tertiary); }
.gl-muted { color: var(--text-secondary); }
.gl-tertiary { color: var(--text-tertiary); }
.gl-quaternary { color: var(--text-quaternary); }
.gl-mono { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
.gl-num { font-variant-numeric: tabular-nums lining-nums; }
.gl-link { color: var(--text-primary); font-weight: 500; text-decoration: underline; text-decoration-color: var(--border-strong); text-underline-offset: 3px; transition: text-decoration-color var(--default-transition-duration) var(--ease-in-out); }
.gl-link:hover { text-decoration-color: currentColor; }
.gl-strong { font-weight: 500; }
.gl-shimmer { background: linear-gradient(90deg, var(--text-quaternary) 0%, var(--text-primary) 50%, var(--text-quaternary) 100%); background-size: 200% 100%; -webkit-background-clip: text; background-clip: text; color: transparent; animation: gl-shimmer-text var(--shimmer-duration) linear infinite; }

/* ---------- Layout utilitaires ---------- */
.gl-row { display: flex; align-items: center; gap: 8px; }
.gl-row--wrap { flex-wrap: wrap; }
.gl-row--between { justify-content: space-between; }
.gl-row--start { align-items: flex-start; }
.gl-stack { display: flex; flex-direction: column; gap: 12px; }
.gl-stack--sm { gap: 8px; }
.gl-stack--lg { gap: 24px; }
.gl-grow { flex: 1 1 0; min-width: 0; }
.gl-grid { display: grid; gap: 16px; }
.gl-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.gl-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gl-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.gl-split-main { display: flex; flex-wrap: wrap; gap: 24px; align-items: flex-start; }
.gl-split-main > :first-child { flex: 999 1 560px; min-width: 0; }
.gl-split-main > :last-child { flex: 1 1 320px; min-width: 0; }
.gl-hr { height: 1px; border: 0; margin: 0; background: var(--divider-groove); box-shadow: 0 1px 0 var(--divider-highlight); }
.gl-truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.gl-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- Icônes : Lucide, trait 1.5 ---------- */
.gl-ico { width: 16px; height: 16px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.gl-ico--sm { width: 14px; height: 14px; }
.gl-ico--lg { width: 20px; height: 20px; }
.gl-ico--xl { width: 24px; height: 24px; }

/* ---------- Coquille d'application ---------- */
.gl-app { display: flex; flex-wrap: wrap; align-items: stretch; background: var(--surface-0); min-height: 720px; font-size: 14px; line-height: 20px; }
.gl-main { flex: 999 1 560px; min-width: 0; display: flex; flex-direction: column; background: var(--surface-0); }
.gl-topbar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; min-height: 52px; padding: 8px 40px; box-shadow: inset 0 -1px 0 var(--border-solid); background: var(--surface-0); }
.gl-topbar-title { font-size: 14px; font-weight: 500; }
.gl-crumbs { display: flex; align-items: center; gap: 6px; font-size: 14px; color: var(--text-secondary); }
.gl-crumbs strong { color: var(--text-primary); font-weight: 500; }
.gl-page { width: 100%; max-width: 1200px; margin: 0 auto; padding: 40px 40px 80px; display: flex; flex-direction: column; gap: 24px; animation: gl-fade var(--fade-duration) var(--ease-out) both; }
.gl-page--narrow { max-width: 760px; }
.gl-page--wide { max-width: 1280px; }
.gl-page-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.gl-page-head .gl-lede { font-size: 16px; line-height: 24px; margin-top: 16px; max-width: 640px; color: var(--text-tertiary); }

/* ---------- Sidebar ---------- */
.gl-sb { flex: 0 0 248px; width: 248px; max-width: 100%; display: flex; flex-direction: column; gap: 2px; padding: 12px; box-shadow: inset -1px 0 0 var(--border-solid); background: var(--surface-page); }
.gl-sb-org { display: flex; align-items: center; gap: 10px; padding: 6px 8px; border-radius: var(--radius-lg); transition: background-color var(--default-transition-duration) var(--ease-in-out); }
.gl-sb-org:hover { background: var(--bg-highlight); }
.gl-sb-org-mark { width: 32px; height: 32px; border-radius: var(--radius-lg); background: var(--surface-2); color: var(--text-primary); box-shadow: var(--shadow-glass-card); display: grid; place-items: center; font-weight: 500; font-size: 12px; flex: none; }
.gl-sb-org-name { font-size: 14px; font-weight: 500; line-height: 20px; }
.gl-sb-org-sub { font-size: 12px; line-height: 16px; color: var(--text-tertiary); }
.gl-sb-search { display: flex; align-items: center; gap: 8px; height: 32px; padding: 0 10px; border: 1px solid var(--border-low); border-radius: var(--radius-lg); background: var(--surface-inset); color: var(--text-tertiary); font-size: 14px; margin: 6px 0 10px; }
.gl-kbd { margin-left: auto; font-family: var(--font-mono); font-size: 11px; line-height: 14px; padding: 1px 5px; border: 1px solid var(--border-low); border-radius: var(--radius-sm); color: var(--text-tertiary); background: var(--bg-subtle); }
.gl-nav-label { padding: 16px 8px 6px; font-size: 12px; line-height: 16px; color: var(--text-quaternary); font-weight: 500; }
.gl-nav { display: flex; flex-direction: column; gap: 2px; }
.gl-nav-item { display: flex; align-items: center; gap: 10px; height: 32px; padding: 0 8px; border-radius: var(--radius-lg); font-size: 14px; color: var(--text-secondary); font-weight: 500; transition: background-color var(--default-transition-duration) var(--ease-in-out), color var(--default-transition-duration) var(--ease-in-out); }
.gl-nav-item:hover { background: var(--bg-highlight); color: var(--text-primary); }
.gl-nav-item.is-active { background: var(--surface-2); color: var(--text-primary); box-shadow: var(--shadow-glass-card-inset); }
.gl-nav-badge { margin-left: auto; font-size: 11px; line-height: 14px; padding: 2px 6px; border-radius: var(--radius-lg); background: var(--bg-neutral); color: var(--text-primary); font-weight: 500; }
.gl-sb-spacer { flex: 1 1 24px; }
.gl-sb-user { display: flex; align-items: center; gap: 10px; padding: 10px 8px 4px; box-shadow: inset 0 1px 0 var(--border-solid); margin-top: 8px; font-size: 14px; }
.gl-sb-back { display: flex; align-items: center; gap: 8px; height: 32px; padding: 0 8px; font-size: 14px; font-weight: 500; color: var(--text-primary); border-radius: var(--radius-lg); }

/* Checklist de démarrage */
.gl-checklist { border-radius: var(--radius-lg); background: var(--surface-1); box-shadow: var(--shadow-glass-card); padding: 12px; display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }
.gl-checklist-title { font-size: 12px; font-weight: 500; color: var(--text-primary); }
.gl-checklist-item { display: flex; align-items: center; gap: 8px; font-size: 12px; line-height: 16px; color: var(--text-tertiary); }
.gl-checklist-item.is-done { color: var(--text-neutral); }
.gl-checklist-item .gl-ico { color: var(--success); }
.gl-checklist-item .gl-ico--todo { color: var(--text-quaternary); }

/* ---------- Boutons : md 32 (défaut), sm 28, lg 40, xs 24. Gris uniquement, sauf danger. ---------- */
.gl-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 32px; padding: 6px 12px; border-radius: 10px; border: 0; font-size: 14px; line-height: 20px; font-weight: 500; white-space: nowrap; background: transparent; transition: background-color 200ms var(--ease-in-out), color 200ms var(--ease-in-out), box-shadow 200ms var(--ease-in-out); }
.gl-btn--primary { background: var(--bg-primary); color: var(--text-invert) !important; }
.gl-btn--primary:hover { background: var(--hover-bg-primary); }
.gl-btn--primary:active { background: var(--pressed-bg-primary); }
.gl-btn--secondary { background: var(--bg-secondary); box-shadow: inset 0 0 0 1px var(--border-faint); color: var(--text-primary) !important; }
.gl-btn--secondary:hover { background: var(--hover-bg-secondary); }
.gl-btn--secondary:active { background: var(--pressed-bg-secondary); }
.gl-btn--tertiary { color: var(--text-primary) !important; }
.gl-btn--tertiary:hover { background: var(--hover-bg-tertiary); }
.gl-btn--ghost { color: var(--text-secondary) !important; }
.gl-btn--ghost:hover { color: var(--text-primary) !important; background: var(--hover-bg-tertiary); }
.gl-btn--danger { background: var(--danger-bg); color: var(--danger) !important; }
.gl-btn--danger:hover { background: rgba(207, 45, 86, 0.24); }
.gl-btn--filter { height: 32px; padding: 6px 12px; line-height: 18px; border-radius: var(--radius-lg); background: var(--surface-1); box-shadow: inset 0 0 0 1px var(--border-low); color: var(--text-primary) !important; }
.gl-btn--filter.is-active { background: var(--surface-2); box-shadow: inset 0 0 0 1px var(--border-strong); }
.gl-btn--link { height: auto; padding: 0; border-radius: var(--radius-sm); font-weight: 400; color: var(--text-secondary) !important; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 3px; }
.gl-btn--link:hover { text-decoration-color: currentColor; color: var(--text-primary) !important; }
.gl-btn--dark { background: var(--surface-2); box-shadow: inset 0 0 0 1px var(--border-low); color: var(--text-primary) !important; }
.gl-btn--accent { background: var(--bg-primary); color: var(--text-invert) !important; }
.gl-btn--pill { border-radius: var(--radius-full); }
.gl-btn--lg {  /* hérité : ne plus utiliser, préférer md ou sm */ height: 40px; padding: 10px 12px; border-radius: 10px; font-size: 14px; }
.gl-btn--sm { height: 28px; padding: 4px 8px; border-radius: var(--radius-lg); font-size: 14px; }
.gl-btn--xs { height: 24px; padding: 4px 8px; border-radius: var(--radius-md); font-size: 12px; line-height: 16px; }
.gl-btn--icon { width: 32px; padding: 0; }
.gl-btn--icon.gl-btn--sm { width: 28px; }
.gl-btn--icon.gl-btn--xs { width: 24px; }
.gl-btn--icon.gl-btn--lg { width: 40px; }
.gl-btn[disabled], .gl-btn.is-disabled { opacity: 0.6; cursor: not-allowed; pointer-events: none; }
.gl-btn--block { width: 100%; }

/* ---------- Formulaires ---------- */
.gl-field { display: flex; flex-direction: column; gap: 6px; }
.gl-label { font-size: 14px; line-height: 20px; font-weight: 500; color: var(--text-primary); }
.gl-hint { font-size: 12px; line-height: 16px; font-weight: 500; color: var(--text-secondary); }
.gl-error { font-size: 12px; line-height: 16px; font-weight: 500; color: var(--danger); }
.gl-input, .gl-select, .gl-textarea { width: 100%; height: 40px; padding: 8px 12px; border: 0; border-radius: var(--radius-lg); background: var(--surface-1); box-shadow: inset 0 0 0 1px var(--border-low); color: var(--text-primary); font-size: 14px; line-height: 20px; transition: box-shadow var(--default-transition-duration) var(--ease-in-out), background-color var(--default-transition-duration) var(--ease-in-out); }
.gl-input::placeholder, .gl-textarea::placeholder { color: var(--text-quaternary); }
.gl-input:hover, .gl-select:hover, .gl-textarea:hover { box-shadow: inset 0 0 0 1px var(--border-mid); }
.gl-input:focus, .gl-select:focus, .gl-textarea:focus { outline: none; box-shadow: inset 0 0 0 1px var(--border-strong), 0 0 0 2px var(--surface-0), 0 0 0 4px var(--border-strong); }
.gl-input.is-invalid, .gl-textarea.is-invalid { box-shadow: inset 0 0 0 1px var(--danger); }
.gl-input[disabled], .gl-select[disabled], .gl-textarea[disabled] { opacity: 0.6; cursor: not-allowed; }
.gl-textarea { height: auto; min-height: 96px; resize: vertical; }
.gl-select { appearance: none; padding-right: 32px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23969492' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 10px center; }
.gl-input-wrap { position: relative; display: flex; align-items: center; }
.gl-input-wrap > .gl-ico { position: absolute; left: 12px; color: var(--text-tertiary); pointer-events: none; }
.gl-input-wrap > .gl-input { padding-left: 36px; }
.gl-input-group { display: flex; align-items: center; gap: 8px; height: 40px; padding: 0 4px 0 12px; border-radius: var(--radius-lg); background: var(--surface-1); box-shadow: inset 0 0 0 1px var(--border-low); }
.gl-input-group input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; height: 100%; font-size: 14px; }
.gl-check { appearance: none; width: 14px; height: 14px; border: 0; border-radius: var(--radius-sm); background: var(--table-surface, var(--surface-1)); box-shadow: inset 0 0 0 0.5px var(--border-strong), 0 1px 1px 0 rgba(0, 0, 0, 0.12); display: inline-grid; place-content: center; flex: none; margin: 0; cursor: pointer; transition: background-color 120ms cubic-bezier(0.2, 0, 0, 1), box-shadow 120ms cubic-bezier(0.2, 0, 0, 1); }
.gl-check:hover { box-shadow: inset 0 0 0 0.5px var(--text-tertiary), 0 1px 1px 0 rgba(0, 0, 0, 0.12); }
.gl-check:checked, .gl-check:indeterminate { background: var(--bg-primary); box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.12); }
.gl-check:checked::after { content: ""; width: 7px; height: 3.5px; border-left: 1.6px solid var(--text-invert); border-bottom: 1.6px solid var(--text-invert); transform: rotate(-45deg) translate(0.5px, -0.5px); }
.gl-check:indeterminate::after { content: ""; width: 6px; height: 0; border-top: 1.6px solid var(--text-invert); }
.gl-radio { appearance: none; width: 16px; height: 16px; border: 1px solid var(--border-low); border-radius: 50%; background: var(--bg-secondary); display: inline-grid; place-content: center; flex: none; margin: 0; }
.gl-radio:checked { border-color: var(--text-primary); }
.gl-radio:checked::after { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--text-primary); }
.gl-switch { appearance: none; width: 36px; height: 20px; border-radius: var(--radius-full); background: var(--bg-neutral); position: relative; flex: none; margin: 0; transition: background-color var(--default-transition-duration) var(--ease-in-out); }
.gl-switch::after { content: ""; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: var(--text-primary); transition: transform var(--default-transition-duration) var(--ease-in-out); }
.gl-switch:checked { background: var(--bg-primary); }
.gl-switch:checked::after { transform: translateX(16px); background: var(--surface-0); }
.gl-choice { display: flex; align-items: flex-start; gap: 12px; padding: 16px; border-radius: var(--radius-lg); background: var(--surface-1); box-shadow: var(--shadow-glass-card); transition: box-shadow var(--default-transition-duration) var(--ease-in-out), background-color var(--default-transition-duration) var(--ease-in-out); }
.gl-choice:hover { background: var(--surface-2); }
.gl-choice.is-selected { background: var(--surface-2); box-shadow: inset 0 0 0 1px var(--border-strong), 0 0 0 1px rgba(0, 0, 0, 0.25); }
.gl-dropzone { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; padding: 40px 24px; border: 1px dashed var(--border-strong); border-radius: var(--radius-lg); background: var(--surface-inset); text-align: center; }

/* ---------- Badges : md 20 px rayon 8, statut de table 11 px rayon 4, puce rayon 4 ---------- */
.gl-badge { display: inline-flex; align-items: center; gap: 4px; height: 20px; padding: 2px 6px; border-radius: var(--radius-lg); font-size: 12px; line-height: 16px; font-weight: 500; white-space: nowrap; background: var(--bg-secondary); color: var(--text-secondary); }
/* ---------- Couleurs de badge (candidat 24/10/2026) : teintes douces 100 / 700 en clair (50 serait invisible sur le fond crème), 950 / 300 en sombre, sept couleurs, aucun point ---------- */
.gl, :root { --badge-blue-bg: #172554; --badge-blue-fg: #93c5fd; --badge-green-bg: #052e16; --badge-green-fg: #86efac; --badge-sky-bg: #082f49; --badge-sky-fg: #7dd3fc; --badge-purple-bg: #3b0764; --badge-purple-fg: #d8b4fe; --badge-red-bg: #450a0a; --badge-red-fg: #fca5a5; --badge-orange-bg: #431407; --badge-orange-fg: #fdba74; --badge-yellow-bg: #422006; --badge-yellow-fg: #fde047; }
.gl[data-theme="light"], [data-theme="light"] .gl { --badge-blue-bg: #dbeafe; --badge-blue-fg: #1d4ed8; --badge-green-bg: #dcfce7; --badge-green-fg: #15803d; --badge-sky-bg: #e0f2fe; --badge-sky-fg: #0369a1; --badge-purple-bg: #f3e8ff; --badge-purple-fg: #7e22ce; --badge-red-bg: #fee2e2; --badge-red-fg: #b91c1c; --badge-orange-bg: #ffedd5; --badge-orange-fg: #c2410c; --badge-yellow-bg: #fef9c3; --badge-yellow-fg: #a16207; }
.gl-badge--blue { background: var(--badge-blue-bg); color: var(--badge-blue-fg); }
.gl-badge--green { background: var(--badge-green-bg); color: var(--badge-green-fg); }
.gl-badge--sky { background: var(--badge-sky-bg); color: var(--badge-sky-fg); }
.gl-badge--purple { background: var(--badge-purple-bg); color: var(--badge-purple-fg); }
.gl-badge--red { background: var(--badge-red-bg); color: var(--badge-red-fg); }
.gl-badge--orange { background: var(--badge-orange-bg); color: var(--badge-orange-fg); }
.gl-badge--yellow { background: var(--badge-yellow-bg); color: var(--badge-yellow-fg); }
.gl-badge--success { background: var(--badge-green-bg); color: var(--badge-green-fg); }
.gl-badge--error { background: var(--badge-red-bg); color: var(--badge-red-fg); }
.gl-badge--warning { background: var(--badge-orange-bg); color: var(--badge-orange-fg); }
.gl-badge--info { background: var(--badge-sky-bg); color: var(--badge-sky-fg); }
.gl-badge--strong, .gl-badge--periwinkle { background: var(--bg-active); color: var(--text-primary); }  /* ancien « blue » : neutre appuyé */
.gl-badge .gl-dot { display: none; }
.gl-badge--outline { background: transparent; box-shadow: inset 0 0 0 1px var(--border-low); color: var(--text-secondary); }
.gl-badge--sm { font-size: 11px; line-height: 14px; padding: 2px 4px; border-radius: var(--radius-sm); }
.gl-table .gl-badge { font-size: 11px; line-height: 14px; padding: 2px 4px; border-radius: var(--radius-sm); }
.gl-badge--activity { height: auto; padding: 0; background: transparent !important; color: var(--text-primary); gap: 6px; }
.gl-dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex: none; }
.gl-dot--success { background: var(--success); }
.gl-dot--warning { background: var(--warning); }
.gl-dot--error { background: var(--danger); }
.gl-dot--blue { background: var(--info); }
.gl-dot--live { background: var(--info); animation: gl-pulse 2s var(--ease-in-out) infinite; }
.gl-chip { display: inline-flex; align-items: center; gap: 4px; height: 20px; padding: 2px 6px; border-radius: var(--radius-sm); font-size: 12px; line-height: 16px; font-weight: 500; background: var(--bg-highlight); color: var(--text-neutral); white-space: nowrap; }

/* ---------- Cartes : rayon 8, pas de bordure, arêtes glass ---------- */
.gl-card { background: var(--surface-1); border-radius: var(--radius-lg); box-shadow: var(--shadow-glass-card); }
.gl-card--muted { background: var(--surface-2); box-shadow: var(--shadow-glass-card-inset); }
.gl-card--elevated { box-shadow: var(--shadow-glass-card-elevated); }
.gl-card-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 20px; box-shadow: inset 0 -1px 0 var(--track-subtle); flex-wrap: wrap; }
.gl-card-body { padding: 20px; display: flex; flex-direction: column; gap: 16px; }
.gl-card-foot { display: flex; align-items: center; justify-content: flex-end; gap: 8px; padding: 12px 20px; box-shadow: inset 0 1px 0 var(--track-subtle); flex-wrap: wrap; }
.gl-card--danger { box-shadow: inset 0 0 0 1px var(--danger-border), 0 0 0 1px rgba(0, 0, 0, 0.25); }
.gl-setting { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 0; box-shadow: inset 0 -1px 0 var(--track-subtle); flex-wrap: wrap; }
.gl-setting:last-child { box-shadow: none; }
.gl-stat { padding: 20px; display: flex; flex-direction: column; gap: 8px; }
.gl-stat-value { font-size: 36px; line-height: 40px; font-weight: 500; letter-spacing: -0.033em; }
.gl-stat-label { font-size: 14px; line-height: 20px; color: var(--text-tertiary); }
.gl-kv { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 10px 16px; font-size: 14px; line-height: 20px; }
.gl-kv dt { color: var(--text-secondary); }
.gl-kv dd { color: var(--text-primary); }
.gl-tile { display: grid; place-items: center; width: 32px; height: 32px; border-radius: var(--radius-lg); background: var(--surface-2); color: var(--text-secondary); flex: none; }
.gl-tile--periwinkle { background: var(--surface-2); color: var(--text-secondary); }
.gl-tile--cyan { background: var(--info-bg); color: var(--info); }
.gl-tile--yellow { background: var(--warning-bg); color: var(--warning); }
.gl-tile--green { background: var(--success-bg); color: var(--success); }
.gl-tile--red { background: var(--danger-bg); color: var(--danger); }
.gl-tile--dark { background: var(--bg-primary); color: var(--text-invert); }
.gl-tile--lg { width: 48px; height: 48px; border-radius: var(--radius-xl); }
.gl-avatar { width: 24px; height: 24px; border-radius: 50%; background: var(--surface-3); color: var(--text-primary); display: grid; place-items: center; font-size: 11px; font-weight: 500; flex: none; }
.gl-avatar--lg { width: 40px; height: 40px; font-size: 14px; }
.gl-avatar--xl { width: 72px; height: 72px; font-size: 24px; }
.gl-avatars { display: flex; }
.gl-avatars .gl-avatar { box-shadow: 0 0 0 2px var(--surface-1); margin-left: -6px; }
.gl-avatars .gl-avatar:first-child { margin-left: 0; }

/* ---------- Onglets : soulignés (panneau) et segmentés (vue ou filtre) ---------- */
.gl-tabs { display: flex; gap: 4px; box-shadow: inset 0 -1px 0 var(--track-subtle); overflow-x: auto; }
.gl-tab { display: inline-flex; align-items: center; gap: 8px; height: 36px; padding: 8px 12px; font-size: 14px; line-height: 20px; font-weight: 500; color: var(--text-secondary); box-shadow: inset 0 -2px 0 transparent; white-space: nowrap; transition: color var(--default-transition-duration) var(--ease-in-out), box-shadow var(--default-transition-duration) var(--ease-in-out); }
.gl-tab:hover { color: var(--text-primary); }
.gl-tab.is-active { color: var(--text-primary); box-shadow: inset 0 -2px 0 var(--text-primary); }
.gl-tab-count { font-size: 11px; line-height: 14px; padding: 2px 4px; border-radius: var(--radius-sm); background: var(--bg-highlight); color: var(--text-secondary); }
.gl-typetabs { display: inline-flex; gap: 2px; padding: 4px; border-radius: var(--radius-lg); background: var(--surface-2); }
.gl-typetab { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: var(--radius-md); font-size: 12px; line-height: 16px; color: var(--text-tertiary); font-weight: 500; }
.gl-typetab.is-active { background: var(--surface-3); color: var(--text-primary); }
.gl-segment { display: inline-flex; padding: 4px; border-radius: var(--radius-lg); background: var(--surface-2); gap: 2px; }
.gl-segment-item { display: inline-flex; align-items: center; padding: 6px 12px; border: 0; background: transparent; border-radius: var(--radius-md); font-size: 12px; line-height: 16px; font-weight: 500; color: var(--text-tertiary); transition: background-color var(--default-transition-duration) var(--ease-in-out), color var(--default-transition-duration) var(--ease-in-out); }
.gl-segment-item:hover { color: var(--text-primary); }
.gl-segment-item.is-active { background: var(--surface-3); color: var(--text-primary); }

/* ---------- Table (design « Design Stack », 24/10/2026) : carte de 10 px, filets de 0,5 px, rythme 56 / 40 / 44 / 48, aucun filet vertical ----------
   Couleurs du design system : encre en text-primary, alphas en text-secondary et text-tertiary, filets en border-low, sélection en bg-highlight, aucun bleu. */
.gl, :root { --table-surface: var(--surface-1); --table-hairline: var(--border-low); --table-shadow: 0 0 0 0.5px var(--border-low), 0 1px 1px -1px rgba(0, 0, 0, 0.25), 0 1px 2px 0 rgba(0, 0, 0, 0.12); }
.gl[data-theme="light"], [data-theme="light"] .gl { --table-surface: var(--surface-3); --table-shadow: 0 0 0 0.5px rgba(38, 37, 30, 0.08), 0 1px 1px -1px rgba(38, 37, 30, 0.12), 0 1px 2px 0 rgba(38, 37, 30, 0.06); }
.gl-tablewrap { width: 100%; overflow-x: auto; border-radius: 10px; background: var(--table-surface); box-shadow: var(--table-shadow); scrollbar-width: thin; scrollbar-color: var(--border-strong) transparent; }
.gl-table { width: 100%; border-collapse: collapse; font-size: 14px; line-height: 20px; color: var(--text-primary); }
.gl-table th, .gl-table td { border: 0; border-top: 0.5px solid var(--table-hairline); vertical-align: middle; }
.gl-table thead th { border-top: 0; }
.gl-table th { height: 40px; text-align: left; font-size: 12px; line-height: 16px; font-weight: 500; color: var(--text-secondary); padding: 0 6px; background: var(--table-surface); white-space: nowrap; }
.gl-table td { height: 44px; padding: 8px 12px; }  /* 44 px en une ligne, 52 px quand la cellule a une sous-ligne */
.gl-table thead th:first-child { padding-left: 12px; }
.gl-table th:not(:has(.gl-th-btn)) { padding: 0 12px; }
/* Tables à 7 colonnes ou plus (écrans denses) : marges de 8 px pour ne pas déborder */
.gl-table:has(thead th:nth-child(7)) td { padding: 8px 8px; }
.gl-table:has(thead th:nth-child(7)) th:not(:has(.gl-th-btn)) { padding: 0 8px; }
.gl-table:has(thead th:nth-child(7)) th:has(.gl-th-btn) { padding: 0 2px; }
.gl-card .gl-table td { padding: 8px 8px; }
.gl-card .gl-table th:not(:has(.gl-th-btn)) { padding: 0 8px; }  /* tables dans une carte étroite */
.gl-table tbody tr { transition: background-color 120ms cubic-bezier(0.2, 0, 0, 1); }
.gl-table tbody tr:hover { background: var(--hover-bg-tertiary); }
.gl-table tbody tr:has(.gl-check:checked), .gl-table tbody tr[data-selected] { background: var(--bg-highlight); }
.gl-table .gl-col-check { width: 44px; padding: 0; text-align: center; }
.gl-table .gl-col-check .gl-check { margin: 0 auto; display: grid; }
.gl-table .gl-col-num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
/* En-têtes triables : icône de colonne, libellé, flèche de tri qui apparaît au survol */
.gl-th-btn { width: 100%; height: 28px; display: flex; align-items: center; gap: 6px; padding: 0 6px; font: inherit; color: var(--text-secondary); background: transparent; border: 0; border-radius: var(--radius-md); cursor: pointer; transition: color 120ms cubic-bezier(0.2, 0, 0, 1); }
.gl-th-btn:hover, .gl-th-btn[data-sorted] { color: var(--text-primary); }
.gl-th-ico { display: grid; color: var(--text-tertiary); }
.gl-th-sort { display: grid; margin-left: auto; color: var(--text-tertiary); opacity: 0; transition: opacity 120ms cubic-bezier(0.2, 0, 0, 1); }
.gl-th-btn:hover .gl-th-sort, .gl-th-btn[data-sorted] .gl-th-sort { opacity: 1; }
.gl-th-btn[data-sorted="desc"] .gl-th-sort svg { transform: rotate(180deg); }
.gl-table .gl-th-btn svg, .gl-table-head svg, .gl-table-foot svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.1px; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.gl-th-sort svg { width: 12px; height: 12px; }
/* Bandeau (52 px) et pied (44 px) de la carte */
.gl-table-card { border-radius: 10px; overflow: hidden; background: var(--table-surface); box-shadow: var(--table-shadow); }
.gl-table-card > .gl-tablewrap { border-radius: 0; box-shadow: none; background: transparent; }
.gl-table-head { min-height: 56px; display: flex; align-items: center; gap: 10px; padding: 14px 12px 14px 16px; }
.gl-table-title { margin: 0; font-size: 16px; line-height: 24px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gl-table-tools { display: flex; gap: 2px; margin-left: auto; }
.gl-table-btn { width: 28px; height: 28px; display: grid; place-items: center; color: var(--text-tertiary); background: transparent; border: 0; border-radius: var(--radius-md); cursor: pointer; transition: color 120ms cubic-bezier(0.2, 0, 0, 1); }
.gl-table-btn:hover:not(:disabled) { color: var(--text-primary); }
.gl-table-btn:disabled { opacity: 0.4; cursor: default; }
.gl-table-foot { min-height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 16px 8px 8px; border-top: 0.5px solid var(--table-hairline); }
.gl-add-row { height: 28px; display: flex; align-items: center; gap: 6px; padding: 0 10px 0 8px; font: inherit; font-size: 14px; line-height: 20px; font-weight: 500; color: var(--text-secondary); background: transparent; border: 0; border-radius: var(--radius-md); cursor: pointer; white-space: nowrap; transition: color 120ms cubic-bezier(0.2, 0, 0, 1); }
.gl-add-row svg { color: var(--text-tertiary); }
.gl-add-row:hover, .gl-add-row:hover svg { color: var(--text-primary); }
.gl-table-hint { min-width: 0; font-size: 12px; line-height: 16px; color: var(--text-tertiary); font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* Édition en place : anneau en encre (le design system n'a pas de bleu d'accent) */
.gl-cell-edit { flex: 1; width: calc(100% + 12px); min-width: 0; height: 28px; margin: 0 -6px; padding: 0 6px; font: inherit; color: var(--text-primary); background: var(--surface-inset); border: 0; border-radius: var(--radius-md); box-shadow: inset 0 0 0 1px var(--border-active); outline: none; }
.gl-table :focus-visible, .gl-table-card :focus-visible { outline: 2px solid var(--border-active); outline-offset: 1px; }
@media (prefers-reduced-motion: reduce) { .gl-table *, .gl-table-card * { transition: none !important; } }
.gl-cell-main { display: flex; align-items: center; gap: 8px; min-width: 0; }
.gl-cell-main > .gl-truncate { max-width: 220px; }
.gl-cell-title { font-weight: 500; }
.gl-cell-sub { font-size: 12px; line-height: 16px; color: var(--text-tertiary); }
.gl-filterbar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.gl-filterbar .gl-input-wrap { flex: 1 1 280px; }
.gl-filterbar .gl-input { height: 32px; padding-top: 6px; padding-bottom: 6px; }
.gl-pager { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 14px; color: var(--text-tertiary); padding: 4px 2px; }

/* ---------- Progression, étapes ---------- */
.gl-progress { height: 6px; border-radius: var(--radius-full); background: var(--track-subtle); overflow: hidden; display: flex; }
.gl-progress > span { display: block; height: 100%; background: var(--text-primary); }
.gl-progress > .is-success { background: var(--success); }
.gl-progress > .is-warning { background: var(--warning); }
.gl-stepper { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.gl-step { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--text-tertiary); font-weight: 500; }
.gl-step-n { width: 24px; height: 24px; border-radius: 50%; box-shadow: inset 0 0 0 1px var(--border-mid); display: grid; place-items: center; font-size: 12px; font-weight: 500; background: var(--bg-secondary); }
.gl-step.is-active { color: var(--text-primary); }
.gl-step.is-active .gl-step-n { background: var(--bg-primary); box-shadow: none; color: var(--text-invert); }
.gl-step.is-done .gl-step-n { background: var(--success-bg); box-shadow: none; color: var(--success); }
.gl-step-sep { width: 24px; height: 1px; background: var(--border-mid); }
.gl-timeline { display: flex; flex-direction: column; gap: 0; }
.gl-timeline-item { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 12px; padding-bottom: 16px; position: relative; }
.gl-timeline-item::before { content: ""; position: absolute; left: 9px; top: 20px; bottom: 0; width: 1px; background: var(--border-mid); }
.gl-timeline-item:last-child::before { display: none; }

/* ---------- Encadrés (sans bande latérale), états vides, dialogues, menus ---------- */
.gl-alert { display: flex; align-items: flex-start; gap: 10px; padding: 8px 12px; border-radius: var(--radius-lg); font-size: 14px; line-height: 20px; background: var(--surface-2); color: var(--text-primary); }
.gl-alert > .gl-ico:first-child { color: var(--info); margin-top: 2px; }
.gl-alert--warning > .gl-ico:first-child { color: var(--warning); }
.gl-alert--error > .gl-ico:first-child { color: var(--danger); }
.gl-alert--success > .gl-ico:first-child { color: var(--success); }
.gl-empty { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px; padding: 48px 24px; }
.gl-empty-title { font-size: 16px; line-height: 24px; font-weight: 500; }
.gl-scrim { position: relative; background: var(--overlay); display: flex; align-items: center; justify-content: center; padding: 48px 24px; animation: gl-fade var(--dialog-duration) var(--dialog-easing) both; }
.gl-scrim--cover { position: absolute; inset: 0; }
.gl-modal { width: 100%; max-width: 448px; background: var(--surface-3); border-radius: var(--radius-lg); box-shadow: inset 0 0 0 1px var(--border-low), var(--shadow-window); display: flex; flex-direction: column; animation: gl-dialog-in var(--dialog-duration) var(--dialog-easing) both; }
.gl-modal--lg { max-width: 640px; }
.gl-modal-head { padding: 20px 20px 0; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.gl-modal-head .gl-h2 { font-size: 18px; line-height: 18px; font-weight: 600; letter-spacing: -0.025em; }
.gl-modal-head .gl-hint, .gl-modal-body { font-size: 14px; line-height: 20px; }
.gl-modal-body { padding: 12px 20px 20px; display: flex; flex-direction: column; gap: 16px; color: var(--text-secondary); }
.gl-modal-foot { padding: 0 20px 20px; display: flex; justify-content: flex-end; gap: 8px; }
.gl-menu { min-width: 200px; padding: 4px; background: var(--surface-3); border-radius: var(--radius-lg); box-shadow: inset 0 0 0 1px var(--border-low), var(--shadow-glass-card-elevated); display: flex; flex-direction: column; gap: 2px; }
.gl-menu-item { display: flex; align-items: center; gap: 8px; height: 32px; padding: 0 8px; border-radius: var(--radius-md); font-size: 14px; color: var(--text-primary); }
.gl-menu-item:hover { background: var(--bg-active); }
.gl-toast { display: flex; align-items: center; gap: 10px; padding: 12px 16px; background: var(--surface-3); color: var(--text-primary); border-radius: var(--radius-lg); box-shadow: inset 0 0 0 1px var(--border-low), var(--shadow-glass-card-elevated); font-size: 14px; line-height: 20px; }
.gl-tooltip { display: inline-block; padding: 4px 8px; border-radius: var(--radius-md); background: var(--surface-3); color: var(--text-primary); font-size: 12px; line-height: 16px; box-shadow: inset 0 0 0 1px var(--border-low); }
.gl-skeleton { position: relative; overflow: hidden; border-radius: var(--radius-md); background: var(--bg-highlight); }
.gl-skeleton::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, rgba(237, 236, 236, 0.06), transparent); animation: gl-shimmer var(--shimmer-duration) linear infinite; }

/* ---------- Arborescence de fichiers ---------- */
.gl-tree { font-family: var(--font-mono); font-size: 12px; line-height: 20px; }
.gl-tree-row { display: flex; align-items: center; gap: 8px; padding: 2px 8px; border-radius: var(--radius-md); color: var(--text-neutral); }
.gl-tree-row:hover { background: var(--bg-highlight); }
.gl-tree-row.is-selected { background: var(--surface-2); color: var(--text-primary); }
.gl-tree-indent { width: 16px; flex: none; }
.gl-code { font-family: var(--font-mono); font-size: 12px; line-height: 20px; background: var(--surface-inset); border-radius: var(--radius-lg); box-shadow: var(--shadow-glass-card-inset); padding: 12px 14px; white-space: pre; overflow-x: auto; color: var(--text-neutral); }

/* ---------- Carte listing (marketplace) ---------- */
.gl-listing { display: flex; flex-direction: column; background: var(--surface-1); border-radius: var(--radius-lg); box-shadow: var(--shadow-glass-card); overflow: hidden; transition: box-shadow var(--default-transition-duration) var(--ease-in-out); }
.gl-listing:hover { box-shadow: var(--shadow-glass-card-elevated); }
.gl-listing-cover { height: 120px; display: flex; align-items: flex-end; padding: 12px; background: var(--surface-2); color: var(--text-secondary); }
.gl-listing-cover--cyan { background: var(--info-bg); color: var(--info); }
.gl-listing-cover--yellow { background: var(--warning-bg); color: var(--warning); }
.gl-listing-cover--dark { background: var(--surface-inset); color: var(--text-secondary); }
.gl-listing-cover--soft { background: var(--success-bg); color: var(--success); }
.gl-listing-body { padding: 16px 20px 20px; display: flex; flex-direction: column; gap: 8px; }
.gl-price { font-size: 16px; line-height: 24px; font-weight: 500; }

/* ---------- Site public (marketing) ---------- */
.gl-site-nav { display: flex; align-items: center; gap: 12px 24px; min-height: 60px; padding: 12px 40px; background: var(--surface-page); flex-wrap: wrap; font-size: 14px; }
.gl-site-links { display: flex; align-items: center; gap: 20px; font-size: 14px; color: var(--text-secondary); font-weight: 400; flex-wrap: wrap; }
.gl-site-links a { transition: color var(--default-transition-duration) var(--ease-in-out); }
.gl-site-links a:hover { color: var(--text-primary); }
/* ---------- Logo Glint Marketplace (symbole d'Enzo + Switzer, 24/10/2026) ----------
   Masque SVG teinté par currentColor : le logo prend l'encre du texte voisin (text-primary), clair ou sombre.
   Hauteur par --logo-h. Minimums : horizontal 24 px, empilé 52 px, symbole 24 px (variante --pixel dessous). */
.gl-logo{display:block;flex:none;height:var(--logo-h,32px);width:auto;aspect-ratio:477.7 / 116;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 -2.5 477.7 116%22 fill=%22%23000%22%3E%3Cpath transform=%22translate(0 0) scale(1)%22 d=%22M0 0H30V23.8A6.2 6.2 0 0 1 23.8 30H0Z M76.2 70H100V100H70V76.2A6.2 6.2 0 0 1 76.2 70Z M70 0H100V30H84A19 19 0 0 0 65 49V65H49A19 19 0 0 0 30 84V100H0V70H17.6A17.4 17.4 0 0 0 35 52.6V35H52.6A17.4 17.4 0 0 0 70 17.6Z%22/%3E%3Cg transform=%22translate(0 0)%22%3E%3Cpath d=%22M166.6 41.7V20H150.2V25.3H160C159.6 33.3 155 36.7 149.3 36.7C141.6 36.7 137 30.8 137 20.9C137 11 141.5 5 149.1 5C154.1 5 158 7.6 159.5 12.4H166.6C164.7 3.7 157.6 -0.8 149.3 -0.8C137.3 -0.8 130 7.5 130 20.9C130 34.3 137.3 42.5 148.7 42.5C154 42.5 158.5 40.3 161.1 35.8L161.6 41.7ZM174.2 41.7H180.8V-2.5H174.2ZM188.7 5H195.3V-2.5H188.7ZM188.7 41.7H195.3V9H188.7ZM203.2 41.7H209.7V22.5C209.7 18 212.7 13.6 217.6 13.6C222 13.6 224.1 16.5 224.1 21.2V41.7H230.6V19.9C230.6 12.1 226.4 8.1 219.6 8.1C215.4 8.1 211.9 9.9 209.7 13.4V9H203.2ZM239.4 31.9C239.4 39 242.4 42.5 248.8 42.5C250.6 42.5 252.2 42.2 252.9 41.9V37.1H251.6C247 37.1 246 35.3 246 31.6V14.1H253V9H246V1.5H239.4V9H235V14.1H239.4Z%22/%3E%3Cpath d=%22M130 100H136.9L136.7 66.4L139.6 75.1L149.8 100H154.7L164.8 75.2L167.8 66.2L167.6 100H174.5V58.3H165.5L153.8 87.2L152.4 91.6L151 87.2L139.3 58.3H130ZM189.1 78C189.7 74.3 192 72 196.2 72C201.3 72 203.5 74.6 203.5 79.4V80.1C197.6 80.1 193.2 80.5 188.8 82C183.9 83.6 181.5 86.9 181.5 91.4C181.5 97.7 186 100.8 192.6 100.8C196.5 100.8 200.8 99.1 203.5 95.2C203.6 97.1 203.8 98.8 204.3 100H211.1C210.4 98.2 210 96 210 92V79.3C210 71.7 205.6 66.5 196.7 66.5C188.6 66.5 183.6 70.8 182.6 78ZM188.1 91.2C188.1 87.4 190.9 84.7 203.5 84.6V86C203.5 91.3 199.3 95.6 193.8 95.6C190.4 95.6 188.1 93.9 188.1 91.2ZM218.2 100H224.8V82.2C224.8 76.5 227.5 72.7 233.7 72.7C235.1 72.7 236.2 72.8 237.2 73.1V67.3C236.6 66.8 235.4 66.5 234.1 66.5C230.3 66.5 226.9 68.3 224.8 72.2V67.3H218.2ZM241.7 100H248.3V83.7L261.8 100H270L255 81.9L269.1 67.3H261.2L248.3 81.2V55.9H241.7ZM303.7 89.3H296.9C295.7 93.4 292.8 95.3 288.6 95.3C283.3 95.3 280.2 91.6 279.8 84.9H303.5V83.3C303.5 72.9 297.8 66.5 288.3 66.5C279 66.5 273.1 72.6 273.1 83.7C273.1 94.4 279 100.8 288.6 100.8C296.3 100.8 301.9 96.9 303.7 89.3ZM288.3 71.9C293 71.9 295.9 74.9 296.7 80.5H280C280.8 74.9 283.6 71.9 288.3 71.9ZM310.9 90.3C310.9 97.3 313.9 100.8 320.3 100.8C322.1 100.8 323.6 100.6 324.4 100.2V95.4H323.1C318.5 95.4 317.4 93.6 317.4 89.9V72.4H324.5V67.3H317.4V59.8H310.9V67.3H306.5V72.4H310.9ZM335.9 113.5V96.3C338 99.3 341.1 100.8 344.8 100.8C353.3 100.8 358.7 94.7 358.7 83.6C358.7 72.9 353.5 66.5 344.8 66.5C341.1 66.5 338 68.2 335.9 71.3V67.3H329.4V113.5ZM344 72C349.1 72 352 76.2 352 83.6C352 91.1 349.2 95.3 344 95.3C338.9 95.3 335.9 91.1 335.9 83.6C335.9 76.1 338.8 72 344 72ZM365 100H371.6V55.9H365ZM385.7 78C386.3 74.3 388.6 72 392.8 72C397.8 72 400 74.6 400 79.4V80.1C394.2 80.1 389.7 80.5 385.4 82C380.5 83.6 378 86.9 378 91.4C378 97.7 382.6 100.8 389.2 100.8C393.1 100.8 397.3 99.1 400.1 95.2C400.2 97.1 400.3 98.8 400.8 100H407.7C407 98.2 406.6 96 406.6 92V79.3C406.6 71.7 402.2 66.5 393.3 66.5C385.1 66.5 380.2 70.8 379.1 78ZM384.7 91.2C384.7 87.4 387.5 84.7 400 84.6V86C400 91.3 395.9 95.6 390.4 95.6C386.9 95.6 384.7 93.9 384.7 91.2ZM442.4 78.7C441.3 70.6 435.6 66.5 428.3 66.5C419 66.5 413.2 72.6 413.2 83.7C413.2 94.3 418.9 100.8 428.3 100.8C435.6 100.8 441.2 97.2 442.6 89H436.1C435.1 93.2 432.4 95.3 428.5 95.3C423 95.3 419.9 91.1 419.9 83.7C419.9 76.2 422.8 72 428.3 72C432.1 72 435.1 74.1 435.9 78.7ZM477.7 89.3H470.9C469.8 93.4 466.8 95.3 462.7 95.3C457.3 95.3 454.2 91.6 453.8 84.9H477.5V83.3C477.5 72.9 471.8 66.5 462.4 66.5C453 66.5 447.2 72.6 447.2 83.7C447.2 94.4 453 100.8 462.7 100.8C470.3 100.8 476 96.9 477.7 89.3ZM462.4 71.9C467 71.9 469.9 74.9 470.7 80.5H454C454.8 74.9 457.6 71.9 462.4 71.9Z%22/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 -2.5 477.7 116%22 fill=%22%23000%22%3E%3Cpath transform=%22translate(0 0) scale(1)%22 d=%22M0 0H30V23.8A6.2 6.2 0 0 1 23.8 30H0Z M76.2 70H100V100H70V76.2A6.2 6.2 0 0 1 76.2 70Z M70 0H100V30H84A19 19 0 0 0 65 49V65H49A19 19 0 0 0 30 84V100H0V70H17.6A17.4 17.4 0 0 0 35 52.6V35H52.6A17.4 17.4 0 0 0 70 17.6Z%22/%3E%3Cg transform=%22translate(0 0)%22%3E%3Cpath d=%22M166.6 41.7V20H150.2V25.3H160C159.6 33.3 155 36.7 149.3 36.7C141.6 36.7 137 30.8 137 20.9C137 11 141.5 5 149.1 5C154.1 5 158 7.6 159.5 12.4H166.6C164.7 3.7 157.6 -0.8 149.3 -0.8C137.3 -0.8 130 7.5 130 20.9C130 34.3 137.3 42.5 148.7 42.5C154 42.5 158.5 40.3 161.1 35.8L161.6 41.7ZM174.2 41.7H180.8V-2.5H174.2ZM188.7 5H195.3V-2.5H188.7ZM188.7 41.7H195.3V9H188.7ZM203.2 41.7H209.7V22.5C209.7 18 212.7 13.6 217.6 13.6C222 13.6 224.1 16.5 224.1 21.2V41.7H230.6V19.9C230.6 12.1 226.4 8.1 219.6 8.1C215.4 8.1 211.9 9.9 209.7 13.4V9H203.2ZM239.4 31.9C239.4 39 242.4 42.5 248.8 42.5C250.6 42.5 252.2 42.2 252.9 41.9V37.1H251.6C247 37.1 246 35.3 246 31.6V14.1H253V9H246V1.5H239.4V9H235V14.1H239.4Z%22/%3E%3Cpath d=%22M130 100H136.9L136.7 66.4L139.6 75.1L149.8 100H154.7L164.8 75.2L167.8 66.2L167.6 100H174.5V58.3H165.5L153.8 87.2L152.4 91.6L151 87.2L139.3 58.3H130ZM189.1 78C189.7 74.3 192 72 196.2 72C201.3 72 203.5 74.6 203.5 79.4V80.1C197.6 80.1 193.2 80.5 188.8 82C183.9 83.6 181.5 86.9 181.5 91.4C181.5 97.7 186 100.8 192.6 100.8C196.5 100.8 200.8 99.1 203.5 95.2C203.6 97.1 203.8 98.8 204.3 100H211.1C210.4 98.2 210 96 210 92V79.3C210 71.7 205.6 66.5 196.7 66.5C188.6 66.5 183.6 70.8 182.6 78ZM188.1 91.2C188.1 87.4 190.9 84.7 203.5 84.6V86C203.5 91.3 199.3 95.6 193.8 95.6C190.4 95.6 188.1 93.9 188.1 91.2ZM218.2 100H224.8V82.2C224.8 76.5 227.5 72.7 233.7 72.7C235.1 72.7 236.2 72.8 237.2 73.1V67.3C236.6 66.8 235.4 66.5 234.1 66.5C230.3 66.5 226.9 68.3 224.8 72.2V67.3H218.2ZM241.7 100H248.3V83.7L261.8 100H270L255 81.9L269.1 67.3H261.2L248.3 81.2V55.9H241.7ZM303.7 89.3H296.9C295.7 93.4 292.8 95.3 288.6 95.3C283.3 95.3 280.2 91.6 279.8 84.9H303.5V83.3C303.5 72.9 297.8 66.5 288.3 66.5C279 66.5 273.1 72.6 273.1 83.7C273.1 94.4 279 100.8 288.6 100.8C296.3 100.8 301.9 96.9 303.7 89.3ZM288.3 71.9C293 71.9 295.9 74.9 296.7 80.5H280C280.8 74.9 283.6 71.9 288.3 71.9ZM310.9 90.3C310.9 97.3 313.9 100.8 320.3 100.8C322.1 100.8 323.6 100.6 324.4 100.2V95.4H323.1C318.5 95.4 317.4 93.6 317.4 89.9V72.4H324.5V67.3H317.4V59.8H310.9V67.3H306.5V72.4H310.9ZM335.9 113.5V96.3C338 99.3 341.1 100.8 344.8 100.8C353.3 100.8 358.7 94.7 358.7 83.6C358.7 72.9 353.5 66.5 344.8 66.5C341.1 66.5 338 68.2 335.9 71.3V67.3H329.4V113.5ZM344 72C349.1 72 352 76.2 352 83.6C352 91.1 349.2 95.3 344 95.3C338.9 95.3 335.9 91.1 335.9 83.6C335.9 76.1 338.8 72 344 72ZM365 100H371.6V55.9H365ZM385.7 78C386.3 74.3 388.6 72 392.8 72C397.8 72 400 74.6 400 79.4V80.1C394.2 80.1 389.7 80.5 385.4 82C380.5 83.6 378 86.9 378 91.4C378 97.7 382.6 100.8 389.2 100.8C393.1 100.8 397.3 99.1 400.1 95.2C400.2 97.1 400.3 98.8 400.8 100H407.7C407 98.2 406.6 96 406.6 92V79.3C406.6 71.7 402.2 66.5 393.3 66.5C385.1 66.5 380.2 70.8 379.1 78ZM384.7 91.2C384.7 87.4 387.5 84.7 400 84.6V86C400 91.3 395.9 95.6 390.4 95.6C386.9 95.6 384.7 93.9 384.7 91.2ZM442.4 78.7C441.3 70.6 435.6 66.5 428.3 66.5C419 66.5 413.2 72.6 413.2 83.7C413.2 94.3 418.9 100.8 428.3 100.8C435.6 100.8 441.2 97.2 442.6 89H436.1C435.1 93.2 432.4 95.3 428.5 95.3C423 95.3 419.9 91.1 419.9 83.7C419.9 76.2 422.8 72 428.3 72C432.1 72 435.1 74.1 435.9 78.7ZM477.7 89.3H470.9C469.8 93.4 466.8 95.3 462.7 95.3C457.3 95.3 454.2 91.6 453.8 84.9H477.5V83.3C477.5 72.9 471.8 66.5 462.4 66.5C453 66.5 447.2 72.6 447.2 83.7C447.2 94.4 453 100.8 462.7 100.8C470.3 100.8 476 96.9 477.7 89.3ZM462.4 71.9C467 71.9 469.9 74.9 470.7 80.5H454C454.8 74.9 457.6 71.9 462.4 71.9Z%22/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat;}
.gl-logo--stacked{display:block;flex:none;height:var(--logo-h,32px);width:auto;aspect-ratio:347.7 / 246;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 -2.5 347.7 246%22 fill=%22%23000%22%3E%3Cpath transform=%22translate(123.85 0) scale(1)%22 d=%22M0 0H30V23.8A6.2 6.2 0 0 1 23.8 30H0Z M76.2 70H100V100H70V76.2A6.2 6.2 0 0 1 76.2 70Z M70 0H100V30H84A19 19 0 0 0 65 49V65H49A19 19 0 0 0 30 84V100H0V70H17.6A17.4 17.4 0 0 0 35 52.6V35H52.6A17.4 17.4 0 0 0 70 17.6Z%22/%3E%3Cpath transform=%22translate(-17.65 130)%22 d=%22M166.6 41.7V20H150.2V25.3H160C159.6 33.3 155 36.7 149.3 36.7C141.6 36.7 137 30.8 137 20.9C137 11 141.5 5 149.1 5C154.1 5 158 7.6 159.5 12.4H166.6C164.7 3.7 157.6 -0.8 149.3 -0.8C137.3 -0.8 130 7.5 130 20.9C130 34.3 137.3 42.5 148.7 42.5C154 42.5 158.5 40.3 161.1 35.8L161.6 41.7ZM174.2 41.7H180.8V-2.5H174.2ZM188.7 5H195.3V-2.5H188.7ZM188.7 41.7H195.3V9H188.7ZM203.2 41.7H209.7V22.5C209.7 18 212.7 13.6 217.6 13.6C222 13.6 224.1 16.5 224.1 21.2V41.7H230.6V19.9C230.6 12.1 226.4 8.1 219.6 8.1C215.4 8.1 211.9 9.9 209.7 13.4V9H203.2ZM239.4 31.9C239.4 39 242.4 42.5 248.8 42.5C250.6 42.5 252.2 42.2 252.9 41.9V37.1H251.6C247 37.1 246 35.3 246 31.6V14.1H253V9H246V1.5H239.4V9H235V14.1H239.4Z%22/%3E%3Cpath transform=%22translate(-130 130)%22 d=%22M130 100H136.9L136.7 66.4L139.6 75.1L149.8 100H154.7L164.8 75.2L167.8 66.2L167.6 100H174.5V58.3H165.5L153.8 87.2L152.4 91.6L151 87.2L139.3 58.3H130ZM189.1 78C189.7 74.3 192 72 196.2 72C201.3 72 203.5 74.6 203.5 79.4V80.1C197.6 80.1 193.2 80.5 188.8 82C183.9 83.6 181.5 86.9 181.5 91.4C181.5 97.7 186 100.8 192.6 100.8C196.5 100.8 200.8 99.1 203.5 95.2C203.6 97.1 203.8 98.8 204.3 100H211.1C210.4 98.2 210 96 210 92V79.3C210 71.7 205.6 66.5 196.7 66.5C188.6 66.5 183.6 70.8 182.6 78ZM188.1 91.2C188.1 87.4 190.9 84.7 203.5 84.6V86C203.5 91.3 199.3 95.6 193.8 95.6C190.4 95.6 188.1 93.9 188.1 91.2ZM218.2 100H224.8V82.2C224.8 76.5 227.5 72.7 233.7 72.7C235.1 72.7 236.2 72.8 237.2 73.1V67.3C236.6 66.8 235.4 66.5 234.1 66.5C230.3 66.5 226.9 68.3 224.8 72.2V67.3H218.2ZM241.7 100H248.3V83.7L261.8 100H270L255 81.9L269.1 67.3H261.2L248.3 81.2V55.9H241.7ZM303.7 89.3H296.9C295.7 93.4 292.8 95.3 288.6 95.3C283.3 95.3 280.2 91.6 279.8 84.9H303.5V83.3C303.5 72.9 297.8 66.5 288.3 66.5C279 66.5 273.1 72.6 273.1 83.7C273.1 94.4 279 100.8 288.6 100.8C296.3 100.8 301.9 96.9 303.7 89.3ZM288.3 71.9C293 71.9 295.9 74.9 296.7 80.5H280C280.8 74.9 283.6 71.9 288.3 71.9ZM310.9 90.3C310.9 97.3 313.9 100.8 320.3 100.8C322.1 100.8 323.6 100.6 324.4 100.2V95.4H323.1C318.5 95.4 317.4 93.6 317.4 89.9V72.4H324.5V67.3H317.4V59.8H310.9V67.3H306.5V72.4H310.9ZM335.9 113.5V96.3C338 99.3 341.1 100.8 344.8 100.8C353.3 100.8 358.7 94.7 358.7 83.6C358.7 72.9 353.5 66.5 344.8 66.5C341.1 66.5 338 68.2 335.9 71.3V67.3H329.4V113.5ZM344 72C349.1 72 352 76.2 352 83.6C352 91.1 349.2 95.3 344 95.3C338.9 95.3 335.9 91.1 335.9 83.6C335.9 76.1 338.8 72 344 72ZM365 100H371.6V55.9H365ZM385.7 78C386.3 74.3 388.6 72 392.8 72C397.8 72 400 74.6 400 79.4V80.1C394.2 80.1 389.7 80.5 385.4 82C380.5 83.6 378 86.9 378 91.4C378 97.7 382.6 100.8 389.2 100.8C393.1 100.8 397.3 99.1 400.1 95.2C400.2 97.1 400.3 98.8 400.8 100H407.7C407 98.2 406.6 96 406.6 92V79.3C406.6 71.7 402.2 66.5 393.3 66.5C385.1 66.5 380.2 70.8 379.1 78ZM384.7 91.2C384.7 87.4 387.5 84.7 400 84.6V86C400 91.3 395.9 95.6 390.4 95.6C386.9 95.6 384.7 93.9 384.7 91.2ZM442.4 78.7C441.3 70.6 435.6 66.5 428.3 66.5C419 66.5 413.2 72.6 413.2 83.7C413.2 94.3 418.9 100.8 428.3 100.8C435.6 100.8 441.2 97.2 442.6 89H436.1C435.1 93.2 432.4 95.3 428.5 95.3C423 95.3 419.9 91.1 419.9 83.7C419.9 76.2 422.8 72 428.3 72C432.1 72 435.1 74.1 435.9 78.7ZM477.7 89.3H470.9C469.8 93.4 466.8 95.3 462.7 95.3C457.3 95.3 454.2 91.6 453.8 84.9H477.5V83.3C477.5 72.9 471.8 66.5 462.4 66.5C453 66.5 447.2 72.6 447.2 83.7C447.2 94.4 453 100.8 462.7 100.8C470.3 100.8 476 96.9 477.7 89.3ZM462.4 71.9C467 71.9 469.9 74.9 470.7 80.5H454C454.8 74.9 457.6 71.9 462.4 71.9Z%22/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 -2.5 347.7 246%22 fill=%22%23000%22%3E%3Cpath transform=%22translate(123.85 0) scale(1)%22 d=%22M0 0H30V23.8A6.2 6.2 0 0 1 23.8 30H0Z M76.2 70H100V100H70V76.2A6.2 6.2 0 0 1 76.2 70Z M70 0H100V30H84A19 19 0 0 0 65 49V65H49A19 19 0 0 0 30 84V100H0V70H17.6A17.4 17.4 0 0 0 35 52.6V35H52.6A17.4 17.4 0 0 0 70 17.6Z%22/%3E%3Cpath transform=%22translate(-17.65 130)%22 d=%22M166.6 41.7V20H150.2V25.3H160C159.6 33.3 155 36.7 149.3 36.7C141.6 36.7 137 30.8 137 20.9C137 11 141.5 5 149.1 5C154.1 5 158 7.6 159.5 12.4H166.6C164.7 3.7 157.6 -0.8 149.3 -0.8C137.3 -0.8 130 7.5 130 20.9C130 34.3 137.3 42.5 148.7 42.5C154 42.5 158.5 40.3 161.1 35.8L161.6 41.7ZM174.2 41.7H180.8V-2.5H174.2ZM188.7 5H195.3V-2.5H188.7ZM188.7 41.7H195.3V9H188.7ZM203.2 41.7H209.7V22.5C209.7 18 212.7 13.6 217.6 13.6C222 13.6 224.1 16.5 224.1 21.2V41.7H230.6V19.9C230.6 12.1 226.4 8.1 219.6 8.1C215.4 8.1 211.9 9.9 209.7 13.4V9H203.2ZM239.4 31.9C239.4 39 242.4 42.5 248.8 42.5C250.6 42.5 252.2 42.2 252.9 41.9V37.1H251.6C247 37.1 246 35.3 246 31.6V14.1H253V9H246V1.5H239.4V9H235V14.1H239.4Z%22/%3E%3Cpath transform=%22translate(-130 130)%22 d=%22M130 100H136.9L136.7 66.4L139.6 75.1L149.8 100H154.7L164.8 75.2L167.8 66.2L167.6 100H174.5V58.3H165.5L153.8 87.2L152.4 91.6L151 87.2L139.3 58.3H130ZM189.1 78C189.7 74.3 192 72 196.2 72C201.3 72 203.5 74.6 203.5 79.4V80.1C197.6 80.1 193.2 80.5 188.8 82C183.9 83.6 181.5 86.9 181.5 91.4C181.5 97.7 186 100.8 192.6 100.8C196.5 100.8 200.8 99.1 203.5 95.2C203.6 97.1 203.8 98.8 204.3 100H211.1C210.4 98.2 210 96 210 92V79.3C210 71.7 205.6 66.5 196.7 66.5C188.6 66.5 183.6 70.8 182.6 78ZM188.1 91.2C188.1 87.4 190.9 84.7 203.5 84.6V86C203.5 91.3 199.3 95.6 193.8 95.6C190.4 95.6 188.1 93.9 188.1 91.2ZM218.2 100H224.8V82.2C224.8 76.5 227.5 72.7 233.7 72.7C235.1 72.7 236.2 72.8 237.2 73.1V67.3C236.6 66.8 235.4 66.5 234.1 66.5C230.3 66.5 226.9 68.3 224.8 72.2V67.3H218.2ZM241.7 100H248.3V83.7L261.8 100H270L255 81.9L269.1 67.3H261.2L248.3 81.2V55.9H241.7ZM303.7 89.3H296.9C295.7 93.4 292.8 95.3 288.6 95.3C283.3 95.3 280.2 91.6 279.8 84.9H303.5V83.3C303.5 72.9 297.8 66.5 288.3 66.5C279 66.5 273.1 72.6 273.1 83.7C273.1 94.4 279 100.8 288.6 100.8C296.3 100.8 301.9 96.9 303.7 89.3ZM288.3 71.9C293 71.9 295.9 74.9 296.7 80.5H280C280.8 74.9 283.6 71.9 288.3 71.9ZM310.9 90.3C310.9 97.3 313.9 100.8 320.3 100.8C322.1 100.8 323.6 100.6 324.4 100.2V95.4H323.1C318.5 95.4 317.4 93.6 317.4 89.9V72.4H324.5V67.3H317.4V59.8H310.9V67.3H306.5V72.4H310.9ZM335.9 113.5V96.3C338 99.3 341.1 100.8 344.8 100.8C353.3 100.8 358.7 94.7 358.7 83.6C358.7 72.9 353.5 66.5 344.8 66.5C341.1 66.5 338 68.2 335.9 71.3V67.3H329.4V113.5ZM344 72C349.1 72 352 76.2 352 83.6C352 91.1 349.2 95.3 344 95.3C338.9 95.3 335.9 91.1 335.9 83.6C335.9 76.1 338.8 72 344 72ZM365 100H371.6V55.9H365ZM385.7 78C386.3 74.3 388.6 72 392.8 72C397.8 72 400 74.6 400 79.4V80.1C394.2 80.1 389.7 80.5 385.4 82C380.5 83.6 378 86.9 378 91.4C378 97.7 382.6 100.8 389.2 100.8C393.1 100.8 397.3 99.1 400.1 95.2C400.2 97.1 400.3 98.8 400.8 100H407.7C407 98.2 406.6 96 406.6 92V79.3C406.6 71.7 402.2 66.5 393.3 66.5C385.1 66.5 380.2 70.8 379.1 78ZM384.7 91.2C384.7 87.4 387.5 84.7 400 84.6V86C400 91.3 395.9 95.6 390.4 95.6C386.9 95.6 384.7 93.9 384.7 91.2ZM442.4 78.7C441.3 70.6 435.6 66.5 428.3 66.5C419 66.5 413.2 72.6 413.2 83.7C413.2 94.3 418.9 100.8 428.3 100.8C435.6 100.8 441.2 97.2 442.6 89H436.1C435.1 93.2 432.4 95.3 428.5 95.3C423 95.3 419.9 91.1 419.9 83.7C419.9 76.2 422.8 72 428.3 72C432.1 72 435.1 74.1 435.9 78.7ZM477.7 89.3H470.9C469.8 93.4 466.8 95.3 462.7 95.3C457.3 95.3 454.2 91.6 453.8 84.9H477.5V83.3C477.5 72.9 471.8 66.5 462.4 66.5C453 66.5 447.2 72.6 447.2 83.7C447.2 94.4 453 100.8 462.7 100.8C470.3 100.8 476 96.9 477.7 89.3ZM462.4 71.9C467 71.9 469.9 74.9 470.7 80.5H454C454.8 74.9 457.6 71.9 462.4 71.9Z%22/%3E%3C/svg%3E") center / contain no-repeat;}
.gl-logo-symbol{display:block;flex:none;height:var(--logo-h,32px);width:auto;aspect-ratio:100 / 100;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22 fill=%22%23000%22%3E%3Cpath transform=%22translate(0 0) scale(1)%22 d=%22M0 0H30V23.8A6.2 6.2 0 0 1 23.8 30H0Z M76.2 70H100V100H70V76.2A6.2 6.2 0 0 1 76.2 70Z M70 0H100V30H84A19 19 0 0 0 65 49V65H49A19 19 0 0 0 30 84V100H0V70H17.6A17.4 17.4 0 0 0 35 52.6V35H52.6A17.4 17.4 0 0 0 70 17.6Z%22/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22 fill=%22%23000%22%3E%3Cpath transform=%22translate(0 0) scale(1)%22 d=%22M0 0H30V23.8A6.2 6.2 0 0 1 23.8 30H0Z M76.2 70H100V100H70V76.2A6.2 6.2 0 0 1 76.2 70Z M70 0H100V30H84A19 19 0 0 0 65 49V65H49A19 19 0 0 0 30 84V100H0V70H17.6A17.4 17.4 0 0 0 35 52.6V35H52.6A17.4 17.4 0 0 0 70 17.6Z%22/%3E%3C/svg%3E") center / contain no-repeat;}
.gl-logo-symbol--pixel{display:block;flex:none;height:var(--logo-h,32px);width:auto;aspect-ratio:16 / 16;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 16 16%22 fill=%22%23000%22%3E%3Cpath shape-rendering=%22crispEdges%22 d=%22M0 0H5V5H0Z M11 11H16V16H11Z M11 0H16V5H11Z M0 11H5V16H0Z M6 6H10V10H6Z M9 4H11V6H9Z M5 10H7V12H5Z%22/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 16 16%22 fill=%22%23000%22%3E%3Cpath shape-rendering=%22crispEdges%22 d=%22M0 0H5V5H0Z M11 11H16V16H11Z M11 0H16V5H11Z M0 11H5V16H0Z M6 6H10V10H6Z M9 4H11V6H9Z M5 10H7V12H5Z%22/%3E%3C/svg%3E") center / contain no-repeat;}
.gl-logo--sm { --logo-h: 24px; }
.gl-logo-zone { display: inline-flex; padding: calc(var(--logo-h, 32px) * 0.72); }  /* zone de protection : 2 x la hauteur des capitales */
/* Ancien wordmark : les écrans existants gardent leur balisage, ils affichent maintenant le vrai logo. */
.gl-wordmark { display: block; align-self: flex-start; justify-self: start; --logo-h: 30px; height: var(--logo-h); width: auto; aspect-ratio: 477.7 / 116; font-size: 0; line-height: 0; color: var(--text-primary); background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 -2.5 477.7 116%22 fill=%22%23000%22%3E%3Cpath transform=%22translate(0 0) scale(1)%22 d=%22M0 0H30V23.8A6.2 6.2 0 0 1 23.8 30H0Z M76.2 70H100V100H70V76.2A6.2 6.2 0 0 1 76.2 70Z M70 0H100V30H84A19 19 0 0 0 65 49V65H49A19 19 0 0 0 30 84V100H0V70H17.6A17.4 17.4 0 0 0 35 52.6V35H52.6A17.4 17.4 0 0 0 70 17.6Z%22/%3E%3Cg transform=%22translate(0 0)%22%3E%3Cpath d=%22M166.6 41.7V20H150.2V25.3H160C159.6 33.3 155 36.7 149.3 36.7C141.6 36.7 137 30.8 137 20.9C137 11 141.5 5 149.1 5C154.1 5 158 7.6 159.5 12.4H166.6C164.7 3.7 157.6 -0.8 149.3 -0.8C137.3 -0.8 130 7.5 130 20.9C130 34.3 137.3 42.5 148.7 42.5C154 42.5 158.5 40.3 161.1 35.8L161.6 41.7ZM174.2 41.7H180.8V-2.5H174.2ZM188.7 5H195.3V-2.5H188.7ZM188.7 41.7H195.3V9H188.7ZM203.2 41.7H209.7V22.5C209.7 18 212.7 13.6 217.6 13.6C222 13.6 224.1 16.5 224.1 21.2V41.7H230.6V19.9C230.6 12.1 226.4 8.1 219.6 8.1C215.4 8.1 211.9 9.9 209.7 13.4V9H203.2ZM239.4 31.9C239.4 39 242.4 42.5 248.8 42.5C250.6 42.5 252.2 42.2 252.9 41.9V37.1H251.6C247 37.1 246 35.3 246 31.6V14.1H253V9H246V1.5H239.4V9H235V14.1H239.4Z%22/%3E%3Cpath d=%22M130 100H136.9L136.7 66.4L139.6 75.1L149.8 100H154.7L164.8 75.2L167.8 66.2L167.6 100H174.5V58.3H165.5L153.8 87.2L152.4 91.6L151 87.2L139.3 58.3H130ZM189.1 78C189.7 74.3 192 72 196.2 72C201.3 72 203.5 74.6 203.5 79.4V80.1C197.6 80.1 193.2 80.5 188.8 82C183.9 83.6 181.5 86.9 181.5 91.4C181.5 97.7 186 100.8 192.6 100.8C196.5 100.8 200.8 99.1 203.5 95.2C203.6 97.1 203.8 98.8 204.3 100H211.1C210.4 98.2 210 96 210 92V79.3C210 71.7 205.6 66.5 196.7 66.5C188.6 66.5 183.6 70.8 182.6 78ZM188.1 91.2C188.1 87.4 190.9 84.7 203.5 84.6V86C203.5 91.3 199.3 95.6 193.8 95.6C190.4 95.6 188.1 93.9 188.1 91.2ZM218.2 100H224.8V82.2C224.8 76.5 227.5 72.7 233.7 72.7C235.1 72.7 236.2 72.8 237.2 73.1V67.3C236.6 66.8 235.4 66.5 234.1 66.5C230.3 66.5 226.9 68.3 224.8 72.2V67.3H218.2ZM241.7 100H248.3V83.7L261.8 100H270L255 81.9L269.1 67.3H261.2L248.3 81.2V55.9H241.7ZM303.7 89.3H296.9C295.7 93.4 292.8 95.3 288.6 95.3C283.3 95.3 280.2 91.6 279.8 84.9H303.5V83.3C303.5 72.9 297.8 66.5 288.3 66.5C279 66.5 273.1 72.6 273.1 83.7C273.1 94.4 279 100.8 288.6 100.8C296.3 100.8 301.9 96.9 303.7 89.3ZM288.3 71.9C293 71.9 295.9 74.9 296.7 80.5H280C280.8 74.9 283.6 71.9 288.3 71.9ZM310.9 90.3C310.9 97.3 313.9 100.8 320.3 100.8C322.1 100.8 323.6 100.6 324.4 100.2V95.4H323.1C318.5 95.4 317.4 93.6 317.4 89.9V72.4H324.5V67.3H317.4V59.8H310.9V67.3H306.5V72.4H310.9ZM335.9 113.5V96.3C338 99.3 341.1 100.8 344.8 100.8C353.3 100.8 358.7 94.7 358.7 83.6C358.7 72.9 353.5 66.5 344.8 66.5C341.1 66.5 338 68.2 335.9 71.3V67.3H329.4V113.5ZM344 72C349.1 72 352 76.2 352 83.6C352 91.1 349.2 95.3 344 95.3C338.9 95.3 335.9 91.1 335.9 83.6C335.9 76.1 338.8 72 344 72ZM365 100H371.6V55.9H365ZM385.7 78C386.3 74.3 388.6 72 392.8 72C397.8 72 400 74.6 400 79.4V80.1C394.2 80.1 389.7 80.5 385.4 82C380.5 83.6 378 86.9 378 91.4C378 97.7 382.6 100.8 389.2 100.8C393.1 100.8 397.3 99.1 400.1 95.2C400.2 97.1 400.3 98.8 400.8 100H407.7C407 98.2 406.6 96 406.6 92V79.3C406.6 71.7 402.2 66.5 393.3 66.5C385.1 66.5 380.2 70.8 379.1 78ZM384.7 91.2C384.7 87.4 387.5 84.7 400 84.6V86C400 91.3 395.9 95.6 390.4 95.6C386.9 95.6 384.7 93.9 384.7 91.2ZM442.4 78.7C441.3 70.6 435.6 66.5 428.3 66.5C419 66.5 413.2 72.6 413.2 83.7C413.2 94.3 418.9 100.8 428.3 100.8C435.6 100.8 441.2 97.2 442.6 89H436.1C435.1 93.2 432.4 95.3 428.5 95.3C423 95.3 419.9 91.1 419.9 83.7C419.9 76.2 422.8 72 428.3 72C432.1 72 435.1 74.1 435.9 78.7ZM477.7 89.3H470.9C469.8 93.4 466.8 95.3 462.7 95.3C457.3 95.3 454.2 91.6 453.8 84.9H477.5V83.3C477.5 72.9 471.8 66.5 462.4 66.5C453 66.5 447.2 72.6 447.2 83.7C447.2 94.4 453 100.8 462.7 100.8C470.3 100.8 476 96.9 477.7 89.3ZM462.4 71.9C467 71.9 469.9 74.9 470.7 80.5H454C454.8 74.9 457.6 71.9 462.4 71.9Z%22/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 -2.5 477.7 116%22 fill=%22%23000%22%3E%3Cpath transform=%22translate(0 0) scale(1)%22 d=%22M0 0H30V23.8A6.2 6.2 0 0 1 23.8 30H0Z M76.2 70H100V100H70V76.2A6.2 6.2 0 0 1 76.2 70Z M70 0H100V30H84A19 19 0 0 0 65 49V65H49A19 19 0 0 0 30 84V100H0V70H17.6A17.4 17.4 0 0 0 35 52.6V35H52.6A17.4 17.4 0 0 0 70 17.6Z%22/%3E%3Cg transform=%22translate(0 0)%22%3E%3Cpath d=%22M166.6 41.7V20H150.2V25.3H160C159.6 33.3 155 36.7 149.3 36.7C141.6 36.7 137 30.8 137 20.9C137 11 141.5 5 149.1 5C154.1 5 158 7.6 159.5 12.4H166.6C164.7 3.7 157.6 -0.8 149.3 -0.8C137.3 -0.8 130 7.5 130 20.9C130 34.3 137.3 42.5 148.7 42.5C154 42.5 158.5 40.3 161.1 35.8L161.6 41.7ZM174.2 41.7H180.8V-2.5H174.2ZM188.7 5H195.3V-2.5H188.7ZM188.7 41.7H195.3V9H188.7ZM203.2 41.7H209.7V22.5C209.7 18 212.7 13.6 217.6 13.6C222 13.6 224.1 16.5 224.1 21.2V41.7H230.6V19.9C230.6 12.1 226.4 8.1 219.6 8.1C215.4 8.1 211.9 9.9 209.7 13.4V9H203.2ZM239.4 31.9C239.4 39 242.4 42.5 248.8 42.5C250.6 42.5 252.2 42.2 252.9 41.9V37.1H251.6C247 37.1 246 35.3 246 31.6V14.1H253V9H246V1.5H239.4V9H235V14.1H239.4Z%22/%3E%3Cpath d=%22M130 100H136.9L136.7 66.4L139.6 75.1L149.8 100H154.7L164.8 75.2L167.8 66.2L167.6 100H174.5V58.3H165.5L153.8 87.2L152.4 91.6L151 87.2L139.3 58.3H130ZM189.1 78C189.7 74.3 192 72 196.2 72C201.3 72 203.5 74.6 203.5 79.4V80.1C197.6 80.1 193.2 80.5 188.8 82C183.9 83.6 181.5 86.9 181.5 91.4C181.5 97.7 186 100.8 192.6 100.8C196.5 100.8 200.8 99.1 203.5 95.2C203.6 97.1 203.8 98.8 204.3 100H211.1C210.4 98.2 210 96 210 92V79.3C210 71.7 205.6 66.5 196.7 66.5C188.6 66.5 183.6 70.8 182.6 78ZM188.1 91.2C188.1 87.4 190.9 84.7 203.5 84.6V86C203.5 91.3 199.3 95.6 193.8 95.6C190.4 95.6 188.1 93.9 188.1 91.2ZM218.2 100H224.8V82.2C224.8 76.5 227.5 72.7 233.7 72.7C235.1 72.7 236.2 72.8 237.2 73.1V67.3C236.6 66.8 235.4 66.5 234.1 66.5C230.3 66.5 226.9 68.3 224.8 72.2V67.3H218.2ZM241.7 100H248.3V83.7L261.8 100H270L255 81.9L269.1 67.3H261.2L248.3 81.2V55.9H241.7ZM303.7 89.3H296.9C295.7 93.4 292.8 95.3 288.6 95.3C283.3 95.3 280.2 91.6 279.8 84.9H303.5V83.3C303.5 72.9 297.8 66.5 288.3 66.5C279 66.5 273.1 72.6 273.1 83.7C273.1 94.4 279 100.8 288.6 100.8C296.3 100.8 301.9 96.9 303.7 89.3ZM288.3 71.9C293 71.9 295.9 74.9 296.7 80.5H280C280.8 74.9 283.6 71.9 288.3 71.9ZM310.9 90.3C310.9 97.3 313.9 100.8 320.3 100.8C322.1 100.8 323.6 100.6 324.4 100.2V95.4H323.1C318.5 95.4 317.4 93.6 317.4 89.9V72.4H324.5V67.3H317.4V59.8H310.9V67.3H306.5V72.4H310.9ZM335.9 113.5V96.3C338 99.3 341.1 100.8 344.8 100.8C353.3 100.8 358.7 94.7 358.7 83.6C358.7 72.9 353.5 66.5 344.8 66.5C341.1 66.5 338 68.2 335.9 71.3V67.3H329.4V113.5ZM344 72C349.1 72 352 76.2 352 83.6C352 91.1 349.2 95.3 344 95.3C338.9 95.3 335.9 91.1 335.9 83.6C335.9 76.1 338.8 72 344 72ZM365 100H371.6V55.9H365ZM385.7 78C386.3 74.3 388.6 72 392.8 72C397.8 72 400 74.6 400 79.4V80.1C394.2 80.1 389.7 80.5 385.4 82C380.5 83.6 378 86.9 378 91.4C378 97.7 382.6 100.8 389.2 100.8C393.1 100.8 397.3 99.1 400.1 95.2C400.2 97.1 400.3 98.8 400.8 100H407.7C407 98.2 406.6 96 406.6 92V79.3C406.6 71.7 402.2 66.5 393.3 66.5C385.1 66.5 380.2 70.8 379.1 78ZM384.7 91.2C384.7 87.4 387.5 84.7 400 84.6V86C400 91.3 395.9 95.6 390.4 95.6C386.9 95.6 384.7 93.9 384.7 91.2ZM442.4 78.7C441.3 70.6 435.6 66.5 428.3 66.5C419 66.5 413.2 72.6 413.2 83.7C413.2 94.3 418.9 100.8 428.3 100.8C435.6 100.8 441.2 97.2 442.6 89H436.1C435.1 93.2 432.4 95.3 428.5 95.3C423 95.3 419.9 91.1 419.9 83.7C419.9 76.2 422.8 72 428.3 72C432.1 72 435.1 74.1 435.9 78.7ZM477.7 89.3H470.9C469.8 93.4 466.8 95.3 462.7 95.3C457.3 95.3 454.2 91.6 453.8 84.9H477.5V83.3C477.5 72.9 471.8 66.5 462.4 66.5C453 66.5 447.2 72.6 447.2 83.7C447.2 94.4 453 100.8 462.7 100.8C470.3 100.8 476 96.9 477.7 89.3ZM462.4 71.9C467 71.9 469.9 74.9 470.7 80.5H454C454.8 74.9 457.6 71.9 462.4 71.9Z%22/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat; }
.gl-wordmark-mark { display: none; }
.gl-section { padding: 96px 40px; }
.gl-section--tint { background: var(--surface-0); }
.gl-section--dark { background: var(--surface-0); color: var(--text-primary); }
.gl-container { width: 100%; max-width: 1280px; margin: 0 auto; }
.gl-container--narrow { max-width: 768px; }
.gl-hero { padding: 96px 40px 80px; }
.gl-split { display: flex; flex-wrap: wrap; gap: 48px; align-items: center; }
.gl-split > * { flex: 1 1 420px; min-width: 0; }
.gl-logos { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; color: var(--text-quaternary); font-weight: 500; }
.gl-footer { padding: 48px 40px; box-shadow: inset 0 1px 0 var(--track-subtle); background: var(--surface-page); font-size: 12px; line-height: 16px; color: var(--text-quaternary); }
.gl-footer-cols { display: grid; grid-template-columns: 2fr repeat(3, 1fr); gap: 24px; }
.gl-footer-col { display: flex; flex-direction: column; gap: 10px; font-size: 14px; line-height: 20px; color: var(--text-secondary); }
.gl-footer-col strong { color: var(--text-primary); font-size: 14px; font-weight: 500; }

/* ---------- Auth ---------- */
.gl-auth { min-height: 720px; display: flex; align-items: center; justify-content: center; padding: 24px; background: var(--surface-page); font-size: 14px; line-height: 20px; }
.gl-auth-frame { width: 100%; max-width: 1180px; display: grid; grid-template-columns: 1fr 1.25fr; background: var(--surface-0); border-radius: var(--radius-2xl); box-shadow: var(--shadow-glass-card); overflow: hidden; min-height: 660px; }
.gl-auth-form { display: flex; align-items: center; justify-content: center; padding: 48px; }
.gl-auth-col { width: 100%; max-width: 320px; display: flex; flex-direction: column; gap: 16px; }
.gl-auth-art { background: var(--surface-1); position: relative; display: flex; align-items: center; justify-content: center; padding: 48px; box-shadow: inset 1px 0 0 var(--border-solid); }
.gl-divider { display: flex; align-items: center; gap: 12px; color: var(--text-quaternary); font-size: 12px; }
.gl-divider::before, .gl-divider::after { content: ""; height: 1px; background: var(--track-subtle); flex: 1; }


/* ---------- Compléments v5.1 (remontés par la passe de conformité) ---------- */
:where(.gl) :where(strong, b) { font-weight: 500; }
:where(.gl) fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
:where(.gl) :where(button.gl-chip, button.gl-choice, button.gl-tile) { border: 0; text-align: left; font: inherit; }
.gl-grid--auto { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.gl-site-links a.is-active, .gl-site-links a[aria-current="page"] { color: var(--text-primary); font-weight: 500; }
.gl-vr { width: 1px; align-self: stretch; flex: none; background: var(--border-solid); }
.gl-tablewrap--flush, .gl-card > .gl-tablewrap, .gl-card-body > .gl-tablewrap { border-radius: 0; box-shadow: none; background: transparent; }
.gl-card-body--list { gap: 0; padding: 6px 20px; }
.gl-switch[disabled] { opacity: 0.6; cursor: not-allowed; }
.gl-code.gl-text-2xs { font-size: 11px; line-height: 14px; }
.gl-code.gl-small { font-size: 12px; line-height: 16px; }
/* Sur un fond déjà gris (carte sélectionnée, carte grisée), tuile et encadré montent d'un cran */
:is(.gl-choice.is-selected, .gl-card--muted, .gl-alert, .gl-segment) .gl-tile { background: var(--surface-3); }
.gl-card--muted .gl-alert { background: var(--surface-3); }
.gl-listing-cover .gl-chip { background: var(--surface-3); color: var(--text-primary); }
.gl-tile--xl { width: 72px; height: 72px; border-radius: var(--radius-xl); font-size: 24px; line-height: 32px; font-weight: 500; }
.gl-step-n--sm { width: 20px; height: 20px; font-size: 11px; }
.gl-chip-x { display: inline-grid; place-items: center; width: 16px; height: 16px; margin-right: -2px; padding: 0; border: 0; border-radius: var(--radius-sm); background: transparent; color: var(--text-tertiary); }
.gl-chip-x:hover { background: var(--bg-active); color: var(--text-primary); }
.gl-placeholder { display: grid; place-items: center; min-height: 64px; padding: 16px; border: 1px dashed var(--border-strong); border-radius: var(--radius-lg); color: var(--text-quaternary); font-size: 12px; line-height: 16px; text-align: center; }

/* ---------- Mouvement ---------- */
@keyframes gl-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes gl-dialog-in { from { opacity: 0; transform: translateY(8px) scale(0.98); } to { opacity: 1; transform: none; } }
@keyframes gl-reveal { from { opacity: 0; transform: scale(0.95); } 50% { opacity: 0.6; } to { opacity: 1; transform: scale(1); } }
@keyframes gl-word-in { from { opacity: 0; filter: blur(6px); transform: translateY(0.28em); } to { opacity: 1; filter: none; transform: none; } }
@keyframes gl-shimmer-text { from { background-position: 200% 0; } to { background-position: -200% 0; } }
@keyframes gl-shimmer { from { transform: translateX(-100%); } to { transform: translateX(100%); } }
@keyframes gl-pulse { 50% { opacity: 0.5; } }
@keyframes gl-spin { to { transform: rotate(360deg); } }
@keyframes gl-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.gl-fade-in { animation: gl-fade var(--fade-duration) var(--ease-out) both; }
.gl-reveal { animation: gl-reveal var(--reveal-duration) var(--reveal-easing) both; }
.gl-blur-in { animation: gl-word-in 900ms var(--reveal-easing) both; animation-delay: calc(var(--i, 0) * 80ms); }
.gl-spin { animation: gl-spin 1s linear infinite; }
.gl-marquee { display: flex; width: max-content; animation: gl-marquee 40s linear infinite; }
/* Entrée réservée au héros (rare) : le titre arrive du flou */
.gl-hero .gl-display, .gl-hero h1 { animation: gl-word-in 900ms var(--reveal-easing) both; }
@media (prefers-reduced-motion: reduce) {
  .gl *, .gl *::before, .gl *::after { animation: none !important; transition: none !important; }
}

/* ---------- Points de rupture : sm 640, md 768, lg 1024 ---------- */
@media (max-width: 1023px) {
  .gl-grid--3, .gl-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gl-auth-frame { grid-template-columns: 1fr; }
  .gl-auth-art { display: none; }
  .gl-footer-cols { grid-template-columns: repeat(2, 1fr); }
  .gl-sb { flex-basis: 100%; width: 100%; box-shadow: inset 0 -1px 0 var(--border-solid); }
  .gl-page, .gl-topbar, .gl-section, .gl-hero, .gl-site-nav, .gl-footer { padding-left: 24px; padding-right: 24px; }
  .gl-display { font-size: 56px; }
}
@media (max-width: 639px) {
  .gl-grid--2, .gl-grid--3, .gl-grid--4 { grid-template-columns: 1fr; }
  .gl-page, .gl-topbar, .gl-section, .gl-hero, .gl-site-nav, .gl-footer { padding-left: 16px; padding-right: 16px; }
  .gl-display { font-size: 40px; }
  .gl-kv { grid-template-columns: 1fr; }
  /* Champs à 16 px sur mobile : iOS ne zoome pas au focus */
  .gl-input, .gl-select, .gl-textarea, .gl-input-group input { font-size: 16px; }
}

/* ---------- Respiration (24/10/2026, retour d'Enzo) : plus d'air entre les titres, cartes de choix plus petites et moins tassées ---------- */
.gl-cell-sub { margin-top: 2px; }
.gl-card-head { padding: 20px 20px 18px; gap: 16px; }
.gl-card-head :is(.gl-h1, .gl-h2, .gl-h3) + * { margin-top: 12px !important; }
.gl-card-body { gap: 20px; }
.gl-table-title + * { margin-top: 0; }
.gl-choice { padding: 14px 16px !important; gap: 12px; align-items: center; }
.gl-choice .gl-tile { width: 28px; height: 28px; border-radius: var(--radius-md); }
.gl-choice .gl-tile .gl-ico { width: 16px; height: 16px; }
.gl-choice .gl-radio, .gl-choice .gl-check { margin-top: 0 !important; }
.gl-choice .gl-strong + .gl-small, .gl-choice .gl-strong + .gl-muted { display: block; margin-top: 4px; }
.gl-choice .gl-h3 { font-size: 14px; line-height: 20px; }
.gl-choice .gl-h3 + .gl-hint { margin-top: 4px; }
.gl-grid:has(> .gl-choice) { gap: 12px !important; }
fieldset:has(> .gl-choice) { margin-bottom: 16px !important; }

/* ---------- Boutons compacts (24/10/2026, commentaire d'Enzo : des boutons plus compacts, comme dans le design system de Wellapp) ----------
   Dans une barre de navigation ou une barre du haut, tout bouton prend la taille sm (28 px). Le gabarit lg (40 px) n'est plus utilisé dans les écrans. */
.gl-site-nav .gl-btn:not(.gl-btn--icon):not(.gl-btn--xs), .gl-topbar .gl-btn:not(.gl-btn--icon):not(.gl-btn--xs) { height: 28px; padding: 4px 8px; border-radius: var(--radius-lg); }
