/* Manrope — auto-hébergé sur le domaine : aucun appel à fonts.googleapis.com
   ni fonts.gstatic.com, donc aucune adresse IP transmise à Google avant consentement.
   Les 5 fichiers sont déposés dans assets/fonts/ (manrope-400 à 800, woff2, ~14 ko
   chacun), avec LICENSE-Manrope.txt : la licence SIL Open Font impose que la notice
   accompagne les fichiers.
   Chemins : relatifs ici, comme les preload des gabarits — les deux doivent partager
   la même racine, sinon le fichier est téléchargé deux fois. En production, passer les
   deux en absolu (/assets/fonts/…) : un preload relatif sur une page en sous-dossier
   chercherait la police au mauvais endroit. Bloc prêt dans « Site — Production », section 02.
   Preload : la graisse la plus présente dans les 900 premiers pixels, page par page —
   400 + 800 sur les pages de vente, 400 + 700 dans l'application.

   Deux sous-ensembles par graisse, distingués par unicode-range :
   « latin » (218 glyphes, ~14 ko) et « latin-ext » (~8 ko), ajouté au lot L1.
   Sans latin-ext, le polonais perd ses ą ć ę ł ń ś ź ż — et le tchèque, le
   hongrois, le roumain, le turc leurs propres signes. Le navigateur ne
   télécharge le fichier -ext que si un caractère de la plage apparaît sur la
   page : les pages anglaises et françaises ne paient rien.
   Le preload ne porte que sur le sous-ensemble latin : précharger latin-ext
   annulerait l'économie. Japonais, coréen et chinois simplifié ne sont pas
   couverts par Manrope — familles distinctes, chargées par langue, quand ces
   langues s'ouvriront (cf. « Site — Production », section 02). */
@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url("assets/fonts/manrope-400.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url("assets/fonts/manrope-500.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url("assets/fonts/manrope-600.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url("assets/fonts/manrope-700.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Manrope;font-style:normal;font-weight:800;font-display:swap;src:url("assets/fonts/manrope-800.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url("assets/fonts/manrope-400-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url("assets/fonts/manrope-500-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url("assets/fonts/manrope-600-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url("assets/fonts/manrope-700-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Manrope;font-style:normal;font-weight:800;font-display:swap;src:url("assets/fonts/manrope-800-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* v2 (17/09/2026) — corrections mesurées
   clair  : --text-3 #9AA0BF -> #656B8D · --icon-3 #9AA0BF -> #767C9B · --cyan-text #0C7F95 -> #0A6F80
            (repris dans les gabarits au lot G1, v6 : plus aucune de ces valeurs n'est écrite en dur)
   sombre : --primary #2F2BEA -> #5753F5 · --text-3 #828AB4 -> #9098C4 · voiles translucides pris en charge
   Tout conteneur data-theme="light" reste clair en thème sombre (aperçu « Clair » des Préférences). */
/* v5 (17/09/2026) — graphiques : variantes texte --chart-1-text à --chart-4-text (étiquettes de fin de courbe, 4,5:1 minimum).
*/
/* v4 (17/09/2026) — survols : jetons --primary-hover, --accent-border-hover, --danger, --danger-strong, --danger-strong-hover, --success ajoutés ; les attributs style-hover doivent utiliser les variables.
*/
/* v3 (17/09/2026) — thème sombre neutre (gris/noir) à la place du bleu marine :
   fond #151515 · cartes #1F1F1E · menus et modales #262625 · survol #2C2C2B · sélection #333333 · contour des champs (relevé au lot N1, cf. v7)
   texte #EDECE9 · secondaire #B7B6AE · tertiaire #A09E97 · l'indigo reste réservé aux boutons, liens, focus et graphiques. */
/* v6 (18/09/2026) — lot G1 : les 17 gabarits applicatifs n'écrivent plus aucune couleur de thème en dur.
   La couche de compatibilité (90 règles html[data-theme="dark"] [style*="…"]) est retirée : elle dépendait
   de la sérialisation du style par le navigateur et ne passait pas en rendu serveur.
   Jetons ajoutés pour les teintes qui vivaient hors système :
     --on-solid (texte et icônes sur aplat) · --violet · --cyan · --warning (aplats)
     --surface-accent (carte mise en avant) · --code-text · --overlay (voile de modale)
     --shadow-rgb · --primary-rgb · --focus-rgb (composantes des couleurs translucides)
   Un conteneur [data-theme="dark"] ou [data-force-dark] redéfinit toute la palette : les aperçus de thème
   (Réglages › Apparence, Design system) n'ont plus besoin d'écrire les deux palettes à la main. */
/* v7 (20/09/2026) — lot N1 : --border-control porte la limite d'un composant — champ, case à
   cocher, interrupteur, bouton. C'est le seul indicateur de cette limite : il doit donc tenir
   3:1 sur son fond (WCAG 1.4.11, contraste des éléments non textuels).
   clair  : #C6CCE0 -> #828AAE — l'ancienne valeur donnait 1,60:1 sur blanc, la nouvelle 3,39:1
            (3,14:1 sur --bg), et reste dans la famille de gris bleutés du thème.
   sombre : #72716D -> #7B7A76 — 3,84:1 sur --surface et 3,25:1 sur --surface-hover ; l'ancienne
            valeur passait sur les cartes (3,38:1) mais tombait à 2,86:1 sur le survol.
   --border (#E3E7F2 / #313130) ne change pas : séparations décoratives de cartes, aucune
   information de limite de composant. Un champ ne se borde jamais avec --border. */
/* iPand — jetons de thème. Source unique des couleurs clair/sombre.
   Posé sur <html data-theme="light|dark">. data-theme-pref garde le choix (light|dark|system). */

:root, [data-theme="light"] {
  --bg:#F4F6FB;
  --surface:#FFFFFF;
  --surface-raised:#FFFFFF;
  --surface-sunken:#FAFBFE;
  --border:#E3E7F2;
  --border-strong:#D6DBEC;
  --border-control:#828AAE;
  --text:#10124A;
  --text-2:#5B6285;
  --text-3:#656B8D;
  --ink:#10124A;
  --primary:#2F2BEA;
  --primary-soft:#EFF0FE;
  --primary-text:#2F2BEA;
  --info-soft:#E6F2FF;
  --info-text:#0A66C9;
  --cyan-soft:#E4F8FD;
  --cyan-text:#0A6F80;
  --violet-soft:#F1ECFF;
  --violet-text:#5B2FD6;
  --success-soft:#E7F6EE;
  --success-text:#0C7C3E;
  --warning-soft:#FDF4E3;
  --warning-text:#96660B;
  --danger-soft:#FDECEC;
  --danger-text:#B02529;
  --tile-bg:#FFFFFF;
  --tile-border:#E3E7F2;
  --skeleton:#E9EDF6;
  --code-bg:#10124A;
  --surface-hover:#EEF1F8;
  --primary-strong:#2F2BEA;
  --border-muted:#DDE2F1;
  --danger-surface:#FDF2F2;
  --warning-surface:#FFFCF5;
  --success-surface:#F7FCF9;
  --danger-tint:#FFFAFA;
  --coral-soft:#FFE8E4;
  --coral-text:#B0331F;
  --success-border:#CDEBDA;
  --warning-border:#F6E4C0;
  --danger-border:#F5C9CA;
  --violet-border:#E1D7FC;
  --info-border:#CFE5FC;
  --cyan-border:#CCEFF7;
  --primary-border:#DFE1FB;
  --scrollbar:#C6CCE0;
  --scrollbar-hover:#A7AED4;
  --icon-2:#5B6285;
  --icon-3:#767C9B;
  --icon-4:#C6CCE0;
  --link:#2F2BEA;
  --link-hover:#2621C4;
  --veil:rgba(244,246,251,.88);
  --veil-surface:rgba(255,255,255,.88);

  --primary-hover:#2621C4;
  --accent-border-hover:#C7CAF6;
  --danger:#E5484D;
  --danger-strong:#C93B40;
  --danger-strong-hover:#B02529;
  --success:#12A150;
  --overlay-tour:rgba(16,18,74,.55);
  --chart-1:#2F2BEA;
  --chart-2:#0A84FF;
  --chart-3:#B97F0C;
  --chart-4:#12A150;
  --chart-1-text:#2F2BEA;
  --chart-2-text:#0A66C9;
  --chart-3-text:#8A5D08;
  --chart-4-text:#0C7C3E;

  --on-solid:#FFFFFF;
  --violet:#7C4DFF;
  --cyan:#2ED8F2;
  --warning:#E8A317;
  --surface-accent:#F7F8FF;
  --code-text:#CDD3FF;
  --overlay:rgba(16,18,74,.45);
  --shadow-rgb:16,18,74;
  --primary-rgb:47,43,234;
  --focus-rgb:10,132,255;
  /* Barre de possession d'un terme : votre part, puis vos deux premiers concurrents. */
  --rival-1:#7C4DFF;
  --rival-2:#C7CAF6;
  --danger-rgb:229,72,77;

  /* Couleurs factuelles (drapeaux) : identiques en clair et en sombre, elles ne suivent pas le thème. */
  --flag-bleu:#0A2FA6;
  --flag-rouge:#E5484D;
  --flag-or:#E8A317;
  --flag-noir:#10124A;
  --flag-vert:#12A150;
  --flag-ciel:#0A84FF;
  --flag-blanc:#FFFFFF;
}

:root[data-theme="dark"],[data-theme="dark"]:not(:root){
  --bg:#151515;
  --surface:#1F1F1E;
  --surface-raised:#262625;
  --surface-sunken:#1A1A19;
  --border:#313130;
  --border-strong:#3E3E3C;
  --border-control:#7B7A76;
  --text:#EDECE9;
  --text-2:#B7B6AE;
  --text-3:#A09E97;
  --ink:#111111;
  --primary:#5753F5;
  --primary-soft:#333333;
  --primary-text:#A5A2FF;
  --info-soft:#243342;
  --info-text:#77BBFF;
  --cyan-soft:#213D40;
  --cyan-text:#5FD6EE;
  --violet-soft:#332D42;
  --violet-text:#B79BFF;
  --success-soft:#22392B;
  --success-text:#57D693;
  --warning-soft:#403722;
  --warning-text:#F0BC5B;
  --danger-soft:#402B2A;
  --danger-text:#FF8A8D;
  --tile-bg:#FFFFFF;
  --tile-border:#4F4F4C;
  --skeleton:#2A2A29;
  --code-bg:#111111;
  --surface-hover:#2C2C2B;
  --primary-strong:#4A4A48;
  --border-muted:#2A2A29;
  --danger-surface:#342626;
  --warning-surface:#342E21;
  --success-surface:#212F26;
  --danger-tint:#2E2423;
  --coral-soft:#432E28;
  --coral-text:#FF9A85;
  --success-border:#245539;
  --warning-border:#665228;
  --danger-border:#663738;
  --violet-border:#493D6A;
  --info-border:#294A6A;
  --cyan-border:#245E66;
  --primary-border:#3A3A39;
  --scrollbar:#4A4A48;
  --scrollbar-hover:#5E5D59;
  --icon-2:#B7B6AE;
  --icon-3:#8E8C86;
  --icon-4:#5E5D59;
  --link:#A5A2FF;
  --link-hover:#C4C2FF;
  --veil:rgba(21,21,21,.9);
  --veil-surface:rgba(31,31,30,.9);
  --overlay-tour:rgba(0,0,0,.65);
  --chart-1:#A5A2FF;
  --chart-2:#4DA6FF;
  --chart-3:#F0B43A;
  --chart-4:#57D693;
  --chart-1-text:#A5A2FF;
  --chart-2-text:#4DA6FF;
  --chart-3-text:#F0B43A;
  --chart-4-text:#57D693;

  --primary-hover:#4944E0;
  --accent-border-hover:#5E5D59;
  --danger:#F0676B;
  --danger-strong:#C4363B;
  --danger-strong-hover:#A93036;
  --success:#2FBF6E;

  --on-solid:#FFFFFF;
  --violet:#B79BFF;
  --cyan:#5FD6EE;
  --warning:#F0BC5B;
  --surface-accent:#262625;
  --code-text:#CDD3FF;
  --overlay:rgba(0,0,0,.62);
  --shadow-rgb:0,0,0;
  --primary-rgb:87,83,245;
  --focus-rgb:77,166,255;
  /* Barre de possession d'un terme : votre part, puis vos deux premiers concurrents. */
  --rival-1:#B79BFF;
  --rival-2:#5E5D59;
  --danger-rgb:240,103,107;

  /* Couleurs factuelles (drapeaux) : identiques en clair et en sombre, elles ne suivent pas le thème. */
  --flag-bleu:#0A2FA6;
  --flag-rouge:#E5484D;
  --flag-or:#E8A317;
  --flag-noir:#10124A;
  --flag-vert:#12A150;
  --flag-ciel:#0A84FF;
  --flag-blanc:#FFFFFF;
}

/* --- Éléments qui n'héritent pas de la couleur de texte ---
   Tout le reste est écrit avec les jetons dans les gabarits : plus aucune règle ne lit le style en ligne. */
:root[data-theme="dark"]{color-scheme:dark}
button,summary{color:inherit}
input,textarea,select{color:var(--text)}
input::placeholder,textarea::placeholder{color:var(--text-3)}
option{background:var(--surface);color:var(--text)}
html[data-theme="dark"] [data-ink-panel],[data-force-dark] [data-ink-panel]{border-right:1px solid var(--border)}

/* Ascenseurs : dessinés uniquement en sombre, le système s'en charge en clair. */
html[data-theme="dark"] *::-webkit-scrollbar{width:10px;height:10px}
html[data-theme="dark"] *::-webkit-scrollbar-track{background:transparent}
html[data-theme="dark"] *::-webkit-scrollbar-thumb{background:var(--scrollbar);border-radius:999px}
html[data-theme="dark"] *::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-hover)}

/* --- Comparaison côte à côte du design system : sombre forcé sur un sous-arbre --- */
[data-force-dark]{
  --bg:#151515;
  --surface:#1F1F1E;
  --surface-raised:#262625;
  --surface-sunken:#1A1A19;
  --border:#313130;
  --border-strong:#3E3E3C;
  --border-control:#7B7A76;
  --text:#EDECE9;
  --text-2:#B7B6AE;
  --text-3:#A09E97;
  --ink:#111111;
  --primary:#5753F5;
  --primary-soft:#333333;
  --primary-text:#A5A2FF;
  --info-soft:#243342;
  --info-text:#77BBFF;
  --cyan-soft:#213D40;
  --cyan-text:#5FD6EE;
  --violet-soft:#332D42;
  --violet-text:#B79BFF;
  --success-soft:#22392B;
  --success-text:#57D693;
  --warning-soft:#403722;
  --warning-text:#F0BC5B;
  --danger-soft:#402B2A;
  --danger-text:#FF8A8D;
  --tile-bg:#FFFFFF;
  --tile-border:#4F4F4C;
  --skeleton:#2A2A29;
  --code-bg:#111111;
  --surface-hover:#2C2C2B;
  --primary-strong:#4A4A48;
  --border-muted:#2A2A29;
  --danger-surface:#342626;
  --warning-surface:#342E21;
  --success-surface:#212F26;
  --danger-tint:#2E2423;
  --coral-soft:#432E28;
  --coral-text:#FF9A85;
  --success-border:#245539;
  --warning-border:#665228;
  --danger-border:#663738;
  --violet-border:#493D6A;
  --info-border:#294A6A;
  --cyan-border:#245E66;
  --primary-border:#3A3A39;
  --scrollbar:#4A4A48;
  --scrollbar-hover:#5E5D59;
  --icon-2:#B7B6AE;
  --icon-3:#8E8C86;
  --icon-4:#5E5D59;
  --link:#A5A2FF;
  --link-hover:#C4C2FF;
  --veil:rgba(21,21,21,.9);
  --veil-surface:rgba(31,31,30,.9);
  --overlay-tour:rgba(0,0,0,.65);
  --chart-1:#A5A2FF;
  --chart-2:#4DA6FF;
  --chart-3:#F0B43A;
  --chart-4:#57D693;
  --chart-1-text:#A5A2FF;
  --chart-2-text:#4DA6FF;
  --chart-3-text:#F0B43A;
  --chart-4-text:#57D693;
  color-scheme:dark;
  background:var(--bg);
  color:var(--text);

  --primary-hover:#4944E0;
  --accent-border-hover:#5E5D59;
  --danger:#F0676B;
  --danger-strong:#C4363B;
  --danger-strong-hover:#A93036;
  --success:#2FBF6E;

  --on-solid:#FFFFFF;
  --violet:#B79BFF;
  --cyan:#5FD6EE;
  --warning:#F0BC5B;
  --surface-accent:#262625;
  --code-text:#CDD3FF;
  --overlay:rgba(0,0,0,.62);
  --shadow-rgb:0,0,0;
  --primary-rgb:87,83,245;
  --focus-rgb:77,166,255;
  /* Barre de possession d'un terme : votre part, puis vos deux premiers concurrents. */
  --rival-1:#B79BFF;
  --rival-2:#5E5D59;
  --danger-rgb:240,103,107;

  /* Couleurs factuelles (drapeaux) : identiques en clair et en sombre, elles ne suivent pas le thème. */
  --flag-bleu:#0A2FA6;
  --flag-rouge:#E5484D;
  --flag-or:#E8A317;
  --flag-noir:#10124A;
  --flag-vert:#12A150;
  --flag-ciel:#0A84FF;
  --flag-blanc:#FFFFFF;
}
  [data-force-dark]{background:var(--bg) !important;color:var(--text)}
  [data-force-dark] *::-webkit-scrollbar{width:10px;height:10px}
  [data-force-dark] *::-webkit-scrollbar-track{background:transparent}
  [data-force-dark] *::-webkit-scrollbar-thumb{background:var(--scrollbar);border-radius:999px}
  [data-force-dark] *::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-hover)}

/* --- Bascule de thème --- */
html.theme-transition body,html.theme-transition body *{transition:background-color .2s ease,background .2s ease,color .2s ease,border-color .2s ease,fill .2s ease,stroke .2s ease !important}
@media (prefers-reduced-motion:reduce){
  html.theme-transition body,html.theme-transition body *{transition:none !important}
}

/* v4 : un conteneur de thème forcé redéfinit aussi la couleur de texte héritée */
[data-theme="light"]{color:var(--text);color-scheme:light}
[data-force-dark]{color:var(--text);color-scheme:dark}

/* ============ v5b — largeurs d'écran (prototype) ============
   Les styles en ligne du prototype sont sérialisés par React avec une espace
   après les deux-points : les sélecteurs [style*=…] la prennent en compte.
   L'application Angular utilisera des classes. */

/* -- garde-fous : aucun débordement horizontal -- */
[style*="overflow-x:auto"], [style*="overflow-x: auto"] { min-width:0 !important; max-width:100% !important; }
[data-shell-main] { min-width:0 !important; max-width:100% !important; }
[data-tour="shell.filters"] { flex-wrap:wrap; min-width:0; }

/* -- jusqu'à 1024 px : barre latérale en colonne d'icônes -- */
@media (max-width:1024px) {
  [data-tour="shell.sidebar"] { width:64px !important; overflow-x:hidden !important; }
  [data-tour="shell.sidebar"] * { min-width:0; }
  [data-shell-main] { margin-left:64px !important; }
  [data-tour="shell.sidebar"] [data-rail-label],
  [data-tour="shell.sidebar"] [data-rail-hide] { display:none !important; }
  [data-tour="shell.sidebar"] button { justify-content:center !important; padding-left:0 !important; padding-right:0 !important; }
  [data-tour="shell.brand-switcher"] > span:nth-child(2),
  [data-tour="shell.account"] > span:nth-child(2) { display:none !important; }
  [data-tour="shell.brand-switcher"] svg:last-of-type,
  [data-tour="shell.account"] svg:last-of-type { display:none !important; }
  [data-tour="shell.sidebar"] [style*="left: 12px"] { left:70px !important; right:auto !important; width:250px !important; }
}

/* -- jusqu'à 640 px : tiroir, colonne unique, modales plein écran -- */
@media (max-width:640px) {
  /* Pied de page : les profils sociaux passent au-dessus des liens légaux, centrés. */
  footer [data-social] { width:100%; justify-content:center; order:0; }
  footer [data-legal] { width:100%; justify-content:center; order:1; }
  footer [data-lang] { order:2; }
  [data-tour="shell.sidebar"] { transform:translateX(-100%); transition:transform .2s ease-out; width:264px !important; z-index:120 !important; }
  [data-drawer-open="1"] [data-tour="shell.sidebar"] { transform:none; }
  [data-drawer-open="1"] [data-tour="shell.sidebar"] [data-rail-label],
  [data-drawer-open="1"] [data-tour="shell.sidebar"] [data-rail-hide] { display:block !important; }
  [data-drawer-open="1"] [data-tour="shell.sidebar"] [data-lang-switch] { display:flex !important; }
  [data-drawer-open="1"] [data-tour="shell.sidebar"] button { justify-content:flex-start !important; padding-left:10px !important; }
  [data-shell-main] { margin-left:0 !important; }
  [data-tour="shell.countdown"], [data-lang-switch] { display:none !important; }
  [style*="padding:28px 32px"], [style*="padding: 28px 32px"] { padding:18px 14px 40px !important; }
  [style*="grid-template-columns:repeat(auto-fit"], [style*="grid-template-columns: repeat(auto-fit"] { grid-template-columns:1fr !important; }
  [data-invite-bubble] { right:0 !important; left:auto !important; width:min(264px, calc(100vw - 16px)) !important; max-width:calc(100vw - 16px) !important; }
  [role="dialog"] { max-width:100% !important; }
  [style*="position:fixed;inset:0"][style*="align-items:center"],
  [style*="position: fixed; inset: 0px"][style*="align-items: center"] { align-items:stretch !important; padding:0 !important; }
  [style*="position: fixed; inset: 0px"][style*="align-items: center"] > div { border-radius:0 !important; max-width:100% !important; max-height:100vh !important; height:100vh !important; }
  [data-narrow-3][data-narrow-hide="1"] { display:none !important; }
  h1 { font-size:22px !important; }
}

/* -- jusqu'à 480 px : en-tête resserré -- */
@media (max-width:480px) {
  [data-shell-main] > [style*="height: 56px"] { padding-left:10px !important; padding-right:10px !important; gap:4px !important; }
  [data-shell-filters-btn] span { display:none; }
  [data-shell-filters-btn] { width:34px; padding:0 !important; justify-content:center; }
}

/* -- corrections ciblées de largeur -- */
[data-ds-nav] { flex-wrap:wrap; min-width:0; }
@media (max-width:1024px) {
  [data-ds-nav] { overflow-x:auto; flex-wrap:nowrap; justify-content:flex-start; padding-bottom:2px; }
  [data-ds-nav] > a { flex:none; white-space:nowrap; }
}
@media (max-width:640px) {
  [style*="repeat(auto-fit"], [style*="repeat(auto-fill"] { grid-template-columns:1fr !important; }
  [data-tour="market.top3"], [data-tour="market.position"], [data-tour="market.heatmap"],
  [data-tour="market.history"], [data-tour="perception.cloud"], [data-tour="perception.sentiment"],
  [data-tour="perception.extracts"], [data-tour="perception.themes"] { max-width:100% !important; min-width:0 !important; }
  [data-tour="perception.extracts"] button { width:100% !important; max-width:100% !important; min-width:0 !important; white-space:normal !important; text-align:left; }
  [data-tour="perception.extracts"] button * { min-width:0; white-space:normal !important; }
  [data-tour="market.top3"] > div, [data-tour="market.position"] > div { min-width:0 !important; }
}
